var err_login_empty	='Please supply both your username and password.';
var err_year_empty	='Please select a year.';
var err_month_empty	='Please select a month.';
var err_search_empty='Please supply a search phrase.';
var err_name_empty='Please supply your name.';
var err_email_empty='Please supply your email address.';
var err_email_invalid='Your email address is not valid.';
var err_emailconfirmation_empty='Please confirm your email address.';
var err_email_mismatch='The two email addresses you supplied do not match.';
var err_subscription_empty='Please select at least one subscription.';
var err_subject_empty='Please supply a subject.';
var err_message_empty='Please supply a message.';

el=function(id){return document.getElementById(id)}

lgnbxtggl=function(){
	el('usrbx').style.display='none';
	el('lgnbx').style.display='block';
}

isempty=function(id,msg,dflt){
	var s=el(id);
	if(s.value==dflt){
		if(msg!='')alert(msg);
		s.focus();
		return true;
	}else{
		return false;
	}
}

isemail=function(id){
	var v=document.getElementById(id).value;
	if(v.indexOf('@')==-1||v.indexOf('.')==-1)return false;
	return true;
}

chkbxclck=function(fld){//toggles value of graphical checkbox and sets fld's value to fldvalu
	el(fld).click();
}

frmsbscrbsbmt=function(){//checks all mandatory fields then submits the form (subscribe)
	if(isempty('txtname',err_name_empty,''))return;
	if(isempty('txtemail',err_email_empty,''))return;
	if(!isemail('txtemail')){
		alert(err_email_invalid);
		return;
	}
	if(isempty('txtemailconfirm',err_emailconfirmation_empty,''))return;
	if(el('txtemail').value!=el('txtemailconfirm').value){
		alert(err_email_mismatch);
		return;
	}
	if(isempty('chkmindfields','','')&&isempty('chkinsights','','')){
		alert(err_subscription_empty);
		return;
	}
	el('frmsbscrb').submit();
}

qryshw=function(o){//displays relevant department (contact us)
	var idx=o.value*3;
	el('qrynfo').getElementsByTagName('h3')[0].innerHTML=qry[idx];
	el('qrytel').innerHTML=qry[idx+1];
	el('qrymail').innerHTML='<a href="mailto:'+qry[idx+2]+'">'+qry[idx+2]+'</a>';
	el('qrynfo').style.visibility='visible';
	el('qrybr').style.display='none';
}

qrynfocls=function(){//returns to the query selection box (contact us)
	el('qrynfo').style.visibility='hidden';
	el('qrybr').style.display='block';
}

frmcntctsbmt=function(){//checks all fields then submits the form (contact us)
	if(isempty('txtname',err_name_empty,''))return;
	if(isempty('txtemail',err_email_empty,''))return;
	if(!isemail('txtemail')){
		alert(err_email_invalid);
		return;
	}
	if(isempty('txtsubject',err_subject_empty,''))return;
	if(isempty('txtmessage',err_message_empty,''))return;
	el('frmcntct').submit();
}

lgn=function(){//check login fields and submit the form
	if(isempty('txtlgnnm',err_login_empty,'login name'))return;
	if(isempty('txtpswd',err_login_empty,''))return;
	el('frmlgn').submit();
}

var crrntprdct;
prdctexpnd=function(idx){//expands a product (product range page)
	if(crrntprdct)prdctcllps();
	var o=el('ps_prdct'+idx);
	if(!o)return;
	var e=o.getElementsByTagName('span');
	for(var i=0;i<e.length;i++){
		if(e[i].className=='hdn'){
			e[i].className='';
			break;
		}
	}
	e=o.getElementsByTagName('a');
	e[0].style.display='none';
	e=o.getElementsByTagName('div');
	for(var i=0;i<e.length;i++){
		if(e[i].className=='xpndd'){
			e[i].style.display='block';
			break;
		}
	}
	crrntprdct=o;
}

prdctcllps=function(idx){//collapses a product (product range page)
	var o=crrntprdct;
	if(!o)return;
	var e=o.getElementsByTagName('span');
	for(var i=0;i<e.length;i++){
		if(e[i].className==''){
			e[i].className='hdn';
			break;
		}
	}
	e=o.getElementsByTagName('a');
	e[0].style.display='';
	e=o.getElementsByTagName('div');
	for(var i=0;i<e.length;i++){
		if(e[i].className=='xpndd'){
			e[i].style.display='none';
			break;
		}
	}
}

nwsjmpto=function(){//submits the news "jump to older articles" form
	if(isempty('cbonwsyr',err_year_empty,''))return;
	if(isempty('cbonwsmnth',err_month_empty,''))return;
	el('frmnwsjmp').submit();
}

nwssrch=function(){//submits the news search
	if(isempty('txtnwssrch',err_search_empty,''))return;
	el('frmnwssrch').submit();
}

archvssrch=function(){//submits the archives search (performance)
	if(isempty('cboarchvsyr',err_year_empty,''))return;
	if(isempty('cboarchvsmnth',err_month_empty,''))return;
	el('frmarchvssrch').submit();
}

srchsbmt=function(){//submits the right-hand column search
	if(isempty('txtsearch',err_search_empty,''))return;
	el('srch').submit();
}

lgnchk=function(o){//toggles default text on or off for the login box
	var o2;
	switch(o.id){
		case 'txtpswddmy':
			o2=document.getElementById('txtpswd');
			o2.style.display='block';
			o.style.display='none';
			o2.focus();
			break;
		case 'txtpswd':
			if(o.value==''){
				document.getElementById('txtpswddmy').style.display='block';
				o.style.display='none';
			}
			break;
		case 'txtlgnnm':
			if(o.value=='login name'){
				o.value='';
			}else if(o.value==''){
				o.value='login name';
			}
			break;
	}
}

rndm=function(mn,mx){//random number generator
	rndmi=function(n){return (n*(Math.random()%1))|0}
	return mn+rndmi(mx-mn+1);
}

var crntdrp;//the current menu down
var drpdrctn;//stores mouseover or mouseout
var tkdstgl;//timer to fire kdstgl
var drpd=0;//how many levels are we down the menu
mnudrp=function(o,on){//menu dropdown
	if(crntdrp)kdstgl();
	crntdrp=o;
	drpdrctn=on;
	drpd+=on?1:-1;
	if(o.className.indexOf('level1')==-1){
		o.className=on?'hover':'';//parent menu
	}else{
		//top level parent
		if(on){
			o.className+=' hover';
		}else{
			o.className=o.className.replace(' hover','');
		}
	}
	if(drpd>0)kdstgl();else tkdstgl=setTimeout(kdstgl,1000);
}

kdstgl=function(){//shows or hides a menu items children
	clearTimeout(tkdstgl);
	var ifrm=el('slcthde'),ml=2;
	for(var i=0;i<crntdrp.childNodes.length;i++){
		if(crntdrp.childNodes[i].style&&crntdrp.childNodes[i].tagName=='UL'){
			if(drpdrctn&&crntdrp.className.indexOf('level1')>-1){//position first level
				if(crntdrp.className.indexOf('first')>-1)ml=-8;
				crntdrp.childNodes[i].style.left=(crntdrp.offsetLeft+18)+'px';
				ifrm.style.left=crntdrp.offsetLeft+ml+'px';
				ifrm.style.top=crntdrp.childNodes[i].style.top=(crntdrp.offsetTop+crntdrp.offsetHeight-2)+'px';
				ifrm.style.width=crntdrp.childNodes[i].offsetWidth+'px';
				ifrm.style.height=crntdrp.childNodes[i].offsetHeight+'px';
				if(document.all)ifrm.style.display='block';
			}else if(crntdrp.className.indexOf('level1')>-1){ifrm.style.display='none'}
			crntdrp.childNodes[i].style.visibility=drpdrctn?'visible':'hidden';
		}
	}
}

prdcthvr=function(o){//toggles the extension to show product info & performance (homepage)
	var idx=o.id.replace(/[a-z]/gi,'');
	if(o.className=='ovr'){
		o.className='';
		el('prdcts'+idx).style.display='none';
	}else{
		o.className='ovr';
		el('prdcts'+idx).style.display='block';
	}
}

tglcls=function(o){//toggle a classname. second parameter could be a classname, if blank the orginal classname is set
	var cls=arguments[1];
	if(cls){
		o.setAttribute('ocls',o.className);
		o.className=cls;
	}else{
		o.className=o.getAttribute('ocls');
	}
}

var arrteam=[''];
tmmmbr=function(nm,ttl,nfo){//creates a team member object
	this.nm=nm;
	this.ttl=ttl;
	this.nfo=nfo;
}

tmsv=function(){//store the team info in an array
	var a=arguments;
	for(var i=0;i<a.length;i+=3){
		arrteam[arrteam.length]=new tmmmbr(a[i],a[i+1],a[i+2]);
	}
}

biopstn=function(){//positions the profile (executive team)
	if(navigator.appName=='Microsoft Internet Explorer'){
		nl=el('clm2').offsetLeft+el('bdyi').offsetLeft+el('tm').offsetLeft+10;
		nt=el('bdyo').offsetTop+el('clm2').offsetTop+el('tm').offsetTop+10;
	}else{
		nl=el('tm').offsetLeft+10;
		nt=el('tm').offsetTop+10;
	}
	return {x:nl,y:nt}
}

biovw=function(){
	if(!crrntprsn)return;
	var d=el('prsnbio');
	var idx=crrntprsn.id.replace(/[a-z]/gi,'');
	d.getElementsByTagName('img')[0].src=crrntprsn.getElementsByTagName('img')[0].src;
	el('bionm').innerHTML=arrteam[idx].nm;
	el('biottl').innerHTML=arrteam[idx].ttl;
	el('bionfo').innerHTML=arrteam[idx].nfo;
	var nc=biopstn();
	d.style.left=nc.x+'px';
	d.style.top=nc.y+'px';
	d.style.display='block';
}

biocls=function(){
	el('prsnbio').style.display='none';
}

prsnntropstn=function(o,cls){//positions the intro block for a team member
	var nl=0,nt=0;
	
	if(navigator.appName=='Microsoft Internet Explorer'){
		nl=o.offsetLeft+el('clm2').offsetLeft+el('bdyi').offsetLeft+el('tm').offsetLeft;
		nt=o.offsetTop+el('bdyo').offsetTop+el('clm2').offsetTop+el('tm').offsetTop;
	}else{
		nl=o.offsetLeft;
		nt=o.offsetTop;
	}
	if(cls!='')nl-=o.offsetWidth+10;
	return {x:nl,y:nt}
}

var thdprsnntro,cnhd=true;
hdprsnntro=function(){//hides the intro block for an team member
	if(!cnhd)return;
	el('prsnntro').style.display='none';
	crrntprsn=null;
}

prsnhd=function(){//initiates the hide of the intro block for an team member
	cnhd=true;
	thdprsnntro=setTimeout(hdprsnntro,50);
}

prsnhvr=function(o){//pops up the intro block for a team member
	clearTimeout(thdprsnntro);
	cnhd=false;
	var d=el('prsnntro');
	if(!o.id){
		prsnhd();return
	}
	crrntprsn=o;
	var idx=o.id.replace(/[a-z]/gi,'');
	if(idx%3==0)d.className='lft';else d.className='';
	if(!arrteam[idx])return;
	var nc=prsnntropstn(o,d.className);
	d.style.left=nc.x+'px';
	d.style.top=nc.y+'px';
	el('ntronm').innerHTML=arrteam[idx].nm;
	el('ntrottl').innerHTML=arrteam[idx].ttl;
	
	//the setting of name and title's margins allows multiline names and titles
	var offst=0;
	var mrgntp=101;// title's top margin
	offst=el('ntrottl').offsetHeight;
	el('ntrottl').style.marginTop=(mrgntp-offst)+'px';// [title's top margin] - [title's height]
	
	mrgntp=95;// name's top margin
	offst+=el('ntronm').offsetHeight;
	el('ntronm').style.marginTop=(mrgntp-offst)+'px';// [name's top margin] - [name's height] - [title's height]
	
	d.style.display='block';
}

var img=new Array('');
imgprld=function(){//image preload
	var prepath='/adimg/';
	var idx;
	if(document.images){
		for(var i=0;i<arguments.length;i++){
			//if(arguments[i].indexOf('.')>-1){
				idx=img.length;
				img[idx]=new Image();
				img[idx].src=prepath+arguments[i];
			//}
		}
	}
}

mnuevtattch=function(){//attach mouseover and mouseout events to the main menu
	var m=document.getElementById('mnu');
	var c=m.getElementsByTagName('li');
	var ifrm
	for(var i=0;i<c.length;i++){
		c[i].onmouseover=function(){mnudrp(this,true)};
		c[i].onmouseout=function(){mnudrp(this,false)};
	}
	if(document.all){
		ifrm=el('slcthde');
		ifrm.style.marginLeft=el('mnu').offsetLeft+'px';
		ifrm.style.marginTop=el('mnu').offsetTop+'px';
	}
}

bghdrtgl=function(){//select a random number (1-5) for the header image
	document.getElementById('hdrimg').style.backgroundImage='url(adimg/global/hdrimg'+rndm(1,5)+'.gif)';
}

var cpg=1;
glssryscrll=function(drctn,a,oao){
	if(a.className.indexOf('_d')>-1)return;
	el('pg'+cpg).style.display='none';
	ao=el('scrll'+oao);
	ao.className=ao.className.replace('_d','');
	if(drctn>0){
		if(cpg!=nmpg)cpg++;
		if(cpg==nmpg)a.className+='_d';
	}
	if(drctn<0){
		if(cpg!=1)cpg--;
		if(cpg==1)a.className+='_d';
	}
	el('pg').innerHTML='Page '+cpg+' of '+nmpg;
	el('pg'+cpg).style.display='block';
}

var citm;
glssryxpnd=function(o){
	if(citm&&citm.id==o.id)return;
	if(citm)citm.className='';
	o.className='slctd';
	var idx=o.id.replace(/[a-z]/gi,'');
	el('itmdfntn').innerHTML='<h4>'+o.innerHTML+'</h4>'+arritems[idx];
	citm=o;
}

var tscrll,oscrll,ca,ao,scrllamnt=5,scrlltme=10,scrlldrctn;
hstryscrll=function(drctn,a,oao){
	if(a.className.indexOf('_d')>-1)return;
	scrlldrctn=drctn;
	oscrll=document.getElementById('hstrynnr');
	ao=document.getElementById('scrll'+oao);
	ca=a;
	doscrll();
	tscrll=setInterval(doscrll,scrlltme);
}

doscrll=function(){
	var nlft=oscrll.offsetLeft+scrllamnt*scrlldrctn;
	if(scrlldrctn>0&&nlft<=0){
		oscrll.style.left=nlft+'px';
		ao.className=ao.className.replace('_d','');
	}else if(scrlldrctn>0){
		if(ca.className.indexOf('_d')==-1)ca.className+='_d';
		clearInterval(tscrll);
	}
	if(scrlldrctn<0&&nlft>=(document.getElementById('hstryscrll').offsetWidth-document.getElementById('hstrynnr').offsetWidth)){
		oscrll.style.left=nlft+'px';
		ao.className=ao.className.replace('_d','');
	}else if(scrlldrctn<0){
		if(ca.className.indexOf('_d')==-1)ca.className+='_d';
		clearInterval(tscrll);
	}
}

hstrystp=function(){clearInterval(tscrll)}

hstrydtailcls=function(){
	document.getElementById('hstrydtail').style.display='none';
}

var tmln=[];
tmlnitm=function(yr,dtail){
	this.yr=yr;
	this.dtail=dtail;
}

tmlnsv=function(){
	for(var i=0;i<arguments.length;i+=2){
		tmln[tmln.length]=new tmlnitm(arguments[i],arguments[i+1]);
	}
}

hstrydtailshw=function(idx){
	var d=document.getElementById('tmln'+idx);
	var dtail=document.getElementById('hstrydtail');
	dtail.getElementsByTagName('img')[0].src=d.getElementsByTagName('img')[0].src;
	dtail.getElementsByTagName('div')[0].innerHTML=tmln[idx].dtail;
	dtail.getElementsByTagName('h2')[0].innerHTML='<a href="javascript:hstrydtailcls()" class="cls">Close</a>'+tmln[idx].yr;
	
	dtail.style.display='block';
}

popupopen=function(){
	var d=document.getElementById('popupo');
	var dh;
	if(document.documentElement.scrollHeight){
		dh=document.documentElement.scrollHeight;
	}else if(document.body.scrollHeight){
		dh=document.body.scrollHeight;
	}
	d.style.height=dh+'px';
	if(document.documentElement.scrollWidth){
		dh=document.documentElement.scrollWidth;
	}else if(document.body.scrollWidth){
		dh=document.body.scrollWidth;
	}
	d.style.width=dh+'px';
	d.style.display='block';
	
	d=document.getElementById('popupi');
	d.style.left=(document.body.offsetWidth/2-d.offsetWidth/2)+'px';
	if(document.documentElement.scrollTop){
		dh=document.documentElement.scrollTop;
	}else if(document.body.scrollTop){
		dh=document.body.scrollTop;
	}
	var wh=window.innerHeight?window.innerHeight:document.documentElement.clientHeight?document.documentElement.clientHeight:0;
	dh+=wh/2;
	d.style.top=(dh-d.offsetHeight/2)+'px';
	d.style.display='block';
}

popupclose=function(){
	el('popupo').style.display='none';
}

flshbld=function(){
	var flashinstalled = 0;
	var msdetect=false;
	if(navigator.plugins&&navigator.plugins.length){
		x=navigator.plugins["Shockwave Flash"];
		if(x){
			flashinstalled=2;
		}else{
			flashinstalled=1;
		}
		if(navigator.plugins["Shockwave Flash 2.0"]){
			flashinstalled=2;
		}
	}else if(navigator.mimeTypes&&navigator.mimeTypes.length){
		x=navigator.mimeTypes['application/x-shockwave-flash'];
		if(x&&x.enabledPlugin)flashinstalled=2;else	flashinstalled=1;
	}else{
		msdetect=true;
	}
	if(msdetect==true){
		
		for(var i=9;i>0;i--){
			try{
				var flash=new ActiveXObject("ShockwaveFlash.ShockwaveFlash." + i);
				if(typeof(flash)=='object'){
					flashinstalled=2;
					break;
				}
			}
			catch(e){
			}
		}
	}
	var d=document.getElementById('flsh');
	var h;
	if(flashinstalled==2){
		h=	'<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="510" height="311">'+
				'<param name="allowScriptAccess" value="sameDomain" />'+
			  '<param name="movie" value="adimg/home/advantage_homeanim.swf" />'+
			  '<param name="quality" value="high" />'+
			  '<param name="wmode" value="transparent" />'+
			  '<param name="bgcolor" value="#1f282d" />'+
			  '<embed src="adimg/home/advantage_homeanim.swf" quality="high" wmode="transparent" bgcolor="#1f282d" width="510" height="311" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />'+
			  '</object>';
	}else{
		
		h='<img src="adimg/home/placeholder_flash.jpg" width="510" height="311" />';
	}
	d.innerHTML=h;
}

init=function(){//page initialise
	bghdrtgl();
	mnuevtattch();
	imgprld('global/bgmnudrpdwn_o.gif','global/bgsn_o.gif');
	imgprld('global/sb/bg_search_o.gif','global/sb/bg_glossary_o.gif','global/sb/bg_subscribe_o.gif');
	if(document.getElementById('home'))flshbld();
}

if(window.addEventListener){//attach onload standards compliant
	window.addEventListener('load',init,true);
}else{//attach onload IE 6-
	window.attachEvent('onload',init);
}