
/*
 * @parentDiv       id of parentDiv       "#" with id or "." with class
 * @currentName     id of currentName
 * @contentTag      (optional)tag of content "<ul class="tabcontent">content</ul>"(default)
 * @tabsTag         (optional)tag of tabs   "<p><span id="id"+tab><span></p>"(default)
 * @activeStyle     (optional)style of active
 */
function setTab(parentDiv,currentName,tabsTag,contentTag,activeStyle)
{
	if(tabsTag==null||tabsTag==""){tabsTag = "p span";}
	if(contentTag==null||contentTag==""){contentTag = "ul.tabcontent";}
	if(activeStyle==null||activeStyle==""){activeStyle = "active";}
	$$("div"+parentDiv+" "+tabsTag).each(function(ei){ ei.className = (ei.id==currentName+"tab")?activeStyle:"";});
	$$("div"+parentDiv+" "+contentTag).each(function(ei){ei.style.display = ei.id!=currentName?"none":"";});	
}


function setTab2(parentDiv,currentName,tabsTag,contentTag,activeStyle)
{
	if(tabsTag==null||tabsTag==""){tabsTag = "p span";}
	if(contentTag==null||contentTag==""){contentTag = "div.tabcontent";}
	if(activeStyle==null||activeStyle==""){activeStyle = "active";}
	$$("div"+parentDiv+" "+tabsTag).each(function(ei){ ei.className = (ei.id==currentName+"tab")?activeStyle:"";});
	$$("div"+parentDiv+" "+contentTag).each(function(ei){ei.style.display = ei.id!=currentName?"none":"";});	
}

/*
 * set target style display
 * @target          id of target
 *
 */
function setDisplay(target)
{
	target = $(target);
	if(target==null) return;
	target.show();
}


/*
 * set target style hidden
 * @target          id of target
 *
 */
function setHidden(target)
{
	target = $(target);
	if(target==null) return;
	target.hide();
}

/*
 * set target style display or hidden
 * @target          id of target
 *
 */
function setArrayBG(target,bg1,bg2)
{
	if(bg2==null){bg2="";}
	$$(target).each(function(ei){
							 ei.observe("mouseover",function(){ei.style.backgroundColor=bg1;});
							 ei.observe("mouseout" ,function(){ei.style.backgroundColor=bg2;});
							  });
}


//base prototype160
var MessageBox = Class.create();
MessageBox.prototype = 
{
	initialize:function()
    {
		var msg_mask = new Mask();
		this.mask = msg_mask;
		
		
		var sb = new StringBuffer();  
		sb.append("<table border='0' cellpadding='0' cellspacing='0' width=100%>");
		sb.append("  <tr>");		
		sb.append("    <td class='b1'></td>");		
		sb.append("    <td class='b2'><div class='fontsingle'>$MSG_TITLE$</div>");		
		sb.append("    <div class='b9'>$MSG_CLOSE$</div></td>");		
		sb.append("    <td class='b3'>&nbsp;</td>");		
		sb.append("  </tr>");		
		sb.append("  <tr>");		
		sb.append("    <td class='b4'></td>");		
		sb.append("    <td class='b11'><div class='box_border'><li>$MSG_ICON$");		
		sb.append("    <p><a class='fontbtn'>$MSG_MESSAGE$</a></p></li></div>");		
		sb.append("    <div class='borderboxstyle'>");		
		sb.append("$MSG_BUTTON$");//<span><a href='#'>确定</a></span>
		sb.append("    </td>");		
		sb.append("    <td class='b5'></td>");		
		sb.append("  </tr>");		
		sb.append("  <tr>");		
		sb.append("    <td class='b6'></td>");		
		sb.append("    <td class='b7'></td>");		
		sb.append("    <td class='b8'></td>");		
		sb.append("  </tr>");		
		sb.append("</table>");
				
		var msg_div = document.createElement("div");
		this.msg_width = 400;
		this.msg_height = 200;
		msg_div.style.width = this.msg_width + "px";//document.viewport.getWidth()+"px";
		msg_div.style.height = this.msg_height + "px";//document.viewport.getHeight()+"px";
		msg_div.style.left = (document.viewport.getScrollOffsets()[0]+document.viewport.getWidth()/2-this.msg_width/2)+"px";
		msg_div.style.top = (document.viewport.getScrollOffsets()[1]+document.viewport.getHeight()/2-this.msg_height/2)+"px";
		msg_div.style.position = "absolute";
		msg_div.style.zIndex = 999999;
		msg_div.id = msg_div.uniqueID;
		document.body.appendChild(msg_div);
		this._msg_innerHTML = sb.toString();
		this._msg_div = msg_div.id;
			
	},
	resize:function(_width,_height)
	{
		this.msg_width = _width;
		this.msg_height = _height;
		$(this._msg_div).style.width = _width+"px";
		$(this._msg_div).style.height = _height+"px";
		$(this._msg_div).style.left = (document.viewport.getScrollOffsets()[0]+document.viewport.getWidth()/2-this.msg_width/2)+"px";
		$(this._msg_div).style.top = (document.viewport.getScrollOffsets()[1]+document.viewport.getHeight()/2-this.msg_height/2)+"px";		
	},
    format:function(title,message,button,icon,isclose)
    {	
		if(isclose)
		  this._msg_innerHTML = this._msg_innerHTML.toString().replace("$MSG_CLOSE$","<img src='/ltcn/images/windowclose.gif' width='22' height='19' style='cursor:hand;' onclick=\"$('"+this.mask.getHandle().divId+"').remove();$('"+this._msg_div+"').remove();\">");
		else
		  this._msg_innerHTML = this._msg_innerHTML.toString().replace("$MSG_CLOSE$","");
		if(icon=="")
		  this._msg_innerHTML = this._msg_innerHTML.toString().replace("$MSG_ICON$","");
		else if(icon=="info")
		  this._msg_innerHTML = this._msg_innerHTML.toString().replace("$MSG_ICON$","<img src='/ltcn/images/msgbox_info.gif' width='32' height='32'>");
		this._msg_innerHTML = this._msg_innerHTML.toString().replace("$MSG_TITLE$",title);
		this._msg_innerHTML = this._msg_innerHTML.toString().replace("$MSG_MESSAGE$",message);
		this._msg_innerHTML = this._msg_innerHTML.toString().replace("$MSG_BUTTON$",button);
		$(this._msg_div).innerHTML = this._msg_innerHTML;
	},
	alert:function(message)
	{
		var btnstr = new StringBuffer();
		btnstr.append("<span><a style=\"cursor:pointer;\" onclick=\"$('"+this.mask.getHandle().divId+"').remove();$('"+this._msg_div+"').remove();\">"+this.okbtn()+"</a></span>");
		this.format("信息提示",message,btnstr.toString(),"info",true);
		this.mask.showFull("",{_mask_bgcolor:"#000000",_mask_opacity:0.3});
	},
	confirm:function(message)
	{
		var btnstr = new StringBuffer();
		btnstr.append("<span><a style=\"cursor:pointer;\" onclick=\"$('"+this.mask.getHandle().divId+"').remove();$('"+this._msg_div+"').remove();\">"+this.okbtn()+"</a></span>");
		btnstr.append("&nbsp;&nbsp;");
		btnstr.append("<span><a style=\"cursor:pointer;\" onclick=\"$('"+this.mask.getHandle().divId+"').remove();$('"+this._msg_div+"').remove();return true;\">"+this.cancelbtn()+"</a></span>");
		this.format("确认提示",message,btnstr.toString(),"info",true);
		this.mask.showFull("",{_mask_bgcolor:"#000000",_mask_opacity:0.3});
	},
	okbtn:function()
	{
		return "<img src='/ltcn/images/msg_ok2.gif'>";
	},
	cancelbtn:function()
	{
		return "<img src='/ltcn/images/msg_cancel2.gif'>";
	},
	wait:function(message)
	{
		this.format("请耐心等待",message,"","",true);
		this.mask.showFull("",{_mask_bgcolor:"#000000",_mask_opacity:0.3});
	},
	box:function(message)
	{ 
		this.format(arguments[1] || "",message,arguments[2]||"","",true);
		this.mask.showFull("",{_mask_bgcolor:"#000000",_mask_opacity:0.3});
	},
	destory:function()
	{
		$(this._msg_div).remove();
		this.mask.remove();
	}
};
MessageBox.confirm = function(message){var mb = new MessageBox();mb.confirm(message);};
MessageBox.alert = function(message){var mb = new MessageBox();mb.alert(message);};
MessageBox.box = function(message){var mb = new MessageBox();mb.box(message);};

var Mask = Class.create();
Mask.prototype = 
{
	initialize:function()
  {  	
  	var mask_div = document.createElement("div");
  	mask_div.style.left = document.viewport.getScrollOffsets()[0]+"px";
  	mask_div.style.top = document.viewport.getScrollOffsets()[1]+"px";
  	mask_div.style.width = document.viewport.getWidth()+"px";
  	mask_div.style.height = document.viewport.getHeight()+"px";
  	mask_div.style.position = "absolute";
  	mask_div.style.zIndex = 999990;
  	mask_div.id = mask_div.uniqueID;
  	document.body.appendChild(mask_div);  	
  	mask_div.focus();
  	mask_div.style.display = "none";
  	var mask_iframe=document.createElement("iframe");
  	mask_iframe.frameborder = 0;
  	mask_iframe.marginheight = 0;
  	mask_iframe.marginwidth = 0;
  	mask_iframe.hspace = 0;
  	mask_iframe.vspace = 0;
  	mask_iframe.scrolling = "no";
	mask_iframe.style.width=mask_div.style.width;//mask_div.offsetWidth;
	mask_iframe.style.height=mask_div.style.height;//mask_div.offsetHeight;
	var mask_name = mask_iframe.uniqueID;
	mask_iframe.name = mask_name;
	mask_iframe.id = mask_name;
	mask_iframe.style.display = "none";
	
	mask_div.appendChild(mask_iframe);
	
	  this._mask_iframe = mask_iframe.name;
  	this._mask_div = mask_div.id;
  },
  
  /*
   * args[0]   content
   * args[1]   background-color    default: #000000
   * args[2]   opacity             default: 0.3
   */  
	show:function(_mask_content)
	{
		var _mask_style = Object.extend({_mask_bgcolor:"#eeeeee",_mask_opacity:0.3},arguments[1]||{})
		Element.setOpacity(this._mask_div,_mask_style._mask_opacity);
		$(this._mask_div).style.backgroundColor = _mask_style._mask_bgcolor;
		window.frames[this._mask_iframe].document.write("<body leftmargin=0 topmargin=0 bgcolor="+_mask_style._mask_bgcolor+">"+_mask_content+"</body>");
		window.frames[this._mask_iframe].document.close();
		$(this._mask_div).style.display = "";
		$(this._mask_iframe).style.display = "";
	},
	showFull:function(_mask_content)
	{
		$(this._mask_div).style.height = parseInt($(this._mask_div).style.height.replace("px",""))>document.body.clientHeight?$(this._mask_div).style.height:(document.body.clientHeight+"px");
		$(this._mask_div).style.width = parseInt($(this._mask_div).style.width.replace("px",""))>document.body.clientWidth?$(this._mask_div).style.height:(document.body.clientWidth+"px");
		$(this._mask_iframe).style.height = $(this._mask_div).style.height;
		$(this._mask_iframe).style.width = $(this._mask_div).style.width;
		$(this._mask_div).style.top = "0px";
		$(this._mask_div).style.left = "0px";
		var _mask_style = Object.extend({_mask_bgcolor:"#aaaaaa",_mask_opacity:0.3},arguments[1]||{})
		Element.setOpacity(this._mask_div,_mask_style._mask_opacity);
		$(this._mask_div).style.backgroundColor = _mask_style._mask_bgcolor;
		window.frames[this._mask_iframe].document.write("<body leftmargin=0 topmargin=0 bgcolor="+_mask_style._mask_bgcolor+">"+_mask_content+"</body>");
		window.frames[this._mask_iframe].document.close();
		$(this._mask_div).style.display = "";
		$(this._mask_iframe).style.display = "";		
	},
	getHandle:function()
	{
		return {"iframeId":this._mask_iframe,"divId":this._mask_div};
	},
	remove:function()
	{
		$(this._mask_iframe).remove();
		if($(this._mask_div))
		{
			$(this._mask_div).remove();
		}
	}
};

/*
Sample for PersonRaid()

 function test()
  {
    var pr = new PersonRaid("pcheckon","pcheckoff","person_raid","input1");
  }
  function pcheckon(response)
  {
  	//Mobile:"13945678925",TravellerType:"1",Favour:"111",Name:"文文",Requirement:"11111",IsValid:"1",EnglishName:"",DepartId:"-2147483648",Nationality:"中国",Birthday:"1967-09-08",Phone:"56895236",Mail:"313213@uiueiu.com",EnterCode:"1002",ProjectId:"-2147483648",EmployeeID:"",Depart:"1",Id:"7",Sex:"男",Statue:"1",Creator:"-2147483648",LoginId:"",Position:""} 
  	var json =  eval('(' + response.responseText + ')');
  	//alert(json.Mobile);
  }
  function pcheckoff(pid)
  {
  	//alert('ok');
  	//alert(pid);
  }
*/
var PersonRaid = Class.create();
PersonRaid.PersonDetail = function(funname,pid)
{	
	AjaxSend("../LtController.cmd","action=peopledetail&PersonCode="+pid,funname);	
}
PersonRaid.PersonCancel = function(funname,pid)
{
	eval(funname+"('"+pid+"')");
}
PersonRaid.PersonOn = function(pid)
{
	if(pid.indexOf(",")>=0)
	{
		var pid_raid = pid.split(",");
		for(var i=0;i<pid_raid.length;i++)
		  if($("_pr_"+pid_raid[i])!=null)
		     $("_pr_"+pid_raid[i]).addClassName("checkon");
	}
	else
	{
		if($("_pr_"+pid)!=null)
		$("_pr_"+pid).addClassName("checkon");
	}
	
}
PersonRaid.PersonOff = function(pid)
{
	if($("_pr_"+pid)!=null&&$("_pr_"+pid).length==null)
	$("_pr_"+pid).removeClassName("checkon");
}
PersonRaid.prototype = {
	t:null,
	PersonIndex:null,
	PersonDiv:null,
	KeyInput:null,
	StyleSheet:"checkon",
	CheckOnFunctionName:"",
	CheckOffFunctionName:"",
	initialize:function(checkonfun,checkofffun,raidarea)
	{
		this.setCheckOnFunctionName(checkonfun);
		this.setCheckOffFunctionName(checkofffun);
    	this.bindRaidArea(raidarea);
    	if(arguments[3]!=null)
      		this.bindKeyInput(arguments[3]);      
   		this.setPersonIndex();
	},
	setCheckOnFunctionName:function(funname)
	{
		this.CheckOnFunctionName = funname;
	},
	setCheckOffFunctionName:function(funname)
	{
		this.CheckOffFunctionName = funname;
	},
	setStyleSheetClass:function(clsname)
	{
		this.StyleSheet = clsname;
	},
	setPersonIndex:function()
	{
		var clonethis = this;
		if("getPersonRaid" in window)
		{
			clonethis.PersonIndex = window.getPersonRaid();
			clonethis.bindData();
		}
		else
		{
			var dataReader = setInterval(function(){
																	  if("getPersonRaid" in window)
																	  {
															  			clonethis.PersonIndex = window.getPersonRaid();
																			clonethis.bindData();
																			clearInterval(dataReader);
																		}
																	},3000);
		}
	},
	bindRaidArea:function(oname)
	{
		this.PersonDiv = oname;
	},
	bindData:function()
	{
		var pd = $(this.PersonDiv);
		var sb = new StringBuffer();
		var pi = this.PersonIndex;
		if(pi==null) return;
		if(pi==null||pi=="")
		{
		  	sb.append("<input type=\"hidden\" name=\"ext\" value=\"0\">");
		}
		else
		{
			  sb.append("<input type=\"hidden\" name=\"ext\" value=\"1\">");
		} 	
		 
		for(var i=0;i<pi.length;i++)
		{
			pa = pi[i].split(",");
			
			sb.append("<div id=\"_pr_"+pa[0]+"\" onclick=\"if(!$('_pr_"+pa[0]+"').hasClassName('"+this.StyleSheet+"')){PersonRaid.PersonDetail('"+this.CheckOnFunctionName+"','"+pa[0]+"');}else{PersonRaid.PersonCancel('"+this.CheckOffFunctionName+"','"+pa[0]+"');}$('_pr_"+pa[0]+"').toggleClassName('"+this.StyleSheet+"');\">");
			sb.append("<span>");
			sb.append(pa[2]);
			sb.append("</span>");
			sb.append("</div>");
		}
		pd.innerHTML = sb.toString();
		sb.clear();
	},
	bindKeyInput:function(oname)
	{
		var clonethis = this;
		clonethis.KeyInput = oname;  		
		Event.observe($(oname),"focus",function(){  clonethis.t = setInterval(function(){
			 																														clonethis.catchKey();
																																},50);});
		Event.observe($(oname),"blur",function(){clearInterval(this.t);});
	},
	catchKey:function()
	{
		var pi = this.PersonIndex;
		//key listener
		var ki = $(this.KeyInput);
		for(var i=0;i<pi.length;i++)
		{
			pa = pi[i].split(",");
	  	if(ki!=null)
	  	{
	  		if(pi[i].toUpperCase().indexOf(ki.value.toUpperCase())>=0||ki.value=="")
	  		{
	  			$("_pr_"+pa[0]).show();
	  		}
	  		else
	  		{
	  			$("_pr_"+pa[0]).hide();
	  		}		  	  
	  	}
	  	else
	  	{
	  		$("_pr_"+pa[0]).show();
	  	} 	
		}
		
	},
	startListener:function()
	{
		this.catchKey();
	}
}



//cityarea
var CityArea = Class.create();
CityArea.isGnCity = function(citycode)
{
	var p = CityArea.FlightCity();
	for(var i=0;i<p.length;i++)
	{
		var pi = p[i].split(",");
		if(pi.length>=2&&pi[2].toUpperCase()==citycode)
		{
			return true;
		}
	}
	return false;
}
CityArea.HotelCity = function()
{
	var p = new Array();
	p.push("Abazhou,阿坝州,ABA");
p.push("Anji,安吉,ANJ");
p.push("Ankang,安康,AKA");
p.push("Anqing,安庆,AQG");
p.push("Anshan,鞍山,AOG");
p.push("Anshun,安顺,ANS");
p.push("Antu,安图,ANT");
p.push("Anyang,安阳,AYN");
p.push("Aomen,澳门,MFM");
p.push("Baishan,白山,BAS");
p.push("Bangbu,蚌埠,BFU");
p.push("Baoding,保定,BAD");
p.push("Baoji,宝鸡,BAJ");
p.push("Baoshan,保山,BSD");
p.push("Baoting,保亭,BUT");
p.push("Baotou,包头,BAV");
p.push("Bayannaoer,巴彦淖尔,BYZ");
p.push("Beidaihe,北戴河,BDH");
p.push("Beihai,北海,BHY");
p.push("Beijing,北京,PEK");
p.push("Benxi,本溪,BEX");
p.push("Binzhou,滨州,BIZ");
p.push("Cangzhou,沧州,CAZ");
p.push("Changchun,长春,CGQ");
p.push("Changde,常德,CGD");
p.push("Changji,昌吉,CHJ");
p.push("Changsha,长沙,CSX");
p.push("Changshu,常熟,CHS");
p.push("Changzhou,常州,CZX");
p.push("Chaozhou,潮州,CZH");
p.push("Chengde,承德,CHD");
p.push("Chengdou,成都,CTU");
p.push("Chenzhou,郴州,CEZ");
p.push("Chifeng,赤峰,CIF");
p.push("Chizhou,池州,CZU");
p.push("Chongqing,重庆,CKG");
p.push("Chuzhou,滁州,CUZ");
p.push("Cixi,慈溪,CIX");
p.push("Dali,大理,DLU");
p.push("Dalian,大连,DLC");
p.push("Dandong,丹东,DDG");
p.push("Danyang,丹阳,DYA");
p.push("Danzhou,儋州,DAZ");
p.push("Daqing,大庆,DAQ");
p.push("Datong,大同,DAT");
p.push("Daye,大冶,DYE");
p.push("Deqing,德清,DEQ");
p.push("Deyang,德阳,DEY");
p.push("Dezhou,德州,DZO");
p.push("Dongguan,东莞,DGM");
p.push("Dongtai,东台,DOT");
p.push("Dongyang,东阳,DYN");
p.push("Dongying,东营,DOY");
p.push("Doujiangyan,都江堰,DOJ");
p.push("Dunhuang,敦煌,DNH");
p.push("Eerduosi,鄂尔多斯,ERD");
p.push("Emeishan,峨眉山,EMS");
p.push("Enshi,恩施,ENH");
p.push("Feicheng,肥城,FCG");
p.push("Fenghua,奉化,FEH");
p.push("Fenghuangxian,凤凰县,FHX");
p.push("Foshan,佛山,FUO");
p.push("Fuding,福鼎,FUD");
p.push("Fuqing,福清,FUQ");
p.push("Fuyang,阜阳,FUG");
p.push("Fuyang,富阳,FUY");
p.push("Fuzhou,福州,FOC");
p.push("Ganzhou,赣州,GZH");
p.push("Gaoyou,高邮,GAY");
p.push("Guangan,广安,GUA");
p.push("Guangyuan,广元,GUY");
p.push("Guangzhou,广州,CAN");
p.push("Guigang,贵港,GUG");
p.push("Guilin,桂林,KWL");
p.push("Guiyang,贵阳,KWE");
p.push("Haerbin,哈尔滨,HRB");
p.push("Haian,海安,HAA");
p.push("Haikou,海口,HAK");
p.push("Hailuogou,海螺沟,HLG");
p.push("Haining,海宁,HAI");
p.push("Haiyan,海盐,HAY");
p.push("Handan,邯郸,HDN");
p.push("Hangzhou,杭州,HGH");
p.push("Hanzhong,汉中,HZG");
p.push("Hebi,鹤壁,HEB");
p.push("Hefei,合肥,HFE");
p.push("Hengdian,横店,HDA");
p.push("Hengshui,衡水,HSU");
p.push("Hengyang,衡阳,HNY");
p.push("Hetian,和田,HTN");
p.push("Heyuan,河源,HEY");
p.push("Heze,菏泽,HZE");
p.push("Huaian,淮安,HUA");
p.push("Huaihua,怀化,HUH");
p.push("Huainan,淮南,HUI");
p.push("Huangshan,黄山,TXN");
p.push("Huangshi,黄石,HUS");
p.push("Huhehaote,呼和浩特,HET");
p.push("Huizhou,惠州,HUZ");
p.push("Huludao,葫芦岛,HLD");
p.push("Huzhou,湖州,HZO");
p.push("Jiamusi,佳木斯,JMU");
p.push("Jiande,建德,JID");
p.push("Jiangdou,江都,JDU");
p.push("Jiangmen,江门,JIM");
p.push("Jiangyin,江阴,JIY");
p.push("Jiangyou,江油,JYO");
p.push("Jiaonan,胶南,JNA");
p.push("Jiaozuo,焦作,JZU");
p.push("Jiashan,嘉善,JAS");
p.push("Jiaxing,嘉兴,JIX");
p.push("Jiayuguan,嘉峪关,JGN");
p.push("Jieyang,揭阳,JYN");
p.push("Jilin,吉林,JIL");
p.push("Jimo,即墨,JMO");
p.push("Jinan,济南,TNA");
p.push("Jincheng,晋城,JIC");
p.push("Jingdezhen,景德镇,JDZ");
p.push("Jinggangshan,井冈山,JGS");
p.push("Jingjiang,靖江,JIJ");
p.push("Jingzhou,荆州,JZG");
p.push("Jinhua,金华,JHA");
p.push("Jining,集宁,JIN");
p.push("Jining,济宁,JNG");
p.push("Jinjiang,晋江,JJN");
p.push("Jintan,金坛,JIT");
p.push("Jinyun,缙云,JYU");
p.push("Jinzhong,晋中,JZO");
p.push("Jinzhou,锦州,JNZ");
p.push("Jishou,吉首,JSH");
p.push("Jiujiang,九江,JIU");
p.push("Jiuquan,酒泉,CHW");
p.push("Jiuzhaigou,九寨沟,JZH");
p.push("Jiyuan,济源,JYA");
p.push("Kaifeng,开封,KAF");
p.push("Kaili,凯里,KAL");
p.push("Kaiping,开平,KAP");
p.push("Kanasi,喀纳斯,KNS");
p.push("Kashen,喀什,KHG");
p.push("Kelamayi,克拉玛依,KLY");
p.push("Kuerle,库尔勒,KRL");
p.push("Kunming,昆明,KMG");
p.push("Kunshan,昆山,KUS");
p.push("Laiwu,莱芜,LAW");
p.push("Laixi,莱西,LXI");
p.push("Laiyang,莱阳,LAY");
p.push("Langfang,廊坊,LAF");
p.push("Lanxi,兰溪,LAX");
p.push("Lanzhou,兰州,LHW");
p.push("Lasa,拉萨,LXA");
p.push("Leqing,乐清,LEQ");
p.push("Leshan,乐山,LSA");
p.push("Liancheng,连城,LIC");
p.push("Lianyungang,连云港,LYG");
p.push("Lianzhou,连州,LHO");
p.push("Liaocheng,聊城,LCN");
p.push("Liaoyang,辽阳,LIY");
p.push("Lijiang,丽江,LJG");
p.push("Linan,临安,LIA");
p.push("Linhai,临海,LHA");
p.push("Linyi,临沂,LYI");
p.push("Lishui,丽水,LIS");
p.push("Liuan,六安,LAN");
p.push("Liuzhou,柳州,LZH");
p.push("Liyang,溧阳,LYN");
p.push("Longyan,龙岩,LOY");
p.push("Luohe,漯河,LUH");
p.push("Luoyang,洛阳,LYA");
p.push("Lushan,庐山,LUZ");
p.push("Luzhou,泸州,LZO");
p.push("Maanshan,马鞍山,MAA");
p.push("Manzhouli,满洲里,MAZ");
p.push("Maoming,茂名,MAM");
p.push("Meizhou,梅州,MZU");
p.push("Mianyang,绵阳,MIG");
p.push("Mudanjiang,牡丹江,MDG");
p.push("Nanchang,南昌,KHN");
p.push("Nanchong,南充,NAO");
p.push("Nandaihe,南戴河,NDH");
p.push("Nanjing,南京,NKG");
p.push("Nanning,南宁,NNG");
p.push("Nantong,南通,NTG");
p.push("Nanyang,南阳,NNY");
p.push("Neijiang,内江,NEJ");
p.push("Ningbo,宁波,NGB");
p.push("Ningde,宁德,NID");
p.push("Panjin,盘锦,PAJ");
p.push("Panzhihua,攀枝花,PZI");
p.push("Penglai,蓬莱,PEL");
p.push("Pinghu,平湖,PIH");
p.push("Pingxiang,萍乡,PIX");
p.push("Pingyao,平遥,PYO");
p.push("Pizhou,邳州,PIZ");
p.push("Putian,莆田,PUT");
p.push("Puyang,濮阳,PUY");
p.push("Qiandaohu,千岛湖,QIH");
p.push("Qidong,启东,QID");
p.push("Qingdao,青岛,TAO");
p.push("Qingyuan,清远,QYN");
p.push("Qingzhou,青州,QIZ");
p.push("Qinhuangdao,秦皇岛,SHP");
p.push("Qinzhou,钦州,QZO");
p.push("Qionghai,琼海,QHA");
p.push("Qiqihaer,齐齐哈尔,NDG");
p.push("Quanzhou,泉州,QUZ");
p.push("Qufu,曲阜,QUF");
p.push("Qujing,曲靖,QUJ");
p.push("Quzhou,衢州,JUZ");
p.push("Rizhao,日照,RIZ");
p.push("Rongcheng,荣成,ROC");
p.push("Rugao,如皋,RUG");
p.push("Ruian,瑞安,RUA");
p.push("Ruili,瑞丽,RUL");
p.push("Sanmenxia,三门峡,SAM");
p.push("Sanming,三明,SMI");
p.push("Sanya,三亚,SYX");
p.push("Shanghai,上海,SHA");
p.push("Shangqiu,商丘,SHQ");
p.push("Shangrao,上饶,SHR");
p.push("Shangyu,上虞,SYU");
p.push("Shantou,汕头,SWA");
p.push("Shanwei,汕尾,SHW");
p.push("Shaoguan,韶关,HSC");
p.push("Shaoshan,韶山,SHS");
p.push("Shaowu,邵武,SWU");
p.push("Shaoxing,绍兴,SHX");
p.push("Shaoyang,邵阳,SYG");
p.push("Shengzhou,嵊州,SZU");
p.push("Shenyang,沈阳,SHE");
p.push("Shenzhen,深圳,SZX");
p.push("Shijiazhuang,石家庄,SJW");
p.push("Shishi,石狮,SHI");
p.push("Shiyan,十堰,SYA");
p.push("Shouguang,寿光,SHG");
p.push("Shunde,顺德,SHD");
p.push("Suifenhe,绥芬河,SUF");
p.push("Suining,遂宁,SUN");
p.push("Suzhou,苏州,SZV");
p.push("Taian,泰安,TAA");
p.push("Taicang,太仓,TAC");
p.push("Taishan,台山,TSA");
p.push("Taishun,泰顺,TSH");
p.push("Taiyuan,太原,TYN");
p.push("Taizhou,台州,TAZ");
p.push("Taizhou,泰州,TZU");
p.push("Tangshan,唐山,TAS");
p.push("Tengchong,腾冲,TCH");
p.push("Tianjin,天津,TSN");
p.push("Tianshui,天水,TIS");
p.push("Tiantai,天台,TTA");
p.push("Tianzhushan,天柱山,TZS");
p.push("Tieling,铁岭,TIL");
p.push("Tonghua,通化,TNH");
p.push("Tongli,同里,TOL");
p.push("Tongliao,通辽,TGO");
p.push("Tongling,铜陵,TOG");
p.push("Tonglu,桐庐,TLU");
p.push("Tongxiang,桐乡,TOX");
p.push("Tulufan,吐鲁番,TUL");
p.push("Wanning,万宁,WAN");
p.push("Weifang,潍坊,WEF");
p.push("Weihai,威海,WEH");
p.push("Wendeng,文登,WED");
p.push("Wenling,温岭,WEG");
p.push("Wenzhou,温州,WNZ");
p.push("Wuhan,武汉,WUH");
p.push("Wuhu,芜湖,WHU");
p.push("Wujiang,吴江,WJI");
p.push("Wulumuqi,乌鲁木齐,URC");
p.push("Wutaishan,五台山,WTS");
p.push("Wuxi,无锡,WUX");
p.push("Wuyi,武义,WYI");
p.push("Wuyishan,武夷山,WUS");
p.push("Wuyuan,婺源,WUY");
p.push("Wuzhishan,五指山,XZS");
p.push("Wuzhou,梧州,WUZ");
p.push("Xiamen,厦门,XMN");
p.push("Xian,西安,SIA");
p.push("Xiangfan,襄樊,XFN");
p.push("Xianggang,香港,HKG");
p.push("Xianggelila,香格里拉,XIG");
p.push("Xiangshan,象山,XSH");
p.push("Xiangtan,湘潭,XIT");
p.push("Xianyang,咸阳,XIY");
p.push("Xichang,西昌,XIC");
p.push("Xingcheng,兴城,XEN");
p.push("Xingtai,邢台,XNT");
p.push("Xining,西宁,XNN");
p.push("Xinxiang,新乡,XIX");
p.push("Xinyang,信阳,XYA");
p.push("Xinyi,新沂,XIN");
p.push("Xinzhou,忻州,XIU");
p.push("Xishuangbanna,西双版纳,JHG");
p.push("Xiuqian,宿迁,XIQ");
p.push("Xuzhou,徐州,XUZ");
p.push("Yaan,雅安,YAA");
p.push("Yanan,延安,ENY");
p.push("Yancheng,盐城,YNZ");
p.push("Yandangshan,雁荡山,YAD");
p.push("Yangjiang,阳江,YAJ");
p.push("Yangshuo,阳朔,YAH");
p.push("Yangzhou,扬州,YZO");
p.push("Yanji,延吉,YNJ");
p.push("Yantai,烟台,YNT");
p.push("Yanzhou,兖州,YZH");
p.push("Yibin,宜宾,YBP");
p.push("Yichang,宜昌,YIH");
p.push("Yichun,宜春,YIC");
p.push("Yinchuan,银川,INC");
p.push("Yingkou,营口,YIK");
p.push("Yingtan,鹰潭,YIT");
p.push("Yiwu,义乌,YIW");
p.push("Yixing,宜兴,YIX");
p.push("Yiyang,益阳,YIY");
p.push("Yizheng,仪征,YIZ");
p.push("Yongkang,永康,YOK");
p.push("Yueyang,岳阳,YUY");
p.push("Yulin,榆林,UYN");
p.push("Yulin,玉林,YUL");
p.push("Yuncheng,运城,YUC");
p.push("Yuyao,余姚,YUA");
p.push("Zaozhuang,枣庄,ZAZ");
p.push("Zhangjiagang,张家港,ZHJ");
p.push("Zhangjiajie,张家界,DYG");
p.push("Zhangjiakou,张家口,ZJK");
p.push("Zhangye,张掖,ZHY");
p.push("Zhangzhou,漳州,ZHZ");
p.push("Zhanjiang,湛江,ZHA");
p.push("Zhaoqing,肇庆,ZHQ");
p.push("Zhengzhou,郑州,CGO");
p.push("Zhenjiang,镇江,ZJA");
p.push("Zhongshan,中山,ZIS");
p.push("Zhoushan,舟山,HSN");
p.push("Zhuhai,珠海,ZUH");
p.push("Zhuji,诸暨,ZJI");
p.push("Zhumadian,驻马店,ZHM");
p.push("Zhuzhou,株洲,ZHO");
p.push("Zibo,淄博,ZIB");
p.push("Zunyi,遵义,ZYI");
return p;
}
CityArea.HotelDefaultCity = function()
{
	var p = new Array();
	p.push("Shanghai,上海,SHA");
	p.push("Beijing,北京,PEK");
	p.push("Guangzhou,广州,CAN");
	p.push("Sanya,三亚,SYX");
	p.push("Hangzhou,杭州,HGH");
	p.push("Suzhou,苏州,SZV");
	p.push("Nangjing,南京,NKG");
	p.push("Chengdu,成都,CTU");
	p.push("Shenyang,沈阳,SHE");
	p.push("Chongqing,重庆,CKG");
	p.push("Shenzhen,深圳,SZX");
	return p;
}
CityArea.FlightDefaultCity = function()
{
	var p = new Array();
	p.push("Shanghai,上海,SHA");
	p.push("Ningbo,宁波,NGB");
	p.push("Shenyang,沈阳,SHE");
	p.push("Chengdu,成都,CTU");
	p.push("Beijing,北京,PEK");
	p.push("Guangzhou,广州,CAN");
	p.push("Shenzhen,深圳,SZX");
	p.push("Chongqing,重庆,CKG");
	p.push("Tianjin,天津,TSN");
	p.push("Hangzhou,杭州,HGH");
	return p;
}
CityArea.FlightCity = function()
{
	var p = new Array();
	p.push("AKeSu,阿克苏,AKU");
	p.push("ALTay,阿勒泰,AAT");
	p.push("AnKang,安康,AKA");
	p.push("AnQing,安庆,AQG");
	p.push("AnShan,鞍山,AOG");
	p.push("BaoShan,保山,BSD");
	p.push("BaoTou,包头,BAV");
	p.push("BeiHai,北海,BHY");
	p.push("BeiJing,北京,PEK");
	p.push("BengBu,蚌埠,BFU");
	p.push("ChangChun,长春,CGQ");
	p.push("ChangDe,常德,CGD");
	p.push("ChangSha,长沙,CSX");
	p.push("ChangZhi,长治,CIH");
	p.push("ChangBaiShan,长白山,NBS");	
	p.push("ChangZhou,常州,CZX");
	p.push("ChaoYang,朝阳,CHG");
	p.push("ChengDu,成都,CTU");
	p.push("ChiFeng,赤峰,CIF");
	p.push("ChongQing,重庆,CKG");
	p.push("DaChuAan,达县,DAX");
	p.push("DaLan,大连,DLC");
	p.push("DaLi,大理,DLU");
	p.push("DanDong,丹东,DDG");
	p.push("DaTong,大同,DAT");
	p.push("DaYong,大庸,DYG");
	p.push("DongYing,东营,DOY");
	p.push("DunHuang,敦煌,DNH");
	p.push("EnShi,恩施,ENH");
	p.push("ErDuoSi,鄂尔多斯,DSN");
	p.push("FuYang,阜阳,FUG");
	p.push("FuYun,富蕴,FYN");
	p.push("FuZhou,福州,FOC");
	p.push("GanZhou,赣州,KOW");
	p.push("GoLmud,格尔木,GOQ");
	p.push("GuangHan,广汉,GHN");
	p.push("GuangZhou,广州,CAN");
	p.push("GuiLin,桂林,KWL");
	p.push("GuiYang,贵阳,KWE");
	p.push("HarBin,哈尔滨,HRB");
	p.push("HaiKou,海口,HAK");
	p.push("HaiLaer,海拉尔,HLD");
	p.push("HaMi,哈密,HMI");
	p.push("HangZhou,杭州,HGH");
	p.push("HanZhong,汉中,HZG");
	p.push("HeFei,合肥,HFE");
	p.push("HeiHe,黑河,HEK");
	p.push("HengYang,衡阳,HNY");
	p.push("HeTian,和田,HTN");
	p.push("HuaiHua,怀化,HJJ");
	p.push("HuangShan,黄山,TXN");
	p.push("HuangYan,黄岩,HYN");
	p.push("HuHeHaoTe,呼和浩特,HET");
	p.push("JiAn,吉安,KNC");
	p.push("JiaMuSi,佳木斯,JMU");
	p.push("JiaYuGuan,嘉峪关,JGN");
	p.push("JiLin,吉林,JIL");
	p.push("JiNan,济南,TNA");
	p.push("JiNing,济宁,JNG");
	p.push("JingDeZhen,景德镇,JDZ");
	p.push("JingGangShan,井冈山,JGS");
	p.push("JingHong,景洪,JHG");
	p.push("JinJiang,晋江,JJN");
	p.push("JinZhou,锦州,JNZ");
	p.push("JiuQuan,酒泉,CHW");
	p.push("JiuJiang,九江,JIU");
	p.push("Jiuzhaigou,九寨沟,JZH");
	p.push("KaRaMay,克拉玛依,KRY");
	p.push("KaShi,喀什,KHG");
	p.push("KoRLar,库尔勒,KRL");
	p.push("KunMing,昆明,KMG");
	p.push("KuQ,库车,KCA");
	p.push("LanZhou,兰州,LHW");
	p.push("LaSa,拉萨,LXA");
	p.push("LianYunGang,连云港,LYG");
	p.push("LiJiang,丽江,LJG");
	p.push("LinYi,临沂,LYI");
	p.push("LiuZhou,柳州,LZH");
	p.push("LuoYang,洛阳,LYA");
	p.push("LuZhou,泸州,LZO");
	p.push("MangShi,芒市,LUM");
	p.push("ManZhouLi,满洲里,NZH");
	p.push("MeiXian,梅县,MXZ");
	p.push("MianYang,绵阳,MIG");
	p.push("MuDanJiang,牡丹江,MDG");
	p.push("NanChang,南昌,KHN");
	p.push("NanChong,南充,NAO");
	p.push("NanJing,南京,NKG");
	p.push("NanNing,南宁,NNG");
	p.push("NanTong,南通,NTG");
	p.push("NanYang,南阳,NNY");
  p.push("Nanyuan,北京南苑,NAY");
	p.push("NingBo,宁波,NGB");
	p.push("MoHe,漠河,OHE");
	p.push("QieMo,且末,IQM");
	p.push("QingDao,青岛,TAO");
	p.push("QingYan,庆阳,IQN");
	p.push("QinHuangDao,秦皇岛,SHP");
	p.push("QiQiHaer,齐齐哈尔,NDG");
	p.push("QuanZhou,泉州,JJN");
	p.push("QuZhou,衢州,JUZ");
	p.push("SanYa,三亚,SYX");
	p.push("ShangHai,上海,SHA");
	p.push("ShangHai,上海虹桥,SHA");
	p.push("ShangHai,上海浦东,PVG");
	p.push("ShanTou,汕头,SWA");
	p.push("ShaShi,沙市,SHS");
	p.push("ShenZhen,深圳,SZX");
	p.push("ShenYang,沈阳,SHE");
	p.push("ShiJiaZhuang,石家庄,SJW");
	p.push("SiMao,思茅,SYM");
	p.push("SuZhou,苏州,SZV");
	p.push("TaCheng,塔城,TCG");
	p.push("TaiYuan,太原,TYN");
	p.push("TianJin,天津,TSN");
	p.push("TongHhua,通化,TNH");
	p.push("TongLiao,通辽,TGO");
	p.push("TongRen,铜仁,TEN");
	p.push("WanXian,万县,WXN");
	p.push("WeiFang,潍坊,WEF");
	p.push("WeiHai,威海,WEH");
	p.push("WenZhou,温州,WNZ");
	p.push("WenShan,文山,WNH");
	p.push("WuHan,武汉,WUH");
	p.push("WuXi,无锡,WUX");
	p.push("WuLanHaoTe,乌兰浩特,HLH");
	p.push("WuLuMuQi,乌鲁木齐,URC");
	p.push("WuYiShan,武夷山,WUS");
	p.push("WuZhou,梧州,WUZ");
	p.push("XiaMen,厦门,XMN");
	p.push("XiAn,西安,XIY");
	p.push("XiangFan,襄樊,XFN");
	p.push("XiChang,西昌,XIC");
	p.push("XiLinHaoTE,锡林浩特,XIL");
	p.push("XiNing,西宁,XNN");
	p.push("XuZhou,徐州,XUZ");
	p.push("YanAn,延安,ENY");
	p.push("YanCheng,盐城,YNZ");
	p.push("YanJi,延吉,YNJ");
	p.push("YanTai,烟台,YNT");
	p.push("YiBin,宜宾,YBP");
	p.push("YiChang,宜昌,YIH");
	p.push("YinChuan,银川,INC");
	p.push("YiNing,伊宁,YIN");
	p.push("YiWu,义乌,YIW");
	p.push("YuLin,榆林,UYN");
	p.push("ZhaoTong,昭通,ZAT");
	p.push("ZhangJiaJie,张家界,DYG");
	p.push("ZhanJiang,湛江,ZHA");
	p.push("ZhongDian,中甸,DIG");
	p.push("ZhongWei,中卫,ZHY");
	p.push("ZhengZhou,郑州,CGO");
	p.push("ZhouShan,舟山,HSN");
	p.push("ZhuHai,珠海,ZUH");
	p.push("ZunYi,遵义,ZYI");
	return p;
}
CityArea.prototype = {
	datasource:null,
	KeyInput:null,
	floatDiv:null,
	defaultsource:new Array(),
	_mask_iframe:null,
	_mask_div:null,
	pagesize:10,
	city_left:0,
	city_top:0,
	city_width:230,
	city_height:280,
	cursor:0,
	pageno:1,
	totalpage:1,
	currentdatasource:null,
	dataformat:"\"<span style='float:right;'>\"+darr[0]+\"<\/span>\"+darr[1]",
	clickFunctionName:"",
	initialize:function(clickfun,KeyInput,datasource)
    {
		this.bindKeyInput(KeyInput);
		this.clickFunctionName = clickfun;
		this.datasource = datasource;
		this.createHtml();
	},
	setDefaultSource:function(defaultsource){
		this.defaultsource = defaultsource;
	},
	setSource:function(datasource)
	{
		this.datasource = datasource;
	},
	createHtml:function()
	{
		
		var mask_div = document.createElement("div");
		this.city_left = $(this.KeyInput).cumulativeOffset()[0];
		this.city_top = $(this.KeyInput).cumulativeOffset()[1]+$(this.KeyInput).offsetHeight;
		mask_div.style.left = this.city_left;
		mask_div.style.top = this.city_top;
		mask_div.style.width = this.city_width + "px";
		mask_div.style.height = this.city_height + "px";
		mask_div.style.backgroundColor = "#ffffff";
		mask_div.style.position = "absolute";
		mask_div.style.display = "none";
		mask_div.style.border = "1px solid #688CB0";
		mask_div.style.zIndex = 9999;
		mask_div.id = mask_div.uniqueID;
		document.body.appendChild(mask_div); 
		
		var mask_iframe=document.createElement("iframe");
		mask_iframe.frameBorder = "no";
		mask_iframe.marginheight = 0;
		mask_iframe.marginwidth = 0;
		mask_iframe.hspace = 0;
		mask_iframe.vspace = 0;
		mask_iframe.scrolling = "no";
		mask_div.style.backgroundColor = "#ffffff";		
		mask_iframe.style.width=mask_div.style.width;//mask_div.offsetWidth;
		mask_iframe.style.height=mask_div.style.height;//mask_div.offsetHeight;
		var mask_name = mask_iframe.uniqueID;
		mask_iframe.name = mask_name;
		mask_iframe.id = mask_name;
		mask_div.appendChild(mask_iframe);
		
		this._mask_iframe = mask_iframe.name;
		this._mask_div = mask_div.id;
		
		
		var sb = new StringBuffer();
		sb.append("<html><head>");
		sb.append("<script type='text/javascript' src='/ltcn/js/prototype160.js'></script>");
		sb.append("<script type='text/javascript'>");
		//sb.append("function $(obj){return document.getElementById(obj);}\r\n");
		sb.append("function strip(str) {return str.replace(/^\s+/, '').replace(/\s+$/, '');}\r\n");
		sb.append("function hasClassName(element, className) { var elementClassName = element.className; return (elementClassName.length > 0 && (elementClassName == className || new RegExp(\"(^|\\\\s\)\" + className + \"(\\\\s|$)\").test(elementClassName)));}\r\n");
        sb.append("function addClassName(element, className) { if (!hasClassName(element,className))element.className += (element.className ? ' ' : '') + className;return element;}\r\n");
        sb.append("function removeClassName(element, className){element.className = strip(element.className.replace(new RegExp(\"(^|\\\\s+)\" + className + \"(\\\\s+|$)\"), ' '));return element;}\r\n");
		
		sb.append("function loadData(ds,cursor,pagesize,pageno,totalpage,funname,maskname,format)\r\n");
		sb.append("{\r\n");
		sb.append("  var ps = new Array();\r\n");
		sb.append("	 var pc = new Array();\r\n");
		sb.append("	 ps = ds;\r\n");
		
		sb.append("	 for(var i=0;i<pagesize;i++)\r\n");
		sb.append("	 {\r\n");
		sb.append("	 	var ci = pagesize*(pageno-1)+i;\r\n");
		sb.append("		if(ci<=ps.length-1)\r\n");
		sb.append("			pc.push(ps[ci]);\r\n");
		sb.append("  }\r\n");
		sb.append("  var sb=\"\";\r\n");
		sb.append("	 sb+=\"请按左右翻页: \";\r\n");
		sb.append("	 sb+=\"当前\"+pageno+\"页\";\r\n");;
		sb.append("	 sb+=\" 共\"+totalpage+\"页\";\r\n");
		sb.append("	 if(cursor>(pc.length-1))\r\n");
		sb.append("	 {\r\n");
		sb.append("    cursor = pc.length-1;\r\n");
		sb.append("  }\r\n");
		sb.append("  $(\"_citycode_page\").innerHTML = sb;\r\n");
	
		//sb.append("  var arr = $(\"_citycode_list\").getElementsByTagName(\"a\");\r\n");
		sb.append("  $$(\"div#_citycode_list a\").each(function(a){\r\n");
		//sb.append("  for(var i=0;i<arr.length;i++){\r\n");
		//sb.append("    var a = arr[i];\r\n");
		sb.append("    var listno = parseInt(a.id.toString().replace(\"_citysel_\",\"\"),10);\r\n");
		sb.append("    if(listno<pc.length)\r\n");
		sb.append("    {\r\n");
		sb.append("      var darr = pc[listno].split(\",\");\r\n");
		sb.append("      if(cursor.toString()==listno)\r\n");
		sb.append("      {\r\n");
		sb.append("        a = addClassName(a,\"cityselon\");\r\n");
		sb.append("        a = addClassName(a,\"citysel\");\r\n");		
		sb.append("      }\r\n");
		sb.append("      else\r\n");
		sb.append("      {\r\n");
		sb.append("        a = addClassName(a,\"citysel\");");
		sb.append("        a = removeClassName(a,\"cityselon\");\r\n");
		sb.append("      }\r\n");
		/*sb.append("      if(a.addEventListener){");
	    sb.append("        (function(v){a.removeEventListener(\"click\",a[\"click\"]);o.addEventListener(\"click\",function(){ eval(\"window.parent.$('\" + maskname + \"').hide();\");eval(\"window.parent.\"+funname+\"('\"+v+\"')\");      });})(pc[listno])\r\n");
		sb.append("      }\r\n");
		sb.append("      else{");
		sb.append("        (function(v){a.onclick=function(){};a.attachEvent(\"onclick\",function(){ eval(\"window.parent.$('\" + maskname + \"').hide();\");eval(\"window.parent.\"+funname+\"('\"+v+\"')\");      });})(pc[listno])\r\n");
		sb.append("      }");
		
		sb.append("        a[\"click\"] = null;");
		sb.append("        (function(v){a.attachEvent(\"onclick\",function(){ eval(\"window.parent.$('\" + maskname + \"').hide();\");eval(\"window.parent.\"+funname+\"('\"+v+\"')\");      });})(pc[listno])\r\n");
		*/
		sb.append("      a.stopObserving('click');");
		sb.append("      a.observe(\"click\",function(){ eval(\"window.parent.$('\" + maskname + \"').hide();\");eval(\"window.parent.\"+funname+\"('\"+pc[listno]+\"')\");      });");
		sb.append("      eval(\"a.innerHTML = \"+format+\";\")\r\n");
		sb.append("    }\r\n");
		sb.append("    else\r\n");
		sb.append("    {\r\n");
		sb.append("      a = removeClassName(a,\"cityselon\");\r\n");
		sb.append("      a = removeClassName(a,\"citysel\");\r\n");
		sb.append("      a.stopObserving('click');");
		sb.append("      a.innerHTML = \" \";\r\n");
		sb.append("    }\r\n");
		sb.append("   }\r\n");
		
		sb.append(");");
		
		sb.append("	}\r\n");
		sb.append("<\/script>");
		
		sb.append("<style>\r\n");
		sb.append("a.cityselon{ background-color:#def; }\r\n");
		sb.append("div#_citycode_list a{height:20px;margin:3px; padding:2px;}\r\n");
		sb.append("a.citysel{ font-size:13px; margin:3px; padding:2px; border-bottom:1px dotted #eeeeee;}\r\n");
		sb.append("a.citysel:hover {color:# 06f;background-color:#9cf;}\r\n");
		sb.append("a.citysel:link {color: #06F;text-decoration: none;}\r\n");
		sb.append("a.citysel:visited {color: #06F;	text-decoration: none;}\r\n");
		sb.append("<\/style>");
		sb.append("<\/head>");
		
		
		sb.append("<body style=\"margin:0px;padding:0px;\" bgcolor=#ffffff>");
		sb.append("<div id=\"_citycode_title\" style=\" background-color:#ffffff; margin:2px;padding:2px;word-wrap: break-word;border-bottom:1px dotted #eeeeee; font-size:12px;color:#999999;\">请输入关键字或拼音</div>");		
		sb.append("<div id=\"_citycode_area\" style=\"width:"+this.city_width+"px;height:"+this.city_height+"px;\">");
		sb.append("<div id=\"_citycode_list\" style=\"float:left;\">");
		for(var i=0;i<this.pagesize;i++)
		{
			sb.append("<a href=\"#\" id=\"_citysel_"+i+"\" class=\"citysel\" style=\"display: block;\">");
			sb.append("</a>");
			sb.append("<div style=\"clear:both;\"></div>");
		}
		sb.append("</div>");
		sb.append("<div id=\"_citycode_page\" style=\"background-color:#ffffff; margin:2px;padding:2px;word-wrap: break-word;border-bottom:1px dotted #eeeeee; font-size:14px;color:#999999;\"></div>");		
		sb.append("<\/div>");
		sb.append("<\/body>");
		sb.append("<\/html>");
		window.frames[this._mask_iframe].document.write(sb.toString());	
		window.frames[this._mask_iframe].document.close();
		sb.clear();
	},
	setFormat:function(format)
	{
		this.dataformat = format;
	},
	bindKeyInput:function(oname)
	{
		var clonethis = this;
		clonethis.KeyInput = oname;
		Event.observe($(oname),"focus",function(){
												    clonethis.cursor = 0;
													  clonethis.pageno = 1;
													  clonethis.totalpage = 1;
													  $(clonethis._mask_div).show();
													   
													  
		 
													  Event.observe(document,"keydown",function(e)
													  {
														  if(e.keyCode==37)
														  {
															  clonethis.PrevPage();
															  e.stop();
															  return;
														  }
														  if(e.keyCode==38)
														  {
															  clonethis.PrevRecord();
															  e.stop();
															  return;
														  }
														  if(e.keyCode==39)
														  {
															  clonethis.NextPage();
															  e.stop();
															  return;
														  }
														  if(e.keyCode==40)
														  {
															  clonethis.NextRecord();
															  e.stop();
															  return;
														  }
														  if(e.keyCode==13)
														  {
															  eval(clonethis.clickFunctionName+"('"+clonethis.currentdatasource[clonethis.pagesize*(clonethis.pageno-1)+clonethis.cursor]+"')");
															  $(clonethis.KeyInput).blur();
															  $(clonethis._mask_div).hide();
															  e.stop();
															  return;
														  }
														  clonethis.cursor = 0;
														  clonethis.pageno = 1;
														  clonethis.totalpage = 1;
													  });
													  
													  
													  
													  clonethis.t = setInterval(function(){
			 																				clonethis.catchKey();
																							},50);});
		Event.observe($(oname),"blur",function(e){
											   clonethis.cursor = 0;
											   clonethis.pageno = 1;
											   clonethis.totalpage = 1;
											   clonethis.stopListener();
											   clearInterval(clonethis.t);
											   
											   //debug(Event);
											   if(!clonethis.isInDiv(Event.pointerX(event),Event.pointerY(event)))
											   {
												   $(clonethis._mask_div).hide();
											   }
											   
											   });
		
	},
	isInDiv:function(x,y)
	{
		if(x<this.city_left|| x>this.city_left+this.city_width || y<this.city_top || y>this.city_top+this.city_height){
			return false;
		}
		return true;
	},
	loadData:function()
	{
		this.totalpage = (parseInt(this.currentdatasource.length/this.pagesize,10) + (this.currentdatasource.length%this.pagesize==0?0:1));
		if(this.totalpage==this.pageno)
		{
			if(this.pagesize*(this.pageno-1)+this.cursor>this.currentdatasource.length-1)
			{
				this.cursor = this.currentdatasource.length - this.pagesize*(this.pageno-1) -1;
			}
		}		
		window.frames[this._mask_iframe].loadData(this.currentdatasource,this.cursor,this.pagesize,this.pageno,this.totalpage,this.clickFunctionName,this._mask_div,this.dataformat);
	},
	catchKey:function()
	{
		var clonethis = this;		
		var pi = clonethis.datasource;
		var ki = $(this.KeyInput);
		var pc = new Array();
		for(var i=0;i<pi.length;i++)
		{
			pa = pi[i].split(",");
			if(ki!=null)
			{
				if(pi[i].toUpperCase().indexOf(ki.value.toUpperCase())==0)
				{
					pc.push(pi[i]);
				}
				else
				{
					//default city
					//pc.push("PEK,北京,Beijing");
					
					if(ki.value=="")
					{
						pc = this.defaultsource;
						break;
					}
				}		  	  
			}
			else
			{
				
			}
		}
		for(var i=0;i<pi.length;i++)
		{
			pa = pi[i].split(",");
			if(ki!=null)
			{
				if(pi[i].toUpperCase().indexOf(ki.value.toUpperCase())>0)
				{
					pc.push(pi[i]);
				}
				else
				{
					//default city
					//pc.push("PEK,北京,Beijing");
								
					if(ki.value=="")
					{
						pc = this.defaultsource;
						break;
					}
					
				}		  	  
			}
			else
			{
				
			}
		}
		clonethis.currentdatasource = pc;
		clonethis.loadData();
	},
	PrevRecord:function()
	{
		if(this.cursor>0)
		{
			this.cursor--;
		}
		else
		{
			this.cursor = this.pagesize-1;
			if(this.pagesize*(this.pageno-1)+this.cursor>this.currentdatasource.length-1)
			{
				this.cursor = this.currentdatasource.length - this.pagesize*(this.pageno-1) -1;
			}
		}
		this.loadData();
	},
	NextRecord:function()
	{
		
		if(this.cursor<this.pagesize-1)
		{
			this.cursor++;
			if(this.pagesize*(this.pageno-1)+this.cursor>this.currentdatasource.length-1)
			{
				this.cursor = 0;
			}			
		}
		else
		{			
			this.cursor = 0;
		}
		this.loadData();
	},
	PrevPage:function()
	{
		if(this.pageno>1)
		{
			this.pageno--;
		}
		this.loadData();
	},	
	NextPage:function()
	{
		if(this.pageno<this.totalpage)
		{
			this.pageno++;
		}
		this.loadData();
	},
	stopListener:function()
	{
		Event.stopObserving(document,"keydown");
	}
}
/*Sample for citycode
var cityarr = new Array();
cityarr.push("SHE,沈阳,Shenyang");
cityarr.push("PEK,北京,Beijing");

var cityarr1 = new Array();
cityarr1.push("sssssssssssssss");
cityarr1.push("sssssssssssssss");
cityarr1.push("sssssssssssssss");
cityarr1.push("sssssssssssssss");
cityarr1.push("sssssssssssssss");

var ca = new CityArea("test","mytext",citycode());

function test(data)
{
	//alert(data);
	$("mytext").value = data;
}
function debugtest(data)
{
	$("debug").value = data;
}
var cb = new CityArea("debugtest","debug",cityarr1);
cb.setFormat("\"<span style='width:100%'>\"+darr[0]+\"<\/span>\"");
*/
//showdebug();