// parseしたかどうかのフラグ
var parse_job_category_flag = false;
var parse_type_flag = false;
var parse_place_flag = false;

var countJob = function () {
	// ローディング中の表示
	dojo.byId("JOB_NUM").innerHTML = "&nbsp;";
	dojo.byId("JOB_CATEGORY_SUGGESTION").innerHTML = "&nbsp;";
	dojo.byId("TYPE_SUGGESTION").innerHTML = "&nbsp;";
	dojo.byId("FEE_SUGGESTION").innerHTML = "&nbsp;";
			
	//その後、バックグランドでsubmitする
	dojo.xhrPost({
		preventCache: true,
		url: "./ajax_php/countJob.php",
		form: "SEARCH_FORM",
		handleAs: "json",
		load: function (data, args) {
			dojo.byId("JOB_NUM").innerHTML = data["job_count"];
			// ブックマークが機能しなくなるので一旦保留
			// dojo.byId("JOB_DATA").innerHTML = data["job_data"];
			dojo.byId("JOB_CATEGORY_SUGGESTION").innerHTML = data["job_category_suggestion"];
			dojo.byId("TYPE_SUGGESTION").innerHTML = data["type_suggestion"];
			dojo.byId("FEE_SUGGESTION").innerHTML = data["fee_suggestion"];
		}, 
		//無限の待機を防ぐために、エラー処理とタイムアウトは必須
		error: function (data, args) {
			console.debug("以下のエラーが発生しました。", data);
		},
		timeout: 10000
	});
		
	//ブックマークするボタンを機能させる
	dojo.query("input[name='BOOKMARK_ADD_BUTTON']").connect("onclick", "addBookmark");
};

function displayJobCategorySelected(dialog) {
	dojo.byId("JOB_CATEGORY_SELECTED_KEY").value = dialog["JOB_CATEGORY[]"].join(",");
	dojo.byId("JOB_CATEGORY_SELECTED_VALUE").innerHTML = '<br />' +  dialog["JOB_CATEGORY[]"].join(" / ");
	countJob();
}

function displayTypeSelected(dialog) {
	dojo.byId("TYPE_SELECTED_KEY").value = dialog["TYPE[]"].join(",");
	dojo.byId("TYPE_SELECTED_VALUE").innerHTML = '<br />' + dialog["TYPE[]"].join(" / ");
	countJob();
}

function displayPlaceSelected(dialog) {
	dojo.byId("PLACE_SELECTED_KEY").value = dialog["PLACE[]"].join(",");
	dojo.byId("PLACE_SELECTED_VALUE").innerHTML = '<br />' + dialog["PLACE[]"].join(" / ");
	countJob();
}

function agreeSuggestJobByJobCategory(job_category){
	var array = window.document.getElementById("JOB_CATEGORY_SELECTED_KEY").value.split(",");
	array[array.length] = job_category;
	window.document.getElementById("JOB_CATEGORY_SELECTED_KEY").value = array.join(",");
	window.document.getElementById("JOB_CATEGORY_SELECTED_VALUE").innerHTML = '<br />' + array.join(" / ");
	parseJobCategory();
	// 上の関数でdijitを作っておかないと、以下のコードがエラーになる
	dijit.byId("JOB_CATEGORY_" + job_category).attr("value", job_category);
	countJob();
	return false;
}

function parseJobCategory(){
	// inputタグにdojotypeを入れると遅くなるので、
	// クリックした場合のみdojotypeを入れる
	// 引数がname='JOB_CATEGORY[]'ではqueryできない
	dojo.query("input[type='checkbox']", dojo.byId('JOB_CATEGORY_DIALOG')).forEach(
		function(item){
			if ( item.getAttribute('dojotype') === null ) {
				item.setAttribute('dojotype', 'dijit.form.CheckBox');
			}
		}
	);
	
	if ( parse_job_category_flag === false ) {
		dojo.parser.parse(dojo.byId('JOB_CATEGORY_DIALOG'));
		parse_job_category_flag = true;
	}
}

function agreeSuggestJobByType(type){
	var array = window.document.getElementById("TYPE_SELECTED_KEY").value.split(",");
	array.push(type);
	window.document.getElementById("TYPE_SELECTED_KEY").value = array.join(",");
	window.document.getElementById("TYPE_SELECTED_VALUE").innerHTML = '<br />' + array.join(" / ");
	parseType();
	// 上の関数でdijitを作っておかないと、以下のコードがエラーになる
	dijit.byId("TYPE_" + type).attr("value", type);
	countJob();
	return false;
}

function parseType(){
	// inputタグにdojotypeを入れると遅くなるので、
	// クリックした場合のみdojotypeを入れる
	// 引数がname='TYPE[]'ではqueryできない
	dojo.query("input[type='checkbox']", dojo.byId('TYPE_DIALOG')).forEach(
		function(item){
			if ( item.getAttribute('dojotype') === null ) {
				item.setAttribute('dojotype', 'dijit.form.CheckBox');
			}
		}
	);
	if ( parse_type_flag === false ) {
		dojo.parser.parse(dojo.byId('TYPE_DIALOG'));
		parse_type_flag = true;
	}
}

function parsePlace(){	
	// inputタグにdojotypeを入れると遅くなるので、
	// クリックした場合のみdojotypeを入れる
	// 引数がname='PLACE[]'ではqueryできない
	dojo.query("input[type='checkbox']", dojo.byId('PLACE_DIALOG')).forEach(
		function(item){
			if ( item.getAttribute('dojotype') === null ) {
				item.setAttribute('dojotype', 'dijit.form.CheckBox');
			}
		}
	);
	if ( parse_place_flag === false ) {
		dojo.parser.parse(dojo.byId('PLACE_DIALOG'));
		parse_place_flag = true;
	}
}

function init()
{
	// テキストボックスで検索条件入力
	dojo.query("input[type='text']").connect("onkeyup", "countJob");
	// プルダウンで検索条件入力
	dojo.query("select").connect("onclick", "countJob");
}

dojo.addOnLoad( init );

