(function(){if(typeof EY_W.cityFrame=="undefined"){EY_W.cityFrame={}}EY_W.cityFrame.ie6=(!+"\v1")&&/MSIE 6.0/.test(navigator.userAgent);var Class={create:function(){return function(){this.initialize.apply(this,arguments)}},extend:function(destination,source){for(var key in source){destination[key]=source[key]}return destination},getDom:function(str){return typeof str=="string"?document.getElementById(str):str},bind:function(fun,thisp){return function(event){fun.call(thisp,event||window.event)}},trim:function(str){return str.replace(/^\s+/,"").replace(/\s+$/,"")},getPosition:function(e){var left=0,top=0;try{while(e.offsetParent){left+=e.offsetLeft;top+=e.offsetTop;e=e.offsetParent}}catch(m){}left+=e.offsetLeft;top+=e.offsetTop;return{x:left,y:top}}};EY_W.cityFrame.cityClass=Class.create();EY_W.cityFrame.cityClass.prototype={initialize:function(config){this.obj=null;this.val="";this.sort="\u62fc\u97f3";this.pageCount=12;this.disappear=true;this.comCitys=null;this.citys=null;this.vacation=null;this.outobj=null;this.defaultVal="\u4e2d\u6587/\u62fc\u97f3";this.defaultFunction=function(){};Class.extend(this,config);this.defaultFunction()},begin:function(inobj,outobj){if(!this.citys){return}function handle(e){this.obj=iobj;this.outobj=tobj;this.obj.className="IptIn";(this.obj.value==this.defaultVal)&&(this.obj.value="");this.appearFrame(e)}var iobj=Class.getDom(inobj);if(!iobj){return}var tobj=Class.getDom(outobj)||null;iobj.onclick=iobj.onkeyup=Class.bind(handle,this);iobj.onblur=Class.bind(this.showSearch,this)},appearFrame:function(e){EY_W.cityFrame.frameObject.setWorkArea(this);if(!EY_W.cityFrame.$frame){EY_W.cityFrame.frameObject.createFrame()}this.val=Class.trim(this.obj.value);if(this.vacation){if(!this.val){EY_W.cityFrame.$frame.style.display="none";this.createVacaFrame();this.setPosition(1);EY_W.cityFrame.$vacaframe.style.display="block";return}else{EY_W.cityFrame.$vacaframe&&(EY_W.cityFrame.$vacaframe.style.display="none")}}var code=e.keyCode||e.which;switch(code){case 37:return;break;case 38:this.codeupWork();return;break;case 39:return;break;case 40:this.codedownWork();return;break;case 13:var item=0,selectItem;while((++item)<=this.pageCount){obj=Class.getDom("frame_item_tr"+item);if(/selected/.test(obj.className)){selectItem=item;break}}if(!item){return;break}var obj=Class.getDom("frame_item_tr"+selectItem);tdObj=obj.getElementsByTagName("td");this.obj.value=tdObj[1].innerHTML;var code=tdObj[2].innerHTML;if(this.outobj){this.outobj.value=code}if(this.callback){this.callback(code)}this.hideFrame();return;break}this.prePage=[];this.lastPage=0;this.currPage=0;this.firstComPage=false;if(this.vacation){var str=this.createVacaHtml()}else{var str=this.createText()}str=str.substring(0,str.length-1);this.createTable(str.split(";"));var istr=EY_W.cityFrame.$frame;istr.style.width="210px";istr.style.display="block";EY_W.cityFrame.iframe&&(EY_W.cityFrame.iframe.style.height=istr.offsetHeight-1+"px");this.setPosition()},setIframe:function(){if(EY_W.cityFrame.ie6){return'<iframe class="iframeFloor" id="iframeID"></iframe>'}else{return""}},codeWork:function(){var item=0,obj,selectItem=0,itemLen=0;while((++item)<=this.pageCount){obj=Class.getDom("frame_item_tr"+item);if(/selected/.test(obj.className)){selectItem=item}if(!/mout/.test(obj.className)){break}itemLen++}return[selectItem,itemLen]},codeupWork:function(){var arr=this.codeWork(),selectItem=arr[0],itemLen=arr[1];Class.getDom("frame_item_tr"+selectItem).className="mout";if(selectItem==1){Class.getDom("frame_item_tr"+itemLen).className="mout selected"}else{Class.getDom("frame_item_tr"+(selectItem-1)).className="mout selected"}},codedownWork:function(){var arr=this.codeWork(),selectItem=arr[0],itemLen=arr[1];Class.getDom("frame_item_tr"+selectItem).className="mout";if(selectItem==itemLen){Class.getDom("frame_item_tr"+1).className="mout selected"}else{Class.getDom("frame_item_tr"+(selectItem+1)).className="mout selected"}},createText:function(direct){var val=this.val,str="",hotspot,count=0,symbol=false,leng;if(!val&&(!direct||(direct==1&&this.prePage.length==1))){leng=this.comCitys.length;for(var i=0,len=leng<this.pageCount?leng:this.pageCount;i<len;i++){var n=this.comCitys[i];str+=n[2]+","+n[1]+","+n[0]+";"}this.firstComPage=true;this.lastPage=0;this.prePage.length=0;return str}else{if(val){val=val.toUpperCase();len=val.length}else{hotspot=true}var jl=this.currPage;for(var j=direct==1?this.prePage[this.prePage.length-1]:this.lastPage,lent=this.citys.length;j<lent;j++){var n=this.citys[j];if(hotspot||(symbol=this.getLeftValue(n[0],len)==val)||n[1].toUpperCase().indexOf(val)!=-1||this.getLeftValue(n[2],len)==val||this.getLeftValue(n[3],len)==val){count++;if(count==1){this.currPage=j}if(count==this.pageCount+1){this.lastPage=j;break}str+=(symbol?n[0]:n[2])+","+n[1]+","+n[0]+";"}}if(count!=this.pageCount+1){this.lastPage=0}if(direct==-1){this.prePage.push(jl)}if(direct==1){this.prePage.length=this.prePage.length-1}return str}},createTable:function(arr){var val=this.val;var tabhtml="";var mark=1;var flag=false;var num=0;var titleTd=Class.getDom("frame_title_td");if(!val){titleTd.innerHTML="\u8f93\u5165"+this.defaultVal+"\u6216\u2191\u2193\u9009\u62e9";this.addTable(arr)}else{if(!arr||arr.length<1||!arr[0]){titleTd.innerHTML="\u5bf9\u4e0d\u8d77\uff0c\u627e\u4e0d\u5230\uff1a"+val;Class.getDom("frame_pre").style.visibility="hidden";Class.getDom("frame_nex").style.visibility="hidden"}else{titleTd.innerHTML=val+"\uff0c\u6309"+this.sort+"\u6392\u5e8f";this.addTable(arr)}}},addTable:function(arr){var la="hidden",pr="hidden",item,dom,domTd;for(var i=0,len=arr.length;i<len;i++){item=arr[i].split(",");dom=Class.getDom("frame_item_tr"+(i+1));if(!i){dom.className="mout selected"}else{dom.className="mout"}domTd=dom.getElementsByTagName("TD");domTd[0].innerHTML=item[0];domTd[1].innerHTML=item[1];domTd[2].innerHTML=item[2]}if(len<this.pageCount){for(var j=len;j<this.pageCount;j++){Class.getDom("frame_item_tr"+(j+1)).className="hide"}}if(!this.val){if(this.firstComPage){la="visible";pr="hidden";this.firstComPage=false}else{if(this.lastPage!=0){la="visible"}else{la="hidden"}pr="visible";if(this.prePage.length==0){la="hidden"}}}else{if(this.prePage.length!=0){pr="visible"}else{pr="hidden"}if(this.lastPage!=0){la="visible"}else{la="hidden"}}Class.getDom("frame_pre").style.visibility=pr;Class.getDom("frame_nex").style.visibility=la},getLeftValue:function(city,len){if(len>city.length||len<0){len=city.length}return city.substring(0,len).toUpperCase()},hideFrame:function(e){if(EY_W.cityFrame.$frame){EY_W.cityFrame.frameObject.setWorkArea(null);EY_W.cityFrame.$frame.style.display="none"}if(EY_W.cityFrame.$vacaframe){EY_W.cityFrame.$vacaframe.style.display="none"}},showSearch:function(){this.obj.className="Ipno";if(this.disappear){if(EY_W.cityFrame.$frame.style.display!="none"){var obj=this.codeWork();if(obj[1]){var obj=Class.getDom("frame_item_tr1");tdObj=obj.getElementsByTagName("td");this.obj.value=tdObj[1].innerHTML;var code=tdObj[2].innerHTML;if(this.outobj){this.outobj.value=code}if(this.callback){this.callback(code)}this.hideFrame()}else{this.obj.value=this.defaultVal;this.obj.className="Ipt"}}this.hideFrame()}this.disappear=true},setPosition:function(mark){var _this=this,obj;obj=mark?EY_W.cityFrame.$vacaframe:EY_W.cityFrame.$frame;with(obj.style){left=Class.getPosition(_this.obj).x+"px";top=Class.getPosition(_this.obj).y+_this.obj.offsetHeight+"px"}},createVacaFrame:function(){if(!EY_W.cityFrame.$vacaframe){this.createVaca()}var _this=this,obj=Class.getDom("vacaframeid");obj.onclick=function(even){even=even||window.event;var tar=even.target||even.srcElement;if(tar.tagName=="A"){_this.obj.value=tar.innerHTML;_this.outobj&&(_this.outobj.value=tar.getAttrabute("param"));_this.obj.className="IptIn";obj.style.display="none";_this.appearFrame(even);_this.obj.focus()}};obj.onmousedown=function(even){even=even||window.event;var tar=even.target||even.srcElement;if(tar.tagName=="A"){_this.disappear=false}}},createVaca:function(){var str="";str+='<div class="destinner"><div class="tips">\u8f93\u5165\u4e2d\u6587/\u62fc\u97f3\u6216\u5728\u4e0b\u5217\u5173\u952e\u5b57\u4e2d\u9009\u62e9</div><dl class="inland"><dt>\u56fd\u5185\u5ea6\u5047</dt>';$.each(this.comCitys.home,function(i,n){str+='<dd><a title="'+n[1]+'" param="'+n[0]+'" href="javascript:void(0);">'+n[1]+"</a></dd>"});str+="</dl>";str+='<dl class="brand"><dt>\u6d77\u5916\u5ea6\u5047</dt>';$.each(this.comCitys.oversea,function(i,n){str+='<dd><a title="'+n[1]+'" param="'+n[0]+'" href="javascript:void(0);">'+n[1]+"</a></dd>"});str+="</dl></div>";var ifa=document.createElement("div");ifa.id="vacaframeid";ifa.style.width="360px";document.body.appendChild(ifa);ifa.innerHTML=str;EY_W.cityFrame.$vacaframe=ifa},createVacaHtml:function(direct){var val=this.val,start=null;var str="",len,hotspot=false,mark=[],_this=this;$.each(this.comCitys,function(i,m){$.each(m,function(i,n){if(n[1].toUpperCase().indexOf(val)!=-1||_this.getLeftValue(n[2],len)==val||_this.getLeftValue(n[3],len)==val){if(n[4]){mark.push(n[4])}}})});val=val.toUpperCase();len=val.length;var count=0;var jl=this.currPage;for(var j=direct==1?this.prePage[this.prePage.length-1]:this.lastPage,lent=this.citys.length;j<lent;j++){var n=this.citys[j];if(n[1].toUpperCase().indexOf(val)!=-1||this.getLeftValue(n[2],len)==val||this.getLeftValue(n[3],len)==val||setArray(mark,n[4])){count++;if(count==1){this.currPage=j}if(count==this.pageCount+1){this.lastPage=j;break}str+=n[2]+","+n[1]+","+n[0]+";"}}if(count!=this.pageCount+1){this.lastPage=0}if(direct==-1){this.prePage.push(jl)}if(direct==1){this.prePage.length=this.prePage.length-1}return str;function setArray(arr,str){if(arr.length==0||!str){return false}var result=false;$.each(arr,function(i,n){if(n==str){result=true;return false}});return result}}};EY_W.cityFrame.frameObject={setWorkArea:function(_this){this.work=_this},createFrame:function(){var obj=document.createElement("div"),str="",num=1,preDom,nexDom;obj.id="frameid";while(num<=this.work.pageCount){str+='<tr id="frame_item_tr'+num+'"><td class="tdleft"></td><td class="tdright"></td><td class="hide"></td></tr>';num++}obj.innerHTML=this.work.setIframe()+'<table border="0" cellspacing="0" cellpadding="0" width="100%"><tr height="13"><td colspan="2" class="hint" height="10" id="frame_title_td"></td><td class="hide"></td></tr><tr height="2"><td colspan="2"></td><td class="hide"></td></tr>'+str+'<tr><td height="10" class="tdMid" colspan="2"><a href="javascript:void(0)" id="frame_pre" class="frame_link">\u4e0a\u4e00\u9875</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="javascript:void(0)" id="frame_nex" class="frame_link">\u4e0b\u4e00\u9875</a></td><td class="hide"></td></tr></table>';document.body.appendChild(obj);EY_W.cityFrame.$frame=obj;preDom=Class.getDom("frame_pre");nexDom=Class.getDom("frame_nex");EY_W.cityFrame.iframe=Class.getDom("iframeId");this.addEvent(obj,preDom,nexDom)},addEvent:function(obj,preDom,nexDom){var _this=this,item;preDom.onclick=function(e){if(_this.work.vacation){var str=_this.work.createVacaHtml(1)}else{var str=_this.work.createText(1)}str=str.substring(0,str.length-1);_this.work.createTable(str.split(";"));var istr=EY_W.cityFrame.$frame;istr.style.width="210px";istr.style.display="block";_this.work.setPosition();EY_W.cityFrame.iframe&&(EY_W.cityFrame.iframe.style.height=istr.offsetHeight-1+"px");_this.work.obj.focus()};nexDom.onclick=function(e){if(_this.work.vacation){var str=_this.work.createVacaHtml(-1)}else{var str=_this.work.createText(-1)}str=str.substring(0,str.length-1);_this.work.createTable(str.split(";"));var istr=EY_W.cityFrame.$frame;istr.style.width="210px";istr.style.display="block";_this.work.setPosition();EY_W.cityFrame.iframe&&(EY_W.cityFrame.iframe.style.height=istr.offsetHeight-1+"px");_this.work.obj.focus()};preDom.onmousedown=function(){_this.work.disappear=false};nexDom.onmousedown=function(){_this.work.disappear=false};for(var i=1;i<=_this.work.pageCount;i++){item=Class.getDom("frame_item_tr"+i);item.onmouseover=function(e){var o=this.getElementsByTagName("td");o[0].className="tdleft mover";o[1].className="tdright mover"};item.onmouseout=function(e){var o=this.getElementsByTagName("td");o[0].className="tdleft";o[1].className="tdright"};item.onclick=function(e){var o=this.getElementsByTagName("td");_this.work.obj.value=o[1].innerHTML;var code=o[2].innerHTML;if(_this.work.outobj){_this.work.outobj.value=code}if(_this.work.callback){_this.work.callback(code)}_this.work.obj.focus();_this.work.obj.className="IptIn";_this.work.hideFrame()};item.onmousedown=function(){_this.work.disappear=false}}}};EY_W.cityFrame.startCity=function(inobj,outobj,com){this.obj=typeof(inobj)=="string"?document.getElementById(inobj):inobj;this.outobj=typeof(outobj)=="string"?document.getElementById(outobj):outobj;this.disappear=true;this.$outobj=this.outobj||null;var _this=this;this.obj.onfocus=function(){_this.handle()};this.obj.onblur=function(e){_this.showSearch(this)};this.handle=function(){this.obj.className="IptIn";if(this.obj.value=="\u4e2d\u6587/\u62fc\u97f3"){this.obj.value=""}if(!EY_W.cityFrame.$startFrame){this.createFrame()}var _this=this;var str="",n;str+='<div class="departures">';for(var i=0,len=com.length;i<len;i++){n=com[i];str+='<a title="'+n[1]+'" param="'+n[0]+'" href="javascript:void(0);">'+n[1]+"</a>"}str+="</div>";var obj=EY_W.cityFrame.$startFrame;obj.innerHTML=str;this.setPosition();obj.style.width="90px";obj.style.display="block";obj.onclick=function(evn){evn=evn||window.event;var tag=evn.target||evn.srcElement;if(tag.tagName=="A"){_this.obj.value=tag.innerHTML;if(_this.$outobj){_this.$outobj.value=tag.getAttrbute("param")}EY_W.cityFrame.$startFrame.style.display="none"}};obj.onmousedown=function(evn){evn=evn||window.event;var tag=evn.target||evn.srcElement;if(tag.tagName=="A"){_this.disappear=false}}};this.showSearch=function(obj){obj.className="Ipno";if(this.disappear){if(this.obj.value==""){obj.className="Ipt";obj.value="\u4e2d\u6587/\u62fc\u97f3"}EY_W.cityFrame.$startFrame.style.display="none"}this.disappear=true};this.createFrame=function(){var obj;EY_W.cityFrame.$startFrame=obj=document.createElement("div");obj.id="startFrameid";document.body.appendChild(obj)};this.setPosition=function(){var _this=this,obj;obj=EY_W.cityFrame.$startFrame;with(obj.style){left=Class.getPosition(_this.obj).x+"px";top=Class.getPosition(_this.obj).y+_this.obj.offsetHeight+"px"}}}})();
