var aFinMes = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

var pickdate = new Date();
var dropdate = new Date();

var today = new Date()

//builds the Date object for the pick-up rental info
function buildPickUpDate() 
{
	year  = $("#pickyear").val();
	month = $("#pickmonth").val(); 
	day   = $("#pickday").val();
	return (new Date(year,month,day,0,0));
}
//builds the Date object for the return rental info
function buildDropDate() 
{
	year  = $("#returnyear").val();
	month = $("#returnmonth").val(); 
	day   = $("#returnday").val();
   	return (new Date(year,month,day,0,0));
}
// END

var today = new Date(today.getFullYear(), today.getMonth(), today.getDate());
////comparar las fechas
function compareDate(action)
{
	////si hay promocion SPECIAL restringir dias
	var promotion=$('#promotion_n').val();
	
	var alerTex='';
	var toChange='';//el que cambia (selecciono y Cambiar)
	
	var dateIn= $('#pickupdate').val();
	var dateOut= $('#returndate').val();
	var pickdate = fechToNumber(dateIn);
	var dropdate = fechToNumber(dateOut);
	
	var today = new Date()
	today = today.getDate() + "/" + (today.getMonth()+1) + "/" + today.getFullYear();
	var dayHoy = fechToNumber(today);
   // alert (pickdate+' - '+dropdate +' - '+ dayHoy);
		
	if(pickdate >= dayHoy){ 
			if (pickdate == dropdate) 
			{
				alertTex = 'The Pick-up Date can`t be equal than Return Date.';
				toChange='returndate';
				if(promotion){
					increm=promotion;
				}else{
					increm=1;
				}
				//haverlo un dia mnor a return
			}else if (pickdate > dropdate) 
			{
				alertTex = 'The Pick-up Date can`t be later than Return Date.';
				toChange='returndate';
				if(promotion){
					increm=promotion;
				}else{
					increm=1;
				}
				///hacer drop day mayor a pick
			}else if(promotion){
				toChange='returndate';
					dateIn_x = fechArreglar(dateIn);
					day_return = addToDate( dateIn_x, promotion);//dia posible de retorno
					day_return = fechToNumber(day_return);
					if(day_return>dropdate){
						increm=promotion;	
					}else{
						toChange='';	
					}
			}
	}else{
		toChange='returndate';
		alertTex = "The Pick-up Date and Time must be later than today's date and time.";
		$('#pickupdate').val(today);
		dateIn= today;
		dateIn_x = fechArreglar(today);
		day_return = addToDate( dateIn_x, promotion);//dia posible de retorno
		day_return = fechToNumber(day_return);
		if(day_return>dropdate){
			increm=promotion;	
		}else{
			toChange='';	
		}
		
		//hacer igual a hoy
	}
	if(alerTex){
		//$('#error_'+action).html(alertTex);
		//$('#error_'+action).show();
	}else{
		//$('#error_'+action).hide();
		//$('#error_'+action).html('');
	}
	
	if(toChange!=''){
		dateIn = fechArreglar(dateIn);
		date = addToDate( dateIn, increm);
		$('#'+toChange).val(date);
	}
	
}

function fechToNumber(fecha){
	var fech_parts = fecha.split("/");
	fech_parts[1] = (fech_parts[1].length==1) ? ("0"+fech_parts[1]) : fech_parts[1];
	fech_parts[0] = (fech_parts[0].length==1) ? ("0"+fech_parts[0]) : fech_parts[0];
	return +(fech_parts[2]+fech_parts[1]+fech_parts[0]);
}
function fechArreglar(fecha){
	var fech_parts = fecha.split("/");
	fech_parts[1] = (fech_parts[1].length==1) ? ("0"+fech_parts[1]) : fech_parts[1];
	fech_parts[0] = (fech_parts[0].length==1) ? ("0"+fech_parts[0]) : fech_parts[0];
	return (fech_parts[0]+'/'+fech_parts[1]+'/'+fech_parts[2]);
}

  function finMes(nMes, nAno){
   return aFinMes[nMes - 1] + (((nMes == 2) && (nAno % 4) == 0)? 1: 0);
  }
 
   function padNmb(nStr, nLen, sChr){
    var sRes = String(nStr);
    for (var i = 0; i < nLen - String(nStr).length; i++)
     sRes = sChr + sRes;
    return sRes;
   }
 
   function makeDateFormat(nDay, nMonth, nYear){
		var sRes;
		sRes = padNmb(nDay, 2, "0") + "/" + padNmb(nMonth, 2, "0") + "/" + padNmb(nYear, 4, "0");
		return sRes;
   }
 
  function incDate(sFec0){
   var nDia = parseInt(sFec0.substr(0, 2), 10);
   var nMes = parseInt(sFec0.substr(3, 2), 10);
   var nAno = parseInt(sFec0.substr(6, 4), 10);
   nDia += 1;
   if (nDia > finMes(nMes, nAno)){
    nDia = 1;
    nMes += 1;
    if (nMes == 13){
     nMes = 1;
     nAno += 1;
    }
   }
   return makeDateFormat(nDia, nMes, nAno);
  }

  function decDate(sFec0){
   var nDia = Number(sFec0.substr(0, 2));
   var nMes = Number(sFec0.substr(3, 2));
   var nAno = Number(sFec0.substr(6, 4));
   nDia -= 1;
   if (nDia == 0){
    nMes -= 1;
    if (nMes == 0){
     nMes = 12;
     nAno -= 1;
    }
    nDia = finMes(nMes, nAno);
   }
   return makeDateFormat(nDia, nMes, nAno);
  }
 
  function addToDate(sFec0, sInc){
   var nInc = Math.abs(parseInt(sInc));
   var sRes = sFec0;
   if (parseInt(sInc) >= 0)
    for (var i = 0; i < nInc; i++) sRes = incDate(sRes);
   else
    for (var i = 0; i < nInc; i++) sRes = decDate(sRes);
   return sRes;
  }
 
 //llamar    fecha1.value = addToDate(fecha0.value, increm.value);
 
