var FormElements				= {
	sActive : 'activeField',
	sInactive : 'inactiveField',
	sClearText : 'fieldClearText',
	
	addFunctions : function () {
		if(!document.getElementById||!document.createTextNode){return;}
		
		var aInputs = document.getElementsByTagName("input");
		for(var i=0; i < aInputs.length; i++){
			if(aInputs[i].type=='text'||aInputs[i].type=='password'){
				
				aInputs[i].onfocus = function() {
					DOMUtils.cssjs('remove', this, FormElements.sInactive);
					DOMUtils.cssjs('add', this, FormElements.sActive);
					
					if(DOMUtils.cssjs('check', this, FormElements.sClearText)){
						this.value = '';
					}
				}
				aInputs[i].onblur = function() {
					DOMUtils.cssjs('remove', this, FormElements.sActive);
					DOMUtils.cssjs('add', this, FormElements.sInactive);
				}
			}		
		}
	}
}

// left hand tabbed content 
tabbedContent = function(){
	return;
}

tabbedContent.toggleTabs = function(oObj,iLength,iTabNo,sContent,iNumberOfTabs,sTabsId){
	var oDiv = DOMUtils.getParent(oObj,"div");
	oDiv.style.backgroundPosition = '-' + ((iTabNo-1)*iLength) + 'px 0';
	var oContainer = document.getElementById(sContent);
	var aContentBlocks = DOMUtils.getElementsByClassName(oContainer, "div", "content");
	for(i=0;i<aContentBlocks.length;i++){
		if (i==(iTabNo-1)) {
			DOMUtils.cssjs('remove', aContentBlocks[i], 'hide');
		}
		else {
			DOMUtils.cssjs('add', aContentBlocks[i], 'hide');
		}
	}
	
	//Change tab link active state
	for(i=1;i<=iNumberOfTabs;i++){
		//Try and get linkTabs
		try{
			var eTabLink = document.getElementById('tab'+i+'Link_'+sTabsId);
			if(i == iTabNo){
				DOMUtils.cssjs('add', eTabLink, 'active');
			}else{
				DOMUtils.cssjs('remove', eTabLink, 'active');
			}
		}
		catch(err){
			//If we have trouble getting tab links, break out of loop and dont set tab links active/inactive
			break;
		}
	}
}

tabbedContent.getTabs = function(sTabsId){
	if(!document.getElementById||!document.createTextNode){return;}
	if(!document.getElementsByTagName||!document.getElementById(sTabsId)){
		return;
	}
	var oContainer = document.getElementById(sTabsId);
	var aFoo = sTabsId.split('tabs_')[1];
	var sContent = 'tabsContent';
	if(aFoo.indexOf('_')){
		var aBar = aFoo.split('_');
		var iTabsLength = aBar[0];
		var sContent = sContent + "_" + aBar[1];
	}
	var aTabs = DOMUtils.getAllChildren(oContainer,'a')
	if(!aTabs.length){
		return;
	}
	
	for(i=0;i<aTabs.length;i++){
		aTabs[i].onclick = function(){
			this.href = 'javascript:;';	
			sFoo = DOMUtils.getParent(this,"li").className;
			aBar = sFoo.split('tab');
			iTabNo = parseInt(aBar[1]);
			tabbedContent.toggleTabs(this,iTabsLength,iTabNo,sContent,aTabs.length,sTabsId);
			this.blur();
		}
	}
	//Cha
}
// /left hand tabbed content on the homepage

// right hand tabbed content 
tabbedContentR = function(){
	return;
}

tabbedContentR.toggleTabsR = function(oObjR,iLengthR,iTabNoR,sContentR,oBkgR){
	var oDivR = DOMUtils.getParent(oObjR,"div");
	oDivR.style.backgroundPosition = '-' + ((iTabNoR-1)*iLengthR) + 'px 0';
	
	var oOnR = DOMUtils.getParent(oBkgR,"a");
	oOnR.style.backgroundColor = '#' + '("d4eaf3":"c3ccd0")';
	
	var oContainerR = document.getElementById(sContentR);
	var aContentBlocksR = DOMUtils.getElementsByClassName(oContainerR, "div", "contentR");
	for(i=0;i<aContentBlocksR.length;i++){
		aContentBlocksR[i].style.display = (i==(iTabNoR-1))? "block":"none"; 
	}
}

tabbedContentR.getTabs = function(sTabsIdR){
	if(!document.getElementById||!document.createTextNode){return;}
	if(!document.getElementsByTagName||!document.getElementById(sTabsIdR)){
		return;
	}
	var oContainerR = document.getElementById(sTabsIdR);
	var aFooR = sTabsIdR.split('tabsR_')[1];
	var sContentR = 'tabsContentR';
	if(aFooR.indexOf('_')){
		var aBarR = aFooR.split('_');
		var iTabsLengthR = aBarR[0];
		var sContentR = sContentR + "_" + aBarR[1];
	}
	var aTabsR = DOMUtils.getAllChildren(oContainerR,'a')
	if(!aTabsR.length){
		return;
	}
	for(i=0;i<aTabsR.length;i++){
		aTabsR[i].onclick = function(){
			this.href = 'javascript:;';	
			sFooR = DOMUtils.getParent(this,"li").className;
			aBarR = sFooR.split('tab');
			iTabNoR = parseInt(aBarR[1]);
			tabbedContentR.toggleTabsR(this,iTabsLengthR,iTabNoR,sContentR);
			this.blur();
		}
	}
}
// /right hand tabbed content on the homepage


// search boxes
var SiteSearch							= {
	sDefaultPhrase : 'Search',
	
	init:function() {
		if(!document.getElementById||!document.createTextNode){return;}
		var eQuickSearchForm			= document.getElementById('frmNewsSearch');
		var eSearchForm					= document.getElementById('frmSearch');
		
		if (eQuickSearchForm) {
			eQuickSearchForm.onsubmit	= function() {return SiteSearch.submitSiteSearch(eQuickSearchForm);};
		}
		
		if (eSearchForm) {
			eSearchForm.onsubmit		= function() {return SiteSearch.submitSiteSearch(eSearchForm);};
		}
	},
	
	submitSiteSearch:function(eForm) {
		var reSearchPhrase				= new RegExp("/");
		var sSearchLocation				= eForm.action;
		var sPhrase						= eForm.sSearchPhrase.value;
		if (eForm.sSearchType) {
			sSearchLocation				= eForm.sSearchType[eForm.sSearchType.selectedIndex].value;
		}

		
		// make sure not searching on the default phrase		
		if (sPhrase === SiteSearch.sDefaultPhrase) {
			sPhrase						= '';
		} 
		// make sure phrase is escaped and URL compatible
		else {
			sPhrase						= sPhrase.replace(reSearchPhrase," ");
			sPhrase						= escape(sPhrase);
		}
		
		if (sSearchLocation.indexOf('/jobs/') > 0) {
			sSearchLocation				+= '?keyword=' + sPhrase + '&amp;search=search';
		}
		else {
			// add search phrase to URL
			if (sPhrase != '') {
				sSearchLocation				+= 'phrase/' + sPhrase + '/'; 
			}
		}
		
		window.location					= sSearchLocation;
		return false;
	}
};

var CarouselClassFix					= {
	init : function () {
		if(!document.getElementById||!document.createTextNode){return;}
		var oCarouselMod				= document.getElementById('fixWidthNoJS');
		if (oCarouselMod) {
			oCarouselMod.id				= '';
		}
		
		var oCarouselDiv				= document.getElementById('articleCarousel');
		if (oCarouselDiv) {
			DOMUtils.cssjs('remove', oCarouselDiv, 'articleCarouselNoJS');
		}
	}
}

var NewsImageCaptionResizer				= {
	init : function() {
		if(!document.getElementById||!document.createTextNode){return;}
		var eImageHolder				= document.getElementById('articleImageHolder');
		var eImageCaption				= document.getElementById('imageCaption');
		if (!eImageHolder || !eImageCaption) {return;}
		var aImages						= eImageHolder.getElementsByTagName('img');
		if (aImages.length == 0) {return;}
		
		eImageCaption.style.width		= DOMUtils.getStyle(aImages[0], 'width');
		var nWidth						= eImageCaption.style.width.replace(/\D/, '');
		if (nWidth > 330){
			var eArticleBody				= document.getElementById('articleBody');
			if (eArticleBody) {
			DOMUtils.cssjs('add',eArticleBody, 'clear');
		}
		}
			
	}
}

var Bulletins							= {
	
	hideBulletin : function (eElem1,c1,c2,eElem2,d1,d2) {
		var eElement1					= document.getElementById(eElem1);
		var eElement2					= document.getElementById(eElem2);
		
		if (eElement2.innerHTML == "Hide Bulletin Description") {
			eElement2.innerHTML = "View Bulletin Description";
		}
		else {
			eElement2.innerHTML = "Hide Bulletin Description";
		}
		DOMUtils.cssjs("swap",eElement1,c1,c2);
	}
}


WindowListener.add("load","FormElements.addFunctions()");
WindowListener.add("load","FieldClearer.init('frmNewsSearch--sSearchPhrase,frmNewsByEmail--sEmailAddress')");
WindowListener.add("load","SiteSearch.init()");
WindowListener.add("load","NewsImageCaptionResizer.init()");
WindowListener.add("load","CarouselClassFix.init()");