//-----------------------------------------------------------
/**
 * SELECTコンポーネントの全ての項目選択処理
 *
 */
//-----------------------------------------------------------
/*----------コメント----------
EbCommand.jsから
受注者案件検索専用
------------ここまで----------*/
function allSelect(formObjectSelect) {
  var i;
  var boolAllSelect = true;

  /* 全て選択状態チェック*/
  for (i = 0; i < formObjectSelect.length; i++) {
    if (formObjectSelect[i].selected == true ) {
    } else {
      boolAllSelect = false;
      break;
    }
  }

  /* boolAllSelectチェック*/
  if ( boolAllSelect == true ) {

    /* SELECTコンポーネントの全選択解除処理 */
    for (i = 0; i < formObjectSelect.length; i++) {
      formObjectSelect[i].selected = false;
    }
  } else {

    /* SELECTコンポーネントの全項目選択処理 */
    for (i = 0; i < formObjectSelect.length; i++) {
      formObjectSelect[i].selected = true;
    }
  }
}

/* 内訳書ファイル名追加 */
/*----------コメント----------
JAC020.jsから
------------ここまで----------*/
function addItemDoc()
{
  document.formRegist.attachFile.value
      = document.formRegist.selectAttachFile.value;
}

//-----------------------------------------------------------
/**
 * SELECTコンポーネントへ、ファイル名追加処理
 *
 */
//-----------------------------------------------------------
/*----------コメント----------
EbCommand.jsから
------------ここまで----------*/
function addAttachFile(selectObj, fileObj) {
  var addFile = fileObj.value;       //ファイル選択オブジェクト値
  if (addFile == null || addFile.length == 0) {
    return;
  }
  
  /* 引数で渡されたファイル選択オブジェクトのvalueを追加する。 */
  //selectObj.length = attachFilesLen + 1;
  //selectObj.options.add( new Option(addFile, addFile) );
  var opt=selectObj.length;
  selectObj.options[opt] = new Option(addFile, addFile);
}

/* onMouse時にリンクボタンの画像を入れ替える処理に対応する為の、Imageの配列 */
/*----------コメント----------
EbCommand.jsから
------------ここまで----------*/
var swImg = new Array();


//-----------------------------------------------------------
/**
 * Imageオブジェクトの初期化処理
 *
 */
//-----------------------------------------------------------
function imgPreload(imgName, img1, img2) {

  /*
   * ImageオブジェクトIDのimageオブジェクトとして、
   * 変化させたいボタンのイメージで初期化する。
   */
  if (document.images) {

    /*
     * グローバル変数として宣言している'swImg'を渡されたImageオブジェクトID
     * (第1引数)を添え字とし、配列の1要素を新たな配列として初期化する。
     */
    var imgName = imgPreload.arguments[0];
    var cnt;
    swImg[imgName] = new Array();

    /* イメージを宣言していく */
    for (cnt = 1; cnt < imgPreload.arguments.length; cnt++) {
      swImg[imgName][cnt] = new Image();
      swImg[imgName][cnt].src = imgPreload.arguments[cnt];
    }
  }
}

//-----------------------------------------------------------
/**
 * 画像入れ換え処理
 *
 */
//-----------------------------------------------------------
function imgSwap(imgName, imgSrc) {

  /*
   * 引数で渡されたImageオブジェクトIDのimageオブジェクトに。
   * 引数として渡された新たに貼り付けたい画像を貼り付けます。
   */
  if (document.images) {
    var img = document.images[imgName];

    /*
     * 引数で渡されたImageオブジェクトIDのimgageオブジェクトを検索する為に、
     * imgFindを呼出す。
     */
    if (!img) {
      img = imgFind(document, imgName);
    }

    /*
     * 取得したImageオブジェクトの画像を引数で渡された新たに貼り付けたい画像
     * に貼りかえる
     */
    if (img) {
      img.src = imgSrc;
    }
  }
}


//最新表示
var nTime;
var gNo;
var visGif;
function upDate(newTime,gifNo){
	nTime=newTime;
	gNo=gifNo;
	nDate=newTime.substr(0,10);
	nDateJp=nDate.split('.');
	nt=newTime.substr(11);
	nTimeJp=nt.split(':');
	nDateJp=nDateJp[0] + '年' + nDateJp[1] + '月' + nDateJp[2] + '日 ' + nTimeJp[0] + '時' + nTimeJp[1] + '分';
	waitPopup();
	TimeLag_timer = window.setTimeout("visibleGif(nTime,gNo,nDateJp)", 1000);
}

function visibleGif(changeTime,changeGif,changeTimeJp){
	window.clearTimeout(TimeLag_timer);
	if(win_wait){
		win_wait.close();
	}
	do{
		visGif='hideGif'+changeGif;
		document.getElementById(visGif).style.visibility="visible";
		changeGif--;
	}
	while (changeGif!=0);
	document.updatetime.datetime.value=changeTime;
	top.header.document.textform.sampletext.value=changeTimeJp;
}

//wait画面
/*----------コメント----------
通信中ダイアログ無スイッチをつけた。
wait画面を開く処理を独立させて、最新表示でも読み込むようにした。
------------ここまで----------*/
var win_wait;
var p1;
var topMargin;
var leftMargin;
var screenOpt;
function waitPopup(){
		topMargin = screen.height / 2 - 75;
		leftMargin = screen.width / 2 - 150;
		screenOpt = "directories=no,fullscreen=no,width=320,height=120,location=no,menubar=no,resizable=no,scrollbars=no,status=no,titlebar=no,toolbar=no";
		screenOpt += ",top=" + topMargin + ",left=" + leftMargin;
	//	win_wait = window.open("../Wait.html", target="_blank", screenOpt);
		win_wait = window.open("../../common/Wait.html", 'timelag' , screenOpt);
}

var TimeLag_timer;
function TimeLag(path1,sw){//swのON,OFFで通信中ダイアログのON,OFF
	if(sw!='OFF'){
		p1 = path1;
		waitPopup();
		TimeLag_timer = window.setTimeout("Wait(p1,'tutorial')", 2000);
	}
	else{
	top.location.href = path1;
	}
}

function Wait(path1,target1){
	window.clearTimeout(TimeLag_timer);
	if(win_wait){
		win_wait.close();
	}
	window.open(path1,target1);
}

//PINスタイルシート　ブラウザ選別
//IEとNNでバランスが違うため。
function pinCss(){
	if (window.navigator.appName.charAt(0)=="N"){
		if (window.navigator.appVersion.charAt(0)>4){
			document.write('<link rel="stylesheet" href="../../css/pinN6.css" type="text/css">');
		}
	}
	else{
		document.write('<link rel="stylesheet" href="../../css/pinIE.css" type="text/css">');
	}
}

//PIN入力 Focus
/*----------コメント----------
前回から流用
ガイドが前の時は無効に
------------ここまで----------*/
function pinFocus(){
	if(1 == get_mode_Cookie()){
	}
	else{
		pinTimeLag=setTimeout('document.certdialog.pin.focus()',500);
		clearTimeout('pinTimeLag');
	}
}

//ロールオーバー
function mouseOver(name,img){
	if(document.layers){
	}
	else{
		document.images[name].src = img;
	}
}

//Cookieを取得
/*----------コメント----------
画面案のサンプルから
------------ここまで----------*/
function getCookie(key) {
	tmp = document.cookie + ";";
	tmp1 = tmp.indexOf(key, 0);
	if(tmp1 != -1) {
		tmp = tmp.substring(tmp1, tmp.length);
		end = tmp.indexOf(";", 0);
		tmp = tmp.substring(0, end);
		start = tmp.indexOf("=", 0);
		if(start != -1) { 
			return(unescape(tmp.substring(start+1,end)));
		}
	}
	return("");
}
function get_mode_Cookie() {
	ret_str = '';
	ret_str = getCookie('guidemode');
	return(ret_str);
}

function set_mode_Cookie(val) {
	tmp = "guidemode=" + escape(val) + "; ";
//	tmp += "expires=; ";
	tmp += "path=/; ";
	document.cookie = tmp;
}

//操作説明画面を開く
/*----------コメント----------
画面案のサンプルから。
画面を開かないモードあり。
------------ここまで----------*/
var sub_w;
function subWin(sub1){
	if(3 == get_mode_Cookie()){
	}
	else{
		if (window.navigator.appName.charAt(0) == "N"){
			sub_w = window.open( sub1 ,"window1","menubar=yes,scrollbars=yes,resizable=yes,width=600,height=672,left=0,top=0");
			if(1 == get_mode_Cookie()){
				sub_w.focus();
			}else{
				window.focus();
			}
		}else {
			sub_w = window.open( sub1 ,"window1","menubar=yes,scrollbars=yes,resizable=yes,width=600,height=661,left=0,top=0");
			if(1 == get_mode_Cookie()){
				sub_w.focus();
			}else{
				window.focus();
			}
		}
	}
}

//利用者登録版
function subWinReg(sub1){
	if(3 == get_mode_Cookie()){
	}
	else{
		if (window.navigator.appName.charAt(0) == "N"){
			sub_wReg = window.open( sub1 ,"window2","menubar=yes,scrollbars=yes,resizable=yes,width=500,height=672,left=0,top=0");
			if(1 == get_mode_Cookie()){
				sub_wReg.focus();
			}else{
				window.focus();
			}
		}else {
			sub_wReg = window.open( sub1 ,"window2","menubar=yes,scrollbars=yes,resizable=yes,width=500,height=661,left=0,top=0");
			if(1 == get_mode_Cookie()){
				sub_wReg.focus();
			}else{
				window.focus();
			}
		}
	}
}


//Jamp MenuList
function MM_jumpMenu(targ,selObj,restore){ //v3.0
	eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
	if(restore) selObj.selectedIndex=0;
}


//入力値チェック
function Check_Value(obj,val){

//	alert(obj.type);

	// 例外処理用 ファイルID取得
	path_ele = top.location.href.split('/');
	f_ele = path_ele[path_ele.length-1].split('.');
	f_id=f_ele[0];

//alert(f_id);

	if ((obj.type == 'password') || (obj.type == 'text')){
		if(obj.value == val){
			return 0;
		}else{
			return -1;
		}
	}else if (obj.type == 'select-one'){
		//例外処理
		if(f_id == 'c05'){
			for(i=0;i<obj.options.length;i++){
				if(obj.options[i].selected){
					if(obj.options[i].value == val){
						return 0;
						break;
					}else{
						return -1;
						break;
					}
				}
				return -1;
			}

		}else if(obj.options[obj.options.selectedIndex].value == val){
			return 0;
		}else{
			return -1;
		}

	}else if (obj.type == 'select-multiple'){

		//例外処理
		if((f_id == 'b05')||(f_id == 'c05')){
			if(obj.options[0].value == val){
				return 0;
			}else{
				return -1;
			}
		}

		vals = val.split(',');
		sel_f=0;	//選択された数
		ok_f =0;	//正解の数
		for(i=0;i<obj.options.length;i++){
			if(obj.options[i].selected){
				sel_f++;
			}
			for(j=0;j<vals.length;j++){
				if((obj.options[i].selected) && (obj.options[i].value == vals[j])){
					ok_f++;
				}
			}
		}
		if(((sel_f == 0) && (val == '')) || ((ok_f == vals.length) && (sel_f == vals.length))){
			return 0;
		}
		return -1;
	}else if(!obj.type){	// radio
		if (obj.length){
			var r_f = 0;
			for(i=0;i<obj.length;i++){
				if((obj[i].checked) && (obj[i].value == val)){
					return 0;
				}else{
					r_f = 1;
				}
			}
			if(r_f){return -1;}
		}
	}
}

//エラーメッセージ
function err_mes(){
	alert('チュートリアルエラーメッセージ\n\n入力に誤りがあります。\n内容をもう一度確認して入力しなおしてください。')
}



//all select
function allselect(obj,obj_name){

	if (obj.type == 'select-multiple'){
		chk_f = 0;	//選択されている数
		for(i=0;i<obj.options.length;i++){
			if(obj.options[i].selected){
				chk_f++;
			}else{
				obj.options[i].selected = true;
			}
		}
		if(obj.options.length == chk_f){
			for(i=0;i<obj.options.length;i++){
				obj.options[i].selected = false;
			}
		}
	}else{	//チェックボックス
		obj_f = 0;	//該当オブジェクトの数
		chk_f = 0;	//選択されている数
		for(i=0;i<obj.elements.length;i++){
			if(obj.elements[i].name.indexOf(obj_name) == 0){
				obj_f++;
				if(obj.elements[i].checked){
					chk_f++;
				}else{
					obj.elements[i].checked = true;
				}
			}
		}
		if(obj_f == chk_f){
			for(i=0;i<obj.elements.length;i++){
				if(obj.elements[i].name.indexOf(obj_name) == 0){
					obj.elements[i].checked = false;
				}
			}
		}
	}

}



//価格に単位を挿入
/*----------コメント----------
onStartは本システムのスクリプトとダブるので、onStartCalsに変更
コンマ、日本語表示に変更
------------ここまで----------*/
function onStartCals() {
	onPriceEventInit(window.document.formPrice.plannedPrice,
									window.document.formPrice.plannedPriceJp,
									window.document.formPrice.plannedPriceComma,
									window.document.formPrice.standardPrice,
									window.document.formPrice.standardPriceJp,
									window.document.formPrice.standardPriceComma
									);
}

//ブラウザのバージョンチェック
var brw_v = navigator.appVersion.charAt(0);
var brw_n = navigator.appName.charAt(0);
var iIE4 = false;
var iNN4 = false;
if((brw_v >= 4)&&(brw_n == "M"))iIE4 = true;
if((brw_v >= 4)&&(brw_n == "N"))iNN4 = true;

//プライステキストフィールドA
var priceTextA1;
var priceTextA2;
var priceTextA3;
//プライステキストフィールドB(基準価格などに使用)
var priceTextB1;
var priceTextB2;
var priceTextB3;
//--------------------------------------------------------------------
/**
 *	プライステキストフィールド初期化処理、及びイベント貼付処理
 *
 *	@param text1 金額入力用テキスト
 *	@param text2 漢字表記用テキスト
 */
//--------------------------------------------------------------------
function onPriceEventInit(textA1,textA2,textA3,textB1,textB2,textB3) {
	//alert("onEventInit()");
	priceTextA1 = textA1;
	priceTextA2 = textA2;
	priceTextA3 = textA3;
	priceTextA1.onkeypress = kPressA;
	priceTextA1.onkeyup = kUpA;
	priceTextA1.onChange = kUpA;
	
	if (textB1!=null && textB2!=null && textB3!=null) {
		priceTextB1 = textB1;
		priceTextB2 = textB2;
		priceTextB3 = textB3;
		priceTextB1.onkeypress = kPressB;
		priceTextB1.onkeyup = kUpB;
		priceTextB1.onChange = kUpB;
	}
	
}

//--------------------------------------------------------------------
/**
 *	IEとNNを切り分け、キーコード取得
 */
//--------------------------------------------------------------------
function getKEYCODE(e) {

//alert("modifers=" + e.modifiers);
	//--押されたキ−コ−ドを返す
	//IEの場合
	if(document.layers) return e.which;
	//NNの場合
	if(document.all)    return event.keyCode;
}

//--------------------------------------------------------------------
/**
 *	どのキーが押下されたかを切り分け処理を行う。（Aテキスト用）
 *
 *	@param e keyイベント
 */
//--------------------------------------------------------------------
function kPressA(e) {
	var dx;
	dx = getKEYCODE(e);
	//入力された文字が数字
	if ( (dx >=48 && dx<= 57) ) {
		setUnitText(priceTextA2, priceTextA1.value);
		setUnitText(priceTextA3, priceTextA1.value);
		return true;
	}
	else if (dx==8) {
		return true;
	}
	return false;
}
//--------------------------------------------------------------------
/**
 *	キーが離された時の処理を行う。（Aテキスト用）
 *
 *	@param e keyイベント
 */
//--------------------------------------------------------------------
function kUpA(e) {
	//var dx;
	//dx = getKEYCODE(e);
	setUnitText(priceTextA2, priceTextA1.value);
	setUnitText(priceTextA3, priceTextA1.value);
	return true;
}

//--------------------------------------------------------------------
/**
 *	どのキーが押下されたかを切り分け処理を行う。（Bテキスト用）
 *
 *	@param e keyイベント
 */
//--------------------------------------------------------------------
function kPressB(e) {
	var dx;
	dx = getKEYCODE(e);
	//入力された文字が数字
	if ( (dx >=48 && dx<= 57) ) {
		setUnitText(priceTextB2, priceTextB1.value);
		setUnitText(priceTextB3, priceTextB1.value);
		return true;
	}
	else if (dx==8) {
		return true;
	}
	return false;
}
//--------------------------------------------------------------------
/**
 *	キーが離された時の処理を行う。（Bテキスト用）
 *
 *	@param e keyイベント
 */
//--------------------------------------------------------------------
function kUpB(e) {
	//var dx;
	//dx = getKEYCODE(e);
	setUnitText(priceTextB2, priceTextB1.value);
	setUnitText(priceTextB3, priceTextB1.value);
	return true;
}

//--------------------------------------------------------------------
/**
 *	数値を引数で渡されたテキストフィールドにセットします。
 *
 *	@param	text	セット対処テキストオブジェクト
 *	@param	str		セットする文字列
 */
//--------------------------------------------------------------------
function setPlaneText(text, str) {
	text.value = str;
}

//--------------------------------------------------------------------
/**
 *	数値に単位挿入したものを引数で渡されたテキストフィールドにセットする。
 * <BR>指定された数値（金額）に単位（万、億、兆）を付加します。<BR>
 *
 *	@param	text	文字列編集後の、セット対処テキストオブジェクト
 *	@param	str		編集対象の文字列
 */
//--------------------------------------------------------------------
function setUnitText(text, str) {
	var f='';
	text.name.indexOf('Comma')>0?f='Comma':f='Jp';
	var kanjiStr = addUnit(str,f);
	text.value = kanjiStr;
}


//--------------------------------------------------------------------
/**
 *	text1には引数で渡されたstrをセットします。
 *	text2には引数で渡されたstrに単位挿入したものをセットします。
 * <BR>指定された数値（金額）に単位（万、億、兆）を付加します。<BR>
 *
 *	@param	text1	セット対処テキストオブジェクト
 *	@param	text2	文字列編集後の、セット対処テキストオブジェクト
 *	@param	編集対象の文字列
 */
//--------------------------------------------------------------------
function setPriceTexts(text1, text2, str) {
	
	setPlaneText(text1,str);
	setUnitText(text2,str);
}


//--------------------------------------------------------------------
/**
 *	数値に単位を挿入します。
 * <BR>指定された数値（金額）に単位（万、億、兆）を付加します。<BR>
 *
 *	@param	数値のみの文字列
 *	@return	単位を挿入後の文字列（もしparam文字列に数字以外が入っていたら数字以外を削除）
 */
//--------------------------------------------------------------------
function addUnit(str,flag) {
	
	if (str==null || str.length==0) {
		return "";
	}
	
	//単位を挿入する処理
	tanni = new Array('万','億','兆');
	var strLen = str.length;
	var returnStr = "";
	
	if(strLen<4) {
		return str;
	}
	else {
		str_arr = str.split('');
		str_arr = str_arr.reverse();
		bigin = 0;
		for(i=0; i<strLen; i=i+4) {
			tmp_s=str_arr[i]+str_arr[i+1]+str_arr[i+2]+str_arr[i+3];
			if(tmp_s=='0000'){
				bigin=bigin+4;
			}else{
				break;
			}
		}
		if(flag=='Jp'){
			tmp_f = 0;
			for(i=bigin; i<strLen; i++) {
				tmp_c = 0;
				if(i==4) {
					while(returnStr.indexOf('0')==0){
						returnStr = returnStr.substr(1,returnStr.length);
					}
					j=i;
					while(str.lastIndexOf('0',strLen-1-j)==strLen-1-j){
						tmp_c++;
						j++;
					}
					if(tmp_c<4){
						returnStr = str.charAt(strLen-1-i) + tanni[0] + returnStr;
						tmp_f = 0;
					}else{
						tmp_f = 1;
					}
				} else if(i==8) {
					while(returnStr.indexOf('0')==0){
						returnStr = returnStr.substr(1,returnStr.length);
					}
					j=i;
					while(str.lastIndexOf('0',strLen-1-j)==strLen-1-j){
						tmp_c++;
						j++;
					}
					if(tmp_c<4){
						returnStr = str.charAt(strLen-1-i) + tanni[1] + returnStr;
						tmp_f = 0;
					}else{
						tmp_f = 1;
					}
				} else if(i==12) {
					while(returnStr.indexOf('0')==0){
						returnStr = returnStr.substr(1,returnStr.length);
					}
					j=i;
					while(str.lastIndexOf('0',strLen-1-j)==strLen-1-j){
						tmp_c++;
						j++;
					}
					if(tmp_c<4){
						returnStr = str.charAt(strLen-1-i) + tanni[2] + returnStr;
						tmp_f = 0;
					}else{
						tmp_f = 1;
					}
				} else {
					if(tmp_f==0){
						returnStr = str.charAt(strLen-1-i) + returnStr;
					}
				}
			}
		}else if(flag=='Comma'){
			for(i=0; i<strLen; i++) {
				if(i==3) {
					returnStr = str.charAt(strLen-1-i) + ',' + returnStr;
				} else if(i==6) {
					returnStr = str.charAt(strLen-1-i) + ',' + returnStr;
				} else if(i==9) {
					returnStr = str.charAt(strLen-1-i) + ',' + returnStr;
				} else if(i==12) {
					returnStr = str.charAt(strLen-1-i) + ',' + returnStr;
				} else if(i==15) {
					returnStr = str.charAt(strLen-1-i) + ',' + returnStr;
				} else {
					returnStr = str.charAt(strLen-1-i) + returnStr;
				}
			}
		}
	} 

//	// 「万」以下が0の場合表示しない
//	if(returnStr.substr(returnStr.lastIndexOf('0000'),returnStr.length) == '0000'){
//		returnStr = returnStr.substr(0,returnStr.lastIndexOf('0000'));
//	}

	//編集済み文字列をreturn
	return returnStr;
}

function addComma(str) {
	
	if (str==null || str.length==0) {
		return "";
	}
	
	var strLen = str.length;
	var returnStr = "";
	
	if(strLen<4) {
		return str;
	}
	else {
		for(i=0; i<strLen; i++) {
			if(i==3) {
				returnStr = str.charAt(strLen-1-i) + ',' + returnStr;
			} else if(i==6) {
				returnStr = str.charAt(strLen-1-i) + ',' + returnStr;
			} else if(i==9) {
				returnStr = str.charAt(strLen-1-i) + ',' + returnStr;
			} else if(i==12) {
				returnStr = str.charAt(strLen-1-i) + ',' + returnStr;
			} else if(i==15) {
				returnStr = str.charAt(strLen-1-i) + ',' + returnStr;
			} else {
				returnStr = str.charAt(strLen-1-i) + returnStr;
			}
		}
	} 
	//編集済み文字列をreturn
	return returnStr;
}
