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

function UpdateFromCalendar(){UpdateCalendar("calendar","i");UpdateCalendar("calendar","e");}

function UpdateCalendar(from, op){
	var d,m,y;
	var dCalendar;
	if(op=="i"){ //update checkin calendar
		d = MM_findObj("cboDayStart");m = MM_findObj("cboMonthStart");y = MM_findObj("cboYearStart");
		dCalendar = MM_findObj("di");
	}else{ //update check out calendar
		d = MM_findObj("cboDayEnd");m = MM_findObj("cboMonthEnd");y = MM_findObj("cboYearEnd");
		dCalendar = MM_findObj("do");
	}
	
	if(from=="cbo"){ //update calendar
		var days = DaysInMonth(y.value,parseInt(m.value));
		if( (d.selectedIndex+1)>days){
			d.selectedIndex = (days-1);
		}
		var dt = NewDate(y,m,d);
		dCalendar.value = dt.asString();
		
	}else{ //update combos
		//date always is correct
		var v = (dCalendar.value).split("-");
		var dt = NewDate(v[0],v[1],v[2]);
		dt.fillCombos(d,m,y);
	}


	x = MM_findObj("days_d"+op);
	x.innerHTML = arrDays[dt.getDay()].substr(0,3);

}

function ValidFechas(i,e,op){
	var di = MM_findObj("cboDayStart");var mi = MM_findObj("cboMonthStart");var yi = MM_findObj("cboYearStart");
	var de = MM_findObj("cboDayEnd");var me = MM_findObj("cboMonthEnd");var ye = MM_findObj("cboYearEnd");
	var da = new Date();var da1 = i;var da2 = e;var da3 = new Date();
	da3 = da3.add("d",1);
	da1 = NewDate(yi,mi,di);
	da2 = NewDate(ye,me,de);

	//alert(da1.asString() +  " - " + da.asString() +  " = " + da1.DaysDiff(da) );

	//init date is less than actual date
	if(da1.DaysDiff(da)<0){
		alert(error_dates[0]);return false;
	}

	
	//alert(da2.asString() +  " - " + da.asString() +  " = " + da2.DaysDiff(da) );
	//end date is less or equal than actual date
	if(da2.DaysDiff(da)<0){
		alert(error_dates[1]+"(0)");da.fillCombos(di,mi,yi);da3.fillCombos(de,me,ye);
		MM_findObj("di").value = da.asString();MM_findObj("do").value = da3.asString();
		return false;
	}
	 
	//alert(da2.asString() +  " - " + da1.asString() +  " = " + da2.DaysDiff(da1) );
	//end date is less or equal than begin date
	if(da2.DaysDiff(da1)<=0){		
		alert(error_dates[1]+"(1)");
		
		//agrego un dia a la fecha inicial y seteo los combos de la fecha final
		da3.setTime(da1.getTime());		
		da3.add("d",1);
		da3.fillCombos(de,me,ye);
		MM_findObj("do").value = da3.asString();
		//da1.fillCombos(di,mi,yi);
		//MM_findObj("di").value = da1.asString();
		
		return false;
	}

	//alert(da2.DaysDiff(da1) );
	if(da2.DaysDiff(da1)>365){ //la fecha de reservas no pueden ser mayores a 365 dias (1 aņo)			
		alert(error_dates[2]);
		//agrego un dia a la fecha inicial y seteo los combos de la fecha final
		//da3.setTime(da1.getTime());da1.fillCombos(di,mi,yi);da3.add("d",365);da3.fillCombos(de,me,ye);		
		//MM_findObj("di").value = da1.asString();MM_findObj("do").value = da3.asString();
		return false;
	}
	
	//actualizar los combos
	//da1.fillCombos(di,mi,yi);da2.fillCombos(de,me,ye);
	//MM_findObj("di").value = da1.asString();MM_findObj("do").value = da2.asString();	
	return true;

}


function NewDate(y,m,d){	
	var _y,_m, _d;
	_y = y;_m = m;_d = d;
	if(typeof(y)=="object"){_y = y.value;_m = m.value;_d = d.value;}
	var fecha = new Date();	
	fecha.setFullYear(_y);fecha.setMonth((_m-1));fecha.setDate((_d));fecha.setMonth((_m-1));
	return fecha;
}


function DaysInMonth(year, month) {

	if (((0 == (year%4)) && ( (0 != (year%100)) || (0 == (year%400)))) && month == 1) 
		return 29;
	else 
		return monthDates[month-1];
}

function CorrectDays(filtro){
	var d;
	var m;
	var y;
	var days;
	var dt_i = new Date();
	var dt_e = new Date();
	var op;
	
	if(filtro=="start"){
		op = "i";
		d = MM_findObj("cboDayStart");m = MM_findObj("cboMonthStart");y = MM_findObj("cboYearStart");	
		dt_i = NewDate(y,m,d);dt_e.setToDate(MM_findObj("do").value);
		
	}else{
		op = "e";
		d = MM_findObj("cboDayEnd");m = MM_findObj("cboMonthEnd");y = MM_findObj("cboYearEnd");		
		dt_i.setToDate(MM_findObj("di").value);dt_e = NewDate(y,m,d);
	}	
	days = DaysInMonth(y.value,parseInt(m.value));
	
	if( (d.selectedIndex+1)>days){
		if(filtro=="start"){
			alert("Dear user: Correct your start date, this date not exists");
		}else{
			alert("Dear user: Correct your end date, this date not exists");
		}
		return false;
	}
	return ValidFechas(dt_i,dt_e,op);

	
}

function CheckDates(submit){	

	var d = MM_findObj("cboDayEnd").value;var m = MM_findObj("cboMonthEnd").value;var y = MM_findObj("cboYearEnd").value;
	var di = MM_findObj("cboDayStart").value;var mi = MM_findObj("cboMonthStart").value;var yi = MM_findObj("cboYearStart").value;	

	var da = NewDate(start_date[0],start_date[1],start_date[2]); //new Date(start_date[0],parseInt(start_date[1])-1,parseInt(start_date[2]));	
	var da1 = NewDate(yi,mi,di);//new Date(yi,parseInt(mi)-1,parseInt(di));
	var da2 = NewDate(end_date[0],end_date[1],end_date[2]);//new Date(end_date[0],parseInt(end_date[1])-1,parseInt(end_date[2]));
	var da3 = NewDate(y,m,d);//new Date(y, parseInt(m)-1, parseInt(d));
	
	if( !( (da1.DaysDiff(da)>=0) && (da2.DaysDiff(da1)>=0) && (da2.DaysDiff(da3)>=0) )){
	//if(  !( (da1.getTime()>=da.getTime()) && (da1.getTime()<=da2.getTime()) && (da3.getTime()<=da2.getTime()) ) ){	
		alert(error_dates[3]);
		if(!submit) return false;
		return;
	}
	
	if(arguments.length==1){
		//if(UpdateFechaSelected()){
			if(submit) SendSearch();
		//}
	}else{
		checkMinNights(submit);
	}

}

function CheckCalendar(submit){
	
	//if(CorrectDays('start')){
		if(CorrectDays('end')){
			if(arguments.length>1)
				CheckDates(submit,1);
			else
				CheckDates(submit);
		}
	//}
}


function SendSearch(){
	var o  = MM_findObj("cboHotelName");
	
	
	if(o){
		MM_findObj("frmSearch").action= searchSEO("cboHotelName","cboCiudad","cboPais","rdoType0","rdoType2");
		if(o.selectedIndex>0){
			MM_findObj("frmSearch").action= searchSEO("cboHotelName","cboCiudad","cboPais","rdoType0","rdoType2") + "rooms/"; //"Hotel.php?tab=rooms";
		}
		validarSearch();
	}else{
		MM_findObj("frmPrefs").action= searchSEO("cboHotelName","cboCiudad","cboPais","rdoType0","rdoType2");
		MM_findObj("frmPrefs").submit();
	}
}

function ChangeType(t){

	if(t=="Hotel" || t==""){
		MM_findObj("divStars").style.display='block';
		MM_findObj("divRoomType").style.display='none';
		MM_findObj("divHotelChain").style.display='block';
		MM_findObj("divTypeFacilities").innerHTML=  TypeFacilities_0;
		MM_findObj("spanHotelName").innerHTML= propertyType["hotel"];
		
	}else{
		MM_findObj("divStars").style.display='none';
		MM_findObj("divRoomType").style.display='block';
		MM_findObj("divHotelChain").style.display='none';
		MM_findObj("spanHotelName").innerHTML= propertyType["hostel"];
		MM_findObj("divTypeFacilities").innerHTML=  TypeFacilities_1;
	}
	BuscarPaises();
}


function searchSEO(sHotelName, sCityName,sCountryName,type,typeAll){
	var SEO_URL="";
	var oHotel   = MM_findObj(sHotelName);
	var oCiudad  = MM_findObj(sCityName);
	var oPais	 = MM_findObj(sCountryName);
	var oType	 = MM_findObj(type);//"rdoType_c0
	var oTypeAll	 = MM_findObj(typeAll);
	//var oTypeValue = (oType!=null && oType.checked)?"Hotel":"Hostel";	
	var oTypeValue = (oType!=null && oType.checked)?"hotels":((oTypeAll.checked)?"list":"hostels");
	
	var oCiudadID	= 0;
	var oHotelID	= 0;
	var oPaisID		= oPais.options[oPais.selectedIndex].value;
	var sCiudad		= "*";
	var sPais		= oPais.options[oPais.selectedIndex].text;

	if(oCiudad){
		if(oCiudad.selectedIndex>0){
			oCiudadID = oCiudad.options[oCiudad.selectedIndex].value;
			sCiudad = oCiudad.options[oCiudad.selectedIndex].text;
		}else{
			oCiudadID = ciudad_default;
		}
	}else{
		oCiudadID = ciudad_default;
	}
	
	
	if(oPaisID>0 || oCiudadID>0){

		if(oHotel){
			if(oHotel.selectedIndex>0){
				oHotelID = oHotel.options[oHotel.selectedIndex].value;
				sHotel = oHotel.options[oHotel.selectedIndex].text;
			}			
		}
		
		
		if(oHotelID==0){
			
			if(sCiudad!="*"){
				SEO_URL =  "/" + language_path + oTypeValue+"/" + SEO_FILTRO(sPais) + "/" + SEO_FILTRO(sCiudad) + "/" + oPaisID+"_"+oCiudadID+".html";
			}else{
				SEO_URL =  "/" + language_path + oTypeValue+"/" + SEO_FILTRO(sPais) + "/";
			}
			
		}else{
			SEO_URL =  "/" + language_path + "hotel/" + SEO_FILTRO(sHotel)+ "/"+ oHotelID+"/";
		}
	}
	
	return SEO_URL;
}