// Date formate create by pas 29-04-2004

function setOrd(str){
	       if(parseInt(str)<10){
               str="0"+str;
		   }
		   return str;
	 }
   
      function checkDatLimit(str,symb){
	    var tmp;
		var tmp2;
	       if(parseInt(str)>31){
		          tmp=str.substring(0,1);
  		          tmp2=str.substring(1,2);
				  str=setOrd(tmp)+symb+setOrd(tmp2);
		   }else if(parseInt(str)==0){
		            	str=""; 
		   }else{
				    str+=symb;
		   }
		   return str;
	  }
	  
      function checkDatLimit2(str,symb){
	       if((parseInt(str)>31)||(parseInt(str)==0)){
				         str="";
		   }
		   return str;
	  }

      function checkMonthLimit2(str,symb){
	    var tmp;
		var tmp2;
	       if(parseInt(str)>12){
		          tmp=str.substring(0,1);
  		          tmp2=str.substring(1,2);
				  str=setOrd(tmp)+symb+setOrd(tmp2);
		   }else if(parseInt(str)==0){
		            	str=""; 
		   }else{
				    str+=symb;
		   }
		   return str;
	  }


      function checkMonthLimit(str,symb){
	    var tmp;
		var tmp2;
	       if(parseInt(str)>12){
		          tmp=str.substring(0,1);
  		          tmp2=str.substring(1,2);
				  str=setOrd(tmp)+symb+setOrd(tmp2);
		   }else if(parseInt(str)==0){
		            	str=""; 
		   }else{
				    str+=symb;
		   }
		   return str;
	  }

   function setdis(){
		if ( ((window.event.keyCode != 45) && (window.event.keyCode < 48)) || (window.event.keyCode > 57))  
 			window.event.returnValue = false;
   }
/*   function setdis(){
		if ( (window.event.keyCode < 48) || (window.event.keyCode > 57))  
 			window.event.returnValue = false;
   }*/
   
   function checkTypeDate(){
         if(document.cscform.__dateformat.value.indexOf("/")>-1){
		        return "/";
		 }else{
		      return "-";
		 }
   }

   function checkFormatDate(){
        if(document.cscform.__dateformat.value.charAt(0)=="D"){//ddmmyyyy
		      return 0;
		}else if(document.cscform.__dateformat.value.charAt(0)=="Y"){//yyyymmdd
		     return 1;
		}else{
		     return 2; //mmddyyyy
		}
   }
   
	function typeDate(obj){
		/*var tmpemp;
		var tmpdate;
		var symb= checkTypeDate();
		/*  checkFormatDate() 		
		       0 =ddmmyyyy
			   1=yyyymmdd			   
		 *//*
		 if(obj.value.length>=6){
		       if(obj.value.indexOf(symb)==-1){
			           	if(checkFormatDate()==0){
			           		 tmpdate=obj.value.substring(0,2);
							 tmpdate+=symb+obj.value.substring(3,5);
							 tmpdate+=symb+obj.value.substring(6,obj.value.length);							 
						}else{
			           		 tmpdate=obj.value.substring(0,4);
							 tmpdate+=symb+obj.value.substring(5,7);
							 tmpdate+=symb+obj.value.substring(8,obj.value.length);							 
						}
				      obj.value=tmpdate;	   
			   }
		 }
		 
		if(checkFormatDate()==0){
						if(obj.value.length==2){
							obj.value=checkDatLimit(obj.value,symb);
						}
						 if(obj.value.length==5){
							   tmpemp=obj.value.split(symb);
							   obj.value=checkDatLimit(tmpemp[0],symb)+checkMonthLimit(tmpemp[1],symb);
						}
						 if(obj.value.length>6){
							   tmpemp=obj.value.split(symb);
							   obj.value=checkDatLimit(tmpemp[0],symb)+checkMonthLimit(tmpemp[1],symb)+tmpemp[2];
						}
			}else if(checkFormatDate()==1){
						if(obj.value.length==4){
							obj.value+=symb;
						}
						 if(obj.value.length==7){
							   tmpemp=obj.value.split(symb);
							   obj.value=tmpemp[0]+symb+checkMonthLimit(tmpemp[1],symb);
						}
						 if(obj.value.length>7){
							   tmpemp=obj.value.split(symb);
							   obj.value=tmpemp[0]+symb+checkMonthLimit2(tmpemp[1],symb)+checkDatLimit2(tmpemp[2],symb);
						}
	      }		*/
	}

function isValidDate(dateStr) {
// Date validation function courtesty of 
// Checks for the following valid date formats:



        var dateFormate = checkFormatDate();
		var datePat ;
		var matchArray;
		if(dateFormate==0){
		   datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2,4})$/; // DD/MM/YYYY  DD-MM-YYYY  requires 4 digit year
		}else if(dateFormate==1){
		  datePat =/^(\d{2,4})(\/|-)(\d{1,2})\2(\d{1,2})$/ ; // YYYY/MM/DD   YYYY-MM-DD  requires 4 digit year
		}else{
		    datePat =/^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2,4})$/ ; // MM/DD/YYYY   MM/DD/YYYY  requires 4 digit year
		}
		
		matchArray = dateStr.match(datePat); // is the format ok?
		//alert(matchArray[0]);alert(matchArray[1]);alert(matchArray[2]);alert(matchArray[3]);alert(matchArray[4]);
		if (matchArray == null) {
		alert(dateStr + " Date is not in a valid format ( "+document.cscform.__dateformat.value+" ).");
		return false;
		}

		var month  // parse date into variables
		var day;
		var year ;

		if(dateFormate==0){
	   		 month = matchArray[3]; // parse date into variables
			 day = matchArray[1];
			 year = matchArray[4];
		}else if(dateFormate==1){
	   		 month = matchArray[3]; // parse date into variables
			 day = matchArray[4];
			 year = matchArray[1];
		}else{
	   		 month = matchArray[1]; // parse date into variables
			 day = matchArray[3];
			 year = matchArray[4];		
		}
		
		//alert("day       : "+day);
		//alert("month   : "+month);
		//alert("year      : "+year);


		if (month < 1 || month > 12) { // check month range
		alert("Month must be between 1 and 12.");
		return false;
		}
		if (day < 1 || day > 31) {
		alert("Day must be between 1 and 31.");
		return false;
		}
		if ((month==4 || month==6 || month==9 || month==11) && day==31) {
		alert("Month "+month+" doesn't have 31 days!")
		return false;
		}
		if (month == 2) { // check for february 29th
		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
		if (day>29 || (day==29 && !isleap)) {
		alert("February " + year + " doesn't have " + day + " days!");
		return false;
		   }
		}
		return true;
}

function isValidTime(timeStr) {
// Time validation function courtesty of 
// Sandeep V. Tamhankar (stamhankar@hotmail.com) -->

// Checks if time is in HH.MM format.
// The seconds and AM/PM are optional.

var timePat = /^(\d{1,2}).(\d{1,2})$/;

var matchArray = timeStr.match(timePat);
if (matchArray == null) {
alert("Time is not in a valid format.");
return false;
}
var hour = matchArray[1];
var minute = matchArray[2];


if (hour < 0  || hour > 23) {
alert("Hour must be between 1 and 12. (or 0 and 23 for military time)");
return false;
}

if (minute < 0 || minute > 59) {
alert ("Minute must be between 0 and 59.");
return false;
}
return true;
}

function dateDiff(dateform) {
var date1 = new Date();
var date2 = new Date();
var diff  = new Date();

if (isValidDate(dateform.firstdate.value) && isValidTime(dateform.firsttime.value)) { // Validates first date 
date1temp = new Date(dateform.firstdate.value + " " + dateform.firsttime.value);
date1.setTime(date1temp.getTime());
}
else return false; // otherwise exits

if (isValidDate(dateform.seconddate.value) && isValidTime(dateform.secondtime.value)) { // Validates second date 
date2temp = new Date(dateform.seconddate.value + " " + dateform.secondtime.value);
date2.setTime(date2temp.getTime());
}
else return false; // otherwise exits

// sets difference date to difference of first date and second date

diff.setTime(Math.abs(date1.getTime() - date2.getTime()));

timediff = diff.getTime();

weeks = Math.floor(timediff / (1000 * 60 * 60 * 24 * 7));
timediff -= weeks * (1000 * 60 * 60 * 24 * 7);

days = Math.floor(timediff / (1000 * 60 * 60 * 24)); 
timediff -= days * (1000 * 60 * 60 * 24);

hours = Math.floor(timediff / (1000 * 60 * 60)); 
timediff -= hours * (1000 * 60 * 60);

mins = Math.floor(timediff / (1000 * 60)); 
timediff -= mins * (1000 * 60);

secs = Math.floor(timediff / 1000); 
timediff -= secs * 1000;

dateform.difference.value = weeks + " weeks, " + days + " days, " + hours + " hours, " + mins + " minutes, and " + secs + " seconds";

return false; // form should never submit, returns false
}

function timeDifference(firsttime,secondtime){

if( isValidTime(firsttime)&&( isValidTime(secondtime))){
			var timePat = /^(\d{1,}).(\d{1,})$/;

			var matchArray1=firsttime.match(timePat);
			var matchArray2=secondtime.match(timePat);

			var hour1 = matchArray1[1];
			var minute1 = matchArray1[2];

			var hour2 = matchArray2[1];
			var minute2 = matchArray2[2];
			if(parseFloat(hour1)>parseFloat(hour2)){
				alert("Data not match !!! ");
				return false;
			}else if(parseFloat(hour1)==parseFloat(hour2)){
			         if(parseFloat(minute1)>=parseFloat(minute2)){
						alert("Data not match !!! ");
								return false;
					 }
			}
   }
   return true;
}

function gettimeDiff(fttime){
if( isValidTime(fttime)){
			var timePat = /^(\d{1,}).(\d{1,})$/;
			var matchArray1=fttime.match(timePat);

			var hour1 = parseFloat(matchArray1[1])*60;
			var minute1 = parseFloat(matchArray1[2])+hour1;
           

            return minute1; 
   }
}

function gettimeDiffReturn(firsttime){
			var totalHour;

			var hour1 = (parseInt(firsttime)/60)+"";
           
			if((hour1.indexOf(".")>-1)){
			      totalHour=hour1.substring(0,hour1.indexOf("."));

			}else totalHour=hour1;
            return totalHour; 
}

function gettimeDiff2(ftime,sdtime){

if( isValidTime(ftime)&&( isValidTime(sdtime))){

			var tPat = /^(\d{1,}).(\d{1,})$/;
            var  totalHou=0;
			var totalMinute=0;
			var totalHM;
			var mArray1=ftime.match(tPat);
			var mArray2=sdtime.match(tPat);
			
			var hr1 = parseFloat(mArray1[1])*60;
			var min1 = parseFloat(mArray1[2])+hr1;

			var hr2 = parseFloat(mArray2[1])*60;
			var min2 = parseFloat(mArray2[2])+hr2;
            
			if(min1>min2){
			    min1=(24*60)-min1;
			    totalMinute=min2+min1;
			}else   totalMinute=min2-min1;

			totalHour=(totalMinute/60)+"";
			
			if(totalHour.indexOf(".")>-1){
					totalHour=totalHour.substring(0,totalHour.indexOf("."));
					totalHour+="."+(totalMinute%60);	
					totalHM=totalHour;					
			}else 	totalHM=totalHour+".00";					

            return totalHM; 
   }
}

function gettimeDiff4(firsttime,secondtime,thirdtime,fourtime){
if( (isValidTime(firsttime))&&( isValidTime(secondtime))&&( isValidTime(thirdtime))&&( isValidTime(fourtime))){
		var timePat = /^(\d{1,}).(\d{1,})$/;
            var  totalHour;
			var totalMinute;
			var totalHM;
			var matchArray1=firsttime.match(timePat);
			var matchArray2=secondtime.match(timePat);
			var matchArray3=thirdtime.match(timePat);
			var matchArray4=fourtime.match(timePat);

			var hour1 = parseFloat(matchArray1[1])*60;
			var minute1 = parseFloat(matchArray1[2])+hour1;

			var hour2 = parseFloat(matchArray2[1])*60;
			var minute2 = parseFloat(matchArray2[2])+hour2;
	
			var hour3 = parseFloat(matchArray3[1])*60;
			var minute3 = parseFloat(matchArray3[2])+hour3;

			var hour4 = parseFloat(matchArray4[1])*60;
			var minute4 = parseFloat(matchArray4[2])+hour4;
            
			
			totalMinute=minute2-minute1;
			totalMinute+=minute4-minute3;
			totalHour=(totalMinute/60)+"";
			if(totalHour.indexOf(".")>-1){
					totalHour=totalHour.substring(0,totalHour.indexOf("."));
					totalHour+="."+(totalMinute%60);	
					totalHM=totalHour;					
			}else 	totalHM=totalHour+".00";					

            return totalHM; 
   }
}

function dateDifference(firstdate,seconddate) {
//alert(firstdate +", "+ seconddate);
var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/; // requires 4 digit year

var mArray1 = firstdate.match(datePat); // is the format ok?
var mArray2 = seconddate.match(datePat); // is the format ok?

var month1 = mArray1[3]; // parse date into variables
var day1 = mArray1[1];
var year1 = mArray1[4];

var month2 = mArray2[3]; // parse date into variables
var day2 = mArray2[1];
var year2 = mArray2[4];


	if(parseInt(year1)>parseInt(year2)){
			alert("Data not match !!! ");			
			return false;
	}else if(parseFloat(year1)==parseFloat(year2)){
				if(parseFloat(month1)>parseFloat(month2)){
					alert("Data not match !!! ");
					return false;
				}else if(parseFloat(month1)==parseFloat(month2)){
				    if(parseFloat(day1)>parseFloat(day2)){
					alert("Data not match !!! ");
					return false;									    
					} 
				}
	}
return true; // form should never submit, returns false
}

function datetimeDifference(firstdate,seconddate,firsttime,secondtime) {
var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/; // requires 4 digit year
var timePat = /^(\d{1,}).(\d{1,})$/;

var mArray1 = firstdate.match(datePat); // is the format ok?
var mArray2 = seconddate.match(datePat); // is the format ok?
var mArray3 = firsttime.match(timePat); // is the format ok?
var mArray4 = secondtime.match(timePat); // is the format ok?

var month1 = mArray1[3]; // parse date into variables
var day1 = mArray1[1];
var year1 = mArray1[4];

var month2 = mArray2[3]; // parse date into variables
var day2 = mArray2[1];
var year2 = mArray2[4];

var hr1 = mArray3[1];
var min1 = mArray3[2];

var hr2 = mArray4[1];
var min2 =mArray4[2];


	if(parseInt(year1)>parseInt(year2)){
			alert("Data not match !!! ");			
			return false;
	}else if(parseFloat(year1)==parseFloat(year2)){
				if(parseFloat(month1)>parseFloat(month2)){
					alert("Data not match !!! ");
					return false;
				}else if(parseFloat(month1)==parseFloat(month2)){
							if(parseFloat(day1)>parseFloat(day2)){
							alert("Data not match !!! ");
							return false;									    
							} else  if(parseFloat(day1)==parseFloat(day2)){
											if(parseFloat(hr1)>parseFloat(hr2)){
												alert("Data not match !!! ");
												return false;
											} else if (parseFloat(hr1)==parseFloat(hr2)) {
												if(parseFloat(min1)>=parseFloat(min2)){
													alert("Data not match !!! ");
													return false;
												}
											}
							}
				}
	}
return true; // form should never submit, returns false
}


function check_Time(stdate){
		with(document.cscform){
            for (j=0;j<elements.length; j++){
			  if(elements[j].name.indexOf(stdate) > -1){
			        if(!isValidDate(elements[j].value)){
					     count+=1;
					      elements[j].focus();
						  elements[j].select();
						  return false;
					      break;
					}
			  }
	    }//for
		return true;
	}
}


function check_Time(stdate){
		with(document.cscform){
            for (j=0;j<elements.length; j++){
			  if(elements[j].name.indexOf(stdate) > -1){
			        if(!isValidDate(elements[j].value)){
					     count+=1;
					      elements[j].focus();
						  elements[j].select();
						  return false;
					      break;
					}
			  }
	    }//for
		return true;
	}
}

function getLength(){
	         return  document.cscform.__dateformat.value.length;
}

function getLengthYear(){
	var datefm=document.cscform.__dateformat.value.toLowerCase();
	var countDigit=0;
	for(var i=0;i<datefm.length;i++){
		   if(datefm.charAt(i).indexOf("y")>-1){			    
		         countDigit++;		  
			  }
      }
	  return countDigit;
}

function checkValidDate(dateStr){
var valid;
if(dateStr.value.length>0){
    valid=isValidDate(dateStr.value);
	if(!valid){
		dateStr.focus();
		dateStr.style.backgroundColor="#FF0000";
		dateStr.select();
	  }else{
	  	changeYear(dateStr)
	  }
   }
}

function replace(strSrc,strReplace,strWith)	{
	if(strSrc.indexOf(strReplace) == -1)
		return strSrc;
	var i = 0;
	var j = 0;
	while((i = strSrc.indexOf(strReplace, j)) != -1) {
		strSrc = strSrc.substring(0, i) + strWith + strSrc.substring(i + strReplace.length);
		j = i + strWith.length;
	}
	return strSrc; 
}

function IsNumber(szStr) {
	for(var i=0; i<szStr.length; i++) {
		if("0123456789+-.".indexOf(szStr.charAt(i)) == -1)
			return false;
	}
	return true;
}

function timeLine(ftdate,fttime,sddate,sdtime,hit,display) {
var date1 = new Date();
var time1;
var time2;
var date2 = new Date();
var diff  = new Date();

if (isValidDate(ftdate) && isValidTime(fttime)) { // Validates first date 
 time1=replace(fttime,".",":");
date1temp = new Date(ftdate + " " + time1);
date1.setTime(date1temp.getTime());
}
else return false; // otherwise exits

if (isValidDate(sddate) && isValidTime(sdtime)) { // Validates second date 
 time2=replace(sdtime,".",":");
date2temp = new Date(sddate+ " " + time2);
date2.setTime(date2temp.getTime());
}
else return false; // otherwise exits

// sets difference date to difference of first date and second date
diff.setTime(Math.abs(date1.getTime() - date2.getTime()));
var Hunit=0;

if(IsNumber(hit)){
Hunit=parseInt(hit);
}

timediff = diff.getTime();
weeks = Math.floor(timediff / (1000 * 60 * 60 * Hunit * 7));
timediff -= weeks * (1000 * 60 * 60 * Hunit * 7);

days = Math.floor(timediff / (1000 * 60 * 60 * Hunit)); 
timediff -= days * (1000 * 60 * 60 * Hunit);

hours = Math.floor(timediff / (1000 * 60 * 60)); 
timediff -= hours * (1000 * 60 * 60);

mins = Math.floor(timediff / (1000 * 60)); 
timediff -= mins * (1000 * 60);

secs = Math.floor(timediff / 1000); 
timediff -= secs * 1000;

display.value = weeks + " weeks, " + days + " days, " + hours + " hours, " + mins + " minutes, and " + secs + " seconds";

return false; // form should never submit, returns false
}



function changeYear(dateStr){////
        var dateFormate = checkFormatDate();
		var datePat ;
		var matchArray;
		if(dateFormate==0){
		   datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/; // DD/MM/YYYY  DD-MM-YYYY  requires 4 digit year
		}else if(dateFormate==1){
		  datePat =/^(\d{4})(\/|-)(\d{1,2})\2(\d{1,2})$/ ; // YYYY/MM/DD   YYYY-MM-DD  requires 4 digit year
		}else{
		    datePat =/^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/ ; // MM/DD/YYYY   MM/DD/YYYY  requires 4 digit year
		}			
		matchArray = dateStr.value.match(datePat); // is the format ok?
		if (matchArray == null) {
		alert(dateStr.value + " Date is not in a valid format ( "+document.cscform.__dateformat.value+" ).");
		//isEror(0);
		return false;
		}		
		var month  // parse date into variables
		var day;
		var year ;
		if(dateFormate==0){
	   		 month = matchArray[3]; // parse date into variables
			 day = matchArray[1];
			 year = matchArray[4];
		}else if(dateFormate==1){
	   		 month = matchArray[3]; // parse date into variables
			 day = matchArray[4];
			 year = matchArray[1];
		}else{
	   		 month = matchArray[1]; // parse date into variables
			 day = matchArray[3];
			 year = matchArray[4];		
		}
		if((year-543)>1800){
		      year-=543;
		}
		var dateFormate=checkFormatDate();
		var sym=checkTypeDate();
		if(dateFormate==0){
			dateStr.value=day+sym+month+sym+year;// DD/MM/YYYY  DD-MM-YYYY  requires 4 digit year		   
		}else if(dateFormate==1){
		dateStr.value=year+sym+month+sym+day;// YYYY/MM/DD   YYYY-MM-DD  requires 4 digit year
		}else{
		dateStr.value=month+sym+day+sym+year;// MM/DD/YYYY   MM/DD/YYYY  requires 4 digit year
	}
}

function chkdig(){ 
		if ( ( (window.event.keyCode < 48)) || (window.event.keyCode > 57))
 			window.event.returnValue = false;
   }
   
function checkDateInput(objField, e){
objField.style.backgroundColor="#FFFFFF";
       var datelength=getLength();
  	   var digitYear=getLengthYear();
	    objField.maxLength=10;
   	  chkdig();
		var symb=checkTypeDate();
		var formate=checkFormatDate();
		var lengthf = new Array();
			if(formate!=1){
				  lengthf[0]=2;  
				  lengthf[1]=5;  			  
			  }else{
			           if(digitYear==2){
						       lengthf[0]=2;  		
						       lengthf[1]=5;  			     
						  }else{
						       lengthf[0]=4;  		
						       lengthf[1]=7;  			     						  
						  }
		   }
			if((objField.value.length==lengthf[0])||(objField.value.length==lengthf[1])){	  
							 objField.value+=symb;
			}	  
}

function dateDifferance(firstdate, seconddate) {
	var date1 = new Date();
	var date2 = new Date();
	var diff  = new Date();

	if (isValidDate(firstdate)) { // Validates first date 
	var tmpd1 = firstdate.substring(0,2)
	var tmpm1 = firstdate.substring(3,5);
	var tmpy1 = firstdate.substring(6,10);
	date1temp = new Date(tmpm1+"-"+tmpd1+"-"+tmpy1);
	date1.setTime(date1temp.getTime());
	}
	else return false; // otherwise exits

	if (isValidDate(seconddate)) { // Validates second date 
	var tmpd2 = seconddate.substring(0,2)
	var tmpm2 = seconddate.substring(3,5);
	var tmpy2 = seconddate.substring(6,10);
	date2temp = new Date(tmpm2+"-"+tmpd2+"-"+tmpy2);
	date2.setTime(date2temp.getTime());
	}
	else return false; // otherwise exits

	// sets difference date to difference of first date and second date
	//alert(date1+":"+date2);
	diff.setTime(Math.abs(date1.getTime() - date2.getTime()));

	timediff = diff.getTime();

	days = Math.floor(timediff / (1000 * 60 * 60 * 24)); 
	timediff -= days * (1000 * 60 * 60 * 24);


	return days; // form should never submit, returns false*/
}