var app;

var appLoaded = false;
var showContentPanelOnLoad = false;
var alreadyWarned = false;
var contentPanelVisible = false;
var overlayCacheMap = new Object();
var margin;
 
var minWidth = 1000;
 
function configureContentPanel(headerName, subHeaderElem) {
	//hasSubHeader = hasSubHeader_in;
	return;
	
	var headerImg = $("contentPanelHeaderImg");
	var container = $("contentPanelContainer");
	var subHeader = $("contentPanelSubHeader");
	var top;
	
	headerImg.src = "/sitorsquat/images/content_panel/headers/" + headerName + ".png"; 
	if (subHeaderElem != null) {
		top = getCurrentStyleNumeric(subHeader,"height") + getCurrentStyleNumeric(subHeader,"top");
		subHeader.innerHTML = subHeaderElem.innerHTML;
	} else {
		top = getCurrentStyleNumeric(subHeader,"top");
	}
	
	console.log("Setting top = " + top);
	container.style.top = top + "px";
	
	
	doLayout();
} 

function isContentPanelVisible() {
	return contentPanelVisible;
}

function showContentPanelFromFlash() {
	showContentPanel();
}

function showContentPanel() {
	if (appLoaded == false) {
		showContentPanelOnLoad = true;
		return;
	}
	hideIntro();
	if (!contentPanelVisible) 
		toggleContentPanel();
	return true;
}

function contentPanelGoto(url) {
	hideIntro();
	var contentPanelContainerFrame = $("contentPanelContainerFrame");
	contentPanelContainerFrame.src = url;
	
	if (!contentPanelVisible) 
		toggleContentPanel();
}

function hideIntro() {
	//$('introContainer').style.display = "none";	
}

function doLayout() {
	//var bottomTop = 0;
	var viewportHeight = getViewport()[1];
	//alert("Viewport height = " + viewportHeight);
	var bodyHeight;// = getPageSizeWithScroll()[1];
	bodyHeight = viewportHeight;
	
	if (bodyHeight < 400) {
		bodyHeight = 400;
	}
	
	var body = $('sorsBody');
	//var logo = $('header-logo_');
	var map = $('map');
	var mapContainer = $('mapContainer');
	var contentPanel = $('contentPanel');
	var contentPanelMoveBtn = $('contentPanelMoveBtn');
	var contentPanelContainer = $("contentPanelContainer");
	var contentPanelContainerFrame = $("contentPanelContainerFrame");
	console.log("New height = " + body.offsetHeight);
	var contentHeight = (bodyHeight - 62 - 31);
	console.log("Content Height: " + contentHeight);
	contentPanelMoveBtn.style.top = ((contentHeight /2) - (contentPanelMoveBtn.offsetHeight /2)) + "px";
	if (map == null) {
		return;
	}
	
	
	$("footer").style.position = "absolute";
	//var bodyHeight = contentHeight + 62;//(viewport[1] + viewport[2]);
	
	$("footer").style.top = (bodyHeight - 31) + "px";
		
	map.style.height = contentHeight + "px";
	mapContainer.style.height = contentHeight + "px";
	contentPanel.style.height = contentHeight + "px";
	
	$("footer").style.top = (bodyHeight - 31) + "px";
	
	var contentPanelContainerHeight;
	
	contentPanelContainerHeight = getCurrentStyleNumeric(contentPanelContainer,"top");
	contentPanelContainerHeight = contentHeight - contentPanelContainerHeight;
	contentPanelContainer.style.height = contentPanelContainerHeight + "px";
	contentPanelContainerFrame.style.height = contentPanelContainerHeight + "px";
	
	//alert(getCurrentStyleNumeric(map,"margin-left") + " offset left");
	//if (map.offsetWidth + getCurrentStyleNumeric(map,"margin-left") < minWidth)
	//	map.style.width = (minWidth - getCurrentStyleNumeric(map,"margin-left")) + "px";
	//else 
	//	map.style.width = "100%";
	
	
	//Determine widths
	var headerTable = $("headerArea");
	var footer = $("footer");
	
	var docWidth = document.body.clientWidth;
	var docHeight = document.body.clientHeight;
	if (docWidth <= minWidth) {
		mapContainer.style.width = minWidth + "px";
		headerTable.style.width = minWidth + "px";
		footer.style.width = minWidth + "px";
	} else { 
		mapContainer.style.width = "100%";
		headerTable.style.width = "100%";
		footer.style.width = "100%";
	}
	
	
	
		
	
	if (app != null && app.map != null)
		app.map.checkResize();
	
	/*	
	if (screen && alreadyWarned == false && (screen.width < 1024 || screen.height < 600)) {
		alreadyWarned = true;
		alert("Sit or Squat is best viewed in a resolution greater than 1024x600, sorry for any inconvience");
	}
	*/
	//fixFooter();
	
}

function toggleContentPanel() {
	var img = $("contentPanelMoveBtnImg");
	var btn = $("contentPanelMoveBtn");
	var panel = $("contentPanel");
	var map = $("map");
	var src = "/sitorsquat/images/content_panel/buttons/button_tab_";
	if (contentPanelVisible) {
		src += "in";
		var btnLeft = getCurrentStyleNumeric(btn,"left");
		btn.style.left = (btnLeft - margin) + "px";
		
		var mapMarginLeft = getCurrentStyleNumeric(map,"margin-left");
		map.style.marginLeft = (mapMarginLeft - margin) + "px";
		
		var panelMarginLeft =  getCurrentStyleNumeric(panel,"left");
		panel.style.left = (panelMarginLeft - margin) + "px";
	} else {
		var btnLeft = getCurrentStyleNumeric(btn,"left");
		btn.style.left = (btnLeft + margin) + "px";
		
		var mapMarginLeft = getCurrentStyleNumeric(map,"margin-left");
		map.style.marginLeft = (mapMarginLeft + margin) + "px";
		
		var panelMarginLeft =  getCurrentStyleNumeric(panel,"left");
		panel.style.left = (panelMarginLeft + margin) + "px";
		src += "out";
	}
	src += ".png";
	img.src = src;
	doLayout();
	if (app != null) {
		app.popupHide();
		app.map.checkResize();
		app.reloadToilets();
		app.moveMap((contentPanelVisible) ? (-1) * margin : margin);
	}
	contentPanelVisible = !contentPanelVisible;
}

function loadEmbedded(configId) {
	app = new SitOrSquatMapApp(loc, false);
	app.embedded = true;
	app.embeddedConfigId = configId;
	app.load();
	app.gotoLocation(loc, startZoomLevel);
   	app.reloadToilets();
   	updatePngs();
}


function load() {
	counterConfigure();
	var agent=navigator.userAgent.toLowerCase();
	var iphone = agent.indexOf('iphone') != -1;
   	
   	if (iphone) {
   		document.location.href = "/sitorsquat/home/iPhoneLanding";
   		return;
   	}
   	
   	console.log("Start Load");
   	//loginPopupHide();
   	//$('loginPopup').style.visibility = "visible";
   	
   	//Compute margin to use everywhere for content panel
   	margin = getCurrentStyleNumeric($('contentPanel'),"left");
   	margin = Math.abs(margin);
	console.log("Margin: " + margin);
   	
   	
   	//doLoginKeepAlive();
   	
   	
   	//Configure Rollovers
   	//configureNavRollovers();
   	
   	console.log("Init app");
   	
   	app = new SitOrSquatMapApp(currentLocation, false);
   	
   	console.log("calling load");
   	//hoodLoadCountries();
   	app.load();
   	
   	setPlaceHolder("headerFindField", "Enter address, city, country, intersection, etc");
   	$('headerFindField').value = "";
   	if (searchAddress != "") {
   		document.getElementById("headerFindField").value = searchAddress;
   		app.setLocation();
   	} else if (!currentLocation.isDefault) {
   		Cookie.set("currentAddress", currentLocation.address);
   		document.getElementById("headerFindField").value = currentLocation.address;
   	}
   	
   	showPlaceHolder("headerFindField");
   	
   	
   	console.log("Checking goto group id");
   	
	
	if (gotoToiletGroupId != "") {	
		contentPanelGoto("/sitorsquat/toilet/details?groupId=" + gotoToiletGroupId);
	}
	else if (contentPanelPage != null && contentPanelPage != "") {
		
		if (!contentPanelVisible) 
			toggleContentPanel();
	} else {
		toggleContentPanel();
	}
	
	
	doLayout();
   	window.onresize = doLayout;
   	
   	updatePngs();
   	app.gotoCurrentLocation();
   	console.log("Reloading toilets");
	app.reloadToilets();
   	
   	//setContentLoading(false);
	
	/*
	appLoaded = true;
	if (showContentPanelOnLoad) {
		hideIntro();
		toggleContentPanel();
	}
   	*/
	/*
	<g:if test="${toiletGroupId != null && toiletGroupId.length() > 0}">
   		//showPopup('/sitorsquat/toilet/details?groupId=' + ${toiletGroupId},'toiletdetails');
   	</g:if>
   	*/
   }
   
   