// global defs
// general variables
var count = 0;
var timeout = 5000;
var images = new Array(); 
var showSlide = 0;
var timerActive = 0;

// used for Ajax functionality only
var xmlhttp;
var elementToChange;
var serverReply = "";
var url = "";
var getWhat;
var type;


//functions

function getViewportDimensions() {
    var intH = 0, intW = 0;
    
    if(self.innerHeight) {
       intH = window.innerHeight;
       intW = window.innerWidth;
    } 
    else {
        if(document.documentElement && document.documentElement.clientHeight) {
            intH = document.documentElement.clientHeight;
            intW = document.documentElement.clientWidth;
        }
        else {
            if(document.body) {
                intH = document.body.clientHeight;
                intW = document.body.clientWidth;
            }
        }
    }

    return {
        height: parseInt(intH, 10),
        width: parseInt(intW, 10)
    };
}

function centerOnScreen (centerMe) {
	var x = document.getElementById(centerMe);
	var v = document.getElementById("viewport");
    var viewPort = getViewportDimensions();
	var screenPosX = (viewPort.width - x.offsetWidth) / 2;
	var z = 0;
	if (viewPort.height < 635)
		viewPort.height = 635;
	var vHeight = viewPort.height - 203;
	x.style.height = (viewPort.height - 13) + "px";
	x.style.left = screenPosX + "px";

	v.style.height = vHeight + "px";
	document.getElementById("leftcolumn").style.height = (vHeight - 1) + "px";
	document.getElementById("rightcolumn").style.height = (vHeight - 21) + "px";
	
	z = viewPort.height - 34;
	document.getElementById("footer").style.top = z + "px";
//	z = ((viewPort.height - 203) - 277) / 2;
//	document.getElementById("pictureframe").style.top = z + "px";

}

function mouseover (elementId) {
	var newBtn;
	switch (elementId)
	{
		case "btn1":
			newBtn="graphics/btnhomesel.png";
			document.getElementById(elementId).src=newBtn;
			break;			
		case "btn2":
			newBtn="graphics/btnletterssel.png";
			document.getElementById(elementId).src=newBtn;
//			document.getElementById("menuproducts").style.display="block";
			break;			
		case "btn3":
			newBtn="graphics/btnpoemssel.png";
			document.getElementById(elementId).src=newBtn;
			break;			
		case "btn4":
			newBtn="graphics/btnstoriessel.png";
			document.getElementById(elementId).src=newBtn;
//			document.getElementById("menudealers").style.display="block";
			break;			
		case "btn5":
			newBtn="graphics/btnguestbooksel.png";
			document.getElementById(elementId).src=newBtn;
			break;			
		case "btn6":
			newBtn="graphics/btnaboutsel.png";
			document.getElementById(elementId).src=newBtn;
			break;			
		case "footer":
			elementToChange = document.getElementById(elementId);
			showContent("footer","0")
			break;			
	}
}

function mouseout (elementId) {
	var newBtn;
	switch (elementId)
	{
		case "btn1":
			newBtn="graphics/btnhome.png";
			document.getElementById(elementId).src=newBtn;
			break;			
		case "btn2":
			newBtn="graphics/btnletters.png";
			document.getElementById(elementId).src=newBtn;
//			document.getElementById("menuproducts").style.display="none";
			break;			
		case "btn3":
			newBtn="graphics/btnpoems.png";
			document.getElementById(elementId).src=newBtn;
			break;			
		case "btn4":
			newBtn="graphics/btnstories.png";
			document.getElementById(elementId).src=newBtn;
//			document.getElementById("menudealers").style.display="none";
			break;			
		case "btn5":
			newBtn="graphics/btnguestbook.png";
			document.getElementById(elementId).src=newBtn;
			break;			
		case "btn6":
			newBtn="graphics/btnabout.png";
			document.getElementById(elementId).src=newBtn;
			break;			
		case "footer":
			document.getElementById(elementId).innerHTML = " Copyright © 2006, 2009 Tom Widauer ";
			break;			
	}
}

function showSlideShow() {
	document.getElementById("leftcolumn").innerHTML="<div id=\"pictureframe\"><div id=\"picturebox\"></div></div>";
	
}

function swapImages()
{
	timerActive = 0;
	if (showSlide==1) {
		document.getElementById("picturebox").style.background="url(" + images[count] + ")";
		count ++;
		if (count == images.length) {
			count = 0;
		} 
		setTimeout("swapImages()",timeout);
		timerActive = 1;
	}
}

function loadImages () {
	images[0] = "graphics/thaliababy.jpg"; 
	images[1] = "graphics/thaliacool.jpg"; 
	images[2] = "graphics/thaliacute.jpg"; 
	images[3] = "graphics/thaliared.jpg"; 
	images[4] = "graphics/thaliaschool.jpg"; 
	images[5] = "graphics/thaliaserious.jpg"; 
//	if (showSlide==1)
//		swapImages();
}

function initPage () {
//	hideLayer();
	document.getElementById("header").style.background="url(\'graphics/headerbg.png\')";
	document.getElementById("menubar").style.background="url(\'graphics/menubarbg.png\')";
//	document.getElementById("pictureframe").style.background="url(\'graphics/pictureframe.png\')";

	showContent("home","0");
	
}

// Ajax functions


function showContent(content,id)
{
	switch (content) {
		case "home":
			elementToChange = document.getElementById("rightcolumn");
			document.getElementById("btn1").blur();
			elementToChange.innerHTML = "<p>Loading...</p>";
			showSlide = 1;
			showSlideShow();
			if (timerActive==0)
				swapImages();
			getWhat = "text";
			url="content/home.txt";
			break;
		case "about":
			elementToChange = document.getElementById("rightcolumn");
			document.getElementById("btn6").blur();
			elementToChange.innerHTML = "<p>Loading...</p>";
			showSlide = 1;
			showSlideShow();
			if (timerActive==0)
				swapImages();
			getWhat = "text";
			url="content/about.txt";
			break;
		case "lkeys":
			document.getElementById("rightcolumn").innerHTML = "<p>&nbsp;</p>";
			elementToChange = document.getElementById("leftcolumn");
			document.getElementById("btn2").blur();
			elementToChange.innerHTML = "<p>Loading...</p>";
			showSlide = 0;
			getWhat = "lkeys";
			url="scripts/getcontent.php?type=l&what=keys";
			break;
		case "lcontent":
			elementToChange = document.getElementById("rightcolumn");
			elementToChange.innerHTML = "<p>Loading...</p>";
			showSlide = 0;
			getWhat = "content";
			url="scripts/getcontent.php?type=l&what=content&id=" + id;
			break;
		case "pkeys":
			document.getElementById("rightcolumn").innerHTML = "<p>&nbsp;</p>";
			elementToChange = document.getElementById("leftcolumn");
			document.getElementById("btn3").blur();
			elementToChange.innerHTML = "<p>Loading...</p>";
			showSlide = 0;
			getWhat = "pkeys";
			url="scripts/getcontent.php?type=p&what=keys";
			break;
		case "pcontent":
			elementToChange = document.getElementById("rightcolumn");
			elementToChange.innerHTML = "<p>Loading...</p>";
			showSlide = 0;
			getWhat = "content";
			url="scripts/getcontent.php?type=p&what=content&id=" + id;
			break;
		case "skeys":
			document.getElementById("rightcolumn").innerHTML = "<p>&nbsp;</p>";
			elementToChange = document.getElementById("leftcolumn");
			document.getElementById("btn4").blur();
			elementToChange.innerHTML = "<p>Loading...</p>";
			showSlide = 0;
			getWhat = "skeys";
			url="scripts/getcontent.php?type=s&what=keys";
			break;
		case "scontent":
			elementToChange = document.getElementById("rightcolumn");
			elementToChange.innerHTML = "<p>Loading...</p>";
			showSlide = 0;
			getWhat = "content";
			url="scripts/getcontent.php?type=s&what=content&id=" + id;
			break;
		case "lpsform":
			elementToChange = document.getElementById("rightcolumn");
			elementToChange.innerHTML = "<p>Loading...</p>";
			showSlide = 0;
			getWhat = "lpsform";
			if (id == "g")
				getWhat = "gbform";
			url="scripts/getform.php?type=" + id;
			break;
		case "footer":
			getWhat = "footer";
			url="content/somename.txt";
			break;
		case "gkeys":
			document.getElementById("rightcolumn").innerHTML = "<p>&nbsp;</p>";
			elementToChange = document.getElementById("leftcolumn");
			document.getElementById("btn5").blur();
			elementToChange.innerHTML = "<p>Loading...</p>";
			showSlide = 0;
			getWhat = "gkeys";
			url="scripts/getcontent.php?type=g&what=keys";
			break;
		case "gcontent":
			elementToChange = document.getElementById("rightcolumn");
			elementToChange.innerHTML = "<p>Loading...</p>";
			showSlide = 0;
			getWhat = "content";
			url="scripts/getcontent.php?type=g&what=content&id=" + id;
			break;
	}
	
	getContent();	
}

function getContent()
{
	xmlhttp=GetXmlHttpObject();
	if (xmlhttp==null)
	{
		alert ("Browser does not support HTTP Request");
		return;
	}

	xmlhttp.onreadystatechange=stateChanged;
	xmlhttp.open("GET",url,true);
	xmlhttp.send(null);
}

function postContent(id)
{
	var mname = document.getElementById("mname").value;
	var mtext = document.getElementById("mtext").value;
	if (mname=="") {
		alert ("Please enter your name");
		document.lpsform.mname.focus();
		return;
	}
	if (mtext=="") {
		alert ("Please enter some text");
		document.lpsform.mtext.focus();
		return;
	}
	type = id;
	getWhat = "postreply";
	url = "scripts/postcontent.php?";
	url = url + "mname=" + mname;
	url = url + "&mtext=" + mtext;
	if (id=="g")
		url = url + "&mcountry=" + document.getElementById("mcountry").value;
	url = url + "&type=" + type;
	getContent();
}

function stateChanged()
{
	if (xmlhttp.readyState==4)
	{
		if (xmlhttp.status==200)
		{// 200 = OK
			switch (getWhat) {
				case "text":
					elementToChange.innerHTML=xmlhttp.responseText;
					break;
				case "content":
					elementToChange.innerHTML=xmlhttp.responseText;
					break;
				case "footer":
					elementToChange.innerHTML=" Copyright © 2006, 2009 Tom Widauer " + xmlhttp.responseText;
					break;
				case "lpsform":
					elementToChange.innerHTML=xmlhttp.responseText;
					document.getElementById("mname").style.background="url(\'graphics/layerbg.png\')";
					document.getElementById("mtext").style.background="url(\'graphics/layerbg.png\')";
					document.lpsform.mname.focus();
					break;
				case "gbform":
					elementToChange.innerHTML=xmlhttp.responseText;
					document.getElementById("mname").style.background="url(\'graphics/layerbg.png\')";
					document.getElementById("mcountry").style.background="url(\'graphics/layerbg.png\')";
					document.getElementById("mtext").style.background="url(\'graphics/layerbg.png\')";
					document.lpsform.mname.focus();
					break;
				case "lkeys":
					serverReply = xmlhttp.responseText;
					var endIndex = serverReply.indexOf("##**$$");
					var htmlPart = serverReply.substr(0,endIndex + 1);
					elementToChange.innerHTML=htmlPart;
					var idToRead = serverReply.substr(endIndex + 6,serverReply.length - endIndex - 6);
					showContent("lcontent",idToRead);
					break;
				case "pkeys":
					serverReply = xmlhttp.responseText;
					var endIndex = serverReply.indexOf("##**$$");
					var htmlPart = serverReply.substr(0,endIndex + 1);
					elementToChange.innerHTML=htmlPart;
					var idToRead = serverReply.substr(endIndex + 6,serverReply.length - endIndex - 6);
					showContent("pcontent",idToRead);
					break;
				case "skeys":
					serverReply = xmlhttp.responseText;
					var endIndex = serverReply.indexOf("##**$$");
					var htmlPart = serverReply.substr(0,endIndex + 1);
					elementToChange.innerHTML=htmlPart;
					var idToRead = serverReply.substr(endIndex + 6,serverReply.length - endIndex - 6);
					showContent("scontent",idToRead);
					break;
				case "gkeys":
					serverReply = xmlhttp.responseText;
					var endIndex = serverReply.indexOf("##**$$");
					var htmlPart = serverReply.substr(0,endIndex + 1);
					elementToChange.innerHTML=htmlPart;
					var idToRead = serverReply.substr(endIndex + 6,serverReply.length - endIndex - 6);
					showContent("gcontent",idToRead);
					break;
				case "postreply":
					serverReply = xmlhttp.responseText;
					if (serverReply=="ok") {
						switch (type) {
							case "l":
								showContent("lkeys","0");
								break;
							case "p":
								showContent("pkeys","0");
								break;
							case "s":
								showContent("skeys","0");
								break;
							case "g":
								showContent("gkeys","0");
								break;
						}
					}
					else {
						alert (serverReply + "There seems to be a problem with the database. Please try again.\nIf the problem persists, please contact the webmaster.");
					}
				break;
			}
		}
		else
		{
			alert("Problem retrieving XML data. Statuscode: " + xmlhttp.status);
		}
	}
}

function GetXmlHttpObject()
{
	if (window.XMLHttpRequest)
	{
		// code for IE7+, Firefox, Chrome, Opera, Safari
		return new XMLHttpRequest();
	}
	if (window.ActiveXObject)
	{
		// code for IE6, IE5
		return new ActiveXObject("Microsoft.XMLHTTP");
	}
	return null;
}


