﻿function StringBuffer() {
    this.data = new Array();
}
StringBuffer.prototype.append = function(str) {
    this.data.push(str);
    return this;
}
StringBuffer.prototype.toString = function() {
    return this.data.join("");
}

function citypickerhandler(cityname, citycode, referceId) {
	document.getElementById(referceId).value = citycode
}

function morecitypickerhandler(citycode) {
	switchPage('tabbp_99',citycode);
}

function AirportPicker(targetid,referceId,handler) {
    this.targetid = targetid;
    this.ahandler = handler;
    this.referceId = referceId;
    this.init();
}

AirportPicker.airPortArr = [
    ["北京", "PEK"], ["上海", "SHA"],  ["广州", "CAN"], ["深圳", "SZX"], ["成都", "CTU"],  ["重庆", "CKG"], ["西安", "XIY"],
    ["杭州", "HGH"], ["沈阳", "SHE"],  ["大连", "DLC"], ["青岛", "TAO"], ["武汉", "WUH"],  ["长沙", "CSX"], ["南京", "NKG"],
    ["厦门", "XMN"], ["天津", "TSN"],  ["哈尔滨", "HRB"],["乌鲁木齐", "URC"], ["昆明", "KMG"], ["长春", "CGQ"],["宁波", "NGB"],
    ["郑州", "CGO"], ["济南", "TNA"],  ["海口", "HAK"], ["合肥", "HFE"], ["兰州", "LHW"],  ["福州", "FOC"],  ["贵阳", "KWE"]];

AirportPicker.prototype.init = function () {
    if(!document.getElementById("citypicker")) {
        var _this = this;
        var div = document.createElement('div');
        div.style.display = "none";
        div.className = "index_ghcs1";
        div.setAttribute("id", "citypicker");
        var strHTML = new StringBuffer(); 
        strHTML.append('<div class="index_Layer2" onclick="event.cancelBubble=true;"><div class="yy"><div class="xzcs"><p><table width="100%" border="0" align="center" cellpadding="0" cellspacing="0"><tr><td align="right" height="30" colspan="7" bgcolor="#f1f1f1" class="index_Layer_title"><img class="index_close" id="cpclosebutton" src="http://source.quna.com/images/close.gif" style="cursor:pointer;" /><div style="padding-left:5px; color:#666; font-weight:600;">热门城市选择</div></td>');
        for(var i = 0; i < AirportPicker.airPortArr.length; i++) {
            if(i % 7 == 0) {
                strHTML.append('</tr><tr>');
            }
            strHTML.append('<td class="index_Layer_city"><span style="color:#555555;cursor:pointer;" citycode="' + AirportPicker.airPortArr[i][1] + '">' + AirportPicker.airPortArr[i][0] + '</span></td>');
        }
        strHTML.append('</tr><tr><td align="left" height="20" colspan="7" style="padding-top:10px; padding-left:60px; background:url(http://source.quna.com/images/qitcs.gif) no-repeat 5px 15px;"><input class="input_2" type="image" src="http://source.quna.com/images/tijiao.gif" id="citypicker_imgbutton" /><input id=othercity_name class="chengshi1" name=othercity_name mod="address|notice" mod_address_source="fltDomestic" mod_address_suggest="@Beijing|北京|BJ|PEK@Shanghai|上海|SH|SHA@Shenzhen|深圳|SZ|SZX@Guangzhou|广州|GZ|CAN@Dalian|大连|DL|DLC@Chengdu|成都|CD|CTU@Tianjin|天津|TJ|TSN@Haerbin|哈尔滨|HEB|HRB@Xian|西安|XA|XIY@Chongqing|重庆|CQ|CKG@Hangzhou|杭州|HZ|HGH@Qingdao|青岛|QD|TAO@" mod_notice_tip="全拼/简拼/中文" mod_address_reference="otherhomecity" /><input id="otherhomecity" type="hidden" name="otherhomecity" /></td></tr></table></p></div></div></div></div>');
        div.innerHTML = strHTML.toString();
        document.body.appendChild(div);
        var cpclosebutton = document.getElementById('cpclosebutton');
        cpclosebutton.onclick = function() {
            _this.hide();
        }
    }
    this.htmlpart = document.getElementById("citypicker");
}
AirportPicker.prototype.show = function (onresize) {
    this.hide();
	HotelCityPicker.hide();
	MoreCityPicker.hide();
    if(onresize != true) {
        var _this = this;
        var actionArr = document.getElementById("citypicker").getElementsByTagName("span");
        for(var i = 0; i < actionArr.length; i++) {
            actionArr[i].onclick = function() {
                _this.submit(this.innerHTML, this.getAttribute("citycode"));
            }
        }
        document.getElementById("citypicker_imgbutton").onclick = function () {
            var cityname = document.getElementById("othercity_name").value;
            var citycode = document.getElementById("otherhomecity").value;
            _this.submit(cityname, citycode);
        }
        this.htmlpart.onkeydown = function(event) {
            event = event || window.event;
            keynum = event.which || event.keyCode;
            if(keynum == 13) {
                var cityname = document.getElementById("othercity_name").value;
            	var citycode = document.getElementById("otherhomecity").value;
                _this.submit(cityname, citycode);
            }
        }
    }
    var atarget = document.getElementById(this.targetid);
    var aleft = gELeft(atarget);
    var aright = gERight(atarget);
    var cleft = aleft+3;//(aright - aleft) / 2 + aleft - 49; 
    var ctop = gEBottom(atarget);
    this.htmlpart.style.top = ctop + "px";
    this.htmlpart.style.left = cleft + "px";
    this.htmlpart.style.display = "block";
}
AirportPicker.prototype.hide = function () {
    document.getElementById("othercity_name").value="全拼/简拼/中文";
    document.getElementById("otherhomecity").value="";
    this.htmlpart.style.display = "none";
}
AirportPicker.prototype.submit = function (cityname, citycode) {
    this.hide();
    var atarget = document.getElementById(this.targetid);
    if(citycode != null && citycode != "") {
        if(atarget.tagName == "INPUT") {
            atarget.value = cityname;
        } else {
            atarget.innerHTML = cityname;
        }
        this.ahandler(cityname, citycode, this.referceId);
    }
}
AirportPicker.hide = function () {
    var citypicker = document.getElementById("citypicker");
    if(citypicker) {
       document.getElementById("othercity_name").value="全拼/简拼/中文";
       document.getElementById("otherhomecity").value="";
       citypicker.style.display = "none"; 
    }
}

function MoreCityPicker(targetid,handler) {
	this.targetid = targetid;
    this.ahandler = handler;
    this.init();
}

MoreCityPicker.moreCityArr = [
    ["重庆","CKG"],["天津","TSN"],["厦门","XMN"],["昆明","KMG"],["大连","DLC"],["青岛","TAO"],["三亚","SYX"],
    ["长沙","CSX"],["桂林","KWL"],["沈阳","SHE"],["长春","CGQ"],["宁波","NGB"],["温州","WNZ"],["南宁","NNG"],
    ["海口","HAK"],["哈尔滨","HRB"],["乌鲁木齐","URC"],["银川","INC"],["福州","FOC"],["贵阳","KWE"],["珠海","ZUH"],
    ["郑州","CGO"],["济南","TNA"],["呼和浩特","HET"],["太原","TYN"],["合肥","HFE"],["兰州","LHW"], ["南昌","KHN"]]; 

MoreCityPicker.prototype.init = function () {
    if(!document.getElementById("morecitypicker")) {
        var _this = this;
        var div = document.createElement('div');
        div.style.display = "none";
        div.className = "index_ghcs1";
        div.setAttribute("id", "morecitypicker");
        var strHTML = new StringBuffer(); 
        strHTML.append('<div class="index_Layer2" onclick="event.cancelBubble=true;"><div class="yy"><div class="xzcs"><p><table width="100%" border="0" align="center" cellpadding="0" cellspacing="0"><tr><td align="right" height="30" colspan="7" bgcolor="#f1f1f1" class="index_Layer_title"><img class="index_close" id="moreclosebutton" src="http://source.quna.com/images/close.gif" style="cursor:pointer;" /><div style="padding-left:5px; color:#666; font-weight:600;">更多出发城市</div></td>');
        for(var i = 0; i < MoreCityPicker.moreCityArr.length; i++) {
            if(i % 7 == 0) {
                strHTML.append('</tr><tr>');
            }
            strHTML.append('<td class="index_Layer_city"><span style="color:#555555;cursor:pointer;" citycode="' + MoreCityPicker.moreCityArr[i][1] + '">' + MoreCityPicker.moreCityArr[i][0] + '</span></td>');
        }
        strHTML.append('</tr><tr><td align="left" height="20" colspan="7" style="padding-top:10px; padding-left:60px; background:url(http://source.quna.com/images/qitcs.gif) no-repeat 5px 15px;"><input class="input_2" type="image" src="http://source.quna.com/images/tijiao.gif" id="morecitypicker_imgbutton" /><input id=moreothercity_name class="chengshi1" name=moreothercity_name mod="address|notice" mod_address_source="fltDomestic" mod_address_suggest="@Beijing|北京|BJ|PEK@Shanghai|上海|SH|SHA@Shenzhen|深圳|SZ|SZX@Guangzhou|广州|GZ|CAN@Dalian|大连|DL|DLC@Chengdu|成都|CD|CTU@Tianjin|天津|TJ|TSN@Haerbin|哈尔滨|HEB|HRB@Xian|西安|XA|XIY@Chongqing|重庆|CQ|CKG@Hangzhou|杭州|HZ|HGH@Qingdao|青岛|QD|TAO@" mod_notice_tip="全拼/简拼/中文" mod_address_reference="moreotherhomecity" /><input id="moreotherhomecity" type="hidden" name="moreotherhomecity" /></td></tr></table></p></div></div></div></div>');
        div.innerHTML = strHTML.toString();
        document.body.appendChild(div);
        var cpclosebutton = document.getElementById('moreclosebutton');
        cpclosebutton.onclick = function() {
            _this.hide();
        }
    }
    this.htmlpart = document.getElementById("morecitypicker");
}
MoreCityPicker.prototype.show = function (onresize) {
    this.hide();
    AirportPicker.hide();
	HotelCityPicker.hide();
    if(onresize != true) {
        var _this = this;
        var actionArr = document.getElementById("morecitypicker").getElementsByTagName("span");
        for(var i = 0; i < actionArr.length; i++) {
            actionArr[i].onclick = function() {
                _this.submit(this.getAttribute("citycode"));
            }
        }
        document.getElementById("morecitypicker_imgbutton").onclick = function () {
            var citycode = document.getElementById("moreotherhomecity").value;
            _this.submit(citycode);
        }
        this.htmlpart.onkeydown = function(event) {
            event = event || window.event;
            keynum = event.which || event.keyCode;
            if(keynum == 13) {
            	var citycode = document.getElementById("moreotherhomecity").value;
                _this.submit(citycode);
            }
        }
    }
    var atarget = document.getElementById(this.targetid);
    var aleft = gELeft(atarget);
    var aright = gERight(atarget);
    var cleft = aleft - 180; 
    var ctop = gEBottom(atarget)-3;
    this.htmlpart.style.top = ctop + "px";
    this.htmlpart.style.left = cleft + "px";
    this.htmlpart.style.display = "block";
}
MoreCityPicker.prototype.hide = function () {
    document.getElementById("moreothercity_name").value="全拼/简拼/中文";
    document.getElementById("moreotherhomecity").value="";
    this.htmlpart.style.display = "none";
}
MoreCityPicker.prototype.submit = function (citycode) {
    this.hide();
    var atarget = document.getElementById(this.targetid);
    if(citycode != null && citycode != "") {
        this.ahandler(citycode, this.referceId);
    }
}
MoreCityPicker.hide = function () {
    var morecitypicker = document.getElementById("morecitypicker");
    if(morecitypicker) {
       document.getElementById("moreothercity_name").value="全拼/简拼/中文";
       document.getElementById("moreotherhomecity").value="";
       morecitypicker.style.display = "none"; 
    }
}


function HotelCityPicker(targetid,referceId,handler) {
    this.targetid = targetid;
    this.ahandler = handler;
    this.referceId = referceId;
    this.init();
}

HotelCityPicker.hotelArr = [
    ["北京", "beijing"], ["上海", "shanghai"],  ["广州", "guangzhou"], ["深圳", "shenzhen"], ["成都", "chengdu"],  ["重庆", "chongqing"], ["西安", "xian"],
    ["杭州", "hangzhou"], ["沈阳", "shenyang"],  ["大连", "dalian"], ["青岛", "qingdao"], ["武汉", "wuhan"],  ["长沙", "changsha"], ["南京", "nanjing"],
    ["厦门", "xiamen"], ["天津", "tianjin"],  ["哈尔滨", "haerbin"],["乌鲁木齐", "wulumuqi"], ["昆明", "kunming"], ["长春", "changchun"],["宁波", "ningbo"],
    ["郑州", "zhengzhou"], ["济南", "jinan"],  ["海口", "haikou"], ["合肥", "hefei"], ["兰州", "lanzhou"],  ["福州", "fuzhou"],  ["贵阳", "guiyang"]];

HotelCityPicker.prototype.init = function () {
    if(!document.getElementById("hotelcitypicker")) {
        var _this = this;
        var div = document.createElement('div');
        div.style.display = "none";
        div.className = "index_ghcs1";
        div.setAttribute("id", "hotelcitypicker");
        var strHTML = new StringBuffer(); 
        strHTML.append('<div class="index_Layer2" onclick="event.cancelBubble=true;"><div class="yy"><div class="xzcs"><p><table width="100%" border="0" align="center" cellpadding="0" cellspacing="0"><tr><td align="right" height="30" colspan="7" bgcolor="#f1f1f1" class="index_Layer_title"><img class="index_close" id="hotelcpclosebutton" src="http://source.quna.com/images/close.gif" style="cursor:pointer;" /><div style="padding-left:5px; color:#666; font-weight:600;">热门城市选择</div></td>');
        for(var i = 0; i < HotelCityPicker.hotelArr.length; i++) {
            if(i % 7 == 0) {
                strHTML.append('</tr><tr>');
            }
            strHTML.append('<td class="index_Layer_city"><span style="color:#555555;cursor:pointer;" citycode="' + HotelCityPicker.hotelArr[i][1] + '">' + HotelCityPicker.hotelArr[i][0] + '</span></td>');
        }
        strHTML.append('</tr><tr><td align="left" height="20" colspan="7" style="padding-top:10px; padding-left:60px; background:url(http://source.quna.com/images/qitcs.gif) no-repeat 5px 15px;"><input class="input_2" type="image" src="http://source.quna.com/images/tijiao.gif" id="hotelcitypicker_imgbutton" /><input id=hotelothercity_name class="chengshi1" name=hotelothercity_name mod="address|notice" mod_address_source="hotelDomestic" mod_address_suggest="@beijing|北京|bj|beijing@shanghai|上海|sh|shanghai@shenzhen|深圳|sz|shenzhen@guangzhou|广州|gz|guangzhou@dalian|大连|dl|dalian@chengdu|成都|cd|chengdu@tianjin|天津|tj|tianjin@haerbin|哈尔滨|heb|haerbin@xian|西安|xa|xian@chongqing|重庆|cq|chongqing@hangzhou|杭州|hz|hangzhou@qingdao|青岛|qd|qingdao@" mod_notice_tip="全拼/简拼/中文" mod_address_reference="hotelothercityid" /><input id="hotelothercityid" type="hidden" name="hotelothercityid" /></td></tr></table></p></div></div></div></div>');
        div.innerHTML = strHTML.toString();
        document.body.appendChild(div);
        var hotel_cpclosebutton = document.getElementById('hotelcpclosebutton');
        hotel_cpclosebutton.onclick = function() {
            _this.hide();
        }
    }
    this.htmlpart = document.getElementById("hotelcitypicker");
}
HotelCityPicker.prototype.show = function (onresize) {
    this.hide();
    AirportPicker.hide();
    MoreCityPicker.hide();
    if(onresize != true) {
        var _this = this;
        var actionArr = document.getElementById("hotelcitypicker").getElementsByTagName("span");
        for(var i = 0; i < actionArr.length; i++) {
            actionArr[i].onclick = function() {
                _this.submit(this.innerHTML, this.getAttribute("citycode"));
            }
        }
        document.getElementById("hotelcitypicker_imgbutton").onclick = function () {
            var cityname = document.getElementById("hotelothercity_name").value;
            var citycode = document.getElementById("hotelothercityid").value;
            _this.submit(cityname, citycode);
        }
        this.htmlpart.onkeydown = function(event) {
            event = event || window.event;
            keynum = event.which || event.keyCode;
            if(keynum == 13) {
                var cityname = document.getElementById("hotelothercity_name").value;
            	var citycode = document.getElementById("hotelothercityid").value;
                _this.submit(cityname, citycode);
            }
        }
    }
    var atarget = document.getElementById(this.targetid);
    var aleft = gELeft(atarget);
    var aright = gERight(atarget);
    var cleft = aleft+3;//(aright - aleft) / 2 + aleft - 49; 
    var ctop = gEBottom(atarget);
    this.htmlpart.style.top = ctop + "px";
    this.htmlpart.style.left = cleft + "px";
    this.htmlpart.style.display = "block";
}
HotelCityPicker.prototype.hide = function () {
    document.getElementById("hotelothercity_name").value="全拼/简拼/中文";
    document.getElementById("hotelothercityid").value="";
    this.htmlpart.style.display = "none";
}
HotelCityPicker.prototype.submit = function (cityname, citycode) {
    this.hide();
    var atarget = document.getElementById(this.targetid);
    if(citycode != null && citycode != "") {
        if(atarget.tagName == "INPUT") {
            atarget.value = cityname;
        } else {
            atarget.innerHTML = cityname;
        }
        this.ahandler(cityname, citycode, this.referceId);
    }
}
HotelCityPicker.hide = function () {
    var hotelcitypicker = document.getElementById("hotelcitypicker");
    if(hotelcitypicker) {
       document.getElementById("hotelothercity_name").value="全拼/简拼/中文";
       document.getElementById("hotelothercityid").value="";
       hotelcitypicker.style.display = "none"; 
    }
}

function gETop(x) {
    var t = 0;
    while(x) {
        t += x.offsetTop;
        x = x.offsetParent;
    }
    return t;
}
function gEBottom(x) {
    return (x.offsetHeight+gETop(x));
}
function gELeft(x) {
    var l = 0;
    while(x) {
        l += x.offsetLeft;
        x = x.offsetParent;
    }
    return l;
}
function gERight(x) {
    return (x.offsetWidth + gELeft(x));
}
var	fromcity = new AirportPicker("srcCityName","srcCity", citypickerhandler);
var tocity  = new AirportPicker("dstCityName","dstCity", citypickerhandler);
var	flashfromcity = new AirportPicker("flashSrcName","flashSrcCity", citypickerhandler);
var	flashtocity = new AirportPicker("flashDstName","flashDstCity", citypickerhandler);
var hotelcity  = new HotelCityPicker("hotelInCityName","hotelCity", citypickerhandler);
var morecity = new MoreCityPicker("moreCityLink",morecitypickerhandler);
document.onclick=function(){
	AirportPicker.hide();
	HotelCityPicker.hide();
	MoreCityPicker.hide();
}