// Switch image
function switchImage(imgName, imgSrc) { if (document.images) {
if (imgSrc != "none") { document.images[imgName].src = imgSrc; } } 
}
//-->

// Redirect homepage
var arrLinks1 = new Array('home_01.html','home_02.html','home_03.html')

function homepage() { 
var rand = Math.floor(Math.random() * arrLinks1.length); 
top.location.href=arrLinks1[rand]; 
} 
//-->

// Redirect gallery
var arrLinks2 = new Array('whatwevedone_01.html','whatwevedone_02.html')

function gallery() { 
var rand = Math.floor(Math.random() * arrLinks2.length); 
top.location.href=arrLinks2[rand]; 
} 
//-->

// Open script
function openWindow(theURL,winName,features) { //v2.0
   window.open(theURL,winName,features);
}
//-->

// Close script
function closeWindow() {
window.close();
 }
//-->

// Fake script
function fake() { //v1.0
}
//-->

// Rollover script
function swapImgRestore() { //v3.0
  var i,x,a=document.sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.p) d.p=new Array();
    var i,j=d.p.length,a=preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.p[j]=new Image; d.p[j++].src=a[i];}}
}

function findObj(n, d) { //v3.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=findObj(n,d.layers[i].document); return x;
}

function swapImage() { //v3.0
  var i,j=0,x,a=swapImage.arguments; document.sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=findObj(a[i]))!=null){document.sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//-->

// Hide-Show layers script
function findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function showHideLayers() { //v6.0
  var i,p,v,obj,args=showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}
//-->

// Order form essentials

	function sectorOver(colorWord)
	{
		document.getElementById(colorWord.toLowerCase() + 'Tab').style.background = 'url(/images/topBar' + colorWord + 'All.gif)';
	}
	
	function sectorOff(colorWord, colorCode)
	{
		document.getElementById(colorWord.toLowerCase() + 'Tab').style.background = 'url(/images/topBar' + colorWord + '.gif)';
	}


	function showType(formField, list, sector, check)
	{
		if (sector=='' || sector!=check)
		{
			formField.type.length = 0;
			document.getElementById(list).style.display = 'none';
		}
		else
		{
			formField.type.length = 0;
			formField.type[0] = new Option('Type', '');
			for (var i=1; i<jobTypes[sector].length; i++)
		  	{
				formField.type[i] = new Option(jobTypes[sector][i].name, jobTypes[sector][i].index);
			}										 
			document.getElementById(list).style.display = '';
		}
	}
	
	var newImage, imageList, preloadCount, preloadInterval;
	var preloadCount = 0;
	imageList = new Array();
	
	function addPreloadImage(url)
	{
		imageList[imageList.length] = url;
	}
	
	function startPreloading()
	{ 
		if(imageList.length != 0)
		{
			newImage = new Image;
			newImage.src = imageList[0]
			preloadInterval = setInterval('preloadCheck()', 1000);
		}
	}
	
	function preloadCheck()
	{
		if (newImage.complete)
		{
			preloadCount += 1;
			if (preloadCount < imageList.length)
			{
				newImage.src = imageList[preloadCount];
				clearInterval(preloadInterval);
				preloadInterval = setInterval('preloadCheck()', 1000);
			}
			else
			{
				clearInterval(preloadInterval);
			}
		}
	}
	
	function imageSwap(key, url)
	{
		eval('document.' + key + '.src = \'' + url + '\'');
	}
	
	function swapSky(key, mouseOn)
	{
		if (!mouseOn) eval('document.' + key + '.src = \'/images/services/' + key + '.gif\'');
		else eval('document.' + key + '.src = \'/images/services/' + key + 'Light.gif\'');
	}

	function mailto(recipient, domain)
	{
		document.location.href = 'mailto:' + recipient + '@' + domain + '?subject=Website Enquiry';
	}
	
	function goTo(url)
	{
		document.location.href = url;
	}

	function openWindow(url, width, height, sizeable)
	{
		if (sizeable) sizeable = ',resizable,scrollbars'
		else sizeable = '';
		var openWin = window.open(url,'newWindow','width=' + width + ',height=' + height + ',screenX=' + ((screen.availWidth-width)/2) + ',left=' + ((screen.availWidth-width)/2) + ',screenY=' + ((screen.availHeight-height)/2) + ',top=' + ((screen.availHeight-height)/2) + sizeable);
		openWin.focus();
	}
	
//#-- VARIABLE TO TRACK IF CURRENT FORM FIELD IS A TEXT AREA - IF SO, microsoftKeyPress SHOULDN'T RUN
var textArea = false;
//#-- FUNCTION TO HANDLE KEYPRESSES IN IE BROWSERS
	function microsoftKeyPress() 
	{	
		if (!textArea)
		{
	  	  if (window.event.keyCode == 13)
			{
				submitForm();
				window.event.returnValue = false;
			}
		}
	}
	

// Valdiation
	var errorDisplayed = false;
	
	function validate(result, message, object)
	{
		if (!result)
		{
			if (!errorDisplayed)
			{
				alert(message)
				if (object) object.focus();
				errorDisplayed = true;
			}
		}
	}
	
	function allOK()
	{
		var temp = errorDisplayed;
		errorDisplayed = false;
		return !temp;
	}
	
	function isEmail(testEmail)
	{
		var regex = /^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/;
		return regex.test(testEmail);
	}
	
	function isNumeric(text)
	{
   		var validChars = "0123456789.";
   		var isNumber = true;
   		var thisChar;

		if(text == '') isNumber = false;
 
   		for (i = 0; i < text.length && isNumber == true; i++) 
      	{ 
      		thisChar = text.charAt(i); 
      		if (validChars.indexOf(thisChar) == -1) 
        	{
         	isNumber = false;
         	}
      	}
   		return isNumber;
	}
	
function isDate(testDate)
{
	var pattern = /^(\d{1,2})(\/)(\d{1,2})(\/)(\d{2}|\d{4})$/;
	if (!pattern.test(testDate)) return false;
	
	var dateArray = testDate.split(/\//g);
	
	var day, month, year
	day = dateArray[0];
	month = dateArray[1];
	year = dateArray[2];
	
	if (month < 1 || month > 12) return false;
	if (day < 1 || day > 31) return false;
	if ((month == 4 || month == 6 || month == 9 || month == 11) && day == 31) return false;
	
    if (month == 2)
	{ // check for february 29th
        var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
        if (day > 29 || (day==29 && !isleap)) return false;
    }
	
	return true;
}