if (window.addEventListener){	
	window.addEventListener('load', init, false);	
}else{
	window.onload = document.onload = init;
}
window.onorientationchange = buildSite;
var iR = 0;
var iW = 0;
var iH = 0;
var cW = 0;
var cH = 0;
var cfW = 0;
var cfH = 0;
var a = 1;
var aI = 1;
var saI = 1;
var nAI = 0;
var pAI = 0;
var images = new Array();
var contactOpen = false;
var isios = false;


function init(){	
	if(navigator.userAgent.match(/iPad/i) != null || navigator.userAgent.match(/iPhone/i) != null){
		isios = true;
	}
	if(document.getElementById("bg")){
		if (window.addEventListener){	
			window.addEventListener('resize', buildSite, false);	
		}else{
			window.onresize = document.onresize = buildSite;
		}
		cfW = parseInt(getStyle(document.getElementById("contactForm"), "width"));	
		cfH = parseInt(getStyle(document.getElementById("contactForm"), "height"));
		if(document.getElementById("container")){
			cW = parseInt(getStyle(document.getElementById("container"), "width"));	
			cH = parseInt(getStyle(document.getElementById("container"), "height"));
		
		}	
		
		var image = new Image();		
		if (window.addEventListener){	
			image.addEventListener('load', getBgDimensions, false);	
		}else{
			image.onload = getBgDimensions;
		}
		image.src = document.getElementById("bg").src;			
		
	}else{
		if (window.addEventListener){	
			window.addEventListener('resize', buildGallery, false);	
		}else{
			window.onresize = document.onresize = buildGallery;
		}
				
		images = document.getElementById("images").innerHTML.split(",");		
		
		cfW = parseInt(getStyle(document.getElementById("contactForm"), "width"));	
		cfH = parseInt(getStyle(document.getElementById("contactForm"), "height"));		
		
		if(isios == false){
			var image = new Image();		
			if (window.addEventListener){	
				image.addEventListener('load', getImageDimensions, false);	
			}else{
				image.onload = getImageDimensions;
			}		
			image.src = images[0];		
			document.getElementById("image" + aI).style.zIndex = "99";
			document.getElementById("info" + aI).style.display = "block";
			document.getElementById("image" + aI).appendChild(image);	
		}else{
			saI = parseInt(document.getElementById("iId").value);
			
			document.getElementById("info1").style.display = "block";
			showSpecialImage('image1');
		}
	}
}

function getImageDimensions(){		
	iW = this.naturalWidth;
	iH = this.naturalHeight;
	if(iW == null  || iH == null  ){
		iW = this.offsetWidth;
		iH = this.offsetHeight;
	}
	if( iW == 0){
		iW  = this.width;	
	}
	if( iH == 0){
		iH  = this.height;	
	}
	iR = iW/iH;	
	$('#image' + aI).css('visibility','visible');
	q = window.location.hash.substring(1);
	q = q.split("&");
	for (i=0;i<q.length;i++) {
		qi = q[i].split("=");
		if(qi[0] == "a"){
			a = qi[1];
		}
	}	
	buildGallery();
	showGallery();	
	loadNeighbours();
}

function showSpecialImage(id){		
	iW = document.getElementById(id + "-img").naturalWidth;
	iH = document.getElementById(id + "-img").naturalHeight;
	
	iR = iW/iH;	
	$('#' + id).css('visibility','visible');
	q = window.location.hash.substring(1);
	q = q.split("&");
	for (i=0;i<q.length;i++) {
		qi = q[i].split("=");
		if(qi[0] == "a"){
			a = qi[1];
		}
	}	
	buildGallery();
	showGallery();	
	loadNeighbours();
}


function getBgDimensions(){	
	iW = this.naturalWidth;
	iH = this.naturalHeight;
	if(iW == null || iH == null || iW == "undefined" || iH == "undefined"  ){		
		iW = this.offsetWidth;
		iH = this.offsetHeight;	
	}
	if( iW == 0){
		iW  = this.width;	
	}
	if( iH == 0){
		iH  = this.height;	
	}
	iR = iW/iH;		
	q = window.location.hash.substring(1);
	q = q.split("&");
	for (i=0;i<q.length;i++) {
		qi = q[i].split("=");
		if(qi[0] == "a"){
			a = qi[1];
		}
	}	
	buildSite();	
	showSite();
}

function getWindowSizes(){
	if(navigator.appName == "Microsoft Internet Explorer"){
		var version = navigator.appVersion;
		ioH = version.indexOf("(");
		version = version.substr(0, ioH - 1);	
		if(version == "5.0"){
			wW = window.innerWidth;
			wH = window.innerHeight;
		}else{
			wW = document.documentElement.clientWidth;
			wH = document.documentElement.clientHeight;			
		}
	}else{
		wW = window.innerWidth;
		wH = window.innerHeight;
	}
	wR = wW/wH;
}

function getStyle(oElm, strCssRule){
	var strValue = "";
	if(document.defaultView && document.defaultView.getComputedStyle){
		strValue = document.defaultView.getComputedStyle(oElm, "").getPropertyValue(strCssRule);
	}
	else if(oElm.currentStyle){	
		strCssRule = strCssRule.replace(/\-(\w)/g, function (strMatch, p1){
			return p1.toUpperCase();
		});
		strValue = oElm.currentStyle[strCssRule];
	}
	if(strValue == "auto" || strValue == "100%"){
		if(strCssRule == "width"){
			strValue = oElm.offsetWidth;	
		}
		if(strCssRule == "height"){
			strValue = oElm.offsetHeight;
		}
	}
	return strValue;
}


function buildSite(){	
	getWindowSizes();	
	
	bW = 0;
	bH = 0;
	bL = 0;
	bT = 0;
	tW = 0;
	tL = 0;
	
	
	if(iW+70 <= wW){	
		bL = tL =  (wW - iW)/2;			
		bW = tW =  iW;		
		bH = iH;
		if(iH >= wH){			
			bT =  -((iH - wH)/2);
		}else{
			bT =  (wH - iH)/2;
		}
	}
	else{
		if(((wW / iR)-50) >= wH){
			bL = tL =  35;	
			bW = tW =  wW-70;		
			bH = (wW-70) / iR;
			if(wW / iR >= wH){			
				bT =  -((((wW / iR) - wH)-50)/2);
			}else{
				bT =  (wH - (wW / iR))/2;
			}
		}else{			
			bH = wH;
			bT =  0
			bW = wH*iR;
			if(wH * iR >= wW){			
				bL =  -(((wH * iR) - wW)/2);
			}else{
				bL =  (wW - (wH * iR))/2;
			}
			tL =  35;	
			tW =  wW-70;
		}
	}			
	document.getElementById("bg").style.height = bH + "px";
	document.getElementById("bg").style.width = bW + "px";
	document.getElementById("bg").style.top = bT + "px";
	document.getElementById("bg").style.left = bL + "px";
	
	if(document.getElementById("topBar")){
		document.getElementById("topBar").style.top = 0 + "px";
		document.getElementById("topBar").style.height = 35 + "px";
		document.getElementById("topBar").style.left = tL + "px";
		document.getElementById("topBar").style.width = tW + "px";
	}
	
	if(document.getElementById("container")){
		document.getElementById("container").style.top = (wH-cH)/2 + "px";
		document.getElementById("container").style.left = (wW-cW)/2  + "px";
	}
		
	document.getElementById("contactForm").style.top = (wH-cfH)/2 + "px";
	document.getElementById("contactForm").style.left = (wW-cfW)/2  + "px";	
}
function showSite(){	
	if(a == 1){
		$('#bg').css('visibility','visible').hide().fadeIn(1000);
		if(document.getElementById("about")){
			$('#container').css('visibility','visible').hide().delay(1000).fadeIn("slow");			
		}else{
			if(document.getElementById("container")){
				$('#container').css('visibility','visible').hide().fadeIn("slow");
				$('#topBar').css('visibility','visible').hide().fadeIn("slow");
			}
			window.location.hash = "a=0";
		}		
	}else{
		$('#bg').css('visibility','visible');
		$('#container').css('visibility','visible').hide().fadeIn("slow");
		$('#topBar').css('visibility','visible').hide().fadeIn("slow");
		if(document.getElementById("about")){
			window.location.hash = "";
		}
	}	
}

function buildGallery(){	
	getWindowSizes();	
		
	if((wH - ((wW-100)/iR))/2 >= 50){
		fW = wW-100 ;	
		fL = 50;
		fH = (wW-100)/iR;	
		fT = (wH - ((wW-100)/iR))/2;			
	}else{
		fW = (wH-100)*iR;	
		fL = (wW - ((wH-100)*iR))/2;
		fH = wH-100;
		fT = 50;
	}
	//document.getElementById("topBar").innerHTML = "fW: " + fW + " | fL: " + fL + " | iR: " + iR;
	
	document.getElementById("image" + aI).style.width =  fW + "px";
	document.getElementById("image" + aI).style.left =  fL + "px";
	document.getElementById("image" + aI).style.height = fH + "px";
	document.getElementById("image" + aI).style.top =  fT + "px";
	
	document.getElementById("info").style.width =  fW + "px";
	document.getElementById("info").style.left =  fL + "px";
	document.getElementById("info").style.top =  fT + "px";
	
	document.getElementById("progressBar").style.width = fW + "px";
	document.getElementById("progressBar").style.left =  fL + "px";
	document.getElementById("progressBar").style.top =  fT + fH + 10 + "px";
	
	if(isios == false){
		document.getElementById("progress").style.width = (100/(images.length - 1))* aI + "%";	
	}else{
		document.getElementById("progress").style.width = (100/(images.length - 1))* saI + "%";	
	}
	
	document.getElementById("arrowLeft").style.width = document.getElementById("arrowRight").style.width = (wW - fW)/2+ "px";
	
	document.getElementById("topBar").style.top = fT - 30 + "px";
	document.getElementById("topBar").style.width = fW + "px";
	document.getElementById("topBar").style.left =  fL + "px";
		
	document.getElementById("contactForm").style.top = (wH-cfH)/2 + "px";
	document.getElementById("contactForm").style.left = (wW-cfW)/2  + "px";
}

function showGallery(){
	if(a == 1){
		$('#gallery').css('visibility','visible').hide().fadeIn("slow");
		$('#topBar').css('visibility','visible').hide().fadeIn("slow");
		window.location.hash = "a=0";
	}else{
		$('#gallery').css('visibility','visible');
		$('#topBar').css('visibility','visible');
	}
}

function loadNeighbours(){
	if(isios == false){
		if(aI == images.length-1){		
			nAI = 1;
		}else{		
			nAI = aI + 1;
		}
		if(aI - 1 != 0){
			pAI = aI - 1;
		}else{
			pAI = images.length-1;
		}
		if(document.getElementById("image" + pAI).innerHTML == ""){
			document.getElementById("image" + pAI).innerHTML = "<img src='" + images[pAI - 1] + "'/>";	
		}
		if(document.getElementById("image" + nAI).innerHTML == ""){
			document.getElementById("image" + nAI).innerHTML = "<img src='" + images[nAI - 1] + "'/>";
		}
	}else{
		if(saI == images.length-1){		
			nAI = 1;
		}else{		
			nAI = saI + 1;
		}
		if(saI - 1 != 0){
			pAI = saI - 1;
		}else{
			pAI = images.length-1;
		}
	
	}
}
function showPrev(){
	if(isios == false){
		switchImage(pAI);
	}else{
		q = document.location.search;
		q = q.substring(0, (q.length)-1);
		document.location.search = q + pAI;	
	}
}
function showNext(){
	if(isios == false){
		switchImage(nAI);
	}else{
		q = document.location.search;
		q = q.substring(0, (q.length)-1);
		document.location.search = q + nAI;
	}
}
function switchImage(nI){
	getWindowSizes();	
	
	var image = new Image();		
	image.src = document.getElementById("image" + nI).firstChild.src;
	nIW = image.naturalWidth;
	nIH = image.naturalHeight;
	
	if(nIW == 0 || nIH == 0){
		$("#image" + nI).css("visibility" , "visible");
		nIW = $("#image" + nI).children("img").width();
		nIH = $("#image" + nI).children("img").height();
		$("#image" + nI).delay(100).css("visibility" , "visible");
	}
	
	if(nIW == null  || nIH == null){
		nIW = image.width;
		nIH = image.height;
	}
	
	
	nIR = nIW/nIH;	
		
	if((wH - ((wW-100)/nIR))/2 >= 50){
		fW = wW-100 ;	
		fL = 50;
		fH = (wW-100)/nIR;	
		fT = (wH - ((wW-100)/nIR))/2;			
	}else{
		fW = (wH-100)*nIR;	
		fL = (wW - ((wH-100)*nIR))/2;
		fH = wH-100;
		fT = 50;
	}	
	
	document.getElementById("image" + nI).style.width =  fW + "px";
	document.getElementById("image" + nI).style.left =  fL + "px";
	document.getElementById("image" + nI).style.height = fH + "px";
	document.getElementById("image" + nI).style.top =  fT + "px";
	
	if(isios == false){
		$('#image' + aI).fadeOut(400);
		$('#image' + nI).css('visibility','visible').hide().delay(400).fadeIn(400, function() {																						 
			document.getElementById("image" + aI).style.zIndex = "2";		
			document.getElementById("image" + nI).style.zIndex = "99";
			iW = fW;
			iH = fH;
			iR = iW/iH;	
			aI = nI;
			loadNeighbours();
		 });
	}else{
		$('#image' + aI).css('visibility','hidden').css('display','none');
		$('#image' + nI).css('visibility','visible').css('display','block');
		document.getElementById("image" + aI).style.zIndex = "2";		
			document.getElementById("image" + nI).style.zIndex = "99";
			iW = fW;
			iH = fH;
			iR = iW/iH;	
			aI = nI;
			loadNeighbours();
	}
	
	$('#info').fadeOut(400);
	$('#info' + aI).css('display','none');
	$('#info' + nI).css('display','block');
	
	document.getElementById("info").style.width =  fW + "px";
	document.getElementById("info").style.left =  fL + "px";
	document.getElementById("info").style.top =  fT + "px";
	
	if(isios == false){
		$('#progressBar').animate({width:fW + "px", left:fL + "px", top:fT + fH + 10 + "px"}, 200);		
		$('#progress').animate({width:(100/(images.length - 1))* nI + "%"}, 600);		
		$('#arrowLeft').animate({width:(wW - fW)/2+ "px"}, 600);
		$('#arrowRight').animate({width:(wW - fW)/2 + "px"}, 600);		
		$('#topBar').animate({top:fT - 30 + "px", left:fL + "px", width:fW + "px"}, 400);	
	}else{
		$('#progressBar').css({"width" : fW + "px", "left" : fL + "px", "top" : fT + fH + 10 + "px"});		
		$('#progress').css({"width" :(100/(images.length - 1))* nI + "%"});
		$('#arrowLeft').css({"width" :(wW - fW)/2+ "px"});
		$('#arrowRight').css({"width" :(wW - fW)/2 + "px"});		
		$('#topBar').css({"top" :fT - 30 + "px", "left" :fL + "px", "width" :fW + "px"});	
	} 
}

function goToPage(path, page, title){
	var bgId = document.getElementById("bgId").value;
	$('#container').fadeOut(150);
	if(page == "gallery"){
		$('#bg').fadeOut(160);
		if(isios == false){
			window.location = path + page + title + "?b=" + bgId;	
		}else{
			window.location = path + page + title + "?b=" + bgId + "&i=1";	
		}
	}else if(document.getElementById("gallery")){
		$('#image' + aI).fadeOut(220);
		window.location = path + page + title + "?b=" + bgId;	
	}else{
		window.location = path + page + title + "?b=" + bgId + "#a=0";	
	}
}

function showInfo(){
	if(getStyle(document.getElementById("info"), "display") == "none"){
		$('#info').fadeIn(250);
	}else{
		$('#info').fadeOut(400);
	}
}
function showContact(){
	if(getStyle(document.getElementById("contactForm"), "visibility") == "hidden"){
		$('#contactForm').css('visibility','visible').hide().fadeIn(250);
		$('#container').fadeOut();
		contactOpen = true;
	}else{
		$('#container').fadeIn();
		$('#contactForm').fadeOut(400, function() {
			 $(this).css('visibility','hidden');
			 contactOpen = false;
		 });
	}
}
function secNext(){
	var c = document.getElementById("c").value;
	$('#innerSection').animate({left:-((c-5)*137)+19 +"px"}, 200);
	document.getElementById("next").style.display = "none";
	document.getElementById("prev").style.display = "block";
}
function secPrev(){
	$('#innerSection').animate({left:"0px"}, 200);
	document.getElementById("next").style.display = "block";
	document.getElementById("prev").style.display = "none";
}
function focusInput(id){
	if(document.getElementById(id).value == id){
		document.getElementById(id).value = "";
	}
}
function blurInput(id){
	if(document.getElementById(id).value == ""){
		document.getElementById(id).value = id;
	}
}
function submitForm(){
	if (window.XMLHttpRequest)
	{
		xmlhttp=new XMLHttpRequest();
	}
	else
	{
		xmlhttp=new ActiveXObject('Microsoft.XMLHTTP');
	}					
	xmlhttp.onreadystatechange=function(){
		if (xmlhttp.readyState==4 && xmlhttp.status==200)
		{
			if(xmlhttp.responseText == 'error'){
				showError("E-MAIL", "Error: invalid e-mail");
			}else{
				$('#cSuc').css('visibility','visible').hide().fadeIn(450);
				document.getElementById("form").style.display = "none"; 
				$('#contactForm').animate({height:"200px"}, 400);
				document.getElementById("cError").innerHTML = ""; 
				document.getElementById("cError").style.display = "none"; 
			}
		}
	};
	var name    = encodeURIComponent(document.getElementById("NAME").value);
	var email   = encodeURIComponent(document.getElementById("E-MAIL").value);
	var phone   = encodeURIComponent(document.getElementById("PHONE").value);
	var message = encodeURIComponent(document.getElementById("MESSAGE").value);	
	
	if(name == "" || name == "NAME"){
		showError("NAME", "Error: Fill in all required fields");
	}if(email == "" || email == "E-MAIL"){
		showError("E-MAIL", "Fill in all required fields");
	}if(message == "" || message == "MESSAGE"){
		showError("MESSAGE", "Fill in all required fields");
	}else{
		if(phone == "PHONE"){phone = "/";}
		url = 'http://www.ellengoegebuer.com/inc/functions/sendMail.php?name=' + name + "&phone=" + phone + "&email=" + email + "&message=" + message;		
		xmlhttp.open('GET',url,true);
		xmlhttp.send();
	}
}
function showError(id, errorMessage){
	if(document.getElementById("cError").innerHTML == ""){
		document.getElementById("cError").innerHTML = errorMessage; 
		$('#cError').css('visibility','visible').hide().fadeIn(450);
		$('#contactForm').animate({height:"380px"}, 450);
	}
	if(document.getElementById(id).value == ""){
		document.getElementById(id).value = id;
	}
	document.getElementById(id).className = "error";
}
