/**
 * validate.js - form validate routines
 * Copyright (c) 2001 Visu Cybertech Ltd.
 * 
 *
 * v1.0 - hepsiba - 08162001
 * v1.1 - hepsiba - 08/31/2001 - added new method called resetForm ().
 * v1.2 - Rajni - 09/29/2003 - added new method called getRadioValue().
 */

var jcErrEmailNotEntered = "Please enter the email address.";
var jcErrBlankSpaceInEmailAddr = "Sorry, blank spaces is not allowed in the email address.";
var jcErrAtSignMissingInEmailAddr = "Sorry, the email address is invalid. Please make sure that the '@' sign is present.";
var jcErrInvalidEmailAddr = "Sorry, the email address is invalid. Please verify it.";
var jcErrInvalidCharInEmailAddr = "Sorry, the email address contains invalid characters. Please verify it.";
var jcErrInvalidDate = "Date cannot be greater than current Date.";

var jcInvalidEmailChars = "\"|&;<>!*\\";



function validateEmailField (formName, emailValue, emailField) {

//	var emailValue;
//		emailValue = document.forms[formName].elements[emailField].value;

	if (emailValue.length == 0) {
		alert (jcErrEmailNotEntered);
		setFocusTo (formName, emailField);
		return false;
	}

	if (!validateAsciiData (emailValue)) {
		alert (jcErrInvalidCharInEmailAddr);
		setFocusTo (formName, emailField);
		return false;
	}

	var invalidChars = jcInvalidEmailChars;
	// alert (invalidChars);
	for (var i = 0; i < invalidChars.length; i++) {
		if (emailValue.indexOf (invalidChars.charAt(i)) != -1) {
			alert (jcErrInvalidCharInEmailAddr);
			setFocusTo (formName, emailField);
			return false;
		}
	}

	if (emailValue.indexOf ("@") == -1) {
		alert (jcErrAtSignMissingInEmailAddr);
		setFocusTo (formName, emailField);
		return false;
	}

	if (emailValue.indexOf (" ") != -1) {
		alert (jcErrBlankSpaceInEmailAddr);
		setFocusTo (formName, emailField);
		return false;
	}
	
	if (window.RegExp) {
		var reg1str = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)";
		var reg2str = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$";

		var reg1 = new RegExp (reg1str);
		var reg2 = new RegExp (reg2str);

		if (reg1.test (emailValue) || !reg2.test (emailValue)) {
			alert (jcErrInvalidEmailAddr);
			setFocusTo (formName, emailField);
			return false;
		}
	}
	
	return true;
}

function validateTextField (formName, fieldName, msg) {

	var fieldValue;
	fieldValue = document.forms[formName].elements[fieldName].value;
	
	if (fieldValue.length == 0) {
		alert (msg);
		setFocusTo (formName, fieldName);
		return false;
	}

	if(fieldValue.charAt(0) == " ")	{
		alert (msg);
		document.forms[formName].elements[fieldName].value='';
		setFocusTo (formName, fieldName);
		return false;
	}
	
	return true;
}

function validateAsciiData (testStr) {
	for (var i = 0; i < testStr.length; i++) {
		if ((testStr.charAt(i) < " ") || (testStr.charAt (i) > "~")) {
			return false;
		}
	}
	return true;
}

function validateLoginData (testStr) {
	for (var i = 0; i < testStr.length; i++) {
		if (((testStr.charAt (i) >= "a") && (testStr.charAt (i) <= "z")) ||
		    ((testStr.charAt (i) >= "A") && (testStr.charAt (i) <= "Z")) ||
			((testStr.charAt (i) >= "0") && (testStr.charAt (i) <= "9")) ||
			 (testStr.charAt (i) == "-") || (testStr.charAt (i) == "_")
		) {
		} else {
			return false;
		}
	}
	return true;
}

function setFocusTo (formName, fieldName) {
	document.forms[formName].elements[fieldName].focus ();
}
var jcErrPwdDoesNotMatchConf = "Sorry, password and password confirmation do not match.";
var jcErrInvalidCharInPwd = "Sorry, the password may contain only letter and numbers.";
var jcErrPwdTooShort = "Sorry, the password must have least 5 characters.";
var jcErrPwdConfTooShort = "Sorry, the password confirmation must have least 5 characters.";

function validatePasswordField (formName, fieldName, conf) {
	
	var fieldValue;
	fieldValue = document.forms[formName].elements[fieldName].value;

	if (fieldValue.length < 3) {
		if (conf) {
			alert (jcErrPwdConfTooShort);
		} else {
			alert (jcErrPwdTooShort);
		}
		setFocusTo (formName, fieldName);
		return false;
	} else if (!validateAsciiData (fieldValue)) {
		if (conf) {
			alert (jcErrInvalidCharInPwdConf);
		} else {
			alert (jcErrInvalidCharInPwd);
		}
		setFocusTo (formName, fieldName);
		return false;
	}
	return true;
}

// submits a form
function submitForm (formName) {
    document.forms[formName].submit ();
}

// assigns a value to a form element
function assignFormValue (formName, element, value) {
    document.forms[formName].elements[element].value = value;
}

// resets a form
 function resetForm (formName) {
  document.forms[formName].reset ();
 }


function validateEmailValue (formName, emailValue) {


	if (emailValue.length == 0) {
		alert (jcErrEmailNotEntered);
		//setFocusTo (formName, emailField);
		return false;
	}

	if (!validateAsciiData (emailValue)) {
		alert (jcErrInvalidCharInEmailAddr);
		//setFocusTo (formName, emailField);
		return false;
	}

	var invalidChars = jcInvalidEmailChars;
	// alert (invalidChars);
	for (var i = 0; i < invalidChars.length; i++) {
		if (emailValue.indexOf (invalidChars.charAt(i)) != -1) {
			alert (jcErrInvalidCharInEmailAddr);
			//setFocusTo (formName, emailField);
			return false;
		}
	}

	if (emailValue.indexOf ("@") == -1) {
		alert (jcErrAtSignMissingInEmailAddr);
		//setFocusTo (formName, emailField);
		return false;
	}

	if (emailValue.indexOf (" ") != -1) {
		alert (jcErrBlankSpaceInEmailAddr);
		//setFocusTo (formName, emailField);
		return false;
	}
	
	if (window.RegExp) {
		var reg1str = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)";
		var reg2str = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$";

		var reg1 = new RegExp (reg1str);
		var reg2 = new RegExp (reg2str);

		if (reg1.test (emailValue) || !reg2.test (emailValue)) {
			alert (jcErrInvalidEmailAddr);
			//setFocusTo (formName, emailField);
			return false;
		}
	}

	return true;
}


//text scrolling code
topedge = 130;  // location of news box from top of page
leftedge = 10;  // location of news box from left edge
boxheight = 100;  // height of news box
boxwidth = 640;  // width of news box
scrollheight = 240; // total height of all data to be scrolled


function scrollnews(cliptop) {
alert('in scroll new function');
	if (document.layers) {
		newsDiv = document.news;
		newsDiv.clip.top = cliptop;
		newsDiv.clip.bottom = cliptop + boxheight;
		newsDiv.clip.left = 0;
		newsDiv.clip.right = boxwidth + leftedge;
		newsDiv.left = leftedge;
		newsDiv.top = topedge - cliptop;
	}
	else {
		newsDiv = news.style;
		newsDiv.clip = "rect(" + cliptop + "px " + (boxwidth + leftedge) + "px " + (cliptop + boxheight) + "px 0px)";
		newsDiv.pixelLeft = leftedge;
		newsDiv.pixelTop = topedge - cliptop;
	}

	cliptop = (cliptop + 1) % (scrollheight + boxheight);
	newsDiv.visibility='visible';
	setTimeout("scrollnews(" + cliptop + ")", 100);
} // end of method.

function deleteCheckboxes (formName) {

     var flag = "false";
     
     for(var i = 0 ; i < document.forms[formName].length ; i++) {
         var e = document.forms[formName].elements[i];
	
	   if (e.type == "checkbox") {
       	      if (e.checked) {
                flag = "true";
                break;
              }
           }
       
     }

     if (flag.match("true")) { 
        if(confirm ('Please confirm that the checkboxes checked are correct.')) {
     return true;
        } else {
	     return false;
        }
     } else {
        alert ('Please select atleast one checkbox.');
        return false;
     }
}

function printThis () {
	window.print ();
}

function validNumbers(formName,fieldName,msg){
	var fieldValue;
	fieldValue = document.forms[formName].elements[fieldName].value;
	
	var str = fieldValue;
	var len;
	if(str==""){
		len=0;
		alert(msg);
		setFocusTo (formName,fieldName);
		return false; 
	}else if(str.length<4)	{
		alert("Enter the four Digits");
		setFocusTo (formName,fieldName);
		return false; 
	}else {
		len = str.length;
		for(var i=0;i<len;i++) {
			if(! (str.charAt(i)>='0' && str.charAt(i)<='9')) {
				alert("Characters Should Not be Entered Only Numbers.");
				fieldName.value="";
				setFocusTo (formName,fieldName);
				return false;
			}// if closes
  		}//for closes
	}//end else
return true;
}

function CheckOnlyNum(formName, fieldName,msg)
{
	if (isNaN(document.forms[formName].elements[fieldName].value)) // are valid numbers
	{
		alert(msg);
		setFocusTo (formName,fieldName);
		return false;
	}
      
	return true;                  
  }
function ValidateCombo(formName,fieldName,msg)	{
	var selectValue = document.forms[formName].elements[fieldName].value;
	if(selectValue =='SELECT')	{
		alert(msg);
		setFocusTo(formName,fieldName);
		return false;
	}
	return true;
  }
function ValidateCombo1(formName,fieldName,msg)	{
	var selectValue = document.forms[formName].elements[fieldName].value;
	if(selectValue =='SEL')	{
		alert(msg);
		setFocusTo(formName,fieldName);
		return false;
	}
	return true;
  }
function CheckRange(formName, fieldName, fieldName1)
{
	var fieldValueFrom;
	var fielfValueTo;
	fieldValueFrom = document.forms[formName].elements[fieldName].value;
	fielfValueTo = document.forms[formName].elements[fieldName1].value;

	if (fieldValueFrom > fielfValueTo) // are valid numbers
	{
		alert("To Range is lesser then From Range.");
		setFocusTo (formName,fieldName1);

		return false;
	}
      
	return true;                  
  }

function getRadioValue(formName,radioButton,msg)	{

var manmeet;
for (var i=0; i < document.forms[formName].elements[radioButton].length; i++)   {
   if (document.forms[formName].elements[radioButton][i].checked)
      {
      var rad_val = document.forms[formName].elements[radioButton][i].value;
	  manmeet='R';
	  break;
      }else	{
		manmeet ='S';
	  }
	
   }
if(manmeet == 'S')	{
	alert(msg);
	  return false;
}
return true;
}
function goToNextPage(URL)	{
	var	rk = confirm('This facility is available only for the students, who register 15th September 2003 onwards.');
	if(rk){
		location = URL;
	}else	{
		return false;
	}
	return true;
}

function ValidRegistration(formName, fieldName, fieldName1, fieldName2)
{
	var fieldValueDay;
	var fielfValueMonth;
	var fieldValueYear;
	fieldValueDay = document.forms[formName].elements[fieldName].value;
	fieldValueMonth = document.forms[formName].elements[fieldName1].value;
	fieldValueYear = document.forms[formName].elements[fieldName2].value;

	if ((((fieldValueDay<15)&&(fieldValueMonth<=9)&&(fieldValueYear<=2003)) ||((fieldValueDay>15)&&(fieldValueMonth<9)&&(fieldValueYear<=2003)) || ((fieldValueDay<15)&&(fieldValueMonth<=9)&&(fieldValueYear<=2003))) || (((fieldValueDay>5)&&(fieldValueMonth>=11)&&(fieldValueYear<=2003)) ||((fieldValueDay<5)&&(fieldValueMonth>11)&&(fieldValueYear<=2003)) || ((fieldValueDay>5)&&(fieldValueMonth>=11)&&(fieldValueYear<=2003)))) 
	{
		alert("This facility is available only for the students registered between Sepetember 15 2003 and November 5 2003. Please Select Other Option.");
		return false;
	}

	return true;                  
  }


function ValidRegistrationRegNo(formName, fieldName, fieldName1, fieldName2)
{
	var fieldValueDay;
	var fielfValueMonth;
	var fieldValueYear;
	fieldValueDay = document.forms[formName].elements[fieldName].value;
	fieldValueMonth = document.forms[formName].elements[fieldName1].value;
	fieldValueYear = document.forms[formName].elements[fieldName2].value;

	if (((fieldValueDay<5)&&(fieldValueMonth<=11)&&(fieldValueYear<=2003)) ||((fieldValueDay>5)&&(fieldValueMonth<11)&&(fieldValueYear<=2003)) || ((fieldValueDay<5)&&(fieldValueMonth<=11)&&(fieldValueYear<=2003))) 
	{
		alert("This facility is not applicable for the students registered before November 5 2003. Please select Other Option.");
		return false;
	}

	return true;                  
  }
  
function ValidateDate(formName, fieldName, fieldName1, fieldName2,fieldName3,msg)
{
	var selectedMonth;
	var selectedYear;
	var defaultMonth;
	var defaultYear;

	selectedMonth= document.forms[formName].elements[fieldName].value;
	selectedYear = document.forms[formName].elements[fieldName1].value;
	defaultMonth= fieldName3;
	defaultYear = fieldName2;
	if ((selectedYear==defaultYear)&&(selectedMonth>defaultMonth))
	{
		alert(msg);
		setFocusTo(formName,fieldName1);
		return false;
	}

	return true;                  
  }
 function ValidateDate123(formName, fieldName, fieldName1, fieldName2, fieldName3,msg)
{
	var selectedMonth;
	var selectedYear;
	var defaultMonth;
	var defaultYear;
	selectedYear = document.forms[formName].elements[fieldName1].value;
	selectedMonth = document.forms[formName].elements[fieldName].value;
	defaultMonth = fieldName3;
	defaultYear = fieldName2;

	//alert("selected Month : "+selectedMonth+ " :::: defaule Month : "+defaultMonth);
	if ((selectedYear==defaultYear)&&(selectedMonth>defaultMonth))
	{
		alert(msg);
		setFocusTo(formName,fieldName1);
		return false;
	}
	return true;                  
  }
  

function checkFee(formName, fieldName, fieldName1,msg)
{
	var fieldValueDay;
	var fieldValueMonth;
	fieldValueDay = document.forms[formName].elements[fieldName].value;
	fieldValueMonth = document.forms[formName].elements[fieldName1].value;

	if(fieldValueDay!=fieldValueMonth)	
	{
		alert(msg);
		document.forms[formName].elements[fieldName1].value=fieldValueDay;
		setFocusTo(formName,fieldName1);
		return false;
	}

	return true;                  
  }

  
function checkOtherTextField(formName,fieldName,msg)	{
	var fieldValue;
	if(document.forms[formName].elements[fieldName].disabled==false)	{
		fieldValue = document.forms[formName].elements[fieldName].value;
		if (fieldValue.length == 0) {
			alert (msg);
			setFocusTo (formName, fieldName);
			return false;
		}
	}
	return true;
}


function checkVisaRegistrationFee(formName, fieldName, msg)
{
	var packageAmount;
	packageAmount = document.forms[formName].elements[fieldName].value;

	if(packageAmount>=20000)	
	{
		alert(msg);
		setFocusTo(formName,fieldName);
		return false;
	}

	return true;                  
  }

	function checkCoachingIndiaFee(formName,fieldName1,fieldName2,msg)
	{
		var totalFee;
		var regFee;
		totalFee = document.forms[formName].elements[fieldName1].value;
		regFee = document.forms[formName].elements[fieldName2].value;

		if(parseInt(regFee)>parseInt(totalFee))	
		{
			alert(msg);
			setFocusTo(formName,fieldName2);
			return false;
		}

		return true;                  
	}

	function checkCoachingIndiaDiscount(formName,fieldName1,fieldName2,fieldName3,msg)
	{
		var totalFee;
		var regFee;
		var discount;
		var total;

		totalFee = document.forms[formName].elements[fieldName1].value;
		regFee = document.forms[formName].elements[fieldName2].value;
		discount = document.forms[formName].elements[fieldName3].value;
		total =  parseInt(regFee) +  parseInt(discount)
		if(total > totalFee)	
		{
			alert(msg);
			setFocusTo(formName,fieldName3);
			return false;
		}

		return true;                  
	}

function checkCourse(formName,fieldName1,fieldName2,fieldName3,fieldName4,fieldName5,fieldName6,msg)
{
	var flag = "false";
     
	var fieldName1 = document.forms[formName].elements[fieldName1];
	var fieldName2 = document.forms[formName].elements[fieldName2];
	var fieldName3 = document.forms[formName].elements[fieldName3];
	var fieldName4 = document.forms[formName].elements[fieldName4];
	var fieldName5 = document.forms[formName].elements[fieldName5];
	var fieldName6 = document.forms[formName].elements[fieldName6];
	
	if (fieldName1.checked || fieldName2.checked || fieldName3.checked || fieldName4.checked || fieldName5.checked || fieldName6.checked) 
	{
		flag = "true";
	}

	if (flag.match("true")) 
	{ 
		return true;
	} else {
        alert (msg);
        return false;
	}
}

function validateCheckboxes (formName,fieldName) {
	var flag = "false";

     var fieldName = document.forms[formName].elements[fieldName];
     if (fieldName.checked) { 
		flag = "true";
	 }
	 if (flag.match("true"))
	 {
		 return true;
	 }else{
        alert ('Please select First Set checkbox.');
	    return false;
     } 

}

function disabledFieldsValidation (formName, fieldName, msg) {
	var disabledField;
    disabledField = document.forms[formName].elements[fieldName].disabled;
	if (disabledField == false) {       
		alert (msg);
        setFocusTo (formName, fieldName);
        return false;
	}
	return true;
}


// validate date

function validateRegistrationDateField (formName, fieldName1, fieldName2, fieldName3, fieldName4, fieldName5) {
	var date = new Date();
	var month = date.getMonth();
	month = month + 1;
	var day = date.getDate();
	var todayDate = day +"/"+ month;
	var enteredDate = fieldName1 +"/"+ fieldName2;

	//alert("todayDate : "+todayDate);
	//alert("enteredDate : "+enteredDate);
	//alert("year : "+parseInt(date.getYear()/100)*100);

	if (parseInt(fieldName2) > parseInt(month) )
	{
		alert(jcErrInvalidDate);
		setFocusTo(formName, fieldName5)
		return false;
	}

 return true;
}  