// jquery
$(function(){
   try
   {
		fillSelectByTimeOption('id_startTime');
		fillSelectByTimeOption('id_backTime');
		
		$('#id_startDate').val(DateAdd('d',1,new Date(),'1'));
		$('#id_hotelStartDate').val(DateAdd('d',1,new Date(),'1'));
		$('#id_hotelBackDate').val(DateAdd('d',2,new Date(),'1'));
		
		// 给日期输入框绑定日期输入控件
		$('#id_startDate').click(function(event) {
			showSearchCalendarn(this, 0, new Date(), AddDay('y', 1, new Date()), undefined, 0, undefined, event, compareDate_start_back);
			return false;
		}).blur(function() {
			showSearchCalendarn(this, 1);
			return false;
		});
		//往返特价有两个日期查询框
		$('#id_startDate1').click(function(event) {
			showSearchCalendarn(this, 0, new Date(), AddDay('y', 1, new Date()), undefined, 0, undefined, event, compareDate_start_back1);
			return false;
		}).blur(function() {
			showSearchCalendarn(this, 1);
			return false;
		});
		
		$('#id_backDate').click(function(event) {
			var starDateVal = $('#id_startDate').val();
			var startDate;
			if (null == starDateVal || "" == starDateVal || "yyyy-mm-dd" == starDateVal) {
				startDate = new Date();
			} else {
				startDate = getDateFromString(starDateVal);
			}
			showSearchCalendarn(this, 0, AddDay('d', 0, startDate), AddDay('y', 1, new Date()), undefined, 0, undefined, event);
			return false;
		}).blur(function() {
			showSearchCalendarn(this, 1);
			return false;
		});
		//往返特价有两个日期查询框
		$('#id_backDate1').click(function(event) {
			if("undefined" != typeof(closeHistorylist)){
				closeHistorylist();
			}
			var starDateVal = $('#id_startDate1').val();
			var startDate;
			if (null == starDateVal || "" == starDateVal || "yyyy-mm-dd" == starDateVal) {
				startDate = new Date();
			} else {
				startDate = getDateFromString(starDateVal);
			}
			showSearchCalendarn(this, 0, AddDay('d', 0, startDate), AddDay('y', 1, new Date()), undefined, 0, undefined, event);
			return false;
		}).blur(function() {
			showSearchCalendarn(this, 1);
			return false;
		});
		
		// 给酒店日期输入框绑定日期输入控件
		$('#id_hotelStartDate').click(function(event) {
			/*上海世博会放开酒店日期到2010-10-21  start*/		     
			if($('#id_hotelStartCity').val()=="上海")
			{ 
			   showSearchCalendarn(this, 0, new Date(), new Date(2010,09,21), undefined, 0, $("#id_hotelBackDate"), event, compareDateHotel_start_back);
			}
			else
			{
               showSearchCalendarn(this, 0, new Date(), AddDay('n', 2, new Date()), undefined, 0, $("#id_hotelBackDate"), event, compareDateHotel_start_back);
			}
			/*上海世博会放开酒店日期到2010-10-21  end*/	
			//showSearchCalendarn(this, 0, new Date(), AddDay('n', 2, new Date()), undefined, 0, undefined, event, compareDateHotel_start_back);
			return false;
		}).blur(function() {
			showSearchCalendarn(this, 1);
			return false;
		});
		$('#id_hotelBackDate').click(function(event) {
			var starDateVal = $('#id_hotelStartDate').val();
			var startDate;
			if (null == starDateVal || "" == starDateVal || "yyyy-mm-dd" == starDateVal) {
				startDate = new Date();
			} else {
				startDate = getDateFromString(starDateVal);
			}
			
			/*上海世博会放开酒店日期到2010-10-21  start*/		     
			if($('#id_hotelStartCity').val()=="上海")
			{ 
			   showSearchCalendarn(this, 0, AddDay('d', 0, startDate), new Date(2010,09,21), undefined, 0, undefined, event);
			}
			else
			{
               showSearchCalendarn(this, 0, AddDay('d', 0, startDate), AddDay('n', 2, new Date()), undefined, 0, undefined, event);
			}
			/*上海世博会放开酒店日期到2010-10-21  end*/	
			return false;
		}).blur(function() {
			showSearchCalendarn(this, 1);
			return false;
		});
		
	    // 给出发城市输入框绑定城市显示控件
	    $('#id_startCity,#id_endCity').click(function(event){
	         var nextHiddenId = $(this).next().attr('id');
	         suggest.displayClick(this, nextHiddenId,event,"flight");       
	    }).keyup(function(event){
	         showCitySuggest(this, event,"flight"); 
	    }).blur(function(){
	         showSearch(this,1);
	         suggest.hidden_suggest();
	    }).focus(function(event){
	         $(this).click();
	         showSearch(this);
	    }).attr('maxlength', 12);
	    
	    // 给出发城市输入框绑定城市显示控件
	    $('#id_hotelStartCity').click(function(event){
	        /*上海世博会放开酒店日期到2010-10-21  start*/		     
			if($('#id_hotelStartCity').val()=="上海")
			{ 
				if ($('#id_hotelStartDate').val() != undefined && $('#id_hotelStartDate').val() != null && $('#id_hotelStartDate').val() != '') {
					var startDate = getDateFromString($("#id_hotelStartDate").val());
					var backDate = AddDay('n', 2, new Date());
					if (startDate >= backDate) {
						$('#id_hotelStartDate').val(formatDate(AddDay('d', 1, new Date()), 1));
					}
				}// end if
				if ($('#id_hotelBackDate').val() != undefined && $('#id_hotelBackDate').val() != null && $('#id_hotelBackDate').val() != '') {
					var startDate1 = getDateFromString($("#id_hotelBackDate").val());
					var backDate1 = AddDay('n', 2, new Date());
					if (startDate1 >= backDate1) {
						$('#id_hotelBackDate').val(formatDate(AddDay('d', 2, new Date()), 1));
					}
				}// end if
			}
			/*上海世博会放开酒店日期到2010-10-21  end*/	  
	        var nextHiddenId = $(this).next().attr('id');
	        suggest.displayClick(this, nextHiddenId,event,"hotel");  
	    }).keyup(function(event){
	         showCitySuggest(this, event,"hotel"); 
	    }).blur(function(){
	         showSearch(this,1);
	         suggest.hidden_suggest();
	    }).focus(function(event){
	         $(this).click();
	         showSearch(this);
	    }).attr('maxlength', 12);
	      
		var tempStartCity = $('#id_startCity').val();
		if (tempStartCity == undefined || tempStartCity == null || tempStartCity == '') {
			$('#id_startCity').val("中文/拼音").css('color', '#C1C1C1');
		}
		var tempEndCity = $('#id_endCity').val();
		if (tempEndCity == undefined || tempEndCity == null || tempEndCity == '') {
			$('#id_endCity').val("中文/拼音").css('color', '#C1C1C1');
		}
		var tempHotelCity = $('#id_hotelStartCity').val();
		if (tempHotelCity == undefined || tempHotelCity == null || tempHotelCity == '') {
			$('#id_hotelStartCity').val("中文/拼音").css('color', '#C1C1C1');
		}
	      
	    // 给单程、往返单选框框绑定显示控件
		$('#id_lineType1').click(function(event) {
			$('#id_backDateLi,#id_backTimeLi,#id_backDateLiValue,#id_backTimeLiValue').hide();
			$('#id_backDate').val("");
		});
	
		$('#id_lineType2').click(function(event) {
			$('#id_backDateLi,#id_backTimeLi,#id_backDateLiValue,#id_backTimeLiValue').show();
			var tempBackDate;
			var starDateVal = $('#id_startDate').val();
			if (null == starDateVal || "" == starDateVal || "yyyy-mm-dd" == starDateVal) {
				tempBackDate = "yyyy-mm-dd";
			} else {
				tempBackDate = formatDate(AddDay('d', 1, getDateFromString($('#id_startDate').val())), 1);
			}
			$('#id_backDate').val(tempBackDate);
		});
	    
		// 绑定查询控件的事件
		$('#id_research').click(function() {
			var flag = flightsQueryCheck();
			var tempC = flag.split("&");
			if (tempC[0] == "success") {
				if ("undefined" != typeof(saveHistory)) {
					saveHistory();
				}
				$('#id_dpt').val(getThreeWordByCity($('#id_startCity').val(),"flight"));
				$('#id_arr').val(getThreeWordByCity($('#id_endCity').val(),"flight"));
				if (1 == $("#id_queryFlag").size()) {
					$("#id_queryFlag").val("");
				}
				$('#id_queryFlightForm').attr("action", "http://flight.mangocity.com/flights-search.shtml");
				$(this).attr("disabled", true);
				$('#id_queryFlightForm')[0].submit();
				//__ozclk();
				return false
			} else {
				alert(tempC[1] + "!");
				window.setTimeout(function() { $('#' + tempC[0]).focus(); }, 10);
			}
		});
		$("#id_hotelSearch").click(function(){
		   var flag = hotelQueryCheck();
		   var tempC = flag.split("&");
		   if (tempC[0] == "success") 
	       {
	         $("#id_cityCode").val(getThreeWordByCity($("#id_hotelStartCity").val(),"hotel"));
	         $(this).attr("disabled", true);
	         $('#id_queryHotelForm')[0].submit();
	         //__ozclk();
	         return false
	       } 
	       else 
	       {
			 alert(tempC[1] + "!");
			 window.setTimeout(function() { $('#' + tempC[0]).focus(); }, 10);
		   }
		}); 
		$("#id_pkgSearch").click(function(){
	         verifySubmit();
	         //__ozclk();
	         return false
		});
		
		setTimeout(function() {
		    $('input,select').focus(function (event){
		          if($(event.target).attr("id") != 'id_startDate'&&$(event.target).attr("id") != 'id_backDate'
		             &&$(event.target).attr("id") != 'id_hotelStartDate'&&$(event.target).attr("id") != 'id_hotelBackDate')
		          {
		             MangoCalendar.closeCalendar();
		          }
		          else
		          {
		             $('#'+$(event.target).attr("id")).click();
			          return false;
		          }
		    });
		}, 1);
		
		initHistorylist("get");
	}
	catch(exception)
	{}
});
/**
 * 判断是否日期格式
 * @return {Boolean} 符合日期格式返回<code>true</code>,否则返回<code>false</code>
 */
String.prototype.isDateString = function() {
	var iaMonthDays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
	var iaDate = new Array(3);
	var year, month, day;
	if (this == undefined || this == null || this.trim() == "")
	{
		return false;
	}
	var reg = /^\d{4}-\d{2}-\d{2}$/;
	var sDateTemp = this.trim();
	var reTemp = reg.test(sDateTemp);
	if (!reTemp)
		return false;
	iaDate = this.toString().split("-");
	if (iaDate.length != 3)
		return false;
	if (iaDate[1].length > 2 || iaDate[2].length > 2)
		return false
	if (isNaN(iaDate[0]) || isNaN(iaDate[1]) || isNaN(iaDate[2]))
		return false
	year = parseFloat(iaDate[0])
	month = parseFloat(iaDate[1])
	day = parseFloat(iaDate[2])
	if (year < 1900 || year > 2100)
		return false
	if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0))
		iaMonthDays[1] = 29;
	if (month < 1 || month > 12)
		return false
	if (day < 1 || day > iaMonthDays[month - 1])
		return false
	return true
}
    var show = false;

    /***** cookie  start *****/
    function saveHistory()
	{
		var temp1 = ($('#id_lineType1').attr("checked")?'ow':'rt');//ow：单程 ；rt：往返程
		var temp2 = $('#id_startCity').val();
		var temp3 = $('#id_endCity').val();
		var temp4 = $('#id_startDate').val();
		var temp5 = (temp1=='rt')?$('#id_backDate').val():"nodata";
	    var list = new Array();
	    list.push(temp1);
		list.push(temp2);
		list.push(temp3);
		list.push(temp4);
		list.push(temp5);
		getCondition();
		if(!compareAready(list))
		{
	       saveCondition(list);
	    }
	}
	
	function compareAready(list)
	{
	   var flag = false;
 	   var length = arrays.length;
	   var lengthList = list.length;
	   for(var i=0;i<length;i++)
	   {
	      var sign = true;
	      for (var j=0;j<lengthList;j++)
	      {
	         if(arrays[i][j]!=list[j])
	         {
	            sign = false;
	            break;
	         }
	      }//end for
	      if(sign) 
	      {
	        flag = true;
	        break;
	      }
	   }//end for
	   return flag
	}
	function clickHistory(flag)
    {
       show = false;
       $('#id_historyList').removeClass('lishi');
       $('#id_historyList').empty();
       $('#id_lineType1').trigger("click");
       var date1= new Date();
       var date4 = format_Date_cookie(getNextDay(1));
       var temp = arrays[Number(flag)];
       if(temp[0]=="ow")
       {
           $('#id_lineType1').attr("checked",true);
           $('#id_lineType1').trigger("click");
       }
       else
       {
           $('#id_lineType1').attr("checked",false);
           $('#id_lineType2').attr("checked",true);
           $('#id_lineType2').trigger("click");
           var date3 = format_Date_cookie(temp[4]);
           date1<date3?$('#id_backDate').val(temp[4]):$('#id_backDate').val(formatDate(getDateFromString((date4.getFullYear()+"-"+(date4.getMonth()+1)+"-"+date4.getDate())),1));
       }
	   $('#id_startCity').val(temp[1]);
	   $('#id_endCity').val(temp[2]);
	   var date2 = format_Date_cookie(temp[3]);
	   if(date1<=date2)
	   {
	      $('#id_startDate').val(temp[3]);
	   }  
	   else
	   {
	      $('#id_startDate').val(formatDate(getDateFromString((date4.getFullYear()+"-"+(date4.getMonth()+1)+"-"+date4.getDate())),1));
	   }
    }
   	
	function initHistorylist(flag)
	{
	    getCondition();
		if(arrays!=null&&arrays!=undefined&&arrays.length>0)
		{
		   for(var i=(arrays.length-1);i>=0;i--)
		   {
		      if(i==(arrays.length-1)&&flag=="get")clickHistory(i);
		   }//end for 
		}
	}
	
	function getSign(sign,length)
	{
	   var str = "";
	   for(var i=0;i<length;i++)
	   {
	      str += sign;
	   }
	   return str;
	}

    /***** cookie  end *****/
    
	function showCitySuggest(cityInputObj, event,flag) {
		var nextHiddenId = $(cityInputObj).next().attr('id');
		suggest.display(cityInputObj, nextHiddenId, event,flag);
	}

	function compareDate_start_back(value) {
		var startDate = getDateFromString(value);
		if ($('#id_backDate').val() != undefined && $('#id_backDate').val() != null && $('#id_backDate').val() != '') {
			var backDate = getDateFromString($('#id_backDate').val());
			if (startDate >= backDate) {
				$('#id_backDate').val(formatDate(AddDay('d', 1, startDate), 1));
			}
		}// end if
		else {
			$('#id_backDate').val(formatDate(AddDay('d', 1, startDate), 1));
		}
	}
	
	function compareDateHotel_start_back(value) {
		var startDate = getDateFromString(value);
		if ($('#id_hotelBackDate').val() != undefined && $('#id_hotelBackDate').val() != null && $('#id_hotelBackDate').val() != '') {
			var backDate = getDateFromString($('#id_hotelBackDate').val());
			if (startDate >= backDate) {
				$('#id_hotelBackDate').val(formatDate(AddDay('d', 1, startDate), 1));
			}
		}// end if
		else {
			$('#id_hotelBackDate').val(formatDate(AddDay('d', 1, startDate), 1));
		}
	}
	
	function compareDate_start_back1(value) {
		var startDate = getDateFromString(value);
		if ($('#id_backDate1').val() != undefined && $('#id_backDate1').val() != null && $('#id_backDate1').val() != '') {
			var backDate = getDateFromString($('#id_backDate1').val());
			if (startDate >= backDate) {
				$('#id_backDate1').val(formatDate(AddDay('d', 1, startDate), 1));
			}
		}// end if
		else {
			$('#id_backDate1').val(formatDate(AddDay('d', 1, startDate), 1));
		}
	}
	// 页面查询校验
	function flightsQueryCheck() {
		var flag = "success";
		var lineType = ($('#id_lineType1').attr("checked") ? 'ow' : 'rt');
		var startCity = $('#id_startCity').val();
		var endCity = $('#id_endCity').val();
		var startDate = $('#id_startDate').val();
		var backDate = $('#id_backDate').val();
		if (getThreeWordByCity(startCity,"flight") == "")return "id_startCity" + "&" + "请填写正确的出发城市";
		if (getThreeWordByCity(endCity,"flight") == "")return "id_endCity" + "&" + "请填写正确的到达城市";
		if (!startDate.isDateString())return "id_startDate" + "&" + "请填写正确的出发日期";
		if (getThreeWordByCity(startCity,"flight") == getThreeWordByCity(endCity,"flight"))return "id_endCity" + "&" + "出发城市与到达城市不能同名";
		if (lineType == "rt" && !backDate.isDateString())return "id_backDate" + "&" + "请填写正确的返程日期";
		if (lineType == "rt" && getDateFromString(startDate) > getDateFromString(backDate))return "id_backDate" + "&" + "返程日期应晚于出发日期";
		return flag;
	}
	function hotelQueryCheck() {
		var flag = "success";
		var startCity = $('#id_hotelStartCity').val();
		var startDate = $('#id_hotelStartDate').val();
		var backDate = $('#id_hotelBackDate').val();
		if (getThreeWordByCity(startCity,"hotel") == "")return "id_hotelStartCity" + "&" + "请填写正确的城市";
		if (!startDate.isDateString())return "id_hotelStartDate" + "&" + "请填写正确的入住日期";
		if (!backDate.isDateString())return "id_hotelBackDate" + "&" + "请填写正确的离店日期";
		if ( getDateFromString(startDate) > getDateFromString(backDate))return "id_hotelBackDate" + "&" + "离店日期应晚于入住日期";
		return flag;
	}
	// 往返特价重新查询校验
	function rtflightsQueryCheck() {
		var flag = "success";
		var startDate = $('#id_startDate1').val();
		var backDate = $('#id_backDate1').val();
		if (!startDate.isDateString())return "id_startDate1" + "&" + "请填写正确的出发日期";
		if (!backDate.isDateString())return "id_backDate1" + "&" + "请填写正确的返程日期";
		if (getDateFromString(startDate) > getDateFromString(backDate))return "id_backDate1" + "&" + "返程日期应晚于出发日期";
		return flag;
	}