/* tmt base object */

//Modefied 2009-02-05 by Martin Johansson/CIKADO
//var tmt=new Object();
var tmt=new function() {}

tmt.constructor.prototype.Reveal=function(q) {

	var objScripts=document.getElementsByTagName('script');
	if (objScripts.length>0) {
		var input=objScripts.item(objScripts.length-1).previousSibling;
		if (input) document.write(Decode(input.value.split('\r').join('').split('\n').join(''),q));
	}

	function Decode(s,q) {
		var a=s.split(',');
		var k=parseInt(a[q],16);
		for (var i=0; i<q; i++) a[i]=String.fromCharCode(parseInt(a[i],16)-k);
		a[q]='';
		for (var i=q+1; i<a.length; i++) a[i]=String.fromCharCode(parseInt(a[i],16)-k);
		return a.join('');
	}
}

tmt.CreateXMLHttp=function() {

	if (typeof(XMLHttpRequest)!='undefined') {
		return new XMLHttpRequest();
	}
	else if (window.createRequest) {
		return window.createRequest();
	}
	else {
		/*@cc_on @if (@_jscript_version>=5)
		try {
			return new ActiveXObject('Msxml2.XMLHTTP');
		}
		catch (e) {
			try {
				return new ActiveXObject('Microsoft.XMLHTTP');
			}
			catch (e) {}
		}
		@end @*/
	}
	return null;
}

tmt.InsertFlash=function(strSrc,strId,strWidth,strHeight,strVersion,strBgColor) {

	if (typeof(SWFObject)!='undefined') {
		var objScripts=document.getElementsByTagName('script');
		if (objScripts.length>0) {
			var objContainer=objScripts.item(objScripts.length-1).parentNode;
			if (objContainer) {
				var objSWF=new SWFObject(strSrc,strId,strWidth,strHeight,(strVersion ? strVersion : '1'),strBgColor);
				objSWF.addParam('wmode',(strBgColor ? 'opaque': 'transparent'));
				objSWF.write(objContainer);
			}
		}
	}
}

tmt.StartTermite=function(strHome,strHTTPPort) {

	/* from MS begin */
	function HasRuntimeVersion(v)
	{
	  var va = GetVersion(v);
	  var i;
	  var a = navigator.userAgent.match(/\.NET CLR [0-9.]+/g);
	  if (a != null)
	    for (i = 0; i < a.length; ++i)
	      if (CompareVersions(va, GetVersion(a[i])) <= 0)
			return true;
	  return false;
	}
	function GetVersion(v)
	{
	  var a = v.match(/([0-9]+)\.([0-9]+)\.([0-9]+)/i);
	    return a.slice(1);
	}
	function CompareVersions(v1, v2)
	{
	  for (i = 0; i < v1.length; ++i)
	  {
	    var n1 = new Number(v1[i]);
	    var n2 = new Number(v2[i]);
	    if (n1 < n2)
	      return -1;
	    if (n1 > n2)
	      return 1;
	  }
	  return 0;
	}
	/* from MS end */

	if (strHome.indexOf('/')==0 && location.protocol=='https:') strHome='http://'+location.hostname+(strHTTPPort ? ':'+strHTTPPort : '')+strHome;
	if (HasRuntimeVersion('2.0.0')) location.replace(strHome+'/termite'); else window.open(strHome,'','width=480,height=400');
}

/* Anchors */

function MouseOver(elt) {
	var eltParent=GetParentHeader(elt);
	if (eltParent) AddClass(GetNextSiblingElement(eltParent),'hover');
}
function MouseOut(elt) {
	var eltParent=GetParentHeader(elt);
	if (eltParent) RemoveClass(GetNextSiblingElement(eltParent),'hover');
}
function GetParentHeader(elt) {
	do {
		elt=elt.parentNode;
	} while (elt && !(elt.nodeName.length==2 && elt.nodeName.toUpperCase().indexOf('H')==0));
	return elt;
}
function GetNextSiblingElement(elt) {
	do {
		elt=elt.nextSibling;
	} while (elt && elt.nodeType!=1);
	return elt;
}
function AddClass(elt,strClass) {
	RemoveClass(elt,strClass);
	var classes=elt.className.split(' ');
	classes.push(strClass);
	elt.className=classes.join(' ');
}
function RemoveClass(elt,strClass) {
	var classes=elt.className.split(' ');
	for (var i=0; i<classes.length; i++) if (classes[i]==strClass) classes.splice(i,1);
	elt.className=classes.join(' ');
}

/* Accessibility */

tmt.Accessibility=new function() {

	this.GetControl=function(strId) {
		return GetCookie(strId);
	}

	this.UpdateControl=function(strId) {
		var elt=document.getElementById(strId);
		if (elt) {
			var strCookie=GetCookie(strId);
			if (!isNaN(strCookie)) elt.selectedIndex=parseInt(strCookie);	
		}	
	}

	this.SetControl=function(strId,strValue) {
		SetCookie(strId,strValue)
		location.reload(false);
	}

	function GetCookie(sName) {
		var o=document.cookie.split('; ').join(';').split(';');
		for (var i=0; i<o.length; i++) if (o[i].indexOf(sName+'=')==0) return o[i].split('=')[1];
		return '';
	}

	function SetCookie(sName,sValue) {
		var d=new Date();
		d.setFullYear(d.getFullYear()+1);
		var strDomain=location.hostname;
		if (!IsIP(strDomain)) {
			var strSuffix=strDomain.split('.').pop();
			strDomain=strDomain.split('.').slice((strSuffix=='com' || strSuffix=='net' ? -2 : -3)).join('.');
		}
		document.cookie=sName+'='+sValue+'; path=/; domain=.'+strDomain+'; expires='+d.toGMTString();
	}

	function IsIP(strHostName) {
		var a=strHostName.split('.');
		for (i=0; i!=a.length; i++) if (isNaN(a[i])) return false;
		return true;
	}
}

//This is very good for our cache, to solve this with client-side scripting

var strSize=tmt.Accessibility.GetControl('tmt-accessibility-size');
var strContrast=tmt.Accessibility.GetControl('tmt-accessibility-contrast');

var strRules='';

if (strSize=='1') {
	strRules+='body {font-size:81%;}';
}	
else if (strSize=='2') {
	strRules+='body {font-size:91%;}';
}

if (strContrast=='1') {
	strRules+='body {background-color:#47466B; xxcolor:#FFFFCC}';
	strRules+='body, caption, th, td, button, input, textarea, xxselect {color:#FFFFCC;}';
	strRules+='#body-inner {background-color:#47466B;}';
	strRules+='#virtualbody {background-color:#47466B;}';
	strRules+='button, input, textarea, select {background-color:#FFFFCC;}';
	strRules+='a:link, a:visited, a:active {color:#FFCD40;}';
	strRules+='a.newsLink {color:#FFFFCC;}';
	strRules+='.greyFirstPage {color:#FFFFCC;}';
	strRules+='a:hover {color:#FFCD40;}';
	strRules+='.imagetext {color:#FFFFCC;}';
	strRules+='hr {background-color:#FFCD40; color:#FFCD40;}';
	strRules+='h1, .h1, h4, .h4 {color:#FFFFCC;}';
	strRules+='h2, .h2, h5, .h5 {color:#FFFFCC;}';
	strRules+='h3, .h3, h6, .h6 {color:#FFFFCC;}';
	strRules+='.function {color:#FFFFCC;}';
	strRules+='a:link.function, a:visited.function, a:active.function {color:#FFFFCC;}';
	strRules+='a:hover.function {color:#FFFFCC;}';
	strRules+='tr.header1 * {color:#FFFFCC;}';
	strRules+='tr.header2 * {color:#FFFFCC;}';
	strRules+='tr.header1 a:link, tr.header1 a:visited, tr.header1 a:active {color:#FFFFCC;}';
	strRules+='tr.header1 a:hover {color:#FFFFCC;}';
	strRules+='tr.header2 a:link, tr.header2 a:visited, tr.header2 a:active {color:#FFCD40;}';
	strRules+='tr.header2 a:hover {color:#FFCD40;}';
	strRules+='#oHeader1 {background-color:#000066;}';
	strRules+='#header-nav {background-color:#000066; color:#FFFFCC;}';
	strRules+='#header-nav a:link, #header-nav a:visited, #header-nav a:active {color:#FFFFCC;}';
	strRules+='#header-nav a:hover {color:#FFFFCC;}';
	strRules+='#oHeader2 {border-top:1px solid #FFCD40; border-bottom:1px solid #000066; background-color:#47466B;}';
	strRules+='#header-functions {border-top:1px solid #FFCD40; border-bottom:1px solid #000066; background-color:#47466B;}';
	strRules+='#oNavTop {color:#FFFFCC;}';
	strRules+='#oNavTop div a {color:#FFFFCC;}';
	strRules+='#oNavTop div a:hover {color:#FFFFCC;}';
	strRules+='#oNavTop div#oNavTopTitle a {color:#FFCD40;}';
	strRules+='#oNavTop div#oNavTopTitle a:hover {color:#FFCD40;}';
	strRules+='#oNavBottom table a, #oNavBottom table b {color:#FFFFCC;}';
	strRules+='#oNavBottom table a:hover {color:#FFFFCC;}';
	strRules+='#oFooter {color:#FFFFCC;}';
	strRules+='#oFooter a:link, #oFooter a:visited, #oFooter a:active {color:#FFCD40;}';
	strRules+='#oFooter a:hover {color:#FFCD40;}';
	strRules+='#oFooter #oAddress {border-top-color:#FFCD40;}';
	strRules+='#oFooter2 table {border-top:1px solid #FFCD40; background-color:#000066}';
	strRules+='#oSearchResults #oHeader {background-color:#000066;}';
	strRules+='#oPortalLists a {color:#FFCD40;}';
	strRules+='#oPortalLists a:hover {color:#FFCD40;}';
	strRules+='#oPortalLists td.vr {background-color:#FFCD40;}';
	strRules+='#oInternalPortalLists a {color:#FFCD40;}';
	strRules+='#oInternalPortalLists a:hover {color:#FFCD40;}';
	
}

if (strRules) document.write('<style type="text/css">'+strRules+'</style>');

