lfc = {};

lfc.$ = {};

lfc.$.window = $(window);
lfc.$.document = $(document);

lfc.log = function(str){
	
	if( $.browser.msie == true ){
		
		$("#debug").html(str);
	
	}else{
		
		if( !$("#debug").length ){
			
			$("body").append("<div id='debug'></div>");
		}
		
		console.log(str);
	}
	
}

$.fn.bgImg = function(o) {
	
	var s = {};
	s.$ = {};
	s.imgs = [];
	
	if(!o){ var o= {}; };
	if(o.timeFade === undefined){ o.timeFade = 1000; }
	if(o.autoStart === undefined){ o.autoStart = true; }
	if(o.timeFrame === undefined){ o.timeFrame = 4000; }
	
	s.$.cuadro = $(this);
		
	// limpio el cuadro
	s.$.cuadro.html("");
	
	// le asigno los hijos
	if( o.imagenes ){
		
		for( z in o.imagenes ){
			
			// añadi la imagen
			s.$.cuadro.append("<li><img onload='this.aaa(this)' loaded='false' ></li>")
			
			// la guardo temporalmente en un puntero
			var $lastImg = s.$.cuadro.find("img").last();
			
			// les asigno un proptype
			$lastImg.each(function(){
				this.aaa = function(dom){
					$(dom).attr("loaded","true");
				}
			})
			$lastImg.attr('src',o.imagenes[z]);
		}
		
		s.$.frames = s.$.cuadro.children("li");

		// guardo todas las imagenes
		s.$.imagenes = s.$.frames.find("img");
	}
	
	s.ajustar = function(){
		
		var altoPosta = o.altoBase;
		
		if( lfc.$.window.height() > altoPosta ){
		
			altoPosta = lfc.$.window.height();
		}
		
		//altoPosta = lfc.$.window.height();
		
		s.$.cuadro.width( lfc.$.window.width() );
		s.$.cuadro.height( altoPosta );
		
		s.$.frames.each(function(){
			
			var $li = $(this);
			var $img = $li.children('img');
			
			// verifico si escalo a lo ancho o a lo alto;
			var ratioWindow = lfc.$.window.width() / altoPosta;
			var ratioImagen = $img.width() / $img.height();
			
			if( ratioWindow > ratioImagen){
				
				$img.css({
					width : '100%',
					height : 'auto'
				});
				
			}else{
				
				$img.css({
					width : 'auto',
					height : '100%'
				});
			}
			
			$img.css({
				marginTop: ($li.height() - $img.height()	) / 2,
				marginLeft: ($li.width() - $img.width()	) / 2
			});

		})
	}
	
	// defino variales  y funcion para motion
	
	s.motion = {};
	s.motion.interval = "";
	
	s.motion.ini = function(){
		
		// oculto todos menos el primero;
		s.motion.showFrame(0,0);
		
		if( o.autoStart ){
			
			s.motion.play();
		}
	}
	
	s.motion.play = function(){
		
		s.motion.interval = setInterval(function(){
		
			s.motion.next();
			
		},o.timeFrame)
	};
	
	s.motion.stop = function(){
		clearInterval(s.motion.interval);
	};
	
	s.motion.next = function(){
		
		var nNro = parseInt( s.$.cuadro.attr("frameActual") )+1;
		
		if( s.$.frames.length-1 < nNro ){
			
			nNro = 0;
		}
		s.motion.stop();
		s.motion.showFrame(nNro);
		s.motion.play();
	};
	
	s.motion.showFrame = function(nro,tiempo){
		
		if(tiempo === undefined){
			var tiempo = o.timeFade
		}
		
		var $li = {};
		
		s.$.frames.each(function(v){
			if(v == nro){
				
				$li = $(this);
				return;
			}
		})

		s.$.frames.stop().fadeTo(tiempo,0);
		$li.stop().fadeTo(tiempo,1);
		
		s.$.cuadro.attr("frameActual",nro);
	}
	
	
	s.isLoadImgs = function(){
		
		var salida = true;
		
		s.$.imagenes.each(function(){
			
			if( $(this).attr("loaded") == "false" ){
			
				salida = false;
			}
		})
		
		return salida;
	}
	
	// eventos
	$(window).load(function(){
		
		// ejecuto un intervalo para saber cuando realmente se cargaron las imagenes
		
		var intervalFix = setInterval(function(){

			if( s.isLoadImgs() ){
				
				s.$.cuadro.css("visibility","hidden");
				s.ajustar();
				s.motion.ini();
				s.$.cuadro.css("visibility","visible");
				
				clearInterval(intervalFix);
			}
		
		},100);

	}) // end load
	
	lfc.$.window.resize(function(){
		
		s.ajustar();
	})
	
	return s;	
}

$.fn.cBody = function(o) {
	
	var s = {};
	s.$ = {};
	
	s.$.cuerpo = $(this);
	s.$.colIz = s.$.cuerpo.find("nav.pngFix");
	s.$.nav = s.$.colIz.children(".bg");
	s.$.section = s.$.cuerpo.find("section");
	
	if(!o){
		var o = {};
	}
	
	if(!o.altoSeguridad){
	
		// al inicia calculo el alto base
		o.altoSeguridad = s.$.colIz.outerHeight();
		if( s.$.colIz.outerHeight() < s.$.section.outerHeight() ){
		
			o.altoSeguridad = s.$.section.outerHeight();
		}
	}
	
	s.ajustar = function(){
		
		// alto de las columnas
		if( lfc.$.window.height() > o.altoSeguridad ){
			
			s.$.nav.height( lfc.$.window.height()-  ( s.$.nav.outerHeight() - s.$.nav.height() ) );
			s.$.section.height( lfc.$.window.height()-  ( s.$.section.outerHeight() - s.$.section.height() ) );
		
		}else{
			
			s.$.nav.height( o.altoSeguridad - ( s.$.nav.outerHeight() - s.$.nav.height() ));
			s.$.section.height( o.altoSeguridad - ( s.$.section.outerHeight() - s.$.section.height() ));
		}
		
		// ancho de section

		if( lfc.$.window.width() > 990 ){
			s.$.cuerpo.width("");
			s.$.section.width(
				s.$.cuerpo.width() - s.$.colIz.outerWidth()  - ( s.$.section.outerWidth() - s.$.section.width() )  -20
			);
		}else{
			
			s.$.cuerpo.width(990);
			s.$.section.width("");
		}
		
	}
	
	lfc.$.window.resize(function(){
		
		s.ajustar();
	})
	lfc.$.window.load(function(){
		
		s.ajustar();
	})
	
	return o.altoSeguridad;	
}

$.fn.subSecs = function(o) {
	
	if(!o){ var o = {}; }
	var s = {};
	s.$ = {};
	var $articuloActivo = {};
	
	// variable de datos
	s.seccion = {};
	
	s.$.seccion = $(this);
	s.$.articulos = s.$.seccion.children("article");
	s.$.header = s.$.seccion.children("header");
	
	var htmlHeaderOrg = s.$.header.html();
	
	s.$.articulos.each(function(a){
		
		var $article = $(this);
		var $header = $article.children("header");
		$header.hide();
		
		$article.attr("top", $article.css("top") );
		$article.attr("left", $article.css("left") );
		
		$article.css("top", s.$.seccion.outerHeight() );
	});
	
	s.changeHeader = function($articulo){

		s.$.header.show();
		s.$.header.stop().animate({marginLeft:50,opacity:0},300,function(){
		
			// cargo el header nuevo
			if($articulo){
				$(this).html( $articulo.children("header").html() );
			}else{
				$(this).html( htmlHeaderOrg );
			}
			
			$(this).find(".pngAfterFix").pngFix();
			$(this).css({marginLeft:-50,opacity:0});
			$(this).animate({marginLeft:0 ,opacity:1},300);
		});

	};

	s.goTo = function(selector){

		if(!selector){ var selector = ""; }
		
		
		// oculto el item activo
		if( $articuloActivo.length == 1 ){
			
			$articuloActivo.fadeTo(250, 0, function(){
				
				$(this).css({
					top: parseInt( s.$.seccion.outerHeight() ),
					opacity: '',
					display:'none'
				})
			
			})// end fadeto
		}
		
		var $articulo = s.$.seccion.children("article"+selector);
		
		if(selector != "" && $articulo.length == 1 ){
			
			if($articulo.children("header").length){
				s.changeHeader($articulo);
			}
			//document.location.hash = "#"+$articulo.attr("id");

			$articulo.css({
				display: 'block',
				top: parseInt(s.$.seccion.outerHeight())
			});
			$articulo.css({opacity: 0.5});

			$articulo.animate({
				top: $articulo.attr("top"),
				left: $articulo.attr("left"),
				opacity: 1
			},600,function(){
				$(this).css({opacity: 1});
			});

			$articuloActivo = $articulo;
		
		}else{
		
			s.changeHeader(false);
			//document.location.hash = "";
			$articuloActivo = "";
		}
	};
	
	if(o.iniHash){

		s.goTo( o.iniHash );
		var int = setInterval(function(){
			lfc.$.window.scrollTop(0);
			clearInterval(int);
		},1)
	}

	return s;
}

$.fn.planos = function(o) {
	
	
	var s = {};
	if(!o){ o = {}; };
	var $menu = $(this);
	
	var $solapas = $menu.children(".solapas");
	var $body = $menu.children(".body");
	var $planos = $body.children(".colPlanos").children(".planos");
	
	var $detalle = $body.children(".detalle")
	
	var $paginador = $body.children(".colPlanos").children(".paginador");
	var $btnPrev = $paginador.find(".prev30").parent();
	var $btnNext = $paginador.find(".next30").parent();
	var $btnZoom = $menu.find("#btnZoom");
	
	var $planoActivo = {};
		
	
	// Ajustes en la maqueta ******************************************************************************************************************
	
	$planos.children(".plano").each(function(c){
	
		var $plano = $(this);

		$plano.find(".data li").each(function(v){
			
			var $li = $(this);
			$btnRoom = $li.children(".btnRoom");
			
			$btnRoom.data("html", $li.children(".html").html() );
			$btnRoom.data("nro",v)
			
			$btnRoom.click(function(e){
				e.preventDefault();
				s.setRoom( $(this).data("nro") );
			})
			
			$btnRoom.appendTo($plano);
		})
		$plano.data("total", $plano.find(".data li").length );
		$plano.children(".data").remove();
	})
	
	$solapas.find("a").each(function(v){
		$(this).data("pos",v);
	})

	// Asigno eventos y funciones ******************************************************************************************************************

	$planos.scrollview();


	$($btnPrev).click(function(e){
		e.preventDefault();
		s.setRoom( parseInt($planoActivo.data("room")) - 1 );
	})
	
	$($btnNext).click(function(e){
		e.preventDefault();
		s.setRoom( parseInt($planoActivo.data("room")) + 1 );
	})
	
	$solapas.find("a").click(function(e){
		e.preventDefault();
		s.setPlano( $(this).data("pos") )
	})

	$menu.children(".body").hover(function(){
	
		$planoActivo.stop().fadeTo(500,1);
	
	},function(){
		
		$planoActivo.stop().fadeTo(500,0);
	});
	
	
	$btnZoom.prettyPhoto(
		{opacity: 0.6, overlay_gallery: false, show_title: true, show_description: false, social_tools:false}
	);

	// Asigno funciones ******************************************************************************************************************
	
	s.setPlano = function(nro){

		$solapas.children("li").removeClass("selected");
		$solapas.children("li:eq("+nro+")").addClass("selected")
		
		$planos.children(".plano").hide();
		
		$planoActivo = $planos.children(".plano:eq("+nro+")");
		$planoActivo.show();
		
		$planos.css({backgroundPosition: "left "+ ( $planos.height() * nro * -1 ) +"px"})
		
		if( $planoActivo.data("room") ){
			
			s.setRoom( $planoActivo.data("room") );
		}else{
			
			s.setRoom( 0 );
		}
		
		$btnZoom.attr("href", $planoActivo.css("background-image").replace('url("','').replace('")','') );
		$btnZoom.attr("title", $solapas.children("li:eq("+nro+") a").html() );
	}
	
	
	s.setRoom = function(nro){
		
		if( nro >= 0 && nro <= $planoActivo.data("total")-1 ){

			$a = $planoActivo.children("a:eq("+nro+")");
			
			// muestro detalle del room:
			$detalle.stop().fadeTo(300,0,function(){
				$(this).html( $a.data("html") );
				$(this).fadeTo(300,1);
				
				$(this).find("a.img").prettyPhoto({
				opacity: 0.6, overlay_gallery: false, show_title: true, show_description: false, social_tools:false
			});
			})
			
			$planos.animate({
				scrollTop: parseInt($a.css("top")) - ($planos.height() / 2) + ( $a.height() /2 ), 
				scrollLeft: parseInt($a.css("left")) - ($planos.width() / 2) + ( $a.width() /2 )
			},300);
			
			$planoActivo.children("a").removeClass("selected");
			$a.addClass("selected");		
			$planoActivo.data("room",nro)
			
			$btnPrev.parent().show();
			$btnNext.parent().show();
			
			if(nro == 0){
				$btnPrev.parent().hide();
			}
			
			if(nro == $planoActivo.data("total")-1){
				$btnNext.parent().hide();
			}
		}
	}
	
	if( $.browser.msie == true && $.browser.version == 6 ){
		
		$planos.css({backgroundAttachment: "fixed"});
		$solapas.find("a").css("float","left");
	}
	
	$solapas.find("a").pngFix();
	
	$planos.find(".plano").css("opacity",0);
	
	// inicios
	s.setPlano(0)
}

$.fn.pngFix = function(){
	
	$selector = $(this);
	
				// reactivo la transparencia
	if( $.browser.msie == true && $.browser.version == 6 ){
		
		$selector.each(function(){
			
			DD_belatedPNG.fixPng(this);
		})
	}
}

