function resize(){
	var wh=getWindowHeight();
	var ww=getWindowWidth();
	var ch=parseInt(wh - 25) + "px";
	var h,mh,sih;
	el("contents").style.height=ch;
	mh = parseInt(ch);
	sih = 0;
	if(g_storeInfo==1){
		sih = 80;
		mh = parseInt(ch) - sih;
		el("storeinfo").style.display="";
	}
	if(g_streetVisible){
		h = parseInt(mh / 2) - 2;
		el("cr_street").style.top = sih+'px';
		el("cr_map").style.top = (sih+(h + 2))+"px";
		el("cr_map").style.height = (mh - h - 2)+"px";
		if(g_streetFullSize){
			el("cr_street").style.height = mh;
		}else{
			el("cr_street").style.height = h+"px";
			el("cr_horzsplit").style.top = (sih+h)+"px";
		}
	}else{
		el("cr_map").style.top = sih + "px";
		el("cr_map").style.height = mh+"px";
		el("cr_street").style.height="0px";
	}
	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;
	}
}
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", "host="+encodeURIComponent("../"));
		else el("cr_street").innerHTML = '';

		el("cr_street").style.display=g_streetVisible?"":"none";
		el("cr_horzsplit").style.display=g_streetVisible?"":"none";
		
		if (g_streetVisible == false) {
			document.map.setCurrentStreet(-1);
			g_street = 0;
		}
	}
}
function setStreetFullSize(full){
	if(g_streetFullSize!=full){
		g_streetFullSize=full;
		el("cr_horzsplit").style.display=g_streetFullSize?"none":"";
		resize();
	}
}
function mapOnReady(){
	g_mapReady = true;
	return g_mapArea;
}
function mapOnLoaded(area){
	g_mapArea=area;
	g_mapVisible = true;
	// 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);
		}
	}
	writelog2(g_mapArea,0,0);
}
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, 8, 34);
}
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);
		return result;
	}
	return 0;
}
function streetOnLoaded(street){
	if(document.map)
		document.map.setCurrentStreet(street);

	g_street = street;
	writelog2(0,street,0);
	pageTracker._trackPageview("/share/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));
	// 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 streetOnStoreClick(store){
	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]+"')", 8, 34);
					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=800",false);
	wnd.focus();
}
function streetOnScroll(street, bld, width, pt1, pt2, offset){
	if(street > 0 && document.map){
		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);
			}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);
			}
        }
    }else if(request.readyState >= 1 && request.readyState < 4){
	}
}
/*
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]));
			}else if(parseInt(info[5]) != -1){
				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]+"')", 8, 34);
				}
			}
        }
    }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.removeOverlay("store");
	document.map.addMarker("store", mx, my, caption, link, 12, 37);
	setTimeout("document.map.panTo("+mx+","+my+")",300);			
}

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 streetWheel(event){
	var delta = 0;
	if (!event) /* For IE. */
	        event = window.event;
	if (event.wheelDelta) { /* IE/Opera. */
	        delta = event.wheelDelta/120;
	        if (window.opera)
	                delta = -delta;
	} else if (event.detail) { /** Mozilla case. */
	        delta = -event.detail/3;
	}
	if (delta)
	        handleWheel(delta, event.ctrlKey);
	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);
}
