function explodeArray(items,delimiter)
{ 

	tempArray=new Array(1); 
	var Count=0; 
	var tempstring=items; 
	while (tempstring.indexOf(delimiter)>0) { 
	tempArray[Count]=tempstring.substr(0,tempstring.indexOf(delimiter)); 
	tempstring=tempstring.substr(tempstring.indexOf(delimiter)+1,tempstring.length-tempstring.indexOf(delimiter)+1); 
	Count=Count+1 
	} 
	
	tempArray[Count]=tempstring;
	return tempArray; 
} 


function validateForms(frm)
	{
	   	var flagerr1=0;
		//if (!document.getElementById) return false;
		 
		elementForms = document.getElementById(frm);		 
		 
		for (var intCounter = 0; intCounter < elementForms.length; intCounter++)
		 
		{
							
			var type=elementForms[intCounter].type;

			// stw - hack to remove phone from validation
			if (elementForms[intCounter].name == "phone_1_4") {
				continue;
			}

			// alert("Element: " + elementForms[intCounter].name);

			if(validateForm(elementForms[intCounter].id,type))
			{
			//	flagerr1=0;	
			}
			else
			{
				flagerr1=1;	
			}
		}
		//alert("Top Flag="+flagerr1);
		if(flagerr1==1)
		{
			return false;	 	
		}
		else
		{
			return true;			
		}
		//return true;			
 }

 function validateForm(id1,type)
 {
 	arr = explodeArray(id1,'_');
	var flagerr=0;
	//alert('type'+type);
	   if(type=="select-one")
		{			
			if(arr.length!=0)
			{
				var i=0;
				for(i=0;i<arr.length;i++)
				{
				
					if(arr.length!=0)
						{
							if(arr[i]==1) // FOR BLANK
							{
								
								if(document.getElementById(id1).value==0)
								{
									document.getElementById(arr[0]).innerHTML="Select option";
									flagerr=1;
								}
								else
								{
									document.getElementById(arr[0]).innerHTML="";
								}
							}
						}
				} //for end
			} //if end
		}//if end
	
		if(type=="text" || type=="textarea" || type=="password" )
		{
			if(arr.length!=0)
			{
				var i=0;
				for(i=0;i<arr.length;i++)
				{
					//alert(document.getElementById(id1).name+":::"+document.getElementById(id1).value);
					if (i!=0)
						{
							
							if(arr[i]==1) // FOR BLANK
							{
								
							    if(LTrim(document.getElementById(id1).value)=="")
								{	
									document.getElementById(arr[0]).innerHTML="Should not be blank";
									flagerr=1;
									
								}
								else
								{
									document.getElementById(arr[0]).innerHTML="";	
								}
								
								
							 }
						
							if(arr[i]==2 && flagerr!=1) // EMAIL VALIDATION
							{
								
								if (document.getElementById(id1).value=="")
								{
									
								}
								else
								{
									if(!checkEmail(document.getElementById(id1).value))
										{
											document.getElementById(arr[0]).innerHTML="Invalid Email Address";
											flagerr=1;
										}
										else
										{
											document.getElementById(arr[0]).innerHTML="";
										}
								}
								
							}
						
							if(arr[i]==3 && flagerr!=1) // ALPHABETIC VALIDATION
							{
								if (document.getElementById(id1).value=="")
								{
									
								}
								else
								{
									if(!isAlphabetic(document.getElementById(id1).value))
									{
										document.getElementById(arr[0]).innerHTML="Only Alphabetic characters are allowed";
										flagerr=1;
									}
									else
									{
										document.getElementById(arr[0]).innerHTML="";
									}
								}
								
							}
							if(arr[i]==4 && flagerr!=1) // NUMERIC VALIDATION
							{
								if (document.getElementById(id1).value=="")
								{
									
								}
								else
								{
									if(!IsNumeric(document.getElementById(id1).value))
									{
										document.getElementById(arr[0]).innerHTML="Only numbers are allowed";
										flagerr=1;
									}
									else
									{
										document.getElementById(arr[0]).innerHTML="";
									}
								}
								
							}
							if(arr[i]==5 && flagerr!=1) // ALPHANUMERIC VALIDATION
							{
								if (document.getElementById(id1).value=="")
								{
									
								}
								else
								{
									if(!isAlphaNumeric(document.getElementById(id1).value))
									{
										document.getElementById(arr[0]).innerHTML="Only Alphanumeric characters are allowed";
										flagerr=1;
									}
									else
									{
										document.getElementById(arr[0]).innerHTML="";
									}
								}
								
							}
							if(arr[i]==6 && flagerr!=1) // ZIPCODE VALIDATION
							{
								if (document.getElementById(id1).value=="")
								{
									
								}
								else
								{
									if(!isValidZipCode(document.getElementById(id1).value))
									{
										document.getElementById(arr[0]).innerHTML="Invalid Postcode";
										flagerr=1;
									}
									else
									{
										document.getElementById(arr[0]).innerHTML="";
									}
								}
								
							}
							if(arr[i]==7 && flagerr!=1) // PHONENUMBER VALIDATION
							{
								if (document.getElementById(id1).value=="")
								{
									
								}
								else
								{
									if(!isValidPhone(document.getElementById(id1).value))
									{
										document.getElementById(arr[0]).innerHTML="Invalid Phone No";
										flagerr=1;
									}
									else
									{
										document.getElementById(arr[0]).innerHTML="";
									}
								}
								
							}
							if(arr[i]==8 && flagerr!=1) // MAX 6 CHARACTERS VALIDATION
							{
								if (document.getElementById(id1).value=="")
								{
									
								}
								else
								{
									if(!atleastSixChar(document.getElementById(id1).value))
									{
										document.getElementById(arr[0]).innerHTML="More than 5 chars required";
										flagerr=1;
									}
									else
									{
										document.getElementById(arr[0]).innerHTML="";
									}
								}
								
							}
							
							if(arr[i]==9 && flagerr!=1) // URL VALIDATION
							{
								if (document.getElementById(id1).value=="")
								{
									
								}
								else
								{
									if(!checkUrl(document.getElementById(id1).value))
									{
										document.getElementById(arr[0]).innerHTML="Invalid url";
										flagerr=1;
									}
									else
									{
										document.getElementById(arr[0]).innerHTML="";
									}
								}
								
							}
							
							if(arr[i]==10 && flagerr!=1) // ALPHANUMERIC VALIDATION
							{
								if (document.getElementById(id1).value=="")
								{
									
								}
								else
								{
									if(!isSpecialChars(document.getElementById(id1).value))
									{
										document.getElementById(arr[0]).innerHTML="Special chars/white spaces are not allowed";
										flagerr=1;
									}
									else
									{
										document.getElementById(arr[0]).innerHTML="";
									}
								}
							
							}
							if(arr[i]==11 && flagerr!=1) //VALIDATION FOR MOBILE NO
							{
								if (document.getElementById(id1).value=="")
								{
									
								}
								else
								{
									if(!isValidMobile(document.getElementById(id1).value))
									{
										document.getElementById(arr[0]).innerHTML="Invalid Mobile No.";
										flagerr=1;
									}
									else
									{
										document.getElementById(arr[0]).innerHTML="";
									}
								}
							
							}
							if(arr[i]==12 && flagerr!=1) 
							{
								if (document.getElementById(id1).value=="")
								{
									
								}
								else
								{
									if(!isSpecialCharsb(document.getElementById(id1).value))
									{
										document.getElementById(arr[0]).innerHTML="Special characters are not allowed";
										flagerr=1;
									}
									else
									{
										document.getElementById(arr[0]).innerHTML="";
									}
								}
							
							}
							if(arr[i]==13 && flagerr!=1) // URL VALIDATION FOR dyanamic textboxes
							{
								if(!checkUrl(document.getElementById(id1).value))
								{
									document.getElementById(arr[0]).innerHTML="Invalid url";
									flagerr=1;
								}
								else
								{
									document.getElementById(arr[0]).innerHTML="";
								}
							}
							
							if(arr[i]==14 && flagerr!=1) // MULTIPLE EMAIL VALIDATION
							{																		
								if (document.getElementById(id1).value != "")
								{										
									email_str = document.getElementById(id1).value;
									email_arr = explodeArray(email_str,',');	
									
									for(j=0; j<email_arr.length; j++)
									{
										email_id = trim(email_arr[j]);
										if(email_id!="")
										{
											if(!checkEmail(email_id))
												flagerr=1;
										}
									} 
									if(flagerr==1)
										document.getElementById(arr[0]).innerHTML="Invalid Email Address";
									else	
										document.getElementById(arr[0]).innerHTML="";

								}
								
							}  //end of case 14
															
						}
					
				}	
			}
		}
	   //alert("Inner Flag="+flagerr);
		if(flagerr==1)
		{
			return false;	
		}
		else
		{
			return true;	
		}
		//return true;
	
	
 }
 
 
function IsEmpty(aTextField)
{
   if ((aTextField.value.length==0) || (aTextField.value==null))
   {
      return true;
   }
   else 
   {
   	  return false;
   }
}	

// check to see if input is numeric
function IsNumeric(val) 
{
   if(isNaN(val))
   {
   		return false;
   }
   else
   {
   		return true;
   }
}

// check to see if input is alphabetic
function isAlphabetic(val)
{
	if (val.match(/^[a-zA-Z]+$/))
	{
		return true;
	}
	else
	{
		return false;
	} 
}

// check to see if input is alphanumeric
function isAlphaNumeric(val)
{
	if (val.match(/^[a-zA-Z0-9]+$/))
	{
		return true;
	}
	else
	{
		return false;
	} 
}


// For phone number validation
function isValidPhone(val)
{
  var values = " 1234567890-+()";
  for (var i=0; i < val.length; i++)
    if (values.indexOf(val.charAt(i)) < 0)
       return false;
  return true;
}
function isValidMobile(val)
{
  var values = " 1234567890+-";
  for (var i=0; i < val.length; i++)
    if (values.indexOf(val.charAt(i)) < 0)
       return false;
  return true;
}
// For Zip code validation
function isValidZipCode(val) {
   if(val.length < 4) {
   	return false;
   }
   else {
   	return true;
   }
}

// For max character validation
function maxCharacter(val,maxlen) {
   if(isNaN(val) || val.length	!= maxlen) {
   	return false;
   }
   else {
   	return true;
   }
}

// For at least 6 characters 
function atleastSixChar(val) {
   if(val.length < 6) {
   	return false;
   }
   else {
   	return true;
   }
}

//For email address validation
function isEmailAddress(val)
{
	if (val.match(/^([a-zA-Z0-9])+([.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-]+)+/))
	{
		return true;
	}
	else
	{
		return false;
	} 
}
function checkUrl(val)
{
	 var tomatch= /^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/; 
     if (tomatch.test(val))
     {
         return true;
     }
     else
     {
         return false; 
     }
}

function checkEmail(val)
{
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(val)){
	return (true)
}
	//alert("Invalid E-mail Address! Please re-enter.")
	return (false)
}

function isSpecialChars(val)
{
	var iChars = " !@#$%^&*()+=-[]\\\';,./{}|\":<>?";

	var flag=1;

	for (var j = 0; j < val.length; j++)
	{
  		if (iChars.indexOf(val.charAt(j)) != -1)
		{
  			flag=0;
  		}
		else
		{
		}
	}

	if(flag==1)
	{
		return true;	
	}
	else
	{
		return false;	
	}

}

function isSpecialCharsb(val)
{
	var iChars = "!@#$%^&*()+=-[]\\\';,./{}|\":<>?";

	var flag=1;

	for (var j = 0; j < val.length; j++)
	{
  		if (iChars.indexOf(val.charAt(j)) != -1)
		{
  			flag=0;
  		}
		else
		{
		}
	}

	if(flag==1)
	{
		return true;	
	}
	else
	{
		return false;	
	}

}


function goto(a,b)
{
	window.location="index.php?cid=9&"+a+"="+b
}

// Removes leading whitespaces

function LTrim( value ) {
	
	var re = /\s*((\S+\s*)*)/;
	return value.replace(re, "$1");
	
}

// Removes ending whitespaces
function RTrim( value ) {
	
	var re = /((\s*\S+)*)\s*/;
	return value.replace(re, "$1");
	
}

// Removes leading and ending whitespaces
function trim( value ) {
	
	return LTrim(RTrim(value));
	
}


function CountWords_old (this_field, show_word_count, show_char_count, max1)
{
	
	if (show_word_count == null)
	{
		show_word_count = true;
	}
	if (show_char_count == null)
	{
		show_char_count = false;
	}
	var char_count = this_field.value.length;
	
	var fullStr = this_field.value + " ";
	var initial_whitespace_rExp = /^[^A-Za-z0-9]+/gi;
	var left_trimmedStr = fullStr.replace(initial_whitespace_rExp, "");
	var non_alphanumerics_rExp = rExp = /[^A-Za-z0-9]+/gi;
	var cleanedStr = left_trimmedStr.replace(non_alphanumerics_rExp, " ");
	var splitString = cleanedStr.split(" ");
	var word_count = splitString.length -1;
	
	
	if (fullStr.length <2) 
	{
		word_count = 0;
	}
	
	if (max1==150)
	{
	
		if (char_count > max1)
		{
			document.getElementById('businessdescrerr').innerHTML="Maximum Limit is 150 Characters";
			return false;
		}
		else
		{
				document.getElementById('businessdescrerr').innerHTML="";
				return true;
		}
	}
	else if(max1==300)
	{
		if (char_count > max1)
		{
			document.getElementById('businessdescrerr').innerHTML="Maximum Limit is 300 Characters";
			return false;
		}
		else
		{
			document.getElementById('businessdescrerr').innerHTML="";
			return true;
		}
	}	
	
return true;
}

function CountWords (this_field, show_word_count, show_char_count, max1, type)
{
	
	//alert ('type '+type);
	//alert ('max '+max1);
	if (show_word_count == null)
	{
		show_word_count = true;
	}
	if (show_char_count == null)
	{
		show_char_count = false;
	}
	var char_count = this_field.value.length;
	
	var fullStr = this_field.value + " ";
	var initial_whitespace_rExp = /^[^A-Za-z0-9]+/gi;
	var left_trimmedStr = fullStr.replace(initial_whitespace_rExp, "");
	var non_alphanumerics_rExp = rExp = /[^A-Za-z0-9]+/gi;
	var cleanedStr = left_trimmedStr.replace(non_alphanumerics_rExp, " ");
	var splitString = cleanedStr.split(" ");
	var word_count = splitString.length -1;
	
	
	if (fullStr.length <2) 
	{
		word_count = 0;
	}
	
	//if (max1==150)
	if (type=='Free')
	{
	
		if (char_count > max1)
		{
			document.getElementById('businessdescrerr').innerHTML="Maximum Limit is "+max1+" Characters";
			return false;
		}
		else
		{
				document.getElementById('businessdescrerr').innerHTML="";
				return true;
		}
	}
	else if(type=='Paid')     //else if(max1==300)
	{
		if (char_count > max1)
		{
			document.getElementById('businessdescrerr').innerHTML="Maximum Limit is "+max1+" Characters";
			return false;
		}
		else
		{
			document.getElementById('businessdescrerr').innerHTML="";
			return true;
		}
	}	
	
return true;
}

function valUKZip(ar,ar1){ //check postcode format is valid

	
	var sd=document.getElementById(ar);	
	var sd1=document.getElementById(ar1);	
	

 test = sd.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
  }

 sd.value = test;
 if (size < 6 || size > 8){ //Code length rule

	sd1.innerHTML="Invalid Postcde";	
 sd.focus()	
  return false;
  }
 if (!(isNaN(test.charAt(0)))){ //leftmost character must be alpha character rule

  sd1.innerHTML="Invalid Postcde";	 
	sd.focus();
   return false;
  }
 if (isNaN(test.charAt(size-3))){ //first character of inward code must be numeric rule
  
  sd1.innerHTML="Invalid Postcde";	  
  sd.focus();	
   return false;
  }
 if (!(isNaN(test.charAt(size-2)))){ //second character of inward code must be alpha rule
  sd.focus();	
  sd1.innerHTML="Invalid Postcde";	 
  
   return false;
  }
 if (!(isNaN(test.charAt(size-1)))){ //third character of inward code must be alpha rule
 
  sd1.innerHTML="Invalid Postcde";	 
  sd.focus();	
   return false;
  }
 count1 = test.indexOf(" ");count2 = test.lastIndexOf(" ");
 if (count1 != count2){//only one space rule
 
   sd1.innerHTML="Invalid Postcde";	
   sd.focus();	
   return false;
  }
  
sd1.innerHTML="    ";	
return true;
}
//  End -->

function normalzip(ar,ar1)
{
	var va=document.getElementById(ar);		
	var va1=document.getElementById(ar1);	
	
	if(va.value=="")
	{
		va1.innerHTML="should not be blank";		
		return false;
	}
	if(!isAlphaNumeric(va.value))
	{
		va1.innerHTML="Only Alphanumeric characters are allowed";	
		return false;	
	}
	va1.innerHTML="    ";	
	return true;
}


function checkPostCode12312(ar,ar1) { 

var sd=document.getElementById(ar);	
var sd1=document.getElementById(ar1);	

var toCheck= sd.value;  

var size = toCheck.length;

 toCheck = toCheck.toUpperCase(); //Change to uppercase
 while (toCheck.slice(0,1) == " ") //Strip leading spaces
  {toCheck = toCheck.substr(1,size-1);size = toCheck.length
  }
 while(toCheck.slice(size-1,size)== " ") //Strip trailing spaces
  {toCheck = toCheck.substr(0,size-1);size = toCheck.length
  }
  sd.value=toCheck;
  
  
  // Permitted letters depend upon their position in the postcode.
  var alpha1 = "[abcdefghijklmnoprstuwyz]";                       // Character 1
  var alpha2 = "[abcdefghklmnopqrstuvwxy]";                       // Character 2
  var alpha3 = "[abcdefghjkstuw]";                                // Character 3
  var alpha4 = "[abehmnprvwxy]";                                  // Character 4
  var alpha5 = "[abdefghjlnpqrstuwxyz]";                          // Character 5
  
  

   // Array holds the regular expressions for the valid postcodes
  var pcexp = new Array ();

  // Expression for postcodes: AN NAA, ANN NAA, AAN NAA, and AANN NAA
  pcexp.push (new RegExp ("^(" + alpha1 + "{1}" + alpha2 + "?[0-9]{1,2})(\\s*)([0-9]{1}" + alpha5 + "{2})$","i"));
  
  // Expression for postcodes: ANA NAA
  pcexp.push (new RegExp ("^(" + alpha1 + "{1}[0-9]{1}" + alpha3 + "{1})(\\s*)([0-9]{1}" + alpha5 + "{2})$","i"));

  // Expression for postcodes: AANA  NAA
  pcexp.push (new RegExp ("^(" + alpha1 + "{1}" + alpha2 + "?[0-9]{1}" + alpha4 +"{1})(\\s*)([0-9]{1}" + alpha5 + "{2})$","i"));
  
  // Exception for the special postcode GIR 0AA
  pcexp.push (/^(GIR)(\s*)(0AA)$/i);
  
  // Standard BFPO numbers
  pcexp.push (/^(bfpo)(\s*)([0-9]{1,4})$/i);
  
  // c/o BFPO numbers
  pcexp.push (/^(bfpo)(\s*)(c\/o\s*[0-9]{1,3})$/i);

  // Load up the string to check
  var postCode = toCheck;

  // Assume we're not going to find a valid postcode
  var valid = false; 
  
  
  // Check the string against the types of post codes
  for ( var i=0; i<pcexp.length; i++) {	 
    if (pcexp[i].test(postCode)) {
    
      // The post code is valid - split the post code into component parts
      pcexp[i].exec(postCode);
      
      // Copy it back into the original string, converting it to uppercase and
      // inserting a space between the inward and outward codes
      postCode = RegExp.$1.toUpperCase() + " " + RegExp.$3.toUpperCase();
      
      // If it is a BFPO c/o type postcode, tidy up the "c/o" part
      postCode = postCode.replace (/C\/O\s*/,"c/o ");
      
      // Load new postcode back into the form element
      valid = true;
      
      // Remember that we have found that the code is valid and break from loop
      break;
    }
  }
  
  
  // Return with either the reformatted valid postcode or the original invalid 
  // postcode

  if (valid)
  {
	  sd1.innerHTML="    ";	 
	  return postCode;
  }
  else 
  {
	  sd1.innerHTML="Invalid Postcode";	 
	  sd.focus();	
	  return false;
  }
}


function checkPostCode(ar,ar1) { 

var sd=document.getElementById(ar);	
var sd1=document.getElementById(ar1);	

test1 = LTrim(sd.value); 

size = test1.length;
test1 = test1.toUpperCase(); //Change to uppercase
 while (test1.slice(0,1) == " ") //Strip leading spaces
  {test1 = test1.substr(1,size-1);size = test1.length
  }
 while(test1.slice(size-1,size)== " ") //Strip trailing spaces
  {test1 = test1.substr(0,size-1);size = test1.length
  }
 sd.value = test1; //write back to form field
 
 
 if (size < 6 || size > 8){ //Code length rule
  sd1.innerHTML="Invalid Postcode";	 
	  sd.focus();	
	  return false;
  }
 if (!(isNaN(test1.charAt(0)))){ //leftmost character must be alpha character rule
   sd1.innerHTML="Invalid Postcode";	 
	  sd.focus();	
	  return false;
  }
 if (isNaN(test1.charAt(size-3))){ //first character of inward code must be numeric rule
   sd1.innerHTML="Invalid Postcode";	 
	  sd.focus();	
	  return false;
  }
 if (!(isNaN(test1.charAt(size-2)))){ //second character of inward code must be alpha rule
   sd1.innerHTML="Invalid Postcode";	 
	  sd.focus();	
	  return false;
  }
 if (!(isNaN(test1.charAt(size-1)))){ //third character of inward code must be alpha rule
   sd1.innerHTML="Invalid Postcode";	 
	  sd.focus();	
	  return false;
  }
 if (!(test1.charAt(size-4) == " ")){//space in position length-3 rule
  sd1.innerHTML="Invalid Postcode";	 
	  sd.focus();	
	  return false;
   }
 count1 = test1.indexOf(" ");count2 = test1.lastIndexOf(" ");
 if (count1 != count2){//only one space rule
   sd1.innerHTML="Invalid Postcode";	 
	  sd.focus();	
	  return false;
  }
  
  //sd1.innerHTML="    ";	 
  //return test;
  
  // code added by Anil on 24-10-07  
  
  // Permitted letters depend upon their position in the postcode.
  var alpha1 = "[abcdefghijklmnoprstuwyz]";                       // Character 1
  var alpha2 = "[abcdefghklmnopqrstuvwxy]";                       // Character 2
  var alpha3 = "[abcdefghjkstuw]";                                // Character 3
  var alpha4 = "[abehmnprvwxy]";                                  // Character 4
  var alpha5 = "[abdefghjlnpqrstuwxyz]";                          // Character 5
  

  // Array holds the regular expressions for the valid postcodes
  var pcexp = new Array ();

  // Expression for postcodes: AN NAA, ANN NAA, AAN NAA, and AANN NAA
  pcexp.push (new RegExp ("^(" + alpha1 + "{1}" + alpha2 + "?[0-9]{1,2})(\\s*)([0-9]{1}" + alpha5 + "{2})$","i"));  
  
  // Expression for postcodes: ANA NAA
  pcexp.push (new RegExp ("^(" + alpha1 + "{1}[0-9]{1}" + alpha3 + "{1})(\\s*)([0-9]{1}" + alpha5 + "{2})$","i"));

  // Expression for postcodes: AANA  NAA
  pcexp.push (new RegExp ("^(" + alpha1 + "{1}" + alpha2 + "?[0-9]{1}" + alpha4 +"{1})(\\s*)([0-9]{1}" + alpha5 + "{2})$","i"));

  pcexp.push (new RegExp ("^(" + alpha1 + "{1}" + alpha2 + "?[0-9]{1}" + alpha3 + "{1})(\\s*)([0-9]{1}" + alpha4 +"{1})(\\s*)([0-9]{1}" + alpha5 + "{2})$","i"));
  
  
  // Exception for the special postcode GIR 0AA
  pcexp.push (/^(GIR)(\s*)(0AA)$/i);
  
  // Standard BFPO numbers
  pcexp.push (/^(bfpo)(\s*)([0-9]{1,4})$/i);
  
  // c/o BFPO numbers
  pcexp.push (/^(bfpo)(\s*)(c\/o\s*[0-9]{1,3})$/i);

  // Load up the string to check
  var postCode = test1;

  // Assume we're not going to find a valid postcode
  var valid = false;
  
  // Check the string against the types of post codes
  for ( var i=0; i<pcexp.length; i++) {
 	//alert(pcexp[i]);
    if (pcexp[i].test(postCode)) {   
      // The post code is valid - split the post code into component parts
      pcexp[i].exec(postCode);
      
      // Copy it back into the original string, converting it to uppercase and
      // inserting a space between the inward and outward codes
      postCode = RegExp.$1.toUpperCase() + " " + RegExp.$3.toUpperCase();
      
      // If it is a BFPO c/o type postcode, tidy up the "c/o" part
      postCode = postCode.replace (/C\/O\s*/,"c/o ");
      
      // Load new postcode back into the form element
      valid = true;
      
      // Remember that we have found that the code is valid and break from loop
      break;
    }		
		
  }	
  
   if (valid) 
 //   if (1) 
  {	
  	var alpha=new Array();
	
	alpha.push("abcdefghijklmnoprstuwyz"); 
	alpha.push("abcdefghklmnopqrstuvwxy0123456789"); 
	alpha.push("abcdefghjkstuw0123456789"); 
	alpha.push("abehmnprvwxy0123456789"); 
	alpha.push("abdefghjlnpqrstuwxyz0123456789"); 	
  
  
	  myPostCode1 = postCode.replace(" " , "");	
	  for(var s=0; s<5; s++)	  
	  {
	 	//alert(s);
	  	var st=alpha[s];		 
		st=st.toUpperCase();		 

		var flag;

		//alert('st:'+st+'   val: '+myPostCode1.charAt(s));
		//alert('len:'+st.length);
		
		for(var r=0; r<st.length; r++)
		{
			flag=0;
			if(myPostCode1.charAt(s)==st.charAt(r))
			{
				flag=1;
				break;								
			}				
		}	
		
		if(flag)
		{		
			//alert('true');
		}
		else
		{
			 var str_exp=/^(GIR)(\s*)(0AA)$/i;
			 
			 if (str_exp.test(postCode))  			 
			 	flag=1;				
			else				
				break;
				
			//alert('false');
		}				
	  	
	 }
	 
	 if(flag)		
			valid=true;
		else
			valid=false;
 }
 else
 	valid=false;  
  
  
  if (valid)
  {
	  sd1.innerHTML="    ";	 
	  return postCode;
  }
  else 
  {
	  sd1.innerHTML="Invalid Postcode";	 
	  sd.focus();	
	  return false;
  }

 // code added by Anil on 24-10-07
  
}
function showemailexist(a,b,c,d)
	{ 
		//alert("a  -:"+a+"b  -:"+b+"c  -:"+c+"d  -:"+d);
		url1 = "./modules/common.php";
		url = url1+"?uname="+a+"&email="+b+"&action="+c+"&id="+d
		xmlHttp=GetXmlHttpObject(stateeamilexist) 
		xmlHttp.open("GET", url , true) 
		xmlHttp.send(null) 
	
		//setTimeout(alert("TEST"),3000);

	 }
	function stateeamilexist()
	{ 
       if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
	   { 
		var res = xmlHttp.responseText;
		//alert("Result :"+res+":");

		if(res.indexOf("default") != -1 )
			{
				document.getElementById("exist").innerHTML="";
				return true; //validateForms('form1');
			}
			else
			{
				//alert("Ret False");				
				document.getElementById("exist").innerHTML=xmlHttp.responseText
				return false;
			 }//if
	   
    	}
	}
	
	
function gmap_circle()
{
		alert("In gmap circle function");
	if (GBrowserIsCompatible()) 
	{		
		var map_ecircle = new GMap2(document.getElementById("map_ecircle"));
		map_ecircle.addControl(new GSmallMapControl());
		map_ecircle.addControl(new GMapTypeControl());
		//map.setCenter(new GLatLng(<?php //echo $_REQUEST['lat']; ?>,<?php //echo $_REQUEST['lon']; ?>),13,G_HYBRID_MAP);
		map_ecircle.setCenter(new GLatLng(57.135,57.130),13,G_HYBRID_MAP);
		
		// Creates a marker at the given point with the given number label
		function createMarker(point, name, address, type) 
		{
		  var marker = new GMarker(point);
		  GEvent.addListener
		  (
			  marker, "click", function() 
			  {
				marker.openInfoWindowHtml(name + "<br>"+address);
			  }
		  );
		  return marker;
		}
		
		
		GDownloadUrl("genxml.php", function(data) {
		
		  var xml = GXml.parse(data);
		  var markers = xml.documentElement.getElementsByTagName("marker");
		  for (var i = 0; i < markers.length; i++) 
		  {
			var name = markers[i].getAttribute("name");
			var address = markers[i].getAttribute("address");
			var type = markers[i].getAttribute("type");
			var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
									parseFloat(markers[i].getAttribute("lng")));
			alert(point+"::"+name+"::"+address+"::"+type);
			var marker = createMarker(point, name, address, type);
			map_ecircle.addOverlay(marker);
		  }
		});
	}	
}
