
/*pankaj/vishal*

Following are the keywords for validation

validateblank:-for checking of blanlk, tag should not be left blank

validatemail:-Checking for mail

validatedate:-Validation for date



HOW TO USE



pass parameter to function chkForm()

parameter should 

first parameter should be name of form eg 'myform'

second should be tag for which you wnat to do validation eg 'myinput'

third parameter is type of validaation u want to done eg "validatemail"

fourth is message test you want to show if error found

FOR DOING VALIDATION ON MORE THAT ONE THAG

same as about after finishing for first tag start same for second tag by puting comma and continu

same way more than one validation can be dont on same input tag

example 

<form name="myform" action="" method="post" onsubmit="chkForm('myform','myname','validatedate','Please Enter Correct Date','myname','validateblank','Please Enter Some Value')">



//CHIRAG//

*/



//functin for validating date

var dtCh= "/";

var minYear=1900;

var maxYear=2100;



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 strMonth=dtStr.substring(0,pos1)

	var strDay=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")

		return false

	}

	if (strMonth.length<1 || month<1 || month>12){

		alert("Please enter a valid month")

		return false

	}

	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){

		alert("Please enter a valid day")

		return false

	}

	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){

		alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)

		return false

	}

	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){

		alert("Please enter a valid date")

		return false

	}

return true

}



//end of date validation



function chkForm (frm) {

 //alert(chkForm.arguments.length);
 for (var i=1; i<chkForm.arguments.length; i++){

  fld=chkForm.arguments[i];
  //alert(fld);
    i++;

  type=chkForm.arguments[i];
	//alert(type);
    i++;
 
   txt=chkForm.arguments[i];
//   alert(txt);
 //alert(i);

    switch (type) {

     case 'validateblank' : 

	{       

			if(document.forms[frm].elements[fld].value == ""){

			alert(txt);

			document.forms[frm].elements[fld].focus();

			return false;

			}

	 }

     break;

	

//-------------------------------
     
	 case 'validcheckbox' : 

	{       

			if(document.forms[frm].eYouth.checked == false && document.forms[frm].eWomen.checked == false && document.forms[frm].eSenior.checked == false){

			alert(txt);

			document.forms[frm].eYouth.focus();

			return false;

			}

	 }

     break;


//-------------------------------







//password scripts starts here



   case 'validatepass' : 

	 {

			var splitme=fld.split("_");

			var fld1=splitme[0];

			var fld2=splitme[1];

			var pass1=document.forms[frm].elements[fld1].value

			var pass2=document.forms[frm].elements[fld2].value

			if(pass2==null || pass2==null)

			{

				alert("To Verify Password Pass Both Fileds Name Concatenated with '_'");

				return false;

			}

			if(pass2!=pass1)

			{

			alert(txt);

			return false;

			}

			

	 }

	 break;





//password scripts ends here	 

     case 'validateemail' : 

	 {



		if((document.forms[frm].elements[fld].value.indexOf("@")==-1) || (document.forms[frm].elements[fld].value.indexOf(".")==-1) || (document.forms[frm].elements[fld].value.length<=5) ){

			alert(txt);

			document.forms[frm].elements[fld].focus();

			return false;

			}



	 }

	 break;

//Zip validation function starts here

     case 'validatezip' : 

	 {

       if ((document.forms[frm].elements[fld].value.length<1) || (document.forms[frm].elements[fld].value.length!=5)) {

			alert(txt);

			document.forms[frm].elements[fld].focus();

			return false;

			}			



	 }

	 break;



//password validation function starts here

     case 'validatedate' : 

	 {

	 if (isDate(document.forms[frm].elements[fld].value)==false){

	 	alert(txt);

		document.forms[frm].elements[fld].focus();

		return false;

		}

//password validation function ends here

	 

	 }

	 break;

	 

// symbols validations like <>/?*&//	 

	 case 'validatesymbol' :

	 {

	 chk1 = "!@#$%^*()-+=|\~`{}[]:<>?/,";

	 chk3="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ";

	

	for(j=0;j!=document.forms[frm].elements[fld].value.length;j++)

	 {

	ch1= document.forms[frm].elements[fld].value.charAt(j);

	ch2= document.forms[frm].elements[fld].value.charAt(j);

	rtn1=chk1.indexOf(ch1);

	rtn3=chk3.indexOf(ch2);

		if(rtn3 < 0)

			{

				alert(txt);

				document.forms[frm].elements[fld].focus();

				return false;

				break;

		 	}

			else if(rtn1!=-1)

			{

				alert(txt);

				document.forms[frm].elements[fld].focus();

				return false;

				break;	

			}

		}

	 } 

	  break;




     case 'validurl' : 

	 {

	if(document.forms[frm].elements[fld].value.length>1)
	{
		if (document.forms[frm].elements[fld].value == "" || document.forms[frm].elements[fld].value.indexOf ('www', 0) == -1 || document.forms[frm].elements[fld].value.length < 10) 
		{
		if (document.forms[frm].elements[fld].value == "" || document.forms[frm].elements[fld].value.indexOf ('.', 0) == -1 || document.forms[frm].elements[fld].value.length < 10) 
		{
			alert (txt);

document.forms[frm].elements[fld].focus();
			return false;
		}
		}
	}
	 }

	 break;




     case 'validselect' : 

	 {
if(document.forms[frm].elements[fld].options[document.forms[frm].elements[fld].selectedIndex].value=="0")
	{
			alert (txt);
//		alert("Please Select Customer");
		document.forms[frm].elements[fld].focus();
		return false;
	}
	 }

	 break;





	 
	 case 'validtime' : 

	 {

	if(document.forms[frm].elements[fld].value.length>1)
	{
		if(document.forms[frm].elements[fld].value>59)
		{ 
		
			alert (txt);

document.forms[frm].elements[fld].focus();
			return false;
		}
		
	}
	else
	{
	  document.forms[frm].elements[fld].value='00';
	  document.forms[frm].elements[fld].focus();
	  
	}
	
	 }
	 break;



	 case 'validatenumber':

	 {

	 chk1="!@#$%^*()-+=|\~`{}[]: <>?/,abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";

	 chk3="0123456789";
	for(k=0;k!=document.forms[frm].elements[fld].value.length;k++)

	{

	ch1= document.forms[frm].elements[fld].value.charAt(k);

	ch2= document.forms[frm].elements[fld].value.charAt(0);

	rtn1=chk1.indexOf(ch1);

	rtn3=chk3.indexOf(ch2);

		if(rtn3 < 0)

		{

			alert(txt);

			document.forms[frm].elements[fld].focus();

			return false;

			break;

	 	}

		else if(rtn1!=-1)

		{

			alert(txt);

			document.forms[frm].elements[fld].focus();

			return false;

			break;	

		}

	  }
 }

break;	

	 default:

	 return false;



}



}

}
///////////////////following script for checking mail validation for chathostmail//////////
function checkmail(frm)
{ 
/*var fld = new Array(checkmail.arguments.length);
for (var i=0; i<checkmail.arguments.length; i++)
{
//alert(checkmail.arguments[i]);
 fld[i] = checkmail.arguments[i];
}
var frmname = fld[0];
var radio = fld[1];
var text = fld[2];
var subj= fld[3];
var mess = fld[4];
*/
	if (document.frmsendmail.usermail[1].checked)
	{   
		  if(document.frmsendmail.to.value.length<1)
		  {
		  alert("Enter the email address");
		  document.frmsendmail.to.focus();
		  return false;
		  }
		  else if((document.frmsendmail.to.value.indexOf("@")==-1) || (document.frmsendmail.to.value.indexOf(".")==-1) || (document.frmsendmail.to.value.length<=5) )
			{
			alert("Enter valid email address");
			document.frmsendmail.to.focus();
	     	return false;
			}
			else if(document.frmsendmail.subject.value.length<1)
			   {
			 alert("Please Enter Subject");
			 document.frmsendmail.subject.focus();
		     return false;
			 }
			 else if(document.frmsendmail.message.value.length<1)
			 {
			 alert("Please Enter Message");
			 document.frmsendmail.message.focus();
		     return false;
			 }
	}
	else if	((document.frmsendmail.usermail[0].checked))
	{ 
	 if(document.frmsendmail.subject.value.length<1)
	   {
	 alert("Please Enter Subject");
	 document.frmsendmail.subject.focus();
     return false;
	 }
	 else if(document.frmsendmail.message.value.length<1)
	 {
	 alert("Please Enter Message");
	 document.frmsendmail.message.focus();
     return false;
	 }
	} 
	//return false;
}




