var profileIDUnique=0;
var emailIDUnique=0;

function validate_form(thisform)
{
	
	with (thisform)
	{
		
		//if (validate_required(txtProfileId, "alphanum", "Please fill in Profile ID!", 'msgProfileId')==false){txtProfileId.focus();return false;}


	ProfileID=document.getElementById('txtProfileId');

		
		if ((ProfileID.value==null)||(Trim(ProfileID.value)==""))
		{
			//alert("Please fill in the Phone number!")
			document.getElementById('msgProfileId').innerHTML="Please fill in the Profile ID!";
			ProfileID.focus()
			return false
		}
		else
		{
			document.getElementById('msgProfileId').innerHTML="";
		}
	
		/////

		if (IsNumeric(ProfileID.value)==true)
		{
			document.getElementById('msgProfileId').innerHTML="Profile ID must be alphanumeric!";
			ProfileID.focus()
			return false
		}
		else
		{
			document.getElementById('msgProfileId').innerHTML="";
		}

		/////

		if (validateSpecialChars(ProfileID.value)==false){
			//alert("Please Enter a valid Phone Number")
			document.getElementById('msgProfileId').innerHTML="Special Characters and Spaces are not allowed in Profile ID!";
			//ProfileID.value=""
			ProfileID.focus()
			return false
		}
		else
		{
			document.getElementById('msgProfileId').innerHTML="";
		}
		
		if(Trim(ProfileID.value).length<3)
		{
		document.getElementById('msgProfileId').innerHTML="Profile ID must be at least 3 characters long!";
		return false;
		}

		if(profileIDUnique==1)
		{
		document.getElementById('msgProfileId').innerHTML="Profile ID already taken. Please select another Profile ID.";
		return false;
		}

		if (validate_required(txtEmail, "email", "Please fill in Email Address!", 'msgEmail')==false)
		  {txtEmail.focus();return false;}

		if(emailIDUnique==1)
		{
		document.getElementById('msgEmail').innerHTML="Email Address already exists. Please select another Email.";
		return false;
		}

		if (validate_required(txtPwd, "alphanum", "Please fill in Password!", 'msgPwd')==false)
		  {txtPwd.focus();return false;}

		if(Trim(document.getElementById('txtPwd').value).length<6)
		{
		document.getElementById('msgPwd').innerHTML="Passwords must be at least 6 characters long!";
		return false;
		}

		if (validate_required(txtPwd2, "alphanum", "Please confirm Password!", 'msgPwd2')==false)
		  {txtPwd2.focus();return false;}


		if(document.getElementById('txtPwd').value!=document.getElementById('txtPwd2').value)
		{
		document.getElementById('msgPwd2').innerHTML="Passwords don't match!";
		return false;
		}

		if (validate_required(cmbDay, "alphanum", "Please select Day of Birth!", 'msgDOB')==false)
		  {cmbDay.focus();return false;}

		if (validate_required(cmbMonth, "alphanum", "Please select Month of Birth!", 'msgDOB')==false)
		  {cmbMonth.focus();return false;}

		if (validate_required(cmbYear, "alphanum", "Please select Year of Birth!", 'msgDOB')==false)
		  {cmbYear.focus();return false;}

		var cDay=document.getElementById('cmbDay').value;
		var cMonth=document.getElementById('cmbMonth').value;
		var cYear=document.getElementById('cmbYear').value;
		var combinedDate=cDay+"/"+parseInt(cMonth-1)+"/"+cYear;
		//alert(combinedDate);
		var enteredDate=getDateObject(combinedDate,"/");
		var currentDate=getCurrentDate();

		if(enteredDate>=currentDate)
		{
		//document.getElementById('msgDOB').innerHTML="Please enter a valid date!";
		//return false;
		}
		

		if (validate_required(cmbCountry, "alphanum", "Please select Country!", 'msgCountry')==false)
		  {cmbCountry.focus();return false;}
	}
}


function validate_form_forgot(thisform)
{
	
	with (thisform)
	{

		if (validate_required(txtEmail, "email", "Please fill in Email Address!", 'msgEmail')==false)
		  {txtEmail.focus();return false;}

		if(emailIDUnique==1)
		{
		document.getElementById('msgEmail').innerHTML="Email Address already exists. Please select another Email.";
		return false;
		}

		if (validate_required(cmbDay, "alphanum", "Please select Day of Birth!", 'msgDOB')==false)
		  {cmbDay.focus();return false;}

		if (validate_required(cmbMonth, "alphanum", "Please select Month of Birth!", 'msgDOB')==false)
		  {cmbMonth.focus();return false;}

		if (validate_required(cmbYear, "alphanum", "Please select Year of Birth!", 'msgDOB')==false)
		  {cmbYear.focus();return false;}

		var cDay=document.getElementById('cmbDay').value;
		var cMonth=document.getElementById('cmbMonth').value;
		var cYear=document.getElementById('cmbYear').value;
		var combinedDate=cDay+"/"+parseInt(cMonth-1)+"/"+cYear;
		//alert(combinedDate);
		var enteredDate=getDateObject(combinedDate,"/");
		var currentDate=getCurrentDate();

		if(enteredDate>=currentDate)
		{
		document.getElementById('msgDOB').innerHTML="Please enter a valid date!";
		return false;
		}
		
	}
}

function validate_required(field, validatetype, alerttxt, alertcontainer)
{
	with (field)
	{
		var regEmail = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
		var regPhone = /^\(?[2-9]\d{2}[\)\.-]?\s?\d{3}[\s\.-]?\d{4}$/;
		var regAlpha = /[a-zA-Z]/;
		var regAlphaNum = /[a-zA-Z0-9]/;
		var regNum = /[0-9]/;
		var val = Trim(field.value);
		
		if(validatetype=="email")
		{
			if (value==null||value=="")
			  {
				document.getElementById('spanerrors').innerHTML = "We were unable to submit your request. Please see below for details.<br/>";
				document.getElementById(alertcontainer).innerHTML = alerttxt;
				return false;
			  }
			else 
			{
				if(regEmail.test(val) == true)
				{
					document.getElementById(alertcontainer).innerHTML = '';
					return true;
				}
				else
				{
					document.getElementById('spanerrors').innerHTML = "We were unable to submit your request. Please see below for details.";
					document.getElementById(alertcontainer).innerHTML = 'Please enter valid Email address!';
					return false;
				}
			}
		}
		else if(validatetype=="phone")
		{
			if (value==null||value=="")
			  {
				document.getElementById('spanerrors').innerHTML = "We were unable to submit your request. Please see below for details.<br/>";
				document.getElementById(alertcontainer).innerHTML = alerttxt;
				return false;
			  }
			else 
			{
				if(regPhone.test(val) == true)
				{
					document.getElementById(alertcontainer).innerHTML = '';
					return true;
				}
				else
				{
					document.getElementById('spanerrors').innerHTML = "We were unable to submit your request. Please see below for details.";
					document.getElementById(alertcontainer).innerHTML = 'Please enter valid phone number';
					return false;
				}
			}
		}
		else if(validatetype=="number")
		{
			if (value==null||value=="")
			  {
				document.getElementById('spanerrors').innerHTML = "We were unable to submit your request. Please see below for details.<br/>";
				document.getElementById(alertcontainer).innerHTML = alerttxt;
				return false;
			  }
			else 
			{
				if(regNum.test(val) == true)
				{
					document.getElementById(alertcontainer).innerHTML = '';
					return true;
				}
				else
				{
					document.getElementById('spanerrors').innerHTML = "We were unable to submit your request. Please see below for details.<br/>Please enter valid number";
					document.getElementById(alertcontainer).innerHTML = alerttxt;
					return false;
				}
			}
		}
		else if(validatetype=="alpha")
		{
			if (value==null||value=="")
			  {
				document.getElementById('spanerrors').innerHTML = "We were unable to submit your request. Please see below for details.<br/>";
				document.getElementById(alertcontainer).innerHTML = alerttxt;
				return false;
			  }
			else 
			{
				if(regAlpha.test(val) == true)
				{
					document.getElementById(alertcontainer).innerHTML = '';
					return true;
				}
				else
				{
					document.getElementById('spanerrors').innerHTML = "We were unable to submit your request. Please see below for details.";
					document.getElementById(alertcontainer).innerHTML = 'Only alphabatic characters allowed';
					return false;
				}
			}
		}
		else if(validatetype=="alphanum")
		{
			if (value==null||value=="")
			  {
				document.getElementById('spanerrors').innerHTML = "We were unable to submit your request. Please see below for details.<br/>";
				document.getElementById(alertcontainer).innerHTML = alerttxt;
				return false;
			  }
			else 
			{
				if(regAlphaNum.test(val) == true)
				{
					document.getElementById(alertcontainer).innerHTML = '';
					return true;
				}
				else
				{
					document.getElementById('spanerrors').innerHTML = "We were unable to submit your request. Please see below for details.";
					document.getElementById(alertcontainer).innerHTML = 'Only alphabatic characters and numbers allowed';
					return false;
				}
			}
		}
		else
		{
			if (value==null||value=="")
			  {
				document.getElementById('spanerrors').innerHTML = "We were unable to submit your request. Please see below for details.<br/>";
				return false;
				document.getElementById(alertcontainer).innerHTML = alerttxt;
			  }
			else 
			{
				document.getElementById(alertcontainer).innerHTML = '';
				return true
			}
		}
	}
}



function Trim(s) 
{
  // Remove leading spaces and carriage returns
  
  while ((s.substring(0,1) == ' ') || (s.substring(0,1) == '\n') || (s.substring(0,1) == '\r'))
  {
    s = s.substring(1,s.length);
  }

  // Remove trailing spaces and carriage returns

  while ((s.substring(s.length-1,s.length) == ' ') || (s.substring(s.length-1,s.length) == '\n') || (s.substring(s.length-1,s.length) == '\r'))
  {
    s = s.substring(0,s.length-1);
  }
  return s;
}


function getCurrentDate()
{
cDate=new Date()
dd=cDate.getDate()
mm=cDate.getMonth()
yy=cDate.getYear()
todayDate=dd+"/"+mm+"/"+yy
todayDate=getDateObject(todayDate,"/");
return todayDate;
}

function getDateObject(dateString,dateSeperator)
{
	//This function return a date object after accepting 
	//a date string ans dateseparator as arguments
	var curValue=dateString;
	var sepChar=dateSeperator;
	var curPos=0;
	var cDate,cMonth,cYear;

	//extract day portion
	curPos=dateString.indexOf(sepChar);
	cDate=dateString.substring(0,curPos);
	
	//extract month portion				
	endPos=dateString.indexOf(sepChar,curPos+1);			
	cMonth=dateString.substring(curPos+1,endPos);

	//extract year portion				
	curPos=endPos;
	endPos=curPos+5;			
	cYear=curValue.substring(curPos+1,endPos);
	
	//Create Date Object
	dtObject=new Date(cYear,cMonth,cDate);	
	return dtObject;
}

function alphanumeric(alphane)
{
	var numaric = alphane;
	for(var j=0; j<numaric.length; j++)
		{
		  var alphaa = numaric.charAt(j);
		  var hh = alphaa.charCodeAt(0);
		  if((hh > 47 && hh<58) || (hh > 64 && hh<91) || (hh > 96 && hh<123))
		  {
		  }
		else	{
			 return false;
		  }
		}
 return true;
}


function validateSpecialChars(myStringID)
{     
	var ck_username = /^[A-Za-z0-9_-]{3,20}$/;
	if (!ck_username.test(myStringID)) {
	return false;
	}
	else
	{
	return true;
	}

}

function IsNumeric(sText)

{
   var ValidChars = "0123456789";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
   }
