﻿// JScript 文件

var city=0;
var provinceList;
var cityList;
var startCity,endCity;
var startProvince = 0;
var endProvince = 0;

var hotelType=0;
var hotelLevel=0;
var startDate,endDate,hotelName,priceStart,priceEnd,ncount=0;

var inputAreaItem;
var isStartInput;

var area_loaded = false;

var isOut=false;

var hotelPageIndex = 0;
var hotelPageSize = 8;
var hotelBufferSize = 2 * hotelPageSize;

var HotelDisplay;
var HotelDisplaymore;
var hours = 1; 
var exp = new Date(); 
exp.setTime(exp.getTime() + hours*60*60*1000);

document.onclick   =function   aa()   
  {   
  var   parentID=window.event.srcElement.parentElement.id;   
  var myid=window.event.srcElement.id;
  if (myid!= "hotelType2" && myid!="hotelClass" && parentID!="mySelect") HideSelect();
  } 
function   DateDiff(sDate1,   sDate2){     //sDate1和sDate2是2002-12-18格式  
        var   aDate,   oDate1,   oDate2,   iDays;
        aDate   =   sDate1.split("-");
        oDate1   =   new   Date(aDate[1]   +   '-'   +   aDate[2]   +   '-'   +   aDate[0]);     //转换为 月-日-年 格式  
        aDate   =   sDate2.split("-");
        oDate2   =   new   Date(aDate[1]   +   '-'   +   aDate[2]   +   '-'   +   aDate[0]);
        iDays   =   parseInt(Math.abs(oDate1   -   oDate2)   /   1000   /   60   /   60   /24);     //把相差的毫秒数转换为天数  
        return   iDays;
    }    
    /***************************************地点选择器*****************************************/
function ShowAreaSelect() {
        BOX_show("divArea");
        
        if( area_loaded ) {  
            if (isStartInput)
            {
                UpdateArea(startProvince, isStartInput);
                return false;
            }
            else
            {
                UpdateArea(endProvince, isStartInput);
                return false;
            }
        }
        area_loaded = true;
        $("#divArea").find(".area").empty();
        IIITripAJAX({
            service : AreaService().LoadCitys,
            params  : {mode:5},
            resultHanle : function(result) {
                cityList = result.Data;             
                IIITripAJAX({
                    service : AreaService().LoadProvinces,
                    params  : {},
                    resultHanle : function(result) {
                        var region_area = $("#divArea").find(".level1");
                        $.each( result.Data, function(i,n){
                            var item = $("<span/>");
                            item.text( n.AreaName );
                            item.css({"cursor":"pointer"});
                            item.bind("click", function(){
                                UpdateArea(n.Id);
                                return false;
                            });
                            item.appendTo( region_area );
                        });
                        //UpdateSchoolArea( $("#usertype").val(), null );
                        
                        var schoolsArea = $("#divArea").find(".mainContent");
                        var loading = schoolsArea.find(".loading");
                        var areas = schoolsArea.find(".area");
                        loading.hide();
                        areas.show();       
                    }
                }).execRequest_Json();  
            }
        }).execRequest_Json();        
    }  
    
    function UpdateArea(areaId) {
        $("#divArea").find(".area").empty();
        var citysArea = $("#divArea").find(".mainContent");
        var loading = citysArea.find(".loading");
        var citys = citysArea.find(".area");
        $.each( cityList, function(i,n){
            if(n.ParentId == areaId){
                var city_item = $("<li></li>").text( n.AreaName );
                city_item.css( {"cursor":"pointer"} );
                city_item.text( n.Name );
                city_item.bind("click", function(){
                    BOX_remove( "divArea" );
                    inputAreaItem.val( n.AreaName );
                    if (isStartInput)
                    {
                        startCity = n.Id;
                        startProvince = n.ParentId;
                    }       
                    else 
                    {
                        endCity = n.Id;
                        endProvince = n.ParentId;
                    }
                    return false;
                });
                citys.append( city_item ); 
            } 
        });
    }

 /*****************************************************************地点选择器******************************************************/ 
 
/***************************************************************列表选择******************************************************************/
    var hotel_class=0;
    var hotel_type=0;
	var selectedItem;
	var nSelectedFlag = 0;
	var mytmp;
	function mOvr(a,nflag)
	{
		if (nflag == 1)
		{
			a.className = 'selected_item';
		}else{
			a.className = 'normal_item';
		}
	}
	function ShowMySelect(a,nContent)
	{
		HideSelect();
		selectedItem = a;
		nSelectedFlag = 1;
    	
    	var pos = [a.offsetLeft, a.offsetTop]; //首先获得该元素相对第一个非流布局父元素的位置    
    	var parentNode = a.offsetParent; //获得该元素的第一个非流布局父元素    
    	if (parentNode != a) {         
    		while (parentNode) {             
    			pos[0] += parentNode.offsetLeft;             
    			pos[1] += parentNode.offsetTop;            
    			parentNode = parentNode.offsetParent; //循环定义非流布局父元素        
    		}    
    	}		
		var b = document.getElementById('mySelect');
		//b.style.left = a.offsetLeft;
		//b.style.top = a.offsetTop + a.offsetHeight + 1;
		b.style.left = String(pos[0]) + 'px';
		b.style.top = String(pos[1] + a.offsetHeight + 1) + 'px';
		b.style.width = String(a.offsetWidth) + 'px';
		//if (nContent == 1) b.innerHTML = getProvince();
		if (nContent == 2) b.innerHTML = getHotelClass();
		if (nContent == 3) b.innerHTML = getHotelType();
		b.style.display = 'block';
	}
	function HideMySelect()
	{
		//document.getElementById('mySelect').style.display = 'none';
	}
	function getSelectedValue(a)
	{
		selectedItem.value = a.innerHTML;		
		HideSelect();
	}
	function HideSelect()
	{
		document.getElementById('mySelect').style.display = 'none';
	}
	function BodyClick()
	{
		if (nSelectedFlag == 0)
		{
			HideSelect();
		}
		nSelectedFlag = 0;
	}
	function getHotelClass()
	{
		var cstr1 = '';
		cstr1 = cstr1 + '<p class="normal_item" onmouseover="mOvr(this,1)" onmouseout="mOvr(this,0)" onclick="getSelectedValue(this);hotel_class=0;" >不限</p>\n';
		cstr1 = cstr1 + '<p class="normal_item" onmouseover="mOvr(this,1)" onmouseout="mOvr(this,0)" onclick="getSelectedValue(this);hotel_class=1;" >五星级/豪华</p>\n';
		cstr1 = cstr1 + '<p class="normal_item" onmouseover="mOvr(this,1)" onmouseout="mOvr(this,0)" onclick="getSelectedValue(this);hotel_class=2;" >四星级/高档</p>\n';
		cstr1 = cstr1 + '<p class="normal_item" onmouseover="mOvr(this,1)" onmouseout="mOvr(this,0)" onclick="getSelectedValue(this);hotel_class=3;" >三星级/舒适</p>\n';
		cstr1 = cstr1 + '<p class="normal_item" onmouseover="mOvr(this,1)" onmouseout="mOvr(this,0)" onclick="getSelectedValue(this);hotel_class=4;" >二星级及以下/经济</p>\n';
		return cstr1;
	}
	function getHotelType()
	{
		var cstr1 = '';
		cstr1 = cstr1 + '<p class="normal_item" onmouseover="mOvr(this,1)" onmouseout="mOvr(this,0)" onclick="getSelectedValue(this);hotel_type=0;" >不限</p>\n';
		cstr1 = cstr1 + '<p class="normal_item" onmouseover="mOvr(this,1)" onmouseout="mOvr(this,0)" onclick="getSelectedValue(this);hotel_type=1;" >酒店式公寓</p>\n';
		cstr1 = cstr1 + '<p class="normal_item" onmouseover="mOvr(this,1)" onmouseout="mOvr(this,0)" onclick="getSelectedValue(this);hotel_type=2;" >度假型酒店</p>\n';
		return cstr1;
	}
/***************************************************************列表选择******************************************************************/
	
 
function paraseHotelData(divObject,oData)
{
        var daypeirod=$("#peirod");
        var diff=DateDiff(startDate,endDate);
        //alert(diff);
        var line="入住日期："+startDate+" 离店日期："+endDate+" 共 "+diff+" 晚";
        daypeirod.text(line);
        daypeirod.show();
        divObject.divContent.find("div").remove();
        divObject.divContent.append($("<div id='searchChild'></div>"));
    $.each(oData,function(i,n) {
        var row = $("#hotelItemTemplate").clone();
        row.attr("id","hotel_"+n.Id);
        row.find("#hotelImage").attr("src",ImgFormat( n.ProductImgS));
        switch(n.HotelClassId){
            case 1:row.find("#hotelStar").attr("src","../../images/5stars.gif");break;
            case 2:row.find("#hotelStar").attr("src","../../images/4stars.gif");break;
            case 2:row.find("#hotelStar").attr("src","../../images/3stars.gif");break;

        }
        
        row.find("#hotelItemName").text(n.HotelName);
        row.find("#hotelItemName").attr("href","../../Search/Hotel/Hotel_view.aspx?id="+n.Id);
        row.find("#hotelDescription").html((n.Intro1).replace(new RegExp("\n","gm"),"<br>").replace(/ /g,"&nbsp;"));
        row.find("#roomresult").attr("id","roomresult"+n.Id);
        row.find("#alltype").attr("href","javascript:fetchAllRooms("+n.Id+")");
        var hid=n.Id;
        IIITripAJAX({
        service : HotelService().GetRooms,
        params  : {iHotelID:n.Id,priceStart:priceStart,priceEnd:priceEnd,
        sGetInDate:startDate,sGetOutDate:endDate
        },
        resultHanle : function(result) {
            
            var oData = result.Data;
            var container = row.find("#roomresult"+n.Id);
            $.each(oData,function(i,n) {
                var item = $("#roomtemplate").clone();
                item.attr("id","room_" + n.Id);
                item.find("#roomtype").text(n.RoomName);
                item.find("#standprice").text(n.PriceWeekday1);
                item.find("#promoteprice").text(n.PriceWeekday1);
                item.find("#breakfast").text(n.Breakfast);
                item.find("#bedtype").text(n.Bed);
                item.find("#internet").text(n.Internet);
                item.find("#reserve").find("a").attr("href","../../Search/Hotel/Hotel_reservation.aspx?id="+n.Id);
                
                item.appendTo(container).show();
            });
        }
    }).execRequest_Json(null);
        row.appendTo(divObject.divContent).show();
    });
};

function fetchAllRooms(hotelID){
    IIITripAJAX({
        service : HotelService().GetAllRooms,
        params  : {iHotelID:hotelID},
        resultHanle : function(result) {
            var oData = result.Data;
            var container = $("#roomresult"+hotelID);
            container.find("dl").remove();
            $.each(oData,function(i,n) {
                //if ($("#room_" + n.Id)==null){
                    
                    var item = $("#roomtemplate").clone();
                    item.attr("id","room_" + n.Id);
                    item.find("#roomtype").text(n.RoomName);
                    item.find("#standprice").text(n.PriceWeekday1);
                    item.find("#promoteprice").text(n.PriceWeekday1);
                    item.find("#breakfast").text(n.Breakfast);
                    item.find("#bedtype").text(n.Bed);
                    item.find("#internet").text(n.Internet);
                    item.find("#reserve").find("a").attr("href","../../Search/Hotel/Hotel_reservation.aspx?id="+n.Id);

                    item.appendTo(container).show();
                //}
            });
            
        }
    }).execRequest_Json(null);
}
function initPage()
{

        $("#mainNav").find("#hotel_menu").find("a").attr("class","current");
        HotelDisplay = IIITripAJAX({
        objList : [{ ID : "searchResult", onDataDisplay: paraseHotelData}],
        service:HotelService().Search,

        bufferSize : hotelBufferSize,
        pagination : true,
        pageSize : hotelPageSize
    });
      if(window.location.search.length>0) {
           // isOut=true;
            var querystrings=window.location.search.substring(1).split("&");
            startCity=querystrings[0].split("=")[1];
            startDate=querystrings[1].split("=")[1];
            endDate=querystrings[2].split("=")[1];
            hotelName=querystrings[3].split("=")[1];
            hotelType=parseInt(querystrings[4].split("=")[1]);
            hotelLevel=parseInt(querystrings[5].split("=")[1]);
            priceStart=querystrings[6].split("=")[1];
            priceEnd=querystrings[7].split("=")[1];
            ncount=querystrings[8].split("=")[1];
            if(ncount == 0)//酒店更多
            {
                SetCookie("start_Date",startDate,exp,"/",null,null);
                SetCookie("end_Date",endDate,exp,"/",null,null);
                HotelDisplay.setRequestHeader({
                      params : {iCity:startCity,startDate:startDate,endDate:endDate,sHotelName:hotelName,iHotelType: hotelType,iHotelLevel:hotelLevel,priceStart:priceStart,priceEnd:priceEnd,nPageIndex:hotelPageIndex, nPageSize:hotelBufferSize}
                    });
                HotelDisplay.clearData();
                HotelDisplay.display_Json(null);
            }
            else
            {
                HotelDisplaymore = IIITripAJAX({
                                objList : [{ ID : "searchResult", onDataDisplay: paraseHotelData}],
                                service:HotelService().GetAllMoreHotel,
                                params :{num:ncount,nPageIndex:hotelPageIndex, nPageSize:hotelBufferSize},
                                bufferSize : hotelBufferSize,
                                pagination : true,
                                pageSize : hotelPageSize
                            });
               HotelDisplaymore.display_Json(null);
            }
            
      }
      $("#startDate").bind("focus",function () {
        WdatePicker();
      });
      $("#endDate").bind("focus",function () {
        WdatePicker();
      });

      $("#city").bind("focus", function() {
            inputAreaItem = $("#city");
            isStartInput = true;
            ShowAreaSelect();
      });
      $("#btnSearch").bind("click",function() {
            if ($("#city").val()=="") {
                alert("所在地不能为空");
                return;
            }
            else if ($("#startDate").val()==""){
                alert("入住时间不能为空");
                return;
            }
            else if ($("#endDate").val()==""){
                alert("离店时间不能为空");
                return;
            }
           else if (!DateCheck($("#startDate").val(),$("#endDate").val())){
                alert("入住时间不能在离店时间之后！");
                return;
            }    
            else if (!IsNum($("#priceStart").val()) || !IsNum($("#priceEnd").val())){
                alert("房价必须输入数字");
                return;
            }
            else if (!(Number($("#priceStart").val())<=Number($("#priceEnd").val()))){
                alert("房价范围错误");
                return;
            }                   
            if (isOut==false){
                hotelType=hotel_type;
                hotelLevel=hotel_class;
                city=$("#city").val();
                startDate=$("#startDate").val();
                endDate=$("#endDate").val();
                hotelName=$("#hotelName").val();
                if($("#priceStart").val()=="")
                {
                    priceStart=0;
                }
                else
                {
                    priceStart=$("#priceStart").val();
                }
                if($("#priceEnd").val()=="")
                {
                    priceEnd=100000000;
                }
                else
                {
                    priceEnd=$("#priceEnd").val();
                }
            }
            var hours = 1; 
            var exp = new Date(); 
            exp.setTime(exp.getTime() + hours*60*60*1000);
            SetCookie("start_Date",startDate,exp,"/",null,null);
            SetCookie("end_Date",endDate,exp,"/",null,null);
            
             var querystring="";
            
            querystring+="city="+startCity;
            querystring+="&startDate="+startDate;
            querystring+="&endDate="+endDate;
            querystring+="&hotelName="+hotelName;  
            querystring+="&hotelType="+hotelType;
            querystring+="&hotelLevel="+hotelLevel;          
            if($("#priceStart").val()=="")
            {
                querystring+="&priceStart=0";
            }
            else
            {
                querystring+="&priceStart="+$("#priceStart").val();
            }
            if($("#priceEnd").val()=="")
            {
                querystring+="&priceEnd=100000000";
            }
            else
            {
                querystring+="&priceEnd="+$("#priceEnd").val();
            }
            querystring +="&num=0";                
            window.location.href = "../../Search/Hotel/Hotel_search_list.aspx?"+querystring;
//            HotelDisplay.setRequestHeader({
//                
//                params : {iCity:startCity,
//                            startDate:startDate,endDate:endDate, 
//                            sHotelName:hotelName,
//                            iHotelType: hotelType ,
//                            iHotelLevel:hotelLevel ,
//                            priceStart:priceStart,priceEnd:priceEnd,
//                            nPageIndex:hotelPageIndex, nPageSize:hotelBufferSize}
//                });
//            HotelDisplay.clearData();
//            HotelDisplay.display_Json(null);

      });
}


$(document).ready(function ()
{
    initPage(); 
    IIITripAJAX({
        service : HotelService().GetRecommandHotels,
        params  : {},
        resultHanle : function(result) {
            var oData = result.Data;
            var container = $("#recommand_hotel").find("ul");
            $.each(oData,function(i,n) {
                if (i>=9) return;
                var item = $("#recommendTemplate").clone();
                item.attr("id","recommend_" + n.Id);
                item.find("a").text(n.HotelName);
                //***************************************是否连接票务系统************************************
                if(n.IfLinkSystem !=0)
                {
                    item.find("a").attr("href","../../Search/Hotel/Hotel_PiaoWu_reservation.aspx?id="+n.Id);
                }
                else
                {
                    item.find("a").attr("href","../../Search/Hotel/Hotel_view.aspx?id="+n.Id);
                }
                //*******************************************************************************************
                item.appendTo(container).show();
            });
        }
    }).execRequest_Json(null);
    

    
});





