//<!-- This script and many more are available free online at -->
//<!-- The JavaScript Source!! http://javascript.internet.com -->
//<!-- Original:  Torsten Frey (tf@tfrey.de) -->
//<!-- Web Site:  http://www.tfrey.de -->

//<!-- Begin
//The dateValue format should be YYYYMMDD or YYMMDD
function  check_date(dateValue, errorMessage){
	var checkstr = "0123456789";
	var Datevalue = "";
	var DateTemp = "";
	var seperator = ".";
	var day;
	var month;
	var year;
	var leap = 0;
	var err = 0;
	var i;
	   err = 0;
	   /* Delete all chars except 0..9 */
	   for (i = 0; i < dateValue.length; i++) {
		  if (checkstr.indexOf(dateValue.substr(i,1)) >= 0) {
		     DateTemp = DateTemp + dateValue.substr(i,1);
		  }
	   }
	   dateValue = DateTemp;
	   /* Always change date to 8 digits (YYYYMMDD)- string*/
	   /* if year is entered as 2-digit, always assume 20xx */
	   if (dateValue.length == 6) {
	      dateValue = '20' + dateValue.substr(0,2)+dateValue.substr(2,4)
	   }
	   else if (dateValue.length != 8) {
	      err = 19;}
	   /* year is wrong if year = 0000 */
	   year = dateValue.substr(0,4);
	   if (year == 0) {
	      err = 20;
	   }
	   /* Validation of month*/
	   month = dateValue.substr(4,2);
	   if ((month < 1) || (month > 12)) {
	      err = 21;
	   }
	   /* Validation of day*/
	   day = dateValue.substr(6,2);
	   if (day < 1) {
	     err = 22;
	   }
	   /* Validation leap-year / february / day */
	   if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) {
	      leap = 1;
	   }
	   if ((month == 2) && (leap == 1) && (day > 29)) {
	      err = 23;
	   } else
	   if ((month == 2) && (leap != 1) && (day > 28)) {
	      err = 24;
	   } else
	   /* Validation of other months */
	   if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) {
	      err = 25;
	   } else
	   if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) {
	      err = 26;
	   } else
	   /* if 00 ist entered, no error, deleting the entry */
	   if ((day == 0) && (month == 0) && (year == 00)) {
	      err = 0; day = ""; month = ""; year = ""; seperator = "";
	   }
	   	  
	   /* if no error, write the completed date to Input-Field (e.g. 13.12.2001) */
	   if (err == 0) {
	      return true;
	   }
	   /* Error-message if err != 0 */
	   else {
	      alert(errorMessage);
		  return false;
	   }
	  
	}
	//  End -->
	
	/* Funcion que cuenta los días entre fechas, las fechas deben tener el formato YYYYMMDD
	*/
	function count_days(pFecIni,pFecFin)
	{
		var dayIni=pFecIni.substr(6,2);
		var monthIni=pFecIni.substr(4,2)-1;
		var yearIni=pFecIni.substr(0,4);
		var dayFin=pFecFin.substr(6,2);
		var monthFin=pFecFin.substr(4,2)-1;
		var yearFin=pFecFin.substr(0,4);
	
		var wFecIni = new Date(yearIni,monthIni,dayIni);
		var wFecFin = new Date(yearFin,monthFin,dayFin)
		var msPorDia = 24 * 60 * 60 * 1000 ;
		var dias = Math.ceil(( wFecFin.getTime() - wFecIni.getTime() ) / msPorDia);
		return dias;
		
	}
	function  check_dateNoPasado(dateValue, errorMessage,errorMessage2){
	var checkstr = "0123456789";
	var Datevalue = "";
	var DateTemp = "";
	var seperator = ".";
	var day;
	var month;
	var year;
	var leap = 0;
	var err = 0;
	var i;
	   err = 0;
	   /* Delete all chars except 0..9 */
	   for (i = 0; i < dateValue.length; i++) {
		  if (checkstr.indexOf(dateValue.substr(i,1)) >= 0) {
		     DateTemp = DateTemp + dateValue.substr(i,1);
		  }
	   }
	   dateValue = DateTemp;
	   /* Always change date to 8 digits (YYYYMMDD)- string*/
	   /* if year is entered as 2-digit, always assume 20xx */
	   if (dateValue.length == 6) {
	      dateValue = '20' + dateValue.substr(0,2)+dateValue.substr(2,4)
	   }
	   else if (dateValue.length != 8) {
	      err = 19;}
	   /* year is wrong if year = 0000 */
	   year = dateValue.substr(0,4);
	   if (year == 0) {
	      err = 20;
	   }
	   /* Validation of month*/
	   month = dateValue.substr(4,2);
	   if ((month < 1) || (month > 12)) {
	      err = 21;
	   }
	   /* Validation of day*/
	   day = dateValue.substr(6,2);
	   if (day < 1) {
	     err = 22;
	   }
	   /* Validation leap-year / february / day */
	   if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) {
	      leap = 1;
	   }
	   if ((month == 2) && (leap == 1) && (day > 29)) {
	      err = 23;
	   } else
	   if ((month == 2) && (leap != 1) && (day > 28)) {
	      err = 24;
	   } else
	   /* Validation of other months */
	   if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) {
	      err = 25;
	   } else
	   if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) {
	      err = 26;
	   } else
	   /* if 00 ist entered, no error, deleting the entry */
	   if ((day == 0) && (month == 0) && (year == 00)) {
	      err = 0; day = ""; month = ""; year = ""; seperator = "";
	   }
	   	miFecha2=new Date();
	   	miFecha2=new Date(miFecha2.getYear(),miFecha2.getMonth(),miFecha2.getDate())
	   	 miFecha = new Date(year, month -1,day);
   		miFecha=new Date(miFecha.getYear(),miFecha.getMonth(),miFecha.getDate())
   		
   		
   		
		 	if(miFecha<miFecha2)
		 	{
		 		err=2;
		 	
		 	}
	  
	   /* if no error, write the completed date to Input-Field (e.g. 13.12.2001) */
	   if (err == 0) {
	      return true;
	   }
	   else if(err==2)
	   {
	   	  alert(errorMessage);
	   	   return false;
	   
	   }
	   /* Error-message if err != 0 */
	   else {
		  alert(errorMessage2);
	      return false;
	   }
	  
	}
	//  End -->
	