function addCal(id){
	Calendar.setup({
		inputField:id,
		dateFormat:"%Y/%m/%d",
		trigger:id,
        animation:false,
        weekNumbers:true,
        onSelect   : function() { this.hide() }
	});
};
function addBtnCal(id){
	btn_id = id+"_btn";
	if (!!$(btn_id)) {
		Element.remove($(btn_id));
	}
	ele_data = "<img src=\"/img/calendar.gif\"" +
				" style=\"border: 1px solid red; cursor: pointer;\"" +
				" onmouseover=\"this.style.background='red';\"" +
				" onmouseout=\"this.style.background=''\"" +
				" id=\""+btn_id+"\"/>";
	new Insertion.After(id,ele_data);
	Calendar.setup({
		inputField:id,
		ifFormat:"%Y%m%d",
		button:btn_id,
		singleClick:true,
		step:1
	});
};
function addMultiCal(id,selected){
	var cal = Calendar.setup({
		inputField:id,
		dateFormat:"%Y/%m/%d",
		trigger:id+"_n",
        selectionType : Calendar.SEL_MULTIPLE,
        animation:false,
        weekNumbers:true,
        onBlur      : function() {
            var select_days = this.selection.getDates().collect(function(value, index){
                var yy = value.getYear();
                var mm = value.getMonth() + 1;
                var dd = value.getDate();
                if (yy < 2000) { yy += 1900; }
                if (mm < 10) { mm = "0" + mm; }
                if (dd < 10) { dd = "0" + dd; }
                return yy + "/" + mm + "/" + dd;
            });
            select_days.join(",");
            $(id).value = select_days;
            if (select_days=="") {
                $(id+"_n").innerHTML = "選択無し";
            } else {
                $(id+"_n").innerHTML = select_days;
            }
        }
	});
    if (typeof selected != 'undefined') {
        cal.selection.set(selected);
    }


};

function windowEvent(){
	if(window.event) return window.event;
	var caller = arguments.callee.caller;
	while(caller){
		var ob = caller.arguments[0];
		if(ob && ob.constructor == MouseEvent) return ob;
		caller = caller.caller;
	}
	return null;
};
function windowEventElement(){
	var event = windowEvent();
	var currentElement;
	if (document.all) { // for IE
		currentElement = event.srcElement;
	} else {
		currentElement = event.target;
	}
	return currentElement;
};
function mousePosition(){
	var event = windowEvent();
	var mp = new Object()
	if (document.all) { // for IE
		mp.x = event.offsetX + 200;
		mp.y = event.offsetY + 70;
	} else {
		mp.x = event.layerX;
		mp.y = event.layerY;
	}
	return mp;
};
function buttonPosition(){
	var event = windowEvent();
	var mp = new Object()
	var currentElement;
	if (document.all) { // for IE
		currentElement = event.srcElement;
	} else {
		currentElement = event.target;
	}
	var offset = Position.cumulativeOffset(currentElement);
	mp.x = offset[0];
	mp.y = offset[1];
	/*
	var ret = Element.getDimensions(currentElement);
	mp.x += ret.width;
	mp.y += ret.height;
	*/
	return mp;
};


function getWindowWidth(){
	if(window.innerWidth){
		return window.innerWidth;
	}else if(document.documentElement && document.documentElement.clientWidth){
		return document.documentElement.clientWidth;
	}else if ( document.body && document.body.clientWidth){
		return document.body.clientWidth;
	}
};
function getWindowHeight(){
	if(window.innerHeight){
		return window.innerHeight;
	}else if(document.documentElement && document.documentElement.clientHeight){
		return document.documentElement.clientHeight;
	}else if ( document.body && document.body.clientHeight){
		return document.body.clientHeight;
	}
};
function setPositionInWindowWidth(target) {
	var ret = Element.getDimensions(target);
	var oldLeft = parseInt(target.style.left.replace("px", ""));
	var rightEdge = oldLeft + ret.width;
	var windowWidth = getWindowWidth();
    var scroll = getScroll();
	if (rightEdge > windowWidth+scroll.x) {
		var newLeft = windowWidth - ret.width - 50;
        newLeft += scroll.x;
		if (newLeft<0) {
			newLeft = 0;
		}
		target.style.left = newLeft+"px";
	}
};

function getScroll(){
    var x, y;
    if(document.all !== void 0){ // IE4, IE5, IE6
        x = document.body.scrollLeft;
        y = document.body.scrollTop;
    }else if(document.layers !== void 0 || (navigator.userAgent.indexOf("Opera") != -1 || window.opera !== void 0)){ // NN4, Opera6
        x = window.pageXOffset;
        y = window.pageYOffset;
    }else if(navigator.userAgent.indexOf("Gecko") != -1){ // NS6, Mozilla
        x = window.scrollX;
        y = window.scrollY;
    }else{
        x = y = 0;
    }
    return {
        x: x,
        y: y
    };
};


function win_open(){
	if(arguments[0]){
		var url = arguments[0];
		var tgt = (arguments[1] ? arguments[1] : '_self');
		var prp = '';
		if(arguments.length > 3){
			var scroll = (arguments[2] ? 1 : 0);
			var resize = (arguments[3] ? 1 : 0);
			var width = (arguments[4] > 100 ? arguments[4] : 100);
			var height = (arguments[5] > 100 ? arguments[5] : 100);
			prp = 'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=' + scroll + ',resizable=' + resize + ',width=' + width + ',height=' + height;
		}
		else if(arguments[2] != null){
			prp = arguments[2];
		}

		(arguments[2] ? arguments[2] : '');
		var newWin = new Object();
		if(prp) newWin = window.open(url,tgt,prp);
		else newWin = window.open(url,tgt);
		newWin.focus();

		return newWin;
	}
};
/* 全角英数字を半角英数字に置換する */
function zenToHan(txt) {
	return txt.replace(/([Ａ-Ｚａ-ｚ０-９＿])/g,
			function ($0) {
		return String.fromCharCode($0.charCodeAt(0) - 65248);
	});
};









function showTooltip(txt,id){
    hideTooltip();
	var tooltip = document.createElement("div");
	tooltip.style.width = "500px";

	var bp;
	var dim;

    if (typeof id != 'undefined') {
        tooltipid = id;
        dim = Element.getDimensions($(id));
        var offset = Position.cumulativeOffset($(id));
        bp = {}
        bp.x = offset[0];
        bp.y = offset[1];
    } else {
        dim = Element.getDimensions(windowEventElement());
        bp = buttonPosition();
    }

	tooltip.innerHTML = txt;
	tooltip.id = "tooltip";
	tooltip.className = "tooltip";
	tooltip.style.position = "absolute";
	tooltip.style.left     = bp.x+dim.width-10+"px";
	tooltip.style.top      = bp.y+dim.height+"px";
	tooltip.style.zIndex   = 1000;

	document.body.appendChild(tooltip);

	setPositionInWindowWidth(tooltip);
}

function hideTooltip(){
    if(!!$("tooltip")) {
        Element.remove($("tooltip"))
    }
}


var glayMsg = {
    show: function(msg,id){
        var tmp_msg;
        if (!$('glaybase_msg')) {
            tmp_msg = document.createElement("div");
            tmp_msg.id = "glaybase_msg";
            document.body.appendChild(tmp_msg);
        }
        tmp_msg = $('glaybase_msg');
        tmp_msg.innerHTML = msg;
        var dim = Element.getDimensions(tmp_msg);

        var left = 0;
        var top = 0;
        left = (getWindowWidth() / 2) - (dim.width / 2);
        top = (getWindowHeight() / 2) - (dim.height / 2);
        left += document.documentElement.scrollLeft || document.body.scrollLeft;
        top += document.documentElement.scrollTop || document.body.scrollTop;

        tmp_msg.setStyle({
            position: "absolute",
            top: top+"px",
            left: left+"px",
            zIndex: "101"
        });

        if (typeof id != 'undefined') {
            Glayer.showParallel(['glaybase_msg'],id);
        } else {
            Glayer.showParallel(['glaybase_msg']);
        }
    },
	hide: function(id){
        if (!!$('glaybase_msg')) {
            if (typeof id != 'undefined') {
                Glayer.hideParallel(['glaybase_msg'],id);
            } else {
                Glayer.hideParallel(['glaybase_msg']);
            }
        }
    }
}

function replaceSelectInner(id,innerHTML){
    if (document.all) { // for IE
        var attrs=['name','id','size','multiple','class','style','onFocus','onBlur','onChange'];
        var attrstr='';
        for(i=0; i<attrs.length; i++){
            var val=$(id).getAttribute(attrs[i]);
            if(val=='null' || val=='' || val=='false' || val==null || val==false) continue;
            if(typeof val=='function'){
                val=val.toString();
                val=val.substring(val.indexOf('{')+1,val.lastIndexOf('}')-1);
            }
            attrstr+=' '+attrs[i]+'="'+val+'"';
        }
        $(id).outerHTML = '<select'+attrstr+'>'+innerHTML.stripScripts()+'</select>';
    } else {
        $(id).innerHTML = innerHTML;
    }
}

function radioCheckedValue(name){
    var checked = $A(document.getElementsByName(name)).find(function(v) {return v.checked;});
    if (checked) return $F(checked)
    return null
}


function checkedCntInId(id){
    var cnt = 0;

	var inputs = Form.getInputs(id,'checkbox');
    inputs.each(function(value, index){
        if (value.checked==true) {
            cnt++;
        }
    });
    return cnt;
};
function checkedValueInId(id){
    var cur_value = '';

	var inputs = Form.getInputs(id,'checkbox');
    inputs.each(function(value, index){
        if (value.checked==true) {
            cur_value = $F(value);
            throw $break;
        }
    });
    return cur_value;
};
function allcheckedInId(id){
    var allChecked = true;

	var inputs = Form.getInputs(id,'checkbox');
    inputs.each(function(value, index){
        if (value.checked==false) {
            allChecked = false;
            throw $break;
        }
    });
    return allChecked;
};
function checkIdIfAllCheckedInId(to_id,id){
    if (allcheckedInId(id)) {
        $(to_id).checked=true;
    } else {
        $(to_id).checked=false;
    }
};
function allCheckInId(id){
    var tmp = true;
    if (allcheckedInId(id)) {
        tmp = false;
    }

    var inputs = Form.getInputs(id,'checkbox');
    inputs.each(function(value, index){
        value.checked=tmp;
    });
};
function checkedCntName(name){
    var cnt = 0;

	var inputs = $A(document.getElementsByName(name))
    inputs.each(function(value, index){
        if (value.checked==true) {
            cnt++;
        }
    });
    return cnt;
};
function checkedValueName(name){
    var cur_value = '';

	var inputs = $A(document.getElementsByName(name))
    inputs.each(function(value, index){
        if (value.checked==true) {
            cur_value = $F(value);
            throw $break;
        }
    });
    return cur_value;
};
function allcheckedName(name){
    var allChecked = true;

	var inputs = $A(document.getElementsByName(name))
    inputs.each(function(value, index){
        if (value.checked==false) {
            allChecked = false;
            throw $break;
        }
    });
    return allChecked;
};
function checkNameIfAllCheckedName(to_name,name){
    var tmp = false;
    if (allcheckedName(name)) {
        tmp=true;
    } else {
        tmp=false;
    }
    $A(document.getElementsByName(to_name)).each(function(value, index){
        value.checked=tmp;
    });
};
function allCheckName(name){
    var tmp = true;
    if (allcheckedName(name)) {
        tmp = false;
    }

    var inputs = $A(document.getElementsByName(name))
    inputs.each(function(value, index){
        value.checked=tmp;
    });
};
function resetAllInputs(name){
    var inputs = Form.getInputs(name);
    inputs.each(function(value, index){
        if (value.type == 'text') {
            value.value="";
        } else if ((value.type == 'checkbox' && value.checked == true)) {
            value.checked=false;
        }
    });
};