//if (top.frames.length>0) { top.location = self.document.location }
var NS = (document.layers) ? 1 : 0;
var IE = (document.all) ? 1 : 0;
var NEW = (document.getElementById) ? 1 : 0;
var IE4 = (IE && !NEW) ? 1 : 0;
var IE5 = (IE && NEW) ? 1 : 0;
var IE5up = (NEW && !NS) ? 1 : 0;
var IE6 = ((IE5) && (navigator.userAgent.indexOf("6\.0") != -1)) ? 1 : 0;
var NS6up = (NEW && !IE) ? 1 : 0;
var NS6 = ((NS6up) && (navigator.userAgent.indexOf("6\.") != -1)) ? 1 : 0;
var NS7 = ((NS6up) && (navigator.userAgent.indexOf("7\.") != -1)) ? 1 : 0;
/* alert(
	'IE = '+IE+'\n'+
	'NEW = '+NEW+'\n'+
	'IE4 = '+IE4+'\n'+
	'IE5 = '+IE5+'\n'+
	'IE5up = '+IE5up+'\n'+
	'IE6 = '+IE6+'\n'+
	'NS = '+NS+'\n'+
	'NS6up = '+NS6up+'\n'+
	'NS6 = '+NS6+'\n'+
	'NS7 = '+NS7
); */

var TimeToFade = 300.0;

//if ((top.frames.length>0) && (typeof frameset == "undefined")) { top.location = self.document.location }

function getElementById(id, windowName) {
	if (IE4) {
		return windowName ? windowName.document.all[id] : document.all[id];
	} else if (NS6up || IE5up) {
		return windowName ? windowName.document.getElementById(id) : document.getElementById(id);
	} else if (NS) {
		return document.layers[id];
	}
}

if (!Array.prototype.push) {
	Array.prototype.push = function(newElement) {
		this[this.length] = newElement;
	}
}

function start_help(url) {
	url = '/help'+url;
	helpWindow = window.open(url,'helpWindow','width=500,height=300,resizable=0,location=0,menubar=0,scrollbars=1,toolbar=0');
	if (helpWindow.opener == null) {
		helpWindow.opener = window;
		helpWindow.opener.name = 'opener';
	}
	helpWindow.focus();
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++)
	{
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function setCookie(name, value, expires, path, domain, secure) {
	// set time, it's in milliseconds
	var today = new Date();
	today.setTime( today.getTime() );

	/*
	if the expires variable is set, make the correct 
	expires time, the current script below will set 
	it for x number of days, to make it for hours, 
	delete * 24, for minutes, delete * 60 * 24
	*/
	if (expires) {
		expires = expires * 1000 * 60 * 60 * 24;
	}
	var expires_date = new Date( today.getTime() + (expires) );
	document.cookie = name + "=" +escape( value ) +
	( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) + 
	( ( path ) ? ";path=" + path : "" ) + 
	( ( domain ) ? ";domain=" + domain : "" ) +
	( ( secure ) ? ";secure" : "" );
}

function deleteCookie(name, path, domain) {
	if (readCookie(name) == "1") {
		setCookie('tip', '0', -365, '/', '', '');
	}
}

function tipToggle(obj) {
	if (obj.checked) {
		deleteCookie('tip', '', '');
	} else {
		setCookie('tip', '1', 365, '/', '', '');
	}
}

function checkViewed(id) {
	var jobViewed = 0;
	var viewed = readCookie('JobsViewed');
	if (viewed) {
		var jobList = viewed.split('-');
		for (var i=0; i < jobList.length; i++) {
			if (jobList[i] == id) {
				jobViewed = 1;
				break;
			}
		}
	}
	if (jobViewed == 1) {
		document.writeln('<input type=\"checkbox\" checked=\"checked\" style=\"width: auto; vertical-align: middle\" onclick=\"this.checked = true\" />');
	} else {
		document.writeln('<input type=\"checkbox\" disabled=\"disabled\" style=\"width: auto; vertical-align: middle\" />');
	
	}
}

function checkCVViewed(id) {
	var cvViewed = 0;
	var viewed = readCookie('CVsViewed');
	if (viewed) {
		var cvList = viewed.split('-');
		for (var i=0; i < cvList.length; i++) {
			if (cvList[i] == id) {
				cvViewed = 1;
				break;
			} 
		}
	}
	if (cvViewed == 1) {
		document.writeln('<input type=\"checkbox\" checked=\"checked\" style=\"width: auto; vertical-align: middle\" onclick=\"this.checked = true\" />');
	} else {
		document.writeln('<input type=\"checkbox\" disabled=\"disabled\" style=\"width: auto; vertical-align: middle\" />');
	
	}
}

function addFeaturedPopup(jobid) {
	url = '/admin/featured_jobs_popup.php?jobid='+jobid;
	featWindow = window.open(url,'featWindow','width=280,height=300,resizable=0,location=0,menubar=0,scrollbars=1,toolbar=0');
	if (featWindow.opener == null) {
		featWindow.opener = window;
		featWindow.opener.name = 'opener';
	}
	featWindow.focus();
}

function clearDefaultText(obj) {
	if (obj.defaultValue == obj.value) { obj.value = '' }
}

function restoreDefaultText(obj) {
	if (obj.value == '') { obj.value = obj.defaultValue }
}

function showMap() {
	url = '/allsites/map/';
	mapWindow = window.open(url,'mapWindow','width=600,height=550,resizable=0,location=0,menubar=0,scrollbars=0,toolbar=0');
	if (mapWindow.opener == null) {
		mapWindow.opener = window;
		mapWindow.opener.name = 'opener';
	}
	mapWindow.focus();
}

function initialise() {
	if (IE4 || IE5up || NS6up)  { resizeBlock() }
}

function resizeBlock() {
	var containerHeight = getElementById("topCentralContentContainer").offsetHeight;
	if (getElementById("pageTitle")) {
		var titleHeight = getElementById("pageTitle").offsetHeight;
	} else {
		var titleHeight = 0;
	}
	if (getElementById("contentBox")) {
		var contentHeight = getElementById("contentBox").offsetHeight;
	} else {
		var contentHeight = 0;
	}
	if (getElementById("orangeBox")) {
		var orangeHeight = getElementById("orangeBox").offsetHeight;
		if (getElementById("orangeBox").style.visibility == "visible") {
			var orangePadding = 15;
		} else {
			var orangePadding = 0;
		}
	} else {
		var orangeHeight = 0;
		var orangePadding = 0;
	}
	if (getElementById("bannerAdsPage")) {
		var bannerAdsPageHeight = getElementById("bannerAdsPage").offsetHeight;
	} else {
		var bannerAdsPageHeight = 0;
	}
	var combined = titleHeight+contentHeight+orangeHeight+orangePadding+bannerAdsPageHeight;
	//alert("Container = "+containerHeight+"\norange = "+orangeHeight+"\norangePadding = "+orangePadding+"\ntitle = "+titleHeight+"\ncontent = "+contentHeight+"\nCombined = "+combined);	
	if ((combined < containerHeight) && getElementById("contentBox")) {
		var depth = containerHeight - titleHeight - orangeHeight - orangePadding - bannerAdsPageHeight - 30; // 30 is hard coded contentBox padding
		//alert(depth);
		getElementById("contentBox").style.height = (depth) + ((NS6up) ? "px" : "");
	}
}

function trim(str, chars) {
    str =  ltrim(rtrim(str, chars), chars);
	return str;
}

function ltrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function showCenteredElement(obj) {
	var Element = document.getElementById(obj);
    Element.style.opacity = '0';
    Element.style.filter = 'alpha(opacity = 0)';
	Element.style.display = 'block';
	centerElement(obj);
	fadeElement(obj);
	//added by sean 22/01/10 - the following line fixes a bug on the positioning of an ajax suggestion box inside a centered div.
	if(typeof onloadhandler == 'function') {onloadhandler();} 
}

function hideCenteredElement(obj) {
	var Element = document.getElementById(obj);
	fadeElement(obj);
	setTimeout("document.getElementById('"+obj+"').style.display = 'none'", parseInt(TimeToFade+50));
}

function centerElement(obj) {
	var Element = document.getElementById(obj);
	objh = parseFloat(Element.style.height)/2;
	objw = parseFloat(Element.style.width)/2;

	//IE
	if (!window.pageYOffset) {
		if (!(document.documentElement.scrollTop == 0)) {
			//strict mode
			offsetY = document.documentElement.scrollTop;
			offsetX = document.documentElement.scrollLeft;
		} else 		{
			//quirks mode
			offsetY = document.body.scrollTop;
			offsetX = document.body.scrollLeft;
		}
	} else {
		//w3c
		offsetX = window.pageXOffset;
		offsetY = window.pageYOffset;
	}

	var windowWidth = 0;
	var windowHeight = 0;

	//IE
	if (!window.innerWidth) {
		if (!(document.documentElement.clientWidth == 0)) {
			//strict mode
			windowWidth = document.documentElement.clientWidth;
			windowHeight = document.documentElement.clientHeight;
		} else {
			//quirks mode
			windowWidth = document.body.clientWidth;
			windowHeight = document.body.clientHeight;
		}
	} else {
		//w3c
		windowWidth = window.innerWidth;
		windowHeight = window.innerHeight;
	}
	if (getElementById('midContent')) {
		offsetY = offsetY - getElementById('midContent').offsetTop;
		offsetX = offsetX - getElementById('midContent').offsetLeft;
	}
	Element.style.top = Math.floor(Math.round((windowHeight/2)+offsetY)-objh)+'px';
	Element.style.left = Math.floor(Math.round((windowWidth/2)+offsetX)-objw)+'px';
}

function fadeElement(eid) {
	var element = document.getElementById(eid);
	if (element == null) { return; }
	if (element.FadeState == null) {
	    if(element.style.opacity == null
        || element.style.opacity == ''
        || element.style.opacity == '1') {
			element.FadeState = 2;
	    } else {
			element.FadeState = -2;
		}
	}
	if (element.FadeState == 1 || element.FadeState == -1) {
		element.FadeState = element.FadeState == 1 ? -1 : 1;
		element.FadeTimeLeft = TimeToFade - element.FadeTimeLeft;
	} else {
		element.FadeState = element.FadeState == 2 ? -1 : 1;
		element.FadeTimeLeft = TimeToFade;
		setTimeout("animateFadeElement(" + new Date().getTime() + ",'" + eid + "')", 33);
	}
}

function animateFadeElement(lastTick, eid) { 
	var curTick = new Date().getTime();
	var elapsedTicks = curTick - lastTick;
	var element = document.getElementById(eid);
	if (element.FadeTimeLeft <= elapsedTicks) {
		element.style.opacity = element.FadeState == 1 ? '1' : '0';
		element.style.filter = 'alpha(opacity = ' + (element.FadeState == 1 ? '100' : '0') + ')';
		element.FadeState = element.FadeState == 1 ? 2 : -2;
		return;
	}
	element.FadeTimeLeft -= elapsedTicks;
	var newOpVal = element.FadeTimeLeft/TimeToFade;
	if (element.FadeState == 1) { newOpVal = 1 - newOpVal; }
	element.style.opacity = newOpVal;
	element.style.filter = 'alpha(opacity = ' + (newOpVal*100) + ')';
	setTimeout("animateFadeElement(" + curTick + ",'" + eid + "')", 33);
}

function copyDefaultLocation() {
		var newDefaultLocation = document.forms['def_location_form'].loc_default.options[document.forms['def_location_form'].loc_default.selectedIndex].text;
		newDefaultLocation = ltrim(newDefaultLocation);
		document.forms['def_location_form'].newDefaultLocation.value = newDefaultLocation.replace(/^[\s\xA0]+|[\s\xA0]+$/g,'');
		document.def_location_form.submit();
}