var vSiteRoot = fGetRoot();
var W3CDOM = (document.getElementById && document.getElementsByTagName);
fAddEvent(window, "load", fInitPage);
function fInitPage() {
	fInitNavTips("iNavL1Misc");
	fInitNavTips("iNavL1Products");
	fInitNavTips("iNavL2");	
	fInitALinks();
	fInitRoundedCorners();
}
function fInitRoundedCorners(){ if(!W3CDOM) return;
	var n = document.getElementById("iNavL3"); if(n!=null) fAddRoundedCornersDIV(n, "jsNavL3");
	n = document.getElementById("iNavAnchorList"); if(n!=null) fAddRoundedCornersDIV(n, "jsNavAnchorList");	
	getElementsByCondition(fGetClassRoundedCornersTBL, null, ["tblInfo","tableInfo"]);
}
function fAddRoundedCornersDIV(obj, c){
	var d = document.createElement('div'); d.className = c;
	obj.parentNode.replaceChild(d, obj);
	var d1 = document.createElement('div');
	var d2 = document.createElement('div');
	var d3 = document.createElement('div');
	var d4 = document.createElement('div');
	d.appendChild(d1); d1.appendChild(d2); d2.appendChild(d3); d3.appendChild(d4); d4.appendChild(obj);
}
function fAddRoundedCornersTBL(obj, c){
	var d = document.createElement('div'); d.className = c;
	obj.parentNode.replaceChild(d, obj);
	var d1 = document.createElement('div'); d1.className = "tblCrnBL";
	var d2 = document.createElement('div'); d2.className = "tblCrnBR";
	d.appendChild(obj); d.appendChild(d1); d.appendChild(d2);
}
function fGetClassRoundedCornersDIV(e,n,arr){ if(e.className==arr[0] && !e._done) { e._done = true; fAddRoundedCornersDIV(e, arr[1]);} }
function fGetClassRoundedCornersTBL(e,n,arr){ if(e.className==arr[0] && !e._done) { e._done = true; fAddRoundedCornersTBL(e, arr[1]);} }

function fInitALinks() {
	var n = document.getElementsByTagName("A"); if(n==null) return;
	for (var i=0; i<n.length; i++) {
		fAddEvent(n[i], "focus", fALinkFocus);
		fAddEvent(n[i], "blur", fALinkBlur);
	}
}
function fALinkFocus(e){
	if(!e) var e = window.event; e = (e.target) ? e.target : e.srcElement;
	addClass ( e, 'focus' );
}

function fALinkBlur(e){
	if(!e) var e = window.event; e = (e.target) ? e.target : e.srcElement;
	removeClass ( e, 'focus' );
}
function fInitNavTips(idStr) {
	var n = document.getElementById(idStr); if(n==null) return;
	n = n.getElementsByTagName("A"); if(n==null) return;
	for (var i=0; i<n.length; i++) {
		var cn = n[i];
		if(cn.title=="") continue;
		cn._title = cn.title; if(document.location.search.indexOf("alt=1")<0) cn.title = ""; // debug!!
		fAddEvent(cn, "mouseover", fNavTipShow);
		fAddEvent(cn, "mouseout", fNavTipHideTimer);
		fAddEvent(cn, "focus", fNavTipShow);
		fAddEvent(cn, "blur", fNavTipHideTimer);
	}
}
function fInitNavRollovers(idStr) {
	var n = document.getElementById(idStr); if(n==null) return;
	n = n.getElementsByTagName("A"); if(n==null) return;
	var pi = new Array();
	for (var i=0; i<n.length; i++) {
		var cn = n[i]; var ci = cn.getElementsByTagName("IMG"); if(ci==null) return; var ci = ci[0];
		cn._img = ci; ci._src = ci.src; ci._src1 = fGetImgOverSrc(ci.src);
		pi[i] = new Image(); pi[i].src = ci._src1;
		fAddEvent(cn, "mouseover", fNavImgSwap);
		fAddEvent(cn, "mouseout", fNavImgRestore);
		fAddEvent(cn, "focus", fNavImgSwap);
		fAddEvent(cn, "blur", fNavImgRestore);
	}
}
function fGetImgOverSrc(s){ s = s.split("."); var x = s.pop(); return s.join(".") + "1." + x; }
var myTimer = null;
function fNavTipHideTimer(e){
	myTimer = setTimeout("fNavTipHide();", 300);
}
function fNavTipShow(e){
	if(!e) var e = window.event; e = (e.target) ? e.target : e.srcElement;
	if(!e._title) e = e.parentElement;
	if(myTimer){ clearTimeout(myTimer); mytimer = null;}
	var d = document.getElementById("iNavTip"); if(d==null) return;
	fApplyStyle(d, "visibility", "visible");
	d.innerHTML = e._title;
}
function fNavTipHide(){
	fApplyStyle("iNavTip", "visibility", "hidden");
}
function fNavImgSwap(e){
	if(!e) var e = window.event; e = (e.target) ? e.target : e.srcElement;
	if(e._img) e = e._img; e.src = e._src1;
}
function fNavImgRestore(e){
	if(!e) var e = window.event; e = (e.target) ? e.target : e.srcElement;
	if(e._img) e = e._img; e.src = e._src;
}
function fWriteDate(){
	var dt = new Date();
	var d = "Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday".split("|");
	var m = "January|February|March|April|May|June|July|August|September|October|November|December".split("|");
	var t = "|st|nd|rd|th".split("|");
	var c = dt.getDate();
	var e = c%10;
	var f = Math.floor(c/10);
	document.write(d[dt.getDay()]+" "+c+"<sup>"+t[(e>3||f==1)?4:e]+"</sup> "+m[dt.getMonth()]+" "+dt.getFullYear());
}

function fGetRoot(){
	if (!document.getElementById) document.getElementById = function() { return "/"; }
	var l = document.getElementById("iPathFinder");
	if(!l||!l.src) return "/";
	l = String(l.src);
	l = l.substring(0, l.indexOf("_assets/"));
	return l;
}
function getElementsByCondition(condition,container,arg){	
container = container || document;
var all = container.all || container.getElementsByTagName('*'); 
var arr = new Array(); 
var e; 
for(var k=0; k<all.length; k++){
	 e = all[k];
		 if(condition(e,k,arg))
	 arr[arr.length] = e;
	}
	 return arr; 
}
function fApplyStyle(id, style, prop){ var e = (typeof(id)=="string")?document.getElementById(id):id; if(e==null) return; if(e.style) e = e.style; e[style] = prop; }
function fAddEvent(obj, evType, fn){ if(obj.addEventListener){ obj.addEventListener(evType, fn, false); return true; } else if(obj.attachEvent){ var r = obj.attachEvent("on"+evType, fn); return r; } else return false; }
if(!Array.prototype.pop) {
	function array_pop(){ lastElement = this[this.length-1]; this.length = Math.max(this.length-1,0); return lastElement;	}
	Array.prototype.pop = array_pop;
}

function addClass ( $obj, $class )
{
	if ( $obj.className == '' ){
		$obj.className = $class
	} else{
		var rE = new RegExp ( '(^| )' + $class + '( |$)' );
		if ( !rE.test ( $obj.className ) )	{
			$obj.className += ' ' + $class
		}
	}
}
function removeClass ( $obj, $class ){
	if ( $obj.className == $class )	{
		$obj.className = '';
	} else{
		$obj.className = $obj.className.toString( ).replace ( ' ' + $class, '' )
	}
}

var classFinder		= new Object ();
classFinder.jsCount	= 0;
classFinder.tags		= new Array();
classFinder.tagClasses	= new Array();

classFinder.getJSClasses = function ( $tag, $node ){
	
	
	var node	= $node || document;
	var tag	= $tag  || '*';
	var els	= node.getElementsByTagName ( tag );
	var rE	= /(js\w+)/g;
	
	
	var l		= els.length
	var ref, matches, name;
	
	while ( --l )	{		
		
		ref		= els [ l ];		
		
		if ( !ref.className )
			continue;	
			
		matches	= ref.className.match ( rE );		
	
		if ( !matches )
			continue;
		
		this.tags [ this.jsCount ] = ref;	
		
		for ( var i = 0; i < matches.length; i++ ){
			
			name	= matches [ i ]
			
			if ( !this.tagClasses [ name ] )
			{
			this.tagClasses [ name ] = new Array();
			
			}
			//	alert (  )
			this.tagClasses [ name ][ this.tagClasses [ name ].length ] = this.jsCount 
		//	alert ( name + '   ' + this.tagClasses [ name ] )
			
		}
		this.jsCount++;
		
	}
	
	
}

classFinder.getJSClass = function ( $class ){
	return this.tagClasses [ $class ]
}
classFinder.getJSRef = function ( $id ){
	return this.tags [ $id ];
}
classFinder.setJSRef = function ( $id, $obj ){
	this.tags [ $id ] = $obj;
}

function indexClasses ( ){	
	classFinder.getJSClasses ( 'div' );
	
	var els = classFinder.getJSClass ( 'jsFormCorners' );	
	divs8 ( els, 'jsDivs jsDivsNum8 form' );	
	
	var els = classFinder.getJSClass ( 'jsHighlight' );
	divs4 ( els, 'jsDivs jsDivsNum4' );	
	/*
	var els = classFinder.getJSClass ( 'jsHighlightInfo' );
	divs4 ( els, 'jsDivs jsDivsNum4' );	
	*/
	
}

function divs4 ( els, classes ){
	for ( var i in els )	{
		
		var obj		= classFinder.getJSRef ( id = [ els [ i ] ] )
		if ( obj ){	
		var par		= obj.parentNode	
		var o1		= document.createElement ( 'div' );
		var o2		= document.createElement ( 'div' ); o1.appendChild ( o2 );
		var o3		= document.createElement ( 'div' ); o2.appendChild ( o3 );
		var o4		= document.createElement ( 'div' ); o3.appendChild ( o4 );
		var o5		= document.createElement ( 'div' ); o4.appendChild ( o5 );
		par.replaceChild	( o1, obj )
		o5.appendChild	( obj )		
		if ( classes )	o1.className = classes;		
	}
	}
}
function divs8 ( els, classes ){
	for ( var i in els )	{
		var obj		= classFinder.getJSRef ( id = [ els [ i ] ] )
		if ( obj ){
		var par		= obj.parentNode
		var o1		= document.createElement ( 'div' );
		var o2		= document.createElement ( 'div' ); o1.appendChild ( o2 );
		var o3		= document.createElement ( 'div' ); o2.appendChild ( o3 );
		var o4		= document.createElement ( 'div' ); o3.appendChild ( o4 );
		var o5		= document.createElement ( 'div' ); o4.appendChild ( o5 );
		var o6		= document.createElement ( 'div' ); o5.appendChild ( o6 );
		var o7		= document.createElement ( 'div' ); o6.appendChild ( o7 );
		var o8		= document.createElement ( 'div' ); o7.appendChild ( o8 );
		var o9		= document.createElement ( 'div' ); o8.appendChild ( o9 );
		par.replaceChild	( o1, obj )
		o9.appendChild	( obj )		
		if ( classes )	o1.className = classes;
		}
	}
}

fAddEvent ( window, "load", indexClasses );

function sfMouseEvents(sfEls) {
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover = sfEls[i].onfocus = function() { addClass    (this,'hover'); }
		sfEls[i].onmouseout  = sfEls[i].onblur  = function() { removeClass (this,'hover'); }
	}
}
function fInitialiseMenu(idStr, move) {
	if(!W3CDOM) return;
	for(var ni=1; document.getElementById(idStr+ni); ni++){
		var menuStr = idStr+ni;
		var menuIStr = idStr+"I"+ni;
		var menu = document.getElementById(menuStr);
		var menuI = document.getElementById(menuIStr);
		menu._name = menuStr;
		menuI._myMenu = menu;
		if(menu == null || menuI == null) return;
		if(menu["childNodes"]==null) return;
		var node;
		for(var i=0; i<menu.childNodes.length; i++) {
			if(menu.childNodes[i].childNodes.length<1) continue;
			node = menu.childNodes[i].childNodes[0];
			if(node.nodeName.toLowerCase()!="a") continue;
			node.onfocus=stopTime;
			node.onblur=function() { menu.hideMenu(); }
		}
		currentMenu = menu;
		menuI.onmouseover = function(){ if(currentMenu){ currentMenu.style.visibility = "hidden"; currentMenu = null;
			this.showMenu(); stopTime(); }	}
		menu.onmouseover = function(){ if(currentMenu){ currentMenu.style.visibility = "hidden"; currentMenu = null;
			this.showMenu(); }	}
		menuI.showMenu = function(){
			if(move) this._myMenu.style.left = this.offsetLeft+"px";
			this._myMenu.style.visibility = "visible"; currentMenu = this._myMenu;
		}
		menuI.onfocus	 = function(){ this.onmouseover(); }
		menuI.onblur	 = function(){ this.onmouseout(); }
		menu.showMenu = function(){ this.style.visibility = "visible"; currentMenu = this; stopTime(); }
		menu.hideMenu = function(){
			if (!timerOn) { mytimer = setTimeout("killMenu('" + this._name + "');", 400); timerOn = true; } }
		menu.onmouseout = function(){ this.hideMenu(); }
		menuI.onmouseout = function(){ this._myMenu.hideMenu(); }
	}
}
function killMenu(id) {
	id = document.getElementById(id);
	id.style.visibility = "hidden";
	stopTime();
}
function stopTime(){
	if(mytimer){
		clearTimeout(mytimer);
		mytimer = null;
		timerOn = false;
	}
}
var currentMenu = null, mytimer = null, timerOn = false;

function fInitSuckerFish(){
	if(!document.getElementById("iNavArchive")) return;
	fInitialiseMenu("iNavArc", false);	
	
	var archive = document.getElementById("iNavArchive")
	var count	= 0
	var lists = archive.getElementsByTagName ("LI");
	for ( var i=0;i<lists.length;i++){
		var ul = lists[i].getElementsByTagName("UL")
		if ( ul[0]){
			var targ = ul[0]
			targ.id="iNavArc" + (++count)
			var lis = targ.getElementsByTagName("LI")
			lis[0].className="first"
			lis[lis.length-1].className="last"
		}
	}
		
	sfMouseEvents(document.getElementById("iNavArchive").getElementsByTagName("LI"));
}
fAddEvent ( window, "load", fInitSuckerFish );














/*
	Function specific to TopJobs
*/
function topJobs ( )
{
	var upGuide	= document.getElementById ( "iTJUploadGuidelines" );
	var upLabel = document.getElementById ( "iTJUploadCV" );
	
	if ( upGuide && upLabel ) {			
			upLabel.innerHTML += " "
			
			var link			= document.createElement ( "a" )
			link.href		= '#'
			link.innerHTML	= '(View Guidelines)';
			link.onclick	= function ( ) { 
				var upGuide	= document.getElementById ( "iTJUploadGuidelines" );				
				upGuide.style.display	= upGuide.style.display == "none" ? "block" : "none";		
				return false;
			}			
			upLabel.parentNode.appendChild ( link, upLabel );		
			upGuide.style.display = "none"
	}
}

fAddEvent ( window, "load", topJobs );








function initEmincote ( ) {
	
	var iMediaCheck	= document.getElementById ( 'iMediaCheck' );
	if ( iMediaCheck )
	{
		var par		= iMediaCheck.parentNode;
		var con		= document.createElement ( 'div' );
		
		var realP	= detectPlugin ( 'RealPlayer'    );
		var winM		= detectPlugin ( 'Windows Media' );
		
		var out		= '';
		
		if ( !winM ) {
			out	+= 'you do not have windows media player installed, get it here';
		}
		
		if ( !realP ) {
			out	+= 'you do not have real player installed, get it here';
		}
		
		if ( out ) {
			alert ( out )
		}
		
		par.replaceChild	( con, iMediaCheck )		
		
	}	
}

fAddEvent ( window, "load", initEmincote );


function detectPlugin ( ) {
	var plugins		= arguments;
	if ( navigator.plugins && navigator.plugins.length > 0 ) {
		var pluginsArrayLength = navigator.plugins.length;
		for ( pluginsArrayCounter=0; pluginsArrayCounter < pluginsArrayLength; pluginsArrayCounter++ ) {
			var numFound = 0;
			for ( namesCounter=0; namesCounter < plugins.length; namesCounter++ ) {		
				if( ( navigator.plugins [ pluginsArrayCounter ].name.indexOf ( plugins [ namesCounter ] ) >= 0 ) || ( navigator.plugins [ pluginsArrayCounter ].description.indexOf ( plugins [ namesCounter ] ) >= 0 ) ) {
					numFound++;
				}   
			}	    
			if( numFound == plugins.length ) {
				return true;
			}
		}
	}
   return false;
}
