// 도시 입력 by hanxj
function $(fctId){
	return document.getElementById(fctId);
}

function c$(fctId,fctClassName){
	var varTempDivObj=$(fctId);
	if(!varTempDivObj){
		GetPyzyIframe("ifm"+fctId);
		varTempDivObj=document.createElement("div");
		varTempDivObj.id=fctId;
		if(fctClassName && fctClassName!="")varTempDivObj.className=fctClassName;
		document.body.appendChild(varTempDivObj);
	}
	return varTempDivObj;
}

function GetPyzyIframe(fctIfmId,fctVisibility,fctTop,fctLeft,fctWidth,fctHeight){
	var varTempIfmObj=$(fctIfmId);
	if(!varTempIfmObj){
		varTempIfmObj=document.createElement("iframe");
		varTempIfmObj.id=fctIfmId;
		varTempIfmObj.style.position="absolute";
		varTempIfmObj.style.zIndex="1";
		varTempIfmObj.style.visibility="hidden";
		document.body.appendChild(varTempIfmObj);
	}
	if(fctTop)varTempIfmObj.style.top=fctTop+"px";
	if(fctLeft)varTempIfmObj.style.left=fctLeft+"px";
	if(fctWidth)varTempIfmObj.style.width=fctWidth+"px";
	if(fctHeight)varTempIfmObj.style.height=fctHeight+"px";
	if(fctVisibility)varTempIfmObj.style.visibility=(document.all?fctVisibility:"hidden	");
	return varTempIfmObj;
}

function getPosition(obj){
	var top=0;
	var left=0;
	var width=obj.offsetWidth;
	var height=obj.offsetHeight;
	while(obj.offsetParent){
		top+=obj.offsetTop;
		left+=obj.offsetLeft;
		obj=obj.offsetParent;
	}
	return{"top":top,"left":left,"width":width,"height":height};
}

function GetValueToInputObj(fctThisObj){
	if(!fctThisObj)return null;
	var varThisObjAutoInput=(fctThisObj.getAttributeNode("value_to_input")?fctThisObj.getAttributeNode("value_to_input").value:"");
	if(varThisObjAutoInput=="")return null;
	return $(varThisObjAutoInput);
}

function AutoNextInputAct(fctThisObj,fctAct){
	var varNextInput=fctThisObj.getAttributeNode("nextinput");
	if(varNextInput && varNextInput!=""){
		if(document.all){
			eval("$('"+varNextInput.value+"')."+fctAct+"()");
		}else{
			var evt = document.createEvent("MouseEvents");
			evt.initEvent(fctAct,true,true);
			$(varNextInput.value).dispatchEvent(evt);
		}
		$(varNextInput.value).focus();
	}
}

function AddFunToObj(fctObj,fctAct,fctFunction){
	if(fctObj.addEventListener){ //!IE
		fctObj.addEventListener(fctAct.replace("on",""),function(e){
			e.cancelBubble=!eval(fctFunction);
		},false);
	}else if(fctObj.attachEvent){ //IE
		fctObj.attachEvent(fctAct,function(){
			return eval(fctFunction);
		});
	}
}

document.write('\
	<style type="text/css">\
		#divAddressMenu {position:absolute;visibility:hidden;z-index:2;top:0;overflow:hidden;width:230px;background-color:#FFFFFF;border:solid #C6D3DF 1px;font-size:12px;font-family:Tahoma;color:#0055AA}\
		#divAddressMenu h4{border-bottom:dashed #AAAAAA 1px;color:#0055AA;font-size:12px; font-weight:100; padding:5px 2px 3px 2px; margin:0;}\
		#divAddressMenu div{border:solid #7F9DB9 1px;padding:1px;}\
		#divAddressMenu a {display:block; font-family:Tahoma; width:220px !important; width:224px; padding:1px 2px 2px 2px; cursor:default; text-decoration:none; color:#0055AA; border:solid #ffffff 1px; background-color:none;}\
		#divAddressMenu a span{float:right;font-family:Tahoma;}\
		#divAddressMenu a:hover {font-family:Tahoma;border:solid #7F9DB9 1px;background-color:#E7F1FD;}\
	</style>\
');


var varAddress="@Qingdao|「청도」青岛|TAO@Jinan|「제남」济南|TNA@Yantai|「연태」烟台|YNT@Weihai|「위해」威海|WEH@Weifang|「유방」潍坊|WEF@Dongying|「동영」东营|DOY@Linyi|「임이」临沂|LYI@Beijing|「북경」北京|PEK@Tianjin|「천진」天津|TSN@Shanghai|「상해홍교」上海虹桥|SHA@Shanghai|「상해포동」上海浦东|PVG@Shenyang|「심양」沈阳|SHE@Dalian|「대련」大连|DLC@Dandong|「단동」丹东|DDG@Jilin|「길림」吉林|JIL@Mudanjiang|「목단강」牡丹江|MDG@Haerbin|「하얼빈」哈尔滨|HRB@Changchun|「장춘」长春|CGQ@Yanji|「연길」延吉|YNJ@Shenzhen|「심천」深圳|SZX@Guangzhou|「광주」广州|CAN@Nanjing|「남경」南京|NKG@Xiamen|「하문」厦门|XMN@Zhuhai|「주해」珠海|ZUH@Chengdu|「성도」成都|CTU@Chongqing|「중경」重庆|CKG@Wenzhou|「온주」温州|WNZ@Yiwu|「이우」义乌|YIW@Nantong|「남통」南通|NTG@Baotou|「포두」包头|BAV@Macau|「마카오」澳门|MFM@Akesu|「아크수」阿克苏|AKU@Aletai|「아레이타이」阿勒泰|AAT@Ankang|「안강안경」安康|AKA@Anqing|「안경」安庆|AQG@Anshan|「안산」鞍山|AOG@Baoshan|「보산」保山|BSD@Beihai|「북해」北海|BHY@Changde|「상덕」常德|CGD@Changsha|「장사」长沙|CSX@Changzhi|「장치」长治|CIH@Changzhou|「상주」常州|CZX@Chaoyang|「조양」朝阳|CHG@Chifeng|「적봉」赤峰|CIF@Dali|「대리」大理|DLU@Datong|「대동」大同|DAT@Daxian|「달현」达县|DAX@Dehong|「덕굉망시」德宏|LUM@Dunhuang|「돈황」敦煌|DNH@Enshi|「은시」恩施|ENH@Fuyang|「부양」阜阳|FUG@Fuzhou|「복주」福州|FOC@Ganzhou|「감주」赣州|KOW@Geermu|「거얼무」格尔木|GOQ@Guanghan|「광한」广汉|GHN@Guilin|「계림」桂林|KWL@Guiyang|「귀양」贵阳|KWE@Haikou|「해구」海口|HAK@Hailaer|「하이라얼 」海拉尔|HLD@Hangzhou|「항주」杭州|HGH@Hanzhong|「한중」汉中|HZG@Hefei|「합비」合肥|HFE@Heihe|「흑하」黑河|HEK@Hetian|「하전」和田|HTN@Huangyan|「황암」黄岩|HYN@Huhehaote|「호화호특」呼和浩特|HET@Huangshan|「황산」黄山|TXN@Jiamusi|「가목사」佳木斯|JMU@Jiayuguan|「가유관」嘉峪关|JGN@Jingdezhen|「경덕진」景德镇|JDZ@jinjiang|「진강」晋江|JJN@Jinzhou|「금주」锦州|JNZ@Jiujiang|「구강」九江|JIU@Jiuzhaigou|「구채구」九寨沟|JZH@Kashi|「객십」喀什|KHG@Kelamayi|「극라마의」克拉玛依|KRY@Kuche|「고차」库车|KCA@Kuerle|「고이륵」库尔勒|KRL@Kunming|「곤명」昆明|KMG@Lanzhou|「란주」兰州|LHW@Lasa|「라싸」拉萨|LXA@Lianyungang|「련운항」连云港|LYG@Lijiang|「려강」丽江|LJG@Liuzhou|「류주」柳州|LZH@Luoyang|「락양」洛阳|LYA@Luzhou|「노주」泸州|LZO@Mangshi|「덕굉망시」芒市|LUM@Manzhouli|「만주리」满洲里|NZH@Meixian|「매현」梅县|MXZ@Mianyang|「면양」绵阳|MIG@Nanchang|「남창」南昌|KHN@Nanchong|「남충」南充|NAO@Nanning|「남녕」南宁|NNG@Nanyang|「남양」南阳|NN Y@Ningbo|「녕파」宁波|NGB@Panzhihua|「판지화」攀枝花|PZI@Qingyang|「경양」庆阳|IQN@Qinhuangdao|「진황도」秦皇岛|SHP@Qiqihaer|「치치하얼」齐齐哈尔|NDG@Quanzhou|「천주」泉州|JJN@Quzhou|「구주」衢州|JUZ@Sanya|「삼아」三亚|SYX@Shantou|「산두」汕头|SWA@Shashi|「사시」沙市|SHS@Shijiazhuang|「석가장」石家庄|SJW@Shishi|「석사」石狮|JJN@Simao|「사모」思茅|SYM@Tacheng|「탑성」塔城|TCG@Taipei|「대북」台北|TPE@Taiyuan|「태원」太原|TYN@Tongliao|「통료」通辽|TGO@Tongren|「동인」铜仁|TEN@Wanxian|「만주」万州|WXN@Wenshan|「문산」文山|WNH@Wuhai|「우해」乌海|WUA@Wuhan|「무한」武汉|WUH@Wulanhaote|「우란호특」乌兰浩特|HLH@Wulumuqi|「우루무치」乌鲁木齐|URC@Wuxi|「무석」无锡|WUX@Wuyishan|「무이산」武夷山|WUS@Xian|「서안」西安|XIY@Xiangfan|「양번」襄樊|XFN@Xianggelila|「샹그릴라」香格里拉|DIG@Xichang|「서창」西昌|XIC@Xilinhaote|「석림호특」锡林浩特|XIL@Xingyi|「흥이」兴义|ACX@Xining|「서녕」西宁|XNN@Xishuangbanna|「서쌍반나」西双版纳|JHG@Xuzhou|「서주」徐州|XUZ@Yanan|「연안」延安|ENY@Yancheng|「염성」盐城|YNZ@Yibin|「의빈」宜宾|YBP@Yichang|「의창」宜昌|YIH@Yinchuan|「은천」银川|INC@Yining|「이녕」伊宁|YIN@Yulin|「유림」榆林|UYN@Zhangjiajie|「장가계」张家界|DYG@Zhanjiang|「진강」湛江|ZHA@Zhaotong|「소통」昭通|ZAT@Zhengzhou|「정주」郑州|CGO@Zhongdian|「중전」中甸|DIG@Zhoushan|「주산」舟山|HSN@";

var varPageId=0;

function GetCityList(fctThisObj){
	var varMenuObj=c$("divAddressMenu");
	var varThisObj=fctThisObj;
	if(varThisObj.id=="menuPageS"||varThisObj.id=="menuPageE"){
		varThisObj=varMenuObj.obj;
	}else{
		varPageId=0;
	}
	var varThisObjAutoInput=GetValueToInputObj(varThisObj);
	if(varThisObjAutoInput)varThisObjAutoInput.value="";

	var varObjValue=varThisObj.value;
	var varThisObjAdd=(varThisObj.getAttributeNode("mod_address_suggest")?varThisObj.getAttributeNode("mod_address_suggest").value:"");
	var varData=(varObjValue==""?(varThisObjAdd==""?varAddress:varThisObjAdd):varAddress);
	var varHtmlStr="",varCityDataSplit=varData.split("@"),varCityDataSplitI,varCityDataSplitIu,varNextPageStr="";

	varMenuObj.obj=varThisObj;
	var varPageRCount=(varThisObj.getAttributeNode("pagecount")?parseInt(varThisObj.getAttributeNode("pagecount").value,10):10);
	var varThisPageI=0
	for(var i=1;i<varCityDataSplit.length-1;i++){
		varCityDataSplitI=varCityDataSplit[i];
		if(varCityDataSplitI.toUpperCase().indexOf(varObjValue.toUpperCase())>=0 || varObjValue=="" || i==varObjValue){ 
			varThisPageI+=1;
			if(varThisPageI>varPageId*varPageRCount && varThisPageI<=(varPageId+1)*varPageRCount){
				varCityDataSplitISplit=varCityDataSplitI.split("|");
				varHtmlStr+="<a href='javascript:;' onclick='WriteCity("+varThisPageI+")' id='menuA"+varThisPageI+"' title='"+varCityDataSplitI+"'><span>"+varCityDataSplitISplit[1]+"("+varCityDataSplitISplit[2]+")</span>"+varCityDataSplitISplit[0]+"</a>";
			}
		}
	}
	if(varThisPageI>varPageRCount){
		varNextPageStr="--------------------------------------------------------<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b id=menuPageS style="+(varPageId>0?"cursor:pointer;":"color:#0055AA;size:10px")+">&lt;&lt;&nbsp;이 전</b>　"
		varNextPageStr+="<b id=menuPageE style="+(varThisPageI>(varPageId+1)*varPageRCount?"cursor:pointer;":"color:#0055AA;size:10px")+">다 음&nbsp;&gt;&gt;</b>";
	}
	var varThisObjPosition=getPosition(varThisObj);

	with(varMenuObj){
		style.top=(varThisObjPosition.top+varThisObjPosition.height)+"px";
		style.left=varThisObjPosition.left+"px";
		style.visibility="visible";
		innerHTML="<div><h4>도시명칭을 입력하여 주십시오</h4>"+(varHtmlStr==""?"<nobr>찾을수 없습니다.‘"+varObjValue+"’。</nobr>":varHtmlStr+varNextPageStr)+"</div>";
	}
	GetPyzyIframe("ifm"+varMenuObj.id,"visible",(varThisObjPosition.top+varThisObjPosition.height),varThisObjPosition.left,varMenuObj.offsetWidth,varMenuObj.offsetHeight);
	return false;
}

function WriteCity(fctI){
	var varMenuObj=c$("divAddressMenu");
	var varThisObj=varMenuObj.obj;
	var varMenuValue=$("menuA"+fctI).title;
	varMenuValue=varMenuValue.split("|");
	varThisObj.value=varMenuValue[1];
	
	var varThisObjAutoInput=GetValueToInputObj(varThisObj);
	if(!varThisObjAutoInput)varThisObjAutoInput=varThisObj;
	varThisObjAutoInput.value=varMenuValue[2];
	
	if(typeof(fctI)=="number")AutoNextInputAct(varThisObj,"click");
}

function _Hidden(e){
	e=e?e:event;
	var varMenuObj=c$("divAddressMenu");
	var varThisObj=varMenuObj.obj;
	if(varMenuObj.style.visibility!="hidden"){
		if(e){
			var EventOBJ=(e.srcElement?e.srcElement:e.target);
			if(EventOBJ.id=="menuPageS" && EventOBJ.style.color==""){
				varPageId=varPageId-1;
				GetCityList(EventOBJ);
			}
			if(EventOBJ.id=="menuPageE" && EventOBJ.style.color==""){
				varPageId=varPageId+1;
				GetCityList(EventOBJ);
			}
			if(varThisObj==EventOBJ || EventOBJ.id.indexOf("menuPage")==0 || EventOBJ.id.indexOf("divAddressMenu")==0) return false;
		}
		
		var varThisObjAutoInput=GetValueToInputObj(varThisObj);
		if($("menuA1")){
			if(!varThisObjAutoInput)varThisObjAutoInput=varThisObj;
			if(varThisObjAutoInput.value=="" || varThisObjAutoInput==varThisObj){
				WriteCity("1");
			}
		}else if(EventOBJ.id.indexOf("menuA")<0){
			if(varThisObj)varThisObj.value="";
		}
		varMenuObj.style.visibility="hidden";
		GetPyzyIframe("ifm"+varMenuObj.id,"hidden");
	}
}

document.write('\
	<style type="text/css">\
		.DateListBox{float:left; border:solid #7F9DB9 1px; width:147px !important; width:154px; height:168px !important; height:176px; font-size:12px; font-family:Tahoma; text-align:center;}\
		.DateListBox h1{background-color:#E7F1FD;color:#0055AA;font-size:12px;height:20px;font-weight:bold;line-height:20px;vertical-align:middle;margin:0px;}\
		.DateListBox div{float:left; border:solid #0055AA 1px; background-color:#0055AA; color:#FFFFFF; width:19px !important; width:21px; height:20px; font-size:12px; font-weight:bold; line-height:20px; vertical-align:middle;}\
		.DateListBox a{float:left; font-family:Tahoma; color:#0055AA; border:solid #ffffff 1px; background-color:#ffffff; width:19px !important; width:21px; height:19px !important; height:20px; font-size:12px; line-height:20px; vertical-align:middle;}\
		.DateListBox a:hover{font-family:Tahoma;border:solid #7F9DB9 1px;background-color:#E7F1FD;}\
		.DateListBox .aSelect{cursor:pointer;font-family:Tahoma;border:solid #DEB4B4 1px;background-color:#FAE0CF;color:#FF0000;}\
		.PyzyDateBox{position:absolute; z-index:1; visibility:hidden; top:0; background-color:#FFFFFF; border:solid #C6D3DF 1px; height:170px !important; height:178px; width:298px !important; width:310px;}\
		.PyzyDateBox span{font-weight:bold;font-size:12px;font-family:Tahoma;}\
	</style>\
');

function GetMonthHTML(fctStaDate,fctDate){
	if(!fctDate)fctDate=new Date();
	var varYear=fctDate.getFullYear();
	var varMonth=fctDate.getMonth();
	var varNextMonth=new Date(varYear,varMonth+1,1);
	var varThisMonthButDay = new Date(varNextMonth-86400000);

	var varThisDate,varThisWeekDay,varThisMonthHTML="";
	varThisMonthHTML+="<h1>"+varYear+"년"+(varMonth+1)+"월</h1>"
	varThisMonthHTML+="<div>일</div><div>월</div><div>화</div><div>수</div><div>목</div><div>금</div><div>토</div>"
	for(var DayI=1;DayI<=varThisMonthButDay.getDate();DayI++){
		varThisDate=new Date(varYear,varMonth,DayI);
		varThisWeekDay=varThisDate.getDay();
		if(DayI==1){
			for(var spcI=0;spcI<varThisWeekDay;spcI++){
				varThisMonthHTML+="<a></a>"
			}
		}
		varThisMonthHTML+="<a "+((fctStaDate && fctStaDate!="")?(varThisDate<fctStaDate?"old":""):"")+" href=javascript:; onclick='SelectDate(this)' title='"+varYear+"-"+(varMonth+1)+"-"+DayI+"'>"+DayI+"</a>";
	}
	return '<div class="DateListBox">'+varThisMonthHTML+'</div>';
}

function SelectDate(fctAObj){
	if(fctAObj.href||fctAObj.className=="aSelect"){
		var varValueObj=$("divPyzyDateBox").Obj;
		var varValueToObj=GetValueToInputObj(varValueObj);
		if(varValueToObj)varValueObj=varValueToObj;
		if(varValueObj.value==fctAObj.title){
			varValueObj.value="";
		}else{
			varValueObj.value=fctAObj.title;
		}
		$("divPyzyDateBox").style.visibility="hidden";
		$("divPyzyDateBox").bodyclick="";
		GetPyzyIframe("ifmdivPyzyDateBox","hidden");
		AutoNextInputAct($("divPyzyDateBox").Obj,"click");
	}
}

function HiddenDateBox(){
	if($("divPyzyDateBox")){
		if($("divPyzyDateBox").style.visibility!="hidden" && $("divPyzyDateBox").bodyclick=="1"){
			$("divPyzyDateBox").style.visibility="hidden";
			$("divPyzyDateBox").bodyclick="";
			GetPyzyIframe("ifmdivPyzyDateBox","hidden");
		}else{
			$("divPyzyDateBox").bodyclick="1";
		}
	}
}

function ShowTwoMonthList(fctThisObj,fctJNum,fctStaDate){
	if(!fctJNum)fctJNum=0;
	if(!fctThisObj)fctThisObj="";
	var varStaDate=null,varTheDate=new Date();
	if(fctStaDate||fctStaDate==""){
		varStaDate=new Date(new Date()-86400000);
		var varStaDateSplit=fctStaDate.split("-");
		if(varStaDateSplit.length==3){
			varStaDate=new Date(varStaDateSplit[0],parseInt(varStaDateSplit[1],10)-1,varStaDateSplit[2]);
		}
		varTheDate=varStaDate;
		if(fctStaDate=="")fctStaDate=varStaDate.getFullYear()+"-"+(varStaDate.getMonth()+1)+"-"+varStaDate.getDate();
	}
	var varShowTwoMonthHTML="";
	for(var i=0+fctJNum;i<2+fctJNum;i++){
		varShowTwoMonthHTML+=GetMonthHTML((varStaDate?varStaDate:""),new Date(varTheDate.getFullYear(),varTheDate.getMonth()+i,1));
	}
	if(varStaDate)varShowTwoMonthHTML=varShowTwoMonthHTML.replace(/old href/g,"style=color:#999 old");
	if(fctThisObj.value!=""){
		if(/^((\d{4})|(\d{2}))-(\d{1,2})-(\d{1,2})$/g.test(fctThisObj.value))varShowTwoMonthHTML=varShowTwoMonthHTML.replace(fctThisObj.value,fctThisObj.value+"' class='aSelect");
	}
	var varDateBoxObj = c$("divPyzyDateBox","PyzyDateBox");
	varDateBoxObj.bodyclick="";
	if(fctThisObj!=""){
		var varThisObjPosition=getPosition(fctThisObj);
		varDateBoxObj.style.top=(varThisObjPosition.top+varThisObjPosition.height)+"px";
		varDateBoxObj.style.left=(varThisObjPosition.left-73)+"px";
		varDateBoxObj.style.visibility="visible";
		varDateBoxObj.Obj=fctThisObj;
	}
	varDateBoxObj.innerHTML=varShowTwoMonthHTML+'<div style="margin-top:'+(document.all?'-180':'-1')+'px; color:#0055AA; font-size:12px; font-weight:bold; line-height:24px; vertical-align:bottom;">&nbsp;<span style="padding:0px '+(document.all?'250':'232')+'px 0px 3px; cursor:pointer;" onclick="ShowTwoMonthList(null,'+(fctJNum-1)+(fctStaDate?',\''+fctStaDate+'\'':'')+')" title="이전"><--</span><span style="cursor:pointer;" onclick="ShowTwoMonthList(null,'+(fctJNum+1)+(fctStaDate?',\''+fctStaDate+'\'':'')+')" title="다음">--></span></div>';
	//GetPyzyIframe("ifmdivPyzyDateBox","visible",(varThisObjPosition.top+varThisObjPosition.height),varThisObjPosition.left,varDateBoxObj.offsetWidth,varDateBoxObj.offsetHeight); // 错误 by hanxj 覆盖select
}

//AddFunToObj(window,"onload","AddFunToObj(document,'onclick','_Hidden("+(document.all?"":"e")+");HiddenDateBox();');");
AddFunToObj(window,"onload","AddFunToObj(document,'onclick','_Hidden("+(document.all?"":"e")+");HiddenDateBox();');");
