
var timer;

function hoverShow(listId) {
	timer = setTimeout("toggleVis('"+listId+"')",1000);
}

function stopShow() {
	clearTimeout(timer);	
}

function toggleVis(id) {
	
	for (var i=1;i<10;i++) {
		var x = document.getElementById('sub'+i);
		if (x) {
			x.className='noDisplay';	
		}
	}

	document.getElementById('ourteamSub').className='noDisplay';
	
	var e = document.getElementById(id)

	if (e.className=='noDisplay') {
		e.className='';
	} else {
		e.className='noDisplay';
	}

}

// Create XMLHttpRequest object
function createXMLHttp() {
	var xmlHttp;
  	try {
    	// Firefox, Opera 8.0+, Safari
    	xmlHttp=new XMLHttpRequest();
    } catch (e) {
    	// Internet Explorer
    	try {
      		xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
      	} catch (e) {
      		try {
        		xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        	} catch (e) {
        		alert("Your web browser does not support this feature.");
        		return false;
        	}
      	}
    }
	return xmlHttp;
}

// Function to send a request to a server page
function showImg(imgId, altText) {
	var xmlHttp = createXMLHttp();
	var imgHolder = document.getElementById('imgHolder');
	imgHolder.innerHTML='<img src="images/loading.gif" alt="Loading, please wait." />';
	var url = "ajax.php?imgid="+imgId+"&alttext="+altText+"&nocache="+Math.random();
	xmlHttp.onreadystatechange=function() {
    	if (xmlHttp.readyState==4 && xmlHttp.status==200) {
        	imgHolder.innerHTML=xmlHttp.responseText;
    	}
    }
	xmlHttp.open("GET",url);
    xmlHttp.send(null);
}




//ALLOWS EXTERNAL LINKS TO BE OPENED IN A NEW WINDOW WITHOUT THE USE OF TARGET ATTRIBUTE
//LOOPS THROUGH LINKS ON PAGE FINDS EXTERNAL LINKS AND ADDS TARGET//
function externalLinks() {
	//SETS DOMAIN OF SITE
	var domainName=document.domain;
	
	//FIND ALL LINKS ON THE CURRENT PAGE
	var externalLinks=document.getElementsByTagName("a");
	//LOOP THROUGH LINKS ARRAY
	for(var i=0; i<externalLinks.length; i++) {
		//GETS CONTENT OF 'HREF' ATTRIBUTE ON CLICKED LINK
		var attribute=externalLinks[i].getAttribute("href");
		
		//GET VALUE http IN 'HREF' **FOR MOZILLA&&
		var contains_http=attribute.indexOf("http");
		
		//GET VALUE domainName **FOR IE**
		var contains_domain=attribute.indexOf(domainName);
		
		//DOES CONTAIN AN 'http' OR DOES NOT CONTAIN domainName
		if(contains_http>-1 && contains_domain==-1) {
			//SET NEW ATTRIBUTE ON LINK
			externalLinks[i].setAttribute("target", "_blank");
		}
		
	}
	
}

//FORM VALIDATION
//LOOPS THROUGH THE ELEMENTS IN A SUBMITTED FORM, CHECKS IF THEY ARE MARKED AS MANDATORY (class='mand') AND HIGHTLIGHTS LABELS

/**REQUIRED
//EACH REQUIRED FIELD NEEDS CLASS OF mand
**/

/**OPTIONAL
//AN ERROR PARAGRAPH AT THE TOP OF THE PAGE ID=error
//A LINK OR INPUT FIELD IN error TO FOCUS ON
**/

//HIGHLIGHT LABEL IF ELEMENT IS BLANK OR NORMALISE IF COMPLETED
function highlightLabel(form, id, color, weight) {
	var forAttribute="";
	//FIND LABELS ON FORM
	var labels=form.getElementsByTagName("label");
	for(var z=0; z<labels.length; z++) {
		//GET FOR ATTRIBUTE
		//forAttribute=labels[z].getAttribute('for')?labels[z].getAttribute('for'):labels[z].getAttribute('htmlFor');
		if(navigator.appName=="Microsoft Internet Explorer") {
			forAttribute=labels[z].getAttribute('htmlFor');
		}else{
			forAttribute=labels[z].getAttribute('for');
		}
		
		//MATCH FOR WITH ELEMENT ID
		if(forAttribute==id) {
			//APPLY STYLES AS APPROPRIATE
			labels[z].style.color='#'+color;
			labels[z].style.fontWeight=weight;
		}
	}
}


//VALIDATES INPUT FIELDS
function checkInputs(form, fail) {
	//GET INPUTS
	var inputs=form.getElementsByTagName("input");
	for(var x=0; x<inputs.length; x++) {
		//DEFINE ELEMENT ID
		var elementId=inputs[x].getAttribute("id");
		//IS FIELD MANDATORY AND NOT COMPLETED
		if(inputs[x].className.indexOf("mand")>-1 && inputs[x].value=="") {
			//CHANGE LABEL
			highlightLabel(form, elementId, 'cb0000', 'bold');
			//INCREMENT FAIL VAL
			fail++;
		//THIS COVERS CHECKBOXES
		}else if((inputs[x].className.indexOf("mand")>-1 && inputs[x].className.indexOf("checkbox")>-1) && inputs[x].checked==false) {
			//CHANGE LABEL
			highlightLabel(form, elementId, 'cb0000', 'bold');
			//INCREMENT FAIL VAL
			fail++;
		}else if((inputs[x].className.indexOf("mand")>-1 && inputs[x].className.indexOf("checkbox")>-1) && inputs[x].checked==true) {
			//CHANGE LABEL
			highlightLabel(form, elementId, '000', 'normal');
		}else if(inputs[x].className.indexOf("mand")>-1 && inputs[x].value!="") {
			//CHANGE LABEL
			highlightLabel(form, elementId, '000', 'bold');
		}
		
	}
	//SEND FAIL BACK TO FUNCTION
	return fail;
}

//VALIDATES TEXTAREAS FIELDS
function checkTextArea(form, fail) {
	//GET TEXTAREAS
	var textareas=form.getElementsByTagName("textarea");
	for(var n=0; n<textareas.length; n++) {
		//DEFINE ELEMENT ID
		var elementId=textareas[n].getAttribute("id");
		//IS FIELD MANDATORY AND NOT COMPLETED
		if(textareas[n].className.indexOf("mand")>-1 && textareas[n].value=="") {
			//CHANGE LABEL
			highlightLabel(form, elementId, 'cb0000', 'bold');
			//INCREMENT FAIL VAL
			fail++;
		}else if(textareas[n].className.indexOf("mand")>-1 && textareas[n].value!="") {
			//CHANGE LABEL
			highlightLabel(form, elementId, '000', 'bold');
		}
		
	}
	//SEND FAIL BACK TO FUNCTION
	return fail;
}

//VALIDATES SELECTS FIELDS
function checkSelects(form, fail) {
	//GET SELECTS
	var selects=form.getElementsByTagName("select");
	for(var b=0; b<selects.length; b++) {
		//DEFINE ELEMENT ID
		var elementId=selects[b].getAttribute("id");
		//IS FIELD MANDATORY AND NOT COMPLETED
		if(selects[b].className.indexOf("mand")>-1 && (selects[b].value=="0" || selects[b].value=="")) {
			//CHANGE LABEL
			highlightLabel(form, elementId, 'cb0000', 'bold');
			//INCREMENT FAIL VAL
			fail++;
		}else if(selects[b].className.indexOf("mand")>-1 && (selects[b].value!="0" && selects[b].value!="")) {
			//CHANGE LABEL
			highlightLabel(form, elementId, '000', 'bold');
		}
	}
	//SEND FAIL BACK TO FUNCTION
	return fail;
}

//FINDS THE SUBMITTED FORM
function formValidation() {
	var forms=document.getElementsByTagName("form");
	//LOOP THROUGH FORMS
	for(var i=0; i<forms.length; i++) {
		//FORM HAS BEEN SUBMITTED
		forms[i].onsubmit=function() {
			//SET FAIL VAL
			var fail=0;
			//ASSIGN CURRENT FAIL VAL TO CHECKING FUNCTIONS
			fail += checkInputs(this, fail);
			fail += checkTextArea(this, fail);
			fail += checkSelects(this, fail);
			
			//CHECK PASSWORDS MATCH
			if(document.getElementById('password_1') && document.getElementById('password_2')) {
				
				var password = document.getElementById('password_1');
				var repassword = document.getElementById('password_2');
				
				var passwordFail = 0;
				
				if(password.value != repassword.value) {
					
					passwordFail++;
					
				}
				
				
			}
			
			//RETURN RESULT OF CHECKING
			if(fail>0) {
				
				if(document.getElementById('error')) {
					var errorText = document.getElementById('error');
					errorText.style.display='block';
					//NEED TO PUT A LINK OR INPUT IN THE ERROR PARA TO GET FOCUS - OPTIONAL
					if(document.getElementById('error_input')) {
						var errorInput = document.getElementById('error_input');
						errorInput.focus();
					}
				}else{
					alert('Please make sure you have completed all fields marked *\n\n');
				}
				
				return false;
				
			}else{
				
				//CHECK IF PASSWORDS MATCH
				if(passwordFail>0) {
					if(document.getElementById('passwordError')) {
					
						var passwordError = document.getElementById('passwordError');
						passwordError.style.display='block';
						var errorInput = document.getElementById('error_password');
						errorInput.focus();
					
					}else{
						alert('Please make sure your passwords match\n\n');
					}
					
					return false;
					
				}else{
				
					return true;
				
				}
			}
		}
	}
}

//EXECUTES ONLOAD FUNCTIONS
function loadfunctions() {
	externalLinks();
	formValidation();
}
//LOADS IN MULTIPLE FUNCTIONS ONLOAD
window.onload=loadfunctions;