function fncheck()
{
	if (document.frmquestion.txtname.value == "")
	{
		alert('Enter your name');
		document.frmquestion.txtname.focus();
		return false;
	}
	if (document.frmquestion.txtdob.value == "")
	{
		alert('Enter your date of birth');
		document.frmquestion.txtdob.focus();
		return false;
	}
	var m=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
	var x=new String();
	var y=new String();
	var a1,a2,a,b,c;
	var todt = new Date()
	dt = todt.getDate();
	mon = todt.getMonth();
	yr = todt.getFullYear();

	x=frmquestion.txtdob.value;

	

	x = x.replace(".","-") ;
	x = x.replace(".","-") ;
	//x = x.replace("/","-") ;
	//x = x.replace("/","-") ;

	//var s=/-/
	//a1=x.search(s);
	var s="-" ;
	a1=x.search(s) ;
	
	/*if(a1==-1)
	{
		alert("Your date of birth is incorrect");
		frmquestion.txtdob.select();
		return false
	}
	y=x.substr(a1+1,3);
	a2=y.search(s);
	a=x.slice(0,a1);
	b=x.slice(a1+1,a1+a2+1);
	c=x.slice(a1+a2+2,a1+a2+6);
	if(c%4==0)
	{	m[1]=29;
		if(c%100==0)
		{
			if(c%400!=0)
			{
			 m[1]=28;
			}
		}	
	}*/

	var dtarr = x.split(s) ;
	a= dtarr[0] ;
	b= dtarr[1] ;
	c= dtarr[2] ;
	 
		if((a=="")||(b=="")||(c==""))
		{
		alert("Enter your date of birth");
		frmquestion.txtdob.select();
		return false;
		}
		if((isNaN(a)==true)||(isNaN(b)==true)||(isNaN(c)==true))
		{
		alert("Your date of birth is incorrect");
		frmquestion.txtdob.select();
		return false;
		}
		if((a>m[b-1])||(b>12)||(c>yr)||(c.length !=4))
		{
		alert("You have entered a invalid date");
		frmquestion.txtdob.select();
		return false;
		}
		if (c == yr)
		{
		  if(b>mon)
		  {
			alert("Your date of birth is incorrect");
			frmquestion.txtdob.select();
			return false;
		  }
		  if(b == mon) 
		  {
			if(a>dt)
			{
				alert("Your date of birth is incorrect");
				frmquestion.txtdob.select();
				return false;
			}
		  }  
		} 
	if (document.frmquestion.txtaddrr.value == "")
	{
		alert('Enter your postal address');
		document.frmquestion.txtaddrr.focus();
		return false;
	}
	if (CheckPhoneNumber(document.frmquestion.txtphone))
		return false;
	if (CheckFieldForEmail(document.frmquestion.txtemail))
		return false;
	if (document.frmquestion.txtjob.value == "")
	{
		alert('Enter your Occupation');
		document.frmquestion.txtjob.focus();
		return false;
	}
	fdate=document.frmquestion.txtday.value;
	fmonth=document.frmquestion.txtmonth.value;
	fyear=document.frmquestion.txtyear.value; 
	if(fyear%4==0)
	{	m[1]=29;
		if(fyear%100==0)
		{
			if(fyear%400!=0)
			{
			 m[1]=28;
			}
		}	
	}
	 
		if((fdate=="")||(fmonth=="")||(fyear==""))
		{
		alert("Enter the date");
		frmquestion.txtday.focus();
		return false;
		}
		if((isNaN(fdate)==true)||(isNaN(fmonth)==true)||(isNaN(fyear)==true))
		{
		alert("Date entered by you is incorrect");
		frmquestion.txtday.focus();
		return false;
		}
		if((fdate>m[fmonth-1])||(fmonth>12)||(fyear>yr)||(fyear.length != 4))
		{
		alert("You have entered a invalid date");
		frmquestion.txtday.focus();
		return false;
		}

		if (document.frmquestion.personinfo_a.value == "")
		{
			alert('Patient information required');
			document.frmquestion.personinfo_a.focus();
			return false;
		}
		if (document.frmquestion.problem_a.value == "")
		{
			alert('Describe the patients problem');
			document.frmquestion.problem_a.focus();
			return false;
		}
		if (document.frmquestion.history_a.value == "")
		{
			alert('Describe the patients past history');
			document.frmquestion.history_a.focus();
			return false;
		}
}

function CheckFieldForEmail(FieldObject)
{
	var tempString=new String(FieldObject.value);
	var ReturnFlag=false;
	var tempFlag=false;
	var tempFlag1=false;
	var tempFlag2=false;
	var tempFlag3=false;
	var ind = tempString.indexOf('@');
	var ind1 = tempString.lastIndexOf('.');
	var ind2 = tempString.indexOf(' ');
	var len = tempString.length;
	var asciiCheckString1=new String(tempString.substring(0,tempString.lastIndexOf('@')));
	var asciiCheckString2=new String(tempString.substr(tempString.lastIndexOf('@')+1,len-tempString.lastIndexOf('@')+1));
	if((ind == -1) || (ind1 == -1) || (ind2 > 0) || (len < 5))
	{
		tempFlag=true;
	}
	else if (ind1-ind<3)
	{
		tempFlag=true;
	}
	else
	{
		var count = 0;
		for(i=ind1;i < len;i++)
		{
			count = count+1;
		}
		if (count<3) 
		{
			tempFlag=true;
		}
	}
	var ind3 = tempString.lastIndexOf('@');
	if (ind != ind3)
	{
		tempFlag=true;
	}
	for(i=0;i < asciiCheckString1.length;i++)
	{
		var asciiVal=asciiCheckString1.charCodeAt(i);
		if( (asciiVal==45) || (asciiVal==46) || (asciiVal==64) || (asciiVal==95) || ((asciiVal>=65) && (asciiVal<=90)) || ((asciiVal>=48) && (asciiVal<=57)) || ((asciiVal>=97) && (asciiVal<=122)) )
		{}
		else
		{
			tempFlag1=true;
			break;
		}
	}
	for(i=0;i < asciiCheckString2.length;i++)
	{
		var asciiVal=asciiCheckString2.charCodeAt(i);
		if( (asciiVal==45) || (asciiVal==46) || (asciiVal==64) || (asciiVal==95) || ((asciiVal>=65) && (asciiVal<=90)) || ((asciiVal>=48) && (asciiVal<=57)) || ((asciiVal>=97) && (asciiVal<=122)) )
		{}
		else
		{
			tempFlag2=true;
			break;
		}
	}
	
		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=tempString.match(emailPat);
                if (matchArray!=null)
                {
		var domain=matchArray[2];
		var IPArray=domain.match(ipDomainPat);
		if (IPArray!=null) 
		{
			for (var i=1;i<=4;i++) 
			{
				if (IPArray[i]>255) 
				{
					tempFlag3=true;
				}
			}	
		}	
		else
		{
			tempFlag3=true;
		}
		}
	if (tempFlag || tempFlag1 || (tempFlag2 && tempFlag3)) 
	{
		alert("Your email address is empty or invalid");
		FieldObject.focus();
		FieldObject.select();
		ReturnFlag=true;
	}
	return ReturnFlag;
}
function CheckPhoneNumber(FieldObject)
{
	var tempString=new String(FieldObject.value);
	var ReturnFlag=false;
	var tempFlag=false;
	var len = tempString.length;
	if (len < 5)
	{
		tempFlag=true;
	}
	else
	{
		for(i=0;i<len;i++)
		{
			if ((tempString.charCodeAt(i)<48 || tempString.charCodeAt(i)>57)&&(tempString.charCodeAt(i)!=43 && tempString.charCodeAt(i)!=45))
			{
			if ( tempString.charCodeAt(i)!=32 )
			{
				tempFlag=true;
				break;
			}
			}
		}
	}
	if (tempFlag)
	{
		alert("Phone number is incorrect");
		FieldObject.focus();
		FieldObject.select();
		ReturnFlag=true;
	}
	return ReturnFlag;
}
  