//JavaScriptFormLibrary

////////////////////////////////////////////////////////////
//                   パブリック変数
////////////////////////////////////////////////////////////
tuki_tbl = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
strHira = "ぁあぃいぅうぇえぉおかきくけこさしすせそたちっつてとなにぬねのはひふへほまみむめもゃやゅゆょよらりるれろわをんがぎぐげござじずぜぞだぢづでどばびぶべぼぱぴぷぺぽ 　";
strKata = "ァアィイゥウェエォオカキクケコサシスセソタチッツテトナニヌネノハヒフヘホマミムメモャヤュユョヨラリルレロワヲンガギグゲゴザジズゼゾダヂヅデドバビブベボパピプペポ 　";
strNumeric = "1234567890";
strAlpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
strNumericFull = "１２３４５６７８９０";
strAlphaFull = "ＡＢＣＤＥＦＧＨＩＪＫＬＭＮＯＰＱＲＳＴＵＶＷＸＹＺａｂｃｄｅｆｇｈｉｊｋｌｍｎｏｐｑｒｓｔｕｖｗｘｙｚ";
strHankaku = strNumeric + strAlpha + "-_ｧｱｨｲｩｳｪｴｫｵｶｷｸｹｺｻｼｽｾｿﾀﾁｯﾂﾃﾄﾅﾆﾇﾈﾉﾊﾋﾌﾍﾎﾏﾐﾑﾒﾓｬﾔｭﾕｮﾖﾗﾘﾙﾚﾛﾜｦﾝｰﾟ!#0&'()=`|~{+*}<>?^@[;:],./$\%\\ﾞ\"\'";
strURI = "-_@.:/";
strURIFull = "－＿＠．：／";
//ADD:KWHR
strColor = "#0123456789ABCDEFabcdef";
////////////////////////////////////////////////////////////
//              フォームコントロール関数
////////////////////////////////////////////////////////////
// 指定文字数によるオートフォーカス
function Next( fromObj, toObj, cnt ){
	if( fromObj.value.length == cnt ){
		toObj.focus();
	}
}
// 半角を全角に（英数字のみ対応）


function convZenkaku( obj ){
	moji1 = strNumeric + strAlpha + strURI;
	moji2 = strNumericFull + strAlphaFull + strURIFull;
	motoTxt = obj.value;
	obj.value = "";
	for(i=0; i<motoTxt.length; i++)
	{
		c = motoTxt.charAt(i);
		n = moji1.indexOf(c,0);
		if(n >=0 )
			 c = moji2.charAt(n);
		obj.value += c;
	}
}
// 全角を半角に（英数字のみ対応）


function convHankaku( obj ){
	moji1 = strNumericFull + strAlphaFull + strURIFull;
	moji2 = strNumeric + strAlpha + strURI;
	motoTxt = obj.value;
	obj.value = "";
	for(i=0; i<motoTxt.length; i++)
	{
		c = motoTxt.charAt(i);
		n = moji1.indexOf(c,0);
		if(n >=0 )
			 c = moji2.charAt(n);
		obj.value += c;
	}
}
// ひらがねをカタカナに変換（全角文字のみ対応）


function convKatakana( obj ){
	moji1 = strHira;
	moji2 = strKata;
	motoTxt = obj.value;
	obj.value = "";
	for(i=0; i<motoTxt.length; i++)
	{
		c = motoTxt.charAt(i);
		n = moji1.indexOf(c,0);
		if(n >=0 )
			 c = moji2.charAt(n);
		obj.value += c;
	}
}
// カタカナをひらがねに変換（全角文字のみ対応）


function convHiragana( obj ){
	moji1 = strKata;
	moji2 = strHira;
	motoTxt = obj.value;
	obj.value = "";
	for(i=0; i<motoTxt.length; i++)
	{
		c = motoTxt.charAt(i);
		n = moji1.indexOf(c,0);
		if(n >=0 )
			 c = moji2.charAt(n);
		obj.value += c;
	}
}

////////////////////////////////////////////////////////////
//                  内部処理関数
////////////////////////////////////////////////////////////
// インデックス用ブラケット付加
function makeTitle( title, index ){
	var txt = "";
	if(index==""){
		txt = title;
	} else {
		txt = title + "[" + index + "]";
	}
	return txt;
}

// 文字探査報告


function InFlag( c, aryChar ){
	var flg = false;
	var i = 0;

	for(i=0;i<aryChar.length;i++)
		if(c == aryChar.charAt(i)) flg = true;
	return flg;
}

// 閏年対応


function uruu(y){
	if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0){
		tuki_tbl[1] = 29;
	} else {
		tuki_tbl[1] = 28;
	}
}

////////////////////////////////////////////////////////////
//                  基本チェック関数
////////////////////////////////////////////////////////////
// 未入力チェック
function isInput( obj ) {
	return obj.value != "";
}
// 半角英字チェック
function isAlpha( obj ){
	var flg = true;
	var i = 0;

	for(i=0;i<obj.value.length;i++){
		if(!(InFlag( obj.value.charAt(i), strAlpha ))){
			flg = false;
		}
	}
	return flg;
}

// 半角数字チェック
function isNumeric( obj ){
	var flg = true;
	var i = 0;
	if( obj.type == "select-one" ){
		for(i=0;i<obj.options[obj.selectedIndex].value.length;i++){
			if(!(InFlag( obj.options[obj.selectedIndex].value.charAt(i), strNumeric ))){
				flg = false;
			}
		}
	}else{
		for(i=0;i<obj.value.length;i++){
			if(!(InFlag( obj.value.charAt(i), strNumeric ))){
				flg = false;
			}
		}
	}
	return flg;
}

// \" ダブルコーテーションチェック　$マークチェック
function isMark( obj ){
	var flg = true;
	var i = 0;

	for(i=0;i<obj.value.length;i++){
		if(InFlag( obj.value.charAt(i),  "\"$" )){
			flg = false;
		}
	}
	return flg;
}
//ADD:KWHR:20020509
// \" ダブルコーテーションチェック　$マークチェック　｜マークチェック
function isMarkAndPipe( obj ){
	var flg = true;
	var i = 0;

	for(i=0;i<obj.value.length;i++){
		if(InFlag( obj.value.charAt(i),  "\"$|" )){
			flg = false;
		}
	}
	return flg;
}

// 半角英数字チェック
function isAlphaNumeric( obj ){
	var flg = true;
	var i = 0;

	for(i=0;i<obj.value.length;i++){
		if(!(InFlag( obj.value.charAt(i), strNumeric + strAlpha ))){
			flg = false;
		}
	}
	return flg;
}
// 半角数字ハイフンチェック
function isNumericHyphen( obj ){
	var flg = true;
	var i = 0;

	for(i=0;i<obj.value.length;i++){
		if(!(InFlag( obj.value.charAt(i), strNumeric + "-" ))){
			flg = false;
		}
	}
	return flg;
}
// 全角ひらがなチェック
function isHiragana( obj ){
	var flg = true;
	var i = 0;

	for(i=0;i<obj.value.length;i++){
		if(!(InFlag( obj.value.charAt(i), strHira+"ー" ))){
			flg = false;
		}
	}
	return flg;
}
// 全角カタカナチェック
function isKatakana( obj ){
	var flg = true;
	var i = 0;

	for(i=0;i<obj.value.length;i++){
		if(!(InFlag( obj.value.charAt(i), strKata+"ー" ))){
			flg = false;
		}
	}
	return flg;
}
// 全角文字チェック
function isZenkaku( obj ){
	var flg = true;
	var i = 0;

	for(i=0;i<obj.value.length;i++){
		if(InFlag( obj.value.charAt(i), strHankaku )){
			flg = false;
		}
	}
	return flg;
}
// ラジオボタンチェッカー
function isRadio( obj ){
	var flg = false;
	var i = 0;
	for(i=0;i<obj.length;i++){
		if(obj[i].checked)
			flg = true;
	}
	return flg;
}

function isCheckBox( obj ){
	var flg = false;
	if(obj.checked) flg = true;
	return flg;
}

function isSelect( obj ){
	var flg = false;
	if( obj.options.selectedIndex != -1 ){
			flg = true;
	}
	return flg;
}


////////////////////////////////////////////////////////////
//                  詳細チェック関数
////////////////////////////////////////////////////////////
// 未入力チェック
function InputChecker( obj, title, index ){
	var msg = "";

	if( !isInput(obj) ){
		msg += makeTitle(title,index) + "が未入力です。\r\n";
	}

	return msg;
}
// 全角文字チェック
function ZenkakuChecker( obj, title, index ){
	var msg = "";

	if( !isInput(obj) ){
		msg += makeTitle(title,index) + "が未入力です。\r\n";
	} else if (!isZenkaku(obj)) {
		msg += makeTitle(title,index) + "は全角文字で入力してください。\r\n";
	}

	return msg;
}

// 半角数字チェック
function AlphaChecker( obj, title, index ){
	var msg = "";

	if( !isInput(obj) ){
		msg += makeTitle(title,index) + "が未入力です。\r\n";
	} else if (!isAlpha(obj)) {
		msg += makeTitle(title,index) + "は半角英字で入力してください。\r\n";
	}

	return msg;
}

// 半角数字チェック
function NumericChecker( obj, title, index ){
	var msg = "";

	if( !isInput(obj) ){
		msg += makeTitle(title,index) + "が未入力です。\r\n";
	} else if (!isNumeric(obj)) {
		msg += makeTitle(title,index) + "は半角数字で入力してください。\r\n";
	}

	return msg;
}

// 半角英数字チェック
function AlphaNumericChecker( obj, title, index ){
	var msg = "";

	if( !isInput(obj) ){
		msg += makeTitle(title,index) + "が未入力です。\r\n";
//	} else if ( isNumeric(obj) && isAlpha(obj) ) {
	}else if(!isAlphaNumeric(obj)){
		msg += makeTitle(title,index) + "は半角英数字で入力してください。\r\n";
	}

	return msg;
}


// 半角数字ハイフンチェック
function NumericHyphenChecker( obj, title, index ){
	var msg = "";

	if( !isInput(obj) ){
		msg += makeTitle(title,index) + "が未入力です。\r\n";
	} else if (!isNumericHyphen(obj)) {
		msg += makeTitle(title,index) + "は半角数字と - で入力してください。\r\n";
	}

	return msg;
}

// カタカナのチェック
function KatakanaChecker( obj, title, index ){
	var msg = "";

	if( !isInput(obj) ){
		msg += makeTitle(title,index) + "が未入力です。\r\n";
	} else if (!isKatakana(obj)) {
		msg += makeTitle(title,index) + "は全角カナ文字で入力してください。\r\n";
	}

	return msg;
}

// ひらがなのチェック
function HiraganaChecker( obj, title, index ){
	var msg = "";

	if( !isInput(obj) ){
		msg += makeTitle(title,index) + "が未入力です。\r\n";
	} else if (!isHiragana(obj)) {
		msg += makeTitle(title,index) + "は全角かな文字で入力してください。\r\n";
	}

	return msg;
}
// 文字列チェック
function LengthChecker( obj, title, index ,len ){
	var msg = "";

	if( !isInput(obj) ){
		msg += makeTitle(title,index) + "が未入力です。\r\n";
	} else if ( obj.value.length > len ) {
		msg += makeTitle(title,index) + "は" + len + "文字以内で入力してください。\r\n";
	}

	return msg;
}

// 郵便番号フィールドのチェック
function PostFieldsChecker( obj1, obj2, title , index ){
	var msg = "";
	msg += NumericChecker(obj1,title,index + "上3桁");
	if( obj1.value.length != 3 ) makeTitle(title,index + "上3桁") + "は数字３桁で入力してください。\r\n";
	msg += NumericChecker(obj2,title,index + "下4桁");
	if( obj2.value.length != 4 ) makeTitle(title,index + "上4桁") + "は数字４桁で入力してください。\r\n";
	return msg;
}

// 電話番号フィールドのチェック
function TelFieldsChecker( obj1, obj2, obj3, title, index ){
	var msg = "";
	msg += NumericChecker(obj1,title,index + "市外局番");
	msg += NumericChecker(obj2,title,index + "市内局番");
	msg += NumericChecker(obj3,title,index + "市内局番");
	return msg;
}
//パスワードチェック
function PassChecker( obj1, obj2, low, high, title, index ){
	var msg = "";
	if(high == 0) high = 1000;

	if( !isInput(obj1) ){
		msg += makeTitle(title,index) + "が未入力です。\r\n";
	} else if( !isInput(obj2) ) {
		msg += makeTitle(title+"再入力",index) + "が未入力です。\r\n";
	} else if( obj1.value.match( /[^0-9A-Za-z]+/ ) ) {
		msg += makeTitle(title,index) + "は半角英数字で入力して下さい。\r\n";
	} else if( obj1.value.length < low || obj2.value.length > high ){
		msg += makeTitle(title,index) + "は" + low + "桁以上" + high + "桁以下の半角英数字で入力して下さい。\r\n";
	} else if( obj2.value != obj1.value ) {
		msg += makeTitle(title,index) + "が再入力欄と一致していません。\r\n";
	}

	return msg;
}

//パスワードチェック2(変更
function PassChecker2( obj1, obj2, obj3, old, low, high, title, index ){
	var msg = "";
	if(high == 0) high = 1000;

	if( !isInput(obj1) ){
		msg += makeTitle(title,index) + "が未入力です。\r\n";
	} else if( !isInput(obj2) ) {
		msg += makeTitle(title+"再入力",index) + "が未入力です。\r\n";
	} else if( obj1.value.length < low || obj2.value.length > high ){
		msg += makeTitle(title,index) + "は" + low + "桁以上" + high + "桁以下の半角英数字で入力して下さい。\r\n";
	} else if( obj2.value != obj1.value ) {
		msg += makeTitle(title,index) + "が再入力欄と一致していません。\r\n";
	} else if( obj3 != old ){
	    msg += "現在のパスワードが誤っています。\r\n";
	}

	return msg;
}

// 電子メール書式チェック
function MailChecker( obj1 , obj2, title, index ){
	var msg = "";
	var flg = false;
	var i = 0;
	var code = 0;
	var atcnt = 0;
	var atpos = 0;
	var pdcnt = 0;
	

	
	if( !isInput(obj1) ){
		msg += makeTitle(title,index) + "が未入力です。\r\n";
	}else if(!isInput(obj2)){
		msg +=  makeTitle(title+"再入力",index) + "が未入力です。\r\n";
	}else if( obj1.value != obj2.value ) {
		msg += makeTitle(title,index) + "が再入力欄と一致していません。\r\n";
	}else{
		if ( !InFlag( obj1.value.charAt(0), strAlpha + strNumeric ) ) {
			msg += makeTitle(title,index) + "の先頭は半角英数字しか使えません。\n";
		}
		for(i=0;i<obj1.value.length;i++){
			code = obj1.value.charAt(i);

			if( !( InFlag( code, strAlpha + strNumeric + "@.-_" ) ) ){
				flg = true;
			}

			if( InFlag( code, "@" ) ){
				atcnt++;
				atpos = i;
			}
		}

		for(i=atpos;i<obj1.value.length;i++){
			code = obj1.value.charAt(i);

			if( InFlag( code, "." ) ){
				pdcnt++;
			}
		}
		if( flg ) msg += makeTitle(title,index) + "に使用できる文字は、半角英数字および @ . - _ です。\r\n";
		if( atcnt != 1 ) msg += makeTitle(title,index) + "には @ が１つだけ必要です。\r\n";
		if(pdcnt < 1) msg += makeTitle(title,index) + "には . が@の後に１つ以上必要です。\r\n";
		if(!obj1.value.match(/[.][a-z0-9]{2,}$/)) msg += makeTitle(title,index) + "の最後は２文字以上の半角英数字で入力してください。\r\n";
		if(!obj1.value.match(/@[a-z0-9._-]{2,}[.]\w*$/)) msg += makeTitle(title,index) + "の最後の.前に２文字以上入力してください。\r\n";
		if(!obj1.value.match(/@[a-z0-9]\w*/)) msg += makeTitle(title,index) + "の@の後は半角英数字で入力してください。\r\n";
	}
	return msg;
}

function URLChecker( obj, title, index ){
	var msg = "";
	var flg = false;
	var i = 0;
	var code = 0;
//	if( !isInput(obj) ){
//		msg += makeTitle(title,index) + "が未入力です。\r\n";
//	}
//	else{
		for(i=0;i<obj.value.length;i++){
			code = obj.value.charAt(i);
			if( !( InFlag( code, strAlpha + strNumeric + ":%=.&?/-_~" ) ) ){
				flg = true;
			}
		}
		if( flg ){
 			msg += makeTitle(title,index) + "に使用できる文字は、半角英数字および : & ? . % = / - _ ~ です。\r\n";
		}
//	}
	return msg;
}


function CalChecker( y, m, d, d_flg, f_flg, title, index ){
	var msg = "";
	var cal = new Date();
	var cal2;
	if(isInput(y)&&isInput(m)&&isInput(d)&&isNumeric(y)&&isNumeric(m)&&isNumeric(d)){
		uruu( y.value );
	 	if( m.value <1 || m.value > 12){
	 		msg += makeTitle(title,index) + "の月が 1 ～ 12 の範囲を超えています。\r\n";
	 	} else if( d.value < 1 || d.value > tuki_tbl[m.value -1]){
	 		msg += makeTitle(title,index) + "の日が 1 ～ " + tuki_tbl[m.value-1] + " の範囲を超えています。\r\n";
	 	} else if(y.value < 0){
				msg += makeTitle(title,index) + "の年は西暦で入力してください。\r\n";
		} else {
			cal2 = new Date(y.value,m.value-1,d.value);
			if(d_flg && cal2.getTime() < cal.getTime()) {
				msg += makeTitle(title,index) + "が過去のものになっています。\r\n";
			} else if(f_flg && cal2.getTime() > cal.getTime()) {
				msg += makeTitle(title,index) + "が未来のものになっています。\r\n";
			}
		}
	} else {
		msg += makeTitle(title,index) + "は未入力もしくは数字以外の値が入っています。\r\n";
	}

	return msg;
}

function RadioChecker(obj, title, index){
	var msg = "";
	if(!isRadio(obj)) msg += makeTitle(title,index) + "が選択されていません。\r\n";
	return msg;
}

function CheckChecker(obj, title, index){
	var msg = "";
	if(!isCheckBox(obj)) msg += makeTitle(title,index) + "が選択されていません。\r\n";
	return msg;
}
function SelectChecker(obj, title, index){
	var msg = "";
	var flg = false;
	if(!isSelect(obj)){
		msg += makeTitle(title,index) + "が選択されていません。\r\n";
	}else{
		for( i = 0; i < obj.options.length; i++ ){
			if( obj.options[i].selected != false && i != obj.options.selectedIndex ){
				flg = true;
			}
		}
		if( flg ) msg += makeTitle(title,index) + "は複数選択できません。\r\n";
	}
	return msg;
}
function strlen(str) {
	var r = 0;
	for ( i = 0; i < str.length; i++) {
		var c = str.charCodeAt(i);
		if ( (c >= 0x0 && c < 0x81) || (c == 0xf8f0) || (c >= 0xff61 && c < 0xffa0) || (c >= 0xf8f1 && c < 0xf8f4)) {
			r += 1;
		} else {
			r += 2;
		}
	}
	return r;
}
// 文字列前後の全角及び半角スペースを削除
function SpcTrim( s ) {
	var fs = "　";  //２文字判定対策


	while ( 1 == 1 ) {
		if ( s.length == 0 ) {
			return "";
		}
		if ( s.indexOf(" ") == 0 ) {
			s = s.substring( 1, s.length );
		} else if ( s.indexOf("　") == 0 ) {
			s = s.substring( fs.length, s.length );
		} else {
			break;
		}
	}
	while ( 1 == 1 ) {
		if ( s.length == 0 ) {
			return "";
		}
		if ( s.lastIndexOf(" ") == s.length-1 ) {
			s = s.substring( 0, s.lastIndexOf(" ") );
		} else if ( s.lastIndexOf("　") == s.length-1 ) {
			s = s.substring( 0, s.lastIndexOf("　") );
		} else {
			break;
		}
	}
	return s;
}

function InList( m, list ){
	var i = 0;
	var flg = false;
	for ( i=0; i<list.length; i++ ) {
		if ( list.options[i].text == m.value ) {
			flg = true;
		}
	}
	return flg;
}
//カラーの判断（＃と０～９とＡ～Ｆの半角英数字しか許さない）


function isColor(obj){
	var flg = true;
	for(i=0;i<obj.value.length;i++){
		if(!(InFlag( obj.value.charAt(i), strColor ))){
			flg = false;
		}			
	}
	return flg;
}
function CheckCarender(yyy,mmm,ddd,type){
		var msg = "";
		month = new Array(12)
		month[0] = 29;//うるう年の二月
		month[1] = 31;
		month[2] = 28;
		month[3] = 31;
		month[4] = 30;
		month[5] = 31;
		month[6] = 30;
		month[7] = 31;
		month[8] = 31;
		month[9] = 30;
		month[10] = 31;
		month[11] = 30;
		month[12] = 31;
		var yy;
		var mm;
		var dd;
		var i;
		for(var i=0;i<yyy.options.length;i++){
			if(yyy.options[i].selected){
				yy = eval(yyy.options[i].value);
			}
		}
		for(i=0;i<mmm.options.length;i++){
			if(mmm.options[i].selected){
				mm = eval(mmm.options[i].value);
			}
		}
		for(i=0;i<ddd.options.length;i++){
			if(ddd.options[i].selected){
				dd = eval(ddd.options[i].value);
			}
		}
		yy = eval(yy + type);	
		if (yy % 4 == 0 && yy % 100 != 0 || yy % 400 == 0){
			if( mm != 2 ){
				if( month[mm] < dd ){
//					msg = mm + "月は" + month[mm] +"日までです";
					return false;
				}
			}else{
				if( month[0] < dd ){
//					msg = mm + "月は" + month[mm] +"日までです";
					return false;
				}
			}
		}else{
			if( month[mm] < dd ){
//				msg = mm + "月は" + month[mm] +"日までです";
				return false;
			}
		}
	return true;
}

//ProMall全体で使用するJavaScript
//使用方法 タグの中に<script type="text/javascript" language="javascript" src="../promall.js"></script>
//イメージ専用サブウインドウ関数
var subwin;
function OpenImage(imgSorce, w, h)
{
	w += 20;h += 20;
	closeWindow(subwin);
	subwin = window.open('', '_blank', 'scrollbars=no,width='+w+',height='+h+'');
	subwin.document.write('<html><head><title>イメージ</title>');
	subwin.document.write("<SCRIPT LANGUAGE='JavaScript1.1'>\n");
	subwin.document.write("<!--\n");
	subwin.document.write("function resize_window(){\n");
	subwin.document.write("  var imgobj = new Image();\n");
	subwin.document.write("  imgobj.src =  '" + imgSorce + "';\n");
	subwin.document.write("  if(imgobj.width){\n");
	subwin.document.write("    window.resizeTo(imgobj.width+10,imgobj.height+30);\n");
	subwin.document.write("  }else{\n");
	subwin.document.write("    timerID = setTimeout('resize_window()',100);\n");
	subwin.document.write("  }\n");
	subwin.document.write("}\n")
	subwin.document.write("//-->\n");
	subwin.document.write("</SCRIPT>\n");
	subwin.document.write('</head>');
	subwin.document.write('<body style="margin:10px 10px 10px 10px;"');
	subwin.document.write('><div aligen=center>');
	subwin.document.write('<img src="'+ imgSorce +'" name="image1" ID="image1">');
	if( w == "-1" || h == "-1" ){
		subwin.document.write("<SCRIPT LANGUAGE='JavaScript'>resize_window();</SCRIPT>");
	}
	subwin.document.write('</div></body></html>');
	subwin.document.close();
	if (navigator.appVersion.charAt(0) >= 3)
		subwin.focus();
}

function closeWindow(edit){
	if(navigator.appName=="Netscape"){
		if (edit!=null){
			if( edit.closed ){ return; }
		}else{
			return;
		}
	}
	if (edit!=null){ edit.close(); }
}

