function updateOrientation()
{
	if (window.orientation === undefined) // browser switch for js
		return false;
	
	if (screen.width > 480)
		return false;
	
	if (!document.body.onorientationchange)
		document.body.onorientationchange = updateOrientation; // addeventlistener doesn't work here
	
    switch(window.orientation)
    {
        case 0:
        case 180:
			if (document.getElementById('wrapall'))
				document.getElementById('wrapall').style.width = "320px";
			document.getElementById('header').style.setProperty("-webkit-background-size", "320px 66px");
			document.getElementById('header').style.setProperty("height", "66px");
        	break;
        case -90:
        case 90:
		default:
			if (document.getElementById('wrapall'))
				document.getElementById('wrapall').style.width = "480px";
			document.getElementById('header').style.setProperty("-webkit-background-size", "480px 99px");
			document.getElementById('header').style.setProperty("height", "99px");
			break;
    }

	// no autoscroll for now
		//   	if (isNavHome)
		// setTimeout(function(){window.scrollTo(0, 1);}, 100);

	return true;
}

function navClickSlide(event) {
	event.preventDefault();
	
	var hr = event.target.href;
	
	if (document.getElementById("transitionwrap")) {
		document.getElementById("transitionwrap").addEventListener( 'webkitTransitionEnd', 
			function( event ) {
				window.location.href = hr; 
			}, false );

		document.getElementById("transitionwrap").style.right = "100%";
	}
}

function backClickSlide(event) {
	event.preventDefault();
	var hr = event.target.href;

	document.getElementById("wrapall").addEventListener( 'webkitTransitionEnd', 
			function( event ) {
				window.location.href = hr; 
			}, false );

	// set animation properties programmatically
	document.getElementById("navheader").style.setProperty("-webkit-transition-duration", "0.35s");
	document.getElementById("navheader").style.setProperty("-webkit-transition-property", "left");
	document.getElementById("wrapall").style.setProperty("-webkit-transition-duration", "0.35s");
	document.getElementById("wrapall").style.setProperty("-webkit-transition-property", "left");
	document.getElementById("navheader").style.left = "100%";
	document.getElementById("wrapall").style.left = "100%";
}

function loadHandler() {
	// if (window.orientation === undefined) // browser switch for js
	// 	return false;

	isNavHome = document.getElementById("normal").getAttribute("class") === 'navigationhome';
	updateOrientation();
	// no autoscroll for now
	// setTimeout(function(){window.scrollTo(0, 1);}, 100);
	
	if (isNavHome && document.getElementById("navlist")) {
		var cn = document.getElementById("navlist").childNodes;
		for (var i = 0; i < cn.length; i++) {
			if (cn[i].nodeName == "LI") {
				// assign onclick handler
				cn[i].firstChild.addEventListener("click", navClickSlide, false);
			}
		}
	}
	
	if (!isNavHome && document.getElementById("backButton")) {
		document.getElementById("backButton").addEventListener("click", backClickSlide, false);
	}
	
	// only do this on the contact page identified by the gmaplink div
	if (document.getElementById("gmaplink") && navigator.geolocation) {
		document.getElementById("gmaplink").addEventListener("click", function(event) {
			event.preventDefault();
			navigator.geolocation.getCurrentPosition(function(position) {
				var latitude = position.coords.latitude;
				var longitude = position.coords.longitude;
				if (document.getElementById("youraddress"))
					outputLocation(latitude + "," + longitude, "youraddress", function() { 
						event.preventDefault();
						window.location.href = event.target.href + "&saddr=" + latitude + "," + longitude;
					});
			}, function(error) { alert(error); });
			
		}, false);
	}
	
	resetTransitionPositions();
}

// This replaces the content of targetdiv with the address determined from google
function outputLocation(ll, targetdiv, routefunc) {
	var geo = new GClientGeocoder();
	geo.getLocations(ll, function(addresses){
	    if(addresses.Status.code == 200){
			document.getElementById(targetdiv).style.display = "";
			document.getElementById(targetdiv + "_routelink").addEventListener("click", routefunc, false);
		    var x = addresses.Placemark[0].AddressDetails;
			var address_text = new String();
			address_text = address_text + x.Country.AdministrativeArea.SubAdministrativeArea.Locality.DependentLocality.Thoroughfare.ThoroughfareName;
			address_text = address_text + "<br/>";
			address_text = address_text +  x.Country.AdministrativeArea.SubAdministrativeArea.Locality.DependentLocality.PostalCode.PostalCodeNumber;
			address_text = address_text + " ";
			address_text = address_text + x.Country.AdministrativeArea.SubAdministrativeArea.Locality.LocalityName;
			address_text = address_text + "<br/>";
			address_text = address_text + x.Country.CountryName;
		
			document.getElementById(targetdiv + "_content").innerHTML = address_text;
		
	    }
	  });
}

function resetTransitionPositions() {
	if (document.getElementById("navheader"))
		document.getElementById("navheader").style.left = null;
	if (document.getElementById("wrapall"))
		document.getElementById("wrapall").style.left = null;
	if (document.getElementById("transitionwrap"))
		document.getElementById("transitionwrap").style.right = null;
}

var isNavHome = false;
var clicks = 0;
window.addEventListener("load", loadHandler, false); 
window.addEventListener("unload", function() { 
		// do nothing
	}, false);
