/*
 * $ Skembox Lite 0.1.1
 * (cc) 2010 Fabbian Alvarez (http://mrfabbianz.com)
 * Versi—n solo imagenes, para ver el script completo visita: http://skemboo.com/js/skembox.js
 * Actualizado: 12/08/10
*/

if(typeof jQuery=="undefined"){throw"Error: Skembox necesita jQuery"}
var skmX_ok = false, skm_actual = 0;
var esIE6 = (jQuery.browser.msie && parseInt(jQuery.browser.version.substr(0,1)) < 7);

(function($) {                              
	$.skmX = {
		mostrar: function(url, titulo, alto, ancho) {
			if(titulo){ altoTitulo = 27; claseCerrar = ''; }
			else{ titulo = ''; altoTitulo = 0; claseCerrar = ' sin_t'; }

	  		if(!skmX_ok) $(document.body).append('<div id="skmX_c">&nbsp;</div><div id="skmX_v" style="display: none;"><b class="skmX_b1"/></b><b class="skmX_b2"/></b><b class="skmX_b3"/></b><b class="skmX_b4"/></b><div class="skmX_b"><div id="skmX_i"></div></div><b class="skmX_b4b"/></b><b class="skmX_b3b"/></b><b class="skmX_b2b"/></b><b class="skmX_b1b"/></b></div>');
		
			$(document).unbind('keydown.skmX').bind('keydown.skmX', function(e) {
					if(e.keyCode == 27) $.skmX.ocultar();
					else if(e.keyCode == 37) $.skmX.anterior();
					else if(e.keyCode == 39) $.skmX.siguiente();
			});
		
			if(!url.match(/.(gif|png|jpg|jpeg)$/i)){ url = $(skmXes).eq(skm_actual).find('img').attr('src').replace('chica','grande').replace('mediana','grande').replace('64','300');}
			if(url == $('#skmX_f').attr('src')) return false;
		
			$(window).unbind("resize");
	  		$("#skmX_v .skmX_bc").unbind("click");
			skmXAlto = alto || 400;
			skmXAncho = ancho || 650;
	  		$(window).resize($.skmX.posicion);
	  	
	  		if(!skmX_ok){ $.skmX.posicion(); skmX_ok = true;}
	  	
			$('#skmX_c').show();
			var imagen = new Image();
			imagen.src = url;
			$imagen = $('<img src="'+url+'" id="skmX_f" border="0" style="display:none" />');
			$imagen.load(function(){
			$('#skmX_c').hide();
				imagenAlto = imagen.height;
				imagenAncho = imagen.width;
				$("#skmX_f, #skmX_t, .skmX_bc").remove();
				$(window).unbind("resize");
				$(window).resize($.skmX.tamanioImagen);
				$('.skmX_b').before('<a class="skmX_bc'+claseCerrar+'" title="Cerrar">&nbsp;</a>');
		  		$("#skmX_v .skmX_bc").click($.skmX.ocultar);
				if(titulo !== '') $("#skmX_i").prepend('<div id="skmX_t" style="display:none">'+titulo+'</div>');
				$('#skmX_f, #skmX_t').fadeIn();
				$(this).appendTo("#skmX_i").fadeIn();
				$.skmX.tamanioImagen();
				$("#skmX_v").fadeIn();
				$.skmX.posicion();
			});
		},
		anterior: function(){
			if(skm_actual <= 0) skm_actual = 1;
			if($(skmXes).eq(skm_actual-1).parent().is('.skmC_visible') == false) $('.skmC_ant').click();
			$(skmXes).eq(skm_actual-1).click();
		},
		siguiente: function(){
			if($(skmXes).length == skm_actual) skm_actual = skm_actual-1;
			if($(skmXes).eq(skm_actual+1).parent().is('.skmC_visible') == false) $('.skmC_sig').click();
			$(skmXes).eq(skm_actual+1).click();
		},
		ocultar: function() {
  			abierto = false;
  			titulo = '';
  			$(document).unbind('keydown.skmX');
  			$('#skmX_c').hide();
  			$("#skmX_v").fadeOut(300,function(){
	  			$("#skmX_i").html(' '); 
	  			$("#skmX_f, #skmX_t, .skmX_bc").remove(); 
  			});
	  		$(window).unbind("resize");
		},
		posicion: function(an,al){
		  	var w = $(window).width(), h = $(window).height();
		  	$("#skmX_c").css({top: ((h - 50)/2 )+"px",left: ((w - 70)/2)+"px"  }); 
		
		  	$("#skmX_v").css({width:skmXAncho+26+"px",height:skmXAlto+28+altoTitulo+"px",left: ((w - skmXAncho-28)/2)+"px" });
		  	if(!(esIE6)){   	
		  		var ht = (h - skmXAlto-58)/2;
		   		if(ht < 0) ht = 0; 
		   		$("#skmX_v").css({top: ht+"px" }); 
		   	}
		  	$("#skmX_f").css({width:skmXAncho+"px",height:skmXAlto+"px"});
	  		$("#skmX_i").css({width:skmXAncho+"px",height:skmXAlto+altoTitulo+"px"});
		},
		tamanioImagen: function (){ // Redimensionar imagenes grandes - basado en original de Christian Montoya.
			var x = $(window).width() - 40, y = $(window).height() - (90+altoTitulo), an = imagenAncho, al = imagenAlto;
			if (an > x) {
				al = al * (x / an); 
				an = x; 
				if (al > y) { 
					an = an * (y / al); 
					al = y; 
				}
			} else if (al > y) { 
				an = an * (y / al); 
				al = y; 
				if (an > x) { 
					al = al * (x / an); 
					an = x;
				}
			}
			if(an < 50) an = 50;
			if(al < 50) al = 50;
			skmXAlto = al || 400;
  			skmXAncho = an || 650;
  			$.skmX.posicion(an,al);
		}
	}

	$.fn.skembox = function() {
		skmXes	= $(this);
		$(this).click(function(){  
			skm_actual	= skmXes.index(this);
			$(skmXes).removeClass('skm_actual');
			$(skmXes).eq(skm_actual).addClass('skm_actual');
			$.skmX.mostrar($(this).attr('href'), $(this).find('img').attr('alt'));
			return false;
		});	
	};

})($);

function skembox(url, tit, al, an){
	jQuery.skmX.mostrar(url, tit, al, an);
};

