// JavaScript Document
function MM_jumpMenu(targ,selObj,restore){

  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}


function showCats( parent_id ) {

	el = document.getElementById(parent_id);

	if(! el ) {
		return false;
	}

	if (! el.childNodes )
		return false;

	for(var i=0; i<el.childNodes.length; i++) {
		if ( el.childNodes[i].tagName == "UL" ) {

			el.childNodes[i].style.display = "block"
		}
	}

	return true;

}


function hideCats( parent_id ) {
	el = document.getElementById(parent_id);


	if(! el ) {
		return false;
	}

	if (! el.childNodes )
		return false;

	for(var i=0; i<el.childNodes.length; i++) {
		if ( el.childNodes[i].tagName == "UL" ) {
			el.childNodes[i].style.display = "none"
		}
	}

	return true;

}


// **** **** **** **** *** **** ****
// Stuff taken from dave's ajax scrip.js file
// Applies to AJAX pages accross the board
// **** **** **** **** *** **** ****

function show ( id ) {
	var el = document.getElementById(id);
	if (! el ) {
		return;
	}
	el.style.display = 'block';
}


function fadeout( id, speed, slide ) {

	if (! speed ) {
		speed = 3000;
	}


	var el = document.getElementById(id);
	if (! el ) {
		return;
	}

	if ( el.timeouts ) {
		if ( el.timeouts['fadeouts'] && el.timeouts['fadeouts'].length > 0 ) {
			var numTimeouts = el.timeouts['fadeouts'].length;

			for ( var i=0; i < numTimeouts; i++ ) {
				var timeout = el.timeouts['fadeouts'][i];
			}
		}

	}

	opacity(id, 100, 0, speed, slide);
}


function opacity(id, opacStart, opacEnd, millisec, slide) {


	//speed for each frame
	var speed = Math.round(millisec / 100);
	var timer = 0;


	el = document.getElementById(id);
	if(! el ) {
		return;
	}

	el.style.display = 'block';

	el.timeouts = new Array();
	el.timeouts['fadeouts'] = new Array();

	//determine the direction for the blending, if start and end are the same nothing happens
	if(opacStart > opacEnd) {
		for(i = opacStart; i >= opacEnd; i--) {
			el.timeouts['fadeouts'][i] = setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
			timer++;
		}
	} else if(opacStart < opacEnd) {
		for(i = opacStart; i <= opacEnd; i++) {
			el.timeouts['fadeouts'][i] = setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
			timer++;
		}
	}
	i = el.timeouts['fadeouts'].length;

	if ( slide ) {
		el.timeouts['fadeouts'][i] = setTimeout("slide('" + id + "',1000)",(timer * speed));
	}


}


//change the opacity for different browsers
function changeOpac(opacity, id) {
	var object = document.getElementById(id).style;
	object.opacity = (opacity / 100);
	object.MozOpacity = (opacity / 100);
	object.KhtmlOpacity = (opacity / 100);
	object.filter = "alpha(opacity=" + opacity + ")";
}




function start() {
	displayTZCountDown(setTZCountDown(year,month,day,hour,tz),lab);
}


function setTZCountDown(year,month,day,hour,tz)
{
	var toDate = new Date();
	if (year > 0){
		if (year <= toDate.getYear())toDate.setYear(toDate.getYear() + 1);
			toDate.setYear(year);
	}

	if (month == '*')toDate.setMonth(toDate.getMonth() + 1);
	else if (month > 0){
		if (month <= toDate.getMonth())toDate.setYear(toDate.getYear() + 1);
		toDate.setMonth(month-1);
	}
	if (day.substr(0,1) == '+') {
		var day1 = parseInt(day.substr(1));
		toDate.setDate(toDate.getDate()+day1);
	} else {
		toDate.setDate(day);
	}
	toDate.setHours(hour);
	toDate.setMinutes(0-(tz*60));
	toDate.setSeconds(0);

	var fromDate = new Date();

	fromDate.setMinutes(fromDate.getMinutes() + fromDate.getTimezoneOffset());
	var diffDate = new Date(0);
	diffDate.setMilliseconds(toDate - fromDate);
	return Math.floor(diffDate.valueOf()/1000);
}

function displayTZCountDown(countdown,tzcd)
{
	if (countdown < 0) {

	} else {
		var secs = countdown % 60;
		if (secs < 10) secs = '0'+secs;
		var countdown1 = (countdown - secs) / 60;
		var mins = countdown1 % 60;
		if (mins < 10) mins = '0'+mins;
		countdown1 = (countdown1 - mins) / 60;
		var hours = countdown1 % 24;
		var days = (countdown1 - hours) / 24;
		document.getElementById(tzcd).innerHTML = days + " day" + (days == 1 ? '' : 's') + '  ' +hours+ ' hours ' +mins+ ' minutes  '+secs+' seconds to go';
		setTimeout('displayTZCountDown('+(countdown-1)+',\''+tzcd+'\');',999);
	}
}


function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
	window.onload = func;
  } else {
	window.onload = function() {
	  oldonload();
	  func();
	}
  }
}





/*
	Developed by Robert Nyman, http://www.robertnyman.com
	Code/licensing: http://code.google.com/p/getelementsbyclassname/
*/
var getElementsByClassName = function (className, tag, elm){
	if (document.getElementsByClassName) {
		getElementsByClassName = function (className, tag, elm) {
			elm = elm || document;
			var elements = elm.getElementsByClassName(className),
				nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null,
				returnElements = [],
				current;
			for(var i=0, il=elements.length; i<il; i+=1){
				current = elements[i];
				if(!nodeName || nodeName.test(current.nodeName)) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	else if (document.evaluate) {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = "",
				xhtmlNamespace = "http://www.w3.org/1999/xhtml",
				namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace)? xhtmlNamespace : null,
				returnElements = [],
				elements,
				node;
			for(var j=0, jl=classes.length; j<jl; j+=1){
				classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
			}
			try	{
				elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
			}
			catch (e) {
				elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
			}
			while ((node = elements.iterateNext())) {
				returnElements.push(node);
			}
			return returnElements;
		};
	}
	else {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = [],
				elements = (tag === "*" && elm.all)? elm.all : elm.getElementsByTagName(tag),
				current,
				returnElements = [],
				match;
			for(var k=0, kl=classes.length; k<kl; k+=1){
				classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
			}
			for(var l=0, ll=elements.length; l<ll; l+=1){
				current = elements[l];
				match = false;
				for(var m=0, ml=classesToCheck.length; m<ml; m+=1){
					match = classesToCheck[m].test(current.className);
					if (!match) {
						break;
					}
				}
				if (match) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	return getElementsByClassName(className, tag, elm);
};

function getDeadCentre(Xwidth,Yheight) {
	// First, determine how much the visitor has scrolled

	var scrolledX, scrolledY;
	if( self.pageYOffset ) {
		scrolledX = self.pageXOffset;
		scrolledY = self.pageYOffset;
	} else if( document.documentElement && document.documentElement.scrollTop ) {
		scrolledX = document.documentElement.scrollLeft;
		scrolledY = document.documentElement.scrollTop;
	} else if( document.body ) {
		scrolledX = document.body.scrollLeft;
		scrolledY = document.body.scrollTop;
	}

	// Next, determine the coordinates of the center of browser's window

	var centerX, centerY;
	if( self.innerHeight ) {
		centerX = self.innerWidth;
		centerY = self.innerHeight;
	} else if( document.documentElement && document.documentElement.clientHeight ) {
		centerX = document.documentElement.clientWidth;
		centerY = document.documentElement.clientHeight;
	} else if( document.body ) {
		centerX = document.body.clientWidth;
		centerY = document.body.clientHeight;
	}

	// Xwidth is the width of the div, Yheight is the height of the
	// div passed as arguments to the function:
	var leftOffset = scrolledX + (centerX - Xwidth) / 2;
	var topOffset = scrolledY + (centerY - Yheight) / 2;
	// The initial width and height of the div can be set in the
	// style sheet with display:none; divid is passed as an argument to // the function

	var output = [];
	output[0] = leftOffset;
	output[1] = topOffset;

	return output;

}

function setrawcookie(name, value, expires, path, domain, secure) {
	// Send a cookie with no url encoding of the value
	//
	// version: 905.412
	// discuss at: http://phpjs.org/functions/setrawcookie
	// +   original by: Brett Zamir (http://brettz9.blogspot.com)
	// +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
	// +   derived from: setcookie
	// *     example 1: setcookie('author_name', 'Kevin van Zonneveld');
	// *     returns 1: true
	if (expires instanceof Date) {
		expires = expires.toGMTString();
	} else if(typeof(expires) == 'number') {
		expires = (new Date(+(new Date()) + expires * 1e3)).toGMTString();
	}

	var r = [name + "=" + value], s={}, i='';
	s = {expires: expires, path: path, domain: domain};
	for(i in s){
		s[i] && r.push(i + "=" + s[i]);
	}

	return secure && r.push("secure"), document.cookie = r.join(";"), true;
}


function setcookie(name, value, expires, path, domain, secure) {
	// Send a cookie
	//
	// version: 905.412
	// discuss at: http://phpjs.org/functions/setcookie
	// +   original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
	// +   bugfixed by: Andreas
	// +   bugfixed by: Onno Marsman
	// +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
	// -    depends on: setrawcookie
	// *     example 1: setcookie('author_name', 'Kevin van Zonneveld');
	// *     returns 1: true
	return this.setrawcookie(name, encodeURIComponent(value), expires, path, domain, secure);
}

startList = function() {
	if (document.all&&document.getElementById) {
		
		
		if ( document.getElementById("maintabs") == undefined ) return;
		
		profiletabRoot = document.getElementById("maintabs");
		for (i=0; i<profiletabRoot.childNodes.length; i++) {
			node = profiletabRoot.childNodes[i];
			if (node.nodeName=="LI") {
				node.onmouseover=function() {
					this.className+=" over";
				}
				node.onmouseout=function() {
					this.className=this.className.replace(" over", "");
				}
			}
		}
	}
}
window.onload=startList;
