function resize(){
	var wh=getWindowHeight();
	var ww=getWindowWidth();
	var ch=parseInt(wh - 48 - 24) + "px";
	var h;

	el("contents").style.height=ch;
	if(g_leftVisible){ el("c_left").style.height=ch; }
	el("bottom").style.top=(wh-24)+"px";

	el("c_right").style.width = (ww - (g_leftVisible&&!g_streetFullSize?261:0))+"px";
	el("c_right").style.left = g_leftVisible&&!g_streetFullSize?"261px":"0px";
	el("c_right").style.height=ch;
	if(g_streetVisible){
		h = parseInt(parseInt(ch) / 2) - 2;
		el("cr_map").style.top = (h + 2)+"px";
		el("cr_map").style.height = (parseInt(ch) - h - 2)+"px";
		if(g_streetFullSize){
			el("cr_street").style.height = ch;
		}else{
			el("cr_street").style.height = h+"px";
			el("cr_horzsplit").style.top = h+"px";
		}
	}else{
		el("cr_map").style.top = "0px";
		el("cr_map").style.height = ch;
		el("cr_street").style.height="0px";
	}

	el("cl_contents").style.height = (parseInt(ch) - 62)+"px";

	if(IE6){
		if(document.street)
			document.street.style.height = el("cr_street").style.height;
		if(document.map)
			document.map.style.height = el("cr_map").style.height;
	}
	if(g_popupVisible) updatePopupPos();
}
function popupLoaded(){
}
function popupPageLoaded(width, height){
	if(width == undefined || !width) width = 0;
	if(height == undefined || !height) height = 0;
	var ww=getWindowWidth();
	var wh=getWindowHeight();
	var p=el("popup");
	var pc=el("p_contents")
	
	if(width > 0)
		pc.style.width = width + "px";
	else
		pc.style.width=(pc.contentWindow.document.body.scrollWidth)+"px";
	if(height > 0)
		pc.style.height = height + "px";
	else
		pc.style.height=(pc.contentWindow.document.body.scrollHeight)+"px"

	p.style.width = (parseInt(pc.style.width)+31) + "px";
	p.style.height = (parseInt(pc.style.height)+50) + "px";
	p.style.left=((ww - (parseInt(pc.style.width)+31))/2) +"px";
	p.style.top=((wh - (parseInt(pc.style.height)+50))/2) +"px";
}
function setStreetVisible(show){
	if(g_streetVisible != show){
		g_streetVisible = show;
		if(!show) g_streetFullSize=false;
		resize();
		if(g_streetVisible) AC_FL_RunContent2("cr_street", "street", "street");
		else el("cr_street").innerHTML = '';

		el("cr_street").style.display=g_streetVisible?"":"none";
		el("cr_horzsplit").style.display=g_streetVisible?"":"none";
		// closed when fullsize
		el("c_left").style.display=g_leftVisible?"":"none";
		
		if(g_streetVisible == false)
			document.map.setCurrentStreet(-1);
	}
}
function setLeftVisible(show){
	if(g_leftVisible != show){
		g_leftVisible = show;
		resize();
		el("c_left").style.display=g_leftVisible?"":"none";
		el("c_btnshowleft").style.display=g_leftVisible?"none":"";
	}
}
function setStreetFullSize(full){
	if(g_streetFullSize!=full){
		g_streetFullSize=full;
		el("cr_horzsplit").style.display=g_streetFullSize?"none":"";
		el("c_left").style.display=!g_streetFullSize&&g_leftVisible?"":"none";
		el("c_btnshowleft").style.display=!g_streetFullSize&&!g_leftVisible?"":"none";
		resize();
	}
}
function showPopup(title, width, height, url){
	hideFloats();
	
	var ww=getWindowWidth();
	var wh=getWindowHeight();
	var p=el("popup");
	var pc=el("p_contents");
	el("ptitle").innerHTML = title;
	pc.src=url;
	pc.style.width=width+"px";
	pc.style.height=height+"px";
	p.style.left=((ww - (width+31))/2) +"px";
	p.style.top=((wh - (height+50))/2) +"px";

	if(g_popupVisible == false)
	{
		el("film").style.width=ww+"px";
		el("film").style.height=wh+"px";
		el("film").style.display="";
	}
	p.style.display="";	
	
	g_popupVisible=true;
}
function hidePopup(){
	el("popup").style.display="none";
	el("film").style.display="none";
	el("p_contents").src="";
	
	g_popupVisible=false;
}
function updatePopupPos(){
	var ww=getWindowWidth();
	var wh=getWindowHeight();
	el("film").style.width=ww+"px";
	el("film").style.height=wh+"px";
	var w=parseInt(el("p_contents").style.width);
	var h=parseInt(el("p_contents").style.height);
	el("popup").style.left=((ww - (w+31))/2) +"px";
	el("popup").style.top=((wh - (h+50))/2) +"px";
}
function textInputFocus(o,f){	
	o.className=f?"tinputFocused":"tinput";
}
function showAreaList(){
	if(el("selarea").style.display=="none"){
		if (!g_areaListLoaded) {
			var dummy = new Date;
			request = GetRequestObject();
			request.onreadystatechange = handleAreaList;
			request.open("GET", "./services/get_areas.php?dummy=" + (dummy.getTime()), true);
			//	request.setRequestHeader("Content-Type", "text/html");
			request.send(null);
			
			el("arealist1").innerHTML = "로딩중...";
			el("selarea").style.display = "";
			g_areaListLoaded = true;
		}else
			el("selarea").style.display = "";
		
	}else{
		el("selarea").style.display="none";
	}
}
function hideAreaList(){
	el("selarea").style.display="none";
}
function handleAreaList(){
    if(request.readyState == 4){
        if(request.status == 200){
			var html1 = "";
			var html2 = "";
			var xml=request.responseXML;
			var root=xml.getElementsByTagName("areas");
			var nodes = root[0].getElementsByTagName("area");
			var id,name,city;
			var row=parseInt(nodes.length / 2) + ((nodes.length % 2 == 0) ? 0 : 1);
			for(i=0; i < nodes.length; i++){
				id = nodes[i].getAttribute('id');
				city = nodes[i].getAttribute('city');
				name = nodes[i].childNodes[0].nodeValue;
				if(i < row)
					html1 += "<div class=\"item\" onmouseover=\"areaItem(this,true)\" onmouseout=\"areaItem(this,false)\" onclick=\"showMap("+id+")\">"+city+" &gt; "+name+"</div>";
				else
					html2 += "<div class=\"item\" onmouseover=\"areaItem(this,true)\" onmouseout=\"areaItem(this,false)\" onclick=\"showMap("+id+")\">"+city+" &gt; "+name+"</div>";
			}
			el("arealist1").innerHTML = html1;
			el("arealist2").innerHTML = html2;
			el("selarea").style.display="";
        }
    }else if(request.readyState >= 1 && request.readyState < 4){
	}
}
function areaItem(obj,hot){
	obj.className=hot?"hotitem":"item";
}
function topMouseDown(evt){
//	hideAreaList();
}
function setLeftBest10(){
	el("cl_contents").src = "left_best10.php";		
}
function setLeftArea(area){
	if(!area || area == 'undefined')
		el("cl_contents").src = "left_area.php?area="+g_mapArea;
	else
		el("cl_contents").src = "left_area.php?area="+area;	
}
function mapOnReady(){
	g_mapReady = true;
	return g_mapArea;
}
function mapOnLoaded(area){
	g_mapArea=area;
	g_mapVisible = true;
	/*if(g_infoViewed == false && g_noInfo == 0)
		toggleInfoPane(true);		
	else */
	if(el("cl_contents").src.indexOf("left_search") == -1 && el("cl_contents").src.indexOf("left_best") == -1)
		setLeftArea(g_mapArea);

	var html = "<img src=\"images/area_titles/"+g_mapArea+".gif\" alt=\"지역이름\" title=\"지역 선택\" />&nbsp;<img src=\"images/adropdown.gif\" alt=\"지역이름\" title=\"지역선택\" />";
	el("t_areatitle").innerHTML=html;

	// theme locations
	var theme = el("t_theme");
	if(theme) el("top").removeChild(theme);
	g_mapDotsVisible = false;
	switch(g_mapArea){		
		case 4:	el("top").innerHTML += "<div id=\"t_theme\" onclick=\"toggleLocationDots(4)\">공연장/극장 보기</div>";break;
		case 13: el("top").innerHTML += "<div id=\"t_theme\" onclick=\"toggleLocationDots(13)\">클럽 보기</div>";break; 
	}

	// apps
	if (area == 6) // Gangnam
		el("top").innerHTML += "<div id=\"t_apps\"><a href=\"iphoneapps.html\" target=\"_blank\"><img src=\"images/apps.gif\" alt=\"Apps\" title=\"아이폰/아이팟용 다운받으러 가기\" /></a></div>";
	else {
		var apps = el("t_apps");
		if(apps) el("top").removeChild(apps);
	}

	hideFloats();

	// show initial street or overlay
	if (g_first) {
		g_first = false;
		if (g_initOverlay > 0) {
			showStore(g_mapArea, g_initOverlay);
		} else if (g_street > 0) {
			showStreet(g_street, g_streetPos, 0);
		}
	}

	setCookie("lastarea", area, 30);
	writelog2(g_mapArea,0,0);
	pageTracker._trackPageview("/map_"+area);
}
function mapOnStreetClick(street, x, y){	
	if(street == 0) return;
	
	request = GetRequestObject();
	request.onreadystatechange = handleStreetPhotoPos;
	request.open("GET", "./services/get_photopos.php?street="+street+"&x="+x+"&y="+y, true);
	request.setRequestHeader("Content-Type", "text/html");
	request.send(null);
}
function mapOnBuilding(x, y){
	var wnd = window.open("building_near.php?area="+g_mapArea+"&x="+x+"&y="+y, "bldnear","resizable=1,scrollbars=1,toolbar=0,height=650,width=800",false);
	wnd.focus();
}
function mapAddMarker(x,y,caption,url){
	document.map.removeOverlay("building");
	document.map.addMarker("building", x, y,caption, url, 12, 37);
}
function handleStreetPhotoPos(){
    if(request.readyState == 4){
        if(request.status == 200){
			var res = request.responseText.split("=");
			showStreet(parseInt(res[0]), parseInt(res[1]));
        }
    }else if(request.readyState >= 1 && request.readyState < 4){
	}
}
function streetOnReady(){
	if(g_street != 0){
		var result = new Array(g_street, g_streetPos, g_streetOverlay, g_streetOverlayType);
		g_street = -1;
		return result;
	}
	return 0;
}
function streetOnLoaded(street){
	if(document.map)
		document.map.setCurrentStreet(street);

	g_street = street;
	writelog2(0,street,0);
	pageTracker._trackPageview("/street_"+street);
}
function streetOnRestoreClick(){
	setStreetFullSize(false);
	return g_streetFullSize;
}
function streetOnMaximizeClick(){
	setStreetFullSize(true);
	return g_streetFullSize;
}
function streetOnCloseClick(){
	setStreetVisible(false);
}
function streetOnCustomOverlayClick(street, linktext, tag){
	if(linktext.length == 0)
		return;

	// just text, show alert
	if(linktext.indexOf("text:") != -1)
	{
		var im = new Image();
		im.src = "../events/log.php?id="+tag+"&from=street"+street+"&page=ggwang";
		im.onload = function(){return;};
		
		alert(linktext.substr(5));
		//eval(linktext.substr(5));
		
	// open link
	}else if(linktext.indexOf("openwindow:") != -1)
	{
		var h, w;
		var s = linktext.substr(11).split(",");
		w = 600;
		h = 650;
		if (s.length == 3) {			
			w = parseInt(s[0]);
			h = parseInt(s[1]);
			linktext = s[2];
		}else
			linktext = s[0];
			
		if (linktext.indexOf("?") == -1) 
			linktext += "?from=street" + street;
		else 
			linktext += "&from=street" + street;
			
		linktext += "&id=" + tag;
		var wnd = window.open(linktext, "eventpopup", "resizable=1,scrollbars=1,toolbar=0,height="+h+",width="+w, false);
		wnd.focus();
	}
}
function setUserNickName(newNick){
	if(!newNick) return;
	var n = el("nickname");
	if(n) n.innerHTML = newNick;
}
function streetOnStoreClick(store){
	//var wnd = window.open("store.html?id="+store, "store"+store,"resizable=1,scrollbars=1,toolbar=0,height=650,width=800",false);
	var wnd = window.open("store/"+store, "store"+store,"resizable=1,scrollbars=1,toolbar=0,height=650,width=840",false);
	wnd.focus();
}
function streetOnStoreOver(store){
	g_storeOver = store;
	request = GetRequestObject();
	request.onreadystatechange = handleStoreOver;
	request.open("GET", "./services/get_storepos.php?id="+store, true);
//	request.setRequestHeader("Content-Type", "text/html");
	request.send(null);
}
function handleStoreOver(){
    if(request.readyState == 4){
        if(request.status == 200){
			var res = request.responseText.split(';'); // id;storename;x;y
			if(res[2] != '0' && res[3] != '0'){
				if(g_storeOver == res[0])
					document.map.addMarker("store", parseInt(res[2]), parseInt(res[3]), res[1], "javascript:streetOnStoreClick('"+res[0]+"')", 12, 37);
					if(document.map.isInCurrentMap(parseInt(res[2]), parseInt(res[3])) == false)
						document.map.panTo(parseInt(res[2]), parseInt(res[3]));
			}
		}
	}
}
function streetOnStoreOut(store){
	g_storeOver = -1;
	if(document.map)
		document.map.removeOverlay("store");
}
function streetOnBldClick(bld){
	var wnd = window.open("building.html?id="+bld, "bld"+bld,"resizable=1,scrollbars=1,toolbar=0,height=650,width=840",false);
	wnd.focus();
}
function streetOnScroll(street, bld, width, pt1, pt2, offset){
	if(street > 0 && document.map){
		hideFloats();
		document.map.setViewerPos(street, bld, width, pt1, pt2, offset);
	}
}
function showStore(area,store){
	if(area != g_mapArea)
		showMap(area);

	if(g_mapReady)
		document.map.clearOverlays();
	
	if(g_initOverlay > 0) g_initOverlay = -1;
	
	request = GetRequestObject();
	request.onreadystatechange = handleShowStore;
	request.open("GET", "./services/get_storeinfo.php?id="+store, true);
//	request.setRequestHeader("Content-Type", "text/html");
	request.send(null);
}
function handleShowStore(){
    if(request.readyState == 4){
        if(request.status == 200){
			var info = request.responseText.split(";"); // 0:store;1:street,2:overlayid,3:ox,4:oy,5:mapx,6:mapy,7:storename, 8:overlaytype
			
			if(parseInt(info[2]) != -1){
				showStreet(parseInt(info[1]), 0, parseInt(info[2]), parseInt(info[8]));
				if (g_mapReady)
					showStoreMapMarker(parseInt(info[5]), parseInt(info[6]), info[7], "javascript:streetOnStoreClick('" + info[0] + "')", true);
				else 
					setTimeout('showStoreMapMarker(' + parseInt(info[5]) + ',' + parseInt(info[6]) + ',"' + info[7] + '", "javascript:streetOnStoreClick(\'' + info[0] + '\')",true);', 200);
				/*
				if(document.map && parseInt(info[5]) > 0 && parseInt(info[6]) > 0){
					document.map.panTo(parseInt(info[5]), parseInt(info[6]));
					document.map.removeOverlay("store");
					document.map.addMarker("store", parseInt(info[5]), parseInt(info[6]), info[7], "javascript:streetOnStoreClick('"+info[0]+"')", 12, 37);
				}
				*/
			}else if(parseInt(info[5]) != -1){
				if (g_mapReady) 
					showStoreMapMarker(parseInt(info[5]), parseInt(info[6]), info[7], "javascript:streetOnStoreClick('" + info[0] + "')", false);
				else
					setTimeout('showStoreMapMarker(' + parseInt(info[5]) + ',' + parseInt(info[6]) + ',"' + info[7] + '","javascript:streetOnStoreClick(\'' + info[0] + '\')",false);', 200);
				/*
				if(document.map){
					setStreetVisible(false);
					document.map.panTo(parseInt(info[5]), parseInt(info[6]));
					document.map.removeOverlay("store");
					document.map.addMarker("store", parseInt(info[5]), parseInt(info[6]), info[7], "javascript:streetOnStoreClick('"+info[0]+"')", 12, 37);
				}
				*/
			}
        }
    }else if(request.readyState >= 1 && request.readyState < 4){
	}
}
function showStoreMapMarker(mx,my,caption,link,streetVisible){
	if(!document.map) return;
	if(streetVisible == false)
		setStreetVisible(false);
	document.map.panTo(mx, my);
	document.map.removeOverlay("store");
	document.map.addMarker("store", mx, my, caption, link, 12, 37);	
}
function showSpot(area,x,y,name){
	if(!g_mapReady)
		return;
		
	if(document.map){
		setStreetVisible(false);

		if(area != g_mapArea)
			showMap(area, x, y);
		else{
			document.map.clearOverlays();
			document.map.panTo(x, y);
		}
		name = name.replace(' 지도', '');
		document.map.addMarker("spot", x, y, name, "", 12, 37);
	}
}
function searchKeyDown(evt){
	var keyCode = evt ? evt.keyCode : event.keyCode;
	if(keyCode == 13){
		searchStore();
		return 0;
	}
}
function enableSearchButton(){
	g_searching = false;
}
function searchStore(){
	if(g_searching == true)
		return;
	g_searching = true;

	var a = g_mapArea;
	var q=el("squery").value;
	if(q.length == 0) return;
	if(el("searchall").checked)
		a = 0;

	el("cl_contents").src = "left_search.php?q="+encodeURIComponent(q)+"&a="+a;
	el("clearsearch").style.display="";
	
	setTimeout("enableSearchButton()", 600);
}
function clearSearch(){
	el("clearsearch").style.display="none";
	el("squery").value="";
	if(g_mapArea != 0)
		el("cl_contents").src = "left_area.php?area="+g_mapArea;
}
function contentsMouseDown(evt){
	hideFloats();
}
function setMapCurrStreet(street){
	map.setCurrentStreet(street);
}
function showStreet(street, pos, overlay, oltype){
	if(!street) return;
	if(g_streetVisible == true){
		document.street.showStreet(street, pos, overlay, oltype);
	}else{
		g_street = parseInt(street);
		g_streetPos = parseInt(pos);
		g_streetOverlay = parseInt(overlay);
		g_streetOverlayType = parseInt(oltype);
		setStreetVisible(true);
	}
}
function showMap(area,x,y,level){
	if(!area) return;
	hideFloats();
	setStreetVisible(false);
	if(g_mapVisible == true){
		if(!level || level == 'undefined')
			level = -1;
		if(!x || x == 'undefined') x = -1;
		if(!y || y == 'undefined') y = -1;
		if(y == -1 || x == -1){
			x = -1;
			y = -1;
		}
		document.map.setArea(area, x, y, level);
	}else{
		g_mapArea=area;
		g_mapPos.x = x;
		g_mapPos.y = y;
	}
}
function getCurrParams(){
	if(!g_mapArea) return;
	var params = "area="+g_mapArea;
	if(document.map){
		var mpos = document.map.getCenter();
		var mlevel = document.map.getZoomLevel();
		params += "&mx="+parseInt(mpos.x)+"&my="+parseInt(mpos.y)+"&ml="+mlevel;
	}
	if(document.street && g_street>0){
		var spos = document.street.getPos();
		params += "&s="+g_street+"&sx="+parseInt(spos.x);
	}
	return params;	
}
function getCurrURL(){
	if(!g_mapArea) return;
	return "http://"+location.host+"/?"+getCurrParams();
}
function showCurrURL(){
	var p = el("p_url");
	
	if(p.style.display == "none"){
		p.style.left = (getWindowWidth() - 402) + "px";
		p.style.display = "";
		el("pu_urltext").value = getCurrURL();
		el("pu_urltext").select();
		el("pu_urltext").focus();
	}else
		hideCurrURL();
}
function hideCurrURL(){
	el("p_url").style.display="none";
}
function hideFloats(){
	hideAreaList();
	hideCurrURL();
}
function reloadPage(){
	location.replace(getCurrURL());
}
function streetWheel(event){
	var delta = 0;
	if (!event) /* For IE. */
	        event = window.event;
	if (event.wheelDelta) { /* IE/Opera. */
	        delta = event.wheelDelta/120;
	        /** In Opera 9, delta differs in sign as compared to IE. */
	        if (window.opera)
	                delta = -delta;
	} else if (event.detail) { /** Mozilla case. */
	        /** In Mozilla, sign of delta is different than in IE.
	         * Also, delta is multiple of 3.*/
	        delta = -event.detail/3;
	}
	/** If delta is nonzero, handle it.
	 * Basically, delta is now positive if wheel was scrolled up,
	 * and negative, if wheel was scrolled down. */
	if (delta)
	        handleWheel(delta, event.ctrlKey);
			
	/** Prevent default actions caused by mouse wheel.
	 * That might be ugly, but we handle scrolls somehow
	 * anyway, so don't bother here..*/
	if (event.preventDefault)
	        event.preventDefault();
	event.returnValue = false;	
}
function handleWheel(delta, ctrl) {
	if(ctrl){ // zoom
		if(delta > 0)
			document.street.setZoom(document.street.getZoom() + 0.1);
		else
			document.street.setZoom(document.street.getZoom() - 0.1);			
	}else // scroll
		document.street.mouseWheel(delta);
}
function toggleLocationDots(area){
	if (g_mapDotsVisible) {
		el("t_theme").innerHTML = el("t_theme").innerHTML.replace("감추기", "보기"); 
		hideLocationDots();		
	}else {
		el("t_theme").innerHTML = el("t_theme").innerHTML.replace("보기", "감추기"); 
		displayLocationDots(area);
	}
}
function displayLocationDots(area)
{
	$.ajax({
	type:"GET",
	url:"services/get_themelocations.php?area="+area,
	success:function(text){
		var item;
		var list = text.split("\n");
		g_mapDotsVisible = true;
		document.map.clearLocationDot();
		for(var i=0; i < list.length; i++){
			var item = list[i].split("\t");
			if(item.length < 4) continue;
			document.map.addLocationDot(item[2], item[3], "orange", item[1], "../store/"+item[0]);	
		}		
	}	
	});
}
function hideLocationDots(){
	if(document.map)
		document.map.clearLocationDot();
	g_mapDotsVisible = false;
}
function mapOnLocationDotClick(url)
{
	var wnd = window.open(url, "store","resizable=1,scrollbars=1,toolbar=0,height=650,width=840",false);
	wnd.focus();
}
