/* Project Name :									Trigonpuzzles					*/
/* File Or Class Name : 							Validation.js						*/
/* Description of the file (Purpose to create it) :	Common Javascript functions 	*/
/* Created on :										8th Sept 06					*/
/* Created by :										Pooja Verma                 */
/* Copyright :										Trigonpuzzles2006					*/
/* Modified on :																		*/
/* Modified by :																		*/
/* Modification reasons :																*/



// for registration form
/*function valid_form()
{
	var str = "";
  var doc=document.register;
  var myOption = -1;
  var currentTime = new Date()
  var month = currentTime.getMonth() + 1
      if(month<'9'){month = '0'+month;}
  var day = currentTime.getDate()
 var year = currentTime.getFullYear()
 currentdate  = (month + "/" + day + "/" + year)
 current = new Date(currentdate);
 birthdate = new Date(doc.dataArea0.value);
		if(doc.login_name.value == "")
		{
			str += "-Missing : Login name\n";
		} 
		else if(doc.login_name.value!="") 
	   {  
		 //if(doc.login_name.value.length >10)
		 // str+=("Please enter maximum 10 characters as Login name\n");   
	  
		// if(!isProper(doc.login_name.value))
		 //str += "Select word without special characters for Login name\n";
		 
		 if(!checkwords(doc.login_name.value))
			 str+=("Please Select single word as Login name\n");
		 
		 //if(!validatespace(doc.login_name.value))
			//str+=("Only spaces are not allowed in Login name\n");
			//doc.login_name.focus();
	  }
	 if(doc.u_password.value == "")
		{
			str += "-Missing : User's Password\n";
		}
		else if(doc.u_password.value.length <5)
		{
		  str+=("Please enter minimum 5 characters as Password\n");
		}
		if(doc.u_cpassword.value == "")
		{
			str += "-Missing : Confirm Password\n";
		}
		if(doc.u_password.value!=doc.u_cpassword.value)
		 {
			  str+= "-Missing : Passwords mismatch\n";
			  doc.u_cpassword.value = "";
		 }
		if(doc.u_fname.value == "")
		{
			str += "-Missing : User's First name\n";
		}
		else if(!validatespace(doc.u_fname.value))
		{	
			str+=("Only spaces are not allowed in First name\n");
			
		}
		if(doc.u_lname.value == "")
		{
			str += "-Missing : User's Last name\n";
		}
		else if(!validatespace(doc.u_lname.value))
		{	
			str+=("Only spaces are not allowed in Last name\n");
		}
		if(doc.dataArea0.value == "")
		{
			str += "-Missing : User's Date of birth\n";
		}
		else if(birthdate>=current)
		{
			str += "Date of birth can't after or same as the current date\n";
		}
	  if(doc.u_gender.value="")
	  {
		 str+="-Missing : User's Gender\n";
	  }
	  //for radiobutton of visa arranged
	for (i=doc.u_gender.length-1; i > -1; i--)
	{
		if (doc.u_gender[i].checked)
		 {
			myOption = i;
		 }
	}
	if (myOption == -1)
	 {
		str+="-Missing : User's Gender\n";
	}
		 
	  if(doc.u_email.value == "")
	 {
		str += "-Missing : User's Email\n";
	 }
		
	 if(doc.u_email.value!="")
	 {
		 if(!checkemail(doc.u_email.value))
			{  
				str+=("-Missing : Not valid email address\n");
			}
	 }
	if(doc.u_address.value == "")
	{
		str += "-Missing : User's Address \n";
	}
	if(doc.u_city.value == "")
	{
		str += "-Missing : User's City\n";
	} 
  if(doc.u_state.value == "")
	{
		str += "-Missing : User's State\n";
	}*/
	 /*if(doc.u_country.value == "0")
	{
		str += "-Missing : User Country\n";
	}*/
	/*if(doc.u_zipcode.value == "")
	{
		str += "-Missing : User's Zip code\n";
	}
	  else
	  {
		  v= doc.u_zipcode.value;
		  l= doc.u_zipcode.value.length;
		  for(i=0;i<=l-1;i++)
			 {
		   if(v.charAt(i)<"0" || v.charAt(i)>"9")
			  {
				var flag=true;
			  } 
			
			}
			 if(flag)
			 str += "-Missing : Please Enter Zip code in numeric only\n";
	   }
	  if(doc.u_phone.value == "")
		{
			str += "-Missing : User's Phone number\n";
		}
	  
	if(str != "")
	{
		alert("The following error/s occured :\n ________________________\n"+str);
		return false;
	}

}*/
function valid_form()
{
	var str = "";
  var doc=document.register;
  var myOption = -1;
	if(doc.u_fname.value == "")
	{
		str += "Please enter First Name\n";
	}
	else if(!validatespace(doc.u_fname.value))
	{	
		str+=("Please enter First Name\n");
	}
	else if(!isProper(doc.u_fname.value))
	{
		str += "Select word without special characters for First name\n";
	}
	if(doc.u_lname.value == "")
	{
		str += "Please enter Last Name \n";
	}
	else if(!validatespace(doc.u_lname.value))
	{	
		str+=("Please enter Last Name\n");
	}
	else if(!isProper(doc.u_lname.value))
	{
		str += "Select word without special characters for Last name\n";
	}
	 if(doc.u_email.value == "")
	 {
		str += "Please enter Email Address\n";
	 }
		
	 if(doc.u_email.value!="")
	 {
		 if(!checkemail(doc.u_email.value))
			{  
				str+=("Incorrect : Not valid email address\n");
			}
	 }
	if(str != "")
	{
		alert("The following error/s occured :\n ________________________\n"+str);
		return false;
	}

}
function valid_passform()
{
	var str = "";
    var doc=document.changepassform;
	if(doc.oldpass.value == "")
		{
			str += "Please fill your Old Password\n";
		} 
	if(doc.newpass.value == "")
		{
			str += "Please fill New Password\n";
		}
	if(doc.confirmpass.value == "")
		{
			str += "Please fill Confirm Password\n";
		}
	else if(doc.newpass.value!=doc.confirmpass.value)
	{
		str += "Password Mismatch\n";
	}
	if(str != "")
	{
		alert("The following error/s occured :\n ________________________\n"+str);
		return false;
	}
	doc.submit();
}
// to reset the form of registration
function formreset(formname)
{
	var doc=eval("document."+formname);
	/*doc.login_name.value="";
	doc.u_password.value="";
	doc.u_cpassword.value="";
	doc.u_address.value="";
	doc.u_city.value="";
	doc.u_state.value="";
	doc.u_country.value="";
	doc.u_zipcode.value="";
	doc.u_phone.value="";
	*/
	doc.u_fname.value="";
	doc.u_lname.value="";
	doc.u_email.value="";
	return false;
}
// to reset the forget form
function forgetreset(formname)
{
	var doc=eval("document."+formname);
	doc.usr_email.value="";
	return false;
}
// to reset the form of change password
function passformreset(formname)
{
	var doc=eval("document."+formname);
	doc.oldpass.value="";
	doc.newpass.value="";
	doc.confirmpass.value="";
	
}
// to reset the middletellfrndform 
function tellformreset(formname)
{
	var doc=eval("document."+formname);
	doc.To.value="";
	doc.From.value="";
}
// to reset the form of change password
function contactformreset(formname)
{
	var doc=eval("document."+formname);
	doc.uname.value="";
	doc.email.value="";
	doc.country.value="";
	doc.phone.value="";
	doc.fax.value="";
	doc.comments.value="";
	doc.txtvarification.value="";
	return false;
}
// to check maximum words in a string
function checkwords(value)
{
var maxwords=1
	{
	var temp= value.split(" ")
	 if (temp.length>maxwords)
		{
		return false;
	    }
     return true;
	}
}
// to check the entry of special characters in  login name
function isProper(string)
{
   if (!string) return false;
   var iChars = "*|,\":<>[]{}`\';()@&$#%";

   for (var i = 0; i < string.length; i++) 
   {
      
	  if (iChars.indexOf(string.charAt(i)) != -1)
      return false;
   }
    return true;
}
//to check the only spaces entry in textboxes 
function Trim(str)
{
 return str.replace(/^\s*|\s*$/g,"");
}
function validatespace(stext)
{
	if(Trim(stext)=="")
	{
		return false;
	}
	else
	 {
		return true;
	 }
}
// for login form to check the  login name & password entered or not
function validlogin(formname)
{	
	var doc=eval("document."+formname);
	var lname=eval("document."+formname+".txtloginid");
	var pass=eval("document."+formname+".txtpassword");
	if(lname.value=="")
	{
		alert("Please enter Username");
		lname.focus();
		return false;
	}
	if(pass.value=="")
	{
		alert("Please enter Password");
		pass.focus();
		return false;
	}
	doc.submit();
	//return true;
}
// to check the data entry in forget form
function forget_form(formname)
{
	var doc=eval("document."+formname);
	if(doc.usr_email.value=="") 
     {
		  alert("Please Enter  Email address");
		  doc.usr_email.focus(); 
		   return false;
	 }
  else if(doc.usr_email.value!="")
    {
		 v=doc.usr_email.value;
		 if(v!="")
		 {
			if(!checkemail(v))
			{  
				alert("Please enter valid Email address");
				doc.usr_email.focus();
				return false;
			}
		  }
	 }
return true;
}
// function to check the data entry of tell a frnd 
function tellcheck(formname)
{
	var doc=eval("document."+formname);
	var v1=doc.To.value;
	var v2=doc.From.value;
	if(v1=="") 
     {
		  alert("Please enter Email address of your friend");
		  doc.To.focus(); 
		   return false;
	 }
	 if(v2=="") 
     {
		  alert("Please enter your Email address");
		  doc.From.focus(); 
		   return false;
	 }
  else if(v1!="" || v2!="")
    {
		if(v1==v2)
		{
			alert("Email Address in To and From cannot be same");
			doc.To.focus();
			return false;
		}
		 if(v1!="")
		 {
			if(!checkemail(v1))
			{  
				alert("Please enter valid Email address");
				doc.To.focus();
				return false;
			}
		  }
		 
		 if(v2!="")
		 {
			if(!checkemail(v2))
			{  
				alert("Please enter valid Email address");
				doc.From.focus();
				return false;
			}
		  }
	 }
return true;
}
// function to check contact us form
function valid_contact(formname)
{
	var doc=eval("document."+formname);
	var flag1=false;
	str = "";
	if(doc.uname.value == "")
	{
		str += "Please enter Your Name\n";
	}
	if(doc.uname.value != "")
	{
		 if(!validatespace(doc.uname.value))
		{	
			str+=("Only spaces are not allowed in Name\n");
		}
		/*else if(!isProper(doc.uname.value))
		{
			str += "Select word without special characters for Name\n";
		}*/
		
	}
	if(doc.email.value == "")
	{
		str += "Please enter Email address\n";
	}
	else 
	{
		 v=doc.email.value;
		 if(v!="")
		 {
			if(!checkemail(v))
			{  
				str += "Please enter valid Email address\n";
			}
		 }
	 }
	if(doc.phone.value == "")
	{
		str += "Please enter Phone number\n";
	}
	if(doc.phone.value != "")
	{
		 if(!validatespace(doc.phone.value))
		{	
			str+=("Only spaces are not allowed in Phone\n");
		}
	}
	if(doc.country.value != "")
	{
		if(!validatespace(doc.country.value))
		{	
			str+=("Only spaces are not allowed in Country\n");
		}
	}
	if(doc.comments.value != "")
	{
		if(!validatespace(doc.comments.value))
		{	
			str+=("Only spaces are not allowed in Comments\n");
		}
	}
	/*if(doc.fax.value != "")
	{
	  v= doc.fax.value;
	  l= doc.fax.value.length;
	  for(i=0;i<=l-1;i++)
		 {
			 if(v.charAt(i)<"0" || v.charAt(i)>"9")
				{
					if(v.charAt(i) !="-" && v.charAt(i) !=" ")
					{
						var flag1=true;
					}
				} 
		}
		if(flag1)
		{
			str += "-Missing : Please Enter Fax in numeric only\n";
		}
	}*/
	
	if(str != "")
	{
		alert("The following error/s occured :\n ________________________\n"+str);
		return false;
	}
	return true;
}
// to check valid email
function checkemail(email)
{
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=email.match(emailPat);
if (matchArray==null) {
return false;
}
var user=matchArray[1];
var domain=matchArray[2];
for (i=0; i<user.length; i++) {
if (user.charCodeAt(i)>127) {
return false;
   }
}
for (i=0; i<domain.length; i++) {
if (domain.charCodeAt(i)>127) {
return false;
   }
}
if (user.match(userPat)==null) {
return false;
}
var IPArray=domain.match(ipDomainPat);
if (IPArray!=null) {
for (var i=1;i<=4;i++) {
if (IPArray[i]>255) {
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) {
return false;
   }
}
if (checkTLD && domArr[domArr.length-1].length!=2 && 
domArr[domArr.length-1].search(knownDomsPat)==-1) {
return false;
}
if (len<2) {
  return false;
   }
  return true;
}


