function validateForm(form, formParams)
{ 
	for(var fieldName in formParams) {
		var preFilledValue = formParams[fieldName][0];
		var errorMessage = formParams[fieldName][1];
		if(!form || !form[fieldName]) {
			continue;
		}
		var elem = null;
		elem = form[fieldName];
		
		if(form[fieldName].length > 0 &&  form[fieldName][0].type == 'radio') {
			elem = form[fieldName][0];
		}

		if(elem.type=='radio'){
			var radioLength = form[fieldName].length;
			var anyChecked= false;
			for(var i = 0; i < radioLength; i++) {
				var radioElem = form[fieldName][i];
				if(radioElem.checked) {
					anyChecked=true;
					break;
				}
			}
			if(anyChecked==false){
				alert(errorMessage);
				if(elem.type!='hidden')
					elem.focus();
				return false;
			}
			continue;
		}

		if(elem.type=='select' || elem.type=='select-one' || elem.type=='select-multiple'){
			var selectLength = form[fieldName].length;
			var anySelected= false;
			for(var i = 0; i < selectLength; i++) {
				var selectElem = form[fieldName][i];
				if(selectElem.selected ) {
					if(selectElem.value)
						var providedValue = selectElem.value.replace(/^\s+|\s+$/g,"");
					if(providedValue==null || providedValue=="" || providedValue==preFilledValue) {
						continue;
					}
					anySelected=true;
					break;
				}
			}
			if(anySelected==false){
				alert(errorMessage);
				if(elem.type!='hidden')
					elem.focus();
				return false;
			}
			continue;
		}
		var providedValue = null;
		if(elem.value)
			providedValue = elem.value.replace(/^\s+|\s+$/g,""); 
			
		if(providedValue==null || providedValue=="" || providedValue==preFilledValue)
		{
			alert(errorMessage);
			if(elem.type!='hidden')
				elem.focus();
			return false;
		}
		if(fieldName=='email'){
			if(!validate_email(providedValue)){
				alert("Not a valid e-mail address! Try Again");
				elem.focus();
				return false;		
			}			
		}
		if(fieldName=='firstName'){
			if(!isAlpha(providedValue)){
				alert("Your First Name should contain only alphabets!");
				elem.focus();
				return false;		
			}			
		}
		if(fieldName=='lastName'){
			if(!isAlpha(providedValue)){
				alert("Your Last Name should contain only alphabets!");
				elem.focus();
				return false;		
			}			
		}
		if(fieldName=='name'){
			if(!isAlpha(providedValue)){
				alert("Your Name should contain only alphabets!");
				elem.focus();
				return false;		
			}			
		}
		if(fieldName=='phone' || fieldName=='mobile'){
			if(!isNumeric(providedValue) || providedValue.length < 10 || providedValue.length > 14){
				alert("Please provide a valid (10 digit) contact number");
				elem.focus();
				return false;		
			}
		}
			if(fieldName=='address' || fieldName=='address'){
			if(providedValue.length > 250){
				alert("Address should be less than 250 characters");
				elem.focus();
				return false;		
			}
		}
		if(fieldName=='ex_cat_percentile'){
			if(!Percentile(providedValue)){
				alert("Please provide a valid Percentile");
				elem.focus();
				return false;		
			}
		}
		
		if(fieldName=='exam_tofel_ielts'){
		 var score = parseFloat(form.score.value);
			 if (providedValue == 'IELTS') {
		 	if (score > 120 || score < 0) {
		 		alert("Please enter a valid score");
				form.score.focus();
				return false;	
		 	}
		 }
		 if (providedValue == 'TOEFL -IBT') {
		 	if (score < 0 || score > 300) {
		 		alert("Please enter a valid score");
				form.score.focus();
				return false;	
		 	}
		 }
		 if (providedValue == 'TOEFL -CBT') {
		 	if (score < 0 || score > 9) {
		 		alert("Please enter a valid score");
				form.score.focus();
				return false;	
		 	}
		 }
		}		

		if(fieldName=='ex_postal_code'){
			if(!isNumeric(providedValue)){
				alert("Please provide a valid Pincode");
				elem.focus();
				return false;		
			}
		}
		if(fieldName=='score'){
			if(!isFloat(providedValue)){
				alert("Please provide a valid exam score");
				elem.focus();
				return false;		
			}
		}
	}
	var checkElem = form.check1;
	//if(checkElemTemp)
	 //checkElem = checkElemTemp[0];
	if (checkElem && checkElem.checked == false ) {
      alert("Please Agree to the Terms of Use to Continue");
      if(checkElem.type!='hidden')
        checkElem.focus();
      return false;
    }	
	return true;
}

function validate_email(email) {
    if (/^\w+([\.\+-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,7})+$/.test(email)) {
      return true;
    }
      return false;
}

function isNumeric(value) {
  var numericExpression = /^[0-9]+$/;
  if(value.match(numericExpression)) {
    return true;
  }
  return false;
}

function isFloat(value){
  var numericExpression = /^-?\d+(\.\d+)?$/;
  if(value.match(numericExpression)) {
    return true;
  }
  return false;	
}

function isAlpha(value) {
  var alphaExpression = /^[(a-z)|(A-Z)| ]+$/;
  if(value.match(alphaExpression)) {
    return true;
  }
  return false;
}

function fieldSet(obj,str) {
	if(obj.value == str) {
		obj.value = '';
	}
}

function fieldReset(obj,str) {
	if(obj.value == '') {
		obj.value = str;
	}
}
function Percentile(value) {
  var percentileExpression = /^(100(\.0{1,2})?|([0-9]?[0-9](\.[0-9]{1,2})?))$/;
	//var percentileExpression = /^[0-9]+$/;
  if(value.match(percentileExpression)) {
    return true;
  }
  return false;
}

function checkNumberInRange(val,low,high)
{

	if(val < low || val > high){
		
		return false;
	}
	return true;
	
}
