function idiom_date(fecha, tipo, idiom){//tipo => 1=mes largo 2=mes corto / idioma => 1=mes en espaņol 2=mes en ingles
	var arrFecha = fecha.split("/");
	fecha=arrFecha[2]+'-'+arrFecha[1]+'-'+arrFecha[0];
	var resultado_fecha='';
	switch(idiom){
		case 1: setlocale('LC_TIME',"fr"); break;
		case 2: setlocale('LC_TIME', 'en-EN'); break;
	}
	switch(tipo){
		case 1:
			switch(idiom){
				case 1: resultado_fecha=strftime("%a %d %b %Y", strtotime(fecha)); break;
				case 2: resultado_fecha=strftime("%a %d %b %Y", strtotime(fecha)); break;
			}
		break;
		case 2:
			switch(idiom){
				case 1: resultado_fecha=strftime("%d %b, %Y", strtotime(fecha)); break;
				case 2: resultado_fecha=strftime("%b %d, %Y", strtotime(fecha)); break;
			}
		break;		
	}	
	//return ucwords($resultado_fecha);
	return resultado_fecha;
}

function proceso(target){
	var segundo = Number($('segundo').value);
	var minuto = Number($('minuto').value);
	segundo--;
	$('segundo').value=segundo;	
	if(segundo<10 && segundo>=0) $(target).innerHTML = minuto+":0"+segundo;    
	else $(target).innerHTML = minuto+":"+segundo;		
	if(minuto==0 && segundo==0){
		clearInterval(crono);	
		reserva_cancelada();
	}
	if(segundo==0){
		minuto--;
		if(minuto<10 && minuto>=0) $('minuto').value="0"+minuto;
		else $('minuto').value=minuto;
		segundo = 60;
		$('segundo').value=segundo;		
	}	
}

function getHotelsInRate(){
	var json = $('dataHotels').value;
	json=decodeURIComponent(json);
	var rateMin=Number($('minRateAux').value);
	var rateMax=Number($('maxRateAux').value);
	var txtBuscar=$('hotelWord').value.toLowerCase();
	var categorias=getCategorias();
	var elem;
	var conta=0;
	var arrHotelesAux = JSON.decode(json);
	arrHotelesAux.hoteles.each(function(el){
		var rate=Number(el.r);
		if(rate>=rateMin && rate<=rateMax){		
			if(txtBuscar!=""){				
				var patron = new RegExp(txtBuscar);			
				if(patron!="//"){
					var txtBase = el.h.toLowerCase().replace(/\+/g,' ');
					if(txtBase.match(patron)){
						if(categorias!=''){
							if(categorias.indexOf(el.c)!=-1) conta++;
						}
						else conta++;
					}					
				}
			}
			else{
				if(categorias!=''){
					if(categorias.indexOf(el.c)!=-1) conta++;
				}
				else conta++;
			}
		}
	});
	return conta;
}

function countDown(target){
	crono = setInterval("proceso('"+target+"')", 1000);	
}
function filtraHotelesFijos(pagina, idioma, destino, categorias, servicios){//, orden, valor
	//alert(idioma+", "+destino+", "+categorias+", "+servicios);
	var target="listaHoteles";
	var ordHotels = new Request({
		method: 'post',
		url: '/lib/'+idioma+'/filtraHoteles.php',
		onRequest: function(){
			ajaxLoader.show('Cargando...');
		},
		onFailure: function(xhr){
		},
		onComplete: function(){
			ajaxLoader.hide();
		},
		onSuccess: function(responseText){
			if(responseText!="Error"){
				//var arrDatos=responseText.split("|");
				$(target).set('html', responseText);
				addEventoPaginas('paginacionUp');
			}			
		}	
	});
	ordHotels.send('idioma='+idioma+'&pagina='+pagina+'&destino='+destino+'&categorias='+categorias+'&servicios='+servicios);
}

function ordena_hoteles(target, clave, orden, pagina){//, orden, valor
	var target="availabilityHotel";
	var nameForm = "formSearchHotels";
	var rateMin=$('minRateAux').value;
	var rateMax=$('maxRateAux').value;
	var catSel=getCategorias();
	var servSel=getServicios();
	var hotelWord=$('hotelWord').value;
	$('ordenSel').value=orden;
	$('claveSel').value=clave;
	var ordHotels = new Request({
		encoding: 'iso-8859-1',
		method: 'post',
		url: '/lib/ordena-hoteles.php',
		onRequest: function(){
			ajaxLoader.show('Cargando...');
		},
		onFailure: function(xhr){
		},
		onComplete: function(){
			ajaxLoader.hide();
		},
		onSuccess: function(responseText){
			if(responseText!="Error"){
				var arrDatos=responseText.split("|");
				$('paginacionUp').set('html', arrDatos[0]);
				$('paginacionDown').set('html', arrDatos[0]);
				$('listHotels').set('html', arrDatos[1]);
				$('codeHotels').set('value', arrDatos[2]);
				if(arrDatos[1]!=""){
					if(arrDatos[1].indexOf('img-alert.gif')==-1){						
						$(target).slide('out');
						$(target).show();
						$$('.btnBooking').each(function(elem){			
							elem.addEvent('click', function(event){	
								event.preventDefault();
								var valorAnte=$("hotel").getProperty("value");
								if(valorAnte!=elem.getProperty("codhotel")){
									$('numHotel').setProperty("value", elem.getProperty("id"));
									$("hotel").setProperty("value", elem.getProperty("codhotel"));						
									insertOBJ(elem.getProperty("codhotel"), 'hotel', 'after', target);	
									seeAvailability(target, nameForm, 'eng', elem.getProperty("codhotel"));
								}
								else $(target).slide('in');
							});					
						});	
						temp = arrDatos[2].split(",");
						$('nHotels').set('html', temp.length)
						$$('.Tips2').each(function(el){
							var string = el.getProperty("title").split(' :: ');
							var title = string[0];
							var text = string[1];
							el.removeProperty("title");
							el.store('tip:title', title); 
							el.store('tip:text', text);
						});
						$$('.Tips1').each(function(el){				
							var text = '<?=$otrosFonos?>';
							el.store('tip:title', "Other Phone Numbers"); 
							el.store('tip:text', text);
						});
						new Tips('.Tips2, .Tips1',{
							showDelay: 500,    //default is 100
							hideDelay: 100,   //default is 100
							offsets: {
								'x': 16,       //default is 16
								'y': 16        //default is 16
							},			
							fixed: false,      //default is false
							onShow: function(tip){
								tip.fade('in');
							},
							onHide: function(tip){
								tip.fade('out');
							}
						});
						$$('a.verFicha').each(function(elem){
							var action=elem.href;
							elem.addEvent('click', function(event){
								event.preventDefault();
								$(nameForm).action=action;
								//+"#"+$('checkin').getProperty("value")+"_"+$('checkout').getProperty("value")+"_"+$('sendRooms').getProperty("value");
								$(nameForm).submit();
							});
						});
					}
				}
				//else alert("vacio 1");
				if(arrDatos[0]!=""){
					$$('a.page').each(function(elem){
						var campo = $('claveSel').value;
						var orden = $('ordenSel').value;
						var target = "hotel";
						var page = elem.get('html');
						elem.addEvent('click', function(event){
							event.preventDefault();
							ordena_hoteles(target, campo, orden, page);
						});				
					});
				}
				if($('totalHotelsAux').value=='0') $('btnsT').toggle();
				$('nHotels').set('html', $('totalHotelsAux').value);
			}			
		}	
	});
	ordHotels.send('datos='+$('dataHotels').value+'&clave='+clave+'&orden='+orden+'&pagina='+pagina+'&minRate='+rateMin+'&maxRate='+rateMax+'&catSel='+catSel+'&servSel='+servSel+'&hotelWord='+hotelWord);
}

function getOrden(variable){
	switch(variable){
		case 'l': resp=3;
		break;		
		case 'c': resp=4;
		break;
		case 'h': resp=5;
		break;
		case 'r': resp=6;
		break;
	}
	return resp;
}

function ordenar_asc(target, orden, tipo){//, orden, valor
	var largo = arrHolteles.length;
	orden=getOrden(orden);
	for(x=0;x<largo-1;x++){
		for (y=x+1;y<largo;y++){
			if(tipo=="char"){
				if(arrHolteles[x][orden]>arrHolteles[y][orden]){					
					aux = arrHolteles[x];
					arrHolteles[x] = arrHolteles[y];
					arrHolteles[y] = aux;
				}
			}
			if(tipo=="num"){
				if(Number(arrHolteles[x][orden])>Number(arrHolteles[y][orden])){					
					aux = arrHolteles[x];
					arrHolteles[x] = arrHolteles[y];
					arrHolteles[y] = aux;
				}
			}
		}
	}
	listaObj=$('listHotels');
	for(x=0;x<largo;x++){
		arrHolteles[x][0].inject(listaObj, 'bottom');
	}
}

function ordenar_desc(target, orden, tipo){//, orden, valor	
	var aux = new Array();
	var largo = arrHolteles.length;
	orden=getOrden(orden);
	for(x=0;x<largo-1;x++){
		for (y=x+1;y<largo;y++){
			if(tipo=="char"){				
				if(arrHolteles[x][orden]<arrHolteles[y][orden]){					
					aux = arrHolteles[x];
					arrHolteles[x] = arrHolteles[y];
					arrHolteles[y] = aux;
				}
			}
			if(tipo=="num"){
				if(Number(arrHolteles[x][orden])<Number(arrHolteles[y][orden])){					
					aux = arrHolteles[x];
					arrHolteles[x] = arrHolteles[y];
					arrHolteles[y] = aux;
				}
			}
		}
	}
	listaObj=$('listHotels');	
	for(x=0;x<largo;x++){
		arrHolteles[x][0].inject(listaObj, 'bottom');
	}
}

function insertOBJ(idElem, target, pos, idObj){
	var hoteles = $$('.'+target);
	var largo = hoteles.length;
	var obj = $(idObj).getParent();
	for(x=0;x<largo;x++){				
		if(hoteles[x].getProperty('ch')==idElem) obj.inject(hoteles[x].getChildren('dl')[0].getChildren('dd')[0], 'bottom');			
	}
}

function filterHotel(minRatePro, maxRatePro, target){
	//console.log(minRate);
	//console.log(maxRate);
	var cont = 0;
	var hoteles = $$('.'+target);	
	var largo = hoteles.length;
	for(indx=0;indx<largo;indx++){
		if(Number(hoteles[indx].getProperty('r'))>maxRatePro || Number(hoteles[indx].getProperty('r'))<minRatePro){
			hoteles[indx].setStyle('display', 'none');
		}
		else{
			hoteles[indx].setStyle('display', '');
			cont++;
		}
	}
	$('nHotels').set("html",cont);
}

function show(id){
	$(id).setStyle('display', '');
}
function hide(id){
	$(id).setStyle('display', 'none');
}
function hideHotel(target, idProp, valProp){	
	var hoteles = $$('.'+target);	
	var largo = hoteles.length;	
	cont=0;
	for(indx=0;indx<largo;indx++){
		if(valProp!=0){
			if(hoteles[indx].getProperty(idProp)!=valProp) hoteles[indx].setStyle('display', 'none');	
			else{
				cont++;
				hoteles[indx].setStyle('display', '');	
			}
		}
		else{
			hoteles[indx].setStyle('display', '');
			cont=largo;
		}		
	}
	$('nHotels').set("html",cont);
}

function showHotel(target, idProp, valProp){	
	var hoteles = $$('.'+target);	
	var largo = hoteles.length;
	for(indx=0;indx<largo;indx++){
		if(hoteles[indx].getProperty(idProp)!=valProp) hoteles[indx].setStyle('display', '');		
	}	
}

function clearAvailability(numHotel){
	var id='availability'+numHotel;
	$(id).innerHTML="";
}

function setSelectClass(idObj){
	//var tipoRoom = $(idObj).name.substring(4, 7).toLowerCase();
	var tipoRoom = idObj.name;
	$$('.'+tipoRoom).each(function(el){
		if(el.id!=idObj.id){
			el.removeClass("selected");
			el.getParent().getParent().removeClass("blink");
		}
		else{
			el.addClass("selected");
			el.getParent().getParent().addClass("blink");
		}

	});
}

function getDataRoom(code){
	var json = $('roomsJson').value;
	var elem;
	var arrRooms = JSON.decode(json);
	arrRooms.rooms.each(function(el){		
		if(el.code==code){
			elem=el;
		}
	});
	return elem;
}

function getInfoRoom(code){
	var json = $('nroomsJson').value;	
	var arrNrooms = JSON.decode(json);
	var elem;	
	arrNrooms.nRooms.each(function(el){			
		if(el.code==code){			
			elem=el;			
		}
	});
	return elem;
}

function generaJsonRooms(){
	var json='{"dataRoomSelected":[';
	var cont=0;
	$$('input.selected').each(function(elem){		
		json+='{"code":"'+elem.value+'", "tipo":"'+elem.name.toUpperCase()+'"},';			
	});	
	json=json.substring(0, json.length-1);	
	json+=']}';
	$('infoReserva').value=json;
}
function formatNmb(nNmb){ 
	var sRes = ""; 
	for (var j, i = nNmb.length - 1, j = 0; i >= 0; i--, j++) sRes = nNmb.charAt(i) + ((j > 0) && (j % 3 == 0)? ".": "") + sRes; 
	return sRes; 
} 
function setTotalRoom(id){
	var name = $(id).name.substring(7).toLowerCase();
	var subTotal = 0;
	var subTotalOtro = 0;
	var arrTipos = new Array("sgl", "dbl", "trp", "qud");
	for(indx=0;indx<4;indx++){			
		if($(arrTipos[indx]).value>0){
			$$('.'+arrTipos[indx]).each(function(ele){				
				if(ele.checked){					
					var precio;
					$$('#'+ele.id+'_val td.rate').each(function(total){
						if(total.hasClass('total') && total.hasClass('valActivo')){
							precio=new String(total.getChildren().get('text'));	
							precio=precio.replace(/[^0-9]/g,'');
							pTotal=Number(precio)*Number($(arrTipos[indx]).value);
							subTotal=subTotal+Number(pTotal);
						}
						if(total.hasClass('total') && !total.hasClass('valActivo')){
							precio=new String(total.getChildren().get('text'));	
							precio=precio.replace(/[^0-9]/g,'');
							pTotal=Number(precio)*Number($(arrTipos[indx]).value);
							
							subTotalOtro=subTotalOtro+Number(pTotal);
						}
					});	
				}
			});
		}		
	}	
	$('pagoTotal').value=$('pagoTotal').hasClass('valActivo')?number_format(subTotal.toString(), 0, "", "."):number_format(subTotalOtro.toString(), 0, "", ".");
	if($('pagoTotalOtro')) $('pagoTotalOtro').value=$('pagoTotalOtro').hasClass('valActivo')?number_format(subTotal.toString(), 0, "", "."):number_format(subTotalOtro.toString(), 0, "", ".");
}

function seeAvailabilityByRoom(tipo, codigo, lang){	
	var target='mb_detail_'+codigo;
	$('typeRoom').value=tipo;
	$('codeRoom').value=codigo;
	var room=$(target).getPrevious("span").get("text");
	if($(target).innerHTML==""){
		$('formSearchHotels').set('send', {
			url: '/lib/'+lang+'/search-availability-by-room.php',
			method: 'get',
			onSuccess: function(texto, xmlrespuesta){
				$(target).set('html',texto);			
				if(texto!="error"){
					height=($$('#'+target+' table tr').length*22)+($$('#'+target+' table').length*15)+20;
					if($$('#'+target+' table').length>1) height=height+15;
					width=500;
					if(lang=='esp') Mediabox.open('#'+target, 'Detalle de tarifas por noche - Habitacion '+room, width+' '+height);
					if(lang=='eng') Mediabox.open('#'+target, 'Rates per night details - Room '+room, width+' '+height);
				}
			}			
		});
		$('formSearchHotels').send();
	}
	else{
		if(lang=='esp') Mediabox.open('#'+target, 'Detalle de tarifas por noche - Habitacion '+room, 'auto auto');
		if(lang=='eng') Mediabox.open('#'+target, 'Rates per night details - Room '+room, 'auto auto');
	}
	//else Mediabox.open('#'+target, 'Rates per night details - Room '+room, 'auto auto');
}

function seeAvailability(target, form, lang){	
	new Asset.images(["/images/btnConfirmaY-esp.gif", "/images/loading11.gif"]);
	$(target).innerHTML='<center><img src="/images/final-loading-'+lang+'.gif" /></center>';
	$(target).slide("in");//$(target).slide("in");
	$(form).set('send', {
		url: '/lib/'+lang+'/search-availability.php',
		method: 'get',
		onSuccess: function(texto, xmlrespuesta){			
			$(target).set('html',texto);			
			if($(form) && $$('#'+target+' table tr').length>1) $(form).slide('out');			
			$$('.closeRate').each(function(elem){
				elem.addEvent('click', function(event){
					event.preventDefault();
					$(target).slide('out');
				});
			});	
			if($('btnBooking')){
				$('btnBooking').addEvent('click', function(){
					if(validaSelectRoom()){					
						generaJsonRooms();
						$('formGoBooking').submit();
					}			
				});	
			}else{
				$(form).show();
				$(form).slide('in');
			}
			//$$('a.selectRoom').each(function(elem){
			$$('input.select').each(function(elem){
				elem.addEvent('click', function(){
					setSelectClass(elem);					
					setTotalRoom(elem.id);
					generaJsonRooms();					
				});
			});
			$$('.refRates').each(function(el){
				el.addEvent('click', function(){
					$$('.rate').each(function(td_val){				  
						td_val.toggleClass('valActivo');
					});
				});
			});
			
			$$('.Tips').each(function(el){				
				if(el.get("title")!=""){
					var string = el.getProperty("title").split(' :: ');
					var title = string[0];
					var text = string[1];
					el.removeProperty("title");
					el.store('tip:title', title); 
					el.store('tip:text', text);
				}
			});	
			new Tips('.Tips',{
				showDelay: 500,    //default is 100
				hideDelay: 100,   //default is 100
				offsets: {
					'x': 16,       //default is 16
					'y': 16        //default is 16
				},			
				fixed: false,      //default is false
				onShow: function(tip){
					tip.fade('in');
				},
				onHide: function(tip){
					tip.fade('out');
				}
			});
			
			$(target).slide("out");
			$(target).slide("in");
			
		}
	});
	$(form).send();
}
