﻿//////最終更新2009/12/28//////
// 2009/12/24　検索後に戻ってきた際に選択肢をそのままにする処理を追加
// 2009/12/28　コメントを追記


$(function(){

	////////////検索カテゴリの部分////////////
	var myList = "";
	var selectWord;
	
	$.ajax({
		url: "xml/search.xml",
		type: 'GET',
		dateType: "xml",
		success: function(data){
		
			///////////一番最初のページロード時///////////
			///////エリアのセレクトボックスを埋める
			$(data).find('myArea').each(function(){
				myList += '<option>' + $(this).attr('name') + '</option>';
			});
			document.getElementById("area").innerHTML = '<select>' + myList + '</select>';
			myList = "";
			
			//////エリア・最初＞国のセレクトボックスを埋める
			$(data).find('myArea:first').children().each(function(){
				myList += '<option value="' + $(this).attr('grp') + '">' + $(this).attr('name') + '</option>';
			});
			document.getElementById("country").innerHTML = '<select>' + myList + '</select>';
			myList = "";
			
			//////エリア・最初＞国・最初＞都市・日程のセレクトボックスを埋める
			$(data).find('Country:first').children().each(function(){
				myList += '<option value="' + $(this).attr('cat') + '">' + $(this).attr('name') + '</option>';
			});
			document.getElementById("days").innerHTML = '<select>' + myList + '</select>';
			document.getElementById("city").innerHTML =  '<select><option>-----</option></select>';
			myList = "";
			///////////ページロード時の処理end///////////
			
			
			///////////エリア選択時///////////
			////エリアのセレクトDomにチェンジがあった場合、選択肢をチェックして、xmlから引っ張る
			$('#area select').change(function(){
				selectWord = "myArea[name=" + $('#area option:selected').text() + "]";	//セレクタ構文
				$(data).find(selectWord).children().each(function(){
					myList += '<option value="' + $(this).attr('grp') + '">' + $(this).attr('name') + '</option>';
				});
				document.getElementById("country").innerHTML = '<select>' + myList + '</select>';
				myList = "";
				
				if($(data).find(selectWord).children(':first').children().is('City')){		//都市選択があるかないか
					
					////都市の選択がある場合
					$(data).find(selectWord).children(':first').children().each(function(){
					myList += '<option>' + $(this).attr('name') + '</option>';
					});
					document.getElementById("city").innerHTML = '<select>' + myList + '</select>';
					myList = "";
					
					$(data).find(selectWord).find('City:first').children().each(function(){
						myList += '<option value="' + $(this).attr('cat') + '">' + $(this).attr('name') + '</option>';
					});
					document.getElementById("days").innerHTML = '<select>' + myList + '</select>';
					myList = "";

				} else {
				
					////都市の選択がない場合
					$(data).find(selectWord).children(':first').children().each(function(){
						myList += '<option value="' + $(this).attr('cat') + '">' + $(this).attr('name') + '</option>';
					});
					document.getElementById("days").innerHTML = '<select>' + myList + '</select>';
					document.getElementById("city").innerHTML =  '<select><option>-----</option></select>';
					myList = "";
					
				}
				
				///////////国選択時///////////
				////国のセレクトDomにチェンジがあった場合、選択肢をチェックして、xmlから引っ張る
				$('#country select').change(function(){
					selectWord = "Country[name=" + $('#country option:selected').text() + "]";	//セレクタ構文
					$(data).find(selectWord).children().each(function(){
						myList += '<option value="' + $(this).attr('cat') + '">' + $(this).attr('name') + '</option>';
					});
					
					if($(data).find(selectWord).children().is('City')){		//都市選択があるかないか
					
						////都市選択あり
						document.getElementById("city").innerHTML = '<select>' + myList + '</select>';
						myList = "";
						
						$(data).find(selectWord).children(':first').children().each(function(){
							myList += '<option value="' + $(this).attr('cat') + '">' + $(this).attr('name') + '</option>';
						});
						document.getElementById("days").innerHTML = '<select>' + myList + '</select>';
						myList = "";
						
						///////////都市選択があり、都市選択をした場合///////////
						$('#city select').change(function(){
								selectWord = "City[name=" + $('#city option:selected').text() + "]";	//セレクタ構文
								$(data).find(selectWord).children().each(function(){
								myList += '<option value="' + $(this).attr('cat') + '">' + $(this).attr('name') + '</option>';
							});
							document.getElementById("days").innerHTML = '<select>' + myList + '</select>';
							myList = "";
						
						});
						
					} else {
						
						/////都市選択なし
						document.getElementById("days").innerHTML =  '<select>' + myList + '</select>';		//都市選択なし
						document.getElementById("city").innerHTML =  '<select><option>-----</option></select>';
						myList = "";

					}
				
				});
				
			});
		
		}
		
	});
	
	
	////////////出発日の設定////////////
	var calDat = new Date();
	calDat.setDate(calDat.getDate() + 5);		////今の日付の5日後をベースの日とする
	var calYear = calDat.getFullYear();
	var calMonth = calDat.getMonth()+1;
	if(calMonth < 10){calMonth = "0" + calMonth;}
	var calDay;

	var year_month = '<option value="noSelect">指定しない</option><option value="' + calYear + calMonth + '">' +	calYear + '年' + calMonth + '月</option>';
	calDat.setDate(1);
	
	///////半年分の月の選択肢をセレクタオプションに入れる
	for(var i=0; i<5; i++){
		calDat.setMonth(calDat.getMonth() + 1);
		calMonth = calDat.getMonth() + 1;
		if(calMonth < 10) {
			calMonth = "0" + calMonth;
		}
		calYear = calDat.getFullYear();
		year_month += '<option value="' + calYear + calMonth + '">' + calYear + '年' + calMonth + '月</option>';
	}
	document.getElementById("selectDay1").innerHTML = "<select>" + year_month + "</select>";
	var _day = '';
	
	//////日付指定で選択肢を選んだ場合//////
	$('#selectDay1 select').change(function(){
		
		if($('#selectDay1 option:eq(1)').is(':selected')){	//今の月の場合
		
			calDat = new Date();
			calDat.setDate(calDat.getDate() + 5);
			calMonth = calDat.getMonth();
			while(calMonth == calDat.getMonth()) {
				calDay = calDat.getDate();
				if(calDay < 10) {calDay = "0" + calDay;}
				_day += '<option value="' + calDay + '">' + calDay + "日</option>";
				calDat.setDate(calDat.getDate() + 1);
			}
			
		} else if($('#selectDay1 option:first').is(':selected')) {	//日付指定をしない場合
		
			_day = '<option>----</option>';
		
		} else {	//来月以降の指定をした場合
			
			calDat.setFullYear($('#selectDay1 option:selected').attr('value').slice(0,4));
			calDat.setMonth($('#selectDay1 option:selected').attr('value').slice(5,6)-1);
			calDat.setDate(1);
			calMonth = calDat.getMonth();
			while(calMonth == calDat.getMonth()) {
				calDay = calDat.getDate();
				if(calDay < 10) {calDay = "0" + calDay;}
				_day += '<option value="' + calDay + '">' + calDay + "日</option>";
				calDat.setDate(calDat.getDate() + 1);
			}
			
		}
		document.getElementById("selectDay2").innerHTML = "<select>" + _day + "</select>";
		_day = "";
	
	});
	
	
	////////////検索ボタンを押された際の処理////////////
	$('#searchButtun').click(function(){
		var myGrp = $('#country option:selected').attr('value');
		var myCat = $('#days option:selected').attr('value');
		var myURL = "http://www1.tour.ne.jp/tokubrh/tur/dtlist.php?grp=" + myGrp + "&cat=" + myCat;
		
		////日付指定がある場合
		if($('#selectDay1 option:first').is(':selected') == false) {
		 var paraYear = $('#selectDay1 option:selected').attr('value').slice(0,4);
		 var paraMonth = $('#selectDay1 option:selected').attr('value').slice(4,6);
		 var paraDay = $('#selectDay2 option:selected').attr('value');
		 myURL += "&sel_year=" + paraYear + "&sel_month=" + paraMonth + "&sel_day=" + paraDay;
		}
		pageTracker._trackPageview('/_CatSearch/' + document.title);	//GAnaにデーター送信
		
		////検索後に戻ってきても選択肢をそのままにするためのクッキー処理
		var searchCat = "ab_" + $('#area option').index($('#area option:selected')) + "_" + $('#country option').index($('#country option:selected')) + "_" + $('#city option').index($('#city option:selected')) + "_" + $('#days option').index($('#days option:selected'));
		$.cookie('search', searchCat);
		
		location.href = myURL;
	});
			
});
