function addLoadEvent(func,arg){
	if (!arg){
	  var oldonload = window.onload;
	  if (typeof window.onload != 'function') {
	    window.onload = func;
	  } else {
	    window.onload = function() {
	      oldonload();
	      func();
	    }
		}
	}
	else{/*if the onload event has an argument/parameter cater for that*/
	  if (arg){
		  oldonload = window.onload;
	  	if (typeof window.onload != 'function') {
		    window.onload = func(arg); 
			}
	    window.onload = function() {
	      oldonload();
	      func(arg); 
	    }
	  }
	}
}

function loadGAScript(){
	/*Check browser for Dom compatibility*/
	if (!document.getElementsByTagName) return false;
	/*Determines whether the page is using a secure or unsecure protocol*/
	var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
	/*Writes in the script to the document head*/
	var gaScript = document.createElement("script");
	gaScript.setAttribute("src",gaJsHost +"google-analytics.com/ga.js");
	gaScript.setAttribute("type","text/javascript");
	var domHead = document.getElementsByTagName("head")[0]
	domHead.appendChild(gaScript);
}

loadGAScript();
var pageTracker;

/*Calls the analytics function*/
function callGA(){
	if (typeof(_gat) == 'object'){
		pageTracker = _gat._getTracker("UA-299218-3");
		pageTracker._initData();
		pageTracker._trackPageview()
	}
}
addLoadEvent(callGA);


function getTopAttribute(parentMenu, initFlag) {
	var returnValue = parentMenu.offsetTop;
	if (parentMenu.tagName == 'LI' && initFlag == false) {
		var hrefTag = parentMenu.getElementsByTagName('A')[0];
		if (hrefTag) returnValue += hrefTag.parentNode.offsetHeight + 1;
	}
	return returnValue;
}

function getHorizontalAttribute(parentMenu, alignSide) {
	var returnValue = parentMenu.offsetLeft;
	if (alignSide =='R') {
		return returnValue
	} else {
		if (parentMenu.tagName == 'LI') {
			var hrefTag = parentMenu.getElementsByTagName('A')[0];
			if (hrefTag) returnValue += hrefTag.parentNode.offsetWidth;
		}
	}
	return returnValue;
}

function getElementSafe(id) { 
  var el = document.getElementById? document.getElementById(id): null;
  return el;
} 

function getItemTop(el) {
	var elDim = el.offsetTop;
	if (!elDim) {
		elDim =0;
		}
	return elDim;
}

function getItemLeft(el) {
	var elDim = el.offsetLeft;
	if (!elDim) {
		elDim =0;
		}
	return elDim;
}

function getItemWidth(el) {
	var elDim = el.offsetWidth;
	if (!elDim) {
		elDim =0;
		}
	return elDim;
}

function getItemHeight(el) {
	var elDim = el.offsetHeight;
	if (!elDim) {
		elDim =0;
		}
	return elDim;
}

function switchDivVisibility(divName,show) {
		var el = getElementSafe(divName);
		el.style.visibility = show;
}

function cleanupHash(hash) {
	if (hash.indexOf("%23")>-1) {
		hash = hash.replace(/%23/,"#");
	}
	return hash;
}

function breakupHash(hash) {
	// assumes hash format of #nav?xml&attr which can be repeated for each nav level. Nav must always exist, but if no xml or attr then drop the appropriate section
	var navArray = new Array();
	var xmlArray = new Array();
	var attrArray = new Array();
	
	var cleanHash = cleanupHash(hash);
	var navParts = cleanHash.split("#");
	navParts.splice(0,1);
	
	for (var i=0; i<navParts.length; i++) {
		var xmlPart = navParts[i].indexOf("?");
		var attrPart = navParts[i].indexOf("&");
		navArray[i] = xmlPart>-1 ? navParts[i].slice(0,xmlPart) : attrPart>-1 ? navParts[i].slice(0,attrPart) : navParts[i];
		xmlArray[i] = xmlPart>-1 ? attrPart>-1 ? navParts[i].slice(xmlPart+1,attrPart) : navParts[i].slice(xmlPart+1) : null;
		if (attrPart>-1) {
			var attrParts = navParts[i].split("&");
			attrParts.splice(0,1);
			attrArray[i] = attrParts;
		} else attrArray[i] = null;
	}
	return [navArray, xmlArray, attrArray];
}

String.prototype.toFirstUpperCase = function() {
/*	var re = /\s/;
	var words = this.split(re);
	re = /(\S)(\S+)/;
	for (i = words.length - 1; i >= 0; i--) {
		re.exec(words[i]);
		words[i] = RegExp.$1.toUpperCase() + RegExp.$2.toLowerCase();
	}
	return words.join(' ');*/
	var firstLetter = this.substring(0,1).toUpperCase();
	var rest = this.substring(1);
	var allDone = firstLetter + rest;
	return allDone;
} 

function getURLParam(name)
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}


