var goes;

// Hack para firefox3
$(document).ready(function(){
	if($.browser.mozilla){
		z=$.browser.version.split('.');
		if(z[1]==9){
			$("#pesta h2").css('margin-right','21px');
			if($('#pesta a:visible').length<3){
				$("#pesta h2").css('width','257px');
			}
			$(".ofertasHome dd").css('margin-top','1px');
		}
	}

// Desglose pasajeros
	if(typeof(numpasajeros)!="undefined"){
		for(i=0;i<3;i++){
			if(numpasajeros[i]!=0){
				$(".desglosebox tbody tr").eq(i).show().find('.tipobillete').html(tipobillete[i]);
				$(".desglosebox tbody tr").eq(i).find('.numpasajeros').html(numpasajeros[i]);
			}
		}
		setDesglose();
	}

// si hay mensajes
	if(errorMessage!=''){showError(errorMessage);}

// Efecto campos formulario
	$("input").click(function(){if($(this).attr("title")==$(this).val())$(this).val("");});
	$("input").blur(function(){if(!$(this).val())$(this).val($(this).attr("title"));});
	$("#comment").click(function(){if($(this).attr("title")==$(this).val())$(this).val("");});
	$("#comment").blur(function(){if(!$(this).val())$(this).val($(this).attr("title"));});

// Efecto cambio de pestanyas.
	$("#pesta a").click(function(){
		$("#pesta a").removeClass("select");
		$(this).addClass("select");
		$("#modulo1 fieldset").css("display","none");
		$($(this).attr("href")).css("display","block");
		return false;
	});

// pestanyas seleccionadas por pagina
	q=document.location.toString().split('/');
	q=q[q.length-1].split('?');
	(q[0])?$("#menuPrincipal a[href='"+q[0]+"']").addClass('select'):$("#menuPrincipal a:eq(0)").addClass('select');
	z=$("#menuPrincipal a[href='"+q[0]+"']").text().toString().toLowerCase();
	(z)?z=$("#pesta a:contains('"+z+"')").addClass('select'):z=$("#pesta a:eq("+ixPF+")").addClass('select');
	if(!z.text()){$("#pesta a:eq("+ixPF+")").addClass('select');z=$("#pesta a:eq("+ixPF+")");}
	$("#modulo1 fieldset").css("display","none");
	$(z.attr("href")).css("display","block");

// datePicker
	$('.date-pick').datePicker({numCals:numCalendars}).dpSetSelected(new Date().asString());
	tmpDate = new Date(new Date().setMonth(new Date().getMonth()+11));
	tmpDate = D2( tmpDate.getDate() ) + '/' + D2( tmpDate.getMonth() + 1 ) + '/' + tmpDate.getFullYear();
	$('.date-pick').datePicker({endDate:tmpDate});

	$('.date-pick').change(function(){
		t=$('.date-pick').index(this);
		var apa=$(this).parents().filter('fieldset');
		var dl=apa.find('.date-pick').length;
		var te=apa.find('.date-pick').index(this)+1;
		if(dl!=te){if(isValidDate($(this).val(),'DMY')){
			$('.date-pick').eq(t+1).val(addDay($(this).val()));
			fh = $('.date-pick').eq(t+1).val();
			tmpfh = new Date(D2(parseInt(fh.substring(6),10)),D2(parseInt(fh.substring(3,5),10)-1),D2(parseInt(fh.substring(0,2),10))).asString();
			$('.date-pick').eq(t+1).datePicker({startDate:tmpfh});
		}}
	});
	
// Incrementar / reducir ocupaci?n buscador

	$('.more, .less').click(function(){
		var inp = $(this).parent().find('input');
		var type = $(inp).parent().parent().attr('class');
		var inpVal = parseInt(inp.val());
		if ($(this).hasClass('more')) {
			if ((type == 'adultos validar' && inpVal < 9) || (type == 'chavitos' && inpVal < 5) || (type == 'bebes' && inpVal < 2))
			return inp.val(inpVal+1);
		} else if (inpVal > 0) {
			return inp.val(inpVal-1);
		}
		return false;
	});


// Radio button idaVuelta s??lo ida buscador Vuelos
	if($('input[name="tipoVuelo"]:checked').val()=="idaVuelta"){
		$('#divFechaRegreso').show();
		$('#divFechaRegreso').addClass('validar');
	}else{
		$('#divFechaRegreso').removeClass('validar');
		$('#divFechaRegreso').hide();
	}
	$('input:radio[name=tipoVuelo]').live('click',function(){
		if($('input[name="tipoVuelo"]:checked').val()=="idaVuelta"){
			$('#divFechaRegreso').show();
			$('#divFechaRegreso').addClass('validar');
		}else{
			$('#divFechaRegreso').removeClass('validar');
			$('#divFechaRegreso').hide();
		}
	});
	
// Checkbox idaVuelta minibuscadores
	if ($('input:checkbox[name=tipoVuelo]').is(":checked")){
		$('#divFechaRegresoText').show();
		$('#divFechaRegresoMini').show();
		$('#divFechaRegresoMini').addClass('validar');
	}else{
		$('#divFechaRegresoMini').removeClass('validar');
		$('#divFechaRegresoMini').hide();
		$('#divFechaRegresoText').hide();
	}
	$('input:checkbox[name=tipoVuelo]').click(function(){
		if ($('input:checkbox[name=tipoVuelo]').is(":checked")){
			$('#divFechaRegresoText').show();
			$('#divFechaRegresoMini').show();
			$('#divFechaRegresoMini').addClass('validar');
		}else{
			$('#divFechaRegresoMini').removeClass('validar');
			$('#divFechaRegresoMini').hide();
			$('#divFechaRegresoText').hide();
		}
	});
	
// Radio button idaVuelta s??lo ida buscador Vuelo+Hotel
	$('input:radio[name=tipoVueloVH]').click(function(){
		if($('input[name="tipoVuelo"]:checked').val()=="idaVuelta"){
			$('#vuehot div[class="salidaregreso bottom"]').show();
			$('#vuehot div[class="salidaregreso bottom"]').addClass('validar');
		}else{
			$('#vuehot div[class="salidaregreso bottom"],#vuehot div[class="salidaregreso bottom validar"]').hide();
			$('#vuehot div[class="salidaregreso bottom validar"]').removeClass('validar');
		}
	});
	
// Select n??mero de ninyos
	$('#ninyo1,#ninyo2,#ninyo3,#ninyo4,#ninyo1VH,#ninyo2VH,#ninyo3VH,#ninyo4VH').hide();
	$('#numninyos,#numninyosVH').change(function(){
		tmp = ($(this).attr('id')=="numninyosVH")?"VH":"";
		$('#ninyo1,#ninyo2,#ninyo3,#ninyo4,#ninyo1VH,#ninyo2VH,#ninyo3VH,#ninyo4VH').hide();
		for(i=1;i<=($('#numninyos'+tmp).val());i++){$('#ninyo'+i+tmp).show();}
	});
	
// Select idioma
	$('#selectLang').change(function(){
		document.location = "?lang="+$(this).val();
	});

// Cambio de color al seleccionar un radiobutton + actualizacion de precios y detalles
	$(".horaVuelo li").click(function(){$(this).find('input').attr("checked","checked").trigger('click');});

	$('input:radio[name=ida],input:radio[name=vuelta]').click(function(){
		$(this).parent().parent().find('li').removeClass('select');
		$(this).parent().addClass('select');
		if($(this).hasClass('unique')){
			$('ul[class=horaVuelo]').eq(1).find('li').removeClass('select');
			$(".infoVuelta").fadeOut(200).css('backgroundColor','#fff');
		}else{
			if($(".infoVuelta").css('display')=='none' && $(this).attr('name')=='vuelta'){$(".infoVuelta").fadeIn(200).css('backgroundColor','#fff');}
			ac=$(this).parent().text().split(' ');
			$(".fecha"+$(this).attr('name')).html(ac[0]+' '+ac[1]);
			$(".salida"+$(this).attr('name')).html(ac[2]);
			$(".llegada"+$(this).attr('name')).html(ac[3]);
			$(".precio"+$(this).attr('name')).find("span").html($(this).val());
		}
		ct=parseFloat($('input:radio[name=ida]:checked').val())+parseFloat($('input:radio[name=vuelta]:checked').val());
		ct=ct.toFixed(2).replace(".",",");
		$(".costeTotal span").html(ct);
		setDesglose();
	});
	
// click ofertas vuelos
	$(".ofertasVuelos a").click(function(){
		k=$(this).find("span").html().split("-");
		$("#autoorigen").val(jQuery.trim(k[0]));
		$("#autodestino").val(jQuery.trim(k[1]));
		//$("#vuelos input:eq(1)")[0].autocompleter.setValue(jQuery.trim(k[0]));
		//$("#vuelos input:eq(2)")[0].autocompleter.setValue(jQuery.trim(k[1]));
		$("#modulo1 fieldset").hide();
		$("#pesta a").removeClass("select");
		$("#pesta a:eq("+ixPF+")").addClass("select");
		$("#vuelos").show();
		window.scrollTo(0,0);
		return false;
	});

//click ofertas hoteles
	
	$(".ofertasHoteles a").click(function(){
		k=jQuery.trim($(this).find("span").html());
		kk=k.split('&nbsp; &nbsp;');
		$("#hoteles input:eq(1)").val(kk[0]);
		//$("#hoteles input:eq(2)").val(kk[1]);
		$("#modulo1 fieldset").hide();
		$("#pesta a").removeClass("select");
		$("#pesta a:eq("+ixPH+")").addClass("select");
		$("#hoteles").show();
		window.scrollTo(0,0);
		return false;
	});
	
	
//click ofertas coches	
	$(".ofertasCoches a").click(function(){
		k=jQuery.trim($(this).find("span").html());
		kk=k.split('&nbsp; &nbsp;');
		$("#coches input:eq(1)").val(kk[0]);
		$("#modulo1 fieldset").hide();
		$("#pesta a").removeClass("select");
		$("#pesta a:eq("+ixPC+")").addClass("select");
		$("#coches").show();
		window.scrollTo(0,0);
		return false;
	});
	
//click ofertas vuelohotel	
	$(".ofertasVueloHotel a").click(function(){
		k=$(this).find("span").html().split("-");
		$("#autoorigen2").val(jQuery.trim(k[0]));
		$("#autodestino2").val(jQuery.trim(k[1]));
		$("#modulo1 fieldset").hide();
		$("#pesta a").removeClass("select");
		$("#pesta a:eq("+ixPVH+")").addClass("select");
		$("#vuehot").show();
		window.scrollTo(0,0);
		return false;
	});

// todos los destinos tabla
	$(".destinosTabla").click(function(){
		toff=$(this).offset();
		goes="#"+$(this).prev().attr("id");
		$createIn = $('body');
		if($(".destinosTabla").hasClass('hoteles')){
			attrs = {'id':'destinosTabla','class':'hoteles'};
		}else{
			attrs = {'id':'destinosTabla'};
		}
			
		cssRules = {'top':toff.top-3,'left':toff.left,'height':'330px','overflow':'hidden'};
		$createIn.append($('<div></div>').attr(attrs).css(cssRules).focus());
		loadTable(0,'');
		$("#destinosTabla").bind('mouseleave',function(){destroyTable()});
		if($.browser.msie&&$.browser.version=='6.0')
			$('select').css('visibility','hidden');
	});


// desglose precio div
	$(".desglosebox").bgIframe();
	$(".desglosehover").mousemove(function(e){$(this).parents().next(".desglosebox").css({top:(e.pageY+15)+'px',left:(e.pageX-($(this).parents().next(".desglosebox").width()/2))+'px'});}); 
	$(".desglosehover").hover(function(){$(this).parents().next(".desglosebox").fadeIn(100);
	},function(){$(this).parents().next(".desglosebox").fadeOut(100);});


// extras checkbox
	$(".extras input").change(function(){
		if($(this).is(':checked')){
			a=(parseFloat($(".extrasum").html())+parseFloat($(this).val())).toFixed(2);
		}else{
			a=(parseFloat($(".extrasum").html())-parseFloat($(this).val())).toFixed(2);
		}
		a=a.replace(".",",");
		$(".extrasum").html(a);
	});
	
// validaci??n formularios
	$('form.validar').submit(function(){return $M.validarFormulario($(this));});
	$('form.validarSeleccion').submit(function(){return $M.validarFormularioSeleccion($(this));});

// cuadros texto	
	$(".tbox").click(function(){
		if($.browser.msie&&$.browser.version=='6.0'){
			$("#ilegal").css("opacity", "0.7").css('height',$(document).height()+'px').css("display", "block");
		}else{
			$("#ilegal").css("opacity", "0").css('height',$(document).height()+'px').css("display", "block").animate({opacity:"0.7"}, 500);
		}
		var txtTitle = $(this).attr('title');
		$(".rest-info").load("jsp/texto.jsp?t="+txtTitle, function(){
			ix=(parseInt($(document).width(),10)-parseInt($("#inneri").width(),10))/2;
			if($.browser.msie&&$.browser.version=='6.0'){
				$('body,html').css('overflow','hidden');
			}else{
				$("#inneri").css('position','fixed');
			}
			$("#inneri").css("left", ix+"px").css("bottom", "20%").css("display", "block").bgIframe();
			$(".rest-info").css("display", "block").bgIframe();
			return false;
		});
		return false;
	});
	$("#ilegal").click(function(){
		if($.browser.msie&&$.browser.version=='6.0'){
			$("#inneri,#ilegal,.resti-info").hide();
			$('body,html').css('overflow','');
		}else{
			$("#inneri,#ilegal,.resti-info").fadeOut(300);
		}
	});
	
	$('.reserve').click(function() {
		$("#combi").val($(this).attr('id'));
		$("#combi2").val($(this).attr('id'));
		$("#detailRes").submit();
	});
	
	$('.moreDetailHotel').click(function(e){
		e.preventDefault();
		$(this).attr('href',$(this).attr('href')+$(this).attr('title'));
		document.location = $(this).attr('href');
	});
	
	/*$('#reservehuge').click(function() {
		var user = $('#usuario').val();
		var password = $('#contrasenya').val();
		$.ajax({
	        type: "post",
	        url: "jsp/loadUser.jsp",
	        cache: false,
	        context: document.body,
	        data: "user=" + user + "&passw=" + password,
	        success: function(param) { // result: if OK --> **user_data** else --> nothing.
				var init = param.indexOf('**');
				var end = param.lastIndexOf('**');
				var result = param.substring(init + 2, end);
				var values = result.split(';');
				$('#userId').val(values[0]);
				$('#nombre1').val(values[1]);
				$('#apellidos1').val(values[2]);
				//$('#tipoDocumento1').val(values[1]);
				$('#documento1').val(values[4]);
				$('#telefono1').val(values[5]);
				$('#mail1').val(values[3]);
			}
		});
	});*/
});

$M = {
	esEmail : function(string){
		var loEs = string.match(/^.+@[^\.].*\.[a-z]{2,}$/);
		return loEs;
	},
	esFecha : function(string){
		//chequeo de formato
		var previo = string.match(/^(0[1-9]|1\d|2\d|3[0-1])\/(0[1-9]|1[0-2])\/\d{4}$/);
	  	if(previo!=null){
	    	var strSeparator = "/";
	    	//meses no Febrero.
	    	var arrayDate = string.split(strSeparator);
	    	var arrayLookup = {'01':31,'03':31,'04':30,'05':31,'06':30,'07':31,'08':31,'09':30,'10':31,'11':30,'12':31};
	
		    var intDay = parseInt(arrayDate[0],10);
		    var intMonth = parseInt(arrayDate[1],10);
		    var intYear = parseInt(arrayDate[2],10);
 			//check si d??a de mes es v??lido 
		    if (arrayLookup[arrayDate[1]] != null) {
		      	if (intDay <= arrayLookup[arrayDate[1]] && intDay != 0 && intYear > 1000 && intYear < 2050)
		        	return true;     
		    }
		    //check Febrero //bugfix de parseInt //bugfix a??o bisiesto
		    if (intMonth == 2) {
		      	var intYear = parseInt(arrayDate[2],10);
		      	if (intDay > 0 && intDay < 29) {
		        	return true;
		     	} else if (intDay == 29) {
		      		if ((intYear % 4 == 0) && (intYear % 100 != 0) || (intYear % 400 == 0)) {
		          		return true;// year div by 4 and ((not div by 100) or div by 400) ->ok
		        	}
		      	}
		    }
	  	}else {
	    	return false; 
	  	}
	  	return false; 
	},
	validarFormulario : function(t){
		
		var es_valido = true;
		var tipo = ($('#typeSrc').val() && $('#typeSrc').val().length>0)?('#'+$('#typeSrc').val()+' '):'';
		var labels_v = $(tipo+'label.validar,'+tipo+'div.validar,'+tipo+'li.validar',t);
		var input_pw = $('input.password',t);
		var condiciones = $(tipo+'label.condiciones',t);
		var fecha_min = new Date(fechaHoy.getTime()+ ((60 * 1000 * 60 * 24) * 1));
		var fecha_max = new Date(fechaHoy.getTime()+ ((60 * 1000 * 60 * 24) * 360));
		var fecha_inicio = '';
		var fecha_fin = '';
		var t_valor_prev = "";
		var numAdultos = parseInt($('#numPasajeros').val(),10);
		var numNinyos = parseInt($('#numNinyos').val(),10);
		var numBebes = parseInt($('#numBebes').val(),10);
		labels_v.each(function(){
			var tt = $(this);
			var t_valor = $('input,select',tt).val();
			var t_title = $('input,select',tt).attr('title');
			var t_valorpw = $('input.password',tt).val();
			if(t_valorpw!==undefined && t_valorpw.length>0 && t_valor_prev!='' && t_valorpw!=t_valor_prev){es_valido = false;tt.addClass('error');errorMessage = msgErr['errNoMatchPw'];}else if(t_valorpw!==undefined){tt.removeClass('error');}
			t_valor_prev = (t_valorpw!==undefined && t_valorpw.length>0)?t_valorpw:t_valor_prev;
			if(t_valor==''||t_valor==t_title||(tt.hasClass('email')&&!($M.esEmail(t_valor)))||((tt.hasClass('fecha'))&&!($M.esFecha(t_valor)))){
				es_valido = false;
				if(tt.hasClass('m_label')){tt.addClass('error');}else{tt.addClass('error2');}
				if(tt.hasClass('email')&&!($M.esEmail(t_valor))){errorMessage = msgErr['errRevEmail'];}
				if((tt.hasClass('fecha'))&&!($M.esFecha(t_valor))){errorMessage = msgErr['errFechas'];}
			} else if(t_valorpw===undefined){
				tt.removeClass('error');
				tt.removeClass('error2');
				if(tt.hasClass('fechaIni')){fecha_inicio=new Date(parseInt(t_valor.substring(6),10),(parseInt(t_valor.substring(3,5),10)-1),parseInt(t_valor.substring(0,2),10));};
				if(tt.hasClass('fechaFin')){fecha_fin=new Date(parseInt(t_valor.substring(6),10),(parseInt(t_valor.substring(3,5),10)-1),parseInt(t_valor.substring(0,2),10));};
			};
		});
		if(es_valido && errorMessage=='' && fecha_inicio!='' && fecha_fin!='' && (fecha_inicio.getTime()<fecha_min.getTime() || fecha_fin.getTime()>fecha_max.getTime() || fecha_fin.getTime()<fecha_inicio.getTime())){
			es_valido=false;
			errorMessage = msgErr['errFechas'];
		}else if(!es_valido && errorMessage==''){
			errorMessage = msgErr['errCamposObl'];
		}else if(condiciones.length>0 && $('input:checked',condiciones).length==0){
			es_valido = false;
			errorMessage = msgErr['errCondGen'];
		} else if((numAdultos+numNinyos+numBebes)>9){
			es_valido = false;
			errorMessage = msgErr['errNumMax'];
		}else if(numAdultos<=0){
			es_valido = false;
			errorMessage = msgErr['errNumAdult'];
		}
		if(errorMessage!=''){showError(errorMessage);errorMessage = '';} else {
		showWaiting();
		animateWaiting();
		}
		return es_valido;
	},
	validarFormularioSeleccion : function(t){
		var es_valido = true;
		var conjunto = $("#conjuntoSeleccionado").val();
		if($(".radioIda"+conjunto+":checked").size()!=1){ es_valido = false; errorMessage=msgErr['errNoVueloIda'];  }
		if($(".radioVuelta"+conjunto).size() > 0){
			if($(".radioVuelta"+conjunto+":checked").size()!=1){ es_valido = false; errorMessage+=msgErr['errNoVueloVuelta'];  }
		}
		if(errorMessage!=''){showError(errorMessage);errorMessage = '';}
		return es_valido;
	}
}

// desglose detalles
function setDesglose(){
	$('input:radio[name=ida]').each(function(e){if($(this).is(':checked'))aa=e;});
	$('input:radio[name=vuelta]').each(function(e){if($(this).is(':checked')){bb=e-1;}});
	s=0;
	for(i=0;i<3;i++){
		if(numpasajeros[i]!=0){
			a=detalleprecio[aa][0][i].toString().split('|');
			if(bb!=-1){b=detalleprecio[bb][1][i].toString().split('|');
			}else{
				var b=new Array();
				b[0]=0;
				b[1]=0;
			}
			c=(parseFloat(a[0])+parseFloat(b[0])).toFixed(2);
			d=(parseFloat(a[1])+parseFloat(b[1])).toFixed(2);
			e=((parseFloat(c)+parseFloat(d))*numpasajeros[i]).toFixed(2);
			f=$(".desglosebox tbody tr").eq(i);
			f.find('.desbill').html(c);
			f.find('.destas').html(d);
			f.find('.destot').html(e);
			s=(parseFloat(s)+parseFloat(e)).toFixed(2);
		}
	}
	$(".desglosebox .sumtot").html(s);
}


// funciones destinos tabla
function loadTable(typ,abc){
	var tmp='';
	if($("#destinosTabla").hasClass('hoteles')){tmp='h';}else{tmp='v';}//{TODO:typ:typ,tipo=tmp}
	$("#destinosTabla").load("jsp/destinotabla.jsp",{typ:typ,abc:abc},function(){
		if($(this).is(":hidden")){
			$("#destinosTabla").show(200);
		}else{
			$("#destinosTabla .destnav").unbind('click');
			$("#destinosTabla .destit").unbind('click');
			$("#destinosTabla .destabc").unbind('click');
		}
		$("#destinosTabla .destnav").bind('click',function(){loadTable($(this).attr("rel"),'');return false;});
		$("#destinosTabla .destabc").bind('click',function(){
			tt=$(this).attr('rel').split('|');
			loadTable(tt[0],tt[1]);return false;
		});
		$("#destinosTabla .destit").one('click',function(){
			$(goes)[0].autocompleter.setValue($(this).text());
			destroyTable();
			return false;
		});
		if(typ=='0'){
			$('#destinosTabla').width(400).height(330).css('overflow','hidden');
		}else{
			$('#destinosTabla').css('overflow','auto');
		}
		$(goes).get(0).blur();
	});
}

function destroyTable(){
	$("#destinosTabla .destnav").unbind('click');
	$("#destinosTabla .destabc").unbind('click');
	$("#destinosTabla .destit").unbind('click');
	$("#destinosTabla").hide(300,function(){$(this).remove();});
	$('select').css('visibility','visible');
	
}

// calendario en castellano (datePicker)
// date localization for locale 'es'
// generated by J???rn Zaefferer using Java's java.util.SimpleDateFormat

function D2(val){return(val) < 10 ? '0' + val : val;}

function addDay(d){
	var date = d.match( /^(\d{1,2})\/(\d{1,2})\/(\d{4})$/ );
    var when = new Date( RegExp.$3, parseInt( RegExp.$2,10 ) - 1, RegExp.$1 );
	var then = new Date( when.getFullYear(), when.getMonth(), when.getDate() + 1 );
	return D2( then.getDate() ) + '/' + D2( then.getMonth() + 1 ) + '/' + then.getFullYear();
}

function minusDay(d){
	var date = d.match( /^(\d{1,2})\/(\d{1,2})\/(\d{4})$/ );
    var when = new Date( RegExp.$3, parseInt( RegExp.$2,10 ) - 1, RegExp.$1 );
	var then = new Date( when.getFullYear(), when.getMonth(), when.getDate() - 1 );
	return D2( then.getDate() ) + '/' + D2( then.getMonth() + 1 ) + '/' + then.getFullYear();
}

function isValidDate(dateStr, format) {
   if (format == null) { format = "MDY"; }
   format = format.toUpperCase();
   if (format.length != 3) { format = "MDY"; }
   if ( (format.indexOf("M") == -1) || (format.indexOf("D") == -1) || (format.indexOf("Y") == -1) ) { format = "MDY"; }
   if (format.substring(0, 1) == "Y") { // If the year is first
      var reg1 = /^\d{2}(\-|\/|\.)\d{1,2}\1\d{1,2}$/
      var reg2 = /^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$/
   } else if (format.substring(1, 2) == "Y") { // If the year is second
      var reg1 = /^\d{1,2}(\-|\/|\.)\d{2}\1\d{1,2}$/
      var reg2 = /^\d{1,2}(\-|\/|\.)\d{4}\1\d{1,2}$/
   } else { // The year must be third
      var reg1 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{2}$/
      var reg2 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/
   }
   if ( (reg1.test(dateStr) == false) && (reg2.test(dateStr) == false) ) { return false; }
   var parts = dateStr.split(RegExp.$1); // Split into 3 parts based on what the divider was
   if (format.substring(0, 1) == "M") { var mm = parts[0]; } else if (format.substring(1, 2) == "M") { var mm = parts[1]; } else { var mm = parts[2]; }
   if (format.substring(0, 1) == "D") { var dd = parts[0]; } else if (format.substring(1, 2) == "D") { var dd = parts[1]; } else { var dd = parts[2]; }
   if (format.substring(0, 1) == "Y") { var yy = parts[0]; } else if (format.substring(1, 2) == "Y") { var yy = parts[1]; } else { var yy = parts[2]; }
   if (parseFloat(yy) <= 50) { yy = (parseFloat(yy) + 2000).toString(); }
   if (parseFloat(yy) <= 99) { yy = (parseFloat(yy) + 1900).toString(); }
   var dt = new Date(parseFloat(yy), parseFloat(mm)-1, parseFloat(dd), 0, 0, 0, 0);
   if (parseFloat(dd) != dt.getDate()) { return false; }
   if (parseFloat(mm)-1 != dt.getMonth()) { return false; }
   return true;
}

function addMonth(d,month){
	t=new Date(d);
	if(d.getMonth()==11){
		t.setYear(d.getFullYear()+1);
		t.setMonth(0);
	}else{
		t.setMonth(d.getMonth()+month);
	}
	return t;
} 

// formulario efecto submit en buscadores
function setURL(idForm,tipo,idFecha,operacion){
//	hayWait='<img src="img/loadingAnimation.gif" alt="" />';
//	hayWait='<div id="cargandowaiting" class="cargandoFlash"></div><script type="text/javascript">var fo = new FlashObject("http://upload.mndtravel.es/mnddemo/151x281_concurso-cg.swf", "start", "", "100%", "6,0,29,0");fo.addParam("quality", "high");fo.addParam("menu", "false");fo.addParam("wmode", "opaque");fo.write("cargandowaiting");<\/script>';
	/*if(!hayWait){
		if (typeof document.body.style.maxHeight === "undefined") {//if IE 6
			$("body","html").css({height: "100%", width: "100%"});
			$("html").css("overflow","hidden");
			if (document.getElementById("TB_HideSelect") === null) {//iframe to hide select elements in ie6
				$("body").append("<iframe id='TB_HideSelect'></iframe><div id='TB_overlay'></div><div id='TB_window'></div>");
				$("#TB_overlay").click(tb_remove);
			}
		}else{//all others
			if(document.getElementById("TB_overlay") === null){
				$("body").append("<div id='TB_overlay'></div><div id='TB_window'></div>");
				$("#TB_overlay").click(tb_remove);
			}
		}
		if(tb_detectMacXFF()){
			$("#TB_overlay").addClass("TB_overlayMacFFBGHack");//use png overlay so hide flash
		}else{
			$("#TB_overlay").addClass("TB_overlayBG");//use background and opacity
		}
		$("body").append("<div id='TB_load'><img src='"+imgLoader.src+"' /></div>");//add loader to the page
		$('#TB_load').show();//show loader
	}else{
		$('select').hide();
		$('html').css('overflow','hidden');
		$('body').css('overflow','hidden').append('<div id="waitCont" style="z-index:1000;top:0px;left:0px;width:100%;height:100%;position:absolute;text-align:center;background:#fff;"></div>');
		$('#waitCont').append('<div id="WC" style="z-index:1002;position:relative;top:30%;background:#fff;"></div>');
		$('#WC').html(hayWait);
		$('#cargandowaiting').css('float','none');
	}*/
	
	$('#typeSrc').val(tipo);
	if(idFecha!=''){
		tmpDate=(operacion=="1")?addDay($(idFecha).val()):minusDay($(idFecha).val());
		$(idFecha).val(tmpDate);
	}
	link = $(idForm + " fieldset:visible input[type=hidden]:first").val();
	$(idForm).attr("action",link).submit();	
}

function setURLNWS(idForm,tipo,link){
	$('#typeSrc').val(tipo);
	$(idForm).attr("action",link).submit();
}

function setURL2(){
	showError(msgErr['errMantenim']);
}

// formulario seleccion
function setURLSelection(conjunto){
	$("#getLoad").trigger("click");
	link=$(".contenedorCombinados input[type=hidden]:first").val();
	$("#conjuntoSeleccionado").val(conjunto);
	$("#formCombinados").attr("action",link).submit();
}

// formulario seleccion
function setURLSelectionCar(conjunto,indice){
	$("#getLoad").trigger("click");
	link=$(".contenedorCombinados input[type=hidden]:first").val();
	$("#cocheKey").val(conjunto);
	var tmp = $("#s_puntorecogida"+indice).val()
	$('#puntoKey').val(tmp);
	$("#formCombinados").attr("action",link).submit();
}

// Hotel optional supplements (now only implemented by xPlayat)
function setSupplements (inputName) {
	var price = 0;
	var vtya = inputName.split('_');
	var optAux = "";
	$('input:checkbox[name=' + inputName + ']').each(function(e) {
		if ($(this).is(':checked')) {
			price +=  parseFloat($(this).val());
			optAux += $(this).attr('id') + ';';
		} 
	});
	var hotelPrice = $('#p_' + vtya[0]).val(); // hotel price
	var suplPrice = $('#sup_' + vtya[0]).val(); // mandatory supplement price
	var descPrice = $('#desc_' + vtya[0]).val(); // discounts price
	var totalPrice = parseFloat(price) + parseFloat(hotelPrice) + parseFloat(suplPrice) + parseFloat(descPrice);
	totalPrice = totalPrice.toFixed(2);
	$('#precioTotal_' + vtya[0]).html(totalPrice.replace('.', ','));
	$('#optional_' + vtya[0]).val(optAux);
}

function setCombinationPrice (inputId, value) {
	var vtyaHotel = inputId.split('_');
	var input = $('#' + inputId);
	if (input.is(':checked')) {
		$.ajax({
	        type: "post",
	        url: "jsp/xplayatBooking.jsp",
	        cache: false,
	        context: document.body,
	        data: "combiKey=" + value + "&hotelKey=" + vtyaHotel[0],
	        success: function(param) {
	        	// result = hotelPrice;discountsPrice;suplementsPrice
	       		var result = param.split(';');
	       		$('#p_' + vtyaHotel[0]).val(result[0]); // hotel price
	       		$('#sup_' + vtyaHotel[0]).val(result[2]); // mandatory supplement price
	       		$('#desc_' + vtyaHotel[0]).val(result[1]); // discounts price
	       		setSupplements(vtyaHotel[0] + '_supplement');
	       	}
		});
	}
}

function setURLLink(idForm,link){
	$('#msgEmail').hide();
	$(idForm).attr("action",link).submit()
}

function equalsValue(value1,value2){
	if(value1==value2){return true;}else{return false;}
}

function password(){
	$('#msgEmail').hide();
	$('#registro').attr("target","iframeEmail");
	$('#registro').attr("action","jsp/recoverpw.jsp").submit();
}

function login(){
	var md5pass = "";
	$('#msgEmail').hide();
	if(($('#password').val()!=null) && ($('#password').val()!="")){
		md5pass = hex_md5($('#password').val())
	}
	$('#password').val(md5pass);
	$('#registro').attr("target","_self");
	$('#registro').attr("action","my-travels.do").submit();
}

function loginReservation(aIda,aVuelta){
	var erroresTxt = "";
	var usuario = $('#usuario').val();
	var passw = $('#contrasenya').val();
	//var md5pass = "";
	$('.errorLogin').hide();
	/*if(($('#contrasenya').val()!=null) && ($('#contrasenya').val()!="")){
		md5pass = hex_md5($('#contrasenya').val())
	}else{erroresTxt += msgErr['errorNoPw']+"<br/>";}
	$('#contrasenya').val(md5pass);*/
	if(usuario == ""){ erroresTxt += msgErr['errorNoUser']+"<br/>"; }
	if(passw == ""){ erroresTxt += msgErr['errorNoPw']+"<br/>"; }
	if(erroresTxt != ""){ $('.errorLogin').html(erroresTxt).show(); return; }
	
	$('.cargando').fadeIn(150);$('.bLoginUser').fadeOut(100);
	var d = new Date();
	
	$.ajax({ 
		url: 'jsp/loadUser.jsp?user='+usuario+'&passw='+passw+'&aIda='+aIda+'&aVuelta='+aVuelta+'&mandarina='+d.getTime(),
		type: 'POST',
		dataType: 'html',
		timeout: 5000,
		error: function(){ $('.errorLogin').html(msgErr['errorRespuesta']).show();$('.cargando').fadeOut(150);$('.bLoginUser').fadeIn(100);},
		success: function(texto){
			var cliente = texto.split('##');
			if (cliente.length < 7){ $('.errorLogin').html(msgErr['errorNoLogin']).show(); $('.cargando').fadeOut(150);$('.bLoginUser').fadeIn(100);return; }

			$('.loginClient').fadeOut(350);
			$('.nombreCl').html(jQuery.trim(cliente[1]));
			$('.welcome').fadeIn(350);
			
			var p = '1';
			$('#idcliente'+p).val(jQuery.trim(cliente[0]));
			$('#nombre'+p).val(jQuery.trim(cliente[1]));
			$('#apellidos'+p).val(jQuery.trim(cliente[2]));
			$('#documento'+p).val(jQuery.trim(cliente[3]));
			$('#telefono'+p).val(jQuery.trim(cliente[4]));
			$('#municipio'+p).val(jQuery.trim(cliente[5]));
			$('#mail'+p).val(jQuery.trim(cliente[6]));
			if($('#tarjetaFidelizacionIda'+p).size()>0) { $('#tarjetaFidelizacionIda'+p).val(jQuery.trim(cliente[7])); }
			if($('#tarjetaFidelizacionVuelta'+p).size()>0) {$('#tarjetaFidelizacionVuelta'+p).val(jQuery.trim(cliente[8])); }
			
		}
	});	
}

function confirmarReserva(){
	document.location.href='confirmation.do';
}

function intentarRePago(){
	document.datosPago.submit();
}

function sortPage(num,location){
	document.location = location+"op="+$("#orden"+num).val();
}

function numResultsPage(num,location){
	document.location = location+"rp="+$("#numResults"+num).val();
}

// Abrir popup
function ventanaSecundaria (URL){
window.open(URL,"ventana1","width=580, height=350, scrollbars=yes, menubar=no, location=no, resizable=no")
}

// mostrar pantalla de errores
function showError(msg){
	$("#warning ul li").html(msg);
	$("#getThick").trigger("click");
}

// mostrar preloader
var counter = 0;
function animateWaiting(){
	if (counter>3) {counter = 0;}
	$('.layercont img').hide();
	$('.layercont #load'+counter).show();
	counter++;
	return setTimeout('animateWaiting()',850);
}

function showWaiting(){
	$('body,html').css('overflow','hidden');
	$('#loaderlayer').css('opacity','0.85').fadeIn(200);
	$('.layercont').show();
	
	if(jQuery.browser.msie && jQuery.browser.version=='6.0'){
		$('body select').hide();
		$('#loaderlayer').height($('body').height());
	}
	
	return false;
}
function initGoogleMaps (coordenadas) {
	if (coordenadas != '') {
		var coord = coordenadas.split(',');	
		var map = null;
		var geocoder = null;
		var gnp = coord[0];
		var gep = coord[1];
		var gzo = '14';

		if (GBrowserIsCompatible()) {
			map = new GMap2(document.getElementById("mapgoo"));
			map.setCenter(new GLatLng(gnp, gep), parseInt(gzo));
			map.setZoom(parseInt(gzo));
			map.addControl(new GSmallMapControl());
			var marker = new GMarker(new GLatLng(gnp, gep));
			map.addOverlay(marker);

			geocoder = new GClientGeocoder();
			GEvent.addListener(map, "click", function(marker,point) {
				map.clearOverlays();
				marker = new GMarker(point);
				map.addOverlay(marker);
				np=point.toString().split(', ')
				np[0]=parseFloat(np[0].replace('(','')).toFixed(6);
				np[1]=parseFloat(np[1].replace(')','')).toFixed(6);
				gnp=np[0];
				gep=np[1];
				np=np[0]+'|'+np[1]+'|'+map.getZoom();
			});
		}
	}
}

function createBookmarkLink (url, title) {
	if (window.sidebar) { // Mozilla Firefox Bookmark
		window.sidebar.addPanel(title, url,"");
	} else if( window.external ) { // IE Favorite
		window.external.AddFavorite(url, title); 
	}
	else if (window.opera && window.print) { // Opera Hotlist
		return true; 
	}
}

function incDate (sFec0) {
	var nDia = sFec0.getDate();//parseInt(sFec0.substr(0, 2), 10);
	var nMes = sFec0.getMonth(); //parseInt(sFec0.substr(3, 2), 10);
	var nAno = sFec0.getFullYear(); //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 new Date(nAno, nMes, nDia);
}

function decDate(sFec0){
	/*var nDia = Number(sFec0.substr(0, 2));
	var nMes = Number(sFec0.substr(3, 2));
	var nAno = Number(sFec0.substr(6, 4));*/
	var nDia = sFec0.getDate();
	var nMes = sFec0.getMonth();
	var nAno = sFec0.getFullYear();
	nDia -= 1;
	if (nDia == 0) {
		nMes -= 1;
		if (nMes == 0) {
			nMes = 12;
			nAno -= 1;
		}
		nDia = finMes(nMes, nAno);
	}
	return new Date(nAno, nMes, nDia);
}

function finMes (nMes, nAno) {
	var aFinMes = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
	return aFinMes[nMes] + (((nMes == 1) && (nAno % 4) == 0)? 1: 0);
}
