/*
Depende de dates.js

Objeto Rate
	String FechaIni
	String Date FechaFin
	int rateId
	Formato de fecha: "dd/mm/aaaa"
	
	Debera crearse el Array  arrRates con las diferencites tarifas (Rate) de la promocion.
	Si la tarifa se aplica a diferentes rangos de fechas se tomara como distintos objetos Rate.
*/

/* Build object Rate */
function Rate(fini, ffin, rateId){
	this.fini = fini;
	this.ffin = ffin;
	this.rateId = rateId;
}

/* Get rate id */
function getRate(fechaIni, fechaFin){
	// Recorre arrRates comprobando si las fechas de los parametros estan dentro del rango de fechas del objeto Rate.
	if(fechaIni == "") return -1;
	if(fechaFin == "") return -1;
	
	for(i=0; i<arrRates.length; i++){
		var f1 = arrRates[i].fini;
		var f2 = arrRates[i].ffin;
		var compare1 = compareDatesRates(fechaIni, f1);
		var compare2 = compareDatesRates(fechaIni, f2);
		var compare3 = compareDatesRates(fechaFin, f2);
		if((compare1 == 3) || (compare2 == 3)) return -1;
		if((compare1 >= 0) && (compare2 <= 0) && (compare3 <= 0)) return  arrRates[i].rateId;
	}
	return 0;
}



// -------------------------------------------------------------------
// compareDates(date1,date1format,date2,date2format)
//   Compare two date strings to see which is greater.
//   Returns:
//   1 if date1 >= date2
//   0 if date1 == date 2
//  -1 if date1 <= date2
// 3 if date1 or date2 not is Date.
// -------------------------------------------------------------------
function compareDatesRates(date1,date2) {
	var DATE_FORMAT = "dd/MM/yyyy";
	var d1=getDateFromFormat(date1,DATE_FORMAT);
	var d2=getDateFromFormat(date2,DATE_FORMAT);
	if (d1==0 || d2==0) {
		return 3;
	}
	else if (d1 > d2) {
		return 1;
	}else if(d1 < d2){
		return -1;
	}
	return 0;
}

