//$Id: commonFunc.js,v 1.1.1.1 2006/06/23 15:26:35 nishino Exp $
//********************************************************/
//*
//* 共通関数定義 ライブラリ：
//* ファイル名：commonFunc.js
//*
//* 作成日： 2003/8/10
//********************************************************/

//**********************************************************************
//* 関数名：selectAllCheckIndex
//* 引数： なし
//* 説明： 全てのチェックフラグをセットする
//**********************************************************************
function selectAllCheckIndex(){
	var checkIndex;
	var i=0;
	if(document && document.forms[0] && document.forms[0].checkedIndexes){
		if(document.forms[0].checkedIndexes[0]){
		//配列の場合
			while(checkIndex = document.forms[0].checkedIndexes[i]){
				checkIndex.checked = true;
				i++;
			}
		}else{
			//1行の場合は配列ではない
			document.forms[0].checkedIndexes.checked = true;
		}
	}
}


//**********************************************************************
//* 関数名：_changeTab
//* 引数： index タブの番号 1. 2. 3....
//* 戻り値 なし
//* 説明：タブ表示を切り替える 各ページのchangeTab関数から呼び出される
//* 作成日： 2003/9/8
//**********************************************************************
function _changeTab(index){
    var tabBody;
    var CHAR = 0x61;  // 0x61 = a
	var i=1;
	while(tabBody = document.all.item('tabBody' + i)){
		if(i==index){
			//選択されたタブ
			tabBody.style.display = 'block';
		    setCurrentTab(String.fromCharCode(CHAR+i-1));
		}else{
			tabBody.style.display = 'none';
		}
		i++;
	}
}

//**********************************************************************
//* 関数名：setCurrentTab
//* 引数： 
//* 戻り値 なし
//* 説明：現在，選択されているのタブ番号を設定
//* 作成日： 2003/8/15
//**********************************************************************
function setCurrentTab(index){
	var rg = new RegExp('[a-z]', '')
	if(index.match(rg)){
		cur_tab_index = index;
		setTargetColumns();   //移動対象となるカラムを初期化
	}else{
		alert('タブインデックスはアルファベット（a-d）にして下さい。');
	}
}


//**********************************************************************
//* 関数名：format
//* 引数： 
//* 戻り値 なし
//* 説明：typeに応じて，文字列をフォーマット
//*      NONE: 何もしない
//*      INT： 整数値（カンマ付き）に整形
//*      FRAC: 小数部2桁の数値（カンマ付き）に整形
//*      CAL: 日付フォーマットを整形(yyyyMMddフォーマット)
//*      CAL6: 日付フォーマットを整形(yyyyMMフォーマット)
//*      TIME: 時間フォーマットを整形(hhmmフォーマット)
//*      TIME3: 時間フォーマットを整形(hhhmmフォーマット)
//*      CORD2: コードを保管(２桁)
//* 作成日： 2004/4/12
//**********************************************************************
var NONE = 'none';
var INT = 'int';
var FRAC = 'frac';
var CAL = 'cal';
var DEPCAL='depcal';
var CAL6 = 'cal6';
var TIME = 'time';
var TIME3 = 'time3';
var CORD2 = 'cord2';

// 数字の先チェックとフォーマット
function chkchg_num(target, type)
{
	// 入力を認める文字を定義する(ここでは数字)
	var okStr 	= "0123456789.,";

	var chkFlag = 0;
	var PotCnt = 0;
	var number = target;
	
	for( var i=0; i<number.length; i++ )
	{
		if( okStr.indexOf(number.charAt(i)) == -1 ){
			chkFlag = 1;
			break;
		}
		else{
			if(type == INT){
				//点は一個以上と一番前の場合、数字ではないと判断します。
				if (number.charAt(i) == '.'){
					PotCnt = PotCnt + 1;
		    		if(i==0 || PotCnt > 1){
		    			chkFlag = 1;
		    			break;
		    		}
		    	}
		    }		
		}
	}
	//点以降の数字を消します。
	if(type==INT && PotCnt == 1){
		number = number.substr(0, number.indexOf("."));
	}
	if( chkFlag == 0 )
		return number;
	else
		return "0";
}

function format(target, type){
    //何もしない
    if(type==NONE || !(target)){
        return;
    }
    //顧追加開始　12/1
    if(target.value == null || target.value.length == 0){
        return;
    } 
    //顧追加終了　12/1  

    //整数フォーマット
    if(type==INT){
        var number = target.value;

        //マイナス入力の判断
        var bfirst = false;
	    if(number.length > 1 && number.substr(0,1) == "-"){
	    	bfirst = true;
	    }
        
        if(bfirst == true){
        	number = number.substr(1,number.length - 1)
        }
        number = chkchg_num(number, INT);      //顧追加
        number = number.replace(/\D/g, '');   // 数値外の文字列の削除

 		if(number.length==0){
			//空文字列の場合は0で返す
			number = '0';
		}else{
			//0補正（先頭が0の数値）
        	var rg2 = new RegExp('(^0)(\\d+)', 'g');
			while(number.match(rg2)){
				number = number.replace(rg2, RegExp.$2);
			}

			//整数部のカンマの追加
	        var rg = new RegExp('(.*\\d)(\\d\\d\\d)', 'g');
    	    while(number.match(rg)){
        	    number = number.replace(rg, RegExp.$1 + ',' + RegExp.$2);
			}
		}
        target.value = number;
        
        //マイナス入力の保留
        if(bfirst == true && number*1 != 0) {
            target.value = "-" + number;
        }
        return number;
    }

    //小数部付き 数値フォーマット
    if(type==FRAC){
        var number = target.value;
        
        //マイナス入力の判断
        var bfirst = false;
	    if(number.length > 1 && number.substr(0,1) == "-"){
	    	bfirst = true;
	    }
        
        number = number.replace(/[^0-9.]/g, '');   // 数値および.以外の文字列の削除

		if(number.length==0){
			//空文字列の場合は0で返す
			number = '0.00';
		}else{
			//小数部の分離
			var fracPart = '';
			var rg1 = new RegExp('(.*)(\\.\\d*)', 'g');
			if(number.match(rg1)){
				//小数部あり
				number = RegExp.$1;
				var fracPart = RegExp.$2;
				fracPart = fracPart.replace(/[^0-9]/g, ''); //.の除去
				if(fracPart.length>=2){
					fracPart = fracPart.substring(0,2);
				}else if(fracPart.length==1){
					fracPart = fracPart + '0';
				}else{
					fracPart = '00';
				}
			}else{
				//小数部なし
				fracPart = '00';
			}
		
    	    number = number.replace(/[^0-9]/g, '');   // 残りの.文字列の削除
			
			//0補正（先頭が0の数値）
        	var rg2 = new RegExp('(^0)(\\d+)', 'g');
			while(number.match(rg2)){
				number = number.replace(rg2, RegExp.$2);
			}

			//整数部のカンマの追加
        	var rg3 = new RegExp('(.*\\d)(\\d\\d\\d)', 'g');
        	while(number.match(rg3)){
            	number = number.replace(rg3, RegExp.$1 + ',' + RegExp.$2);
			}

			number = number + '.' + fracPart;
		}

        target.value = number;

        //マイナス入力の保留
        if(bfirst == true && number*1 != 0) {
            target.value = "-" + number;
        }
        
        return;
    }

    //日付フォーマット（yyyy/mm/dd）
    if(type==CAL){
        var cal = target.value;
        
        //現在の日付の取得
        var today = new Date();
        var year = today.getFullYear();
        var month = today.getMonth() + 1;
        if(month<10){
			month = '0' + month;
		}
         //cal = cal.replace(/\//g, '');   // /の削除
        //rg_1digit = new RegExp('^([0-9])$', '');
        //rg_2digit = new RegExp('^([0-9])([0-9])$', '');
        //rg_3digit = new RegExp('^([0-9])([0-3][0-9])$', '');
        ////edit by start wangyg 2005.09.08
        ////rg_4digit = new RegExp('^([01][0-2])([0-3][0-9])$', '');
        //rg_4digit = new RegExp('^([01][0-9])([0-3][0-9])$', '');
        ////edit by end  wangyg 2005.09.08
        //rg_5digit = new RegExp('^([0-9])([01][0-9])([0-3][0-9])$', '');
        //rg_6digit = new RegExp('^([0-9][0-9])([01][0-9])([0-3][0-9])$', '');
        //rg_8digit = new RegExp('^(([0-9][0-9])[0-9][0-9])([01][0-9])([0-3][0-9])$', '');
        //
        //if (cal.match(rg_8digit)){
        //    cal = cal.replace(rg_8digit, RegExp.$1 + '/' + RegExp.$3 + '/' + RegExp.$4);
        //}
        //if (cal.match(rg_6digit)){
        //    cal = cal.replace(rg_6digit, '20' + RegExp.$1 + '/' + RegExp.$2 + '/' + RegExp.$3);
        //}
        //if (cal.match(rg_5digit)){
        //    var str_year = new String(year);            
        //    cal = cal.replace(rg_5digit, str_year.substr(0,3) + RegExp.$1 + '/' + RegExp.$2 + '/' + RegExp.$3);
        //}
        //if (cal.match(rg_4digit)){
        ///    cal = cal.replace(rg_4digit, year + '/' + RegExp.$1 + '/' + RegExp.$2);
        //}
        //if (cal.match(rg_3digit)){
        //    cal = cal.replace(rg_3digit, year + '/0' + RegExp.$1 + '/' + RegExp.$2);
        //}
        //if (cal.match(rg_2digit)){
        //    cal = cal.replace(rg_2digit, year + '/0' + RegExp.$1 + '/0' + RegExp.$2);
        //}
        //if (cal.match(rg_1digit)){
        //   cal = cal.replace(rg_1digit, year + '/' + month + '/0' + RegExp.$1);
        //}
        //////////////////////////大幅変更いたします。BY HIRAOKA////////////////////////
        rg_1digit = new RegExp('^([0-9])$', '');  //D
		rg_2digit = new RegExp('^([0-9])([0-9])$', '');  //MD
		rg_3digit = new RegExp('^([0-9])([0-3][0-9])$', '');  //MDD
		rg_4digit = new RegExp('^([01][0-9])([0-3][0-9])$', '');  //MMDD
		rg_5digit = new RegExp('^([0-9][0-9])([01][0-9])([0-3][0-9])$', '');  //YYMMDD
		rg_6digit = new RegExp('^([0-9][0-9][0-9][0-9])([01][0-9])([0-3][0-9])$', '');  //YYYYMMDD
		rg_7digit = new RegExp('^([0-9])/([0-9])$', '');  //M/D
		rg_8digit = new RegExp('^([0-9])/([0-3][0-9])$', '');  //M/DD
		//2005.10.26n.yanagisawa 変更MM/D
		rg_18digit = new RegExp('^([01][0-9])/([0-9])$', '');//MM/D
		rg_9digit = new RegExp('^([01][0-9])/([0-3][0-9])$', '');  //MM/DD
		rg_10digit = new RegExp('^([0-9][0-9])/([0-9])/([0-9])$', '');  //YY/M/D
		rg_11digit = new RegExp('^([0-9][0-9])/([0-9])/([0-3][0-9])$', '');  //YY/M/DD
		rg_12digit = new RegExp('^([0-9][0-9])/([01][0-9])/([0-9])$', '');  //YY/MM/D
		rg_13digit = new RegExp('^([0-9][0-9])/([01][0-9])/([0-3][0-9])$', '');  //YY/MM/DD
		rg_14digit = new RegExp('^([0-9][0-9][0-9][0-9])/([0-9])/([0-9])$', '');  //YYYY/M/D
		rg_15digit = new RegExp('^([0-9][0-9][0-9][0-9])/([0-9])/([0-3][0-9])$', '');  //YYYY/M/DD
		rg_16digit = new RegExp('^([0-9][0-9][0-9][0-9])/([01][0-9])/([0-9])$', '');  //YYYY/MM/D
		rg_17digit = new RegExp('^([0-9][0-9][0-9][0-9])/([01][0-9])/([0-3][0-9])$', '');  //YYYY/MM/DD
        
        //パターン１７//YYYY/MM/DD
        if (cal.match(rg_17digit)){
            cal = cal.replace(rg_17digit, RegExp.$1 + '/' + RegExp.$2 + '/' + RegExp.$3);
        }
        //パターン１６//YYYY/MM/D
        if (cal.match(rg_16digit)){
            cal = cal.replace(rg_16digit, RegExp.$1 + '/' + RegExp.$2 + '/0' + RegExp.$3);
        }
        //パターン１５//YYYY/M/DD
        if (cal.match(rg_15digit)){
            cal = cal.replace(rg_15digit, RegExp.$1 + '/0' + RegExp.$2 + '/' + RegExp.$3);
        }
         //パターン１４//YYYY/M/D
        if (cal.match(rg_14digit)){
            cal = cal.replace(rg_14digit, RegExp.$1 + '/0' + RegExp.$2 + '/0' + RegExp.$3);
        }
        //パターン１３/YY/MM/DD
        if (cal.match(rg_13digit)){
            cal = cal.replace(rg_13digit, ReturnYYYY(RegExp.$1) + '/' + RegExp.$2 + '/' + RegExp.$3);
        }
        //パターン１２//YY/MM/D
        if (cal.match(rg_12digit)){
            cal = cal.replace(rg_12digit, ReturnYYYY(RegExp.$1) + '/' + RegExp.$2 + '/0' + RegExp.$3);
        }
        //パターン１１//YY/M/DD
        if (cal.match(rg_11digit)){
            cal = cal.replace(rg_11digit, ReturnYYYY(RegExp.$1) + '/0' + RegExp.$2 + '/' + RegExp.$3);
        }
        //パターン１０//YY/M/D
        if (cal.match(rg_10digit)){
            cal = cal.replace(rg_10digit, ReturnYYYY(RegExp.$1) + '/0' + RegExp.$2 + '/0' + RegExp.$3);
        }
        //パターン９//MM/DD
        if (cal.match(rg_9digit)){
            cal = cal.replace(rg_9digit, year + '/' + RegExp.$1 + '/' + RegExp.$2);
        }
        //2005.10.26 n.yanagisawa　パターン１８
        //パターン１８//MM/D
        if (cal.match(rg_18digit)){
			cal=cal.replace(rg_18digit, year + '/' + RegExp.$1 + '/0' + RegExp.$2);
		}

        //パターン８//M/DD
        if (cal.match(rg_8digit)){
            cal = cal.replace(rg_8digit, year + '/0' + RegExp.$1 + '/' + RegExp.$2);
        }
         //パターン７//M/D
        if (cal.match(rg_7digit)){
            cal = cal.replace(rg_7digit, year + '/0' + RegExp.$1 + '/0' + RegExp.$2);
        }
         //パターン６//YYYYMMDD
        if (cal.match(rg_6digit)){
            cal = cal.replace(rg_6digit, RegExp.$1 + '/' + RegExp.$2 + '/' + RegExp.$3);
        }
        //パターン５//YYMMDD
        if (cal.match(rg_5digit)){
            cal = cal.replace(rg_5digit, ReturnYYYY(RegExp.$1) + '/' + RegExp.$2 + '/' + RegExp.$3);
        }
        //パターン４//MMDD
        if (cal.match(rg_4digit)){
            cal = cal.replace(rg_4digit, year + '/' + RegExp.$1 + '/' + RegExp.$2);
        }
        //パターン３//MDD
        if (cal.match(rg_3digit)){
             cal = cal.replace(rg_3digit, year + '/0' + RegExp.$1 + '/' + RegExp.$2);
        }
        //パターン２//MD
        if (cal.match(rg_2digit)){
             cal = cal.replace(rg_2digit, year + '/0' + RegExp.$1 + '/0' + RegExp.$2);
        }
        
        //パターン１//D
        if (cal.match(rg_1digit)){
             cal = cal.replace(rg_1digit, year + '/' + month + '/0' + RegExp.$1);
        }
        
        target.value = cal;
        return;
    }

	//日付フォーマット(出発日用)（yyyy/mm/dd）
    if(type==DEPCAL){
        var cal = target.value;
        
        //現在の日付の取得
        var today = new Date();
        var year = today.getFullYear();
        var month = today.getMonth() + 1;
        if(month<10){
			month = '0' + month;
		}
        //cal = cal.replace(/\//g, '');   // /の削除
        //rg_1digit = new RegExp('^([0-9])$', '');
        //rg_2digit = new RegExp('^([0-9])([0-9])$', '');
        //rg_3digit = new RegExp('^([0-9])([0-3][0-9])$', '');
        ////edit by start wangyg 2005.09.08
        ////rg_4digit = new RegExp('^([01][0-2])([0-3][0-9])$', '');
        //rg_4digit = new RegExp('^([01][0-9])([0-3][0-9])$', '');
        ////edit by end  wangyg 2005.09.08
        //rg_5digit = new RegExp('^([0-9])([01][0-9])([0-3][0-9])$', '');
        //rg_6digit = new RegExp('^([0-9][0-9])([01][0-9])([0-3][0-9])$', '');
        //rg_8digit = new RegExp('^(([0-9][0-9])[0-9][0-9])([01][0-9])([0-3][0-9])$', '');
        //
        //if (cal.match(rg_8digit)){
        //    cal = cal.replace(rg_8digit, RegExp.$1 + '/' + RegExp.$3 + '/' + RegExp.$4);
        //}
        //if (cal.match(rg_6digit)){
        //    cal = cal.replace(rg_6digit, '20' + RegExp.$1 + '/' + RegExp.$2 + '/' + RegExp.$3);
        //}
        //if (cal.match(rg_5digit)){
        //    var str_year = new String(year);            
        //    cal = cal.replace(rg_5digit, str_year.substr(0,3) + RegExp.$1 + '/' + RegExp.$2 + '/' + RegExp.$3);
        //}
        //if (cal.match(rg_4digit)){
        ///    cal = cal.replace(rg_4digit, year + '/' + RegExp.$1 + '/' + RegExp.$2);
        //}
        //if (cal.match(rg_3digit)){
        //    cal = cal.replace(rg_3digit, year + '/0' + RegExp.$1 + '/' + RegExp.$2);
        //}
        //if (cal.match(rg_2digit)){
        //    cal = cal.replace(rg_2digit, year + '/0' + RegExp.$1 + '/0' + RegExp.$2);
        //}
        //if (cal.match(rg_1digit)){
        //   cal = cal.replace(rg_1digit, year + '/' + month + '/0' + RegExp.$1);
        //}
        //////////////////////////大幅変更いたします。BY HIRAOKA////////////////////////
        rg_1digit = new RegExp('^([0-9])$', '');  //D
		rg_2digit = new RegExp('^([0-9])([0-9])$', '');  //MD
		rg_3digit = new RegExp('^([0-9])([0-3][0-9])$', '');  //MDD
		rg_4digit = new RegExp('^([01][0-9])([0-3][0-9])$', '');  //MMDD
		rg_5digit = new RegExp('^([0-9][0-9])([01][0-9])([0-3][0-9])$', '');  //YYMMDD
		rg_6digit = new RegExp('^([0-9][0-9][0-9][0-9])([01][0-9])([0-3][0-9])$', '');  //YYYYMMDD
		rg_7digit = new RegExp('^([0-9])/([0-9])$', '');  //M/D
		rg_8digit = new RegExp('^([0-9])/([0-3][0-9])$', '');  //M/DD
		//2005.10.26n.yanagisawa 変更MM/D
		rg_18digit = new RegExp('^([01][0-9])/([0-9])$', '');//MM/D
		rg_9digit = new RegExp('^([01][0-9])/([0-3][0-9])$', '');  //MM/DD
		rg_10digit = new RegExp('^([0-9][0-9])/([0-9])/([0-9])$', '');  //YY/M/D
		rg_11digit = new RegExp('^([0-9][0-9])/([0-9])/([0-3][0-9])$', '');  //YY/M/DD
		rg_12digit = new RegExp('^([0-9][0-9])/([01][0-9])/([0-9])$', '');  //YY/MM/D
		rg_13digit = new RegExp('^([0-9][0-9])/([01][0-9])/([0-3][0-9])$', '');  //YY/MM/DD
		rg_14digit = new RegExp('^([0-9][0-9][0-9][0-9])/([0-9])/([0-9])$', '');  //YYYY/M/D
		rg_15digit = new RegExp('^([0-9][0-9][0-9][0-9])/([0-9])/([0-3][0-9])$', '');  //YYYY/M/DD
		rg_16digit = new RegExp('^([0-9][0-9][0-9][0-9])/([01][0-9])/([0-9])$', '');  //YYYY/MM/D
		rg_17digit = new RegExp('^([0-9][0-9][0-9][0-9])/([01][0-9])/([0-3][0-9])$', '');  //YYYY/MM/DD
        
        //パターン１７//YYYY/MM/DD
        if (cal.match(rg_17digit)){
            cal = cal.replace(rg_17digit, RegExp.$1 + '/' + RegExp.$2 + '/' + RegExp.$3);
        }
        //パターン１６//YYYY/MM/D
        if (cal.match(rg_16digit)){
            cal = cal.replace(rg_16digit, RegExp.$1 + '/' + RegExp.$2 + '/0' + RegExp.$3);
        }
        //パターン１５//YYYY/M/DD
        if (cal.match(rg_15digit)){
            cal = cal.replace(rg_15digit, RegExp.$1 + '/0' + RegExp.$2 + '/' + RegExp.$3);
        }
         //パターン１４//YYYY/M/D
        if (cal.match(rg_14digit)){
            cal = cal.replace(rg_14digit, RegExp.$1 + '/0' + RegExp.$2 + '/0' + RegExp.$3);
        }
        //パターン１３/YY/MM/DD
        if (cal.match(rg_13digit)){
            cal = cal.replace(rg_13digit, '20' + RegExp.$1 + '/' + RegExp.$2 + '/' + RegExp.$3);
        }
        //パターン１２//YY/MM/D
        if (cal.match(rg_12digit)){
            cal = cal.replace(rg_12digit, '20' + RegExp.$1 + '/' + RegExp.$2 + '/0' + RegExp.$3);
        }
        //パターン１１//YY/M/DD
        if (cal.match(rg_11digit)){
            cal = cal.replace(rg_11digit, '20' + RegExp.$1 + '/0' + RegExp.$2 + '/' + RegExp.$3);
        }
        //パターン１０//YY/M/D
        if (cal.match(rg_10digit)){
            cal = cal.replace(rg_10digit, '20' + RegExp.$1 + '/0' + RegExp.$2 + '/0' + RegExp.$3);
        }
        //パターン９//MM/DD
        if (cal.match(rg_9digit)){
            cal = cal.replace(rg_9digit, year + '/' + RegExp.$1 + '/' + RegExp.$2);
        }
        //2005.10.26 n.yanagisawa　パターン１８
        //パターン１８//MM/D
        if (cal.match(rg_18digit)){
			cal=cal.replace(rg_18digit, year + '/' + RegExp.$1 + '/0' + RegExp.$2);
		}
        //パターン８//M/DD
        if (cal.match(rg_8digit)){
            cal = cal.replace(rg_8digit, year + '/0' + RegExp.$1 + '/' + RegExp.$2);
        }
         //パターン７//M/D
        if (cal.match(rg_7digit)){
            cal = cal.replace(rg_7digit, year + '/0' + RegExp.$1 + '/0' + RegExp.$2);
        }
         //パターン６//YYYYMMDD
        if (cal.match(rg_6digit)){
            cal = cal.replace(rg_6digit, RegExp.$1 + '/' + RegExp.$2 + '/' + RegExp.$3);
        }
        //パターン５//YYMMDD
        if (cal.match(rg_5digit)){
            cal = cal.replace(rg_5digit, '20' + RegExp.$1 + '/' + RegExp.$2 + '/' + RegExp.$3);
        }
        //パターン４//MMDD
        if (cal.match(rg_4digit)){
            cal = cal.replace(rg_4digit, year + '/' + RegExp.$1 + '/' + RegExp.$2);
        }
        //パターン３//MDD
        if (cal.match(rg_3digit)){
             cal = cal.replace(rg_3digit, year + '/0' + RegExp.$1 + '/' + RegExp.$2);
        }
        //パターン２//MD
        if (cal.match(rg_2digit)){
             cal = cal.replace(rg_2digit, year + '/0' + RegExp.$1 + '/0' + RegExp.$2);
        }
        
        //パターン１//D
        if (cal.match(rg_1digit)){
             cal = cal.replace(rg_1digit, year + '/' + month + '/0' + RegExp.$1);
        }
        
        //YYYY/MM/DDの形式になっていない場合はそのまま返す。
        if (!cal.match(rg_17digit)){
            return cal;
        }
        
        //add start by wangyg 2005.09.08
        var checkYear = cal.substring(0,4);
        var checkMonth = cal.substring(5,7);
        var checkDay = cal.substring(8,10);
        var checkDate = new Number(new String(checkYear) + new String(checkMonth) + new String(checkDay));
        var currentDay = today.getDate();
        if(currentDay < 10){
			currentDay = '0' + currentDay;
        }
        var currentDate = new Number(new String(year) + new String(month) + new String(currentDay)); 
        if(checkDate < currentDate){
			var nextYear = year + 1;
			cal = new String(nextYear) + '/' + new String(checkMonth) + '/' + new String(checkDay);
        }
        //add end by wangyg 2005.09.08
        target.value = cal;
        return;
    }
    
    //日付フォーマット（yyyy/mm）
    if(type==CAL6){
        var cal = target.value;
        
        //現在の日付の取得
        var today = new Date();
        var year = today.getFullYear();
        
        cal = cal.replace(/\//g, '');   // /の削除
        rg_3digit = new RegExp('^([0-9])$', '');
        rg_4digit = new RegExp('^([01][0-2])$', '');
        rg_5digit = new RegExp('^([0-9])([01][0-9])$', '');
        rg_6digit = new RegExp('^([0-9][0-9])([01][0-9])$', '');
        rg_8digit = new RegExp('^(([0-9][0-9])[0-9][0-9])([01][0-9])$', '');
        
        if (cal.match(rg_8digit)){
            cal = cal.replace(rg_8digit, RegExp.$1 + '/' + RegExp.$3);
        }
        if (cal.match(rg_6digit)){
            cal = cal.replace(rg_6digit, '20' + RegExp.$1 + '/' + RegExp.$2);
        }
        if (cal.match(rg_5digit)){
            var str_year = new String(year);            
            cal = cal.replace(rg_5digit, str_year.substr(0,3) + RegExp.$1 + '/' + RegExp.$2);
        }
        if (cal.match(rg_4digit)){
            cal = cal.replace(rg_4digit, year + '/' + RegExp.$1);
        }
        if (cal.match(rg_3digit)){
            cal = cal.replace(rg_3digit, year + '/0' + RegExp.$1 );
        }
        target.value = cal;
        return;
    }



    //時間フォーマット（hh:mm）
    if(type==TIME){
        var time = target.value;
        
        time = time.replace(/\:/g, '');   // /の削除

        rg_1digit = new RegExp('^([0-9])$', '');
        rg_2digit = new RegExp('^([01][0-9])$', '');
        rg_3digit = new RegExp('^([2][0-3])$', '');
        rg_4digit = new RegExp('^([0-9])([0-5][0-9])$', '');
        rg_6digit = new RegExp('^([0-9][0-9])([0-9][0-9])$', '');
	
        
        if (time.match(rg_6digit)){
            time = time.replace(rg_6digit, RegExp.$1 + ':' + RegExp.$2);
        }
        if (time.match(rg_4digit)){
            time = time.replace(rg_4digit, '0' + RegExp.$1 + ':' +  RegExp.$2 );
        }
        if (time.match(rg_3digit)){
            time = time.replace(rg_3digit, RegExp.$1 + ':' + '00');
        }
        if (time.match(rg_2digit)){
            time = time.replace(rg_2digit, RegExp.$1 + ':' + '00');
        }
        if (time.match(rg_1digit)){
            time = time.replace(rg_1digit, '0' + RegExp.$1 + ':' + '00');
        }

        target.value = time;
        return;
    }


    //時間３フォーマット（hhh:mm）
    if(type==TIME3){
        var time3 = target.value;
        
        time3 = time3.replace(/\:/g, '');   // /の削除

        rg_1digit = new RegExp('^([0-9])$', '');
        rg_2digit = new RegExp('^([0-9][0-9])$', '');
        rg_3digit = new RegExp('^([0-9][0-9][0-9])$', '');
        rg_4digit = new RegExp('^([0-9][0-9])([0-5][0-9])$', '');
        rg_6digit = new RegExp('^([0-9][0-9][0-9])([0-9][0-9])$', '');

        
        if (time3.match(rg_6digit)){
            time3 = time3.replace(rg_6digit, RegExp.$1 + ':' + RegExp.$2);
        }
        if (time3.match(rg_4digit)){
            time3 = time3.replace(rg_4digit, '0' + RegExp.$1 + ':' +  RegExp.$2 );
        }
        if (time3.match(rg_3digit)){
            time3 = time3.replace(rg_3digit, RegExp.$1 + ':' + '00');
        }
        if (time3.match(rg_2digit)){
            time3 = time3.replace(rg_2digit, '0' + RegExp.$1 + ':' + '00');
        }
        if (time3.match(rg_1digit)){
            time3 = time3.replace(rg_1digit, '00' + RegExp.$1 + ':' + '00');
        }

        target.value = time3;
        return;
    }


    //コード保管  "CORD + 桁数"
    if(type==CORD2){
        var cord2 = target.value;
        
        rg_1digit = new RegExp('^([0-9])$', '');

        if (cord2.match(rg_1digit)){
            cord2 = cord2.replace(rg_1digit, '0' + RegExp.$1);
        }

        target.value = cord2;
        return;
    }
}

//**********************************************************************
//* クラス定義
//* クラス名：ReturnYYYY
//* YYを受け取って30以上だったら1900年代を
//* 29以下だったら2000年代のYYYYを返す
//**********************************************************************
function ReturnYYYY(yy){
	if(yy >= 30){
		return '19'+ yy;
	}else{
		return '20' + yy;
	}
}




//**********************************************************************
//* クラス定義
//* クラス名：ArrayList
//* 説明：コレクションクラス
//*
//* メソッド：
//*  add(value) リストの最後にデータを追加
//*  get(index) インデックス番号のデータを返す
//**********************************************************************
function ArrayList(){
	this.add = _add;
	this.get = _get;
	this.length = _length;
	this.values = new Array();
}

function _add(value){

	this.values[String(this.values.length)] = value;
}

function _get(index){
	if(index>0 && index<=this.values.length){
		return this.values[String(index-1)];
	}
}

function _length(){
	return this.values.length;
}

//**********************************************************************
//* 関数名：doSubmit
//* 引数： type    アクション・タイプ
//*        msg  確認用のメッセージ（任意指定）
//* 説明： 二重押し防止
//**********************************************************************

//opener消失時のエラーコード
IE5_OBJECTERR = -2147467259;
IE6_OBJECTERR = -2147024891;

var fSubmitted = NOT_SUBMITTED;     //2重サブミット防止用のフラグ。一度サブミットしたらSUBMITTEDにセット
var NOT_SUBMITTED = 'notSubmitted'; //submitしていない状態
var BEFORE_SUBMIT = 'beforeSubmit'; //onbeforesubmitイベントが起こる前の状態
var SUBMITTED = 'submitted'; //submit済みの状態

function doSubmit(msg1,msg2){

    //2重サブミット防止
    if(fSubmitted ){
        alert(msg2);
        return false;
    }
    
    //メッセージの確認
    if(msg1!=null && msg1!=''){
        if(!confirm(msg1)){
            return false;
        }
    }

    fSubmitted = BEFORE_SUBMIT;
    fSubmitted = SUBMITTED;

    //logo画像の発光処理
    setWave();

}

//**********************************************************************
//* 関数名：setWave
//* 説明： 画像ウェーブ関数
//**********************************************************************
var phase = 0;
function setWave(){
	var obj =document.all.item("logo");
	if (obj){
		if(fSubmitted ){
			phase = (phase + 10);
			if (phase > 95) {
				phase = 0;
			}
			logo.filters["wave"].add = 1;
			logo.filters["wave"].freq = 3;
			logo.filters["wave"].lightstrength = 80;
			logo.filters["wave"].phase = 5 + phase;
			logo.filters["wave"].strength = 0;
			setTimeout("setWave()",30);
			document.body.style.cursor = 'wait'
		} else{
			logo.filters["wave"].add = 0;
			logo.filters["wave"].freq = 0;
			logo.filters["wave"].phase = 0;
			logo.filters["wave"].lightstrength = 0;
			logo.filters["wave"].strength = 0;
		}
	}
}

//**********************************************************************
//* 関数名：insertRArrivalCityPortCd
//* 引数： 
//* 説明： 往路出発地を入力したら復路到着地に同じものを入力

//**********************************************************************
function insertRArrivalCityPortCd(){ 
  var obj1=document.all.item("gDepartureCityPortCd");
  var obj2=document.all.item("rArrivalCityPortCd");	
  obj2.value=obj1.value
}

//**********************************************************************
//* 関数名： insertrDepartureCityPortCd
//* 引数： 
//* 説明： 往路到着地を入力したら復路出発地に同じものを入力

//**********************************************************************
function  insertrDepartureCityPortCd(){
  var obj1=document.all.item("gArrivalCityPortCd");
  var obj2=document.all.item("rDepartureCityPortCd");	 
  obj2.value=obj1.value
}

//追加 始める 2005/09/12 　作業　by wangyg
document.onkeydown = checkKeyEvent;
function checkKeyEvent(){
	//キーコードチェック用
	//alert(event.altKey);
	
	//コントロールＣまたはＶ以外ははじくぽ
	if(event.ctrlKey){
		if(event.keyCode != 67 && event.keyCode != 86){
			return false;
		}
	}
	
	//バックスペースも不可
	if(event.keyCode == 8){
		if(window.event.srcElement.type != "text" && window.event.srcElement.type != "textarea"){
			return false;
		}
	}
	
	//F1〜F12は使用不可です
	//F1のkeyCodeは１１２です
	//Ｆ12のkeyCodeは１２３です
	if(event.keyCode >= 112 && event.keyCode <= 123){
		event.keyCode = 0; 
		event.cancelBubble = true; 
		return false; ;
	}
	
	//エンターキーの処理
	if(event.keyCode == 13){
		if(window.event.srcElement.type == "text"){
			if(window.event.srcElement.id != "logoffAction"){
				return false;
			}
		} 
	}
}

//helpは使用不可です
function window.onhelp(){
	return false;
}
//追加 終わる　2005/09/12  作業　by wangyg

//追加　2005/09/12 旅程運賃の機能　by wangyg
//関数名：
//引数：fareFg         旅程運賃  
//引数：classDiv       クラス
//引数：ticketTypeDiv  チケットタイプ
//説明：旅程運賃はITでclassDivとticketTypeDivがtrueです
//      旅程運賃はPEXとNormalでclassDivとticketTypeDivがfalseです
var	CONST_FARE_FG = "fareFg";
var CONST_CLASS_DIV = "classDiv";
var CONST_TICKET_TYPE_DIV = "ticketTypeDiv";
function changeEnabled(ini,fareFg,classDiv,ticketTypeDiv){
	
	if(null == fareFg || fareFg == ''){
		fareFg = CONST_FARE_FG;
	}
	
	if(null == classDiv || classDiv == ''){
		classDiv = CONST_CLASS_DIV;
	}
	
	if(null == ticketTypeDiv || ticketTypeDiv == ''){
		ticketTypeDiv = CONST_TICKET_TYPE_DIV;
	}
	
	var obj1 = document.all(fareFg);
	var obj2 = document.all(classDiv);
	var obj3 = document.all(ticketTypeDiv);
	
	if(obj1 && obj2 && obj3){
		var len = 0;
		for(len=0;len<obj1.length;len++){
			if(obj1[len].checked){
				break;
			}
		}
		switch(obj1[len].id){
			case 'iitFg':
				obj2.disabled  = false;
				obj3.disabled  = false;
				break;
			case 'pexFg':
				obj2.disabled = true;
				obj3.disabled = true;			
				break;
			case 'normalFg':
				obj2.disabled = true;
				obj3.disabled = false;		
				break;
			default:
		}
	}
	
	//フェアーフラグ変更による運賃選択の可不可の変更
	// ini      運賃選択 可否の変更
	//  0          可		 可
	//  1         不可		 可
	//  2         不可		不可
	//  3         不可		不可　　　状態を'１'へ
	if(ini == 1){
		document.forms[0].hiddenPayCalculate.value = '0';
	}else if(ini == 3){
		document.forms[0].hiddenPayCalculate.value = '1';
	}	
	
}
//追加　2005/09/12 旅程運賃の機能　by wangyg

//ラジオボタンチェック
function checkRadioBtn(){
	var row = document.all.item('hiddenPayConfirmRow').value;
	if(row != "" && row != null){
		//if(document.forms[0].paySelect[row] != null){
		//	document.forms[0].paySelect[row].checked = true;
		//}else if(document.forms[0].paySelect != null){
		//	document.forms[0].paySelect.checked = true;
		if(document.forms[0].paySelect != null){
			 if(document.forms[0].paySelect[row] != null){
				document.forms[0].paySelect[row].checked = true;
			}else{
				document.forms[0].paySelect.checked = true;
			}
		}
	}
}
