/*---------------------------------------------------------------
	管理画面用モジュール
		Update: 2008/11/26
---------------------------------------------------------------*/

//--- エンターによるカーソル移動 ---
function doNext(f,kbn){
	if(kbn==2){
		// button function
		if(check_val(f)){f.submit();}
	}else if(window.event.keyCode == 0x0d) { 
		if(kbn==0){
			window.event.keyCode = 0x09;
		}else if(kbn==1){
			if(check_val(f)){f.submit();}
		}else{
			window.event.keyCode = null;
		}
	}
}


//--- 登録画面へ遷移 ---
function doInsert(f,id){
	f.elements['seqno'].value = id;
	f.submit();
}


//--- 削除処理 ---
function doDelete(f){
	if (confirm("この情報を削除しますか？")) { 
		f.submit();
	}
}

//--- 削除処理 ---
function doDelimg(f,id){
	if (confirm("この画像ファイルを削除しますか？")) { 
		f.seqno.value = id;
		f.submit();
	}
}

//--- データキャンセル ---
function doCancel(f, id){
	if(confirm("この情報をキャンセルしますか？")){ 
		f.seqno.value = id;
		f.submit();
	}
}

//--- ログアウト処理 ---
function doLogout(){
	if(confirm("ログアウトしますか？")){ 
		fout.submit();
	}
}

//--- フォーカスカラー ----
window.onload = function(){
	var inputTags = document.getElementsByTagName("input");
	for( var ix = 0; ix < inputTags.length; ix++ ) {
		if(inputTags[ix].readOnly){continue;}
		if ((inputTags[ix].type == 'text') || (inputTags[ix].type == 'password')) {
			inputTags[ix].onfocus = function(){this.style.background = '#FFFFCC';}
			inputTags[ix].onblur = function(){this.style.background = '#FFFFFF';}
		}
	}
	var txtTags = document.getElementsByTagName("textarea");
	for( var ix = 0; ix < txtTags.length; ix++ ) {
		if(txtTags[ix].readOnly){continue;}
		txtTags[ix].onfocus = function(){this.style.background = '#FFFFCC';}
		txtTags[ix].onblur = function(){this.style.background = '#FFFFFF';}
	}
}

//--- selectboxプルダウン禁止 ----
function WheelDiscon() {
    document.onmousewheel = function(){
        var target_tags = event.srcElement ? event.srcElement : null;
        if (target_tags && target_tags.tagName && target_tags.tagName.toLowerCase() == 'select' && target_tags.size <= 1){
            event.returnValue = false;
            event.cancelBubble = true;
        }
    }
}

//--- 項目クリア（検索画面) ----
function doClear(f){
	//f.reset(); 
    for(var i=0; i<f.elements.length; ++i) {
        clearElement(f.elements[i]);
    }
}

function clearElement(element) {
    switch(element.type) {
        case "hidden":
        case "submit":
        case "reset":
        case "button":
        case "image":
        case "file":
            return;
        case "text":
        case "password":
        case "textarea":
            element.value = "";
            return;
        case "checkbox":
        case "radio":
            element.checked = false;
            return;
        case "select-one":
        case "select-multiple":
            element.selectedIndex = 0;
            return;
        default:
    }
}

//--- 日付入力チェック ---
function makedate(f,id){
	val = f.elements[id].value.replace("\/","").replace("\/","");
	if((val=="")||(val.length==0)){
		// 何もしない
	}else if((val.length>8)||((eval(val))==0)){
		alert("The date value was wrong.");
	}else{
		today = new Date();
		year  = today.getFullYear();
		month = today.getMonth() + 1;
		date  = today.getDate();

		// 日付にスラッシュが入ったときの対応
		val2 = f.elements[id].value.split("\/");
		if(val2.length>1){
			if(val2.length==2){
				val2[2] = val2[1];
				if(val2[0]>12){val2[1] = 12;}else{val2[1] = val2[0];}
				val2[0] = year;
			}
			if(val2[1].length==1){val2[1] = "0" + val2[1];}
			if((val2.length==3)&&(val2[2].length==1)){val2[2] = "0" + val2[2];}
			val = val2[0] + val2[1] + val2[2];
		}

		if(val.length<=2){
			date  = val;
		}else if(val.length==3){
			month = val.substr(0,1);
			date  = val.substr(1,2);
		}else if(val.length==4){
			month = val.substr(0,2);
			date  = val.substr(2,2);
		}else if(val.length==5){
			year  = 2000 + eval(val.substring(0,1));
			month = val.substr(1,2);
			date  = val.substr(3,2);
		}else if(val.length==6){
			year  = 2000 + eval(val.substring(0,2));
			month = val.substr(2,2);
			date  = val.substr(4,2);
		}else if(val.length==7){
			year  = 2000 + eval(val.substring(0,3));
			month = val.substr(3,2);
			date  = val.substr(5,2);
		}else if(val.length==8){
			year  = val.substr(0,4);
			month = val.substr(4,2);
			date  = val.substr(6,2);
		}

		// 日付の再確認（エラー回避）
		today = new Date(year,month-1,date);
		year  = today.getFullYear();
		month = today.getMonth() + 1;
		date  = today.getDate();
		if(month<=9){month = "0" + month;}
		if(date<=9) {date  = "0" + date;}

		mkdate = year + "/" + month + "/" + date;
		f.elements[id].value = mkdate;
 	}
}


//--- 文字byte数カウント ---
function getByteCount(val) {
	var count = 0;
	for (var i = 0; i < val.length; ++i) {
		var sub = val.substring(i, i + 1);
		var c = sub.charCodeAt(0);
		if (c < 256 || (c >= 0xff61 && c <= 0xff9f)) {
			count += 1;
		}else{
			count += 2;
		}
	}
	return count;
}

//--- Input values check ---
function checklen(f){
	// MAXLENGTHチェック（共通）
	var ecnt = 0;
	var obj  = null;
	for(i=0; i<f.elements.length; i++){ 
		if(f.elements[i].type!="text"){continue;}
		var maxlen  = f.elements[i].maxLength;
		var bytelen = getByteCount(f.elements[i].value);
		if((maxlen>0)&&(bytelen>maxlen)){
			if(ecnt==0){obj = f.elements[i];}
			f.elements[i].style.backgroundColor = "#EF8989";
			ecnt++;
		}else{
			f.elements[i].style.backgroundColor = "#FFFFFF";
		}
	}
	if(ecnt>0){
		alert("赤くなった項目は文字数が多すぎます。");
		obj.focus();
		return false;
	}
	return true;
}

