function ChooseColor(msg)
{
	if (msg=="Err")
	{
		return "lightyellow";
	}
	if (msg=="Read"	)
	{
		return "#cccccc";
	}
	return "#ffffff";
}
var spl = new Array('@',',','.','+','-','*','/','#','$','%','^','&','!','~','(',')','[',']','{','}','_','?','>','<');

var len = spl.length;

//var charlen =alpha.length;
var check = new Array();

function checkValidity(formname,check,elemNames,elemLength,type) 
{

var flag = true;
var index;
var fno = formname;
		if(check == 'all') {
		condition = elemLength; 	
		} else {
		condition = check.length;
		}

		for(var i=0; i < condition; i++)	{
			if(check == 'all') {
				index = i;
			} else {
				index=check[i];
			}

			if(type == 'EMPTY')	{
			
 				 var st = document[formname].elements[index].value;
				 if(!checkEmpty(st))  
				 {
				       alert('Cannot Leave '+elemNames[i]+' Blank');
					// document[formname].elements[index].value = '';
					 document[formname].elements[index].style.backgroundColor=ChooseColor("Err");
					 document[formname].elements[index].focus();
					 
					 flag = 'false';
				       return flag;
					 break;
				 }
				 else
				 {
				 document[formname].elements[index].style.backgroundColor=ChooseColor("");
				 }
			} else if(type == 'ISNAN')	{			
				counter = 0;
 				 var st = document[formname].elements[index].value;
				 if(isNaN(st))  {
				       alert('Please give valid numbers for '+elemNames[i]);
					 //document[formname].elements[index].value = '';
					 document[formname].elements[index].focus();
					 flag = 'false';
				       return flag;
					 break;
				 }
				 if(parseInt(st) < 0)  {
				       alert('Please give valid numbers for '+elemNames[i]);
					 //document[formname].elements[index].value = '';
					 document[formname].elements[index].focus();
					 flag = 'false';
				       return flag;
					 break;
				 }
				for(k=0;k<document[formname].elements[index].value.length;k++) {
					val1=document[formname].elements[index].value.charAt(k);
					if(val1 == ' ')	{
						alert('Please enter a valid numeral for '+elemNames[i]);
						//document[formname].elements[index].value = '';
						document[formname].elements[index].focus();
						flag = 'false';
						return flag;
						break;
					}
				}
			} 
			else if(type == 'NUMBER')	{			
				fval = document[formname].elements[index].value;
			        for(var j=0;j<=9;j++) {
		                if(fval.indexOf(j) >= 0) {
			                  alert('Please enter only alphabets for the '+elemNames[i]);
		                        //document[formname].elements[index].value = '';
		                        document[formname].elements[index].focus();
			                  flag = 'false';        
						return flag;
                  			break;
			            }
			        }
			}else if(type == 'ALPHA'){
			    for(k=0;k<document[formname].elements[index].value.length;k++) {
					val1=document[formname].elements[index].value.charAt(k);
					if((val1 >= 'a' && val1 <= 'z') || (val1 >= 'A' && val1 <= 'Z')){
						alert('Please enter only numbers for '+elemNames[i]);
					//	document[formname].elements[index].value = '';
						document[formname].elements[index].focus();
						flag = 'false';
						return flag;
						break;
					}
				}
			}
			else if(type == 'EMAIL') {			
				var email,atemail,atoccurance,splitter;
				email1 = document[formname].elements[index].value ;
				if (document[formname].elements[index].value != '') {
				    atemail=email1.indexOf("@");
			          if (atemail==-1) {
			                alert("Invalid Email Address.Email should have '@' symbol");
			         //       document[formname].elements[index].value = '';
			                document[formname].elements[index].focus();
					    flag = 'false';
					    return flag;	
			                break ;
		                } else {
		                atoccurence=email1.indexOf("@");
            		    dotcheck=email1.indexOf(".",atoccurence);
                            	if (dotcheck==-1) {
		                        alert("Invalid Email Address.Email should have '.' symbol");
		                      //  document[formname].elements[index].value = '';
            		            document[formname].elements[index].focus();
		                        flag = 'false';
					      return flag;	
      	            		break ;
	                        }
      	                splitter=email1.substring(atoccurence+1,2);
	                         if (splitter=='.') {
	                              alert("Invalid Email Address");
	                          //      document[formname].elements[index].value = '';
                                	document[formname].elements[index].focus();
                                	flag = 'false';
			              	return flag;	
                                	break ;
                               }
                               if (atemail == (dotcheck-1))
                               {
                               	alert("Invalid Email Address.Email should have some characters between @ and . symbols");
                               	//	document[formname].elements[index].value = '';
                                	document[formname].elements[index].focus();
                                	flag = 'false';
				        	return flag;	
            		    	  	break ;
                        	 }
					if(dotcheck == document[formname].elements[index].value.length -1) {
						alert("Invalid Email Address.Email should contain some characters after the dot symbol");
															//		document[formname].elements[index].value = '';
                                	document[formname].elements[index].focus();
                                	flag = 'false';
				        	return flag;	
            		    	  	break ;
					}
	                      }      
            		}
			}
			else if(type == 'SELECT') {	
			if(document[formname].elements[index].selectedIndex==0) 
				{
				alert("Please select a valid option for "+elemNames[i]);
				document[formname].elements[index].focus();
				document[formname].elements[index].style.backgroundColor=ChooseColor("Err");
                       	flag = 'false';
		        	return flag;
				break;
				}
				else
				{
					document[formname].elements[index].style.backgroundColor=ChooseColor("");
				}
			}
			else if(type == 'DSELECT') {	
			if(document[formname].elements[index].selectedIndex!=0) 
				{
				alert("Please do not select a valid option for "+elemNames[i]);
				document[formname].elements[index].focus();
                       	flag = 'false';
		        	return flag;
				break;
				}
			}
			else
			{
			document[formname].elements[index].style.backgroundColor=ChooseColor("");
			}
		}	// for loop ends
}  	// fn 'checkValidity' ends
        function isDt(dd, mm, yy)
        {
                var d = parseInt(dd.value);
                var m = parseInt(mm.value);
                var y = parseInt(yy.value);

                if (!checkIsNaN(d)){
                        alert("invalid day");
                        dd.focus();
                        return false;
      	          }
                if (!checkIsNaN(m)){
                        alert("invalid month");
                        mm.focus();
                        return false;
                }
                if (!checkIsNaN(y)){
                        alert("invalid year");
                        return false;
                }

                if (checkDate(d,m,y,dd,mm,yy)){
//                      alert("valid date");
                        return true;
                }
                return false;
        }

        function checkIsNaN(obj)
        {
                if (obj == "" || isNaN(obj))
                        return false;
                return true;
        }

	// -- fn. to check for empty string --

	  function checkEmpty(str) {
		  var charFound = "false";
		  for(var i=0;i<str.length;i++)  {
		        var a = str.substr(i,1);
		        if(a == " ") charFound = "false";
		        else   {
            		    charFound = "true";
		                break;
		        }
		  }
		  if(charFound == "false") return false;
		  else   return true;
	  }
	  
	  
	 // Removes leading whitespaces
function LTrim( value ) {
	
	var re = /\s*((\S+\s*)*)/;
	return value.replace(re, "$1");
	
}

// Removes ending whitespaces
function RTrim( value ) {
	
	var re = /((\s*\S+)*)\s*/;
	return value.replace(re, "$1");
	
}

// Removes leading and ending whitespaces
function trim( value ) {
	
	return LTrim(RTrim(value));
	
}
 
//FUNCTION TO CHECK CREDITCARDNO VALID
function validCardNumber(vcardnumber,vcardtype)
{
		
	isValid = true;
	isValid = isNumber(vcardnumber);
	
	if (isValid == false)
	{
		return 1
	}		

	if (isValid == true)
	{
		if (vcardtype == "Amex")
		{
			isValid = isAmExvalid(vcardnumber)
		}

		if (vcardtype == "Visa")
		{
			isValid = isVisavalid(vcardnumber)
		}

		if (vcardtype == "Master")
		{
			isValid = isMastCardvalid(vcardnumber)
		}
		
		if (vcardtype == "Discover")
		{
			isValid =isDisCardvalid(vcardnumber)
		}
		
		if (vcardtype == "DinersClub")
		{
			isValid =isDinerCardvalid(vcardnumber)
		}
	}
	if (isValid == false){
		return 2  
		}

	return 0;	
}

function isAmExvalid(vcardnumber)
{
	var isProper;
	isProper = true;
	if (vcardnumber.length < 15 || vcardnumber.length > 16){
			isProper = false;
		}

	if (isProper == true){
			if ((vcardnumber.substring(0,2)== "34" || vcardnumber.substring(0,2) == "37")){
					isProper = true;
				}
			else
				isProper=false;
		}
	return isProper;
}

function isVisavalid(vcardnumber)
{
	var isProper;
	isProper = true;

	if (vcardnumber.length == 16 || vcardnumber.length == 13){
			isProper = true;
		}
	else{
		isProper = false;
	}
	if (isProper == true)
		{
			if ((vcardnumber.substring(0,1) != 4)){
					isProper = false;
				}
		}
	return isProper;
}


function isMastCardvalid(vcardnumber)
{
	var isProper;
	isProper = true;

	if (vcardnumber.length != 16)
		{
			isProper = false;
		}

	if (isProper == true)
		{
		var sfirst2=vcardnumber.substring(0,2)
			if ((sfirst2 !== "51" || sfirst2 !=="52" || sfirst2 !=="53" || sfirst2 !=="54" || sfirst2 !=="55")){
					isProper = true;
				}
			else{
			isProper = true;
			}
		}
	return isProper;
}

function isDisCardvalid(vcardnumber)
{
	var isProper;
	isProper = true;

	if (vcardnumber.length != 16)
		{
			isProper = false;
		}

	if (isProper == true)
		{
			if ((vcardnumber.substring(0,1) != "6"))
				{
					isProper = false;
				}
		}
	return isProper;
}

function isDinerCardvalid(vcardnumber)
{
	var isProper;
	isProper = true;

	if (vcardnumber.length != 14)
		{
			isProper = false;
		}

	if (isProper == true)
		{
		var sfirst2=vcardnumber.substring(0,2);
			if (( sfirst2 !="30" || sfirst2 !="36" || sfirst2 !="38")){
					isProper = true;
				}
			else
			isProper = false;
		}
	return isProper;
}

function isValidCreditCard(anumber) {
	var total = 0;
	var flag = 0;
	for (var i=(anumber.length - 1);i>=0; i--) {
		if (flag == 1) {
			var digits = anumber.charAt(i) * 2;
			if (digits > 9) digits -= 9;
			total += digits;
			flag = 0;
		} else {
			total = total + parseInt(anumber.charAt(i));
			flag = 1;
		}
	}

	if ((total%10) == 0) 
		{
			return true;
		}
	 else
		{
			return false;
		}
}
//TO VALIDATE FOR NUMBER
function isNumber(inStr) 
{
	inLen = inStr.length
	for (var i=0; i<inLen; i++) 
		{
			var ch = inStr.substring(i, i+1)
			if (ch < "0" || "9" < ch) 
			{
		          	return false;
				break;
			}
		}
		return true;
}
//
function isNumber1(inChr) 
{
	if (inChr < "0" || "9" < inChr) 
			{
		       	return 0;
			}
	
		
}	