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_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_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];}
}

/***********************    VALIDATION FUNCTIONS    ***********************/
function trim(inputString) 
{
   if (typeof inputString != "string") { return inputString; }
   var retValue = inputString;
   var ch = retValue.substring(0, 1);
   
   while (ch == " ") { 
      retValue = retValue.substring(1, retValue.length);
      ch = retValue.substring(0, 1);
   }
   
   ch = retValue.substring(retValue.length-1, retValue.length);
   while (ch == " ") { 
      retValue = retValue.substring(0, retValue.length-1);
      ch = retValue.substring(retValue.length-1, retValue.length);
   }
   while (retValue.indexOf("  ") != -1) { 
      retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length); 
   }
   return retValue;
}

//Password validation
function validatePassword(strpwd){
	for (i = 0; i < strpwd.length; i++)
	    {   
	        // Check the current character
	        var c = strpwd.charAt(i);
	        if ((c=="\"")||(c=="-")||(c=="/")||(c=="\"")||(c=="'")||(c==" ")||(c=="=")) return false;
	    }
	return true;
}

//Validate Email
function checkEmailAddress(strEmail)
{
	var atcnt, dotcnt;
	atcnt=0;
	dotcnt=0;
	//alert(strEmail);
	if (strEmail.length==0) return false;
    for (i = 0; i < strEmail.length; i++)
	    {   
	        // Check if current character is '@' and count its occurances
	        var c = strEmail.charAt(i);
	        if (c=="@") atcnt++;
			if (c==".") dotcnt++;
			if (atcnt > 1) return false;
	    }
	if (atcnt == 0) return false;
	if (dotcnt == 0) return false;
	if ((strEmail.indexOf("@")==0) || (strEmail.indexOf(".")==0)) return false;
	if ((strEmail.indexOf("@")==strEmail.length-1) || (strEmail.indexOf(".")==strEmail.length-1)) return false;
	if ((strEmail.indexOf("@.")>=0) || (strEmail.indexOf(".@")>=0)) return false;
	return inValidCharSet(strEmail,"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ@.0123456789_-");
}

function inValidCharSet(str,charset){
	var result = true;
	for (var i=0;i<str.length;i++)
		if (charset.indexOf(str.substr(i,1))<0){
			result = false;
			break;
		}
	return result;
}

//check name
function checkname(sText)
{
    var ValidChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
    var IsNumber=true;
    var Char;
	if(sText.length==0)	
	{
	  return false;
	}
	else
	{
    for (i = 0; i < sText.length && IsNumber == true; i++) 
    { 
        Char = sText.charAt(i); 
        if (ValidChars.indexOf(Char) == -1) 
        {
            IsNumber = false;
        }
    }  
    return IsNumber;
   }	
}

//check name
function checkcity(sText)
{
    var ValidChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ";
    var IsNumber=true;
    var Char;
	if(sText.length==0)	
	{
	  return false;
	}
	else
	{
    for (i = 0; i < sText.length && IsNumber == true; i++) 
    { 
        Char = sText.charAt(i); 
        if (ValidChars.indexOf(Char) == -1) 
        {
            IsNumber = false;
        }
    }  
    return IsNumber;
   }	
}

//validate phone
function checkPhone(strPhone)
{
	var digits = "0123456789+- ()";
	var phoneNumberDelimiters = "-";
	var phoneNumberDelimiters1 = "+";
	var validPhoneChars = phoneNumberDelimiters;
	var validPhoneChars1 = phoneNumberDelimiters1;
	s=stripCharsInBag(strPhone,validPhoneChars);
	s=stripCharsInBag(s,validPhoneChars1);
	return (isInteger(s));
	return inValidCharSet(strPhone,digits)
}

function stripCharsInBag(s, bag)
{
    var i;
    var returnString = "";
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function isInteger(s)
{
    var i;
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}


function postit(){ //check postcode format is valid
 test = document.getElementById('p1').value; size = test.length
 test = test.toUpperCase(); //Change to uppercase
 while (test.slice(0,1) == " ") //Strip leading spaces
  {test = test.substr(1,size-1);size = test.length
  }
 while(test.slice(size-1,size)== " ") //Strip trailing spaces
  {test = test.substr(0,size-1);size = test.length
  }
 document.getElementById('p1').value = test; //write back to form field
 if(document.getElementById('p1').value.length>0){
  if(document.getElementById('p1').value.length<=4){
	  if (!(isNaN(test.charAt(0)))){ //leftmost character must be alpha character rule
	   alert(test + " is not a valid postcode - cannot start with a number");
	   document.getElementById('p1').focus();
	   return false;
	  }
	  return true;
  }
 }
 if(document.getElementById('p1').value.length>0){
	 if (size < 6 || size > 8){ //Code length rule
	  alert(test + " is not a valid postcode - wrong length");
	  document.getElementById('p1').focus();
	  return false;
	  }
	 if (!(isNaN(test.charAt(0)))){ //leftmost character must be alpha character rule
	   alert(test + " is not a valid postcode - cannot start with a number");
	   document.getElementById('p1').focus();
	   return false;
	  }
	 if (isNaN(test.charAt(size-3))){ //first character of inward code must be numeric rule
	   alert(test + " is not a valid postcode - alpha character in wrong position");
	   document.getElementById('p1').focus();
	   return false;
	  }
	 if (!(isNaN(test.charAt(size-2)))){ //second character of inward code must be alpha rule
	   alert(test + " is not a valid postcode - number in wrong position");
	   document.getElementById('p1').focus();
	   return false;
	  }
	 if (!(isNaN(test.charAt(size-1)))){ //third character of inward code must be alpha rule
	   alert(test + " is not a valid postcode - number in wrong position");
	   document.getElementById('p1').focus();
	   return false;
	  }
	 if (!(test.charAt(size-4) == " ")){//space in position length-3 rule
	   alert(test + " is not a valid postcode - no space or space in wrong position");
	   document.getElementById('p1').focus();
	   return false;
	   }
	 count1 = test.indexOf(" ");count2 = test.lastIndexOf(" ");
	 if (count1 != count2){//only one space rule
	   alert(test + " is not a valid postcode - only one space allowed");
	   document.getElementById('p1').focus();
	   return false;
	  }
	//alert("Postcode Format OK");
 }
 return true;
}


