var imgit = new Image;
imgit.src = '/data/site/front-buttons/client_login_roll.jpg';
var index;
function roll(img_name, img_src)
   {
   document[img_name].src = '/data/site/right/'+img_src;
   }
function rollfront(img_name, img_src)
   {
   document[img_name].src = '/data/site/front-buttons/'+img_src;
   }

function randomImage()
{
images = new Array(5);
links = new Array(5);
images[0] = 'fleet_70.jpg';
images[1] = 'forsyth.jpg';
images[2] = 'kent.jpg';
images[3] = 'UGS.jpg';
images[4] = 'cplan.jpg';
links[0] = '/pages/467/Default.aspx';
links[1] = '/pages/427/Default.aspx';
links[2] = '/pages/424/Default.aspx';
links[3] = '/pages/430/Default.aspx';
links[4] = '/pages/428/Default.aspx';

//index = Math.floor(Math.random() * images.length);
index = 0;
var el = document.getElementById('testimonial');
var pre = '/data/site/homepage-testimonials/'
if (el == null) {return;}
else
{
el.src='/data/site/homepage-testimonials/' + images[index];
document.getElementById('testimonial_link').href = links[index];

startRolling();
}
}

function startRolling()
{
images = new Array(5);
links = new Array(5);
images[0] = 'fleet_70.jpg';
images[1] = 'forsyth.jpg';
images[2] = 'kent.jpg';
images[3] = 'UGS.jpg';
images[4] = 'cplan.jpg';
//links[0] = '/pages/467/Default.aspx';
links[0] = '#';
links[1] = '/pages/427/Default.aspx';
links[2] = '/pages/424/Default.aspx';
links[3] = '/pages/430/Default.aspx';
links[4] = '/pages/428/Default.aspx';

//index = Math.floor(Math.random() * images.length);
index += 1;
if (index == 4) {index = 0;}
setTimeout("swapfade(document.getElementById('testimonial'),'/data/site/homepage-testimonials/'+images[index],'2',links[index])",5000);
setTimeout("startRolling()",15000)
}
function openImage(imageurl)
{
ab = window.open('/showphoto.asp?photo='+imageurl,'photo','status=0,toolbar=0,location=0,menubar=0,scrollbars=1,height=480,width=800');
ab.focus();
}


function calculation() {
	var Err = 0;
	
	document.getElementById('err1').innerHTML = '';
	document.getElementById('err2').innerHTML = '';
	document.getElementById('err3').innerHTML = '';

document.getElementById('ip11').value=30;
		document.getElementById('ip21').value=formatAsMoney(0.50);
		document.getElementById('ip31').value=7;
		document.getElementById('ip34').value=14;
		document.getElementById('ip41').value=formatAsMoney(59);
		document.getElementById('ip61').value=formatAsMoney(100);

	// Err = validateVehInputs();
	if(Err==0) {
		
		if(!isBlank(document.getElementById('ip01').value)&&(isInteger(document.getElementById('ip01').value))) {
			document.getElementById('ip12').value = document.getElementById('ip01').value*document.getElementById('ip11').value;
			document.getElementById('ip13').value = 5*document.getElementById('ip01').value*document.getElementById('ip11').value;
			document.getElementById('ip22').value = returnMoney(document.getElementById('ip01').value)*document.getElementById('ip21').value;
			document.getElementById('ip23').value = 4*document.getElementById('ip01').value*document.getElementById('ip21').value;
			document.getElementById('ip32').value = document.getElementById('ip01').value*document.getElementById('ip31').value;
			document.getElementById('ip32').value = document.getElementById('ip01').value*document.getElementById('ip31').value;
			document.getElementById('ip33').value = 5*4*document.getElementById('ip01').value*document.getElementById('ip31').value;
			document.getElementById('ip35').value = 5*4*document.getElementById('ip01').value*document.getElementById('ip31').value/document.getElementById('ip34').value;
	
			document.getElementById('ip62').value = formatAsMoney(document.getElementById('ip01').value*document.getElementById('ip61').value);
			document.getElementById('ip64').value = formatAsMoney(document.getElementById('ip01').value*document.getElementById('ip61').value + document.getElementById('ip01').value*document.getElementById('ip41').value);
		}
		
		if(!isBlank(document.getElementById('ip14').value)&&(isNumeric(document.getElementById('ip14').value))) {
			document.getElementById('ip15').value = '£ ' + formatAsMoney(document.getElementById('ip13').value*4.33/60*document.getElementById('ip14').value);
		
		}
		
		if(!isBlank(document.getElementById('ip24').value)&&(isNumeric(document.getElementById('ip24').value))) {
			document.getElementById('ip25').value = '£ ' + formatAsMoney(document.getElementById('ip01').value*document.getElementById('ip21').value*document.getElementById('ip24').value*4.33);
		
		}
		
		if(!isBlank(document.getElementById('ip36').value)&&(isNumeric(document.getElementById('ip36').value))) {
			document.getElementById('ip37').value = '£ ' + formatAsMoney(document.getElementById('ip35').value*document.getElementById('ip36').value);
		
		}
		
		
		if((!isBlank(document.getElementById('ip15').value))&&(!isBlank(document.getElementById('ip25').value))&&(!isBlank(document.getElementById('ip37').value))) {
			var tot = (+returnMoney(document.getElementById('ip15').value)) + (+returnMoney(document.getElementById('ip25').value)) + (+returnMoney(document.getElementById('ip37').value));
			document.getElementById('ip38').value = '£ ' + formatAsMoney(tot);
			
			//document.getElementById('ip51').value = formatAsMoney(parseInt(document.getElementById('ip15').value) + parseInt(document.getElementById('ip25').value) + parseInt(document.getElementById('ip37').value));
			//document.getElementById('ip53').value = formatAsMoney(parseInt(document.getElementById('ip51').value) - parseInt(document.getElementById('ip52').value));
		}		
	}else{
			
			
			
		if(Err < 200) {	
			document.getElementById('err1').innerHTML = '<br>'+errors[Err]+'<br><br>';
		}else if(Err < 300) {	
			document.getElementById('err2').innerHTML = '<br>'+errors[Err]+'<br><br>';
		}else if(Err < 400) {		
			document.getElementById('err3').innerHTML = '<br>'+errors[Err]+'<br><br>';
		}
	}
	
}

function validationAll() {
		Err = 0;
		
		document.getElementById('err').innerHTML = '';
		document.getElementById('err1').innerHTML = '';
		document.getElementById('err2').innerHTML = '';
		document.getElementById('err3').innerHTML = '';
		
		Err = validateFormInputs();
		
		if(Err == 0) {
			Err = validateVehData();
		}
		
		
		if(Err == 0) {
			return true;
		}else{
	    if(Err < 100) {
	    	document.getElementById('err').innerHTML = '<br>'+errors[Err]+'<br><br>';
	    }else if(Err < 200) {	
				document.getElementById('err1').innerHTML = '<br>'+errors[Err]+'<br><br>';
			}else if(Err < 300) {	
				document.getElementById('err2').innerHTML = '<br>'+errors[Err]+'<br><br>';
			}else if(Err < 400) {		
				document.getElementById('err3').innerHTML = '<br>'+errors[Err]+'<br><br>';
			}
			
			return false;
		}
}

function validateVehData() {
		if(!isInteger(document.getElementById('ip01').value)) {
			return 110;
		}
		
		
		if((isBlank(document.getElementById('ip14').value))||(!isNumeric(document.getElementById('ip14').value))) {
			return 111;
		}
				
		
		if((isBlank(document.getElementById('ip24').value))||(!isNumeric(document.getElementById('ip24').value))) {
			return 210;
		}
		
		if((isBlank(document.getElementById('ip36').value))||(!isNumeric(document.getElementById('ip36').value))) {
			return 310;
		}
		

		
		
	return 0;
}


/*
function validateVehInputs() {
		if((!isBlank(document.getElementById('ip01').value))&&(!isInteger(document.getElementById('ip01').value))) {
			return 100;
		}
		
		if((!isBlank(document.getElementById('ip14').value))&&(!isInteger(document.getElementById('ip01').value))) {
			return 101;
		}
		
		if((!isBlank(document.getElementById('ip14').value))&&(!isNumeric(document.getElementById('ip14').value))) {
			return 102;
		}
		
		if((!isBlank(document.getElementById('ip24').value))&&(!isInteger(document.getElementById('ip01').value))) {
			return 200;
		}
		
		if((!isBlank(document.getElementById('ip24').value))&&(!isInteger(document.getElementById('ip14').value))) {
			return 201;
		}
		
		if((!isBlank(document.getElementById('ip24').value))&&(!isNumeric(document.getElementById('ip24').value))) {
			return 202;
		}
		
		if((!isBlank(document.getElementById('ip36').value))&&(!isInteger(document.getElementById('ip01').value))) {
			return 300;
		}
		
		if((!isBlank(document.getElementById('ip36').value))&&(!isNumeric(document.getElementById('ip36').value))) {
			return 301;
		}
		
		
	return 0;
}
*/


function validateFormInputs() {
	if(isBlank(document.getElementById('date').value)) {
		return 10;
	}
	
	if(isBlank(document.getElementById('contact').value)) {
		return 11;
	}
	
	if(isBlank(document.getElementById('company').value)) {
		return 12;
	}
	
	if(isBlank(document.getElementById('address').value)) {
		return 13;
	}
	
	if(isBlank(document.getElementById('landline').value)) {
		return 14;
	}
	
	if(isBlank(document.getElementById('email').value)) {
		return 15;
	}
	
	if(!validate_email(document.getElementById('email').value)) {
		return 16;
	}
	
	return 0;
	
}



function validate_email(){
	var emailExp =  /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
	if(document.getElementById('email').value.match(emailExp)){
		return true;
	}else{
		return false;
	}
}





function isInteger(val){
	if (isBlank(val)){return false;}
	for(var i=0;i<val.length;i++){
		if(!isDigit(val.charAt(i))){return false;}
		}
	return true;
}

function isDigit(num) {
	if (num.length>1){return false;}
	var string="1234567890";
	if (string.indexOf(num)!=-1){return true;}
	return false;
	}


function isBlank(val){
	if(val==null){return true;}
	for(var i=0;i<val.length;i++) {
		if ((val.charAt(i)!=' ')&&(val.charAt(i)!="\t")&&(val.charAt(i)!="\n")&&(val.charAt(i)!="\r")){return false;}
		}
	return true;
	}


function isNumeric(sText)

{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

 		if(sText == null) {
 			  IsNumber = false;
 		}else{
		   for (i = 0; i < sText.length && IsNumber == true; i++) 
		      { 
		      Char = sText.charAt(i); 
		      if (ValidChars.indexOf(Char) == -1) 
		         {
		         IsNumber = false;
		         }
		      }		      
		}
   return IsNumber;
   
}



function formatAsMoney(mnt) {
    mnt -= 0;
    mnt = (Math.round(mnt*100))/100;
    return (mnt == Math.floor(mnt)) ? mnt + '.00' 
              : ( (mnt*10 == Math.floor(mnt*10)) ? 
                       mnt + '0' : mnt);
}

function in_array(needle, haystack){
	var found = false;
	var i = 0;
	while (i<haystack.length) {
		if (needle == haystack[i]) {found=true;}
		i++;
	}
	return found;
}

function returnMoney(str)
{
    str = str.replace('£ ','');
    return str;
    }
    
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_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=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}




var errors = new Array();
errors[10] = 'Missing Date';
errors[11] = 'Missing Contact';
errors[12] = 'Missing Company';
errors[13] = 'Missing Address';
errors[14] = 'Missing Land Line';
errors[15] = 'Missing Email';
errors[16] = 'Invalid Email';
errors[110] = 'Missing or Invalid Number of Vehicles in Your Fleet';
errors[111] = 'Missing or Invalid Average Billing Per Hour';
errors[210] = 'Missing or Invalid Overtime Rate';
errors[310] = 'Missing or Invalid Price Per Gallon';


/*
errors[100] = 'Invalid Number of Vehicles';
errors[101] = 'Please enter a valid Number of Vehicles before specifying Average Billing Per Hour';
errors[102] = 'Invalid Average Billing Per Hour';
errors[200] = 'Please enter a valid Number of Vehicles value before specifying Overtime Rate';
errors[201] = 'Please enter a valid Average Billing Per Hour before specifying Overtime Rate';
errors[202] = 'Invalid Overtime Rate';
errors[300] = 'Please enter a valid Number of Vehicles before specifying Price Per Gallon';
errors[301] = 'Invalid Price Per Gallon';
*/

window.onload=ControlVersion;
//v1.7
// Flash Player Version Detection
// Detect Client Browser type
// Copyright 2005-2007 Adobe Systems Incorporated.  All rights reserved.
var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;

function ControlVersion()
{
	var version;
	var axo;
	var e;

	// NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry

	try {
		// version will be set for 7.X or greater players
		axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
		version = axo.GetVariable("$version");
	} catch (e) {
	}

	if (!version)
	{
		try {
			// version will be set for 6.X players only
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
			
			// installed player is some revision of 6.0
			// GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
			// so we have to be careful. 
			
			// default to the first public version
			version = "WIN 6,0,21,0";

			// throws if AllowScripAccess does not exist (introduced in 6.0r47)		
			axo.AllowScriptAccess = "always";

			// safe to call for 6.0r47 or greater
			version = axo.GetVariable("$version");

		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 4.X or 5.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = axo.GetVariable("$version");
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 3.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
			version = "WIN 3,0,18,0";
		} catch (e) {
		}
	}

	if (!version)
	{
		try {
			// version will be set for 2.X player
			axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			version = "WIN 2,0,0,11";
		} catch (e) {
			version = -1;
		}
	}
	
	return version;
}

// JavaScript helper required to detect Flash Player PlugIn version information
function GetSwfVer(){
	// NS/Opera version >= 3 check for Flash plugin in plugin array
	var flashVer = -1;
	
	if (navigator.plugins != null && navigator.plugins.length > 0) {
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
			var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
			var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
			var descArray = flashDescription.split(" ");
			var tempArrayMajor = descArray[2].split(".");			
			var versionMajor = tempArrayMajor[0];
			var versionMinor = tempArrayMajor[1];
			var versionRevision = descArray[3];
			if (versionRevision == "") {
				versionRevision = descArray[4];
			}
			if (versionRevision[0] == "d") {
				versionRevision = versionRevision.substring(1);
			} else if (versionRevision[0] == "r") {
				versionRevision = versionRevision.substring(1);
				if (versionRevision.indexOf("d") > 0) {
					versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
				}
			}
			var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
		}
	}
	// MSN/WebTV 2.6 supports Flash 4
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
	// WebTV 2.5 supports Flash 3
	else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
	// older WebTV supports Flash 2
	else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
	else if ( isIE && isWin && !isOpera ) {
		flashVer = ControlVersion();
	}	
	return flashVer;
}

// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
	versionStr = GetSwfVer();
	if (versionStr == -1 ) {
		return false;
	} else if (versionStr != 0) {
		if(isIE && isWin && !isOpera) {
			// Given "WIN 2,0,0,11"
			tempArray         = versionStr.split(" "); 	// ["WIN", "2,0,0,11"]
			tempString        = tempArray[1];			// "2,0,0,11"
			versionArray      = tempString.split(",");	// ['2', '0', '0', '11']
		} else {
			versionArray      = versionStr.split(".");
		}
		var versionMajor      = versionArray[0];
		var versionMinor      = versionArray[1];
		var versionRevision   = versionArray[2];

        	// is the major.revision >= requested major.revision AND the minor version >= requested minor
		if (versionMajor > parseFloat(reqMajorVer)) {
			return true;
		} else if (versionMajor == parseFloat(reqMajorVer)) {
			if (versionMinor > parseFloat(reqMinorVer))
				return true;
			else if (versionMinor == parseFloat(reqMinorVer)) {
				if (versionRevision >= parseFloat(reqRevision))
					return true;
			}
		}
		return false;
	}
}

function AC_AddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?'); 
  else
    return src + ext;
}

function AC_Generateobj(objAttrs, params, embedAttrs) 
{ 
  var str = '';
  if (isIE && isWin && !isOpera)
  {
    str += '<object ';
    for (var i in objAttrs)
    {
      str += i + '="' + objAttrs[i] + '" ';
    }
    str += '>';
    for (var i in params)
    { //alert("working");
      str += '<param name="' + i + '" value="' + params[i] + '" /> ';
    }
    str += '</object>';
  }
  else
  {
    str += '<embed ';
    for (var i in embedAttrs)
    {
      str += i + '="' + embedAttrs[i] + '" ';
    }
    str += '> </embed>';
  }

  document.write(str);
}

function AC_FL_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_SW_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
     , null
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();    

    switch (currArg){	
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":	
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblClick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
      case "id":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "width":
      case "height":
      case "align":
      case "vspace": 
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}

function getElements(classname)
  {
var inc=0;
var z=new Array();
  var x=document.getElementsByTagName("div");
  for (i=0; i<x.length; i++) {
if (x[i].className==classname){
i+=3;
z[i]=x[i];
z[i].style.backgroundColor="#DDDDDD";
}
}
var c=new Array();
var h=new Array();
var j=new Array();
var k=new Array();
var m=new Array();
var b=document.getElementsByTagName("div");
for (i=0; i<b.length; i++) {
if (b[i].className==classname) {
c[i]=b[i];
k[i]=c[i].offsetHeight;
h[i]=c[i].firstChild.offsetHeight;
j[i]=k[i]-h[i];
m[i]=j[i]/2;
c[i].firstChild.style.paddingTop=m[i];
c[i].firstChild.style.paddingBottom=m[i];


}
}
  }
function getElements2() {
getElements("hnav");
}
window.onload=getElements2;

function redowindow()
{
//window.location.reload(false);
}
//window.onresize = redowindow;

// ISF1.11 :: Image swap-fade 
// *****************************************************
// DOM scripting by brothercake -- http://www.brothercake.com/
//******************************************************
//global object
var isf = { 'clock' : null, 'fade' : true, 'count' : 1 }
/*******************************************************



/*****************************************************************************
 List the images that need to be cached
*****************************************************************************/

isf.imgs = [
	'cplan.jpg',
'forsyth.jpg',
'kent.jpg',
'UGS.jpg',
];

/*****************************************************************************
*****************************************************************************/



//cache the images
isf.imgsLen = isf.imgs.length;
isf.cache = [];
for(var i=0; i<isf.imgsLen; i++)
{
	isf.cache[i] = new Image;
	isf.cache[i].src = isf.imgs[i];
}


//swapfade setup function
function swapfade()
{
	//if the timer is not already going
	if(isf.clock == null)
	{
		//copy the image object 
		isf.obj = arguments[0];
		
		//copy the image src argument 
		isf.src = arguments[1];
		
		//store the supported form of opacity
		if(typeof isf.obj.style.opacity != 'undefined')
		{
			isf.type = 'w3c';
		}
		else if(typeof isf.obj.style.MozOpacity != 'undefined')
		{
			isf.type = 'moz';
		}
		else if(typeof isf.obj.style.KhtmlOpacity != 'undefined')
		{
			isf.type = 'khtml';
		}
		else if(typeof isf.obj.filters == 'object')
		{
			//weed out win/ie5.0 by testing the length of the filters collection (where filters is an object with no data)
			//then weed out mac/ie5 by testing first the existence of the alpha object (to prevent errors in win/ie5.0)
			//then the returned value type, which should be a number, but in mac/ie5 is an empty string
			isf.type = (isf.obj.filters.length > 0 && typeof isf.obj.filters.alpha == 'object' && typeof isf.obj.filters.alpha.opacity == 'number') ? 'ie' : 'none';
		}
		else
		{
			isf.type = 'none';
		}
		
		//change the image alt text if defined
		if(typeof arguments[3] != 'undefined' && arguments[3] != '')
		{
			//isf.obj.alt = arguments[3];
document.getElementById('testimonial_link').href = arguments[3];

		}
		
		//if any kind of opacity is supported
		if(isf.type != 'none')
		{
			//copy and convert fade duration argument 
			//the duration specifies the whole transition
			//but the swapfade is two distinct transitions
			isf.length = parseInt(arguments[2], 10) * 500;
			
			//create fade resolution argument as 20 steps per transition
			//again, split for the two distrinct transitions
			isf.resolution = parseInt(arguments[2], 10) * 10;
			
			//start the timer
			isf.clock = setInterval('isf.swapfade()', isf.length/isf.resolution);
		}
		
		//otherwise if opacity is not supported
		else
		{
			//just do the image swap
			isf.obj.src = isf.src;
		}
		
	}
};


//swapfade timer function
isf.swapfade = function()
{
	//increase or reduce the counter on an exponential scale
	isf.count = (isf.fade) ? isf.count * 0.9 : (isf.count * (1/0.9)); 
	
	//if the counter has reached the bottom
	if(isf.count < (1 / isf.resolution))
	{
		//clear the timer
		clearInterval(isf.clock);
		isf.clock = null;

		//do the image swap
		isf.obj.src = isf.src;

		//reverse the fade direction flag
		isf.fade = false;
		
		//restart the timer
		isf.clock = setInterval('isf.swapfade()', isf.length/isf.resolution);

	}
	
	//if the counter has reached the top
	if(isf.count > (1 - (1 / isf.resolution)))
	{
		//clear the timer
		clearInterval(isf.clock);
		isf.clock = null;

		//reset the fade direction flag
		isf.fade = true;
		
		//reset the counter
		isf.count = 1;
	}

	//set new opacity value on element
	//using whatever method is supported
	switch(isf.type)
	{
		case 'ie' :
			isf.obj.filters.alpha.opacity = isf.count * 100;
			break;
			
		case 'khtml' :
			isf.obj.style.KhtmlOpacity = isf.count;
			break;
			
		case 'moz' : 
			//restrict max opacity to prevent a visual popping effect in firefox
			isf.obj.style.MozOpacity = (isf.count == 1 ? 0.9999999 : isf.count);
			break;
			
		default : 
			//restrict max opacity to prevent a visual popping effect in firefox
			isf.obj.style.opacity = (isf.count == 1 ? 0.9999999 : isf.count);
	}
};


//alert('here');
requiredfields = new Array('first_name', 'First Name', 'last_name', 'Last Name', 'email', 'Email ', 'Address', 'phone', 'Phone', 'country', 'Country');

var country;
var state;
var first_name;
var last_name;
var phone_number;
function formrules(frm) {


    var thisform = frm;
    var elements = document.forms[0].elements;
    var ret = listAllRequiredFields(elements);
    if (ret == false) {return false;}

    for (var x = 0; x < elements.length; x++) {
        //try {
        //check if form field has a fieldname attribute
        //alert(elements[x].attributes["FieldName"].value);

        if (elements[x].attributes["FieldName"] != undefined) {
            //alert(elements[x].attributes["FieldName"].value);
            //check fleet size for value, put in 9 if no selection
            if (elements[x].attributes["FieldName"].value == '00N30000000wQso') {
                if (elements[x].value == '' || elements[x].value == null)
                { elements[x].value = '9' }
            }
            //get state and country field values
            else if (elements[x].attributes["FieldName"].value == 'country') {
                country = elements[x].value;
            }
            else if (elements[x].attributes["FieldName"].value == 'state') {
                state = elements[x].value;
            }
            else if (elements[x].attributes["FieldName"].value == 'first_name') {
                ret = badFormValue(elements[x].value);
                first_name = elements[x].value;
                if (ret == true) { alert('Invalid first name'); elements[x].focus(); return false; }

            }
            else if (elements[x].attributes["FieldName"].value == 'last_name') {
                ret = badFormValue(elements[x].value);
                last_name = elements[x].value;
                if (ret == true) { alert('Invalid Last name'); elements[x].focus(); return false; }
            }
            else if (elements[x].attributes["FieldName"].value == 'phone') {
                if (phonenumber(elements[x].value).length <= 6)
                { alert('Invalid Phone Number');elements[x].focus();  return false; }

            }
            else if (elements[x].attributes["FieldName"].value == 'email')
                if (validateEmail(elements[x].value) == false)
                { alert('Invalid Email'); elements[x].focus(); return false }

        }
        //}

        //catch (Error) {
        //alert(Error.description);
        //}

    }
    //end of loop through elements
    

    if (country == 'US' && state == '') {
        alert('You must select a state.')
        return false;
    }
    else if (country != 'US' && country != 'CA' && state != '') {
        alert('Please delete your state selection.')
        return false;
    }
    if (first_name == last_name && first_name != '') {
        alert('invalid name');
        return false;
    }
    return true;

}
function trimString(str) {
    try {
        return str.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
    }
    catch (e) {
        return str;
    }
}


function badFormValue(frmvalue) {
    var badwords = new Array('http://*');
    frmvalue = trimString(frmvalue);
    for (var b = 0; b < badwords.length; b++) {
        var re = new RegExp(badwords[b]);
        if (frmvalue.match(re)) {
            return true;
        }
    }
    if (trimString(frmvalue) == '') {
        return true;
    }

    return false;
}


function phonenumber(phonevalue) {
    var p = new RegExp(/\d/g);
    var s = '';
    var match = phonevalue.match(p);
    //alert(match.length);
    for (var m = 0; m < match.length; m++) {
        s += match[m];
    }
    //alert(s);
    return s;
}

function listAllRequiredFields(elements) {
    for (var x = 0; x < elements.length; x++) {
        for (r = 0; r < requiredfields.length; r++) {
            if (elements[x].attributes["FieldName"] != undefined) {
                if (requiredfields[r] == elements[x].attributes["FieldName"].value && elements[x].value == '') {
                    alert(requiredfields[r + 1] + ' is required');
                    r++
                    elements[x].focus()
                    return false;
                }
            }
        }
    }
    return true;
}


function validateEmail(elementValue) {
    var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
    return emailPattern.test(elementValue);
}

function CheckBoxSelection() {
    var c = document.getElementById('00N60000001YFpD');
    if (c == null) { return true; }
    if (document.getElementById('00N60000001YFpD').checked == true) { return true; }
    else if (document.getElementById('00N60000001YFpI').checked == true) { return true; }
    else if (document.getElementById('00N60000001YFpN').checked == true) { return true; }
    else if (document.getElementById('00N60000001YFpS').checked == true) { return true; }
    else if (document.getElementById('00N60000001YFpX').checked == true) { return true; }
    else if (document.getElementById('00N60000001YFpc').checked == true) { return true; }
    else if (document.getElementById('00N60000001YFph').checked == true) { return true; }
    else if (document.getElementById('00N60000001YFpr').checked == true) { return true; }
    else if (document.getElementById('00N60000001YFqE').checked == true) { return true; }
    return false;
}
