// ブラウザ依存解消の為のID取得関数

function get_Browser(id){

if (document.getElementById) return document.getElementById(id);

else if (document.all) return document.all[id];

else if (document.layers) return document[id];

}



// 小窓を開く

var subWin;

function popWin(url,width,height){

	subWin = window.open(url,'win','width=100,height=100,status=no,menubar=no,directories=no,location=no,toolbar=no,resizable=yes,scrollbars=no');



	subWin.resizeTo( width , height ) ;

	

	subWin.moveTo( 100 , 200 );

	subWin.focus();

}



/*

 * フォームのaction切り替え

 * buttonのonclickイベントに設置

 * @param elem : フォームのオブジェクト（this.form）

 * @param url : 送信先のurl

 */

function chgAct(elem, url){

	elem.action = url;

	elem.submit();

}



/**

 * ポップアップウィンドウで確認

 */

function CheckPop(str, url){

	flag = confirm(str);

	if (flag){

		location.href = url;

	} else {

		return false;

	}

}



/*

 * selectmenu で年月日の連動(年)

 * get_Browser必須

 * フォーム内、selectのonchangeイベントに設置

 * @param string year : 変更基準となるフォームのID（年）

 * @param string month : 変更するフォームのID（月）

 * @param string day : 変更するフォームのID（日）

 */

function selectYear( year, month, day ) {

	// 現在時刻を取得

	myD       = new Date();

	myYear    = myD.getYear();

	myYear4   = (myYear < 2000) ? myYear+1900 : myYear;

	myMonth   = myD.getMonth() + 1;

	//myDate    = myD.getDate();



	objY = get_Browser(year);

	objM = get_Browser(month);

	

	for(i=objM.options.length;i>0;i--){

		objM.options[i] = null;

	}

	

	n = objY[objY.selectedIndex].value;

	if(n==myYear4){

		// 選択年と当年が同じだったら、終了月は当月

		var endMonth = myMonth;

	} else {

		// それ以外は12月まで

		var endMonth = 12;

	}

	if(n=='2007'){

		// 2007年が選択されていたら、開始月は4月

		var srtMonth = 4;

	} else {

		// それ以外は1月

		var srtMonth = 1;

	}

	// プルダウンの中身をセット

	for (i=0; i<=(endMonth-srtMonth); i++){

		objM.options[i] = new Option((i+srtMonth),(i+srtMonth));

	}

	

	selectMonth(year, month, day);

}



/*

 * selectmenu で年月日の連動(月)

 * get_Browser必須

 * フォーム内、selectのonchangeイベントに設置

 * @param string year : 変更基準となるフォームのID（年）

 * @param string month : 変更するフォームのID（月）

 * @param string day : 変更するフォームのID（日）

 */

function selectMonth( year, month, day ) {

	// 現在時刻を取得

	myD       = new Date();

	myYear    = myD.getYear();

	myYear4   = (myYear < 2000) ? myYear+1900 : myYear;

	myMonth   = myD.getMonth() + 1;

	myDate    = myD.getDate();



	objY = get_Browser(year);

	objM = get_Browser(month);

	obj = get_Browser(day);

	if(objY.value % 4 == 0){

	    monthday = [ 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ];

	} else {

	    monthday = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ];

	}

	// 初期化

	for(i=obj.options.length;i>0;i--){

		obj.options[i] = null;

	}

	n = objM[objM.selectedIndex].value;

	if(objY.value == myYear4 && n == myMonth){

		// 当年当月が選択されていたら、当日まで

		var endDay = myDate;

	} else {

		// それ以外は該当月の最終日まで

		var endDay = monthday[n-1];

	}

	var srtDay = 1;

	

	// プルダウンの中身をセット

	for (i=0; i<=(endDay-srtDay); i++)

	{

		obj.options[i] = new Option((i+srtDay),(i+srtDay));

	}

}





/*

 * 入力項目エラーチェック

 * @param object elem フォームのオブジェクト（this.form指定）

 */

function NewAnkCheck(elem){

	if(bkname.length == 0){

		alert("入力してください。");

		elem.BUKKEN_MEI.focus();

		return;

	}

	if(getByte(bkname) > 80){

		alert("案件名は全角40文字以内で入力してください。");

		elem.BUKKEN_MEI.focus();

		return;

	}

	if(getByte(tmloan) > 4){

		alert("時間貸しは半角数字4文字以内で入力してください。");

		elem.TimeLoan.focus();

		return;

	}

	if(keido1.length == 0 || keido2.length == 0 || keido3.length == 0){

		alert("位置情報：経度を入力してください。");

		elem.gps_keido_hour.focus();

		return;

	}

	if(ido1.length == 0 || ido2.length == 0 || ido3.length == 0){

		alert("位置情報：緯度を入力してください。");

		elem.gps_ido_hour.focus();

		return;

	}

	if(getByte(biko) > 200){

		alert("周辺情報/コメントは全角100文字以内で入力してください。");

		elem.BUKKEN_MEI.focus();

		return;

	}

	elem.submit();

}





/**

 * テキストのバイト数を取得

 * @param string text 文字列

 * @return int count  文字列のバイト数

 */

function getByte(text)

{

	count = 0;

	for (i=0; i<text.length; i++)

	{

		n = escape(text.charAt(i));

		if (n.length < 4) count++; else count+=2;

	}

	return count;

}



/* 一行フォームでエンターキーでの送信を禁止する

 * BlockEnter必須

 * htmlタグ中に<script>attachBlockEnter('formid');</script> と記載

 * formid にはフォームのidを入れる

 */

function attachBlockEnter(formid) {

	var elements = document.forms[formid].elements;

	for (var j=0; j < elements.length; j++) {

		var e = elements[j];	

		if (e.type == "text"){

			e.onkeypress=BlockEnter;

		}

	}

}

function BlockEnter(evt){

	evt = (evt) ? evt : event; 

	var charCode=(evt.charCode) ? evt.charCode : 

		((evt.which) ? evt.which : evt.keyCode);

	if ( Number(charCode) == 13 || Number(charCode) == 3) {

		return false;

	} else {

		return true;

	}

}



/**

 * 文字列等クリックで指定範囲のhidden display切り替え

 * get_Browser必須

 * 設置例

 * 	<a href="javascript:void(0);" onclick="tag('ID');">クリック用文字列</a>

 * 	 <div id="ID" style="display:none;">

 * 	  表示切り替え対象

 * 	 </div>

 * @param string id : 変更基準となるフォームのID

 */

function tag(id) {

	fobj = get_Browser(id);

	disp = fobj.style.display;

	if(disp == 'block'){

	  fobj.style.display = 'none';

	} else {

	  fobj.style.display = 'block';

	}

}







/**

 * javascript 動的読み込み(未使用)

 * 出典元（http://aligach.net/diary/20061106.html）

 */

function require( url ) {

  var script  = document.createElement( 'script' );

  script.type = 'text/javascript';

  script.src  = url;

  var head    = document.getElementsByTagName( 'head' )[0];

  head.appendChild( script );

}

/**

 *javascript動的読み込み２

 * 出典元（http://sagittarius.dip.jp/~toshi/Ajax/yui.html）

 */

function load( url ) {

	try {

		xhr = new ActiveXObject("Msxml2.XMLHTTP");

	} catch (e) {

		try {

			xhr = new ActiveXObject("Microsoft.XMLHTTP");

		} catch (e) {

			xhr = false;

		}

	}

	if (!xhr && typeof XMLHttpRequest!='undefined') {

		xhr = new XMLHttpRequest();

	}

	i = 0;

	var str = "";

	if (xhr) {

		if(CheckBrowser() == true){

			// IEでは onload はない

			xhr.onload = function(){

				if (xhr.readyState == 4 && xhr.status == 200) {

					str = xhr.responseText;

				}

			}

		} else {

			// FireFoxでは onreadystatechange が入ってこない

			xhr.onreadystatechange = function() {

				if (xhr.readyState == 4 && xhr.status == 200) {

					str = xhr.responseText;

				}

			}

		}

		

		//HTTPリクエストを送ったりするとこここから 

		//xhr.open('GET', url);

		xhr.open('GET', url, false);

		xhr.send(null);

	}

	return str;

}

/**

 * onlaodをサポートしているブラウザならtrue

 */

function CheckBrowser(){

	var ua = navigator.userAgent

	var safari    = ua.indexOf("Safari")!=-1

	var konqueror = ua.indexOf("Konqueror")!=-1

	var mozes     = ((a=navigator.userAgent.split("Gecko/")[1] )?a.split(" ")[0]:0) >= 20011128 

	

	if(window.opera || safari || konqueror || mozes){

		return true;

	} else {

		return false;

	}

}



/**

 * シリーズ・レベル・商品の絞り込み

 * @param string type : SRZ=シリーズ　LEV=レベル　GDS=商品

 * @param integer parent_id : 親となるID

 * @param object taget : 変更先のフォームID

 * @param string url : ファイル読み込み先のディレクトリ

 * @param boolean relat : セレクトボックスの種類（true=関連・同等　false=表示順）

 * @param boolean posi : セレクトボックスの種類（true=配置場所　false=その他）

 *

 */

function changeLists( type, parent_id, target, url, relat, posi) {

	elem = get_Browser(target);

	LIST = new Array();

	var ran = "?"+(new Date()).getTime();

	//var ran = "";

	// 現在時刻を取得

	if(type == "SRZ"){

		SERIRS = new Array();

		url_param = url+"sr_"+parent_id+".js"+ran;

		//require( url_param );

		script = load( url_param );

		if ( script ) {

		  eval( script );

		}

		

		if(typeof(SERIRS) != "undefined"){

			LIST = SERIRS;

		}

	} else if(type == "LEV"){

		LEVEL = new Array();

		url_param = url+"lv_"+parent_id+".js"+ran;

		//require( url_param );

		script = load( url_param );

		if ( script ) {

		  eval( script );

		}

		if(typeof(LEVEL) != "undefined"){

			LIST = LEVEL;

		}

	} else if(type == "GDS"){

		GOODS = new Array();

		url_param = url+"gd_"+parent_id+".js"+ran;

		//require( url_param );

		script = load( url_param );

		if ( script ) {

		  eval( script );

		}

		if(typeof(GOODS) != "undefined"){

			LIST = GOODS;

		}

	}

	if(parent_id == ""){

		delete LIST;

		LIST = new Array();

	}

	for(i=elem.options.length;i>0;i--){

		elem.options[i] = null;

	}

	

	// プルダウンの中身をセット

	if(relat){

		elem.options[0] = new Option("↓選択してください", "");

		for (i=0; i<LIST.length; i++){

			elem.options[i+1] = new Option((LIST[i][1]), (LIST[i][0]));

		}

	} else {

		var cnt = 0;

		for (i=0; i<LIST.length; i++){

			if(posi == true){

				elem.options[i] = new Option((LIST[i][1]+"の上"), (i+1));

			} else {

				elem.options[i] = new Option((LIST[i][1]+"の上"), (LIST[i][0]));

			}

			cnt++;

		}

		elem.options[cnt] = new Option("一番下に配置", (cnt+1));

		elem.selectedIndex = cnt;

	}

}



/**

 * 配置場所プルダウン

 */

function changePotision(param, target, url){

	PRM = new Array('SRZ', 'LEV', 'GDS');

	id = new Array();

	cnt = 0;

	var i;

	for(i=0;i<target.length;i++){

		Obj = get_Browser(target[i]);

		n = Obj.selectedIndex;

		id[i] = Obj.options[n].value;

		if(id[i] == ""){

			id[i] = 0;

		}

		cnt ++;

	}

	cnt --;

	if(param == 'CTG'){

		for(i=0;i<cnt;i++){

			p_id = id[0];

			for(j=0;j<i;j++){

				p_id = p_id+"_0";

			}

			if(i != (cnt-1)){

				changeLists( PRM[i], p_id, target[i+1], url, true, false );

			} else {

				changeLists( PRM[i], p_id, target[i+1], url, false, true );

			}

		}

	} else if(param == 'SRZ'){

		for(i=1;i<cnt;i++){

			p_id = id[0]+"_"+id[1];

			for(j=1;j<i;j++){

				p_id = p_id+"_0";

			}

			if(i != (cnt-1)){

				changeLists( PRM[i], p_id, target[i+1], url, true, false );

			} else {

				changeLists( PRM[i], p_id, target[i+1], url, false, true );

			}

		}

	} else if(param == 'LEV'){

		for(i=2;i<cnt;i++){

			p_id = id[0]+"_"+id[1]+"_"+id[2];

			changeLists( PRM[i], p_id, target[i+1], url, false, true );

		}

	}

	

}



/**

 * 関連・同等用プルダウン

 */

function changeRelate(param, target1, target2, target3, target4, url){

	Obj = get_Browser(target1);

	n = Obj.selectedIndex;

	ct_id = Obj.options[n].value;

	if(ct_id == ""){

		ct_id = 0;

	}

	

	Obj = get_Browser(target2);

	n = Obj.selectedIndex;

	sr_id = Obj.options[n].value;

	if(sr_id == ""){

		sr_id = 0;

	}

	

	Obj = get_Browser(target3);

	n = Obj.selectedIndex;

	lv_id = Obj.options[n].value;

	if(lv_id == ""){

		lv_id = 0;

	}

	

	if(param == 'CTG'){

		changeLists( 'SRZ', ct_id, target2, url, true, false );

		changeLists( 'LEV', ct_id+"_0", target3, url, true, false );

		changeLists( 'GDS', ct_id+"_0_0", target4, url, true, false );

	} else if(param == 'SRZ'){

		changeLists( 'LEV', ct_id+"_"+sr_id, target3, url, true, false );

		changeLists( 'GDS', ct_id+"_"+sr_id+"_0", target4, url, true, false );

	} else if(param == 'LEV'){

		changeLists( 'GDS', ct_id+"_"+sr_id+"_"+lv_id, target4, url, true, false );

	}

}



/**

 * 修正・削除ページで商品の検索後、該当ページに飛ぶ

 */

function searchEdit(elem, target){

	var fname = new Array('category.php', 'series.php', 'type.php', 'commodity.php');

	var idname = new Array('c_id', 's_id', 'l_id', 'g_id');

	id = new Array();

	var i;

	var cnt;

	var param = "";

	cnt = 0;

	for(i=0;i<target.length;i++){

		Obj = get_Browser(target[i]);

		n = Obj.selectedIndex;

		id[i] = Obj.options[n].value;

		if(id[i] == ""){

			param += "&"+idname[i]+"=0";

		} else {

			param += "&"+idname[i]+"="+id[i];

		}

		cnt ++;

	}

	cnt --;

	for(i=cnt;i>=0;i--){

		if(id[i] != ""){

			//location.href = fname[i]+'?mode=up&id='+id[i];

			location.href = fname[i]+'?mode=up'+param;

			return false;

		}

	}

	alert('該当データがありません');

	return false;

}





function getRandam(len){

var rand = Math.floor( Math.random() * len );

return rand;

}



/**

 * シリーズ・レベル・商品の絞り込み（ユーザー側）

 * @param string type : SRZ=シリーズ　LEV=レベル　GDS=商品

 * @param integer parent_id : 親となるID

 * @param object taget : 変更先のフォームID

 * @param string url : ファイル読み込み先のディレクトリ

 * @param boolean english : セレクトボックスの種類（true=英語サイト　false=日本語サイト）

 *

 */

function changeListsUser( type, parent_id, target, url, english) {

	elem = get_Browser(target);

	LIST = new Array();

	if(english == true){

		url += 'e/';

	}

	var top = '';

	var ran = "?"+(new Date()).getTime();

	//var ran = "";

	var script = "";

	// 現在時刻を取得

	if(type == "SRZ"){

		SERIRS = new Array();

		url_param = url+"sr_"+parent_id+".js"+ran;

		//require( url_param );

		script = load( url_param );

		if ( script ) {

		  eval( script );

		}

		if(typeof(SERIRS) != "undefined"){

			LIST = SERIRS;

		}

		if(english == true){

			top = "↓Select a Series";

		} else {

			top = "↓シリーズを選んでください";

		}

	} else if(type == "LEV"){

		LEVEL = new Array();

		url_param = url+"lv_"+parent_id+".js"+ran;

		script = load( url_param );

			if(english == true){

				//alert(url_param);

			}

		if ( script ) {

		  eval( script );

		}

		if(typeof(LEVEL) != "undefined"){

			LIST = LEVEL;

		}

		if(english == true){

			top = "↓Select a Level";

		} else {

			top = "↓レベルを選んでください";

		}

	} else if(type == "GDS"){

		GOODS = new Array();

		url_param = url+"gd_"+parent_id+".js"+ran;

		script = load( url_param );

		if ( script ) {

		  eval( script );

		}

		if(typeof(GOODS) != "undefined"){

			LIST = GOODS;

		}

		if(english == true){

			top = "↓Select a Goods";

		} else {

			top = "↓商品を選んでください";

		}

	}

	if(parent_id == "" || parent_id == 0){

		delete LIST;

		LIST = new Array();

	}

	// プルダウンクリア

	for(i=elem.options.length;i>=0;i--){

		elem.options[i] = null;

	}

	

	elem.options[0] = new Option(top, "0");

	// プルダウンの中身をセット

	for (i=0; i<LIST.length; i++){

		elem.options[i+1] = new Option((LIST[i][1]), (LIST[i][0]));

	}

}

/**

 * ユーザー側検索プルダウン

 */

function changeRelateUser(param, target1, target2, target3, url, english){

	Obj = get_Browser(target1);

	n = Obj.selectedIndex;

	if(n != -1){

		ct_id = Obj.options[n].value;

		if(ct_id == ""){

			ct_id = 0;

		}

	} else {

		ct_id = 0;

	}

	if(param == 'CTG'){

		changeListsUser( 'SRZ', ct_id, target2, url, english );

	

		Obj = get_Browser(target2);

		n = Obj.selectedIndex;

		if(n != -1){

			sr_id = Obj.options[n].value;

			if(sr_id == ""){

				sr_id = 0;

			}

		} else {

			sr_id = 0;

		}

		changeListsUser( 'LEV', ct_id+"_"+sr_id, target3, url, english );

		

	} else if(param == 'SRZ'){

	

		Obj = get_Browser(target2);

		n = Obj.selectedIndex;

		if(n != -1){

			sr_id = Obj.options[n].value;

			if(sr_id == ""){

				sr_id = 0;

			}

		} else {

			sr_id = 0;

		}

		changeListsUser( 'LEV', ct_id+"_"+sr_id, target3, url, english );

	}

}





/**

 * チェックを入れないとプルダウンが有効にならないように

 */

function ChkChild(chk, chg1, chg2){

	elem = get_Browser(chk);

	sel1 = get_Browser(chg1);

	sel2 = get_Browser(chg2);

	sel1.disabled = !elem.checked;

	sel2.disabled = !elem.checked;



}







/**

* 入力フォーム:セミナー

* 講習会参加経験のコントロール制御

*/

function ToggleParticipation()

{

	var checked = null;



	elem1 = get_Browser("participation1");

	elem2 = get_Browser("participation2");



	if (elem1.checked) checked = 0;

	else

	if (elem2.checked) checked = 1;



	workshop		= get_Browser("workshop");

	seminar			= get_Browser("seminar");

	homepage		= get_Browser("homepage");

	introduction	= get_Browser("introduction");

	bookstore		= get_Browser("bookstore");

	publicity		= get_Browser("publicity");



	workshop.disabled		= checked != 0;

	seminar.disabled		= checked != 0;



	homepage.disabled		= checked != 1;

	introduction.disabled	= checked != 1;

	bookstore.disabled		= checked != 1;

	publicity.disabled		= checked != 1;

}

