/*
 * @(#)FormValidation.js        30/Jul/2002
 *
 * Copyright (c) Irphan
 *
 * This java script file is used for validating fields
 * @version 1.0 22/Oct/2002
 * @author Irphan Ahmed
 */

var formName = "";
//This method need to be call first before using any of the other methods
function setFormName(Name)
{
	formName=Name;
	//alert(formName);
}	

//This method will return false if the name is not start with a character or if it is empty
function isName(fieldName)
{
	eval("var fieldVal=document."+formName+"."+fieldName+".value");
	if (fieldVal == "")
	{
		alert("Please provide your " + fieldName);
		eval("document."+formName+"."+fieldName+".focus()");
		return false;
	}
	if((fieldVal.substring(0,1)<"a" || fieldVal.substring(0,1)>"z") && (fieldVal.substring(0,1)<"A" || fieldVal.substring(0,1)>"Z"))
	{
		alert("The Name should begin with an alphabetic character.");
		eval("document."+formName+"."+fieldName+".select()");
		return false;
	}
	for (var i = 1; i < fieldVal.length; i++) 
	{
		var ch = fieldVal.substring(i, i + 1);
		if ( ((ch < "a" || "z" < ch) && (ch < "A" || "Z" < ch)) && (ch < "0" || "9" < ch) && (ch != '_') && (ch != ' ') && (ch != "'")) 
		{
			alert("The Name field  accepts letters, numbers and underscore.\n\nPlease re-enter your Name.");
			eval("document."+formName+"."+fieldName+".select()");
			return false;
		}
	}
	return true;
}

function isTextEmpty(fieldName){
    /*
     * This method will return true if the field is empty and return
     * false if it is not empty.
     */
     eval("var fieldVal=document."+formName+"."+fieldName+".value");
     emptyFlag = true;
	if (fieldVal == ''){		
		eval("document."+formName+"."+fieldName+".focus()");						//to check the given
		return true;								//value is empty or not
	}
	else{		
	    for(i=0;i<(fieldVal).length;i++)
	    {
	    	if((fieldVal).charAt(i)!=' ')
	    	{
	    		emptyFlag = false;
	    		break;
	    	}	
	    }	  
	   if(emptyFlag){
	   	eval("document."+formName+"."+fieldName+".select()");
	   	}
	   return emptyFlag;
	}   
}

//Check the field's value is numeric or not
function notNumeric(fieldName)
{
	var ok = true;
	
	eval("var fieldVal=document."+formName+"."+fieldName);	
	if(isTextEmpty(fieldName))
	{
		ok = false;
	}
	else if(isNaN(fieldVal.value))
	{
		fieldVal.select();
		ok = false;
	}
	
		return ok;
}

//To check the email id
function isEmail (emailId)
{
		eval("var fieldVal=document."+formName+"."+emailId+".value");
		var at="@"
		var dot="."
		var lat=fieldVal.indexOf(at)
		var lstr=fieldVal.length
		var ldot=fieldVal.indexOf(dot)
		if (lstr<1)
		{
		   alert("Please provide your E-mail ID");
		   eval("document."+formName+"."+emailId+".focus()");
		   return false;
		}
		if (fieldVal.indexOf(at)==-1)
		{
		   alert("Invalid E-mail ID");
		   eval("document."+formName+"."+emailId+".select()");
		   return false;
		}
		
		if((fieldVal.substring(0,1)<"a" || fieldVal.substring(0,1)>"z") && (fieldVal.substring(0,1)<"A" || fieldVal.substring(0,1)>"Z"))
		{
		   alert("E-mail ID should begin with an alphabetic character.");
		   eval("document."+formName+"."+emailId+".select()");
		   return false;
		}
		
		if (fieldVal.indexOf(at)==-1 || fieldVal.indexOf(at)==0 || fieldVal.indexOf(at)==lstr){
		   alert("Invalid E-mail ID");
		   eval("document."+formName+"."+emailId+".select()");
		   return false;
		}

		if (fieldVal.indexOf(dot)==-1 || fieldVal.indexOf(dot)==0 || fieldVal.indexOf(dot)==lstr){
		   alert("Invalid E-mail ID");
		   eval("document."+formName+"."+emailId+".select()");
		   return false;
		}

		 if (fieldVal.indexOf(at,(lat+1))!=-1){
		    alert("Invalid E-mail ID");
		    eval("document."+formName+"."+emailId+".select()");
		    return false;
		 }

		 if (fieldVal.substring(lat-1,lat)==dot || fieldVal.substring(lat+1,lat+2)==dot){
		    alert("Invalid E-mail ID");
		    eval("document."+formName+"."+emailId+".select()");
		    return false;
		 }

		 if (fieldVal.indexOf(dot,(lat+2))==-1){
		    alert("Invalid E-mail ID");
		    eval("document."+formName+"."+emailId+".select()");
		    return false;
		 }
		
		 if (fieldVal.indexOf(" ")!=-1){ 
		     alert("Invalid E-mail ID");
		     eval("document."+formName+"."+emailId+".select()");
		     return false; 
		 }

 		 return true;					
}

//To check that string has alphanumeric value only
function IsGivenAlphaNumericValid(valid_str,field) 
{
	var validStr = valid_str;
	var ok = true;
	var temp;
	
	eval("var fieldVal=document."+formName+"."+field+".value");
	if(isTextEmpty(field))
	{
		ok = false;
	}
	else
	{
	for (var i=0; i<fieldVal.length; i++) {
	temp = "" + fieldVal.substring(i, i+1);
	if (validStr.indexOf(temp) == "-1") 
	ok = false;
	}
	if (!ok)
	eval("document."+formName+"."+field+".select()");
	}
	return ok;
}

//Returns true for valid phone numbers
function isPhoneNumber(phoneNumber)
{
	var valid = "-0123456789"
	var ok = true;
	eval("var fieldVal=document."+formName+"."+phoneNumber+".value");
	if(isTextEmpty(phoneNumber)==true)
	{
		ok = false;
	}
	else
	{
		var temp;
		for (var i=0; i<(fieldVal).length; i++) 
		{
		temp = "" + (fieldVal).substring(i, i+1);
		if (valid.indexOf(temp) == "-1"){
		ok = false;
		if(!ok)eval("document."+formName+"."+phoneNumber+".select()");}
		}
	}
	
	return ok;
}

//Returns true for valid phone numbers
function isPinCode(pinNumber)
{
	var valid = "-()0123456789"
	var ok = true;
	eval("var fieldVal=document."+formName+"."+pinNumber+".value");
	if(isTextEmpty(pinNumber)==true)
	{
		ok = false;
	}
	else
	{
		var temp;
		for (var i=0; i<(fieldVal).length; i++) 
		{
		temp = "" + (fieldVal).substring(i, i+1);
		if (valid.indexOf(temp) == "-1"){
		ok = false;
		if(!ok)eval("document."+formName+"."+pinNumber+".select()");}
		}
	}
	
	return ok;
}

//Return true if any one of the value from the specified select element is selected.
function isSelectSelected(selectName) 
{	
	checkedFlag = false;
	eval("var fieldVal=document."+formName+"."+selectName);
	for (i=1;i<fieldVal.length;i++) {
	    if(fieldVal[i].selected){
		checkedFlag = true;
	    }		
	}
	if(!checkedFlag)
	eval("fieldVal=document."+formName+"."+selectName+".focus()");
	return checkedFlag;	 
}

//Returns true if the checkbox is selected.
function isOneCheckboxSelectedFromGroup()
{	
	var myType;
	var chkvalue=false;
	
	eval("var fLength=document."+formName+".elements.length");
	for (var i=0, j=fLength; i<j; i++) 
	{
        eval("myType = document."+formName+".elements[i].type");
        
        if (myType == 'checkbox')
           {
           if(eval("document."+formName+".elements[i].checked"))
           chkvalue = true;
    	   }
	}
	return chkvalue;
}

//Returns true if given checkbox is checked
function isCheckboxSelected(chkboxName)
{
	checkedFlag = false;
	eval("var fieldVal=document."+formName+"."+chkboxName);
	
	    if(fieldVal.checked){
			    	
	    	checkedFlag = true;
	    }		
	
	if(!checkedFlag)
	eval("document."+formName+"."+chkboxName+".focus()");
	return checkedFlag;
}

//Returns true if radio is checked from its group.
function isRadioCheckedFromGroup(RadioGroupName)
{
	checkedFlag = false;
	eval("var fieldVal=document."+formName+"."+RadioGroupName);
	for (i=0;i<fieldVal.length;i++) {
	    if(fieldVal[i].checked){
		checkedFlag = true;
	    }		
	}
	return checkedFlag;	 
}

//Returns the checked radio value from its group, if isRadioCheckedFromGroup() returns true.
function checkedRadioVal(RadioGroupName)
{
	eval("var fieldVal=document."+formName+"."+RadioGroupName);
	if(isRadioCheckedFromGroup(RadioGroupName))
		for (i=0;i<fieldVal.length;i++) 
		{
	    		if(fieldVal[i].checked)
			return fieldVal[i].value;
		}
	else
		alert("Please Select one of the radio buttons");
}

//Select the option by default indentified by its selected index of the select name
function setSelectOptionSelected(selectName,selectedIndex)
{
	eval("document."+formName+"."+selectName+".options[selectedIndex].selected=true");
	
}

//Checks the given checkbox
function setCheckboxSelected(selectName)
{
	eval("document."+formName+"."+selectName+".checked=true");

}	

//Checks the required radio button where second parameter is the radio group element index to be checked.
function setRadioSelected(GroupName,indexno)
{
	eval("document."+formName+"."+GroupName+"["+indexno+"].checked=true");
}	

//Sets the text value passed (second parameter) to the specified textfield(First parameter)
function showTextDefault(textName,textString)
{
	eval("document."+formName+"."+textName+".value=textString");
}

//Reset all the fields using form elements array
function resetDefaultValues() 
{
	eval("var what=document."+formName)
	var myType;
	eval("var fLength=document."+formName+".elements.length");
	for (var i=0, j=fLength; i<j; i++) 
	{
	eval("myType = document."+formName+".elements[i].type");
        if (myType == 'checkbox' || myType == 'radio')
            what.elements[i].checked = what.elements[i].defaultChecked;
		if (myType == 'hidden' || myType == 'password' || myType == 'text' || myType == 'textarea')
            what.elements[i].value = what.elements[i].defaultValue;
        if (myType == 'select-one' || myType == 'select-multiple')
            for (var k=0, l=what.elements[i].options.length; k<l; k++)
                what.elements[i].options[k].selected = what.elements[i].options[k].defaultSelected;
    
	}
}

//To enable or disable a button on onload
function enableDisableButton(formName1,buttonName,booleanValue)
{
	if(booleanValue==false)
	{
	eval("var buttonValue = document."+formName1+"."+buttonName);
	buttonValue.disabled=true;
	}
	else
	{
	eval("var buttonValue = document."+formName1+"."+buttonName);
	buttonValue.disabled=false;
	}
}

//To restrict a user to type in a textfield
function textfieldDisable(fieldName)
{
	eval("var fieldValue = document."+formName+"."+fieldName);
	fieldValue.blur();
}

function isName_dtl(fieldName, dtl)
{
	eval("var fieldVal=document."+formName+"."+fieldName+".value");
	if (fieldVal == "")
	{
		alert("Please provide your " + dtl);
		eval("document."+formName+"."+fieldName+".focus()");
		return false;
	}
	if((fieldVal.substring(0,1)<"a" || fieldVal.substring(0,1)>"z") && (fieldVal.substring(0,1)<"A" || fieldVal.substring(0,1)>"Z"))
	{
		alert("The Name should begin with an alphabetic character.");
		eval("document."+formName+"."+fieldName+".select()");
		return false;
	}
	for (var i = 1; i < fieldVal.length; i++) 
	{
		var ch = fieldVal.substring(i, i + 1);
		if ( ((ch < "a" || "z" < ch) && (ch < "A" || "Z" < ch)) && (ch < "0" || "9" < ch) && (ch != '_') && (ch != ' ') && (ch != "'")) 
		{
			alert("The Name field  accepts letters, numbers and underscore.\n\nPlease re-enter your Name.");
			eval("document."+formName+"."+fieldName+".select()");
			return false;
		}
	}
	return true;
}
function isvalidate(fieldName)
{
	eval("var fieldVal=document."+formName+"."+fieldName+".value");
	if (fieldVal == "")
	{
		alert("Please provide your " + fieldName);
		eval("document."+formName+"."+fieldName+".focus()");
		return false;
	}
	return true;
}


