//the function checks the date format dd/mm/yy
function checkDateDMY (org_date,allowEmpty){
	//alert(org_date.value);
	if (org_date.value!=""){	
		var str_date=org_date.value;
		var arr_date = str_date.split('/');
		var flag_date=true;
		var errorReport="";

		if (arr_date.length != 3){   
		    org_date.value=org_date.title;
			//org_date.select();
			return cal_error ("Invalid date format: '" + str_date + "'.\nFormat accepted is dd/mm/yyyy.");
		}
		
		if (arr_date[0].length>2){
			org_date.select();
			return cal_error ("Can not enter more then two chars in a date, format not valid");
		}
		
		if (arr_date[1].length>2){
			org_date.select();
			return cal_error ("Can not enter more then two chars in a month, format not valid");
		}	
		
		if (arr_date[2].length!=4){
			org_date.select();
			return cal_error ("Can not enter more or less then four chars in a year ,format not valid");
		}				
			
        arr_date[0] = removeLeadingZeros(arr_date[0])
		arr_date[1] = removeLeadingZeros(arr_date[1])
		arr_date[2] = removeLeadingZeros(arr_date[2])
		
		if (!arr_date[0]){
			org_date.select();
			return cal_error ("Invalid date format: '" + str_date + "'.\nNo day of month value can be found.");
		}
		if (!RE_NUM.exec(arr_date[0])){
			org_date.select();
			return cal_error ("Invalid day of month value: '" + arr_date[0] + "'.\nAllowed values are unsigned integers.");
		}
		if (!arr_date[1]){
			org_date.select();
			return cal_error ("Invalid date format: '" + str_date + "'.\nNo month value can be found.");
		}
		if (!RE_NUM.exec(arr_date[1])){
			org_date.select();
			return cal_error ("Invalid month value: '" + arr_date[1] + "'.\nAllowed values are unsigned integers.");
		}
		if (!arr_date[2]){
			org_date.select();
			return cal_error ("Invalid date format: '" + str_date + "'.\nNo year value can be found.");
		}
		if (!RE_NUM.exec(arr_date[2])){
			org_date.select();
			return cal_error ("Invalid year value: '" + arr_date[2] + "'.\nAllowed values are unsigned integers.");
		}
		var dt_date = new Date();
		dt_date.setDate(1);
	
		if (arr_date[1] < 1 || arr_date[1] > 12){
			org_date.select();
			return cal_error ("Invalid month value: '" + arr_date[1] + "'.\nAllowed range is 01-12.");
		}
		dt_date.setMonth(arr_date[1]-1);
	 
		if (arr_date[2] < 100) arr_date[2] = (arr_date[2]) + (arr_date[2] < NUM_CENTYEAR ? 2000 : 1900);
		dt_date.setFullYear(arr_date[2]);
	
		var dt_numdays = new Date(arr_date[2], arr_date[1], 0);
		dt_date.setDate(arr_date[0]);
		if (dt_date.getMonth() != (arr_date[1]-1)){
			org_date.select();
			return cal_error ("Invalid day of month value: '" + arr_date[0] + "'.\nAllowed range is 01-"+dt_numdays.getDate()+".");
		}
		//alert(dt_date);
		if (!flag_date){
			org_date.select();
			org_date.focus();
		}
		else{
		    org_date.value=arr_date[0]+'/'+arr_date[1]+'/'+arr_date[2]
		}
	}
	else
	{
	    if (!(allowEmpty))
	    {
		    org_date.value=org_date.title;
		    return cal_error ("You cannot enter an empty date");
		}
	}
}

function checkCurrentDate(date1,date2){	
	var arr_date = date1.split('/');
	var year=date2.getUTCFullYear();
	var month=date2.getUTCMonth()+1;
	var day=date2.getUTCDate();

	if ((arr_date[2])>year){
	  return false;
	}
	else if ((arr_date[2])<year){
		return true; 
	}
	else if  ((arr_date[2])=year){
		if ((arr_date[1])>month){	
			return false;
	    }
	    else if ((arr_date[1])<month){
			return true;
		}
		else if ((arr_date[1])=month){
			if ((arr_date[0])==day){
				return true; 
			}
			else if ((arr_date[0])>day){	
				return false;
			}
			else if ((arr_date[0])<day){
				return true; 
			}
		}
	}
}	

function DateForDelivery(date1,date2){	
	var arr_date = date1.split('/');
    var arr_date2=date2.split('/');
     
    arr_date[0] = removeLeadingZeros(arr_date[0]);
	arr_date[1] = removeLeadingZeros(arr_date[1]);
	arr_date[2] = removeLeadingZeros(arr_date[2]);
	
	arr_date[0] = removeLeadingZeros(arr_date2[0]);
	arr_date[1] = removeLeadingZeros(arr_date2[1]);
	arr_date[2] = removeLeadingZeros(arr_date[2]);
	
	if ((arr_date[2])>(arr_date2[2])){
	  return false;
	}
	else if ((arr_date[2])<(arr_date2[2])){
		return true; 
	}
	 
	else if  ((arr_date[2])==(arr_date2[2])){
		if ((arr_date[1])>(arr_date2[1])){
			return false;
	    }
	    else if ((arr_date[1])<arr_date2[1]){
			return true;
		}
		else if ((arr_date[1])==(arr_date2[1])){
			if ((arr_date[0])==(arr_date2[0])){
				return true; 
			}
			else if ((arr_date[0])>(arr_date2[0])){
				return false;
			}
			else if ((arr_date[0])<(arr_date2[0])){
				return true; 
			}
		}
	}
}	
  
function removeLeadingZeros(x){
	var numStr = new String();
	var counter;
	numStr = x;
	counter = numStr.length;
	for (i=0; i < counter; i++){
		if (numStr.charAt(0)=="0"){
			numStr = numStr.slice (1,numStr.length) 
		}    
		else{
			break; 
		}    
	}
	return numStr;
}