/* Javascript stylesheet */
document.write("<link rel=\"StyleSheet\" href=\"/caciAssets/css/caciJavascript.css\" type=\"text/css\" media=\"screen\" />");

/**********************************************************************************
Client: 	CACI
Project:	CACI Site
Author: 	BL
Date: 		24.04.08
**********************************************************************************/

/**********************************************************************************
@Name:			fnInit()
@Description: 	Initialisation Function to set up required styles, classes etc
@Notes: 		called by body onLoad event
************************************************************************************/
function fnInit() {
	fnUpdateAreaService();
}

/* jQuery ready */
$(window).load(function() {

$('#newsBlock, #eventsBlock').ticker();	

});

/**********************************************************************************
Browser identification
Notes: returns true if browser is within spec
************************************************************************************/
// Global Variables
var iepc,firefox,ns7,ns8,opera,camino,safari,OS

function fnBrowser() {	
	var ua = navigator.userAgent.toLowerCase();	
	OS = ua.indexOf("windows") != -1? "PC":"MAC";		
	
	iepc = (((ua.indexOf("msie 7") != -1)||(ua.indexOf("msie 6") != -1)||(ua.indexOf("msie 5.5") != -1))&&(ua.indexOf("windows") != -1)&&(ua.indexOf("opera") == -1))? true:false;
	firefox = ua.indexOf("firefox") != -1 ? true:false; // pc or mac	
	ns7 = ua.indexOf("netscape/7") != -1 ? true:false; 
	ns8 = ua.indexOf("netscape/8") != -1 ? true:false; // firefox mode
	safari = (ua.indexOf("safari") != -1 && OS!='PC')? true:false;	
	opera = ua.indexOf("opera/9") != -1 ? true:false;
	camino = ua.indexOf("camino") != -1 ? true:false; 
	if (iepc||firefox||ns7||ns8||opera||camino||safari) {
		return true;
	} else {
		return false;
	}
}
fnBrowser(); // run on load;



/**********************************************************************************
Force Focus to move past iFrame
onfocus() event has minor browser compatability issues. Not used for Mozilla Browser.
Selects the moveTo ID and jumps to the first link within 
@param: moveTo - must be an ID within the page
************************************************************************************/
function fnMoveFocus(moveToID) {
	if(iepc) {
		document.getElementById(moveToID).getElementsByTagName("A")[0].focus();
	}
}




/********************************************************************************

Name: 					Flash detect.
Description:			boolean true/false if installed and version number 
						accessed via flash.version
@var flash.installed	true is flash is installed
@var flash.version		flash player version
*********************************************************************************/

var flash = new Object();	
flash.installed = false;

if (navigator.plugins && navigator.plugins.length) {
	for (x=0; x < navigator.plugins.length; x++) {
		
		if (navigator.plugins[x].name.indexOf('Shockwave Flash') != -1) {		
			flash.installed = true;					
			flash.version = eval(navigator.plugins[x].description.split('Shockwave Flash ')[1].split('.')[0]);					
			break;
		}
	}
}
else if (window.ActiveXObject) {
	for (x = 2; x <= 20; x++) {
		try {
			oFlash = eval("new ActiveXObject('ShockwaveFlash.ShockwaveFlash." + x + "');");
			if(oFlash) {		
				flash.installed = true;	
				flash.version = x;
			}
		}
		catch(e) {}
	}
}



	
/********************************************************************************

Name: 				Flash embed
Description:		Writeout flash code. Fixes Eolas update for IE as well.
@param	swf			String path to swf file
@param	width		Number value of movie width
@param	height		Number value of movie height
@param	minVersion	minimum required version of flash for swf. defaults to 6
@param 	nonFlashId	the id of the container for non-flash content. 

*********************************************************************************/

flash.insert = function(swf,width,height,minVersion,nonFlashId) {		
	swf = swf.replace(/\./g,"%2E") // encode periods as %2e	

	if(!minVersion){minVersion = 6;}	
	if (flash.installed) {
		if(flash.version > minVersion) {		
			flashObject = '<embed src="'+swf+'" menu="false" width="'+width+'" height="'+height+'" scale="noscale" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" salign="T" wmode="transparent" />';
			fnHide(nonFlashId);
			document.write(flashObject);
		}
		else {
			fnShow(nonFlashId);
		}	
	}
}


function fnHide(id) {
	if(!document.getElementById(id)){return false};
	var oTarg = document.getElementById(id).style;
	oTarg.position = "absolute";
	oTarg.top = "-5000px";
	oTarg.left = "0";
}

function fnShow(id) {
	if(!document.getElementById(id)){return false};
	var oTarg = document.getElementById(id).style;
	oTarg.position = "static";
	oTarg.top = "";
	oTarg.left = "";
}

function fnUpdateAreaService() {
	var areaDdl = document.getElementById('inputArea');
	var serviceDdl = document.getElementById('inputService');
	
	if(areaDdl){
		
		var goBtn = document.getElementsByName('ctl03')[0]
		
		if(goBtn.click){
			
			goBtn.style.visibility = "hidden";
				
			areaDdl.onchange = function(){
				goBtn.click();
			}
			
			// Make the service drop down fire the change function as well
			if (serviceDdl) {
        serviceDdl.onchange = function(){
          goBtn.click();
        }
			}
		}
		
		
	}
}




/**************************************************************************************

Name: 				Dropdown menu
Description:		Adds the hover in IE browsers and also helps with keyboard 
					accesibility.

***************************************************************************************/


sfHover = function() {
	var sfEls = document.getElementById("mainNav").getElementsByTagName("LI");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className+=(this.className.length>0? " ": "") + "sfhover";
		}
		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp("( ?|^)sfhover\\b"), "");
		}
	}
}
mcAccessible = function() {
	var mcEls = document.getElementById("mainNav").getElementsByTagName("A");
	for (var i=0; i<mcEls.length; i++) {
		mcEls[i].onfocus=function() {
			this.className+=(this.className.length>0? " ": "") + "sffocus"; //a:focus
			this.parentNode.className+=(this.parentNode.className.length>0? " ": "") + "sfhover"; //li < a:focus
			if(this.parentNode.parentNode.parentNode.nodeName == "LI") {
				this.parentNode.parentNode.parentNode.className+=(this.parentNode.parentNode.parentNode.className.length>0? " ": "") + "sfhover"; //li < ul < li < a:focus
				if(this.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName == "LI") {
					this.parentNode.parentNode.parentNode.parentNode.parentNode.className+=(this.parentNode.parentNode.parentNode.parentNode.parentNode.className.length>0? " ": "") + "sfhover"; //li < ul < li < ul < li < a:focus
				}
			}
		}
		mcEls[i].onblur=function() {
			this.className=this.className.replace(new RegExp("( ?|^)sffocus\\b"), "");
			this.parentNode.className=this.parentNode.className.replace(new RegExp("( ?|^)sfhover\\b"), "");
			if(this.parentNode.parentNode.parentNode.nodeName == "LI") {
				this.parentNode.parentNode.parentNode.className=this.parentNode.parentNode.parentNode.className.replace(new RegExp("( ?|^)sfhover\\b"), "");
				if(this.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName == "LI") {
					this.parentNode.parentNode.parentNode.parentNode.parentNode.className=this.parentNode.parentNode.parentNode.parentNode.parentNode.className.replace(new RegExp("( ?|^)sfhover\\b"), "");
				}
			}
		}
	}
}

// only ie needs the sfHover script. all need the accessibility script...
if(window.addEventListener){
	window.addEventListener('load', mcAccessible, false); // gecko, safari, konqueror and standard
	window.addEventListener('load', fnInit, false);
	}
else if(document.addEventListener){ 
	document.addEventListener('load', mcAccessible, false);
	document.addEventListener('load', fnInit, false); // opera 7
	}
else if(window.attachEvent) { // win/ie
	window.attachEvent('onload', sfHover);
	window.attachEvent('onload', mcAccessible);
	window.attachEvent('onload', fnInit);
} else { // mac/ie5
	if(typeof window.onload == 'function') {
		var existing = onload;
		window.onload = function() {
			existing();
			sfHover();
			mcAccessible();
			fnInit();
		}
	} else {
		window.onload = function() {
			sfHover();
			mcAccessible();
			fnInit()
		}
	}
}


function fnUpdateColleagues() {
	
	// Hide all colleague inputs
	document.getElementById("divColleague1").style.display = 'none';
	document.getElementById("divColleague2").style.display = 'none';
	document.getElementById("divColleague3").style.display = 'none';
	document.getElementById("divColleague4").style.display = 'none';
	document.getElementById("divColleague5").style.display = 'none';
	
	// show as many as have been selected
	var ddl = document.getElementById("inputColleagues");
	if (ddl) {
		for (var count = 2; count <= ddl.selectedIndex; count++) {
			document.getElementById("divColleague" + (count - 1)).style.display = '';
		}
	}	
}

function fnUpdateColleaguesInSite() {
	
	// Hide all colleague inputs
	document.getElementById("divColleague1").style.display = 'none';
	document.getElementById("divColleague2").style.display = 'none';
	document.getElementById("divColleague3").style.display = 'none';
	//document.getElementById("divColleague4").style.display = 'none';
	//document.getElementById("divColleague5").style.display = 'none';
	
	// show as many as have been selected
	var ddl = document.getElementById("inputColleagues");
	if (ddl) {
		for (var count = 2; count <= ddl.selectedIndex; count++) {
			document.getElementById("divColleague" + (count - 1)).style.display = '';
		}
	}	
}

function fnUpdateOptions() {
	
	// Hide all colleague inputs
	document.getElementById("divOption1").style.display = 'none';
	document.getElementById("divOption2").style.display = 'none';
	
	// show as many as have been selected
	
	var ddl1 = document.getElementById("q1");  //inputFirstName2  question1
	var diff1 = (ddl1.options[ddl1.selectedIndex].value);// - (iteration-1));
	//alert(ddl1.options[ddl1.selectedIndex].value, diff);
	
	if (diff1 == "Yes") 
	{
		//for (var count = 2; count <= ddl.selectedIndex; count++) 
		//{
			document.getElementById("divOption1").style.display = '';
		//}
	}	
	
	var ddl2 = document.getElementById("q2"); //inputFirstName3 question2
	var diff2 = (ddl1.options[ddl2.selectedIndex].value);// - (iteration-1));
	//alert(ddl1.options[ddl1.selectedIndex].value, diff);
	
	if (diff2 == "Yes") 
	{
		//for (var count = 2; count <= ddl.selectedIndex; count++) 
		//{
			document.getElementById("divOption2").style.display = '';
		//}
	}
}

function fnUpdateOptionsCallSoftware() {
	
	// Hide all colleague inputs
	document.getElementById("divOption1").style.display = 'none';
	//document.getElementById("divOption2").style.display = 'none';
	
	// show as many as have been selected
	
	var ddl1 = document.getElementById("q1");  //inputFirstName2  question1
	var diff1 = (ddl1.options[ddl1.selectedIndex].value);// - (iteration-1));
	//alert(ddl1.options[ddl1.selectedIndex].value, diff);
	
	if (diff1 == "Yes") 
	{
		//for (var count = 2; count <= ddl.selectedIndex; count++) 
		//{
			document.getElementById("divOption1").style.display = '';
		//}
	}	
	/*
	var ddl2 = document.getElementById("q2"); //inputFirstName3 question2
	var diff2 = (ddl1.options[ddl2.selectedIndex].value);// - (iteration-1));
	//alert(ddl1.options[ddl1.selectedIndex].value, diff);
	
	if (diff2 == "Yes") 
	{
		//for (var count = 2; count <= ddl.selectedIndex; count++) 
		//{
			document.getElementById("divOption2").style.display = '';
		//}
	}
	*/
}

function fnHearFrom() {
	
	// Hide all colleague inputs
	document.getElementById("divColleague1").style.display = 'none';
	//document.getElementById("divColleague2").style.display = 'none';
	//document.getElementById("divColleague3").style.display = 'none';
	//document.getElementById("divColleague4").style.display = 'none';
	//document.getElementById("divColleague5").style.display = 'none';
	
	// show as many as have been selected
	var ddl = document.getElementById("inputColleagues");
	var hear1 = (ddl.options[ddl.selectedIndex].value);
	//if (ddl) {
	//	for (var count = 2; count <= ddl.selectedIndex; count++) {
	//		document.getElementById("divColleague" + (count - 1)).style.display = '';
	//	}
	//}	
	
	//alert(hear1);
	if (hear1 == "0002Email") {
		//for (var count = 2; count <= ddl.selectedIndex; count++) {
		//	document.getElementById("divColleague" + (count - 1)).style.display = '';
		//}
		document.getElementById("divColleague1").style.display = '';
	}
}

function fnInSiteContact(){
	var isCheck = document.getElementById("chkMainContact").checked;
	//Colleagues
	//alert(isCheck);
	
	if(isCheck)
		document.getElementById("Colleagues").style.display = 'none';
	else
		document.getElementById("Colleagues").style.display = '';	
}
