function hasClass(ele,cls) {
	return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
}

function addClass(ele,cls) {
	if (!this.hasClass(ele,cls)) ele.className += " "+cls;
}

function removeClass(ele,cls) {
	if (hasClass(ele,cls)) {
		var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
		ele.className=ele.className.replace(reg,' ');
	}
}

// ----------------------------------

var RGB = new Array(256);
var k = 0;
var hex = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F");

for (i = 0; i < 16; i++) {
	for (j = 0; j < 16; j++) {
		RGB[k] = hex[i] + hex[j];
		k++;
	}
}

function convert(p_str){
	if(p_str.indexOf("rgb(") != -1)
	{
		// remove unwanted chars
		p_str = p_str.replace("rgb(", "");
		p_str = p_str.replace(")", "");
		p_str = p_str.replace(/ /g, "");

		p_str = p_str.split(",");

		rr = RGB[p_str[0]];
		gg = RGB[p_str[1]];
		bb = RGB[p_str[2]];

		p_str = rr + gg + bb
	}

	return p_str;
}


function navSelect(p_id)
{
	var navItems = document.getElementById(p_id).getElementsByTagName("a");
	for(i=0; i<navItems.length; i++)
	{
		var child = navItems[i];
		if(child.href == document.location.href || (document.location.href == "http://" + document.location.host + "/index.html" && child.href == "http://" + document.location.host + "/"))
		{
			addClass(child, "on");
		}
	}
}


var repositionPageElementsInit = true;
function repositionPageElements()
{
	var main = document.getElementById("main");
	var cont = document.getElementById("cont");
	var footer = document.getElementById("footer");
	var pageWidth = document.documentElement.clientWidth;
	var pageHeight = document.documentElement.clientHeight;
	var pageScrollHeight = document.documentElement.scrollHeight;
	var maxHeight = 565;
	var mainAdjust = 50;



	var mainHeight = (main.clientHeight + main.offsetTop + mainAdjust)
	
	if(parseInt(pageHeight) > maxHeight && parseInt(pageHeight) > mainHeight)
	{
		footer.style.top = pageHeight - footer.clientHeight + "px";
		cont.style.height = "";
	}
	else
	{
		footer.style.top = (mainHeight > maxHeight ? mainHeight : maxHeight) - footer.clientHeight + "px";
		
		var height = pageScrollHeight < maxHeight ? maxHeight : pageScrollHeight;
		if(repositionPageElementsInit && height == pageScrollHeight)
		{
			// slight height adjust, not certain why needed
			height += 20;
		}
		cont.style.height = height + "px";
	}



	// show the footer
	footer.style.visibility = "visible";
	
	repositionPageElementsInit = false;
}


var tickerTimeout = null;
var tickerItems = new Array();
function tickerTween(p_no)
{
	
	// init the array
	if(tickerItems.length == 0)
	{
		var ticker = document.getElementById("ticker");
		tickerItems = ticker.getElementsByTagName("span");
	}
	
	var itemNo = p_no == null ? Math.floor(Math.random() * tickerItems.length) : p_no >= tickerItems.length ? 0 : p_no;
	
	if(tickerItems.length > 0)
	{	
		tickerItems[itemNo].style.display = "block";
		
		showItem = new Tween(tickerItems[itemNo].style,'top','',-20,0,0,'px');
		showItem.func = Tween.strongEaseOut;
		showItem.continueTo(0,1);
		
		if(tickerItems.length > 1)
		{			
			showItem.onMotionFinished = function()
			{
				hideItem = new Tween(tickerItems[itemNo].style,'top','',0,0,0,'px');
				hideItem.func = Tween.strongEaseOut;
				hideItem.onMotionStarted = function()
				{
					tickerTween(itemNo + 1);
				}
				tickerTimeout = setTimeout("hideItem.continueTo(20,1); tickerTimeout= null;", 2500);
			}
		}
	}
	else
	{
		// clear the magnifying glass image
		document.getElementById("mag-glass").style.display = "none";
	}
}


function showVisitLayer()
{
	var v = document.getElementById("visit");
	var vl = document.getElementById("visit-layer");
	if(v.className == "on")
	{
		v.className = "";
	}
	else
	{
		v.className = "on";
	}
	var startTop = v.className == "on" ? 0 - vl.clientHeight : 22;
	var endTop = v.className == "on" ? 22 :  0 - vl.clientHeight;

	showVL = new Tween(vl.style,'top','',startTop,0,0,'px');
	showVL.func = Tween.strongEaseOut;
	showVL.continueTo(endTop,0.5);
}

var swfCompleted = false;
function resizeLargeSWFDiv()
{
	var swfDiv = document.getElementById("swfcont");
	if(swfDiv.style.display != "none" && !swfCompleted)
	{
		swfDiv.style.height = document.documentElement.clientHeight + 1 + "px";
	}
}





function makeHttpRequest(url, callback_function) {
	var http_request = false;

	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType) {
			http_request.overrideMimeType('text/xml');
		}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}

	if (!http_request) {
		alert('Unfortunatelly you browser doesn\'t support this feature.');
		return false;
	}

	http_request.onreadystatechange = function() {
		if (http_request.readyState == 4) {
			if (http_request.status == 200) {
				eval(callback_function + '(http_request.responseText)');
			} else {
				alert('There was a problem with the request for ' + url + '.(Code: ' + http_request.status + ')');
			}
		}
	}

	http_request.open('GET', url, true);
	http_request.send(null);
}




window.onload = function()
{
	tickerTween();
//	loadMovie();
	
	if(document.getElementById("nav"))
	{
		navSelect("nav");
	}
	
	if(document.getElementById("column-cont"))
	{
		navSelect("column-cont");
	}

	if(document.getElementById("column-cont"))
	{
		navSelect("footer");
	}
}


function showsite()
{
	document.getElementById("cont").style.display = document.getElementById("leftcol").style.display = document.getElementById("footer").style.display = "block";		
	
	// show any videos
	var embeds = document.getElementsByTagName("embed");
	for(i=0; i<embeds.length; i++)
	{
		embeds[i].style.visibility = "visible";
	}
	
	var objects = document.getElementsByTagName("object");
	for(i=0; i<objects.length; i++)
	{
		objects[i].style.visibility = "visible";
	}	
}

function loadMovie()
{
	// load the intro movie if on the homepage, call js function on the last frame of the swf
	var href = document.location.href.toLowerCase();
	href = href.replace("http://", "");

	var arr = href.split("/");
	if(arr.length == 1 || arr[1] == "" || arr[1] == "index.html")
	{
		// homepage
		var intro_seen = false;
		var ca = document.cookie.split(';');
		for(i=0; i<ca.length; i++)
		{
			if(ca[i].indexOf("intro_seen=true") != -1)
			{
				intro_seen = true;
				break;
			}
		}
		
		if(!intro_seen)
		{
			// show overlay
			var ov = document.getElementById("overlay");
			ov.style.display = "block";
			ov.style.height = document.documentElement.clientHeight + "px";

			// play movie
			var so = new SWFObject("swfs/intro.swf", "shell", "740", "361", "8", "#000000");
			so.write("swfcont");	

			// set cookie	
			var date = new Date();
			date.setTime(date.getTime()+(1*24*60*60*1000));
			var expires = " expires="+date.toGMTString();
			document.cookie = "intro_seen=true; "+expires+"; path=/";
		}
		else
		{
			showsite();
		}
	}
	else
	{
		showsite();
	}
}

function siteload()
{
	// hide movie
	document.getElementById("swfcont").style.display = "none";	
	
	// show the leftcol and cont divs
	document.getElementById("cont").style.display = document.getElementById("leftcol").style.display = document.getElementById("footer").style.display = "block";		
	
	var timer = 1;
	var opacityTween = new OpacityTween(document.getElementById("overlay"),Tween.strongEaseOut, 100, 0, timer);
	opacityTween.start();

	// for some stoopid reason, opacityTween.onMotionFinished wouldnt work in IE
	var t = setTimeout('document.getElementById("overlay").style.display = "none"; showsite();', (timer * 1000));
}


