     function isEmail(str) {
         // are regular expressions supported?
          var supported = 0;
          if (window.RegExp) {
            var tempStr = "a";
            var tempReg = new RegExp(tempStr);
            if (tempReg.test(tempStr)) supported = 1;
          }
          
          if (!supported) 
            return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
            
          var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
          var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
          return (!r1.test(str) && r2.test(str));
        }

function postit(test){ //check postcode format is valid

 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
  }
 if (size < 6 || size > 8){ //Code length rule
  alert(test + " is not a valid postcode - wrong length");
  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");
   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");
   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");
   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");
   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");
   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");
   return false;
  }
return true;
}
//  End -->

                
        function validate_form() 
        {
            message = "";
            formvalid=true ;

            // Name
            name=con_form.realname.value;
            if (name.length < 3 ) {
                formvalid=false ;
                message = message + "\n" + "Please enter your name";
            }
 
            // Email , phone or postcode 
            email=con_form.email.value;
            phone=con_form.tel.value;
            addr=con_form.address4.value;
            if ( ( email.length > 0) && (isEmail(email) == false ) ) {
                alert('The email address you have entered does not appear to be valid');
                event.returnValue=false;
                formvalid=false ;
                return 
            }                        

            if ( (isEmail(email) == false ) && (phone.length < 10 ) && (addr.length < 6 ) ) {
                formvalid=false ;
                message = message + "\n" + "Please enter a valid email address or phone number or postcode";
            }
            
            if (formvalid == false) {
                alert(message);
                event.returnValue=false;
            }
        }

		function write_ema_tag(text, recip)
		{
			var s = new String( text )
			s = s.replace ("%EMA%", get_ema(recip) ) ;
			s = s.replace ("%EMA%", get_ema(recip) ) ;
			s = s.replace ("%EMA%", get_ema(recip) ) ;
			document.write(s)
		}
		function write_ema(recip)
		{
			document.write(get_ema(recip)) 
		}
		function get_ema(recip)
		{
			var ret = recip
			ret = ret + '\x40'
			ret = ret + 'italianvillas.'
			ret = ret + 'net' ;
			return ret
		}
