window.onload = init;
var http = getHTTPObject(); var rValid; var rName; var rCountry; var rPhone; var nEmail; var nValid; var links; var pics; var slides; var stopShow; var opacity = 1;
function init() {
	if(!document.getElementById) {return false;}
	try {
		document.execCommand('BackgroundImageCache', false, true);
	} catch(e) {}
	extendPage();
	hoverSearch();
	doRollovers();
	if(document.getElementsByTagName("body")[0].className == "home") {doSlides();}
	if(document.getElementById("locations")) {showLocations();}
	if(document.getElementById("mailinglist_form")) {hoverNewsletter();}
	if(document.getElementById("searchJobs")) {hoverJobs();}
	if(document.getElementById("searchSite")) {hoverSite();}
	if(document.getElementById("request")) {requestCall();}
}

function getHTTPObject() { 
	var xmlhttp; 
	/*@cc_on 
	@if (@_jscript_version >= 5) 
	try { 
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); 
	} catch (e) { 
		try { 
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
		} catch (E) {
			xmlhttp = false; 
		} 
	} 
	@else 
	xmlhttp = false; 
	@end @*/ 
	if (!xmlhttp && typeof XMLHttpRequest != 'undefined') { 
		try { 
			xmlhttp = new XMLHttpRequest();
				xmlhttp.overrideMimeType("text/xml");
		} catch (e) { 
			xmlhttp = false; 
		} 
	} 
	return xmlhttp; 
}
function extendPage() {
	var leftHeight = document.getElementById("left").offsetHeight;
	var rightHeight = document.getElementById("main").offsetHeight;
	if(document.getElementsByTagName("body")[0].className == "home") {rightHeight += 140;}
	if(leftHeight < rightHeight) {document.getElementById("sidebar").style.height = document.getElementById("sidebar").offsetHeight - 20 + (rightHeight - leftHeight) + 'px';}
	else {document.getElementById("extender").style.height = (leftHeight - rightHeight) + 'px';}
}
function hoverSearch() {
	var field = document.getElementById("searchBox");
	field.onfocus = function() {this.parentNode.style.backgroundPosition = "0 100%";}
	field.onblur = function() {this.parentNode.style.backgroundPosition = "0 0";}
}
function doRollovers() {
	var images = document.getElementsByTagName("img");
	var buttons = document.getElementsByTagName("input");
	preloads = new Object();
	for(var i = 0; i < images.length; i++) {
		if(images[i].parentNode.nodeName == "A") {
			var imageOffSrc = images[i].src + "";
			if(imageOffSrc.indexOf("_off") != -1){
				var imageOverSrc = imageOffSrc.replace(/_off/g, "_over");
				preloads['imageOff_' + i] = new Image();
				preloads['imageOff_' + i].src = imageOffSrc;
				preloads['imageOver_' + i] = new Image();
				preloads['imageOver_' + i].src = imageOverSrc;
				images[i].parentNode.onmouseover = function(){this.getElementsByTagName("img")[0].src = this.getElementsByTagName("img")[0].src.replace(/_off/g, "_over");}
				images[i].parentNode.onmouseout = function(){this.getElementsByTagName("img")[0].src = this.getElementsByTagName("img")[0].src.replace(/_over/g, "_off");}
			}
		}
		if(((images[i].parentNode.parentNode.parentNode.nodeName == "A") || (images[i].parentNode.parentNode.parentNode.nodeName == "DIV")) && (images[i].parentNode.parentNode.parentNode.className == "area")) {
			var imageOffSrc = images[i].src + "";
			if(imageOffSrc.indexOf("_off") != -1){
				var imageOverSrc = imageOffSrc.replace(/_off/g, "_over");
				preloads['imageOff_' + i] = new Image();
				preloads['imageOff_' + i].src = imageOffSrc;
				preloads['imageOver_' + i] = new Image();
				preloads['imageOver_' + i].src = imageOverSrc;
				images[i].parentNode.parentNode.parentNode.onmouseover = function(){this.getElementsByTagName("img")[0].src = this.getElementsByTagName("img")[0].src.replace(/_off/g, "_over"); this.className += " aHover";}
				images[i].parentNode.parentNode.parentNode.onmouseout = function(){this.getElementsByTagName("img")[0].src = this.getElementsByTagName("img")[0].src.replace(/_over/g, "_off"); this.className = this.className.replace(/ aHover/g, "");}
			}
		}
	}
	for (var i = 0; i < buttons.length; i++){
		if(buttons[i].src){
			var imageOffSrc = buttons[i].src + "";
			if(imageOffSrc.indexOf("_off") != -1){
				var imageOverSrc = imageOffSrc.replace(/_off/g, "_over");
				preloads['imageOff_' + i] = new Image();
				preloads['imageOff_' + i].src = imageOffSrc;
				preloads['imageOver_' + i] = new Image();
				preloads['imageOver_' + i].src = imageOverSrc;
				buttons[i].onmouseover = function(){this.src = this.src.replace(/_off/g, "_over");}
				buttons[i].onmouseout = function(){this.src = this.src.replace(/_over/g, "_off");}
			}
		}
	}
}
function showLocations() {
	http.open("GET", "/system/locations", true);
	http.onreadystatechange = doLocations;
	http.send(null);
}
function doLocations() {
	if (http.readyState == 4) {
		if (http.responseText.indexOf('invalid') == -1) {
			var xmlDocument = http.responseXML;
			var items = xmlDocument.getElementsByTagName("item");
			var locations = document.getElementById("locations");
			for(var q = 0; q < items.length; q++) {
				//build and show locations
				var span = document.createElement("span");
				span.style.left = items[q].getAttribute("x") + 'px';
				span.style.top = items[q].getAttribute("y") + 'px';
				var a = document.createElement("a");
				a.title = items[q].getElementsByTagName("loc")[0].firstChild.nodeValue;
				a.href = "javascript:;";
				a.className = "loc" + q;
				var img = document.createElement("img");
				img.src = "/ui/media/images/general/location_off.png";
				img.alt = items[q].getElementsByTagName("loc")[0].firstChild.nodeValue;
				a.appendChild(img);
				a.onmouseover = function() {this.getElementsByTagName("img")[0].src = this.getElementsByTagName("img")[0].src.replace(/_off/g, "_over");}
				a.onmouseout = function() {this.getElementsByTagName("img")[0].src = this.getElementsByTagName("img")[0].src.replace(/_over/g, "_off");}
				span.appendChild(a);
				locations.appendChild(span);
				//build and show details
				var div = document.createElement("div");
				div.id = "loc" + q;
				var br1 = document.createElement("br");
				var addr = document.createElement("address");
				var strong = document.createElement("strong");
				var title = document.createTextNode(items[q].getElementsByTagName("title")[0].firstChild.nodeValue);
				strong.appendChild(title);
				addr.appendChild(strong);
				var w = 0;
				var address = "";
				while(items[q].getElementsByTagName("address")[0].childNodes[w]) {
					var address = document.createTextNode(items[q].getElementsByTagName("address")[0].childNodes[w].nodeValue);
					addr.appendChild(address);
					var br = document.createElement("br"); addr.appendChild(br);
					++w; ++w;
				}
				
				var phone = document.createTextNode(items[q].getElementsByTagName("phone")[0].firstChild.nodeValue);
				addr.appendChild(phone);
				addr.appendChild(br1);
				var emailLink = document.createElement("a");
				emailLink.href = "mailto:" + items[q].getElementsByTagName("email")[0].firstChild.nodeValue;
				var emailTxt = document.createTextNode(items[q].getElementsByTagName("email")[0].firstChild.nodeValue);
				emailLink.appendChild(emailTxt);
				addr.appendChild(emailLink);
				var p = document.createElement("p");
				var backLink = document.createElement("a");
				backLink.className = "more";
				backLink.href = "javascript:;";
				backLink.onclick = function() {
					document.getElementById("locations").removeAttribute("style");
					this.parentNode.parentNode.style.display = "none";
				}
				var backTxt = document.createTextNode("back");
				backLink.appendChild(backTxt);
				p.appendChild(backLink);
				div.appendChild(addr);
				div.appendChild(p);
				locations.appendChild(div);
				//link location to details
				a.onclick = function() {
					var details = document.getElementById(this.className);
					details.style.display = "block";
					document.getElementById("locations").style.background = "background:url(/ui/media/images/general/map_details.gif) no-repeat 0 0;";
				}
			}
		}
	}
}
function hoverNewsletter() {
	var field = document.getElementById("email");
	field.onfocus = function() {
		this.parentNode.style.backgroundPosition = "0 100%";
		if(this.value=='E-mail address'){this.value=''; this.style.color='#454b4c';}
	}
	field.onblur = function() {
		this.parentNode.style.backgroundPosition = "0 0";
		if(this.value==''){this.value='E-mail address'; this.style.color='#a9b1a3';}
	}
}
function hoverJobs() {
	var field = document.getElementById("jobBox");
	field.onfocus = function() {this.parentNode.style.backgroundPosition = "0 100%"; this.style.color='#454b4c';}
	field.onblur = function() {this.parentNode.style.backgroundPosition = "0 0"; this.style.color='#88acb3';}
}
function hoverSite() {
	var field = document.getElementById("siteBox");
	field.onfocus = function() {this.parentNode.style.backgroundPosition = "0 100%"; this.style.color='#454b4c';}
	field.onblur = function() {this.parentNode.style.backgroundPosition = "0 0"; this.style.color='#88acb3';}
}
function requestCall() {
	var country = document.getElementById("country");
	country.onchange = function() {
		document.getElementById("phoneNumber").value = this.options[this.selectedIndex].value + " ";
		document.getElementById("phoneNumber").focus();
	}
}

function doSlides() {
	slides = new slideshow("slides");
	pics = document.getElementById("intro").getElementsByTagName("div");
	links = document.getElementById("menu").getElementsByTagName("a");
	for(var q = 0; q < links.length; q++) {
		slides.add_slide(new slide(links[q].src));
		links[q].href = "javascript:slides.gotoSlide("+q+");";
	}
	links[0].parentNode.className = "hovered";
	slides.transition(1);
	if(links.length > 1) {slides.play();}
}
function slide(src) {this.src = src;}
function slideshow(ssname) { //inspired by Patrick Fitzgerald - www.barelyfitz.com
	this.name = ssname;
	this.slides = new Array();
	this.current = 0;
	this.prev = -1;
	this.timeoutid = 0;
	this.stopped = false;
	this.add_slide = function(slide) {
		var i = this.slides.length;
		this.slides[i] = slide;
	}
	this.play = function() {
		this.pause();
		this.stopped = false;
		this.timeoutid = setTimeout(this.name + ".loop()", 6000);
	}
	this.pause = function() {
		if(this.timeoutid != 0) {
			clearTimeout(this.timeoutid);
			this.timeoutid = 0;
		}
	}
	this.fullStop = function() {
		this.pause();
		this.stopped = true;
	}
	this.update = function() {
		links[this.current].parentNode.className = "hovered";
		pics[this.current].className += " active";
		if(!this.stopped) {
			if(this.current > 0) {this.prev = this.current - 1;}
			else {this.prev = this.slides.length - 1;}
		}
		if(this.prev != -1) {links[this.prev].parentNode.className = ""; pics[this.prev].className = pics[this.prev].className.replace(/ active/g, "");}
		this.transition(1);
		this.play();
	}
	this.transition = function(i) {
		if (typeof i != 'undefined') {opacity = i;}
		if(opacity <= 10) {
			if(this.prev != -1) {pics[this.prev].style.opacity = ((10-opacity)*10)/100; pics[this.prev].style.filter = "alpha(opacity=" + (10-opacity)*10 + ")";}
			else if(this.prev == -1) {pics[this.current].className += " active";}
			pics[this.current].style.opacity = (opacity*10)/100; pics[this.current].style.filter = "alpha(opacity=" + opacity*10 + ")";
			++opacity;
			setTimeout(this.name + ".transition()", 75);
		}
		else {
			if(this.prev != -1) {pics[this.prev].className = pics[this.prev].className.replace(/ active/g, "");}
			return true;
		}
	}
	this.next = function(n) {
		if(n < this.slides.length && n >= 0) {this.current = n;}
		this.update();
	}
	this.loop = function() {
		if(this.current < this.slides.length - 1) {next_slide = ++this.current;}
		else {next_slide = 0;}
		this.next(next_slide);
		this.play();
	}
	this.gotoSlide = function(n) {
		if((n < this.slides.length) && (n >= 0)) {
			this.fullStop();
			if(n != this.current) {
				this.prev = this.current;
				this.current = n;
			}
		}
		this.update();
	}
}

function validateRequest() {
	clearErrors();
	if(rName.value == "") {showError("name", "Please enter your name:"); valid = 0;}
	if(rCountry.selectedIndex == 0) {showError("country", "Please select your country"); valid = 0;}
	if(rPhone.value.length < 10) {showError("phoneNumber", "Please enter your phone number"); valid = 0;}
	if(valid == 1) {return true;}
	else {return false};
}
function clearErrors() {
	rValid = 1;
	rName = document.getElementById("name");
	rCountry = document.getElementById("country");
	rPhone = document.getElementById("phoneNumber");
	var labels = document.getElementById("right").getElementsByTagName("label");
	for(var q = 0; q < labels.length; q++) {
		if(labels[q].getElementsByTagName("span")[1]) {if(labels[q].getElementsByTagName("span")[1].className == "error") {labels[q].removeChild(labels[q].getElementsByTagName("span")[1]);}}
	}
}
function showError(objId, msg) {
	var labels = document.getElementById("right").getElementsByTagName("label");
	for(var q = 0; q < labels.length; q++) {
		if(labels[q].attributes['for'].nodeValue == objId) {
			var span = document.createElement("span");
			span.className = "error";
			var txt = document.createTextNode(msg);
			span.appendChild(txt);
			labels[q].appendChild(span);
		}
	}
}