<!--
var bExplorer = false;
var preloadFlag = false;
function mywindow(loc)
{
var nWidth=768;
var height=(screen.height)?(screen.height)-100:450;
var	LeftPosition=(screen.width)?(screen.width-nWidth)/2:100;
var	TopPosition=(screen.height)?(screen.height-height)/2:100;
a=window.open(loc,'adWin','top='+TopPosition+',left='+LeftPosition+',width=' + nWidth + ',height='+height+',resizable=no,scrollbars=yes,toobars=yes');
if(a.focus)a.focus();
return;
}

function Entry_MouseOver(Entry,bg,c){

		Entry.style.backgroundColor = bg;
		Entry.style.color = c;

}
	
function Entry_MouseOut(Entry){

		Entry.style.backgroundColor = '';
		Entry.style.color = '';

}

function Entry_MouseOverSL(Entry,bg,c,sMakeModel,sMakeModelColour,sPrice,sPriceColour){
	//alert("test");
		Entry.style.backgroundColor = bg;
		Entry.style.color = c;
		
		var oMake = document.getElementById(sMakeModel);
		oMake.style.color = sMakeModelColour;
		var oPrice = document.getElementById(sPrice);
		oPrice.style.color = sPriceColour;

}
	
function Entry_MouseOutSL(Entry,sMakeModel,sMakeModelColour,sPrice,sPriceColour){

		Entry.style.backgroundColor = '';
		Entry.style.color = '';
		
		var oMake = document.getElementById(sMakeModel);
		oMake.style.color = sMakeModelColour;
		var oPrice = document.getElementById(sPrice);
		oPrice.style.color = sPriceColour;
}
	
function Entry_Click(strLocation){
	document.location.href=strLocation;
	return true;
}
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];}
}
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 newImage(arg) {
	if (document.images) {
		rslt = new Image();
		rslt.src = arg;
		return rslt;
	}
}

function changeImages() {
//	alert(preloadFlag);
	if (document.images && (preloadFlag == true)) {
		for (var i=0; i<changeImages.arguments.length; i+=2) {
			document[changeImages.arguments[i]].src = changeImages.arguments[i+1];
		}
	}
}

function linktrack(ID) {
		if(document.images){
			new Image().src="linktracker.asp?ID=" + ID;
		}
		return true;
	}

function bookmarksite(title,url){
if (window.sidebar) // firefox
	window.sidebar.addPanel(title, url, "");
else if(window.opera && window.print){ // opera
	var elem = document.createElement('a');
	elem.setAttribute('href',url);
	elem.setAttribute('title',title);
	elem.setAttribute('rel','sidebar');
	elem.click();
} 
else if(document.all)// ie
	window.external.AddFavorite(url, title);
}



function writeMap(mapDivId, addSrc)
	{
		var thisDiv = document.getElementById(mapDivId)
		var addIFrame = document.createElement('iframe');
		var iFrameSrc = document.createAttribute( "src" );
		var iFrameCollapse = document.createAttribute("frameborder");
		iFrameCollapse.nodeValue = 0;
		addIFrame.setAttributeNode(iFrameCollapse);
		iFrameSrc.nodeValue = addSrc;
		addIFrame.setAttributeNode( iFrameSrc );
		thisDiv.appendChild(addIFrame);
	}
	
	
	
function emailok(emailElement) {
	invalidChars = ' /:,;';
	for(i=0; i<invalidChars.length; i++) {
		badChar = invalidChars.charAt(i);
		if(emailElement.value.indexOf(badChar,0) != -1) {
			return false;
		}
	}
	atPos = emailElement.value.indexOf('@',1);
	if(atPos == -1) {
		return false;
	}
	if(emailElement.value.indexOf('@',atPos+1) != -1) {
		return false;
	}
	periodPos = emailElement.value.indexOf('.',atPos);
	if(periodPos == -1) {
		return false;
	}
	if(periodPos+3 > emailElement.value.length) {
		return false;
	}
}	




function validateitfinance(form)
{
	var MemID = form.DealerID.value;
	var sel_timeataddress = document.getElementById("sel_timeataddress").value;	
	var sel_timeempaddress = document.getElementById("sel_timeempaddress").value;	
    var sErrMsg = '';
    
    if (form.financename.value.length < 3){
	    sErrMsg +=  'name\n' ;  
	    form.financename.focus();
    }

	if ((form.financetelephone.value.length < 5) && (emailok(form.financeemail) == false)){
		if (form.financeemail.value.length > 0 && emailok(form.financeemail) == false){
		sErrMsg +=  'valid email or telephone number\n' ;  
		form.financeemail.focus();
		}
		if (form.financetelephone.value.length < 5){
		sErrMsg +=  'telephone number\n' ;  
		form.financetelephone.focus();
		}
	}
	
	if (form.financebirth.value == ''){
		sErrMsg +=  'date of birth\n' ;  
		form.financebirth.focus();
	}
	
	if (form.financeadd.value == ''){
		sErrMsg +=  'address\n' ;  
		form.financeadd.focus();
	}	
	
	if (form.finmake.value == ''){
		sErrMsg +=  'vehicle make\n' ;  
		form.finmake.focus();
	}
		
	if (form.finmodel.value == ''){
		sErrMsg +=  'vehicle model\n' ;  
		form.finmodel.focus();
	}
		
	if (form.finpprice.value == ''){
		sErrMsg +=  'purchase price\n' ;  
		form.finpprice.focus();
	}
		
	if (form.finreq.value == ''){
		sErrMsg +=  'finance required\n' ;  
		form.finreq.focus();
	}
	
    if (form.jobtitle.value == ""){
	    sErrMsg +=  'job title\n' ;  
	    form.jobtitle.focus();
    }  
	
	if (form.empname.value == ""){
	    sErrMsg +=  'employer name\n' ;   
	    form.empname.focus();
    }  
	 
	if (form.emptel.value == ""){
	    sErrMsg +=  'employer telephone\n' ;   
	    form.emptel.focus();
    }  
		
	
	if (sel_timeataddress < 3){  
	    
	    if (form.prevadd.value == ""){
	   	    sErrMsg +=  'previous address\n' ;   
	   	    form.prevadd.focus();
	  	}
	 
	    
    } 
	 
	
	if (sel_timeempaddress < 3){  
	    
	    if (form.prevjobtitle.value == ""){
	        sErrMsg +=  'previous job title\n' ;   
	        form.prevjobtitle.focus();
	    }
	  
	    if (form.prevempname.value == ""){
	        sErrMsg +=  'previous employers name\n' ;    
	        form.prevempname.focus();
	    }  
	    
	    if (form.prevempadd2.value == ""){
	        sErrMsg +=  'previous employers address\n' ;    
	        form.prevempadd2.focus();
	    } 
	  
	    if (form.prevemptel.value == ""){
	        sErrMsg +=  'previous employers tel\n' ;    
	        form.prevemptel.focus();
	    }  
    }     

    if (sErrMsg != '') {
		sErrMsg =  'The following fields are mandatory and must be filled in\n\n' + sErrMsg;   
		alert(sErrMsg);
		return false;
	}
	else {
		return true;
	}
}





// Custom label focus fixes safari and enables classes
	// passes to blurClass and focusClass
	// IE cannot use label.getAttribute('for') so use label.htmlFor instead
	function focusInput () {
		focusLabels ();
		if(!document.getElementsByTagName) return false;
		var inputs = document.getElementsByTagName("input");
		for(i=0;i<inputs.length;i++) {
			inputs[i].onfocus = function () {focusClass(this);};
			inputs[i].onblur = function () {blurClass(this)};
		}
		var texts = document.getElementsByTagName("textarea");
		for(i=0;i<texts.length;i++) {
			texts[i].onfocus = function () {focusClass(this);};
			texts[i].onblur = function () {blurClass(this)};
		}
		var selects = document.getElementsByTagName("select");
		for(i=0;i<selects.length;i++) {
			selects[i].onfocus = function () {focusClass(this);};
			selects[i].onblur = function () {blurClass(this)};
		}
	}//End of focusInput
	function focusLabels () {
		if(!document.getElementsByTagName) return false;
		var labels = document.getElementsByTagName("label");
		for(i=0;i<labels.length;i++) {
			if(!labels[i].htmlFor) continue;
			labels[i].onclick = function () {
				var field = this.htmlFor;
				var focusMe = document.getElementById(field);
				focusMe.focus();
			}
		}
	}//End of focusLabels
	function focusClass (id, nameClass){
		if (id.className=="") {
				id.className= "Hovers";
				} else {
				id.className+=" Hovers";
				}
	 }//End of focusClass
	 function blurClass (id, nameClass){
		if (id.className=="Hovers") {
				id.className= "";
				} else {
				id.className=id.className.replace(new RegExp(" Hovers\\b"), "");
				}
	 }//End of blurClass
	//window.onload = function() {
	//focusInput ();
	//}
//}

//modified from christian heilman http://www.onlinetools.org/articles/unobtrusivejavascript/chapter5.html
function checkform(of) {
	if(!document.getElementById || !document.createTextNode){return;}
	if(!document.getElementById('required')){return;}
	//setup our variables
	
	var errorID = 'errorMsg';
	var errorClass = 'showError'
	var errorMsg = 'Please enter or change the fields marked with a ';
	var errorTitle = 'This field has an error!';
	// create an array of all required inputs
	var reqfields = document.getElementById('required').value.split(' ').join('');
	reqfields = reqfields.split(',');

	//create array of all error messages
	//var 
	//alert(errorResponse);
	// Cleanup old mess
	// if there is an old errormessage field, delete it
	if(document.getElementById(errorID)) {
		var em = document.getElementById(errorID);
		em.parentNode.removeChild(em);
	}
	// remove old classes from the required fields
	for(var i = 0;i < reqfields.length;i++) {
		var f = document.getElementById(reqfields[i]);
		if (f.parentNode.className == "required") {
			
		} else {
			f.parentNode.className = f.parentNode.className.replace(new RegExp(" showError\\b"), "");
		}
	}//End of the for loop
	
	// loop over required fields
	var errorArray = new Array();
	for(var i = 0;i < reqfields.length;i++) {
		// check if required field is there
		var f = document.getElementById(reqfields[i]);
		if(!f){continue;}
		// test if the required field has an error, 
		// according to its type
		// maybe need to add radio as required element.
		//need to add more info on whats wrong...
		// use checkConfirm to match with a confirmed field
		//if fieldset we need different options.
		if(f.getElementsByTagName('input').length>0) {
			var inputArray= f.getElementsByTagName('input')
			var s=0;
			for(var p = 0;p < inputArray.length;p++) {
				if(inputArray[p].checked==true){
					s++
			}else{}
			
			}if(s==0){errorArray[i]=f.id;showErrorDiv(f,true);}
		}else {
		switch(f.type.toLowerCase()){
		
			case 'text':
				
				showErrorDiv(f,false);
				if(f.value=='' && f.id!='txt_Customer_Email' || !checkConfirm(f.id)){errorArray[i]=f.id}              
				// email is a special field and needs checking
				if(f.id=='txt_Customer_Email' && !cf_isEmailAddr(f.value) || !checkConfirm(f.id) ){errorArray[i]=f.id}              
				break;
			case 'textarea':
				showErrorDiv(f,false);
				if(f.value==''){errorArray[i]=f.id}              
				break;
			case 'checkbox':
				showErrorDiv(f,true);
				if(!f.checked){errorArray[i]=f.id}              
				break;
			case 'select-one':
				//alert('select');
				showErrorDiv(f,false);
				if(f.options[f.selectedIndex].value==''){errorArray[i]=f.id}            
				break;
			case 'password':
				//check to see wether password needs to be confirmed
				if(!checkPassword(f.value,i) || !checkConfirm(f.id) ){errorArray[i]=f.id;} 
				break;
	 }//End of the switch statement
		}
	}//End of the for loop
	
	return cf_adderr(errorArray, errorID);
}//End of checkForm
  
  function showErrorDiv(f,chkBox) {
//	if (f.parentNode.className=="required") {
//	}else {
//		//ignore whitespace
//		var thisDiv = document.createElement("li");
//		thisDiv.className="required";
//		if(chkBox==false){
//		var thisLabel = realPreviousSibling(f);
//		//use f.parentNode.insertBefore so the location 'f' is a child
//		f.parentNode.insertBefore(thisDiv,f);
//		thisDiv.appendChild(thisLabel);	
//		thisDiv.appendChild(f);
//		} else {// checkbox needs label after input
//		var thisLabel = realNextSibling(f);
//		f.parentNode.insertBefore(thisDiv,f);
//		thisDiv.appendChild(f);
//		var addBr=document.createElement('br');
//		thisDiv.appendChild(thisLabel);	
//		thisDiv.appendChild(addBr);
//		}
//  	}
  }
  
  
  function cf_isEmailAddr(str) {
      return str.match(/^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/);
  }

  
// setup global error var
var error = "";
var passwordError=""
//pass through errorArray so we can show custom message if needed.
function checkPassword (strng,p) {
		//var illegalChars = /[\W_]/; // allow only letters and numbers
	if (strng == "") {
		error = "You didn't enter a password.";
		passwordError=p;
		return false;
	} else if ((strng.length < 6) || (strng.length > 20)) {
		error = "The password is the wrong length.";
		passwordError=i;
		return false;
	//} else if (illegalChars.test(strng)) {
	//	error = "The password contains illegal characters.";alert(error);
	//	passwordError=i;
	//	return false;
	} else {
	return true
	}
}
	
	
  
function checkConfirm(str) {
	//do password check - only send it once.
	var myString = str;
	var test=myString.length;
	//test to see if confirm password2 exists
	if(myString.charAt(test-1)!='2'){
		var passwordCheck=str+"2";
		//should do error check for a login page where no confirm is required
		if(!document.getElementById(passwordCheck))return true;
			var confirms = document.getElementById(passwordCheck);
			var pass=document.getElementById(str);
	
			if (confirms.value != pass.value){
				//passwords do not match
				return false;
			} else {
				//passwords match
				return true;
			}
	}		
}


	/* Tool methods */
function cf_adderr(errorArray, errorID) {
var errorResponse = document.getElementById('errorResponse').value.split(',');
	for(i=0;i<errorArray.length;i++){
		if(errorArray[i]!=null){
			o = document.getElementById(errorArray[i]);
			//alert(o)
			o.parentNode.className+=" showError";
			// Check if there is no error message
			if(!document.getElementById(errorID)) {
				var msg=document.createElement('div');
				msg.id=errorID;
				var container = document.getElementById('errorContainer');
				container.appendChild(msg);
				var errorString = document.getElementById('errTitle').value;
				var errorText = document.createTextNode(errorString);
				var txtContain = document.createElement('h2');
				txtContain.appendChild(errorText);
				msg.appendChild(txtContain);
			} // End of if
			// Check if there is no error message
		    if(!document.getElementById(errorID+'List')) {
				// create errormessage ul
				var em=document.createElement('ol');
				em.id=errorID+'List';
			}
			var newLi=document.createElement('li');
			var newHref = document.createElement('a');
			if(document.createAttribute){
				var attrHREF = document.createAttribute( "href" );
				attrHREF.nodeValue = "#"+o.id;
				var thisHref=o.id;
			} else {
			
			}
			var thisFocus='focusMe(\''+thisHref+'\')';
			// if the node's attribute already exists
			// then replace its value FIX IE 5
			if(document.getAttributeNode) {
				if (newHref.getAttributeNode("onclick")) {
					//alert('ie');
					newHref.removeAttribute("onclick")
				}
			}
			
			newHref.setAttribute("onclick", thisFocus);

			//check for password error
			if (passwordError==i && passwordError!=""){
				var newText = document.createTextNode(error);
			} else {
				var newText = document.createTextNode(errorResponse[i]);
			}
			newHref.appendChild(newText);
			if (document.setAttributeNode) {
				newHref.setAttributeNode( attrHREF );
			} else {
			newHref.href="#"+o.id;
			}
			newLi.appendChild(newHref);
			em.appendChild(newLi);
			msg.appendChild(em);
		}//End of if(errorArray[i]!=null)
	}//End of the for loop
	
	if(errorArray.length>0) {
	this.focus='#errorContainer';
	this.location='#errorContainer';
	//document.title='This form has errors please try again';
	return false;
	}else {return}
}//End of the function cf_adderr
  
  function focusMe(thisFocus) {
  	//Using setTimeout to let firefox focus :(
	setTimeout('document.getElementById(\''+thisFocus+'\').focus()', 100);
  }
  
  /* try and fix previousSibling having an extra text element in gecko */
function realPreviousSibling(node){
 	var tempNode=node.previousSibling;
 	while(tempNode.nodeType!=1){
  		tempNode=tempNode.previousSibling;
 	}
 	return tempNode;
}

function realNextSibling(node){
 	var tempNode=node.nextSibling;
 	while(tempNode.nodeType!=1){
  		tempNode=tempNode.nextSibling;
 	}
 	return tempNode;
}

function ImageSwap(intImageNum,strImageID,intVehicleID){
	document.getElementById(strImageID).src = 'http://www.compucars.co.uk/carpics/'+intVehicleID+'-0'+intImageNum+'.jpg';
}


function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

function addUnLoadEvent(func) {
	var oldonunload = window.onunload;
	if (typeof window.onunload != 'function') {
	  window.onunload = func;
	} else {
	  window.onunload = function() {
	    oldonunload();
	    func();
	  }
	}
}
	
	
//-->
