
/* 
            *
            *   File Type  :  VALIDATION SCRIPTS 
            *   Author     :  Robin Jacob
            *   Company    :  Dream Soft
            *
*/


// VALIDATE BLANK FIELD
function validateBlank(ctl,msg){
	var msg1=msg;
	if(trimBothLR(ctl.value)=="")
	{
		 alert("Please enter a valid \"" + msg +"\"");
		 ctl.focus();
		 return false
	}
	else
		 return true
}

// VALIDATE EMAIL ID
function validateEmail(l_EmailId){
	if (trimBothLR(l_EmailId) == "-" || (trimBothLR(l_EmailId) == "") ){
		 return false;	
	}
	else{
		 var index, dotIndex, sKana, kanaIndex;
		 index = l_EmailId.indexOf("@");
		 if (index < 0 || index == 0)
					return false;
		 if (index < l_EmailId.indexOf("@", index+1))
					return false;
		 dotIndex = l_EmailId.indexOf(".", index);
		 if (dotIndex < 0)
					return false ;
		 if ((index + 1) == dotIndex)
					return false ;
		 if ((l_EmailId.lastIndexOf(".")+1) == l_EmailId.length)
					return false ;
		 if (l_EmailId.indexOf("..", index) > 0)
					return false ;
		 if (l_EmailId.indexOf(" ") > 0)
					return false ;
	}
	return true ;
}

// VALIDATE DATE
function validateDate(dob){
	if(dob.value.search(/\d{2}\-\d{2}\-\d{4}/)==-1){
		 alert("Please enter the date in \"mm-dd-yyyy\" format");
		 return false;
	}else{
			  var today;
			  
			  today=new Date()

 var todaysDate = today.getDate();
 
 var todaysMonth = today.getMonth();
 
 var todaysYear = today.getYear();

			  var todayDateWithTime = new Date( (todaysMonth+1) + "-" + todaysDate + "-" + todaysYear + " 00:00:00");
			  
			  var usrdateval=dob.value.split("-")   
			  usr_mon=usrdateval[0];
			  usr_dt=usrdateval[1];
			  usr_year=usrdateval[2];
			  usrdatefinal=usr_mon+"-"+usr_dt+"-"+usr_year
			  
			  usrdate=new Date(usrdatefinal);
			  //alert("usr_year : " + usr_year + "\t" + " todaysYear : " + todaysYear)
			 if ( usr_year > todaysYear )
 {
return true;    
 }
 else
			  {
	 if ( usr_year == todaysYear )
	 {
	if ( usr_mon == (todaysMonth+1) )
	{
		if ( usr_dt <= todaysDate )
		{
			alert("Date : Announcement date should be greater than current date")
			return false;
		}                    	
	}
	else if ( usr_mon < (todaysMonth+1) )
	{
		alert("Month : Announcement date should be greater than current date");
		return false;
	}
	 }
	 else
	 {
	alert("Year : Announcement date should be greater than current date");
	return false;
	 }                   
			  }
			  
			  
			  var usrdatetimestamp=usrdate.getTime()
			  curtimestamp=today.getTime();

			  if(usr_mon>12 || usr_dt>31 || usr_mon==0 || usr_dt==0){
					alert("Please enter a valid Month!");
					return false;
			  }
			  if(usr_year==0 || usr_year<1000){
					alert("Please enter a valid Year!");
					return false;
			  }
			  if(usr_mon==4 || usr_mon==6 || usr_mon==9 || usr_mon==11){
					if(usr_dt>30){
						 alert("Please enter a Valid Date ");
						 return false;
					}
			  }
			  if(usr_mon==2){
					if(usr_dt>29){
						 alert("Please enter a Valid Date ");
						 return false;
					}
					if(usr_year%400!=0 || usr_year%4!=0){
						 if(usr_dt>28){
							  alert("Please enter a Valid Date ");
							  return false;
						 }
					}
			  }
	  }
	  return true;
 }

// VALIDATE CHAR SET
 function validateCharSet(txtVal,msg,chrSet){ 
	  var strError;  
	  var charpos = txtVal.value.search("[^"+chrSet+"]");
	  if(txtVal.value.length > 0 &&  charpos >= 0){ 
			alert(msg+" : Only these character allowed ("+chrSet+") \n [Error character position " + eval(charpos+1)+"]");  
			return false; 
	  }else{
			return true; 
	  }
  }

// VALIDATE LESS THAN
 function validateLessThan(txtVal,msg,compVal){
	if(isNaN(txtVal.value)){ 
	  //alert(msg+": Should be a number "); 
	  alert("Please enter a valid number "); 
	  return false; 
	}
	if(eval(txtVal.value) >=  eval(compVal)){ 
		 alert(msg + " : value should be less than "+ compVal); 
		 return false; 
	}else{
		 return true; 
	}           
}

// VALIDATE GREATER THAN
 function validateGreaterThan(txtVal,msg,compVal){
	if(isNaN(txtVal.value)){ 
	  //alert(msg+": Should be a number "); 
	  alert("Please enter a valid number "); 
	  return false; 
	}
	if(eval(txtVal.value) <=  eval(compVal)){ 
		 alert(msg + " : value should be greater than "+ compVal); 
		 return false; 
	}else{
		 return true; 
	}           
}

// CHECK PASSWORD AND CONFIRM PASSWORD
function checkPassAndConf(input,cinput,chkValue,control,compulsory){
	var Cont_Value = input;
	var Cont_Name =control;
	var Cont_Validate=compulsory;
	var cnfPassword=cinput;

	if((chkValue ==1) &&( cnfPassword == '****')){
	  lblStatus.innerText= "Only alphabets, integers and special characters ( , . ' - @ # / \ _  + )  are allowed in  Password Please re-enter correct data.";
	  lblStatus.style.color = msgColor;
	  return false;
	}
	else if((chkValue ==0 )&&( cnfPassword == '****') ){
		return true;
	}
	else if ((Cont_Value=="") && (Cont_Validate=="Y")){
			  lblStatus.innerText = Cont_Name + " is left blank. You have to fill-in this field.";
			  lblStatus.style.color = msgColor;
			  return false
	}
	else if ((cnfPassword=="") && (Cont_Validate=="Y")){
			  lblStatus.innerText = Cont_Name + " is left blank. You have to fill-in this field.";
			  lblStatus.style.color = msgColor;
			  return false
	}
	else if (Cont_Value != cnfPassword){
			  lblStatus.innerText = "Password and Confirm Password Must be Same";
			  lblStatus.style.color = msgColor;
			  return false
	}
	else
			  return true
}

// CROPING BOTH SIDES WHITESPACE OF THE TEXT 
function trimBothLR(txtVal){
  return trim(txtVal);
}

function trim(stringToTrim) {
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}

