﻿
var array_cities = []; //完整城市列表
var array_cities_filter = []; //当前搜索结果
var array_cities_showing = []; //显示中的城市
var sugSelectItem = 0; //选中项目
var sugSelectTurn = 0; //显示中选中项的序号
var citySelected = 0; //选中城市[SHIJIAZHUANG, 石家庄, 1301] 
//var cityfield_focused = false; //输入框是否获得焦点
var mousedownOnPanel = false; //鼠标按在菜单上
var curPageIndex = 0; //当前分页序号

var chipMouseDownOnInnSelectionDiv = false; // 鼠标按在酒店选择面板上
var chipMouseDownOnAreaSelectionDiv = false; // 鼠标在商圈选择面板上
//var chipInnSelection_focused = false; //输入框是否获得焦点



//分拆城市信息
var cities = cities.split('@');
var favcityID = ''; //ht_getcookie("hj_favcity");
for (var i = 0; i < cities.length; i++) {
    var titem = cities[i];
    // array_cities.push(titem);
    if (titem.length > 0) {
        titem = titem.split('|');
        if (favcityID != "" && titem[2] == favcityID) {
            favcity = titem;
            array_cities.unshift(titem);
            //当fav城市位于第一页时，避免重复显示
            if (i > 8) {
                array_cities.push(titem);
            }
        } else {
            array_cities.push(titem);
        }
    }
}

//alert(array_cities.length);

for (var i = 0; i < array_cities.length; i++) {
    array_cities[i].push(i);
}

//alert(array_cities.length);

function hidehotellist() {
    try {
        $("#selHotel").css("display", "none");
    }
    catch (err)
    { }
}

function MapCityName(aCidyID) {
    //[Beijing, 北京, 1100]
    for (var i = 0; i < array_cities.length; i++) {
        if (array_cities[i][2] == aCidyID) {
            return array_cities[i][1];
        }
    }

    return "";
}

//搜索符合关键字的城市
function filterCity(aKeyword) {
    if (aKeyword.length == 0) {
        $("#top_cities").html("输入中文/拼音.");
        return array_cities;
    }
    var aList = [];
    var isPinyin = /[^A-z]/.test(aKeyword);
    for (var i = 0; i < array_cities.length; i++) {
        if (isMatchCity(array_cities[i], aKeyword, isPinyin))
            aList.push(array_cities[i]);
    }
    if (aList.length > 0) {
        $("#top_cities").html("按“<font color=red>" + aKeyword + "</font>”字符检索：");
        return aList;
    } else {
        $("#top_cities").html("对不起，找不到：<font color=red>" + aKeyword + "</font>");
        return [];
    }
}

//判断某城市是否符合搜索条件,只要拼音或中文顺序包含排列关键词字符元素即可
function isMatchCity(aCityInfo, aKey, aisPinyin) {
    var aKey = aKey.toLowerCase();
    var aInfo = [aCityInfo[0].toLowerCase(), aCityInfo[1]];
    //aCityInfo [shanghai, 上海, 1202]
    //是否含有汉字
    var lastIndex = -1;
    if (aisPinyin) {
        aKey = aKey.split("");
        for (var m = 0; m < aKey.length; m++) {
            var newIndex = aInfo[1].indexOf(aKey[m]);
            if (newIndex > lastIndex) {
                aInfo[1] = replaceChar(aInfo[1], newIndex, "-");
                lastIndex = newIndex;
            } else {
                return false;
            }
        }
    } else {
        aKey = aKey.split("");
        for (var m = 0; m < aKey.length; m++) {
            var newIndex = aInfo[0].indexOf(aKey[m]);
            if (newIndex > lastIndex) {
                aInfo[0] = replaceChar(aInfo[0], newIndex, "-");
                lastIndex = newIndex;
            } else {
                return false;
            }
        }
    }
    return true;
}

function replaceChar(astring, aindex, Char) {
    return astring.substr(0, aindex) + Char + astring.substr(aindex + 1, astring.length - 1);
}

function ShowdivSQXZ() {
    $('#divSQXZ').css('display', 'block');
    //    if (HT$("divPyzyDateBox") != undefined) {
    //        HT$("divPyzyDateBox").style.display = "none";
    //        GetPyzyIframe("ifmdivPyzyDateBox", "hidden");
    //    }
    //    return true;
}

$(function() {
    // alert("test2");
    //空条件过滤出所有城市列表
    array_cities_filter = filterCity("");
    city_showlist(0);

    // 点击城市输入框时，显示城市选择框，离开焦点时则不显示。
    $("#cityname").focus(function() {
        // alert("test1");
        if ($("#cityname").val() == "<中文或拼音>") {
            $("#cityname").val("");
        }
        //cityfield_focused = true;
        //hidehotellist();
        //!!!
        // HiddenDateBox();
        city_shiftSelect($("#citem_0"));
        $("#form_cities").css("display", "block");
        // GetPyzyIframe("ifmdivPyzyDateBox", "hidden");        
        return true;
    }).blur(function() {
        //alert("test2");
        if (!mousedownOnPanel) {
            //cityfield_focused = false;            
            $("#form_cities").css("display", "none");
        }
        return true;
    }).keyup(function(aevent) {
        aevent = aevent || window.event;
        if (aevent.keyCode != 40 && aevent.keyCode != 38 && aevent.keyCode != 37 && aevent.keyCode != 39 && aevent.keyCode != 13 && aevent.keyCode != 9) {
            array_cities_filter = filterCity($("#cityname").val());
            city_showlist(0);
        }
    }).change(function() {
        setTimeout('clearCity()', 200); //clearCity()
    });

    // 点击城市选择面板
    $('#form_cities').mousedown(function() {
        mousedownOnPanel = true;
    }).mouseup(function() {
        mousedownOnPanel = false;
    });

    // 点击城市选择面板提示行，城市名称输入框为激活状态
    $('#top_cities').click(function() {
        if ($("#form_cities").css("display") == "block") {
            $("#cityname").focus();
        }
    });

    // 点击酒店输入框
    $('#resv_innName_txt').focus(function() {
        //chipInnSelection_focused = true;
        /* 不弹出选择面板，直接输入名称 */
        // $("#resv_selectInn_container").css("display", "block");
        // setTimeout("area_selectInn", 100);
        if ($('#resv_innName_txt').val() == "<关键字查询>") {
            $('#resv_innName_txt').val("");
        }
    }).blur(function() {
        // if (!chipMouseDownOnInnSelectionDiv) {
        //chipInnSelection_focused = false;
        //  $("#resv_selectInn_container").css("display", "none");
        // }
        //setTimeout("$('#resv_selectInn_container').css('display', 'none');", 100);
        // return true;
        if ($('#resv_innName_txt').val().length == 0) {
            $('#resv_innName_txt').val("<关键字查询>");
        } else {
            $('#resv_innName_hidden').val($('#resv_innName_txt').val());
        }
    });

    // 点击酒店选择面板
    $('#resv_selectInn_container').mousedown(function() {
        chipMouseDownOnInnSelectionDiv = true;
    }).mouseup(function() {
        chipMouseDownOnInnSelectionDiv = false;
    });

    // 设置商圈的显示与不显示，默认情况下，是通过CSS设置为不显示的
    $('#txtSQXZ').focus(function() {
        ShowdivSQXZ();
    }).blur(function() {
        // 如果不延迟关闭，则会导致不能触发弹出面板中的事件
        setTimeout("$('#divSQXZ').css('display', 'none');", 200);
    }).change(function() {
        if ($('#txtSQXZ').val() == "") {
            $('#txtSQXZ').val("<选城市区域>");
            $('#hdSQXZ').val("");
        }
    });

    //    var favcityCityName = MapCityName(favcityID);
    //    if ($("#cityname").val() != undefined) {
    //        if (favcityCityName.length > 0 && $("#cityname").val().length == 0) {
    //            $("#cityname").val(favcityCityName);
    //        }
    //    }

    //    var a = chipDate.getDate("2007-7-7");
    //    alert(a);
    //

    // var date = new Date(Date.parse(str.replace("-", "/")));

    $("#datepickerin").val(chipDate.getDateString(new Date()));
    $("#datepickerout").val(chipDate.getDateString(chipDate.addDays(new Date(), 1)));
    // $("#datepickerin").data("datepicker").settings.maxDate = chipDate.addDays(new Date(), 90);    
});


var array_inns;
var count_inns;
// 根据商圈获取酒店列表，动态地通过Ajax获取。每次都是获取全部的结果，只是动态的分页显示给客人。即：分页是在客户端通过js完成。
function inn_ajaxShowList(cityCode, businessArea, pageIndex) {
    // 通过Ajax获取所有的结果。
    // 根据显示的页数，
    // var shangQuan = $("#hdSQXZ").val();
    $.ajax({
        type: "POST",
        cache: false,
        url: chipVirtualDir + "ajax/reservation.asmx/GetInnList",
        data: { cityCode: $("#hdcitycode").val(), businessArea: $("#hdSQXZ").val() },
        dataType: 'json',
        success: function(dataList, status) {
            var innerhtml = '';
            if (dataList != null) {
                $.each(dataList, function(i, item) {
                    innerhtml += ("<div class='innLine' id='resv_selectInn_innitem:" + i + "'>");
                    innerhtml += ("<span class='lalign1'>")
                    innerhtml += ("<a class='arearmenulink' onclick=\"area_selectInn('" + item.innGuid + "','" + item.innName + "');\">" + item.innName + "</a>"); //  onmousedown='' 
                    innerhtml += ("</span></div>");
                });
            } else {
                innerhtml = "&nbsp;&nbsp;尚无商圈区域信息";
            }

            $("#resv_selectInn_body").html(innerhtml);
        }
    });
}

function area_selectInn(innGuid, innName) {
    $('#resv_innName_hidden').val(innGuid);
    $('#resv_innName_txt').val(innName);
}

//显示当前城市列表中的指定分页
function city_showlist(aPageNo) {
    if (array_cities_filter.length > 8) {
        //取分页数据
        var pagecount = Math.ceil((array_cities_filter.length + 1) / 8);
        if (aPageNo == -1)
            aPageNo = (pagecount - 1)
        else if (aPageNo == pagecount)
            aPageNo = 0;
        array_cities_showing = array_cities_filter.slice(8 * (aPageNo), Math.min(8 * (aPageNo + 1), array_cities_filter.length));
        city_Bind(array_cities_showing);
        //翻页控制
        var flipHtml = (aPageNo == 0) ? "&laquo;上一页" : "<a href='' class='cityflip' onclick='city_showlist(" + (aPageNo - 1) + ");return false;'>&laquo;上一页</a>";
        flipHtml += "&nbsp;&nbsp;&nbsp;&nbsp;" + (aPageNo + 1) + "/" + pagecount + "&nbsp;&nbsp;&nbsp;&nbsp;";
        flipHtml += (aPageNo == pagecount - 1) ? "下一页&raquo;" : "<a href='' class='cityflip' onclick='city_showlist(" + (aPageNo + 1) + ");return false;'>下一页&raquo;</a>";
        $("#flip_cities").html(flipHtml);
        $("#flip_cities").css("display", "block");
    } else {
        aPageNo = 0;
        array_cities_showing = array_cities_filter;
        city_Bind(array_cities_showing);
        $("#flip_cities").css("display", "none");
    }
    curPageIndex = aPageNo;
    if ($("#form_cities").css("display") == "block") {
        $("#cityname").focus();
    }
}



//显示给定的城市列表片段
function city_Bind(acitylist) {
    if (acitylist.length == 0)
        return;
    var tHtml = "";
    $.each(
		acitylist,
		function(aIndex) {
		    if (favcityID == acitylist[aIndex][2])
		        tHtml += "<div class='cityline'  id='citem_" + aIndex + "' cturn='" + acitylist[aIndex][3] + "'><span class='lalign'><b>" + acitylist[aIndex][1] + "</b></span><span class='ralign'><b>" + acitylist[aIndex][0] + "</b></span></div>\n";
		    else
		        tHtml += "<div class='cityline'  id='citem_" + aIndex + "' cturn='" + acitylist[aIndex][3] + "'><span class='lalign'>" + acitylist[aIndex][1] + "</span><span class='ralign'>" + acitylist[aIndex][0] + "</span></div>\n";
		}
	);
    $('#panel_cities').html(tHtml);
    $('.cityline').mouseover(
		function() { city_shiftSelect(this); }
	).click(
		function() { city_confirmSelect(); }
	);
    city_shiftSelect($("#citem_0"));
}

function ht_setcookie(cookieName, cookieValue, seconds, path, domain, secure) {

    var expires = new Date();
    expires.setTime(expires.getTime() + seconds * 1000);
    document.cookie = escape(cookieName) + '=' + escape(cookieValue)
		+ (expires ? '; expires=' + expires.toGMTString() : '')
		+ (path ? '; path=' + path : '/')
		+ (domain ? '; domain=' + domain : '')
		+ (secure ? '; secure' : '');
}

//确认选择
function city_confirmSelect() {
    $("#cityname").val(citySelected[1]);
    $("#hdcitycode").val(citySelected[2]);

    //$("#arealist_SQ") = 
    ht_setcookie("hj_favcity", citySelected[2], 99999);
    ht_setcookie("hj_favcityname", citySelected[1], 99999);
    $("#form_cities").css("display", "none");

    //if (HT$("expore_guide"))
    //    HT$("expore_guide").style.display = (citySelected[2] == "3100") ? "block" : "none";
    //  不提供日历面板自动跳转
    //	if( $("#datepickerin").val().length==0 )
    //	{
    //	    $("#datepickerin").focus();
    //	}
    $("#txtSQXZ").val("");
    $("#hdSQXZ").val("");
    $("#txtSQXZ").blur();

    //更新商圈和行政区
    RefreshSQXZ(citySelected[2], true);
    //绑定酒店列表
    //AjaxHotelList(citySelected[2]);
}


function RefreshSQXZ(cityCode, NotSkip) {

    //if (HT$("txtSQXZ") != null) {

    RefreshArea(cityCode, "SQ");
    RefreshArea(cityCode, "XZ");

    //        if (!NotSkip)
    //            document.getElementById("datepickerin").focus();
    //}
}

function AjaxHotelList(acityCode) {
    return true;
    try {
        GetAjaxHotelList(acityCode, "");
    }
    catch (Error)
    { }
}


//填充商圈和行政区
function RefreshArea(cityCode, flag) {
    // return true;
    ///标志是否商圈和行政区
    var isFlag = (flag == "SQ");
    if (isFlag) {
        $.ajax({
            type: "POST",
            cache: false,
            url: chipVirtualDir + "ajax/reservation.asmx/GetBusinessAreaList",
            data: { "cityCode": cityCode, "type": 'District' },
            dataType: 'json',
            success: function(dataList, status) {
                var innerhtml = '';
                if (dataList != null) {
                    $.each(dataList, function(i, item) {
                        //innerhtml += ("<div class='innLine' id='resv_selectArea_innitem:" + i + "'>");
                        //innerhtml += ("<span class='lalign1'>")
                        innerhtml += ("<a class='arearmenulink' onclick=\"area_selectBusinessArea('" + item.sqId + "','" + item.sqName + "','district');\">" + item.sqName + "</a>"); //  onmousedown=''
                        //innerhtml += ("</a></span></div>");
                    });
                } else {
                    innerhtml = "&nbsp;&nbsp;尚无商圈区域信息";
                }
                $("#divSQ").html(innerhtml);
            },
            error: function(result, status) { //如果没有上面的捕获出错会执行这里的回调函数
                //                if (status == 'error') {    }
                $("#divSQ").html('');
                $("#hdSQXZ").val("");
            }
        });
    } else {
        //获取行政区域
        $.ajax({
            type: "POST",
            cache: false,
            url: chipVirtualDir + "ajax/reservation.asmx/GetBusinessAreaList",
            data: { "cityCode": cityCode, "type": 'Region' },
            dataType: 'json',
            success: function(dataList, status) {
                var innerhtml = '';
                if (dataList != null) {
                    $.each(dataList, function(i, item) {
                        //innerhtml += ("<div class='innLine' id='resv_selectArea_innitem:" + i + "'>");
                        //innerhtml += ("<span class='lalign1'>")
                        innerhtml += ("<a class='arearmenulink' onclick=\"area_selectBusinessArea('" + item.sqId + "','" + item.sqName + "','region');\">" + item.sqName + "</a>"); //  onmousedown=''
                        //innerhtml += ("</a></span></div>");
                    });
                } else {
                    innerhtml = "&nbsp;&nbsp;尚无行政区域信息";
                }

                $("#divXZ").html(innerhtml);
            },
            error: function(result, status) { //如果没有上面的捕获出错会执行这里的回调函数
                //                if (status == 'error') { }
                $("#divXZ").html('');
                $("#hdSQXZ").val("");
            }
        });
    }
}

// 选中了商圈面板中的一个商圈
function area_selectBusinessArea(sqId, sqName, type) {
    $("#txtSQXZ").val(sqName);
    $("#hdSQXZ").val(sqId);
    $("#hdSQXZType").val(type);
    //inn_ajaxShowList($("#hdcitycode").val(), sqId, 0);
}

//指定新的选中项，恢复旧项
function city_shiftSelect(atarget) {
    if (sugSelectItem != atarget) {
        if (sugSelectItem != 0)
            $(sugSelectItem).removeClass('citylineover').addClass('cityline').css("backgroundColor", "white");
        if (atarget != 0) {
            try {
                sugSelectItem = atarget;
                var city_j = $(sugSelectItem).removeClass('cityline').addClass('citylineover').css("backgroundColor", "#c8e3fc");
                sugSelectTurn = Number(city_j.attr('id').split("_")[1]);
                citySelected = array_cities[Number(city_j.attr('cturn'))];
                $("#cityid").val(citySelected[2]);
            } catch (e) { }
        }
    }
}

////获取当天日期：格式"yyyy-mm-dd ww"
//function getdate() {
//    var now = new Date();
//    y = now.getFullYear();
//    m = now.getMonth() + 1;
//    d = now.getDate();
//    w = now.getDay();
//    w = " 周" + "天一二三四五六".charAt(w);
//    m = m < 10 ? "0" + m : m;
//    d = d < 10 ? "0" + d : d;
//    // return y + "-" + m + "-" + d + w;
//    return y + "-" + m + "-" + d;
//}

function getdatebystr(str) {
    var date = new Date(Date.parse(str.replace("-", "/")));
    y = date.getFullYear();
    m = date.getMonth() + 1;
    d = date.getDate();
    m = m < 10 ? "0" + m : m;
    d = d < 10 ? "0" + d : d;
    w = (date.getDay() + 1) % 7;
    w = " 周" + "天一二三四五六".charAt(w);
    // return y + "-" + m + "-" + d + w;
    return y + "-" + m + "-" + d;
}



// 清空所选城市城市
function clearCity() {
    if ($("#cityname").val().length == 0) {
        $("#cityname").val("<中文或拼音>");
        $("#hdcitycode").val("");
        citySelected = 0;
        $("#divSQ").html("");
        $("#divXZ").html("");
        $("#hdSQXZType").val("");
        $("#hdSQXZ").val("");
        $("#txtSQXZ").val("<选城市区域>");
    }
}

