
function jobWindow(job)
{
    window.open('/our-company/employment-opportunities/view/'+job,'','width=920,height=600,toolbar=0,resizable=1,scrollbars=yes',true);
}

function pageLoad()
{
  Rollovers.load();
  
  //Check for homepage flash content
  if($('flashcontent'))
  {
    var so = new SWFObject("/files/intro.swf", "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", "307", "230", "9", "#000000");
    so.addVariable('volume','0');
    so.write("flashcontent");
  }
  
  if($('flashcontentLarge'))
  {
    var so = new SWFObject("/files/large.swf", "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", "650", "488", "9", "#000000"); 
    so.addVariable('volume','0');
    so.write("flashcontentLarge");
  }
  
  if($('workinglunch'))
  {
    var so = new SWFObject("/files/wlcomp1.swf", "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000", "320", "240", "9", "#000000");
    so.addVariable('volume','0');
    so.write("workinglunch");
  }
  
}

var Rollovers = {

  load: function()
  {
    this.__findRollovers();
  },
  
  __findRollovers: function()
  {  
    $$('.nav li div').each(
      function(element)
      {
        //Observe a mouse over event
        Event.observe(element, 'mouseover', Rollovers.__mouseOver.bindAsEventListener(this,element) );
        Event.observe(element, 'mouseout', Rollovers.__mouseOut.bindAsEventListener(this,element) );
      }
    );
    
    $$('.rollover').each(
      function(element)
      {
        //Observe a mouse over event
        Event.observe(element, 'mouseover', Rollovers.__mouseOver.bindAsEventListener(this,element) );
        Event.observe(element, 'mouseout', Rollovers.__mouseOut.bindAsEventListener(this,element) );
      }
    );
  },
  
  __mouseOver: function(e,obj)
  {
    $(obj).addClassName('hover');
  },
  
  __mouseOut: function(e,obj)
  {
    $(obj).removeClassName('hover');
  }
  
}

function toggleLayer( whichLayer ){  
	var elem, vis;  
	if( document.getElementById ) // this is the way the standards work
	elem = document.getElementById( whichLayer );  
	else if( document.all ) // this is the way old msie versions work      
	elem = document.all[whichLayer];  
	else if( document.layers ) // this is the way nn4 works    
	elem = document.layers[whichLayer];  
	vis = elem.style;  // if the style.display value is blank we try to figure it out here  
	if(vis.display==''&&elem.offsetWidth!=undefined&&elem.offsetHeight!=undefined)    
	vis.display = (elem.offsetWidth!=0&&elem.offsetHeight!=0)?'block':'none';  
	vis.display = (vis.display==''||vis.display=='block')?'none':'block';
}

function Validate_String(string, return_invalid_chars)
         {
         valid_chars = '1234567890-_.^~abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
         invalid_chars = '';
         
         if(string == null || string == '')
            return(true);
         
         //For every character on the string.   
         for(index = 0; index < string.length; index++)
            {	
            char = string.substr(index, 1);                        //line 100
            
            //Is it a valid character?
            if(valid_chars.indexOf(char) == -1)
              {
              //If not, is it already on the list of invalid characters?
              if(invalid_chars.indexOf(char) == -1)
                {
                //If it's not, add it.
                if(invalid_chars == '')
                   invalid_chars += char;
                else
                   invalid_chars += ', ' + char;
                }
              }
            }                     
            
         //If the string does not contain invalid characters, the function will return true.
         //If it does, it will either return false or a list of the invalid characters used
         //in the string, depending on the value of the second parameter.
         if(return_invalid_chars == true && invalid_chars != '')
           {
           last_comma = invalid_chars.lastIndexOf(',');
           
           if(last_comma != -1)
              invalid_chars = invalid_chars.substr(0, $last_comma) + 
              ' and ' + invalid_chars.substr(last_comma + 1, invalid_chars.length);
                      
           return(invalid_chars);
           }
         else
           return(invalid_chars == ''); 
         }

function Validate_Email_Address(email_address)
         {
         //Assumes that valid email addresses consist of user_name@domain.tld
         at = email_address.indexOf('@');
         dot = email_address.indexOf('.');
         
         if(at == -1 || 
            dot == -1 || 
            dot == 0 || 
            dot == email_address.length - 1)
            return(false);
            
         user_name = email_address.substr(0, at);
         domain_name = email_address.substr(at + 1, email_address.length);                  
         
         if(Validate_String(user_name) === false || 
            Validate_String(domain_name) === false)
            return(false);                     
         
         return(true);
         }

function checkname(){
	var input=document.getElementById("EnquiryName");
	if (input.value.indexOf(' ') == -1){
		alert("Please enter your full name.");
		input.focus();
		input.select();
		return(false);
		}
	return(true);
	}

function checkemail(){
	var input=document.getElementById("EnquiryEmail");
	if (!Validate_Email_Address(input.value)){
		alert("Invalid email address.");
		input.focus();
		input.select();
		return(false);
		}
	return(true);
	}

function removenonnumerics(input){
	var i;
	var clean="";
	for (i=0; i < input.length; i++){
		var c = input.charAt(i);
	        if (((c >= "0") && (c <= "9"))) clean=clean+c;
		}
	return clean;
	}

function checkphone(){
	var input=document.getElementById("EnquiryTelephone");
	var clean=removenonnumerics(input.value);
	if ((clean.length==11) && (clean.charAt(0)=="0")){
		return(true);
		}
	else	{
		alert("Invalid telephone number.");
		input.focus();
		input.select();
		return(false);
		}
	}				//Line 200

function checkdate(){
	var input=document.getElementById("EnquiryPreferredDates");
	var validformat=/^\d{2}\/\d{2}\/\d{4}$/ //Basic check for format validity
	var returnval=false
	if (!validformat.test(input.value))
		alert("Invalid Date Format (dd/mm/yyyy). Please correct and submit again.")
	else{ //Detailed check for valid date ranges
		var dayfield=input.value.split("/")[0]
		var monthfield=input.value.split("/")[1]
		var yearfield=input.value.split("/")[2]
		var dayobj = new Date(yearfield, monthfield-1, dayfield)
		if ((dayobj.getMonth()+1!=monthfield)||(dayobj.getDate()!=dayfield)||(dayobj.getFullYear()!=yearfield))
			alert("Invalid Day, Month, or Year. Please correct and submit again.")
		else
			returnval=true
		}
	if (returnval==false) {
		input.focus();
		input.select();
		}
	return returnval
}  				

function checktime(){
	if (	document.getElementById("EnquiryPreferredStartTimeMorning").checked || 
		document.getElementById("EnquiryPreferredStartTime12-5pm").checked || 
		document.getElementById("EnquiryPreferredStartTimeAfter-5pm").checked){
		return(true);
		}
	else {
		alert("Please select your preferred start time.");
		return(false);
		}
	}

function checkdrivers(){
	var input=document.getElementById("EnquiryNumberOfDrivers");
	var circuit = document.getElementById("EnquiryRaceLocation").value;
	if (isNaN(input.value) || input.value==0){
		alert("Invalid number of drivers. Please correct and submit again.");
		input.focus();
		input.select();
		return(false);
		}
	else {
		if (input.value>100 && circuit=="birmingham") { 
			alert("Too many drivers (maximum 100 drivers for this circuit).");
			input.value=100;
			}
		else if (input.value>80) { 
			alert("Too many drivers (maximum 80 drivers for this circuit).");
			input.value=80;
			}
		return(true);
		}
}

function checkeventformat(noisy){
	var input=document.getElementById("EnquiryRaceFormat");
	var errormsg=""; 
	var noofdrivers = document.getElementById("EnquiryNumberOfDrivers").value;
	var adults = document.getElementById("EnquiryDriverTypesAdults");
	var under16s = document.getElementById("EnquiryDriverTypesUnder-16");
	if (input.value=="None-Selected"){
		errormsg="Please select an event format.\n";
		input.focus();
		}
	if (input.value=="Childrens-Party"){
		under16s.checked=true;
		if (noofdrivers>20) { 
			errormsg="Too many drivers for a Childrens Party (maximum 20 drivers for this format).\n";
			input.options[6].selected=true;
			}
		}
	if (input.value=="Arrive-Drive"){
		if (noofdrivers>12) { 
			errormsg=errormsg + "Too many drivers for Arrive Drive (maximum 12 drivers for this format).\n";
			input.options[2].selected=true;
			}
		}
	if (input.value=="Extended-GP"){
		if (under16s.checked==true) {
			errormsg=errormsg + "Under 16s cannot race in Grand Prix formats.\nPlease select either 'Arrive & Drive' or 'Children's Party'\n";
			}
		if (noofdrivers<10) { 
			errormsg=errormsg + "Not enough drivers for an Extended Grand Prix (minimum 10 drivers for this format).\n";
			input.options[2].selected=true;
			}
		if (noofdrivers>30) { 
			errormsg=errormsg + "Too many drivers for an Extended Grand Prix (maximum 30 drivers for this format).\n";
			input.options[2].selected=true;
			}
		}
	if (input.value=="Grand-Prix"){
		if (under16s.checked==true) {
			errormsg=errormsg + "Under 16s cannot race in Grand Prix formats.\nPlease select either 'Arrive & Drive' or 'Children's Party'\n";
			}
		if (noofdrivers>40) { 
			errormsg=errormsg + "Too many drivers for a Grand Prix (maximum 40 drivers for this format).\n";
			input.options[4].selected=true;
			}
		}
	if (input.value=="Le-Mans"){
		if (under16s.checked==true) {
			errormsg=errormsg + "Under 16s cannot race in Le Mans formats.\nPlease select either 'Arrive & Drive' or 'Children's Party'\n";
			}
		if (noofdrivers<40) { 
			errormsg=errormsg + "Not enough drivers for a Le Mans (minimum 40 drivers for this format).\n";
			input.options[2].selected=true;
			}
		}
	if (!errormsg=="" && noisy){
		alert(errormsg);
		}
	if (under16s.checked){
		adults.checked=false;
		}
	else {
		adults.checked=true;
		}
	if (errormsg=="") return(true); else return(false);
}

function checkquote() {
	var testok=true; 
	if (testok==true) { testok=checkname(); }
	if (testok==true) { testok=checkemail(); }
	if (testok==true) { testok=checkphone(); }
	if (testok==true) { testok=checkdate(); }
	if (testok==true) { testok=checktime(); }
	if (testok==true) { testok=checkdrivers(); }
	if (testok==true) { testok=checkeventformat(true); }
	if (testok==true) { document.forms[1].submit(); }
}

function checkform() {
	var testok=true; 
	if (testok==true) { testok=checkname(); }
	if (testok==true) { testok=checkemail(); }
	if (testok==true) { testok=checkphone(); }
	if (testok==true) { document.forms[1].submit(); }
}


function ShowPopup(hoveritem)
{
hp = document.getElementById("hoverpopup");

// Set position of hover-over popup
hp.style.top = hoveritem.offsetTop - 210;
hp.style.left = hoveritem.offsetLeft + 20;

// Set popup to visible
hp.style.visibility = "Visible";
}

function HidePopup()
{
hp = document.getElementById("hoverpopup");
hp.style.visibility = "Hidden";
}


Event.observe(window, 'load', function() { pageLoad(); });
