// JavaScript Document

sfHover = function() {
	var sfEls = document.getElementById("ulTopnav").getElementsByTagName("LI");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className+=" sfhover";
		}
		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
		}
	}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);


/* Offers easier way to get an element by its id. */
function $() {
	var elements = new Array();
	for (var i = 0; i < arguments.length; i++) {
		var element = arguments[i];
		if (typeof element == 'string') element = document.getElementById(element);
		if (arguments.length == 1) return element;
		elements.push(element);
	}
	return elements;
}

function removeChildren(obj) {
	if (obj) {
		while(obj.firstChild) obj.removeChild(obj.firstChild);
	}
}

function emailValidate() {
	ns = $("formNewsletter");
	if (!ns) return false;
	ef = ns.newsLetter;
	if (!ef) return false;
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(ef.value) == false){
		alert('Please enter a valid email address');
		return false;
	}
	return true;
}

addLoadEvent(function() {
	/* Validates the Email Newsletter signup form submission at 
	the bottom of each site page */
	ns = $("formNewsletter");
	if (!ns) return false;
	ns.name = "formNewsletter";
	ns.onsubmit = function () {return emailValidate();}
});

/* Retrieve the value of a URL variable */
function getURLVar(key, default_) {
	if (default_==null) default_="";
	key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	var regex = new RegExp("[\\?&]"+key+"=([^&#]*)");
	var qs = regex.exec(window.location.href);
	if(qs == null) return default_;
	else return qs[1];
} 

function setTab(){
	oldTab=document.getElementById('divDif01');
	oldNum=document.getElementById('aDif02');
}
function toggle_visibility(id,id2) {
	var e = document.getElementById(id);
	var f = document.getElementById(id2);
	oldTab.style.display = 'none';
	e.style.display = 'block';
	oldNum.style.backgroundPosition = '';
	f.style.backgroundPosition = '0 100%';
	oldTab=e;
	oldNum=f;
}

String.prototype.trim = function() { return this.replace(/^\s+|\s+$/, ''); };


/* Function to allow an event to be added to window.onload, as some individual
pages need to do so and the main window.onload is located in a separate script. */
function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
        	oldonload();
			func();
		}
	}
}

function hasClass(obj,className) {
	if (typeof obj == 'undefined' || obj==null || !RegExp) { return false; }
	var re = new RegExp("(^|\\s)" + className + "(\\s|$)");
	if (typeof(obj)=="string") {
		return re.test(obj);
	}
	else if (typeof(obj)=="object" && obj.className) {
		return re.test(obj.className);
	}
	return false;
}

function addClass(element, value) {
	if (!element.className) {
		element.className = value;
	} else {
		var newClassName = element.className;
		newClassName += " ";
		newClassName += value;
		element.className = newClassName;

	}
}

function removeClass(ele,cls) {
	if (freqTrav_hasClass(ele,cls)) {
		var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
		ele.className=ele.className.replace(reg,' ');
	}
}