// JavaScript (login form validation)
var xmlHttp_ondemand

function submit_ondemand_request()
{
	xmlHttp_ondemand=GetxmlHttp_ondemandObject() 
	if (xmlHttp_ondemand==null)
	{
		alert ("Browser does not support HTTP Request")
		return
	}
	var urname = document.requestform.urname.value;
	var place = document.requestform.place.value;
	var dateyear = document.requestform.dateyear.value;
	var email = document.requestform.email.value;
	var contact = document.requestform.phone.value;
	var note = document.requestform.note.value;
	
	var url="ondemand-form-process.php"
	url=url+"?urname="+urname
	url=url+"&place="+place
	url=url+"&dateyear="+dateyear
	url=url+"&email="+email
	url=url+"&contact="+contact
	url=url+"&note="+note
	url=url+"&sid="+Math.random()
	//alert(url);
	xmlHttp_ondemand.onreadystatechange=stateChanged_ondemand
	xmlHttp_ondemand.open("GET",url,true)
	xmlHttp_ondemand.send(null)
}



function check_form()
{
	//alert('alert in check_form');
	validate_form();
	if( err=="")
	{
		submit_ondemand_request();
		return false;
	}
	else
	{	alert(err);
		return false;
	}		
		
}



function validate_form()
{
	//alert('alert in validate_form');
	var form = document.requestform;
	err=""; 
	
	if (form.urname.value == "") 
	{	
		err="Please Enter Your Name" ;
		form.urname.focus();		
	}
	
	if (form.place.value == "") 
    {
	 
		err = err +"\n" ;
		err =  err + "Please Enter Your Place" ;
		form.place.focus();
    }
   
	if (form.dateyear.value == "") 
	{	
		err = err +"\n" ;
		err=err +"Please Enter The Date/Year" ;
		form.dateyear.focus();	
		
	}
		
     
    if(form.phone.value=="")
	{
		err = err +"\n" ;
		err = err + "Please enter your Phone Number" ;
		form.phone.focus();
	}
	else if (form.phone.value !="")
	{
			
		s = form.phone.value ;
		var t ;
		t = 0 ;
				
		for(i=0 ; i<s.length ; i++)
		{
			var c = s.charAt(i);
			if((c <'0' || c>'9' || c == '-' || c == '+'))
			{
				t = t + 1 ;
			}

		}
		
			if (t > 0) 
			{
				err = err + "\n" ;
				err = err + "Please Enter a Numeric Phone Number";
				form.phone.focus();
			}	
	}
   	
	 if (form.email.value == "") 
	 {
		err = err +"\n" ;
		err = err+ "Please Enter Email Address" ;
		form.email.focus();
	 }
	 else
	 {
		emailStr=form.email.value;
		var checkTLD=1;
		var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
		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 +")*$");
		var matchArray=emailStr.match(emailPat);

		if (matchArray==null) 
		{
			err=err+"\n";
			err=err+"Email address seems incorrect (check @ and .'s)";
			form.email.focus();
			return false;
		}
		var user=matchArray[1];
		var domain=matchArray[2];

		for (i=0; i<user.length; i++) 
		{
			if (user.charCodeAt(i)>127) 
			{
				err=err+"\n";
				err=err+"Ths email name contains invalid characters";
				form.email.focus();
				return false;
			 }
		}
		for (i=0; i<domain.length; i++) 
		{
				if (domain.charCodeAt(i)>127) 
				{
					err=err+"\n";
					err=err+"This domain name of email contains invalid characters.";
					form.email.focus();
					return false;
			    }
		}
		
		if (user.match(userPat)==null) 
		{
			err=err+"\n";
			err=err+"The email name doesn't seem to be valid";
			form.email.focus();
			return false;
		}
		
		var IPArray=domain.match(ipDomainPat);
		if (IPArray!=null) 
		{
			// this is an IP address
			for (var i=1;i<=4;i++) 
			{
				if (IPArray[i]>255) 
				{
					err=err+"\n";
					err=err+"Destination IP address of this email is invalid!";
					form.email.focus();
					return false;
				 }
			}
			//return true;
		 }

		 var atomPat=new RegExp("^" + atom + "$");
		 var domArr=domain.split(".");
		 var len=domArr.length;
		 for (i=0;i<len;i++) 
		 {
			if (domArr[i].search(atomPat)==-1) 
			{
				err=err+"\n";
				err=err+"The domain name of this email does not seem to be valid.";
				form.email.focus();
				return false;
			}
		}
		if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1) 
		{	err=err+"\n";
			err=err+"The email address must end in a well-known domain or two letter " + "country.";
			form.email.focus();
			return false;
		}
		
		if (len<2) 
		{
			
			err=err+"\n";
			err=err+"This email address is missing a hostname!";
			form.email.focus();
			return false;
		}

	}
		 
	if(err !="")
	{return false;}else
	{return true;}
}


function stateChanged_ondemand() 
{ 
	if (xmlHttp_ondemand.readyState==4 || xmlHttp_ondemand.readyState=="complete")
	 { 
		//document.getElementById("requestform").submit();
		document.getElementById("responsetext").style.color = "#00598D";
		document.getElementById("responsetext").innerHTML=xmlHttp_ondemand.responseText ;
		//document.getElementById("requestform").innerHTML=""; 
		
		document.getElementById("requestform").reset();
	 } 
}


function GetxmlHttp_ondemandObject()
{
	var xmlHttp_ondemand=null;
	
	try
	 {
		 // Firefox, Opera 8.0+, Safari
		 xmlHttp_ondemand=new XMLHttpRequest();
	 }
	 
	catch (e)
	 {
		 // Internet Explorer
		 try
		  {
		  	xmlHttp_ondemand=new ActiveXObject("Msxml2.XMLHTTP");
		  }
		 catch (e)
		  {
		  	xmlHttp_ondemand=new ActiveXObject("Microsoft.XMLHTTP");
		  }
	 }
	 
	return xmlHttp_ondemand;
}