/*
 * Author: Andrée Hansson (peolanha _AT_ gmail _DOT_ com)
 * Do not use any parts of this code without permission
 * Parts that are made by other authors are used with permissions
 */

getViewportSize = function() {
	var scrolledX, scrolledY, centerX, centerY;

	// Firefox, Opera and Safari
	if (self.pageYoffset) {
		scrolledX = self.pageXoffset;
		scrolledY = self.pageYoffset;
		centerX = self.innerWidth;
		centerY = self.innerHeight;

	// Internet Explorer 6+
	} else if (document.documentElement && document.documentElement.scrollTop) {
		scrolledX = document.documentElement.scrollLeft;
		scrolledY = document.documentElement.scrollTop;
		centerX = document.documentElement.clientWidth;
		centerY = document.documentElement.clientHeight;

	// Internet Explorer 5-
	} else if (document.body) {
		scrolledX = document.body.scrollLeft;
		scrolledY = document.body.scrollTop;
		centerX = document.body.clientWidth;
		centerY = document.body.clientHeight;
	}

	return [scrolledX,scrolledY,centerX,centerY];
}

// Lägger till en viktig funktion i Array-objekt.
// Underlättar en hel del vid sökning i arrayer.
Array.prototype.inArray = function (search_phrase) {
	for(var i = 0; i < this.length; i++) {
		if(search_phrase == this[i]) { return i; }
	}

	return false;
}



// Skapar ett element, behövs för att javascripten inte ska krascha
// vid sidladdningar när objekten inte har hunnits läsa in.
makeElement = function(type,id) {
	var newEl = document.createElement(type);
	document.getElementsByTagName("body")[0].appendChild(newEl);
	newEl.id = id;
}

// Snurra runt alla tables, hämta alla table-rader
// och fixa till deras färger. Väldigt praktiskt i
// sådana här tillfällen. :)
fixRowColor = function() {
	var tables = document.getElementsByTagName("table");

	for (x = 0; x < tables.length; x++) {
		var cycle = 1;
		var tableRows = tables[x].getElementsByTagName("tr");
		var tableDoHead = parseInt(tables[x].getAttribute("rel"));
		var tableRowsDisplayed = 0;

		for (y = 0; y < tableRows.length; y++) {
			if (tableRows[y].style.display != "none") {
				tableRowsDisplayed++;
				tableRows[y].className = "alt" + cycle;

				if (y == 0 && tableDoHead) {
					var tableCols = tableRows[y].getElementsByTagName("td");
					for (i = 0; i < tableCols.length; i++) {
						tableCols[i].style.background = "#A5AF8D";
						tableCols[i].style.borderBottom = "2px solid #A5AF8D";
					}
				}
				cycle++;
			}
			if (cycle > 2) { cycle = 1; }
		}
		
		var itemCount = [];
		itemCount = tables[x].getElementsByTagName("span");
		if (itemCount[0] != null) itemCount[0].innerHTML = tableRowsDisplayed-1;
	}
}

// Funktion som validerar en <form>. Väldigt effektivt
// om man vill använda dynamiska och interaktiva
// varningsmeddelande om fält som krävs ifyllda innan
// resten skickas vidare. Skicka in en array med fältnamn
// så fixar scriptet resten.
checkValues = function(requiredFields) {
	var booOK = true;
	var form = document.itemForm1.elements;

	for (x = 0; x < form.length; x++) {
		if (typeof (requiredFields.inArray(form[x].name)) == "number") {
			if (form[x].value == "") {
				form[x].style.background = "#ECB5A2";
				form[x].focus();
				alert("Error!\nYou have to specify a value for " + form[x].getAttribute("alt") + ".");
				booOK = false;
			} else {
				form[x].style.background = "";			
			}
		}
	}
	
	return booOK;
}

function capitalizeWord(string) {
	return string.substring(0,1).toUpperCase() + string.substring(1,string.length);
}
