/*
  © 2006 Thomson Legal & Regulatory Global AG.  All Rights Reserved
  Thomson Legal & Regulatory Global AG Proprietary and Confidential
*/

/*********************************************************/

var wluk = {

	clickedSignoff: false,

	qs: window.location.search.substring(1),
	
	brandPath : "/" + window.location.pathname.split("/")[2],
	
	init: function() {
		if (!isDOM()) return;
		if (byId("toolsMenu")) $("#toolsMenu").hide();
		if (byId("mainNav")) wluk.createToolbarLinks();
		wluk.createExternalLinks();
		wluk.changeTimeZoneName();
	},

	createToolbarLinks: function() {
		$("#mainNav").find("a").click(function(){
			if (this.id == "toolsLink") {
				var positionMenu = $("#"+this.id).offset().left;
				wluk.showHideTools(positionMenu);
				return false;
			}
			else if (this.id == "trainingLink") {
				window.open(this.href,"tutorial","width=800,height=600,scrollbars=yes,resizable=yes");
				return false;
			}
			else if (this.id == "signoffLink") {
				if (wluk.clickedSignoff === true) { return false; }
				else { wluk.clickedSignoff = true; return true; }
			}
			else $("#toolsMenu").hide();
		});
	},

	createExternalLinks: function() {
		$("a.externalLink",document).click(function(){
			window.open(this.href);
			return false;
		});
	},

	showHideTools: function(positionMenu) {
		if (this.t) window.clearTimeout(this.t);
		this.t = window.setTimeout('$("#toolsMenu").hide()',10000);
		if (jQuery.browser.msie) {
			$("#toolsMenu").css({left: 10 + "px"});
		}else{
			$("#toolsMenu").css({left: positionMenu + "px"});
		}
		$("#toolsMenu").toggle();
	},

	getQsArg: function(arg) {
		var list = [];
		var pairs = wluk.qs.split("&");
		for(var i = 0; i < pairs.length; i++) {
			var pos = pairs[i].indexOf('=');
			if (pos == -1) continue;
			var argname = pairs[i].substring(0,pos);
			var value = pairs[i].substring(pos+1);
			list[argname] = unescape(value);
		}
		return list[arg];
	},
	
	changeTimeZoneName:function(){
		$("#timezone option:contains('Asia/Shanghai')").text("Asia/Beijing");
	}
};


/******************************
 * Static helper functions    *
/*****************************/

/*
  Check DOM support before running any scripts - if this
  returns false then don't bother even trying to use JS
*/
function isDOM() {
  if (typeof document.isDOM == 'undefined') {
    document.isDOM = !(
     !document.getElementsByTagName ||
     !document.createElement        ||
     !document.createTextNode       ||
     !document.documentElement      ||
     !document.getElementById);
  }
  return document.isDOM;
}

/*
  Test for XMLHttpRequest support before attempting to use it.
  In IE6 must attempt to instantiate the ActiveXObject
*/
function isXHR() {
	if (window.XMLHttpRequest) {
		return true;
	}
	else {
		try { return new ActiveXObject("Microsoft.XMLHTTP"); }
		catch(e) { return false; }
	}
}

/* Check IE version - Not recommended to ever use this except as a last resort! */
function ieVer() {
	if (navigator.userAgent.indexOf("MSIE")==-1) return;
	var ver = -1;
	if (navigator.appName == 'Microsoft Internet Explorer') {
		var ua = navigator.userAgent;
		var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
		if (re.exec(ua) != null) ver = parseFloat( RegExp.$1 );
		if (ver == 5.0) { return "5"; }
		else if (ver == 5.5) { return "5.5"; }
		else if (ver == 6.0) { return "6"; }
		else if (ver == 7.0) { return "7"; }
		else { return false; }
	}
}

/* Shorthand document.getElementById - sometimes more convenient than jQuery's $() implementation */
function byId(el) {
	return document.getElementById(el);
}

/* Focus on and select the contents of an input field by id */
function formFieldFocusAndSelectById(field) {
	if (!isDOM()) return;
	var fld = byId(field);
	if (fld) {
		fld.focus();
		fld.select();
	}
}

/* Check for the existence of a given value in an array */
function inArray(array,value) {
	for (var i=(array.length-1); i>=0; i--) {
		if (array[i] === value) return true;
	}
	return false;
}

/* remove a specific value from an array */
function arrayRemove(array,value) {
	var i = 0;
	while (i < array.length) {
		if (array[i] === value) {
			array.splice(i, 1);
		} else {
			i++;
		}
	}
	return array;
}

/* find the position of any element - by PPK - quirksmode.org */
function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft;
		curtop = obj.offsetTop;
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		}
	}
	return [curleft,curtop];
}

/* Get/Set/Remove Cookies */
function getCookie(name) {
	var start = document.cookie.indexOf(name + "=");
	var len = start + name.length + 1;
	if ((!start) && (name != document.cookie.substring(0,name.length))) {
		return null;
	}
	if (start == -1) return null;
	var end = document.cookie.indexOf(';',len);
	if (end == -1) end = document.cookie.length;
	return unescape(document.cookie.substring(len,end));
}

function setCookie(name,value,expires,path,domain,secure) {
	var today = new Date();
	today.setTime(today.getTime());
	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 (getCookie(name)) document.cookie = name + '=' +
			((path) ? ';path=' + path : '') +
			((domain) ? ';domain=' + domain : '') +
			';expires=Thu, 01-Jan-1970 00:00:01 GMT';
}

// focuses on the first element that matches the given selector that has no value set.
// if all elements that match the given selector have a value set then the first element matched will gain focus
function selectFirstEmptyField(elementSelector) {
	$(elementSelector+"[value='']").slice(0,1).select().focus();
}

function selectFirstEmptyTextField() {
	selectFirstEmptyField(".text");
}

// determines if all the images have loaded
function imagesLoaded() {
	var ilist = document.images;
	for(var i = 0; i < ilist.length; i++) {
    	if(ilist[i].complete == false) {
        	// an image is not loaded
        	return false;
    	}
    }
    return true;
}


/*********************************************************/

if (window.jQuery) $(document).ready(wluk.init);