var fondo={portada:'img/fondoazul.jpg',habitaciones:'img/fondovioleta.jpg', tarifas:'img/fondoazul.jpg',servicios:'img/fondoamarillo.jpg', mapa:'img/fondorojo.jpg'};
var nodoTop, nodoBck;
var images;
var totales=0;
var preloadImages = new Array();
$('document').ready(function(){
        $.preload.gap=5;
	web.init();
	web.activo=$('#portada');

	$('#habitacionesBtn').live('click', function(event){web.mostrarHabitaciones(event, $('#habitaciones'));});
	$('#tarifasBtn').live('click', function(event){web.mostrarTarifas(event, $('#tarifas'));});
	$('#serviciosBtn').live('click', function(event){web.mostrarServicios(event,$('#servicios'));});
	$('#mapaBtn').live('click', function(event){web.mostrarMapa(event,$('#mapa'));});
	$('#contactoBtn').live('click', function(event){web.mostrarContacto(event, $('#contacto'));});
	$('.cambiarTipo').live('click', function(event){ 
		event.preventDefault(); 
		$('.tipoHabCh').removeClass('estado2').addClass('estado1'); 
		$(this).find('.tipoHabCh').removeClass('estado1').addClass('estado2'); 
		web.filtrarHabitacion($(this).attr('rel')); 
	});
	$('#contacto').draggable({containment:$('#bg1'), handle:$('#contactoBar')});
	$('#enviarContactoBtn').live('click', function(event){event.preventDefault();web.enviarContacto();});
	$('#cerrarContacto').live('click', function(event){web.cerrarContacto(event,$('#contacto'));});
	$('.hab').live('click', function(){var habitacion = $(this).attr('rel');web.detallesHabitacion(habitacion);});
	$('.gusta').live('click', function(event){event.stopPropagation();});
	$('#recomendar').draggable({containment:$('#bg1'), handle:$('#drag')});
	$('.compartir').live('click', function(event){ 
		event.preventDefault();
		$('#comparteHabitacion').text('COMPARTE LA HABITACION '+web.habitacionRecomendada);
		$('.pp_pic_holder').animate({opacity:0}, 'slow', function(){
			$(this).addClass('hidden');
			$('#recomendar').removeClass('hidden');
		});
	});
	$('#cerrarRec').live('click', function(event){ 
		event.stopPropagation();
		$('#recomendar').addClass('hidden');
		$('#recomendarMSG').html('').removeClass('load');
		$('.pp_pic_holder').removeClass('hidden').animate({opacity:1}, 'slow');
	});
	$('#enviarBtn').live('click', function(){web.enviarRecomendar();});
});

var web = {
	init: function(){
		web.cargarTarifas(web.cargar);
		$('#contacto').css({position:'absolute', left:($(window).width() - $('#contacto').width())/2 ,top:42});
		$('#recomendar').css({position:'absolute', left:($(window).width() - $('#recomendar').width())/2 ,top:42});
	},
	cargarTarifas: function(callBack){
		var datos = jQuery.parseJSON('{"action":"getTarifas"}');
		$.ajax({
			type: "POST", 
			data: datos, 
			url: web_path+'php/tarifas.php', 
			dataType: "json",
			/*beforeSend: function(){},*/
			success : function(response){
				if(response!=null && response.status){
					$('#tarifas').html(response.html);
                                        web.tarifasCargadas=true;
				}
                                if(callBack && typeof(callBack) === "function"){ callBack();}
			},
			error: function(){
				if(callBack && typeof(callBack) === "function"){ callBack();}
			}
		});
		/*if(callBack && typeof(callBack) === "function"){
			callBack();
		}*/
	},
	cargar: function() {
		var nodo = $('#habitaciones');
		if(!web.habitacionesCargadas){
		$('#loadH').removeClass('hidden');
		var datos = jQuery.parseJSON('{"action":"mostrarHabitaciones"}');
			$.ajax({
				type: "POST", 
				data: datos, 
				url: web_path+'php/habitaciones.php', 
				dataType: "json",
				success : function(response){
					if(response!=null && response.status){
						/*if(web.activo.attr('id')!=nodo.attr('id')){return;}*/
						nodo.html(response.html);
						$('#loadH').addClass('hidden');
						web.habitacionesCargadas=true;
					}
					web.preload();
				},
				error: function(){
					web.preload();
				}
			});
		}
		
	},
	preload: function(){
                var totales=$('img').size()+web.imagenes.length;
                var cargadas=0;
		$.preload( 'img', {
                        enforceCache:true,
			onRequest:function(){},
			onComplete:function(){ cargadas++;$('#porcentaje').html(Math.round((cargadas*100)/totales)); },
			onFinish:function(){
				$.preload(web.imagenes, {
                                        enforceCache:true,
					base:'img/',
                                        onComplete:function(){ cargadas++;$('#porcentaje').html(Math.round((cargadas*100)/totales)); },
					onFinish:function(){
						$('#preload').addClass('hidden');
						$('body').append('<div id="loadH" class="hidden"><img src="img/load.gif" style="margin-top:274px;"/><br />Cargando...</div>');
						web.actualizar(window.location.hash);
                                                preloadImages[0] = new Image();
                                                preloadImages[0].src = "img/fondoazul.jpg";
                                                preloadImages[1] = new Image();
                                                preloadImages[1].src = "img/fondovioleta.jpg";
                                                preloadImages[2] = new Image();
                                                preloadImages[2].src = "img/fondoamarillo.jpg";
                                                preloadImages[3] = new Image();
                                                preloadImages[3].src = "img/fondorojo.jpg";
					}
				});
				
			},
			threshold: 1
		});
	
	},
	animarFondo: function(fondo){
		if(!web.animando){
			web.animando=true;
			nodoTop = $('#bg1');
			if(!nodoTop.hasClass('top')){nodoTop=$('#bg2').addClass('top');nodoBck= $('#bg1');}else{nodoBck= $('#bg2').removeClass('top');}
			nodoTop.css({opacity:1});
			nodoBck.css({'backgroundImage':'url('+fondo+')', opacity:1});
			//nodoBck.css('background-image',fondo);
			nodoTop.animate({opacity:0}, 1500, function(){nodoTop.removeClass('top');nodoBck.addClass('top');web.animando=false;});
		}
		$('#loadH').addClass('hidden');
		
	},
	mostrarHabitaciones: function(event, nodo){
		event.preventDefault();
		_gaq.push(['_trackPageview', '/#habitaciones']);
		$('#contacto').addClass('hidden');
		window.location.hash='habitaciones';
		web.activo.addClass('hidden');
		web.activo=nodo;
		web.animarFondo(fondo.habitaciones);
		if(web.habitacionesCargadas){
			if(web.activo.attr('id')!=nodo.attr('id')){return;}
			nodo.removeClass('hidden');
		}else{
		$('#loadH').removeClass('hidden');
		var datos = jQuery.parseJSON('{"action":"mostrarHabitaciones"}');
			$.ajax({
				type: "POST", 
				data: datos, 
				url: web_path+'php/habitaciones.php', 
				dataType: "json",
				success : function(response){
					if(response!=null && response.status){
						if(web.activo.attr('id')!=nodo.attr('id')){return;}
						nodo.html(response.html).removeClass('hidden');
						web.habitacionesCargadas=true;
						$('#loadH').addClass('hidden');
						
					}else{
                                            $('#loadH').addClass('hidden');
                                            nodo.html('<div class="loadError">Ocurrió un error al intentar cargar listado de habitaciones.<br />Refresque la página y vuelva a intentarlo.</div>').removeClass('hidden');
                                        }
				},
				error: function(){
					$('#loadH').addClass('hidden');
                                        nodo.html('<div class="loadError">Ocurrió un error al intentar cargar listado de habitaciones.<br />Refresque la página y vuelva a intentarlo.</div>').removeClass('hidden');
				}
			});
		}
	
	},
	filtrarHabitacion:function(tipo){
		if(tipo==web.tipoHb){
			if(!web.activado){
				$('.hab').removeClass('disabled');
				web.tipoHb=tipo;
				web.activado=true;
				$('.tipoHabCh').removeClass('estado2').addClass('estado1'); 
				return;
			}
			
		}
		web.tipoHb=tipo;
		web.activado=false;
		$('.hab').addClass('disabled');
		$('#habitaciones').find('.hab').each(function(){ 
			if($(this).hasClass(tipo)){ 
				$(this).removeClass('disabled'); 
			} 
		});
	},
	mostrarTarifas: function(event, nodo){
            if(event!=null){ event.preventDefault(); }
            if(!web.tarifasCargadas){
                $('#tarifas').html('<div class="loadError"><img src="img/loadF.gif" /> cargando tarifas...</div>');
                //$('#loadH').addClass('hidden');
                //web.cargarTarifas();
                var datos = jQuery.parseJSON('{"action":"getTarifas"}');
		$.ajax({
			type: "POST", 
			data: datos, 
			url: web_path+'php/tarifas.php', 
			dataType: "json",
			beforeSend: function(){
                            
                        },
			success : function(response){
                            if(response!=null && response.status){
                                    $('#tarifas').html(response.html);
                                    web.tarifasCargadas=true;
       
                            }else{
                                $('#tarifas').html('<div class="loadError">Ocurrió un error al intentar cargar listado de tarifas.<br />Refresque la página y vuelva a intentarlo.</div>');
                            }
                            //$('#loadH').addClass('hidden');
			},
			error: function(){
                            $('#tarifas').html('<div class="loadError">Ocurrió un error al intentar cargar listado de tarifas.<br />Refresque la página y vuelva a intentarlo.</div>');
                            //$('#loadH').addClass('hidden');
			}
		});
            }
		$('#contacto').addClass('hidden');
		_gaq.push(['_trackPageview', '/#tarifas']);
		
		window.location.hash='tarifas';
		if(web.activo.attr('id')==nodo.attr('id')){return;}
		web.activo.addClass('hidden');
		web.activo=nodo;
		nodo.find('.cuadro').each(function(i){
			$(this).css({"opacity":0});
			//$(this).addClass('hidden');
		});
		web.animarFondo(fondo.tarifas);
		nodo.removeClass('hidden');
		nodo.find('.cuadro').each(function(i){
			var self=this;
			setTimeout(function(){
			 $(self).animate({opacity:1},500);
			}, 500*i);
			
		});
	},
	mostrarServicios:function(event, nodo){
		_gaq.push(['_trackPageview', '/#servicios']);
		$('#contacto').addClass('hidden');
		event.preventDefault();
		window.location.hash='servicios';
		if(web.activo.attr('id')==nodo.attr('id')){return;}
		nodo.css({"opacity":0}).removeClass('hidden');
		web.activo.addClass('hidden');
		web.activo=nodo;
		web.animarFondo(fondo.servicios);
		nodo.animate({opacity:1},500);
	},
	mostrarMapa: function(event, nodo){
		_gaq.push(['_trackPageview', '/#mapa']);
		$('#contacto').addClass('hidden');
		event.preventDefault();
		window.location.hash='mapa';
		if(web.activo.attr('id')==nodo.attr('id')){return;}
		nodo.css({"opacity":0}).removeClass('hidden');
		web.activo.addClass('hidden');
		web.activo=nodo;
		web.animarFondo(fondo.mapa);
		nodo.animate({opacity:1},500);
		
	},
	mostrarContacto: function(event, nodo){
		_gaq.push(['_trackPageview', '/#contacto']);
		event.preventDefault();
		//window.location.hash='contacto';
		nodo.css({"opacity":0}).removeClass('hidden');
		//web.activo.addClass('hidden');
		//web.preactivo=web.activo;
		//web.activo=nodo;
		//web.animarFondo(fondo.mapa);
		nodo.animate({opacity:1},500).removeClass('hidden');
	},
	cerrarContacto: function(event, nodo){
		event.preventDefault();
		/*if(web.preactivo!=''){
			window.location.hash=web.preactivo.attr('id');
		}*/
		/*if(web.activo.attr('id')==nodo.attr('id')){ return; }*/
		nodo.css({"opacity":0}).addClass('hidden');
                $('#mensajeOK').html('').hide();;
                $('#formulario').show();
                $('#mensaje').val('');
		//web.activo.addClass('hidden');
		//web.activo=web.preactivo;
		//web.preactivo='';
		//web.animarFondo(fondo[web.activo.attr('id')]);
		//web.activo.animate({opacity:1},500).removeClass('hidden');
	},
	detallesHabitacion: function(h){
		$('#contacto').addClass('hidden');
		_gaq.push(['_trackPageview', '/#habitacion/'+h]);
		window.location.hash='habitacion/'+h;
		web.habitacionRecomendada=h;
			var datos = jQuery.parseJSON('{"action":"getHabitacion", "idH":"'+h+'" }');
			$.ajax({
				type: "POST", 
				data: datos, 
				url: web_path+'php/habitaciones.php', 
				dataType: "json",
				beforeSend: function(){
					$('#loadH').removeClass('hidden');
				},
				success : function(response){
					if(response!=null && response.status){
						var texto='algo de texto';
						$('#loadH').addClass('hidden');
						$.fn.prettyPhoto({animation_speed:'normal',
							theme:'hbv',
							slideshow:3000, 
							autoplay_slideshow: false, 
							social_tools:'', 
							allow_resize: true,
							markup: '<div class="pp_pic_holder"> \
							<div class="ppt">&nbsp;</div> \
							<div class="pp_top"> \
								<div class="pp_left"></div> \
								<div class="pp_middle"></div> \
								<div class="pp_right"></div> \
							</div> \
							<div class="pp_content_container"> \
								<div class="pp_left"> \
								<div class="pp_right"> \
									<div class="pp_content"> \
										<div class="pp_loaderIcon"></div> \
										<div class="pp_fade"> \
											<a href="#" class="pp_expand" title="Expand the image">Expand</a> \
											<div class="pp_hoverContainer"> \
												<a class="pp_next" href="#">next</a> \
												<a class="pp_previous" href="#">previous</a> \
											</div> \
											<div id="pp_full_res"></div> \
                                                                                        <div id="hbDescrp"></div> \
											<div class="pp_details"> \
												<div class="pp_nav"> \
													<a href="#" class="pp_arrow_previous">Previous</a> \
													<p class="currentTextHolder">0/0</p> \
													<a href="#" class="pp_arrow_next">Next</a> \
												</div> \
												<p class="pp_description">Barra de descripcion ?</p> \
												{pp_social} \
												<a class="pp_close" href="#">Close</a> \
											</div> \
										</div> \
									</div> \
								</div> \
								</div> \
							</div> \
							<div class="pp_bottom"> \
								<div class="pp_left"></div> \
								<div class="pp_middle"></div> \
								<div class="pp_right"></div> \
							</div> \
						</div> \
						<div class="pp_overlay"></div>',
				gallery_markup: '<div class="pp_gallery"> \
									<a href="#" class="pp_arrow_previous">Previous</a> \
									<div> \
										<ul> \
											{gallery} \
										</ul> \
									</div> \
									<a href="#" class="pp_arrow_next">Next</a> \
								</div>'
							});
						$.prettyPhoto.open(response.images, '' ,response.desc);
                                                $('#hbDescrp').html(response.descImg);
					}else{
						$('#loadH').addClass('hidden');
					}
				},
				error: function(){
				}
			});
		
	
	},
	enviarContacto: function(){
		var datos = jQuery.parseJSON('{"action":"enviarContacto", "mensaje":"'+$('#mensaje').val()+'", "email":"'+$('#email').val()+'"}');
		$.ajax({
			type: "POST", 
			data: datos, 
			url: web_path+'php/contacto.php', 
			dataType: "json",
			beforeSend: function(){
				$('#errorContacto').html('Enviando...');
			},
			success : function(response){
				if(response.status){
					$('#errorContacto').html('');
					var formulario = $('#formulario');
					/*formulario.slideUp(500, function(){$(this).html(response.mensaje).slideDown();});
					$('#contacto').animate({"height":"120"}, 500);*/
                                        formulario.slideUp(500, function(){$('#mensajeOK').html(response.mensaje).slideDown();});
                                        $('#contacto').animate({"height":"120"}, 500);
				}else{
					var options = {direction: 'left', distance: 10, times: 2};
     				$('#formulario').effect('shake' , options , 120 , function(){});
					$('#errorContacto').html(response.mensaje);
				}
			},
			error: function(){
				$('#errorContacto').html('Ocurrió un error al enviar el mensaje.');
			}
		});
	},
	enviarRecomendar: function(){
		_gaq.push(['_trackPageview', '/#habitacion/'+web.habitacionRecomendada+'-recomendar']);
		var datos = jQuery.parseJSON('{"action":"recomendar","nombreRecomendar":"'+$('#nombreRecomendar').val()+'", "mensaje":"'+$('#mensajeRecomendar').val()+'", "email":"'+$('#emailRecomendar').val()+'", "listaEmail":"'+$('#listaEmail').val()+'", "habitacionID": "'+web.habitacionRecomendada+'"}');
		$.ajax({
			type: "POST", 
			data: datos, 
			url: web_path+'php/recomendar.php', 
			dataType: "json",
			beforeSend: function(){
				$('#recomendarMSG').html('Enviando...').addClass('load');
			},
			success : function(response){
				$('#recomendarMSG').html(response.mensaje).removeClass('load');
			},
			error: function(){
				$('#recomendarMSG').html('Ocurrió un error al enviar el mensaje.').removeClass('load');
			}
		});
	},
	actualizar:function(hash){

		switch(hash){
			case '#tarifas':
				if($.browser.msie && parseFloat($.browser.version)<9){
					setTimeout(function(){$('#tarifasBtn').click();}, 1);
				}else{
					$('#tarifasBtn').click();
				}
			break;
			case '#habitaciones':
				if($.browser.msie && parseFloat($.browser.version)<9){
					setTimeout(function(){$('#habitacionesBtn').click();}, 1);
				}else{
					$('#habitacionesBtn').click();
				}
			break;
			case '#servicios':
				if($.browser.msie && parseFloat($.browser.version)<9){
					setTimeout(function(){$('#serviciosBtn').click();}, 1);
				}else{
					$('#serviciosBtn').click();
				}
			break;
			case '#mapa':
				if($.browser.msie && parseFloat($.browser.version)<9){
					setTimeout(function(){$('#mapaBtn').click();}, 1);
				}else{
					$('#mapaBtn').click();
				}
				
			break;
			case '#contacto':
				if($.browser.msie && parseFloat($.browser.version)<9){
					setTimeout(function(){$('#contactoBtn').click();}, 1);
				}else{
					$('#contactoBtn').click();
				}
			break;
			case '':
			case '#':
			case '#portada':
				_gaq.push(['_trackPageview', '/']);
				if($.browser.msie && parseFloat($.browser.version)<9){
					setTimeout(function(){web.animarFondo(fondo.portada);}, 1);
				}else{
					web.animarFondo(fondo.portada);
				}
			break;
			default:
				hash= hash.split('/');
				if(hash.length==2){
					var idH = parseInt(hash[1]);
					if(idH>0){
						$('#habitacionesBtn').click();
						web.detallesHabitacion(idH);
					}else{
						web.animarFondo(fondo.portada);
					}
				}else{
					web.animarFondo(fondo.portada);
				}
		}
		
	},
	activo:'',animando:false, tipoHb:0, activado:true, habitacionRecomendada:0, hash:'', preactivo:'',habitacionesCargadas:false, tarifasCargadas:false, imagenes: new Array('apagado.png', 'encendido.png','fondo_hab.png', '1pxtransp.png', 'bo_sugerencias_hover.png','bo_face_hover.png', 'bo_compartir_hover.png', 'bo_enviar_hover.png', 'cerrar_hover.png')
}
/* 'fondoazul.jpg','fondovioleta.jpg', 'fondoamarillo.jpg', 'fondorojo.jpg',*/
var habitaciones = {"idHabitacion": new Array()};
