//*********************************************************************
//**	関数名	：	JSP_TEXTCHECK(pr_Text,pr_Msg,pr_Kbn)
//**	機  能	：	入力必須チェック
//**	@param	：	pr_Text = オブジェクト
//**	@param	：	pr_Msg  = 表示メッセージ
//**	@param	：	pr_Kbn  = 0:ドロップダウン、1:入力エリア
//**	戻り値	：	true=入力されている、false=未入力
//*********************************************************************
function JSP_TEXTCHECK(pr_Text,pr_Msg,pr_Kbn) {
	if (pr_Text.value == '') {
		if (pr_Kbn == '0') {
			alert(pr_Msg + 'を選択して下さい。');
			pr_Text.focus();
		} else {
			alert(pr_Msg + 'を入力して下さい。');
			pr_Text.focus();
			pr_Text.select();
		}
		return false;
	} else {
		return true;
	}
}

//*********************************************************************
//**	関数名	：	JSP_LENCHECK(pr_Text,pr_Msg,pr_Len)
//**	機  能	：	バイト数チェック
//**	@param	：	pr_Text = オブジェクト
//**	@param	：	pr_Msg  = 表示メッセージ
//**	@param	：	pr_Len  = 最大バイト数
//**	戻り値	：	バイト数
//*********************************************************************
function JSP_LENCHECK(pr_Text,pr_Msg,pr_Len) {
	if (JSP_LEN2(pr_Text.value) > pr_Len) {
		alert(pr_Msg + 'は' + pr_Len + 'バイト以内で入力して下さい。');
		pr_Text.focus();
		pr_Text.select();
		return false;
	} else {
		return true;
	}
}

//*********************************************************************
//**	関数名	：	JSP_ISNUMBER(str)
//**	機  能	：	数値かどうかを判定
//**	@param	：	str = 値
//**	戻り値	：	true = 数値のみ、False = 数値以外
//*********************************************************************
function JSP_ISNUMBER(str) {
	if (str.match(/[^0-9]/g)) {
		return false;
	} else {
		return true;
	}
}

//*********************************************************************
//**	関数名	：	JSP_LENB2(str)
//**	機  能	：	バイト数チェック
//**	@param	：	str = 値
//**	戻り値	：	バイト数
//*********************************************************************
function JSP_LEN2(str) {
	var code;
	var len = 0;

	for (var i = 0; i < str.length; i++) {
		code = str.charCodeAt(i);
		if (((code > 0x000000ff) && (code < 0x0000ff60)) || (code > 0x0000ff9f) || (code == 0x0000002c)) {
			len += 2;
		} else {
			len += 1;
		}
	}
	return len;
}

//update 20070409 furukawa
//*********************************************************************
//**	関数名	：	upload_open()
//**	機  能	：	画像アップロードウィンドウ表示
//**	@param	：	
//**	戻り値	：	
//*********************************************************************
var win1='';
function upload_open(imggif,file_pass){
	var url;
	url = "upload.php?img=" + imggif;
	url = url + "&file_pass=" + file_pass;

	win1 = window.open(url, "WindowOpen",
				"toolbar=no, location=no, directories=no, status=yes, menubar=no, scrollbars=no, resizable=no, height=250, width=600 left=100, top=100");
	win1.focus();
	return false;
}
//*********************************************************************
//**	関数名	：	window_close()
//**	機  能	：	ウィンドウクローズ処理
//**	@param	：	
//**	戻り値	：	
//*********************************************************************
function window_close() {
	
	//** 画像アップロード画面
	if (win1 != '') {
		win1.close();
	}
}

//*********************************************************************
//**	関数名	：	JSP_TEXTtrim()
//**	機  能	：	テキストフィールド左端右端の半角全角空白を削除する
//**	@param	：	val :文字列
//**			：	patarn :'r'or'R' 右側の空白削除、'l'or'L' 左側の空白削除
//**			：		　 :'a'or'A'or''or(省略)　左右の空白削除
//**	戻り値	：	true
//*********************************************************************
function JSP_TEXTtrim(obj,type){
	obj.value = arguments.length==1?
				JSP_trim(obj.value):
				JSP_trim(obj.value,type);
	return true;
}

//*********************************************************************
//**	関数名	：	JSP_trim()
//**	機  能	：	文字列前後の半角全角空白を削除する
//**	@param	：	val :文字列
//**			：	patarn :'r'or'R' 前の空白削除、'l'or'L' 後の空白削除
//**			：		　 :'a'or'A'or''or(省略)　前後の空白削除
//**	戻り値	：	空白削除後の文字列
//*********************************************************************
function JSP_trim(val,type){
	pt = /^[　\s]+|[　\s]+$/g;

	if(arguments.length>1){
		switch (type.toUpperCase()) {
		case '':
		case 'A':
			break;
		case 'R':
			pt = /[　\s]+$/g;
			break;
		case 'L':
			pt = /^[　\s]+/g;
			break;
		default:
			return val;
			break;
		}	
	}
	return val.replace(pt, "");
}

//*********************************************************************
//**	関数名	：	JSP_chkKatakana()
//**	機  能	：	カタカナのチェックを行う
//**	@param	：	val :文字列
//**	戻り値	：	true:正	false：不正
//*********************************************************************
function JSP_chkKatakana(val){
	if(val.match(/[^ア-ー　\s]/)){
		return false;
	}
	return true;
}

//*********************************************************************
//**	関数名	：	JSP_chkZipcode()
//**	機  能	：	郵便番号形式のチェックを行う
//**	@param	：	val :文字列
//**	戻り値	：	true:正	false：不正
//*********************************************************************
function JSP_chkZipcode(val){
	if(val == ""){return false;}
	if(!val.match(/^\d+\-\d+$/)){
		return false;
	}
	return true;
}

//*********************************************************************
//**	関数名	：	JSP_chkTelephone()
//**	機  能	：	電話番号形式のチェックを行う
//**	@param	：	val :文字列
//**	戻り値	：	true:正	false：不正
//*********************************************************************
function JSP_chkTelephone(val){
	if(val == ""){return false;}
	
	if(!val.match(/^0[5-9]0-/)){
		data1 = val.match(/^[0-9-]{11,12}$/);
		data2 = val.match(/^0\d{1,5}-{0,1}\d{0,4}-\d{4}$/);
	} else {
		data1 = val.match(/^[0-9-]{13}$/);
		data2 = val.match(/^\d{3}-\d{3,4}-\d{4,5}$/);
	}
	if(!data1 || !data2){
		return false;
	}
	return true;
}

//*********************************************************************
//**	関数名	：	JSP_chkEmail()
//**	機  能	：	Email形式のチェックを行う
//**	@param	：	val :文字列
//**	戻り値	：	true:正	false：不正
//*********************************************************************
function JSP_chkEmail(val){
	if(val == ""){return false;}
	if(!val.match(/^[A-Za-z0-9]+[\w\.-]+@[\w\.-]+\.\w{2,}$/)){
		return false;
	}
	return true;
}

//*********************************************************************
//**	関数名	：	JSP_chkPassword()
//**	機  能	：	パスワードのチェックを行う
//**	@param	：	val :文字列
//**	戻り値	：	true:正	false：不正
//*********************************************************************
function JSP_chkPassword(val){
	if(val == ""){return false;}
//	if(val.match(/[^\w\.-]/)){
	if(val.match(/[^A-Za-z0-9]/)){
		return false;
	}
	return true;
}


//*********************************************************************
//**	関数名	：	JSP_chkDateAndFormat()
//**	機  能	：	日付チェックを行い日付と認識できればYYYY-MM-DD形式に変換する
//**	@param	：	val :チェック･変換対象
//**			：	obj :変換後データ表示オブジェクト(必要な場合のみ)
//**	戻り値	：	true:正	false：不正
//*********************************************************************
function JSP_chkDateAndFormat(val,obj){
	pos = "-"
	ryear = "";
	
	if(JSP_ISNUMBER(val)){
		len = val.length;
		if(len==6){
			ryear = JSP_cangeYearFormat(val.substr(0,2));
			rmonth = val.substr(2,2);
			rday = val.substr(4,2);
		} else
		if(len==8){
			ryear = val.substr(0,4);
			rmonth = val.substr(4,2);
			rday = val.substr(6,2);
		}
	} else
	if(val.match(/^(\d{1,4})(\-|\/)(\d{1,2})(\-|\/)(\d{1,2})$/)){
		ryear  = RegExp.$1.length==4?RegExp.$1:JSP_cangeYearFormat(RegExp.$1);
		rmonth = RegExp.$3.length==2?RegExp.$3:"0"+RegExp.$3;
		rday   = RegExp.$5.length==2?RegExp.$5:"0"+RegExp.$5;
	}
	if(ryear==""){return false;}
	
	rdate = ryear + pos + rmonth + pos + rday;

	if(!JSP_chkDate(rdate)){return false;}
	
	if(val!=rdate && arguments.length == 2){
		switch (typeof(obj)){
		case 'object':
			try{
				if(typeof(obj.value)=='undefined'){
					if(typeof(obj.innerHTML)){
						obj.innerHTML = rdate;
					}
				}else{
					obj.value = rdate;
				}
			}catch(e){
//				alert("err");	//debug
			}
			break;
		case 'string':
			eval(obj+"='"+rdate+"'");
			break;
		}
	}
	return true;
}

//*********************************************************************
//**	関数名	：	JSP_chkDate()
//**	機  能	：	YYYY-MM-DD,YYYY/MM/DD形式の日付チェックを行う
//**	@param	：	val :文字列
//**	戻り値	：	true:正	false：不正
//*********************************************************************
function JSP_chkDate(val){
	if(val == ""){return false;}
	
	if(val.match(/^(19\d\d|20\d\d)(\-|\/)(0[1-9]|1[0-2])(\-|\/)(0[1-9]|[12][0-9]|3[0-1])$/)){
		ryear  = parseInt(RegExp.$1,10);
		rmonth = parseInt(RegExp.$3,10);
		rday   = parseInt(RegExp.$5,10);
		switch (rmonth){
		case 4:
		case 6:
		case 9:
		case 11:
			if(rday==31){
				return false;
			}
			break;
		case 2:
			if ((ryear % 4 ==0) && (ryear % 100 != 0) || (ryear % 400 == 0)) {
				if (rday > 29) {
					return false;
				}	
			} else {
				if (rday > 28) {
					return false;
				}
			}
			break;
		}
	} else{
		return false;
	}
	return true;
}

//*********************************************************************
//**	関数名	：	JSP_cangeYearFormat()
//**	機　能	：年の編集（00/01/01〜29/12/31 → 2000/01/01〜2029/12/31
//**						30/01/01〜99/12/31 → 1930/01/01〜1999/12/31）
//**	@param	：	val :文字列(YY)
//**	戻り値	：	YYYYの年
//*********************************************************************
function JSP_cangeYearFormat(year) {
	if (parseInt(year,10) >= 00 && parseInt(year,10) <= 29) {
		return "20" + year;
	} else {
		return "19" + year;
	}
}

//*********************************************************************
//**	関数名	：	JSP_insertTopImage()
//**	機　能	：トップメニューのFlushを表示する
//**	@param	：
//**	戻り値	：
//*********************************************************************
function JSP_insertTopImage(){
	document.write('<embed src="./image/top.swf" quality="high" bgcolor="#ffffff" width="750" height="450" loop="false" name="top" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />\n');
}

//2009.02.06 hashikawa start 時刻チェック、変換追加
//*********************************************************************
//**	関数名	：	JSP_chkTimeAndFormat()
//**	機  能	：	時刻チェックを行い時刻と認識できればHH:mm:SS形式に変換する
//**	@param	：	val :チェック･変換対象
//**			：	obj :変換後データ表示オブジェクト(必要な場合のみ)
//**	戻り値	：	true:正	false：不正
//*********************************************************************
function JSP_chkTimeAndFormat(val,obj){
	pos = ":"
	rhour = "";
	
	if(JSP_ISNUMBER(val)){
		len = val.length;
		if(len==6){
			rhour = val.substr(0,2);
			rminute = val.substr(2,2);
			rsecond = val.substr(4,2);
		}
	} else
	if(val.match(/^(\d{1,2}):(\d{1,2}):(\d{1,2})$/)){
		rhour  = RegExp.$1.length==2?RegExp.$1:"0"+RegExp.$1;
		rminute = RegExp.$2.length==2?RegExp.$2:"0"+RegExp.$2;
		rsecond  = RegExp.$3.length==2?RegExp.$3:"0"+RegExp.$3;
	}
	if(rhour==""){return false;}
	
	rtime = rhour + pos + rminute + pos + rsecond;

	if(!JSP_chkDate(rdate)){return false;}
	
	if(val!=rtime && arguments.length == 2){
		switch (typeof(obj)){
		case 'object':
			try{
				if(typeof(obj.value)=='undefined'){
					if(typeof(obj.innerHTML)){
						obj.innerHTML = rtime;
					}
				}else{
					obj.value = rtime;
				}
			}catch(e){
//				alert("err");	//debug
			}
			break;
		case 'string':
			eval(obj+"='"+rtime+"'");
			break;
		}
	}
	return true;
}

//*********************************************************************
//**	関数名	：	JSP_chkTime()
//**	機  能	：	HH:mm:SS形式の日付チェックを行う
//**	@param	：	val :文字列
//**	戻り値	：	true:正	false：不正
//*********************************************************************
function JSP_chkTime(val){
	if(val == ""){return false;}
	
	if(val.match(/^(2[0-3]|[0-1][0-9]):([0-5][0-9]):([0-5][0-9])$/)){
		return true
	} else{
		return false;
	}
}
//2009.02.06 hashikawa end 時刻チェック、変換追加

