//CHECK EMPTY
function isEmpty(sFldValue){

	if (sFldValue == "")	
		return false;
		
	return true;
	
}

//CHECK DROPDOWNLIST
function checkDropdown(choice) {
    //var error = "";
    if (choice == '--Select--') {
       return false;
    }    
return true;
}    



//CHECK REPEATS
function isRepeatOK(sFldValue, sOtherFld){

	//check empty
	if (!isEmpty(sFldValue))
		return false;

	//check empty of repeat fld
	if (!isEmpty(sOtherFld))
		return false;
	
	//compare two for equality
	//alert (sFldValue + sOtherFld);
	if (sFldValue != sOtherFld)
		return false;


	return true;

}

//CHECK EMAIL
function isEmail(sFldValue){

	if (sFldValue == "")	
		return false;
		
	if (checkEmail(sFldValue) == false)
		return false;

	return true;

}

function checkEmail(emailAddr){

		var email=emailAddr;

		if((email.indexOf('@')>0)== false){
			alert("Please specify a valid  E-mail ID!");
			return false;
		}
		if((email.indexOf('.')>0)== false){
			alert("Please specify a valid  E-mail ID!");
			return false;
		}

		if (email == ""){
			alert("Email address is mandatory.\nPlease specify the same.");
			return false;
		}
}


//checks whether any one option is selected in a radio button group
function IsRadioChecked(sElement, iRadioCount){

	var bFoundChecked = false;
	var i=0;

	while ((i<iRadioCount) && (!bFoundChecked)){

		if (sElement[i].checked == true){
			bFoundChecked = true;
			break;
		}
		i++;
	}
	return bFoundChecked;

}

//CHECK INTEGER
function isInteger(iFldValue){

	//check empty
	if (!isEmpty(iFldValue))
		return false;
	
	//integer check
	if (isNaN(iFldValue))
		return false;

	return true;

}


//CHECK ZERO
function isZero(iFldValue){

	//check empty
	if (!isEmpty(iFldValue))
		return false;
	
	//integer check
	if (isNaN(iFldValue))
		return false;

	//zero check
	if (iFldValue == 0)
		return false;

	return true;

}

//checks whether the element requires a validation or not.
function isRequired(formInputObj)
{ 
	return ( (formInputObj.required) && (formInputObj.required != "false") ); 
}


function ValidateForm(FormName)
{
	var x = 0
	var FormOk = true

	//loop thru all form elements
	while ((x < document.forms[FormName].elements.length) && (FormOk))
	   {
	     
	     //get the name of element and check for validity checks required
	     sElement = document.forms[FormName].elements[x];


		 //-------------------------------------------
		 // VALIDATION TYPE 	- VALIDATOR FUNCTION
		 //-------------------------------------------
		 //		EMPTY 		- isEmpty
		 //		INTEGER 	- isInteger
		 //		DATE		- isDate
		 //		EMAIL		- isEmail
		 //		RADIO		- isRadioChecked
		 //		
	     sValidationType = document.forms[FormName].elements[x].checkfor;
//		alert (sValidationType);


	     sElementName = document.forms[FormName].elements[x].name;
	     sElementValue = document.forms[FormName].elements[x].value;


	     //check for required parameter
	     var sRetValue = isRequired(sElement);
	     switch (sValidationType){
			
			case "EMPTY":
				//do the empty check
				//alert (document.forms[FormName].elements[x].type);
				FormOk = isEmpty(sElementValue);
				if (!FormOk)
					alert (document.forms[FormName].elements[x].msg); //show the error msg
					document.forms[FormName].elements[x].focus();
					
				break;
			case "DDLVALIDATE":
			     FormOK = checkDropdown(sElementValue);
			     if(!FormOk)
			        alert (document.forms[FormName].elements[x].msg); //show the error msg
					document.forms[FormName].elements[x].focus();
				 break;                 
				
			case "INTEGER":
				//do the integer check
				//FormOk = isInteger(sElementValue);

				//do the zero value check
				if (FormOk)
					FormOk = isZero(sElementValue);

				if (!FormOk)
					alert (document.forms[FormName].elements[x].msg); //show the error msg
					document.forms[FormName].elements[x].focus();
				
				break;
				
			case "DATE":
				//do the date check
				break;
				
			case "EMAIL":
				//do the email check
				FormOk = isEmail(sElementValue);
				if (!FormOk)
					alert (document.forms[FormName].elements[x].msg); //show the error msg
					document.forms[FormName].elements[x].focus();
					
				break;
				
			case "RADIO":
				//do the radiobutton check
				FormOk = IsRadioChecked(document.forms[FormName].elements, 3);
				if (!FormOk)
					alert (document.forms[FormName].elements[x].msg); //show the error msg
					//document.forms[FormName].elements[x].focus();
				
				break;

			case "REPEAT":
				var sRepeatFldValue, sRepeatFldName;
				sRepeatFldName = document.forms[FormName].elements[x].repeatFld;
				sRepeatFldValue = document.forms[FormName].RE_PASSWORD.value;

				//check two flds for the same value or not
				FormOk = isRepeatOK(sElementValue, sRepeatFldValue);
				if (!FormOk)
					alert (document.forms[FormName].elements[x].msg); //show the error msg
					document.forms[FormName].elements[x].focus();

				break;

            
			case "REPEAT_EMAIL":
				var sRepeatFldValue, sRepeatFldName;
				sRepeatFldName = document.forms[FormName].elements[x].repeatFld;
				sRepeatFldValue = document.forms[FormName].RE_BUSINESS_EMAIL.value;


				var FormOk1 = true;
				var FormOk2 = true;

				//check two flds for the same value or not
				FormOk1 = isRepeatOK(sElementValue, sRepeatFldValue);

				//do the email check
				FormOk2 = isEmail(sElementValue);

				//alert (FormOk1 + " - " + FormOk2);

				//kick if both are not fine!
				if (!FormOk1 || !FormOk2){
					FormOk = false;
					alert (document.forms[FormName].elements[x].msg); //show the error msg
					document.forms[FormName].elements[x].focus();
				}

				break;
		
			default:
				//do nothing!
				break;
	     
	     }
	     
	     //alert (sRetValue);
	     x ++;
	   }

	return FormOk
}
