// JavaScript Document

//var dateerr;

/* ****************** Checking Required Fields  *************************************************    */
var datemsg="";
function check(formname)
{

	//  This function is to check the common validation
	 var errmsg="\n\n";
	 var form = formname;
	 var flag=1;
	
	// alert("exist"+document.getElementById("txtuser"));	
	 if ( document.getElementById("txtUserName") )
	{
			if ( form.txtUserName.value.length < 1 )
		{
			
			errmsg+="Enter Your Username "+'\n';
			flag=0;
		}
			else if ( !isNaN( form.txtUserName.value ) )
		{
			errmsg+="Enter Your Username in Digits"+'\n';
			flag=0;	
		}
	}
	if ( document.getElementById("txtPassword") )
	{
			if ( form.txtPassword.value.length < 1 )
		{
			errmsg+="Enter Your Password"+'\n';
			flag=0;			
		}
	}
	if ( document.getElementById("txtNewPassword") && document.getElementById("txtConfirmPassword"))
	{
			if ( form.txtNewPassword.value.length < 6 || form.txtConfirmPassword.value.length < 6 )
		{
			errmsg+="Your Password must Contain 6 to 15 characters"+'\n';
			flag=0;			
		}
			else if ( form.txtNewPassword.value !=  form.txtConfirmPassword.value )
		{
			errmsg+="Your New and Confirmed Password must be equal"+'\n';
			flag=0;	
		}
		
	}
	if ( document.getElementById("txtEmail") )
	{
		var exp=/^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/;
			if ( form.txtEmail.value.length < 1 || exp.test(form.txtEmail.value)==false )
		{
			errmsg+="Your Email must be in this format (eg: xx@asdf.com)"+'\n';
			flag=0;			
		}		
		
	}
	
	if ( document.getElementById("txtFName") )
	{
			if ( form.txtFName.value.length < 1 )
		{
			errmsg+="Your First Name must Contain minimum of 2 characters"+'\n';
			flag=0;			
		}
	}
	if ( document.getElementById("txtLName") )
	{
			if ( form.txtLName.value.length < 1 )
		{
			errmsg+="Your Last Name must Contain minimum of 2 characters"+'\n';
			flag=0;			
		}
	}
	if ( document.getElementById("radGender") )
	{
			var count=0;
			for ( var i=0; i < form.radGender.length; i++ )
			{ 
				if ( form.radGender[i].checked == false )
				{
					count++;
				}
			}	
			if ( count ==  form.radGender.length )
			{
				errmsg+="You must select the Gender"+'\n';
				flag=0;			
			}			
	}
	if ( document.getElementById("txtCompany") )
	{
			if ( form.txtCompany.value.length < 1 )
		{
			errmsg+="You must enter Company Name"+'\n';
			flag=0;			
		}
	}
	if ( document.getElementById("txtStreet") )
	{
			if ( form.txtStreet.value.length < 1 )
		{
			errmsg+="You must enter Street Name"+'\n';
			flag=0;			
		}
	}
	if ( document.getElementById("txtSuburb") )
	{
			if ( form.txtSuburb.value.length < 1 )
		{
			errmsg+="You must enter Suburb Name"+'\n';
			flag=0;			
		}
	}
	if ( document.getElementById("txtPostCode") )
	{
			if ( form.txtPostCode.value.length < 1 )
		{
			errmsg+="You must enter Post Code"+'\n';
			flag=0;			
		}
	}
	if ( document.getElementById("txtCity") )
	{
			if ( form.txtCity.value.length < 1 )
		{
			errmsg+="You must enter City Name"+'\n';
			flag=0;			
		}
	}
	if ( document.getElementById("txtState") )
	{
			if ( form.txtState.value.length < 1 )
		{
			errmsg+="You must enter State Name"+'\n';
			flag=0;			
		}
	}
	if ( document.getElementById("ddlCounty") )
	{
			if ( form.ddlCounty.selectedIndex < 1 )
		{
			errmsg+="You must select a County from the list"+'\n';
			flag=0;			
		}
	}
	if ( document.getElementById("txtPhone") )
	{
			if ( form.txtPhone.value.length < 1 )
		{
			errmsg+="You must enter Phone Number"+'\n';
			flag=0;			
		}
	}
	if ( document.getElementById("txtFax") )
	{
			if ( form.txtFax.value.length < 1 )
		{
			errmsg+="You must enter Fax Number"+'\n';
			flag=0;			
		}
	}
	if ( document.getElementById("chkNews") )
	{
			if ( !form.chkNews.checked )
		{
			errmsg+="You must select the news"+'\n';
			flag=0;			
		}
	}				
	if ( document.getElementById("txtDOB") )
	{
			if ( form.txtDOB.value.length < 1 )
		{
			errmsg+="Your Date of Birth must be in this format DD/MM/YYYY (eg 31/08/2005)"+'\n';
			flag=0;			
		}
		else 
		{
				datemsg="";
				var flag=ValidateDate(form.txtDOB.value);
				if ( flag != "" )
				{
					errmsg+="Date Errors: ";
					errmsg+=datemsg;
					flag=0;
				}
				/* if ( flag == false )
				{
					errmsg+="Date Errors: ";
					errmsg+=datemsg;
					flag=0;
				}*/	
		}
	}		
	
	
	if ( flag==0 && errmsg!="\n\n" )
	{
		alert (errmsg);
		return false;	
	}
	
}

/* ****************** Checking important Fields  *************************************************    */

function checkImportant(formname)
{
	//  This function is to check the important fields(*) validation
	 var errmsg="\n\n";
	 var form = formname;
	 var flag=1;
	
	// alert("exist"+document.getElementById("txtuser"));	
	 if ( document.getElementById("txtUserName") && document.getElementById("txtUserNameStar"))
	{
			if ( form.txtUserName.value.length < 1 )
		{
			
			errmsg+="Enter Your Username "+'\n';
			flag=0;
		}
			else if ( !isNaN( form.txtUserName.value ) )
		{
			errmsg+="Enter Your Username in Digits"+'\n';
			flag=0;	
		}
	}
	if ( document.getElementById("txtPassword") && document.getElementById("txtPasswordStar") )
	{
			if ( form.txtPassword.value.length < 1 )
		{
			errmsg+="Enter Your Password"+'\n';
			flag=0;			
		}
	}
	if ( document.getElementById("txtFName") )
	{
			if ( form.txtFName.value.length < 1 )
		{
			errmsg+="Your First Name must Contain minimum of 2 characters"+'\n';
			flag=0;			
		}
	}
	if ( document.getElementById("txtLName") )
	{
			if ( form.txtLName.value.length < 1 )
		{
			errmsg+="Your Last Name must Contain minimum of 2 characters"+'\n';
			flag=0;			
		}
	}
	
	if ( document.getElementById("txtDOB") )
	{
			if ( form.txtDOB.value.length < 1 )
		{
			errmsg+="Your Date of Birth must be in this format DD/MM/YYYY (eg 31/08/2005)"+'\n';
			flag=0;			
		}
		else 
		{
				datemsg="";
				var flag=ValidateDate(form.txtDOB.value);
				if ( flag != "" )
				{
					errmsg+="Date Errors: ";
					errmsg+=datemsg;
					flag=0;
				}
				/* if ( flag == false )
				{
					errmsg+="Date Errors: ";
					errmsg+=datemsg;
					flag=0;
				}*/	
		}
	}		
	
	
	if ( flag==0 && errmsg!="\n\n" )
	{
		alert (errmsg);
		return false;	
	}
		

}

/* ****************** Date Validation  *************************************************    */

var dtCh= "/";
var minYear=1900;
var maxYear=2100;
//var datemsg="";
function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this
} 

function isDate(dtStr){
	var daysInMonth = DaysArray(12)
	var pos1=dtStr.indexOf(dtCh)
	var pos2=dtStr.indexOf(dtCh,pos1+1)
	var strDay=dtStr.substring(0,pos1)
	var strMonth=dtStr.substring(pos1+1,pos2)
	var strYear=dtStr.substring(pos2+1)
	strYr=strYear
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
	}
	month=parseInt(strMonth)
	day=parseInt(strDay)
	year=parseInt(strYr)
	if (pos1==-1 || pos2==-1){
		//alert("The date format should be : mm/dd/yyyy")
		datemsg+="The date format should be : mm/dd/yyyy"+'\n';
		return false
	}
	if (strMonth.length<1 || month<1 || month>12){
		//alert("Please enter a valid month")
		datemsg+="Please enter a valid month"+'\n';
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		//alert("Please enter a valid day")
		datemsg+="Please enter a valid day"+'\n';
		return false
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		//alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)
		datemsg+="Please enter a valid 4 digit year between"+minYear+" and "+maxYear+'\n';
		return false
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
		//alert("Please enter a valid date")
		datemsg+="Please enter a valid date"+'\n';
		return false
	}
return true
}

function ValidateDate(dateval){
	//var temp=eval(document.agentreg);
	var dt=dateval; //form.txtDOB.value;
	if (isDate(dt)==false)
	{
		//temp.doj.focus()
		return datemsg;
		//return false;
	}
    return datemsg;
    //return true;
 }