// submit
function doSubmit(form) {
    bCancel=false;
    form.target = '';
    form.submit();
}

// dispatchを指定してsubmit
function doDispatch(form, dispatch) {
    bCancel=false;
    form.dispatch.value = dispatch;
    form.target = '';
    form.submit();
}

// dispatchとactionを指定してsubmit
function doDispatchAction(form, dispatch, action) {
    bCancel=false;
    form.action = action;
    doDispatch(form, dispatch);
}

// actionを指定してsubmit
function doAction(form, action) {
    bCancel=false;
    form.action = action;
    form.target = '';
    form.submit();
}

// targetを指定してsubmit
function doSubmitTarget(form, target) {
    bCancel=false;
    form.target = target;
    form.submit();
}

// dispatch,targetを指定してsubmit
function doDispatchTarget(form, dispatch, target) {
    bCancel=false;
    form.dispatch.value = dispatch
    form.target = target;
    form.submit();
}

// dispatchとaction,targetを指定してsubmit
function doDispatchActionTarget(form, dispatch, action, target) {
    bCancel=false;
    form.action = action;
    doDispatchTarget(form,dispatch, target);
}

// action,targetを指定してsubmit
function doActionTarget(form, action, target) {
    bCancel=false;
    form.action = action;
    form.target = target;
    form.submit();
}

// action,targetを指定してsubmit
function gotoPage(formName, page) {
    bCancel=false;
	form = document.forms[formName];
    form.dispatch.value = "disp";
    form.pageNo.value = page
    form.target = '';
    form.submit();
}

// 職種(大分類)変更してsubmit
function gotoPageByLarge(formName) {
    bCancel=false;
	form = document.forms[formName];
    form.dispatch.value = "squeeze";
    form.saveMediumCode.value = ""
    form.target = "_self";
    form.submit();
}

// formを指定してsubmit
function relode(formName){
    bCancel=false;
	form = document.forms[formName];
    form.dispatch.value = "disp";
    form.target = "_self";
    form.submit();
}

// formを指定してsubmit
function changePageSize1(formName){
    bCancel=false;
	form = document.forms[formName];
    form.dispatch.value = "disp";
    form.pageNo.value = "1"
    form.target = "_self";
    form.pageSize.value = form.pageSize1.value
    form.pageSize2.value = form.pageSize1.value
    form.submit();
}

// formを指定してsubmit
function changePageSize2(formName){
    bCancel=false;
	form = document.forms[formName];
    form.dispatch.value = "disp";
    form.pageNo.value = "1"
    form.target = "_self";
    form.pageSize.value = form.pageSize2.value
    form.pageSize1.value = form.pageSize2.value
    form.submit();
}

//親ウインドウをクローズされているかをテストする
// http://game.gr.jp/js-ml/samples/200102/openerTest.html
function openerClosed() {
    var winVar = window.opener;
    var ua = navigator.userAgent;
    if( !!winVar ) {
        if( ( ua.indexOf('Gecko') != -1 || ua.indexOf('MSIE 4') != -1 ) 
           && ua.indexOf('Win') != -1 ) {
            return winVar.closed;
        }else {
            return typeof winVar.document  != 'object';
        }
    }else {
        return true;
    }
}

//サブウインドウをクローズする
function closeWin() {
	if (! openerClosed() ){
		if ( !!window.opener.doReDisp ) {
		    window.opener.doReDisp();
		}
	}
	window.close();
}

//文字数カウンタ（kazusaki.add 2004-11-15）
function getMojiCount(obj) {
	dmy = obj.value;
	dlen = dmy.length;
	moji = 0;

	if (navigator.appName == "Netscape") {
		n = dmy.match(/\n/g);
		if (n) {
			moji = n.length;
		}
	}

	for(i=0; i<dlen; i++){
	  /*
		if(dmy.charAt(i) == "%"){
			i=i+2;
		}
		*/
		moji++;
	}

	return moji;
}

//文字数カウンタ（kazusaki.add 2004-11-15）
function mojiCount(obj) {
	alert(getMojiCount(obj) + "文字が入力されています。");
}

// 行数、文字数チェック
function mojiAndRnCount(obj) {
	dmy = obj.value;
	dlen = dmy.length;
	moji = 0;

	if (dlen != 0) {
		if (navigator.appName == "Netscape") {
			n = dmy.match(/\n/g);
			if (n) {
				moji = n.length;
			}
		}

		for(i=0; i<dlen; i++){
		  /*
			if(dmy.charAt(i) == "%"){
				i=i+2;
			}
			*/
			moji++;
		}
	
		n = dmy.match(/\r/g);
		if (n) {
			len = n.length + 1; 
		}else{
			n = dmy.match(/\n/g);
			if (n) {
				len = n.length + 1; 
			}else{
				len = 1;
			}
		}

	} else {
		len = 0;
		moji = 0;
	}
	
	alert(len + "行、" + moji + "文字が入力されています。");
}

//文字数カウンタ（タグを除いてカウント）
function mojiCountTagRemove(obj) {
	var dmy = obj.value;
	var dlen = dmy.length;
	var moji = 0;
	var tagFlg = false;

	if (navigator.appName == "Netscape") {
		var n = dmy.match(/\n/g);
		if (n) {
			moji = n.length;
		}
	}

	for(var i=0; i<dlen; i++){
	  if(dmy.charAt(i) == "<"){
	    tagFlg = true;
	  }else if(dmy.charAt(i) == ">" && tagFlg){
	    tagFlg = false;
		}else if(!tagFlg){
			if(dmy.charAt(i) == "&"){
			  for(var j=i+1; j<dlen; j++){
			    if(dmy.charAt(j) == ";"){
			      i=j;
			      break;
			    }
			  }
			}
		  moji++;
		}
	}
	alert(moji + "文字が入力されています。");
}

//チェックボックスの一括チェック (takekawa add)
//使用例は説明会画面参照
function checking(form, allcheck, elname){

	boxLength = form.elements.length;

	if (boxLength != undefined && boxLength != null) {
		for (i = 0 ; i < boxLength ; i++) {
		    if (form.elements[i].name == elname) {
		    	if(!form.elements[i].disabled){
				    form.elements[i].checked = allcheck;
		    	}
		    }
		}
	}
}

//チェックボックスのチェック判定 (takekawa add)
//指定のチェックボックス(同名の複数チェックボックス)がひとつでも
//チェックされていればtrueを返し、それ以外はfalseを返します。
function isChecked(objForm, elname){
	with(objForm){
	
		for (var i=0 ; i<elements.length; i++ ){
			if (elements[elname] != null) {
				obj = elements[elname][i];
				
				if(obj != null){
				    if (obj.checked == true) {
				    	return true;
				    }
				}
			}
		}

		obj = elements[elname];
		if(obj != null) {
			if (elements[elname].checked == true){
				return true;
			}
		}

		return false;
	}
}

//チェックボックスの一括チェック2 (takekawa add)
//使用例は説明会画面参照
//オブジェクトの名前が配列になっている場合使用
function checking2(form, allcheck, elname){

	boxLength = form.elements.length;

	if (boxLength != undefined && boxLength != null) {
		for (i = 0 ; i < boxLength ; i++) {
		    if (form.elements[i].name.lastIndexOf(elname,form.elements[i].name.length) != -1) {
		    	if(!form.elements[i].disabled){
				    form.elements[i].checked = allcheck;
		    	}
		    }
		}
	}
}

// 一括応募フラグがあれば、一括応募フォームをサブウィンドウで開く 
function checkAllApply(formName) {
bCancel=false;
	form = document.forms[formName];
    if (form.allApplyFlag.value == '1') {
		if (form.noCheckedFlag.value != '1') {
			var url = "staffApply.do?dispatch=dispAllApply";
			url = url + "&allApplyJobOfferCode=" + form.allApplyJobOfferCode.value;
			url = url + "&markeDataApplyRoute=" + form.markeDataApplyRoute.value;
			url = url + "&joinRoute=" + form.joinRoute.value;
			url = url + "&areaGroupCode=" + form.areaGroupCode.value;
			url = url + "&date=" + form.date.value;
			url = url + "&allAdvManagementCode=" + form.allAdvManagementCode.value;
			
			subWinBlankScrollResizeTarget(url, 'allApply');
			
		} else {
			alert("応募したい情報を選択してください。");
		}
		
		form.allApplyFlag.value = '0';
		form.noCheckedFlag.value = '0';
		form.joinRoute.value='';
	}
}

//日付存在チェック（arai add）
//存在する：true
//存在しない：false
//IE6.0以上動作確認　NNは不明
//（注）入力チェック後に使用してください。
function chkExsist(year,month,day){

  if (month < 1 || month > 12) {
    return false;
  }
  if (day < 1 || day > 31) {
    return false;
  }
  if ((month == 4 || month == 6 || month == 9 || month == 11) && (day == 31)) {
    return false;
  }
  if (month == 2) {
    var leap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
    if (day>29 || (day == 29 && !leap)) {
      return false;
    }
  }
  return true;
}

//日付大小チェック（arai add）
//正常：true
//以上：false
//（注）入力チェック後に使用してください。
function chkFromTo(sy,sm,sd,ey,em,ed){
  var nsm = zeroPad(sm);
  var nsd = zeroPad(sd);
  var nem = zeroPad(em);
  var ned = zeroPad(ed);
  var from = parseInt(sy + nsm + nsd);
  var to = parseInt(ey + nem + ned);
  if(from > to){
    return false;
  }else{
    return true;
  }
}

//ゼロ埋め処理（arai add）
function zeroPad(str){
  if(str.length == 1){
    str = "0" + str;
  }
  return str;
}

// ゼロ埋め処理（数値版）
function zeroPadForNum(num){
  if(num < 10){
    num = "0" + String(num);
  }
  return num;
}

//日付入力チェック（arai add）
//正常（年月日全て未入力 or 年月日全て入力）：true
//異常：false
function chkInput(yy,mm,dd){
  if((yy == "" && mm == "" && dd == "") || (yy != "" && mm != "" && dd != "")){
  	return true;
  }else{
    return false;
  }
}

//日付必須入力チェック（arai add）
//正常（年月日全て入力）：true
//異常：false
function chkInputRequired(yy,mm,dd){
  if(yy != "" && mm != "" && dd != ""){
  	return true;
  }else{
    return false;
  }
}

//数値チェック（arai add）
function isNumber(value){
  var validChars = "0123456789";
  for (var n = 0; n < value.length; n++) {
    if (validChars.indexOf(value.substring(n, n+1)) == -1)
      return false;
  }
  return true;
}

//数値の比較チェック(takekawa add)
//2つの数値を比較し、第一引数が第二引数の値を超える場合
//falseを返します。
function checkCompareFromTo(from,to){
	if( from != '' && to != ''){
		if( parseInt(from) > parseInt(to) ){
			return false;
		}
	}
	return true;
}

//全角文字かを値チェックします
function isFullChar(value){
	for (var i = 0; i < value.length; ++i) {
		var c = value.charCodeAt(i);
        if (c >= 0x20 && c <= 0x80 ) {
          return false;
        }
	}
	return true;
}

//半角文字かを値チェックします
function isHalfChar(value){
	for (var i = 0; i < value.length; ++i) {
		var c = value.charCodeAt(i);
        if (c > 0x80 ) {
          return false;
        }
	}
	return true;
}

//サブウィンドウで開く(iida add)
function subWin(WinUrl,width,height) {
var sw1 = window;
	if ((sw1 == window) || sw1.closed) {
		sw1 = open(WinUrl, "subwin", "resizable=yes,scrollbars=no,width="+width+",height="+height);
	} else {
		sw1.location = WinUrl;
		sw1.focus();
	}
	return(false);
}

//サブウィンドウで開くスクロールあり(S.inwoo add)
function subWinScroll(WinUrl,width,height) {
var sw1 = window;
	if ((sw1 == window) || sw1.closed) {
		sw1 = open(WinUrl, "subwin", "resizable=yes,scrollbars=yes,width="+width+",height="+height);
	} else {
		sw1.location = WinUrl;
		sw1.focus();
	}
	return(false);
}

//ページ内リンクへジャンプします。
function gotoName(name) {
	var h = location.href;
	idx = h.indexOf("#");
	if ( idx != -1 ) {
		h = h.substring(0,idx);
	}
	location.href=h+name;
}

//コード作成(takekawa add)
//指定formの指定elementが持つ値をカンマ区切りで繋げて返します。
//flg=0：スカウト候補者フォルダ
//flg=1：検索結果一覧、一括応募（会員側）
function makeCode(objForm, elname, flg){

	var codes = "";
	
	with(objForm){
		for (var i=0 ; i < elements.length ; i++ ){
			obj = objForm.elements[i];
			if(obj != null && obj.name == elname){
			    if (obj.checked == true) {
				    if (flg == '0') {
			    		codes = codes + "," + obj.value.substring(0,10);
					} else if (flg == '1') {
			    		codes = codes + "," + obj.value;
					} else {
						return false;
					}
			    }
			}
		}
		return codes.substring(1);
	}
}

//希望条件を呼び出す
function callHope(form, dispatch){
	var index = form.staffHopeNo.selectedIndex;
	if ( index <= 0 ) {
		alert("希望条件を選択してください。");
	}
	else {
	    bCancel=false;
	    form.dispatch.value = dispatch;
	    form.target = '';
	    form.submit();
	}
}

function trim(keyword){
	var start = -1;
	for( i = 0; i < keyword.length; i++ ){
	    var c = keyword.charAt(i);
		if( c == " " || c == "　"){
			start = i;
		}else{
		    break;
		}
	}
	if ( start > -1 ) {
		keyword = keyword.substring(start+1);
	}

	var end = keyword.length;
	for( i = keyword.length - 1; i >= 0; i-- ){
	    var c = keyword.charAt(i);
		if( c == " " || c == "　"){
			end = i;
		}else{
		    break;
		}
	}
	if ( end < keyword.length ) {
		keyword = keyword.substring(0, end);
	}
	return keyword;
}

function pbHelp(fileName){
    var w=618;
    var h=500;
    pbHelp2(fileName, w, h);
}

function pbHelp2(fileName, w, h){
    var url = "/help/pb/" + fileName;
    pbHelpWin=window.open(url, "pbHelp", "resizable=yes,scrollbars=yes,width="+w+",height="+h);
    pbHelpWin.focus();
}

function pcHelp(fileName){
    var w=620;
    var h=650;
    pcHelp2(fileName, w, h);
}

function pcHelp2(fileName, w, h){
    var url = "../help/pc/" + fileName;
    pcHelpWin=window.open(url, "pcHelp", "resizable=yes,scrollbars=yes,width="+w+",height="+h);
    pcHelpWin.focus();
}

function psHelp(fileName){
    var w=618;
    var h=500;
    psHelp2(fileName, w, h);
}

function psHelp2(fileName, w, h){
    var url = "../help/ps/" + fileName;
    psHelpWin=window.open(url, "psHelp", "resizable=yes,scrollbars=yes,width="+w+",height="+h);
    psHelpWin.focus();
}

// HTMLオブジェクトの表示／非表示切り替え
//
// changeDisplay(オブジェクトのID属性値) 
//   return値：true（表示時）、false（非表示時）
//         or
// changeDisplay(オブジェクトのID属性値, 表示時ラベル文字列, 非表示時ラベル文字列)
//   return値：表示状態に対応するラベル文字列
//
// for IE 5, Firefox, Netscape 6, Opera 8
//
function changeDisplay() {
	var arg = arguments ;	//variable parameters
	var obj;
	var displayLabel;
	var noneLabel;
	var label;
	var state = false;

	switch( arg.length ) {
		case 3:		//3 parameters
			displayLabel = arg[1];
			noneLabel = arg[2];
		case 1:		//1 parameters
			obj = window.document.getElementById(arg[0]);
			break;
		default:	//error parameters
			return "error!!";
	}

	if (obj) {
		var display = obj.style.display;
		if (obj.style.display == 'none') {
			obj.style.display = '';
			label = displayLabel;
			state = true;
		} else {
			obj.style.display = 'none';
			label = noneLabel;
			state = false;
		}
	}

	if (label) return label;	//3 parameters return value

	return state;				//1 parameters return value
}

// 求人画面立ち上げ用（リンク押下回数分画面を開く）
function subWinBlankScrollResize(url) {
	var style = "resizable=yes,scrollbars=yes,width=765,height=600";
	window.open("/pb/" + url, "_blank", style);
}

// 1画面立ち上げ用（一括応募画面・検討中フォルダなどを開く）
function subWinBlankScrollResizeTarget(url, target) {
	var style = "resizable=yes,scrollbars=yes,width=765,height=600";
	winName=window.open("/pb/" + url + "&createDate=" + createDate(), target, style);
	winName.focus();
}

function createDate() {
	var time = new Date();
	var createTime = "";
	createTime = time.getYear()+""+time.getMonth()+""+time.getDate()+""+time.getHours()+""+time.getMinutes()+""+time.getSeconds();

	return createTime;
}


//希望勤務地　全選択
function allPrefectureSelect(prefectureSelectName) {
	selectTag = selectTagManager.getSelectTag(prefectureSelectName);
	selectTag.selectAllOption();
}
//希望勤務地　国内選択
function domesticsPrefectureSelect(prefectureSelectName) {
	selectTag = selectTagManager.getSelectTag(prefectureSelectName);
	selectTag.selectOptionByValue(1, 47);
}
//希望勤務地　海外選択
function abroadsPrefectureSelect(prefectureSelectName) {
	selectTag = selectTagManager.getSelectTag(prefectureSelectName);
	selectTag.selectOptionByValue(48, 53);
}

//選択リストオブジェクトを管理するクラス
//idが異なる場合に新しいオブジェクトを作成する。
var SelectTagManager = function() {
	// property
	this.selectTag = null;	
}
// method
SelectTagManager.prototype = {
	initilize : function (selectId) {
		if (this.selectTag == null || this.selectTag.id != selectId) {
			var _selectTag = document.getElementById(selectId);
			this.selectTag = new SelectTag(_selectTag);
		}
	},
	getSelectTag : function (selectId) {
		this.initilize(selectId);
		return this.selectTag;
	}				
};

var selectTagManager = new SelectTagManager();

//選択リストクラス
var SelectTag = function(selectTagObject) {
	// property
	this.id = null;
	this.name = null;
	this.options = null;
	this.length = null;
	this.self = selectTagObject;
	this.initilize();
}
// method
SelectTag.prototype = {
	initilize : function(){
		if (this.isSelectTag()) {
			this.id = this.self.id;
			this.name = this.self.name;
			this.options = this.self.options;
			this.length = this.self.length;
		} 
	},
	isSelectTag : function(){
		if (this.self 
			&& this.self.id 
			&& this.self.options 
			&& this.self.length) {
			return true;
		}
		return false;
	},
	selectAllOption : function () {
		if (this.isSelectTag()) {
			this.self.selectedIndex = 0;
			each(this.options, function(err, option) {
				option.selected = true;
			});
		}
	},
	selectOptionByValue : function (from, to) {
		if (this.options) {
			this.self.selectedIndex = from - 1;
			each(this.options, function(err, option) {
				var value = option.value.replace(/^0+/,"");
				if (from <= parseInt(value)
					&& parseInt(value) <= to
					&& value) {
					option.selected = true;					
				} else {
					option.selected = false;
				}				
			});
		}
	}
};

function each(array, callback) {
	if (array  instanceof Array || (array.length && array.item)) {
		for (var i = 0; i < array.length; i ++) {
			var object = array[i];
			callback(null, object);
		}
	} else {
		callback(new Error("no array"), null);
	}
}

