/* ---  genericas de entorno -- */
/* blur a quien lo llama */
function sacarFoco(e){this.blur();}
/* imprimir voucher */
function imprimirBaucher(){
var baucherWindow = window.open($('surl').get('value') + 'booking/baucherprint/'+$('codigo_idioma').get('value')+'/1/baucher/'+$('cr').get('value')+'/', 'baucherWindow','left=20,top=20,width=1050,height=660,toolbar=1,resizable=0,scrollbars=yes');}
/*tildar pasos*/
function tildarPaso(nro){if($('p'+nro))$('p'+nro).addClass('tilde');}
/* carga los campos de habitacion segun la cantidad de habitaciones*/
function camposChildXHabitacion (){var cant = this.get('value').toInt();agregarCamposAdChilds('distribuciones' , cant , palabrasForm);}
/*carga de un select*/
function loadingSelects(id,estado){$(id).toggleClass('cargando').set('disabled',estado);}
/* resetear formulario -> para cuando hay habitaciones cargadas*/
function resetearForm(e){$('distribuciones').empty();}
/*  --- monedas --- */
/* Cambia el signo de de las monedas de la pagina segun la clase*/
function cambioMoneda(e){var all = $('moneda_id').getSelected();var rel = all[0].get("rel");signoS = rel.substring(rel.indexOf('-')+1);$('monedaSingoS').set("value",signoS);$$('.moneda_codigo').set("html",signoS);$$('.monedatipo').set("html",signoS);}
/* Trae la moneda segun la conbinacion hotel -> pais seleccionada */
function buscarMonedaPais(){var pais = $('pais_id').get('value').toInt();var hotel = $('hotel_id').get('value').toInt();	var toUrl = $('surl').get('value')+'monedero/buscarselectmonedasbypais/';var objAjax = new Request({method: 'post',data: {'pais':pais,'hotel':hotel}	,url:toUrl,onRequest: function(texto, xmlrespuesta){loadingSelects('moneda_id',true);},onSuccess: function(texto, xmlrespuesta){$('moneda_id').set('html', texto);loadingSelects('moneda_id',false);cambioMoneda();},onFailure: function(err){alert(err);}}).send();}
/* cantidad de noches */
function moverCantidadDeNoches(){var f1 = $('checkin').get('value').split('-');var f2 = $('checkout').get('value').split('-');var noches = calcularDiferenciaInOut(f1,f2);$('noches_nro').set('html', noches.toInt());}
function calcularNoches (){return  $('noches_nro').get('html').toInt();}	
function calcularDiferenciaInOut(f1 , f2){/*PATCH (al pasar por la funcion date tengo un mes de mas todavia  no se por que )*/var fout = new Date(f2[2] , f2[1]-1,f2[0]);var fin = new Date(f1[2] , f1[1]-1,f1[0]);return fin.diff(fout);}
/* Habitaciones */
function calcularSubtotalHabitaciones(e){var subt = 0 ;var sels = $$('.habitaciones  select.selecantidad');sels.each(function (el){var c = $(el).get('value').toInt();var p = el.getNext().get('value').toFloat();subt += (p*c).toFloat();});	$('subtotal_habitaciones').set('html',subt.round(2));}
function cargarHabitaciones (req , palabrasForm){if(!$chk(req)) return false;var values = new Hash();var data  = req.split('&');data.each(function (v,k){var d = v.split('=');if($chk(d[0])){values.set(d[0], d[1].toInt());}});$('habitaciones').set('value',values.habs );agregarCamposAdChilds('distribuciones' , values.habs , palabrasForm, values);}
function agregarCamposAdChilds (padreId , cantidad , lang ){var vals = false;if($chk(arguments[3])){	var values = arguments[3];vals = true;}if(!$chk(padreId) ||!$chk(cantidad) ) return false;$(padreId).empty();	for( var i = 0 ; i < cantidad ; i ++){var sadultos = new Element('label',{'for':'adultos_'+i ,'html':lang.campo_adultos}).adopt(new Element('select' , {id:'adultos' , name:('adultos_'+i),id:('adultos_'+i), 'class':'adultos'}).adopt(getOptions(1,7)));if(vals){sadultos.getFirst().set('value',values.get('adultos_'+i));}var schilds = new Element('label',{'for':'childs_'+i , 'html':lang.campo_chids}).adopt(new Element('select' , {id:'childs_'+i , name:('childs_'+i), 'class':'childs','selected':'2'}).adopt(getOptions(0,5)).addEvent('change',function (){cargarCamposEdad(this , lang);}));$(padreId).adopt(new Element('div',{'class':'filaadchilds'}).adopt(new Element('strong',{'html':lang.titulo_campos+' '+(i+1)+' ' , 'class':'titulo'}) , sadultos , schilds),'before');if(vals){var edades = new Array();var cchild = values.get('childs_'+i);	schilds.getFirst().set('value',cchild);for(j = 0 ; j<cchild; j++){ edades.push(values.get('child_'+i+'_'+j));}cargarCamposEdad($('childs_'+i) , lang ,edades );}}return true;}
function getOptions(desde , cant){var opts = new Array();for(var i = desde; i < cant; i++ ){opts.include(new Element('option' , {'value':i}).appendText(i.toString()));}return 	opts;}
function cargarCamposEdad(select , lang){var vals = false;if($chk(arguments[2])){var values = arguments[2];vals = true;}var id = select.id.substr(select.id.lastIndexOf('_')+1);var val = select.get('value').toInt();if($(select).getParent().getNext() ){$(select).getParent().getNext().destroy();}var campos = new Array();if($chk(val) && val <= 0) return false;for (var i = 0 ; i < val ; i++ ){var cec = new Element('select' , { name:('child_'+id+'_'+i), id:('childc'+id+'e'+i), 'class':'edad'});campos.include(new Element('label',{'for':'edad_child_'+i , 'html':lang.campo_edad}).adopt(cec.adopt(getOptions(0,18))));if(vals){cec.set('value',values[i]);}}$(select).getParent().getParent().adopt(new Element('div',{'class':'edades'}).adopt(campos));}
/* paso 2*/
function terminos(){/*TODO reemplazar por un decorador que agregue un link*/var url =  $('surl').value+'booking/condiciones/'+$('codigo_idioma').value+'/1';if($chk( $('dispos').get('value')))url += '/disid/'+ $('dispos').get('value');	if($chk( $('opcionales').get('value')))url +='/optid/'+ $('opcionales').get('value');window.open(url,'_blank','width=500,height=600');}
/*---  validacion de tarjeta de credito ---*/
function validarTarjeta(campo){var $num_tarjeta = $(campo).get('value').toString();if($num_tarjeta.length > 0){$num_tarjeta = $num_tarjeta.replace(/\D|\s/i, '');$length = $num_tarjeta.length;if($length > 0){var $parity = $length % 2;var $sum = 0;	for(var $n=0; $n < $length; $n++){$digit = $num_tarjeta.substring($n,$n+1).toInt();if ($n%2 == $parity ) $digit = $digit.toInt()* 2;if ($digit > 9) $digit -= 9; $sum += $digit.toInt();}if($sum%10==0){return true;}}}campo.errors.push("El n\xFAmero de la tarjeta de cr\xE9dito no es v\xE1lido.");campo.focus();return false;}
/**reemplaza un nro en el mensaje definido  (para mensajes que inpliquen personas)**/
function reemplazarN (texto , nro){if($chk(texto)){return texto.replace('{n}' , nro);}} 
/* --- paso1 validar info antes de buscar ---*/
function validarbusqueda(e,lang)
{	e.preventDefault();
	if($('habitaciones_ids')){
		var varss = $('habitaciones_ids').get('value');
		var ids = varss.split('-');		
		for(var i = 0 ; i < ids.length; i++){
			var id = ids[i].toInt();
			if($('total_permitido_'+id)){//es de grupo y esta en ver todas
				cant = cantper = cantsol = 0 ;
				var idsGrupo  = new Array();
				cantper = $('total_permitido_'+id).get('value').toInt();
				cant =  $('cantidad_'+id).get('value').toInt();
				if(cant > 0){	
					var idsGrupo = $('grupoIds_'+id).get('value').split('-');
					var habs = '';
					for(var a= 0 ;a< idsGrupo.length;a++){
						habs += ' '+	$('nombre_'+idsGrupo[a]).get('value');	
						cantsol += $('cantidad_'+idsGrupo[a]).get('value').toInt();
						if(cantsol > cantper ){							
							return reemplazarN(lang.dispo_grupo_max_habitaciones.replace('{hab}',habs),cantper);
						}
					}							
				}
			}		
		}
	}
	$('form_paso1').submit();
}
/* fecha de vencimiento para que no puedan elegir los datos */
function validarVencimiento(){}
/* selects de meses*/function acomodarMeses(e){var y = $('tarjeta_vence_anio').get('value').toInt();var hoy = new Date();var mhoy =(hoy.get('year').toInt() == y ) ?  hoy.get('mo').toInt()+1 : 1;$('tarjeta_vence_mes').empty().adopt(getOptions(mhoy,13));}
