/*
 * 検索用のJS
 */
jQuery.noConflict();
var $j = jQuery;

var undef;


function getSelection(){
	var value = new Array(4);
	value[0] = $j('#category_box').children("option[@selected]");
	value[1] = $j('#type_box').children("option[@selected]");
	value[2] = $j('#region_box').children("option[@selected]");
	value[3] = $j('#salary_box').children("option[@selected]");
	
	return value;
}

function setCurrentHit(box,value){
	switch(box){
	case 0:
		if (value[0].val() == '') {
			changeCategory(value, -1);
		} else {
			value[0] = $j('#category_box').children("option[@selected]");
			changeCategory(value, value[0].val());
		}
		break;
	case 1:
		if (value[1].val() == '') {
			changeType(value, -1);
		} else {
			value[1] = $j('#type_box').children("option[@selected]");
			changeType(value, value[1].val());
		}
		break;
	case 2:
		if (value[2].val() == '') {
			changeRegion(value, -1);
		} else {
			value[2] = $j('#region_box').children("option[@selected]");
			changeRegion(value, value[2].val());
		}
		break;
	case 3:
		if (value[3].val() == '') {
			changeSalary(value, -1);
		} else {
			value[3] = $j('#salary_box').children("option[@selected]");
			changeSalary(value, value[3].val());
		}
		break;
	}
}

function setJobCategory(){
	var buff = null;
	$j.get("/shoukai/getCategoryList.php", function(data){
		var sp = data.split('|');
		var split_data1 = sp[0].split(',');
		var split_data2 = sp[1].split(',');
		var cnt = 0;
		
		for (cnt = 0; cnt < split_data1.length; cnt++) {
			buff += '<option id="type_option_' + cnt + ' "value="' + cnt + '">'+ split_data2[cnt] + '[' + split_data1[cnt] + '件]</option>';
		}
		$j("#category_box").html('<option value="" selected="selected">指定なし</option>' + buff + '</option>');
		
	});
}

function setRegion() {
	var buff = null;
	$j.get("/shoukai/getRegionList.php", function(data){
		var sp = data.split('|');
		var split_data1 = sp[0].split(',');
		var split_data2 = sp[1].split(',');
		var cnt = 0;
		
		for (cnt = 0; cnt < split_data1.length; cnt++) {
			buff += '<option id="type_option_' + cnt + ' "value="' + cnt + '">'+ split_data2[cnt] + '[' + split_data1[cnt] + '件]</option>';
		}
		$j("#region_box").html('<option value="" selected="selected">指定なし</option>' + buff + '</option>');
	});	
}

function setSalary(){
	var buff = null;
	$j.get("/shoukai/getSalaryList.php", function(data){
		var sp = data.split('|');
		var split_data1 = sp[0].split(',');
		var split_data2 = sp[1].split(',');
		var cnt = 0;
		for (cnt = 0; cnt < split_data1.length; cnt++) {
			buff += '<option id="type_option_' + cnt + ' "value="' + cnt + '">'+ split_data2[cnt] + '[' + split_data1[cnt] + '件]</option>';
		}
		$j("#salary_box").html('<option value="" selected="selected">指定なし</option>' + buff + '</option>');
	});
}

function changeCategory(value, select_num) {
	$j.get("/shoukai/getCategoryList.php?job_category=" + value[0].val() +
	"&job_type=" +
	value[1].val() +
	"&region=" +
	value[2].val() +
	"&salary=" +
	value[3].val() +
	"&mode=count", function(data){
		var buff = new Array();
		var sp = data.split('|');
		var split_data1 = sp[0].split(',');
		var split_data2 = sp[1].split(',');
		var cnt = 0;
		
		for (cnt = 0; cnt < split_data1.length; cnt++) {
			if (cnt == select_num) {
				buff += '<option id="type_option_' + cnt + ' "value="' + cnt + '" selected="selected">' + split_data2[cnt] + '[' + split_data1[cnt] + '件]</option>';
			} else {
				buff += '<option id="type_option_' + cnt + ' "value="' + cnt + '">' + split_data2[cnt] + '[' + split_data1[cnt] + '件]</option>';
			}
		}
		$j("#category_box").html('<option value="" selected="selected">指定なし</option>' + buff + '</option>');
		
		
	});
	
	if ($j('#category_box').children("option[@selected]").val() == '') {
		$j('#type_box').attr('disabled','disabled');
		
		$j('#type_box').html('<option value="" selected="selected">種別を選択してください</option>');
	}
}

function changeCategory2(value, select_num) {
	$j.get("/shoukai/getCategoryList.php?job_category=" + value[0] +
	"&job_type=" +
	value[1] +
	"&region=" +
	value[2] +
	"&salary=" +
	value[3] +
	"&mode=count", function(data){
		var buff = new Array();
		var sp = data.split('|');
		var split_data1 = sp[0].split(',');
		var split_data2 = sp[1].split(',');
		var cnt = 0;
		
		for (cnt = 0; cnt < split_data1.length; cnt++) {
			if (cnt == select_num) {
				buff += '<option id="type_option_' + cnt + ' "value="' + cnt + '" selected="selected">' + split_data2[cnt] + '[' + split_data1[cnt] + '件]</option>';
			}
			else {
				buff += '<option id="type_option_' + cnt + ' "value="' + cnt + '">' + split_data2[cnt] + '[' + split_data1[cnt] + '件]</option>';
			}
		}
		$j("#category_box").html('<option value="" selected="selected">指定なし</option>' + buff + '</option>');
	});
	
	if ($j('#category_box').children("option[@selected]").val() == '') {
		$j('#type_box').attr('disabled','disabled');
		$j('#type_box').html('<option value="" selected="selected">種別を選択してください</option>');
	}
}

function changeType(value, select_num) {
	//職種１に基づいて職種２のリストを取得
	var buff = new Array();
	$j.get("/shoukai/getTypeList.php?job_category=" + value[0].val(), function(data){
		var split_data = data.split(',');
		var cnt = 0;
		for (cnt=0; cnt < split_data.length - 1; cnt++) {
			if (cnt == select_num) {
				buff[cnt] = '<option id="type_option_' + cnt + ' "value="' + cnt + '" selected="selected">' + split_data[cnt]; //+'&nbsp;</option>';
			} else {
				buff[cnt] = '<option id="type_option_' + cnt + ' "value="' + cnt + '">' + split_data[cnt]; //+'&nbsp;</option>';
			}
		}
	});
	
	//取得した職種２のリストの件数を取得　＋　HTMLとして書き出し
	$j.get("/shoukai/getTypeList.php?job_category=" + value[0].val()
		+ "&job_type=" + value[1].val()
		+ "&region=" + value[2].val()
		+ "&salary=" + value[3].val()
		+ "&mode=count" , function(data){
		
		var split_data = data.split(',');
		for (cnt=0; cnt < split_data.length; cnt++) {
			buff[cnt] += '[' + split_data[cnt] + '件]</option>';
			//↓同一イベント内で作成したHTMLに対する操作はできないのでまとめて行う～（？）
			if ($j('#category_box').children("option[@selected]").val() != '') {
				$j("#type_box").html('<option value="" selected="selected">指定なし</option>' + buff + '</option>');
			} else {
				$j('#type_box').html('<option value="" selected="selected">種別を選択してください</option>');
			}
			
		}
		
	});
}

function changeType2(value, select_num) {
	//職種１に基づいて職種２のリストを取得
	var buff = new Array();
	$j.get("/shoukai/getTypeList.php?job_category=" + value[0], function(data){
		var split_data = data.split(',');
		var cnt = 0;
		for (cnt=0; cnt < split_data.length - 1; cnt++) {
			if (cnt == select_num) {
				buff[cnt] = '<option id="type_option_' + cnt + ' "value="' + cnt + '" selected="selected">' + split_data[cnt]; //+'&nbsp;</option>';
			} else {
				buff[cnt] = '<option id="type_option_' + cnt + ' "value="' + cnt + '">' + split_data[cnt]; //+'&nbsp;</option>';
			}
		}
	});
	
	//取得した職種２のリストの件数を取得　＋　HTMLとして書き出し
	$j.get("/shoukai/getTypeList.php?job_category=" + value[0]
		+ "&job_type=" + value[1]
		+ "&region=" + value[2]
		+ "&salary=" + value[3]
		+ "&mode=count" , function(data){
		
		var split_data = data.split(',');
		for (cnt=0; cnt < split_data.length; cnt++) {
			buff[cnt] += '[' + split_data[cnt] + '件]</option>';
			//↓同一イベント内で作成したHTMLに対する操作はできないのでまとめて行う～（？）
			if ($j('#category_box').children("option[@selected]").val() != '') {
				$j("#type_box").html('<option value="" selected="selected">指定なし</option>' + buff + '</option>');
			} else {
				$j('#type_box').html('<option value="" selected="selected">種別を選択してください</option>');
			}
			
		}
	});
}

function changeRegion(value, select_num) {
	$j.get("/shoukai/getRegionList.php?job_category=" + value[0].val() +
	"&job_type=" +
	value[1].val() +
	"&region=" +
	value[2].val() +
	"&salary=" +
	value[3].val() +
	"&mode=count", function(data){
		var buff = new Array();
		var sp = data.split('|');
		var split_data1 = sp[0].split(',');
		var split_data2 = sp[1].split(',');
		var cnt = 0;
		for (cnt = 0; cnt < split_data1.length; cnt++) {
			if (cnt == select_num) {
				buff += '<option id="type_option_' + cnt + ' "value="' + cnt + '" selected="selected">' + split_data2[cnt] + '[' + split_data1[cnt] + '件]</option>';
			} else {
				buff += '<option id="type_option_' + cnt + ' "value="' + cnt + '">' + split_data2[cnt] + '[' + split_data1[cnt] + '件]</option>';
			
			}
		}
		
		$j("#region_box").html('<option value="" selected="selected">指定なし</option>' + buff + '</option>');
	});
}

function changeRegion2(value, select_num) {
	$j.get("/shoukai/getRegionList.php?job_category=" + value[0] +
	"&job_type=" +
	value[1] +
	"&region=" +
	value[2] +
	"&salary=" +
	value[3] +
	"&mode=count", function(data){
		var buff = new Array();
		var sp = data.split('|');
		var split_data1 = sp[0].split(',');
		var split_data2 = sp[1].split(',');
		var cnt = 0;
		for (cnt = 0; cnt < split_data1.length; cnt++) {
			if (cnt == select_num) {
				buff += '<option id="type_option_' + cnt + ' "value="' + cnt + '" selected="selected">' + split_data2[cnt] + '[' + split_data1[cnt] + '件]</option>';
			} else {
				buff += '<option id="type_option_' + cnt + ' "value="' + cnt + '">' + split_data2[cnt] + '[' + split_data1[cnt] + '件]</option>';
			
			}
		}
		
		$j("#region_box").html('<option value="" selected="selected">指定なし</option>' + buff + '</option>');
	});
}

function changeSalary(value, select_num) {
	
	$j.get("/shoukai/getSalaryList.php?job_category=" + value[0].val() +
	"&job_type=" +
	value[1].val() +
	"&region=" +
	value[2].val() +
	"&salary=" +
	value[3].val() +
	"&mode=count", function(data){
		var buff = new Array();
		var sp = data.split('|');
		var split_data1 = sp[0].split(',');
		var split_data2 = sp[1].split(',');
		var cnt = 0;
		for (cnt = 0; cnt < split_data1.length; cnt++) {
			if (cnt == select_num) {
				buff += '<option id="type_option_' + cnt + ' "value="' + cnt + '" selected="selected">' + split_data2[cnt] + '[' + split_data1[cnt] + '件]</option>';
			} else {
				buff += '<option id="type_option_' + cnt + ' "value="' + cnt + '">' + split_data2[cnt] + '[' + split_data1[cnt] + '件]</option>';
			
			}
		}
		$j("#salary_box").html('<option value="" selected="selected">指定なし</option>' + buff + '</option>');
		
	});
}

function changeSalary2(value, select_num) {
	
	$j.get("/shoukai/getSalaryList.php?job_category=" + value[0] +
	"&job_type=" +
	value[1] +
	"&region=" +
	value[2] +
	"&salary=" +
	value[3] +
	"&mode=count", function(data){
		var buff = new Array();
		var sp = data.split('|');
		var split_data1 = sp[0].split(',');
		var split_data2 = sp[1].split(',');
		var cnt = 0;
		for (cnt = 0; cnt < split_data1.length; cnt++) {
			if (cnt == select_num) {
				buff += '<option id="type_option_' + cnt + ' "value="' + cnt + '" selected="selected">' + split_data2[cnt] + '[' + split_data1[cnt] + '件]</option>';
			} else {
				buff += '<option id="type_option_' + cnt + ' "value="' + cnt + '">' + split_data2[cnt] + '[' + split_data1[cnt] + '件]</option>';
			
			}
		}
		$j("#salary_box").html('<option value="" selected="selected">指定なし</option>' + buff + '</option>');
		
	});
}


function updateCount(isInit,value){
	if (isInit) {
		var value = new Array();
		value[0] = $j('#category_box').children("option['']");
		value[1] = $j('#type_box').children("option['']");
		value[2] = $j('#region_box').children("option['']");
		value[3] = $j('#salary_box').children("option['']");
	} 
	$j.get("/shoukai/getListCount.php?job_category=" + value[0].val() +
	"&job_type=" +
	value[1].val() +
	"&region=" +
	value[2].val() +
	"&salary=" +
	value[3].val() +
	"&mode=count", function(data){
		var buff = new Array();
		$j('#hit_count').html(data + '<span style="font-size:14px; font-weight:bold; color:#000000;">件</span>');
		//$j("#category_box").html('<option value="" selected="selected">指定なし</option>' + buff + '</option>');
	});
}

function updateCount2(isInit,value){
	if (isInit) {
		var value = new Array();
		value[0] = $j('#category_box').children("option['']");
		value[1] = $j('#type_box').children("option['']");
		value[2] = $j('#region_box').children("option['']");
		value[3] = $j('#salary_box').children("option['']");
	} 
	$j.get("/shoukai/getListCount.php?job_category=" + value[0] +
	"&job_type=" +
	value[1] +
	"&region=" +
	value[2] +
	"&salary=" +
	value[3] +
	"&mode=count", function(data){
		var buff = new Array();
		$j('#hit_count').html(data + '<span style="font-size:14px; font-weight:bold; color:#000000;">件</span>');
		
	});
}


var qsParam = new Array();
var request_flag = 0;
function getRequest() {
	
	var query = window.location.search.substring(1);
	
	
	var parms = query.split('&');
	for (var i=0; i<parms.length; i++) {
		var pos = parms[i].indexOf('=');
		if (pos > 0) {
			var key = parms[i].substring(0,pos);
			var val = parms[i].substring(pos+1);
			qsParam[key] = val;
		}
	}
}



$j(function(){
	var th = this;
	var i = 0;
	
	getRequest();
	
	
	if ((qsParam['job_category'] != '' && qsParam['job_category'] != undef) ||
	(qsParam['job_type'] != '' && qsParam['job_type'] != undef) ||
	(qsParam['region'] != '' && qsParam['region'] != undef) ||
	(qsParam['salary'] != '' && qsParam['salary'] != undef)) {
		
		setRegion(); //地域＋件数の取得
		setSalary(); //年収＋件数の取得
		selectOptions();
		var v = new Array(qsParam['job_category'],qsParam['job_type'],qsParam['region'],qsParam['salary']);
		updateCount2(0, v);
		$j('#type_box').removeAttr('disabled'); 
	}
	else {
		//初期化
		$j('#type_box').attr('disabled', 'disabled');
		$j('#type_box').html('<option value="" selected="selected">種別を選択してください</option>');
		setJobCategory(); //職種１リスト＋件数の取得
		setRegion(); //地域＋件数の取得
		setSalary(); //年収＋件数の取得
		updateCount(1);
	}
	
	
	
	//職種１が変更された時の処理
	$j('#category_box').change(function(){
		//現在の選択状況を取得
		
		var value = getSelection();
		
		//職種が指定されていた場合には、職種を「指定なし」と判断して処理
		//指定なしと判断しない場合、以前の設定そのままになってしまう。
		if (value[1].val() != '') { 
			value[0] = $j('#category_box').children("option[@selected]");
			value[1] = $j('#type_box').children("option['']");
			value[2] = $j('#region_box').children("option[@selected]");
			value[3] = $j('#salary_box').children("option[@selected]");
			
		}
		//setCurrentHit(0,value);
		//setCurrentHit(1,value);
		
		
		changeType(value, -1);
		value = getSelection();
		setCurrentHit(2,value);
		setCurrentHit(3,value);
		
		//職種選択欄の処理
		if ($j('#category_box').children("option[@selected]").val() == '') { //種別入力欄が空の場合には、職種選択を不可にする
			$j('#type_box').attr('disabled', 'disabled');
			
		} else { //空出ない場合には、選択を有効にする。
			$j('#type_box').removeAttr('disabled'); 
		}
		value = getSelection();
		updateCount(0,value);
	});
	
	$j('#type_box').change(function(){
		var value = getSelection();
		
		setCurrentHit(0,value);
		//setCurrentHit(1,value);
		setCurrentHit(2,value);
		setCurrentHit(3,value);
		updateCount(0,value);
	});
	
	
	
	/**
	 * 地域選択時の処理
	 */
	$j('#region_box').change(function(){
		var value = getSelection();
		setCurrentHit(0,value);
		setCurrentHit(1,value);
		//setCurrentHit(2,value);
		setCurrentHit(3,value);
		updateCount(0,value);
	});
	
	/**
	 * 年収選択時の処理
	 */
	$j('#salary_box').change(function(){
		var value = getSelection();
		setCurrentHit(0,value);
		setCurrentHit(1,value);
		setCurrentHit(2,value);
		//setCurrentHit(3,value);
		
		updateCount(0,value);
		
	});
	
	$j('#jobsearchBox').mousemove(function(){
		//selectOptions();
	});
	
});


function selectOptions(){
	
	if (request_flag == 0) {
		
		if (qsParam['job_category'] != '' && qsParam['job_category'] != undef) {
			var defined = qsParam['job_category'];
			var v = new Array(qsParam['job_category'],qsParam['job_type'],qsParam['region'],qsParam['salary']);
			changeCategory2(v, defined);
			$j('#category_box option').filter('[@value=' + defined + ']').attr('selected', 'selected');
		}
		
		if (qsParam['job_type'] != '' && qsParam['job_type'] != undef) {
			var defined = qsParam['job_type'];
			var v = new Array(qsParam['job_category'],qsParam['job_type'],qsParam['region'],qsParam['salary']);
			changeType2(v,defined);
			$j('#type_box option').filter('[@value=' + defined + ']').attr('selected', 'selected');
		}
		if (qsParam['region'] != '' && qsParam['region'] != undef) {
			var defined = qsParam['region'];
			var v = new Array(qsParam['job_category'],qsParam['job_type'],qsParam['region'],qsParam['salary']);
			changeRegion2(v, defined);
			$j('#region_box option').filter('[@value=' + defined + ']').attr('selected', 'selected');
		}
		if (qsParam['salary'] != '' && qsParam['salary'] != undef) {
			var defined = qsParam['salary'];
			var v = new Array(qsParam['job_category'],qsParam['job_type'],qsParam['region'],qsParam['salary']);
			changeSalary2(v, defined);
			$j('#salary_box option').filter('[@value=' + defined + ']').attr('selected', 'selected');
		}
		
		request_flag = 1;
		//カテゴリ処理
		var value = getSelection();
		updateCount(0,value);
		
	} else if(request_flag == 1) {
		
		request_flag = 2;
		var value = getSelection();
		updateCount(0,value);
	}
}
