var ie6andbelow = function () {
	var n = navigator.userAgent.indexOf("MSIE");
	return n > 0
		&& parseInt(navigator.userAgent.substring(n + 5)) < 7;
}

function requireText(elem, name,errmsg) {

	if (trim(elem.value) == "") {
		if(errmsg==undefined){
			errmsg=name + "を入力してください";
		}
		alert(errmsg);
		if (elem.type != "hidden") {
			elem.focus();
		}
		return false;
	} else {
		return true;
	}
}

function requireSelect(elem, name) {
	if (elem.selectedIndex == 0) {
		alert(name + "を選択してください");
		elem.focus();
		return false;
	} else {
		return true;
	}
}

function requireSelect2(elem, name) {
	if (elem.value=="") {
		alert(name + "を選択してください");
		return false;	
	} else {
		return true;
	}
}

function requireSelect3(elem, name) {
	if (elem.value=="") {
		return confirm(name + "が入力されていません。よろしいですか？");	
	} else {
		return true;
	}
}
function requireCheckbox(elem, name) {
	var selected = false;
	if(!elem.length){
		elem = new Array(elem);
	}
	for (var i = 0; i < elem.length; i++) {
		if (elem[i].checked) {
			selected = true;
			break;
		}
	}
	if (selected) {
		return true;
	} else {
		alert(name + "を選択してください");
		elem[0].focus();
		return false;
	}
}
function trim(s) {
	return s.replace(/(^ *)([^ ]*)( *$)/,'$2');
}
function isInteger(elem, name, min, max) {
	var n = trim(elem.value);
	if (n == "") {
		return true;
	} else if (!n.match(/^-?[0-9]+$/)) {
		alert(name + "は半角数字で入力してください");
		elem.focus();
		return false;
	} else if (min != undefined && max != undefined) {
		var m = parseInt(n, 10);
		if (m < min || m > max) {
			alert(name + "は" + min + "～" + max + "の範囲の値を入力してください");
			elem.focus();
			return false;
		}
	} else if (min != undefined) {
		var m = parseInt(n, 10);
		if (m < min) {
			alert(name + "は" + min + "以上の値を入力してください");
			elem.focus();
			return false;
		}
	}
	return true;
}
function isIntegerNoAlert(elem, name, min, max) {
	var n = trim(elem.value);
	if (n == "") {
		return false;
	} else if (!n.match(/^-?[0-9]+$/)) {
		elem.focus();
		return false;
	} else if (min != undefined && max != undefined) {
		var m = parseInt(n, 10);
		if (m < min || m > max) {
			elem.focus();
			return false;
		}
	} else if (min != undefined) {
		var m = parseInt(n, 10);
		if (m < min) {
			elem.focus();
			return false;
		}
	}
	return true;
}
function isFloat(elem, name, min, max) {
	var n = trim(elem.value);
	if (n == "") {
		return true;
	} else if (!n.match(/^-?[0-9]+\.?[0-9]*$/)) {
		alert(name + "は半角数字で入力してください");
		elem.focus();
		return false;
	} else if (min != undefined && max != undefined) {
		var m = parseFloat(n);
		if (m < min || m > max) {
			alert(name + "は" + min + "～" + max + "の範囲の値を入力してください");
			elem.focus();
			return false;
		}
	} else if (min != undefined) {
		var m = parseFloat(n);
		if (m < min) {
			alert(name + "は" + min + "以上の値を入力してください");
			elem.focus();
			return false;
		}
	}
	return true;
}
function is5Minute(elem, name, min, max) {
	var n = trim(elem.value);
	if (n == "") {
		return true;
	} else if (!n.match(/^-?[0-9]+$/)) {
		alert(name + "は半角数字で入力してください");
		elem.focus();
		return false;
	} else if (min != undefined && max != undefined) {
		var m = parseInt(n, 10);
		if (m < min || m > max) {
			alert(name + "は" + min + "～" + max + "の範囲の値を入力してください");
			elem.focus();
			return false;
		}
	} else if (min != undefined) {
		var m = parseInt(n, 10);
		if (m < min) {
			alert(name + "は" + min + "以上の値を入力してください");
			elem.focus();
			return false;
		}
	}
	if(n%5!=0){
		alert(name + "は5分単位で入力してください。");
		elem.focus();
		return false;
	}
	return true;
}
function isFloat(elem, name, min, max) {
	var n = trim(elem.value);
	if (n == "") {
		return true;
	} else if (!n.match(/^-?[0-9]+\.?[0-9]*$/)) {
		alert(name + "は半角数字で入力してください");
		elem.focus();
		return false;
	} else if (min != undefined && max != undefined) {
		var m = parseFloat(n);
		if (m < min || m > max) {
			alert(name + "は" + min + "～" + max + "の範囲の値を入力してください");
			elem.focus();
			return false;
		}
	} else if (min != undefined) {
		var m = parseFloat(n);
		if (m < min) {
			alert(name + "は" + min + "以上の値を入力してください");
			elem.focus();
			return false;
		}
	}
	return true;
}

function checkFloat(elem, name, intwidth, decwidth) {
	var n = trim(elem.value);
	if (n == "") {
		return true;
	} else {
		var regexp = new RegExp("^[0-9]{1," + intwidth + "}\\.?$"
							+ "|^[0-9]{1," + intwidth + "}\.[0-9]{1," + decwidth + "}$");
		if (!n.match(regexp)) {
			alert(name + "は整数部" + intwidth + "桁、小数部" + decwidth + "桁の範囲で入力してください");
			elem.focus();
			return false;
		}
	}
	return true;
}

function isKana(elem, name) {
	var val = trim(elem.value);
	if (val == "") {
		return true;
	}
	if (toHankakuStrict(val) != val) {
		alert(name + "が正しくありません。");
		elem.focus();
		return false;
	}
	return true;
}

function isDate(elem, name) {
	var val = trim(elem.value);
	if (val == "") {
		return true;
	}
	if (dateValueOf(val) == null) {
		alert(name + "が正しくありません。");
		elem.focus();
		return false;
	}
	return true;
}

function isTime(elem, name) {
	var val = trim(elem.value);
	if (val == "") {
		return true;
	}
	if (timeValueOf(val) == null) {
		alert(name + "が正しくありません。");
		elem.focus();
		return false;
	}
	return true;
}

function dateValueOf(val) {
	var y, m, d;
	var error = false;
	var a = val.match(/^([0-9]{1,4})\/([0-9]{1,2})\/([0-9]{1,2})$/)
		|| val.match(/^([0-9]{1,2})\/([0-9]{1,2})$/)
		|| val.match(/^([0-9]{1,2})([0-9]{2})$/)
		|| val.match(/^([0-9]{1,4})([0-9]{2})([0-9]{2})$/);
	if (a) {
		if (a.length == 4) {
			y = Number(a[1]);
			m = Number(a[2]);
			d = Number(a[3]);
			if (y < 100) {
				y = (y < 50 ? y + 2000 : y + 1900);
			}
		} else {
			m = Number(a[1]);
			d = Number(a[2]);
			var today = new Date();
			y = today.getFullYear();
		}
	} else {
		error = true;
	}
	error = error || (y < 1900 || y > 2099 || m < 1 || m > 12 || d < 1 || d > 31);
	return error ? null : new Date(y, m - 1, d);
}

function timeValueOf(val) {
	var h, m, s;
	var error = false;
	var a = val.match(/^([0-9]{1,2}):([0-9]{1,2})$/)
		|| val.match(/^([0-9]{1,2})([0-9]{2})$/)
		|| val.match(/^([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})$/)
		|| val.match(/^([0-9]{1,2})([0-9]{2})([0-9]{2})$/);
	if (a) {
		if (a.length == 3) {
			h = Number(a[1]);
			m = Number(a[2]);
			s = 0;
		} else {
			h = Number(a[1]);
			m = Number(a[2]);
			s = Number(a[3]);
		}
	} else {
		error = true;
	}
	error = error || (h >= 24) || (m >= 60) || (s >= 60);
	return error ? null : new Date(0, 0, 0, h, m, s);
	
}
function monthValueOf(val) {
	var y, m;
	var error = false;
	var a = val.match(/^([0-9]{1,4})\/([0-9]{1,2})$/)
		|| val.match(/^([0-9]{1,2})\/([0-9]{1,2})$/)
		|| val.match(/^([0-9]{1,2})([0-9]{2})$/)
		|| val.match(/^([0-9]{1,4})([0-9]{2})$/);
	if (a) {
		if (a.length == 3) {
			y = Number(a[1]);
			m = Number(a[2]);
			if (y < 100) {
				y = (y < 50 ? y + 2000 : y + 1900);
			}
		} else {
			m = Number(a[1]);
			var today = new Date();
			y = today.getFullYear();
		}
	} else {
		error = true;
	}
	error = error || (y < 1900 || y > 2099 || m < 1 || m > 12);
	return error ? null : new Date(y, m - 1, 1);
}

function onBlurKana(e) {
	if (!e) e = event;
	var elem = (e.target ? e.target : e.srcElement);
	elem.value = toHankaku(elem.value);
}

function onBlurDate(e) {
	if (!e) e = event;
	var elem = (e.target ? e.target : e.srcElement);
	var val = trim(elem.value);
	if (val == "") {
		return;
	}
	var dt = dateValueOf(val);
	if (dt != null) {
		y = dt.getFullYear();
		m = dt.getMonth() + 1;
		d = dt.getDate();
		elem.value = y + "/" + (m < 10 ? "0" : "") + m + "/" + (d < 10 ? "0" : "") + d;
	}
}

function onBlurTime(e) {
	if (!e) e = event;
	var elem = (e.target ? e.target : e.srcElement);
	var val = trim(elem.value);
	if (val == "") {
		return;
	}
	var tm = timeValueOf(val);
	if (tm != null) {
		h = tm.getHours();
		m = tm.getMinutes();
		elem.value = (h < 10 ? "0" : "") + h + ":" + (m < 10 ? "0" : "") + m;
	}
}

function onBlurDateShort(e) {
	if (!e) e = event;
	var elem = (e.target ? e.target : e.srcElement);
	var val = trim(elem.value);
	if (val == "") {
		return;
	}
	var dt = dateValueOf(val);
	if (dt != null) {
		var m = dt.getMonth() + 1;
		var d = dt.getDate();
		elem.value = (m < 10 ? "0" : "") + m + "/" + (d < 10 ? "0" : "") + d;
	}
}

function onBlurMonth(e) {
	if (!e) e = event;
	var elem = (e.target ? e.target : e.srcElement);
	var val = trim(elem.value);
	if (val == "") {
		return;
	}
	var dt = monthValueOf(val);
	if (dt != null) {
		var y = dt.getFullYear();
		var m = dt.getMonth() + 1;
		elem.value = y + "/" + (m < 10 ? "0" : "") + m;
	}
}
function compareInteger(elem1, elem2, name1, name2) {
	var val1 = trim(elem1.value);
	var val2 = trim(elem2.value);
	if (val1 == "" || val2 == "") {
		return true;
	}
	if (val1 > val2) {
		alert(name1 + "には" + name2 + "より大きな値を入力してください。");
		elem1.focus();
		return false;
	}
	return true;
}
function compareDate(elem1, elem2, name) {
	var val1 = trim(elem1.value);
	var val2 = trim(elem2.value);
	if (val1 == "" || val2 == "") {
		return true;
	}
	if (val1 > val2) {
		alert(name + "が不正です。");
		elem1.focus();
		return false;
	}
	return true;
}

function isMonth(elem, name) {
	var val = trim(elem.value);
	if (val == "") {
		return true;
	}
	if (monthValueOf(val) == null) {
		alert(name + "が正しくありません。");
		elem.focus();
		return false;
	}
	return true;
}

function isEmail(elem, name) {
	var val = trim(elem.value);
	if (val == "") {
		return true;
	}
	if (val.match(/^[a-zA-Z0-9!$&*.=^`|~#%'+\/?_{}-]+@([a-zA-Z0-9_-]+\.)+[a-zA-Z]{2,4}$/) == null) {
		alert(name + "が正しくありません。");
		elem.focus();
		return false;
	} else {
		return true;
	}
}
function isIdPass(elem, name, len) {
	var val = trim(elem.value);
	if (val == "") {
		return true;
	}
	if (val.length < len){
		alert(name + "は" + len + "文字以上で入力してください。");
		elem.focus();
		return false;
	}
	if (!val.match(/^-?[0-9a-zA-Z]+$/)) {
		alert(name + "は半角英数字で入力してください。");
		elem.focus();
		return false;
	} else {
		return true;
	}
}

function isRomaji(elem, name, len) {
	var val = trim(elem.value);
	if (val == "") {
		return true;
	}
	if (!val.match(/^-?[a-zA-Z]+$/)) {
		alert(name + "は半角英字で入力してください。");
		elem.focus();
		return false;
	} else {
		return true;
	}
}
function isZipCd(elem, name) {
	var val = trim(elem.value);
	if (val == "") {
		return true;
	}
	if (val.match(/^[0-9]{3}\-[0-9]{4}$/) || val.match(/^[0-9]{7}$/)) {
		return true;
	} else {
		alert(name + "が正しくありません。");
		elem.focus();
		return false;
	}
}
function isStringLength( elem, name, size ) {
	if ( elem.value.length > size ) {
		alert(name + "は" + size + "文字以内で入力してください。");
		return false;
	}
	return true;
}

function isStringLengthHankaku( elem, name, size ) { 
    var r = 0; 
    for (var i = 0; i < elem.value.length; i++) { 
        var c = elem.value.charCodeAt(i); 
        if ((c >= 0xff61 && c <= 0xff9f) || (c >= 0x0020 && c <= 0x007e)) { 
            r += 1; 
        } else { 
            r += 2; 
        } 
    } 
    if ( r > size ) {
		alert(name + "は半角" + size + "文字以内、または全角" + size /2 + "以内で入力してください。");
		return false;
	} 
	return true;   
}

function isJpgOrGif( elem, name ) { 

	if(elem.value!=''){
	    Reg1 = new RegExp(/jpg$/);
	    Reg2 = new RegExp(/JPG$/);
	    Reg3 = new RegExp(/gif$/);
	    Reg4 = new RegExp(/GIF$/);
	    if (!elem.value.match(Reg1) &&
	        !elem.value.match(Reg2) &&
	        !elem.value.match(Reg3) &&
	        !elem.value.match(Reg4) ) {
	        alert(name +"はjpg画像又はgif画像で登録してください。");
	        return false;
	    }
	}
    return true;
}

//フォーカス
function setfocus(){

	count = document.mainForm.length;
	for(i=0; i<count; i++){
		type = document.mainForm[i].type;
		if(type!="hidden"){
			document.mainForm[i].focus();
			break;
		}
	}
}

function navi(obj) {
 url = obj.options[obj.selectedIndex].value;
 if(url != "") {
   location.href = url;
  }
}
function fnc_tag_send_mail_disable(val){
	target_tr_id = "tag_send_mail";
	if(val == "t"){
		document.getElementById(target_tr_id).style.display="block";
	}else{
		document.getElementById(target_tr_id).style.display="none";
	}
}
//Submit
function fnc_ToSubmit(url) {
	document.mainForm.action = url;
	document.mainForm.target = "_self";
	document.mainForm.method = "post";
	document.mainForm.submit();
}
//Submit
function fnc_ToSubmit_priceForm(url) {
	document.priceForm.action = url;
	document.priceForm.target = "_self";
	document.priceForm.method = "post";
	document.priceForm.submit();
}

function fnc_display(oid){
	a = document.getElementById('view_id').value;
	if(a != ''){
		document.getElementById(a).style.display = 'none';
	}
	document.imageForm.view_id.value = oid;
	document.getElementById(oid).style.display = 'block';
	
}
function ch_alpha_50(oid){
	a = document.getElementById(oid).style;
	a.filter = 'alpha(style=0,opacity=100);';
	a.opacity = '1.0;';
	
	b = document.imageForm.view_id2;
	if(b.value != oid){
		c = document.getElementById(b.value).style;
		c.filter = 'alpha(style=0,opacity=50);';
		c.opacity = '0.5;';
		b.value = oid;
	}
	
}

function Initializer() {
	this.initFuncs = [];
	this.add = function(func) {
		this.initFuncs[this.initFuncs.length] = func;
	}
	this.execute = function() {
		for (var i = 0; i < this.initFuncs.length; i++) {
			this.initFuncs[i].call();
		}
	}
}
var initializer = new Initializer();
initializer.add(function() {
	var inputs = document.getElementsByTagName("input");
	if (inputs == null) {
		return;
	}
	for (var i = 0; i < inputs.length; i++) {
		var elem = inputs[i];
		var cl = elem.className;
		if (cl) {
			if (cl == "date") {
				elem.onblur = onBlurDate;
			} else if (cl == "month") {
				elem.onblur = onBlurMonth;
			}
		}
	}
});

function dateValueOf(val) {
	var y, m, d;
	var error = false;
	var a = val.match(/^([0-9]{1,4})\/([0-9]{1,2})\/([0-9]{1,2})$/)
		|| val.match(/^([0-9]{1,2})\/([0-9]{1,2})$/)
		|| val.match(/^([0-9]{1,2})([0-9]{2})$/)
		|| val.match(/^([0-9]{1,4})([0-9]{2})([0-9]{2})$/);
	if (a) {
		if (a.length == 4) {
			y = Number(a[1]);
			m = Number(a[2]);
			d = Number(a[3]);
			if (y < 100) {
				y = (y < 50 ? y + 2000 : y + 1900);
			}
		} else {
			m = Number(a[1]);
			d = Number(a[2]);
			var today = new Date();
			y = today.getFullYear();
		}
	} else {
		error = true;
	}
	error = error || (y < 1900 || y > 2099 || m < 1 || m > 12 || d < 1 || d > 31);
	return error ? null : new Date(y, m - 1, d);
}

function onBlurDate(e) {
	if (!e) e = event;
	var elem = (e.target ? e.target : e.srcElement);
	var val = trim(elem.value);
	if (val == "") {
		return;
	}
	var dt = dateValueOf(val);
	if (dt != null) {
		y = dt.getFullYear();
		m = dt.getMonth() + 1;
		d = dt.getDate();
		elem.value = y + "/" + (m < 10 ? "0" : "") + m + "/" + (d < 10 ? "0" : "") + d;
	}
}

function monthValueOf(val) {
	var y, m;
	var error = false;
	var a = val.match(/^([0-9]{1,4})\/([0-9]{1,2})$/)
		|| val.match(/^([0-9]{1,2})\/([0-9]{1,2})$/)
		|| val.match(/^([0-9]{1,2})([0-9]{2})$/)
		|| val.match(/^([0-9]{1,4})([0-9]{2})$/);
	if (a) {
		if (a.length == 3) {
			y = Number(a[1]);
			m = Number(a[2]);
			if (y < 100) {
				y = (y < 50 ? y + 2000 : y + 1900);
			}
		} else {
			m = Number(a[1]);
			var today = new Date();
			y = today.getFullYear();
		}
	} else {
		error = true;
	}
	error = error || (y < 1900 || y > 2099 || m < 1 || m > 12);
	return error ? null : new Date(y, m - 1, 1);
}

function onBlurMonth(e) {
	if (!e) e = event;
	var elem = (e.target ? e.target : e.srcElement);
	var val = trim(elem.value);
	if (val == "") {
		return;
	}
	var dt = monthValueOf(val);
	if (dt != null) {
		var y = dt.getFullYear();
		var m = dt.getMonth() + 1;
		elem.value = y + "/" + (m < 10 ? "0" : "") + m;
	}
}

var HANKAKU_KATAKANA = new Array(
	"ｱ", "ｱ", "ｲ", "ｲ", "ｳ", "ｳ", "ｴ", "ｴ", "ｵ", "ｵ", "ｶ", "ｶﾞ", "ｷ",
	"ｷﾞ", "ｸ", "ｸﾞ", "ｹ", "ｹﾞ", "ｺ", "ｺﾞ", "ｻ", "ｻﾞ", "ｼ", "ｼﾞ", "ｽ",
	"ｽﾞ", "ｾ", "ｾﾞ", "ｿ", "ｿﾞ", "ﾀ", "ﾀﾞ", "ﾁ", "ﾁﾞ", "ﾂ", "ﾂ", "ﾂﾞ",
	"ﾃ", "ﾃﾞ", "ﾄ", "ﾄﾞ", "ﾅ", "ﾆ", "ﾇ", "ﾈ", "ﾉ", "ﾊ", "ﾊﾞ", "ﾊﾟ", "ﾋ",
	"ﾋﾞ", "ﾋﾟ", "ﾌ", "ﾌﾞ", "ﾌﾟ", "ﾍ", "ﾍﾞ", "ﾍﾟ", "ﾎ", "ﾎﾞ", "ﾎﾟ", "ﾏ",
	"ﾐ", "ﾑ", "ﾒ", "ﾓ", "ﾔ", "ﾔ", "ﾕ", "ﾕ", "ﾖ", "ﾖ", "ﾗ", "ﾘ", "ﾙ",
	"ﾚ", "ﾛ", "ﾜ", "ﾜ", "ｲ", "ｴ", "ｦ", "ﾝ", "ｳﾞ", "", "", "", "", "",
	"", "ﾞ", "ﾟ", "", "", "", "", "ｱ", "ｱ", "ｲ", "ｲ", "ｳ", "ｳ", "ｴ",
	"ｴ", "ｵ", "ｵ", "ｶ", "ｶﾞ", "ｷ", "ｷﾞ", "ｸ", "ｸﾞ", "ｹ", "ｹﾞ", "ｺ", "ｺﾞ",
	"ｻ", "ｻﾞ", "ｼ", "ｼﾞ", "ｽ", "ｽﾞ", "ｾ", "ｾﾞ", "ｿ", "ｿﾞ", "ﾀ", "ﾀﾞ",
	"ﾁ", "ﾁﾞ", "ﾂ", "ﾂ", "ﾂﾞ", "ﾃ", "ﾃﾞ", "ﾄ", "ﾄﾞ", "ﾅ", "ﾆ", "ﾇ", "ﾈ",
	"ﾉ", "ﾊ", "ﾊﾞ", "ﾊﾟ", "ﾋ", "ﾋﾞ", "ﾋﾟ", "ﾌ", "ﾌﾞ", "ﾌﾟ", "ﾍ", "ﾍﾞ",
	"ﾍﾟ", "ﾎ", "ﾎﾞ", "ﾎﾟ", "ﾏ", "ﾐ", "ﾑ", "ﾒ", "ﾓ", "ﾔ", "ﾔ", "ﾕ", "ﾕ",
	"ﾖ", "ﾖ", "ﾗ", "ﾘ", "ﾙ", "ﾚ", "ﾛ", "ﾜ", "ﾜ", "ｲ", "ｴ", "ｦ", "ﾝ",
	"ｳﾞ", "ｶ", "ｹ", "", "", "", "", "･", "-", "", "", ""
);
var ZENKAKU_KATAKANA = new Array(
	"。", "「", "」", "、", "・", "ヲ", "ァ", "ィ", "ゥ", "ェ",
	"ォ", "ャ", "ュ", "ョ", "ッ", "ー", "ア", "イ", "ウ", "エ",
	"オ", "カ", "キ", "ク", "ケ", "コ", "サ", "シ", "ス", "セ",
	"ソ", "タ", "チ", "ツ", "テ", "ト", "ナ", "ニ", "ヌ", "ネ",
	"ノ", "ハ", "ヒ", "フ", "ヘ", "ホ", "マ", "ミ", "ム", "メ",
	"モ", "ヤ", "ユ", "ヨ", "ラ", "リ", "ル", "レ", "ロ", "ワ",
	"ン", "゛", "゜"
);
var ZENKAKU_HIRAGANA = new Array(
	"。", "「", "」", "、", "・", "を", "ぁ", "ぃ", "ぅ", "ぇ",
	"ぉ", "ゃ", "ゅ", "ょ", "っ", "ー", "あ", "い", "う", "え",
	"お", "か", "き", "く", "け", "こ", "さ", "し", "す", "せ",
	"そ", "た", "ち", "つ", "て", "と", "な", "に", "ぬ", "ね",
	"の", "は", "ひ", "ふ", "へ", "ほ", "ま", "み", "む", "め",
	"も", "や", "ゆ", "よ", "ら", "り", "る", "れ", "ろ", "わ",
	"ん", "゛", "゜"
);
var DAKUON = new Array(
	false, false, false, false, false, false, false, false, false, false,
	false, false, false, false, false, false, false, false, false, false,
	false,  true,  true,  true,  true,  true,  true,  true,  true,  true,
	 true,  true,  true,  true,  true,  true, false, false, false, false,
	false,  true,  true,  true,  true,  true, false, false, false, false,
	false, false, false, false, false, false, false, false, false, false,
	false, false, false
);
var HANDAKUON = new Array(
	false, false, false, false, false, false, false, false, false, false,
	false, false, false, false, false, false, false, false, false, false,
	false, false, false, false, false, false, false, false, false, false,
	false, false, false, false, false, false, false, false, false, false,
	false,  true,  true,  true,  true,  true, false, false, false, false,
	false, false, false, false, false, false, false, false, false, false,
	false, false, false
);
var HANKAKU_CAPITAL = new Array(
	"ｱ", "ｲ", "ｳ", "ｴ", "ｵ", "ﾔ", "ﾕ", "ﾖ", "ﾂ", "-"
);

function toHankaku(input) {
	s = input.value;
	var r = "";
	var len = s.length;
	var a = "";
	for (var i = 0; i < len; i++) {
		var ch = s.charCodeAt(i);
		//半角文字
		if ((ch >= 0xff61 && ch <= 0xff9f)
				|| (ch >= 0x0020 && ch <= 0x007e)) {
			if (ch >= 0xff67 && ch <=0xff70) {
				r = r + HANKAKU_CAPITAL[ch - 0xff67];
			} else {
				r = r + String.fromCharCode(ch);
			}
		//全角かな
		} else if (ch >= 0x3041 && ch <= 0x30FE) {
			r = r + HANKAKU_KATAKANA[ch - 0x3041];
		//全角英数
		} else if (ch >= 0xff01 && ch <= 0xff5e) {
			r = r + String.fromCharCode(ch - 0xff01 + 0x0021);
		//全角英数
		} else if (ch == 0x3000) {
			r = r + " ";
		//その他の全角文字
		} else  {
			r = r + String.fromCharCode(ch);
		}
	}
	input.value = r;
}

function toZenkakuKana(input){
	text = input.value;
	text = toZenkanaCase(input.value);
	text = toKatakanaCase(text);
	text = toPaddingCase(text);
	input.value =  text;
}
function toZenkanaCase (text){
	var i, charCode, m, charArray = [];
	m =
	{
		0xFF67:0x30A1, 0xFF68:0x30A3, 0xFF69:0x30A5, 0xFF6A:0x30A7, 0xFF6B:0x30A9,
		0xff6c:0x30e3, 0xff6d:0x30e5, 0xff6e:0x30e7, 0xff6f:0x30c3, 0xFF70:0x30FC,
		0xFF71:0x30A2, 0xFF72:0x30A4, 0xFF73:0x30A6, 0xFF74:0x30A8, 0xFF75:0x30AA,
		0xFF76:0x30AB, 0xFF77:0x30AD, 0xFF78:0x30AF, 0xFF79:0x30B1, 0xFF7A:0x30B3,
		0xFF7B:0x30B5, 0xFF7C:0x30B7, 0xFF7D:0x30B9, 0xFF7E:0x30BB, 0xFF7F:0x30BD,
		0xFF80:0x30BF, 0xFF81:0x30C1, 0xFF82:0x30C4, 0xFF83:0x30C6, 0xFF84:0x30C8,
		0xFF85:0x30CA, 0xFF86:0x30CB, 0xFF87:0x30CC, 0xFF88:0x30CD, 0xFF89:0x30CE,
		0xFF8A:0x30CF, 0xFF8B:0x30D2, 0xFF8C:0x30D5, 0xFF8D:0x30D8, 0xFF8E:0x30DB,
		0xFF8F:0x30DE, 0xFF90:0x30DF, 0xFF91:0x30E0, 0xFF92:0x30E1,	0xFF93:0x30E2,
		0xFF94:0x30E4, 0xFF95:0x30E6, 0xFF96:0x30E8, 0xFF97:0x30E9, 0xFF98:0x30EA,
		0xFF99:0x30EB, 0xFF9A:0x30EC, 0xFF9B:0x30ED, 0xFF9C:0x30EF, 0xFF9D:0x30F3,
		0xFF9E:0x309B, 0xFF9F:0x309C, 0xFF66:0x30F2
	};
	
	for(i=text.length-1;0<=i;i--){
		charCode = text.charCodeAt(i);
		if (m[charCode]){
			charArray[i] = m[charCode];
		}
		else{
			charArray[i] = charCode;
		}
	}
	
	return String.fromCharCode.apply(null, charArray);
}


function toKatakanaCase(text){
	var i, charCode, m, charArray = [];
	for(i=text.length-1;0<=i;i--){
		charCode = text.charCodeAt(i);
		if(0x3041 <= charCode && charCode <= 0x3096){
			charArray[i] = charCode + 0x0060 ;
		}
		else{
			charArray[i] = charCode;
		}
	}
	return String.fromCharCode.apply(null, charArray);
}

function toHiraganaCase(text){
	var i, charCode, m, charArray = [];
	for(i=text.length-1;0<=i;i--){
		charCode = text.charCodeAt(i);
		if(0x3041 <= charCode && charCode <= 0x3096){
			charArray[i] = charCode + 0x0060 ;
		}
		else{
			charArray[i] = charCode;
		}
	}
	return String.fromCharCode.apply(null, charArray);
}
//半角の濁点、半角の半濁点の処理
function toPaddingCase(text){
	var i, charCode, charArray = [];
	for(i=0;i<text.length;i++)
	{
		charCode = text.charCodeAt(i);
		switch(true)
		{
			case (0x304B <= charCode && charCode <= 0x3052 && (charCode % 2 == 1)):
			case (0x30AB <= charCode && charCode <= 0x30C2 && (charCode % 2 == 1)):
			case (0x3064 <= charCode && charCode <= 0x3069 && (charCode % 2 == 0)):
			case (0x30C4 <= charCode && charCode <= 0x30C9 && (charCode % 2 == 0)):
				charArray.push(charCode + ({0x309B:1}[text.charCodeAt(i+1)] || 0));
				if(charArray[charArray.length-1] != charCode){ i++; };
				break;
			case (0x306F <= charCode && charCode <= 0x307F && (charCode % 3 == 0)):
			case (0x30CF <= charCode && charCode <= 0x30DD && (charCode % 3 == 0)):
				charArray.push(charCode + ({0x309B:1,0x309C:2}[text.charCodeAt(i+1)] || 0));
				if(charArray[charArray.length-1] != charCode){ i++; };
				break;
			case (0x3046 == charCode || 0x30a6 == charCode):
				charArray.push(charCode + ({0x309B:78}[text.charCodeAt(i+1)] || 0));
				if(charArray[charArray.length-1] != charCode){ i++; };
				break;
			default:
				charArray.push(charCode);
				break;
			}
	}
	return String.fromCharCode.apply(null, charArray);
}
function changeAuthority(school_id,requestURL){
	location.href='/atmark/admin/changeAuthority.php?school_id='+school_id+'&url='+requestURL;
}
function changeAuthorityMypage(school_id,requestURL){
	location.href='/atmark/mypage/changeAuthority.php?school_id='+school_id+'&url='+requestURL;
}
function dateFormat(obj,flg){
	currentDateObject = new Date();
	currentFullYear   = currentDateObject.getYear();
	if (currentFullYear < 2000) { currentFullYear += 1900; }
	var str0=obj.value;
	if(flg){
		if(str0==""){
			return
		}else if(str0.match(/[0-9]{8}$/)){
			str1=str0.substring(0,4)+"/"+str0.substring(4,6)+"/"+str0.substring(6,8)
			obj.value=str1
		}else if(str0.match(/[0-9]{6}$/)){
			str1=20+str0.substring(0,2)+"/"+str0.substring(2,4)+"/"+str0.substring(4,6)
			obj.value=str1
		}else if(str0.match(/[0-9]{4}$/)){
			str1=currentFullYear+"/"+str0.substring(0,2)+"/"+str0.substring(2,4)
			obj.value=str1
		}else if(str0.match(/^[0-9]{1,2}\/[0-9]{1,2}$/)){
			strarray = str0.split("/");
			str1= currentFullYear + "/" + (pad(strarray[0],2,'0')) + "/" + (pad(strarray[1],2,'0'));
			obj.value=str1
		}
	}else{
		str1=str0.split("/").join("");
		obj.value=str1
	}
}
function timeFormat(obj,flg){
	var str0=obj.value;
	if(flg){
		if(str0==""){
			return
		}else if(str0.match(/[0-9]{4}$/)){
			str1=str0.substring(0,2)+":"+str0.substring(2,4)
			obj.value=str1
		}else if(str0.match(/^[0-9]{1,2}\：[0-9]{1,2}$/)){
			strarray = str0.split("：");
			str1= (pad(strarray[0],2,'0')) + ":" + (pad(strarray[1],2,'0'));
			obj.value=str1
		}
	}
}
function pad(str, len, ch){return new Array(len-(''+str).length+1).join(ch) + str}

function check_count(data,$count){
	str = data.value;
	var count = 0;
    for(var i = 0; i < str.length; i++) {
       if (escape(str.charAt(i)).length < 4) {
          count++;
       }
       else {
          count += 2;
       }
    }
	if(count > $count)
	alert(count + 'バイトで登録されようとしています。');
}
