String.prototype.trim = function() {
// Strip leading and trailing white-space
return this.replace(/^\s*|\s*$/g, "");
}

var bVer = parseInt(navigator.appVersion);
var sOut="";
if (!((navigator.appVersion.indexOf("MSIE") == -1)&&(navigator.appVersion.substring(0,3)-4.8<0))){
	sOut="";
	document.write("<style>");
	if (!(navigator.appVersion.indexOf("MSIE") == -1)) {
		// if this is IE, work around width excluding margin
		document.write("div.page {	width:760px; }");
		document.write("div.campaign {	width:163px; }");
	}
	document.write("</style>");
} else {
//netscape <4.8 on PC
	sOut="This site works best with modern browsers. Some features may not work properly with Netscape 4.x. ";			
}

function checkpostcode(sIn){
	reg=/^[a-z]{1,2}[\da-z]{1,2} \d[a-z][a-z]$/i; 
	if (!reg.test(sIn)){
	    alert("Your postcode does not seem to be well-formed. Remember the space is part of your postcode too.");
		return false;
	}
	return true;
	
}
 function checkpwd(pw) {
 	reg1=/[a-z]/i;
	reg2=/\d/;
	reg3=/^[a-z\d]{8,20}$/i;
	return ((reg1.test(pw))&&(reg2.test(pw))&&(reg3.test(pw)));
 }

function checkemail(email){
	emailpat = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/i;
	if (!emailpat.test(email)){
		alert("Your Email address does not appear well-formed. Please fill it in then submit again.");
		return false;
	}
	return true;
}
function makenumeric(strIn){
	s="";
	for (i=0;i<strIn.length;i++){
		c=strIn.charAt(i);
		if ((c=="1")||(c=="2")||(c=="3")||(c=="4")||(c=="5")||(c=="6")||(c=="7")||(c=="8")||(c=="9")||(c=="0")||(c==".")) s+=c;
	}
	return s;
}
function checknumber(sIn,sError){
	//sIn.value=makenumeric(sIn.value);
	if (sIn.value==""){
		alert("Please enter "+sError+" then submit again.");
		return false;
	}
	else if (!checkphone(sIn)) {
		alert("Please enter "+sError+" as a number ONLY then click 'Next' again.");
		return false;
	}
	return true;
}
function checkphone(sIn){
	phonepat=/^([0-9 +()])+$/i
	return phonepat.test(sIn);
}
function checkprice(sIn,sError) {
	//sIn.value=makenumeric(sIn.value);
	var intpat=/(^\d+$)/
	if (sIn=="") {
		alert("Please enter "+sError+" then submit again.");
		return false;
	}
	else if (!intpat.test(sIn)) {
		alert("Please enter "+sError+" as a number ONLY then click 'Next' again.\nFor example, '£15,221' should be entered as '15221'.");
		return false;
	}
	return true;
}
function checkint(sIn,sError) {
	//sIn.value=makenumeric(sIn.value);
	var intpat=/(^\d+$)/
	if (sIn=="") {
		alert("Please enter "+sError+" then submit again.");
		return false;
	}
	else if (!intpat.test(sIn)) {
		alert("Please enter "+sError+" as a number ONLY then click 'Next' again.");
		return false;
	}
	return true;
}
function checkcompanyname(sVal) {
	var reg = /^[a-z0-9\-\ \"\',.&():\/\\~]+$/i;
	return reg.test(sVal);
}
function checkname(sVal) {
	var reg = /^[a-z\-\ \'@]+$/i;
	return reg.test(sVal);
}
function checkdate(DDMMYYYY) {
	var bOk=false;
	if (DDMMYYYY.length==10) {
		var day = (1*DDMMYYYY.substring(0,2));
		var month = (1*DDMMYYYY.substring(3,5))-1;
		var year = (1*DDMMYYYY.substring(6,10));
		var td = new Date(year,month,day);
		bOk=(yearvalid(td.getYear(),year) && month==td.getMonth() && day==td.getDate());
	}
	return bOk;
}
function yearvalid(yy,yyyy) {
	return (((yy<1000) ? yy+1900 : yy) == yyyy);
}
function confirmdelete(sURL){
	if (confirm("DELETE - are you sure you want to delete this record?")) location.replace(sURL);
}
function setCookie(sIn) {
    document.cookie = "verdictoncars=" + sIn;
}
function readCookie() {
    return unescape(document.cookie);
}

function makeCookie(Name,Value,Expiry,Path,Domain,Secure) {
//if you want to save the cookie
if (Expiry != null && !isNaN(Expiry)) {
	var datenow = new Date();
	datenow.setTime(datenow.getTime() + Math.round(86400000*Expiry));
	Expiry = datenow.toGMTString();
}
Expiry = (Expiry) ? '; expires='+Expiry : '';
Path = (Path)?'; path='+Path:'';
Domain = (Domain) ? '; domain='+Domain : '';
Secure = (Secure) ? '; secure' : '';

document.cookie = Name + '=' + escape(Value) + Expiry + Path + Domain + Secure;

}

function readCookie(Name) {

var cookies = ' ' + document.cookie;
if (cookies.indexOf(' ' + Name + '=') == -1) return null;

var start = cookies.indexOf(' ' + Name + '=') + (Name.length + 2);
var finish = cookies.substring(start,cookies.length);
finish = (finish.indexOf(';') == -1) ? cookies.length : start + finish.indexOf(';');

return unescape(cookies.substring(start,finish));
}

function checklimits(sIn,sError,iMin,iMax){
	if (parseFloat(sIn.value)<iMin){
		alert("The "+sError+" must be higher than "+iMin+".");
		return false;
	}
	else if (parseFloat(sIn.value)>iMax) {
		alert("The "+sError+" must be less than "+iMax+".");
		return false;
	}
	return true;
}

function isempty(sIn,sError){
	if (sIn.value==""){
		alert("Please enter "+sError+" then click 'Next' again.");
		return false;
	}
	return true;
}
function replaceString(sSrc, sFrom, sTo) {
	var sReturn=sSrc;
    var iFromLen=sFrom.length;
    var iToLen=sTo.length;
    var iPos=0;
    var iEnd=0;
    do {
        iPos=sReturn.indexOf(sFrom,iEnd);
        if (iPos!=-1) {
            sReturn = sReturn.substring(0,iPos)+sTo+sReturn.substring(iPos+iFromLen);
            iEnd=iPos+iToLen;
        }
    } while (iPos!=-1);
	return sReturn;

}
function encode(sIn){
	sTemp=sIn;
	sTemp=replaceString(sTemp,"£","&pound;");
	sTemp=replaceString(sTemp,"€","&euro;");
	sTemp=replaceString(sTemp,"À","&Agrave;");
	sTemp=replaceString(sTemp,"Á","&Aacute;");
	sTemp=replaceString(sTemp,"Â","&Acirc;");
	sTemp=replaceString(sTemp,"Ã","&Atilde;");
	sTemp=replaceString(sTemp,"Ä","&Auml;");
	sTemp=replaceString(sTemp,"Å","&Aring;");
	sTemp=replaceString(sTemp,"Ç","&Ccedil;");
	sTemp=replaceString(sTemp,"È","&Egrave;");
	sTemp=replaceString(sTemp,"É","&Eacute;");
	sTemp=replaceString(sTemp,"Ê","&Ecirc;");
	sTemp=replaceString(sTemp,"Ë","&Euml;");
	sTemp=replaceString(sTemp,"Ì","&Igrave;");
	sTemp=replaceString(sTemp,"Í","&Iacute;");
	sTemp=replaceString(sTemp,"Î","&Icirc;");
	sTemp=replaceString(sTemp,"Ï","&Iuml;");
	sTemp=replaceString(sTemp,"Ñ","&Ntilde;");
	sTemp=replaceString(sTemp,"Ò","&Ograve;");
	sTemp=replaceString(sTemp,"Ó","&Oacute;");
	sTemp=replaceString(sTemp,"Ô","&Ocirc;");
	sTemp=replaceString(sTemp,"Õ","&Otilde;");
	sTemp=replaceString(sTemp,"Ö","&Ouml;");
	sTemp=replaceString(sTemp,"Ù","&Ugrave;");
	sTemp=replaceString(sTemp,"Ú","&Uacute;");
	sTemp=replaceString(sTemp,"Û","&Ucirc;");
	sTemp=replaceString(sTemp,"Ü","&Uuml;");
	sTemp=replaceString(sTemp,"Ý","&Yacute;");
	sTemp=replaceString(sTemp,"ß","&szlig;");
	sTemp=replaceString(sTemp,"à","&agrave;");
	sTemp=replaceString(sTemp,"á","&aacute;");
	sTemp=replaceString(sTemp,"â","&acirc;");
	sTemp=replaceString(sTemp,"ã","&atilde;");
	sTemp=replaceString(sTemp,"ä","&auml;");
	sTemp=replaceString(sTemp,"å","&aring;");
	sTemp=replaceString(sTemp,"ç","&ccedil;");
	sTemp=replaceString(sTemp,"è","&egrave;");
	sTemp=replaceString(sTemp,"é","&eacute;");
	sTemp=replaceString(sTemp,"ê","&ecirc;");
	sTemp=replaceString(sTemp,"ë","&euml;");
	sTemp=replaceString(sTemp,"ì","&igrave;");
	sTemp=replaceString(sTemp,"í","&iacute;");
	sTemp=replaceString(sTemp,"î","&icirc;");
	sTemp=replaceString(sTemp,"ï","&iuml;");
	sTemp=replaceString(sTemp,"ñ","&ntilde;");
	sTemp=replaceString(sTemp,"ò","&ograve;");
	sTemp=replaceString(sTemp,"ó","&oacute;");
	sTemp=replaceString(sTemp,"ô","&ocirc;");
	sTemp=replaceString(sTemp,"õ","&otilde;");
	sTemp=replaceString(sTemp,"ö","&ouml;");
	sTemp=replaceString(sTemp,"ù","&ugrave;");
	sTemp=replaceString(sTemp,"ú","&uacute;");
	sTemp=replaceString(sTemp,"û","&ucirc;");
	sTemp=replaceString(sTemp,"ü","&uuml;");
	sTemp=replaceString(sTemp,"ý","&yacute;");
	sTemp=replaceString(sTemp,"ÿ","&yuml;");
	sTemp=replaceString(sTemp,"“","&ldquo;");
	sTemp=replaceString(sTemp,"”","&rdquo;");
	sTemp=replaceString(sTemp,"®","&reg;");
	sTemp=replaceString(sTemp,"…","...");
	sTemp=replaceString(sTemp,"’","'");
	sTemp=replaceString(sTemp,"‘","'");
	sTemp=replaceString(sTemp,"–","-");
	sTemp=replaceString(sTemp,"—","-");
	sTemp=replaceString(sTemp,"•","-");
	return sTemp;
}
// functions for dhtml
var visible = (document.layers ? 'show' : 'visible');
var hidden = (document.layers ? 'hide' : 'hidden'); ;

function getObject(sID) {
if (document.layers) {
return document.layers[sID];
} else if (document.all) {
return document.all(sID).style;
} else if (document.getElementById) {
return document.getElementById(sID).style;
}
}
function show(sID) {
if (bVer>3) getObject(sID).visibility = visible;
}
function hide(hID) {
if (bVer>3) getObject(hID).visibility = hidden;
}
var nCurrentt=1;  
function tshow(n) {
hide('tip_'+nCurrentt);
show('tip_'+n);
nCurrentt=n;
}
function isDateTF(strDate, strFmt) {

  function isLeapYear(y) {
    return (y%4!=0) ? false : (y%100!=0) ? true : (y%400!=0) ? false : true;
  }

  strFmt = strFmt || "ymd";           // default date format

  switch (strFmt.toLowerCase()) {
    case "ymd" :
      var reDate = /^(\d{4})\/(\d{1,2})\/(\d{1,2})$/;
      var y = 1, m = 2, d = 3;
      break;
    case "dmy" :
      var reDate = /^(\d{1,2})\/(\d{1,2})\/(\d{4})$/;
      var y = 3, m = 2, d = 1;
      break;
    case "mdy" :
      var reDate = /^(\d{1,2})\/(\d{1,2})\/(\d{4})$/;
      var y = 3, m = 1, d = 2;
      break;
    default:
      return false;                  // invalid date format specified
  }

  if (!reDate.test(strDate)) return false;  // date has invalid format

  var dateParts = reDate.exec(strDate)
  var year  = dateParts[y];
  var month = dateParts[m];
  var day   = dateParts[d];

  switch (parseInt(month)) {
    case 1 :
    case 3 :
    case 5 :
    case 7 :
    case 8 :
    case 10:
    case 12:
      if (day > 31) return false;
      break;
    case 4 :
    case 6 :
    case 9 :
    case 11:
      if (day > 30) return false;
      break;
    case 2 :
      if (day > (isLeapYear(year) ? 29 : 28)) return false;
      break;
    default:
      return false;
  }

  // Put any year range checks here
  // if (year < min || year > max) return false;

  return true;

}

function isDate(strDate, strFmt) {

  function isLeapYear(y) {
    return (y%4!=0) ? false : (y%100!=0) ? true : (y%400!=0) ? false : true;
  }

  strFmt = strFmt || "ymd";           // default date format

  switch (strFmt.toLowerCase()) {
    case "ymd" :
      var reDate = /^(\d{4})\/(\d{1,2})\/(\d{1,2})$/;
      var y = 1, m = 2, d = 3;
      break;
    case "dmy" :
      var reDate = /^(\d{1,2})\/(\d{1,2})\/(\d{4})$/;
      var y = 3, m = 2, d = 1;
      break;
    case "mdy" :
      var reDate = /^(\d{1,2})\/(\d{1,2})\/(\d{4})$/;
      var y = 3, m = 1, d = 2;
      break;
    default:
      return null;                  // invalid date format specified
  }

  if (!reDate.test(strDate)) return null;  // date has invalid format

  var dateParts = reDate.exec(strDate)
  var year  = dateParts[y];
  var month = dateParts[m];
  var day   = dateParts[d];

  switch (parseInt(month)) {
    case 1 :
    case 3 :
    case 5 :
    case 7 :
    case 8 :
    case 10:
    case 12:
      if (day > 31) return null;
      break;
    case 4 :
    case 6 :
    case 9 :
    case 11:
      if (day > 30) return null;
      break;
    case 2 :
      if (day > (isLeapYear(year) ? 29 : 28)) return null;
      break;
    default:
      return null;
  }

  // Put any year range checks here
  // if (year < min || year > max) return false;

  return new Date(year,month-1,day);

}
