var globalFocusSelect;	// retain valfield for timer thread
var emptyString = /^\s*$/ ;

function isDate(year,month,day)
	{
	year  = 1 * year;
	month = 1 * month;
	day   = 1 * day;
	var tempDate = new Date(year, month-1, day);
	if (
	   ( tempDate.getMonth()+1 != month ) ||
	   ( tempDate.getDate()    != day   ) ||
	   ( tempDate.getFullYear()!= year  )
	   )
	   { return false; }
	return true;
	}

function validateDate(field,name)
	{
	if ( field )
       {
	   var dateString = field.value;	  
	   if ( emptyString.test(dateString) ) {  return true; }
	   var dateValidformat = /^\d{4}\-\d{1,2}\-\d{1,2}$/ //Basic check for format validity
	   if  ( !dateValidformat.test(dateString) ) 
		   {
		   globalFocusSelect = field;
		   alert(name + ' must in the format of YYYY-MM-DD.' );
		   setTimeout( 'globalFocusSelect.focus();globalFocusSelect.select();', 100 );
		   return false;
		   }
	   var year  = dateString.split("-")[0];
	   var month = dateString.split("-")[1];
	   var day   = dateString.split("-")[2];
	   if  ( !isDate(year,month,day) )
		   {
		   globalFocusSelect = field;
		   alert(name + ' is an invalid date.' );
		   setTimeout( 'globalFocusSelect.focus();globalFocusSelect.select();', 100 );
		   return false;
		   }
	   }
	return true;
	}

function validateBooking()
{
	var docForm = document.booking;
	if ( emptyString.test(docForm.name.value) ) 
		{
		alert('Please enter your name');
		docForm.name.focus();
		return false; 
		}	
	if ( !isValidEmail(docForm.email) ) { return false; }
   return true;
}

function isValidEmail(field)
	{
	if ( emailCheck(field.value) ) { return true; }
	field.focus();
	return false;
	}
   
   // Sandeep V. Tamhankar (stamhankar@hotmail.com)
function emailCheck (emailStr)
{
var emailPat     = /^(.+)@(.+)$/;
var specialChars = "\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
var validChars   = "\[^\\s" + specialChars + "\]";
var quotedUser   = "(\"[^\"]*\")";
var ipDomainPat  = /^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
var atom         = validChars + '+';
var word         = "(" + atom + "|" + quotedUser + ")";
var userPat      = new RegExp("^" + word + "(\\." + word + ")*$");
var domainPat    = new RegExp("^" + atom + "(\\." + atom +")*$");

if ( emptyString.test(emailStr) ) 
	{
	alert('Please enter a valid Email address');
	return false; 
	}	

var matchArray = emailStr.match(emailPat);
if ( matchArray == null )
   {
   alert("Email address seems incorrect (check @ and .'s)");
   return false;
   }
   
var user   = matchArray[1];
var domain = matchArray[2];

if ( user.match(userPat) == null)
   {
   alert("The username doesn't seem to be valid.");
   return false;
   }

var IPArray = domain.match(ipDomainPat);
if ( IPArray != null )
   {
   for ( var i = 1; i <= 4; i++ )
       {
       if ( IPArray[i] > 255 )
          {
          alert("Destination IP address is invalid!");
          return false;
          }
       }
   return true;
   }

var domainArray=domain.match(domainPat)
if (domainArray==null)
   {
   alert("The Email domain name doesn't seem to be valid.");
   return false;
   }

return true;
}
