	var map;
	var zoom_level = 2;
	var lat_start = -90;
	var lng_start = -180;
	var lat_end = 90;
	var lng_end = 180;
	var currentWidth = 0;


  function initialize() {
    updateLayout();
	loadTopTen();
	loadRecent();
//	loadCounter();
    if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map_canvas"));
        map.setCenter(new GLatLng(0, -30), 2);
		map.addControl(new GHierarchicalMapTypeControl());
		map.addControl(new GLargeMapControl());
		map.setMapType(G_SATELLITE_MAP);
		loadKissMap();
       	GEvent.addListener(map, "moveend", handleMoveEnd);
    }
  }

	<!-- hide urlbar on iphone safari -->
	function updateLayout() {
		if (window.innerWidth != currentWidth) {
			currentWidth = window.innerWidth;
			var orient = currentWidth == 320 ? "profile" : "landscape";
			document.body.setAttribute("orient", orient);
			setTimeout(function() {window.scrollTo(0, 1);}, 100);
		}
	}

  function handleMoveEnd() {
	zoom_level = map.getZoom();
	loadKissMap();
  }
  
    function loadKissMap() {
        GDownloadUrl("/xml", processKisses);
    }
 
    function processKisses(data, responseCode) {
        //alert(data);
		if (responseCode == 200) {
 		   map.clearOverlays();
		   var xml = GXml.parse(data);
		   var points = xml.documentElement.getElementsByTagName("p");
		   bounds = map.getBounds();
		   for ( var i=0; i < points.length; i++) {
		     point = new GLatLng(parseFloat(points[i].getAttribute("x")), parseFloat(points[i].getAttribute("y")));
		     if (bounds.contains(point)) {
	          	 map.addOverlay(createMarker(point));
		     }
	       }
	    } else {
			    alert("Unable to retrieve marker data");
	    }
    }
    
    function createMarker(point) {
        //var fireIcon = new GIcon(G_DEFAULT_ICON);
	var kiss = new GIcon();

	if (zoom_level < 6) {
            kiss.image = "images/kiss14x11.png";
            kiss.iconSize = new GSize(14,11);
            kiss.iconAnchor = new GPoint(0,0);
        } else if (zoom_level < 8) {
            kiss.image = "images/kiss19x15.png";
            kiss.iconSize = new GSize(19,15);
            kiss.iconAnchor = new GPoint(0, 0);
        } else {
            kiss.image = "images/kiss27x22.png";
            kiss.iconSize = new GSize(27,22);
            kiss.iconAnchor = new GPoint(0, 0);
        }
        markerOptions = {icon:kiss, clickable:false};
        return new GMarker(point, markerOptions);
    }
	
	function loadTopTen() {
		GDownloadUrl("/top?type=country", processTopTenCountries);
		GDownloadUrl("/top?type=device", processTopTenDevices);
	}
	
	function processTopTenCountries(data, responseCode) {
		if (responseCode == 200) {
			document.getElementById("TopCountries").innerHTML = '<table class="TopTenTable">'+data+'</table>';
	    } else {
			    alert("Unable to retrieve top ten countries");
	    }
    }

	function processTopTenDevices(data, responseCode) {
		if (responseCode == 200) {
			document.getElementById("TopDevices").innerHTML = '<table class="TopTenTable">'+data+'</table>';
	    } else {
			    alert("Unable to retrieve top ten devices");
	    }
    }
	
	function loadRecent() {
		GDownloadUrl("/top?type=recent&num=1", processRecent);
	}
	
	function processRecent(data, responseCode) {
		if (responseCode == 200) {
			document.getElementById("Recent").innerHTML = '<table class="RecentTable" border="0">'+ data +'</table>';
		}
		else {
			alert("Unable to retrieve recent");
		}
	}

	function loadCounter() {
		GDownloadUrl("/counter", processCounter);
	}
	
	function processCounter(data, responseCode) {
		if (responseCode == 200) {
			document.getElementById("Counter").innerHTML = data;
	    } else {
			    alert("Unable to retrieve top ten");
	    }
    }
	
	function showDiv(name) {
		hideAllDivs();
		document.getElementById(name).style.visibility = 'visible';
		document.getElementById(name).style.height = '100%';
		document.getElementById(name).style.position = 'relative';
		window.location.hash="TitleDiv"; 
	}
	function hideDiv(name) {
		document.getElementById(name).style.visibility = 'hidden';
		document.getElementById(name).style.position = 'absolute';
	}
	function hideAllDivs() {
		hideDiv("Map");
		hideDiv("AboutUs");
		hideDiv("ContactUs");
		hideDiv("Support");
		hideDiv("Copyright");
		hideDiv("PrivacyPolicy");
	}
	function selectButton(name) {
		unselectAllButtons();
		document.getElementById(name).setAttribute("class", "SelectedMenuItem");
		document.getElementById(name).className = 'SelectedMenuItem';
	}
	function unselectButton(name) {
		document.getElementById(name).setAttribute("class", "UnselectedMenuItem");
		document.getElementById(name).className = 'UnselectedMenuItem';
	}
	function unselectAllButtons() {
		unselectButton("MapButton");
		unselectButton("AboutButton");
		unselectButton("ContactButton");
		unselectButton("SupportButton");
	}
	function goMap() {
		showDiv("Map");
		selectButton("MapButton");
	}
	function goAbout() {
		showDiv("AboutUs");
		selectButton("AboutButton");
	}
	function goContact() {
		showDiv("ContactUs");
		selectButton("ContactButton");
	}
	function goSupport() {
		showDiv("Support");
		selectButton("SupportButton");
	}
	function goCopyright() {
		showDiv("Copyright");
		unselectAllButtons();
	}
	function goPrivacyPolicy() {
		showDiv("PrivacyPolicy");
		unselectAllButtons();
	}
	function sendMessage() {
		alert(document.getElementById("message").value);
		document.getElementById("hiddenStuff").src='/contactUs?message='+document.getElementById("message").value; 
     	alert('Thank you for your input.'); 
		document.getElementById("message").value = '';
	}
