/*********************************************
	LIGHTBOX
*********************************************/
function MylightboxHTML(titulo,contenido,boton,html){	
	/* GENERA FONDO */
	MylightboxFondoGenera();
	function MylightboxFondoGenera(){
		$('body').prepend('<div class="fondoMyLightbox"></div>');
		
		MylightboxFondoDimensiona();
		
		$('.fondoMyLightbox')
			.animate({'opacity':0},0)
			.animate({'opacity':0.4},10, function(){
				
			});		
	}
	
	/* DIMENSIONA FONDO*/	
	function MylightboxFondoDimensiona(){
		var altoVentana = $(document).height();
		$('.fondoMyLightbox').height(altoVentana);
		$('.fondoMyLightbox').css({'width':'100%'});
	}
	
	MylightboxGenera(titulo,contenido,boton,html);
	/* GENERA LIGHTBOX */	
	function MylightboxGenera(tit,content,button,esHtml){
		if(esHtml == "0")		
		{
			if(button == ""){
				button = "cerrar";
			}
			if(tit == ""){
				var div='<div class="Mylightbox"><a class="btnCerrar" title="cerrar">Cerrar X</a><span class="cabecera">Cerrar</span><div id="lightboxContent"><p>'+content+'</p><a class="btnPlusTrans fR"><span>'+button+'</span></a></div><span class="cierrel">*********************************</span></div>';
			}else{
				var div='<div class="Mylightbox"><a class="btnCerrar" title="cerrar">Cerrar X</a><span class="cabecera">Cerrar</span><div id="lightboxContent"><h5>'+tit+'</h5><p>'+content+'</p><a class="btnPlusTrans fR"><span>'+button+'</span></a></div><span class="cierrel">*********************************</span></div>';
			}
			$('body').prepend(div);
		}else
		{
			if(tit == ""){
				var div='<div class="Mylightbox"><a class="btnCerrar" title="cerrar">Cerrar X</a><span class="cabecera">Cerrar</span><div id="lightboxContent"><p id="lightboxHTML"></p></div><span class="cierrel">*********************************</span></div>';
			}else{
				var div='<div class="Mylightbox"><a class="btnCerrar" title="cerrar">Cerrar X</a><span class="cabecera">Cerrar</span><div id="lightboxContent"><h5>'+tit+'</h5><p id="lightboxHTML"></p></div><span class="cierrel">*********************************</span></div>';
			}
			$('body').prepend(div);
			$('#lightboxHTML').html(content);
		}
				
		MylightboxPosiciona();
		$('.Mylightbox').css({"display":"block"});
		MylightboxEventos();
	}
	
	/* POSICIONA LIGHTBOX */
	function MylightboxPosiciona(){
		var anchoVentana = $(window).width();
		var anchoLightBox	=	Math.round(anchoVentana*0.98);
		var escrollTop = $(window).scrollTop();
		var altoVentana = $(window).height();
		var altoLightBox	=	Math.round(altoVentana*0.98);
		var anchoContenido	=	Math.round(anchoLightBox*0.9);
		var lightbox_X=(anchoVentana/2)-(anchoLightBox/2);
		var lightbox_Y=escrollTop+Math.round(altoVentana*0.02/2);
		//var lightbox_Y=	(altoVentana/2)-(altoLightBox/2);
		$('.Mylightbox')
			.css({'left':lightbox_X,'background-color':'white','width':anchoLightBox,'height':altoLightBox})
			.stop()
			.animate({'top':lightbox_Y},500,'easeOutQuint');
		$('.Mylightbox span.cabecera').css({'width':anchoContenido});
		$('.Mylightbox #lightboxContent').css({'width':anchoContenido,'height':Math.round(altoLightBox*0.8),'margin':'0 auto'});
		if($('.Mylightbox #lightboxContent p#lightboxHTML').size()>0){
			$('.Mylightbox #lightboxContent p#lightboxHTML').css({"height":Math.round(altoLightBox*0.8)});
		}
	}
	
	/* EVENTOS CERRAR LIGHTBOX */
	function MylightboxEventos(){
		$('.Mylightbox a.btnCerrar, .Mylightbox a.btnPlusTrans').click(function(){
			$('.Mylightbox').fadeOut(200, function(){
				$('.fondoMyLightbox').fadeOut(100, function(){
					$('.Mylightbox, .fondoMyLightbox').remove();
				});
			});			
		});
	}
	
	function MylightboxCerrar(){
		$('.Mylightbox').fadeOut(200, function(){
			$('.fondoMyLightbox').fadeOut(100, function(){
				$('.Mylightbox, .fondoMyLightbox').remove();
			});
		});
	}
	
	/* EN CASO DE REESCALAR */
	$(window).resize(function(){
		//asignaAltura();
		//colocarLazos();
		MylightboxFondoDimensiona();
		MylightboxPosiciona();
	});
	
	/* EN CASO DE SCROLLEAR */
	$(window).scroll(function(){
		MylightboxFondoDimensiona();
		MylightboxPosiciona();
	});
	
}
/************************************
 * CLASS Mylbx
*************************************/
function extend(opt, el){
    var el = el || this;
    for (var property in opt) el[property] = opt[property];
    return el;
};
function type(el, type){ return (el instanceof type);}

function merge(){
	var mix = {};
	for (var i = 0; i < arguments.length; i++){
		for (var property in arguments[i]){
			var ap = arguments[i][property];
			var mp = mix[property];
			if (mp && type(ap, Object) && type(mp, Object)) mix[property] = merge(mp, ap);
			else mix[property] = ap;
		}
	}
	return mix;
};

var Class = function(properties){
        var klass = function(){
            return (arguments[0] !== null && this.initialize && type(this.initialize, Function)) ? this.initialize.apply(this, arguments) : this;
        };
        extend(this, klass);
        klass.prototype = properties;
        klass.constructor = Class;
        return klass;
};

extend({
    empty: function(){},
    extend: function(properties){
        var proto = new this(null);
		var Merge = function(previous, current){
	        if (previous && previous != current){
	            if (current.constructor != previous.constructor) return current;
	            switch(current.constructor){
	                case Function:
	                    var merged = function(){
	                        this.parent = arguments.callee.parent;
	                        return current.apply(this, arguments);
	                    };
	                    merged.parent = previous;
	                    return merged;
	                case Object: return merge(previous, current);
	            }
	        }
	        return current;
	    };
        for (var property in properties){
            var pp = proto[property];
            proto[property] = Merge(pp, properties[property]);
        }
        return new Class(proto);
    },
    implement: function(){
        for (var i = 0, l = arguments.length; i < l; i++)
			extend(arguments[i],this.prototype);
    },
}, Class.prototype);
/**
 * Mylbx
 * Ã�lvaro DÃ­ez
 * para nueva instancia:
 * @param String titulo; puede ser vacÃ­o o no
 * @param String contenido: puede ser html o no, si es html, se necesita como tercer parÃ¡metro 1
 * @param String boton: si es nulo, no se pondrÃ¡
 * @param Integer html: indica con 0 que no es html o 1 que es html
 * 
 * si se necesita una funciÃ³n callback, es necesario indicarlo con callback, se le pasa nombre de la funcion y los parÃ¡metros como array
 * 
 * para generarlo, es necesario llamar a la funcion generar
 */
var Mylbx = new Class({
	initialize: function(titulo,contenido,boton,html){
		this.titulo = titulo;
		this.contenido = contenido;
		this.boton = boton;
		this.html = html;		
	},
	callback: function(nombre,args){
		this.args = args;
		this.cbfunction	=	nombre;			
	},
	execCallback: function(){
		var strargs = "";
		for(var i=0; i<this.args.length;i++)
			strargs += this.args[i]+",";
		strargs	=	strargs.substring(0,strargs.length-1);
		this.strcallback	=	this.cbfunction+"("+strargs+");";
		eval(this.strcallback);
	},
	generar: function(){
		this.MylightboxFondoGenera();
		this.MylightboxGenera();
		this.initEventos();		
	},
	MylightboxFondoGenera: function(){
		$('body').prepend('<div class="fondoMyLightbox"></div>');		
		this.MylightboxFondoDimensiona();		
		$('.fondoMyLightbox')
			.animate({'opacity':0},0)
			.animate({'opacity':0.4},10, function(){
				
		});
	},
	MylightboxFondoDimensiona: function(){
		var altoVentana = $(document).height();
		$('.fondoMyLightbox').height(altoVentana);
		$('.fondoMyLightbox').css({'width':'100%'});
	},
	MylightboxGenera: function(){
		if(this.html == "0")		
		{
			if(this.boton == ""){
				this.boton = "cerrar";
			}
			if(this.titulo == ""){
				var div='<div class="Mylightbox"><a class="btnCerrar" title="cerrar">Cerrar X</a><div id="lightboxContent"><p>'+this.contenido+'</p><a class="btnPlusTrans fR"><span>'+this.boton+'</span></a></div></div>';
			}else{
				var div='<div class="Mylightbox"><a class="btnCerrar" title="cerrar">Cerrar X</a><div id="lightboxContent"><h5>'+this.titulo+'</h5><p>'+this.contenido+'</p><a class="btnPlusTrans fR"><span>'+this.boton+'</span></a></div></div>';
			}
			$('body').prepend(div);
		}else
		{
			if(this.titulo == ""){
				var div='<div class="Mylightbox"><a class="btnCerrar" title="cerrar">Cerrar X</a><div id="lightboxContent"><p id="lightboxHTML"></p></div></div>';
			}else{
				var div='<div class="Mylightbox"><a class="btnCerrar" title="cerrar">Cerrar X</a><div id="lightboxContent"><h5>'+this.titulo+'</h5><p id="lightboxHTML"></p></div></div>';
			}
			$('body').prepend(div);
			$('#lightboxHTML').html(this.contenido);
		}
				
		this.MylightboxPosiciona();
		$('.Mylightbox').css({"display":"block"});
		this.MylightboxEventos();
	},
	MylightboxPosiciona: function(){		
		var anchoVentana = $(window).width();
		var anchoLightBox	=	Math.round(anchoVentana*0.98);
		var escrollTop = $(window).scrollTop();
		var altoVentana = $(window).height();
		var altoLightBox	=	Math.round(altoVentana*0.98);
		var anchoContenido	=	anchoLightBox;
		var lightbox_X=(anchoVentana/2)-(anchoLightBox/2);
		var lightbox_Y=escrollTop+Math.round(altoVentana*0.02/2);
		//var lightbox_Y=	(altoVentana/2)-(altoLightBox/2);
		$("body").css({"margin":"0px","padding":"0px"});
		$('.Mylightbox')
			.css({'left':lightbox_X,'width':anchoLightBox,'height':altoLightBox})
			.stop()
			.animate({'top':lightbox_Y},500,'easeOutQuint');
		//$('.Mylightbox span.cabecera').css({'width':anchoContenido});
		var anchoOriginal	=	721;
		var altoOriginal	=	364;
		if($('.Mylightbox #lightboxContent p#lightboxHTML object').size()>0){
				anchoOriginal	=	$('.Mylightbox #lightboxContent p#lightboxHTML object').css("width");
				altoOriginal	=	$('.Mylightbox #lightboxContent p#lightboxHTML object').css("height");
				//los convertimos a int
				anchoOriginal	=	parseInt(anchoOriginal,10);
				altoOriginal	=	parseInt(altoOriginal,10);
		}				
		var altura	= Math.round((altoOriginal*Math.round(anchoContenido*0.9))/anchoOriginal);	
		$('.Mylightbox #lightboxContent').css({'width':Math.round(anchoContenido*0.9),'height':altura,'margin':'0 auto'});
		if($('.Mylightbox #lightboxContent p#lightboxHTML').size()>0){
			$('.Mylightbox #lightboxContent p#lightboxHTML').css({"width":Math.round(anchoContenido*0.9),"height":altura,"margin":"0 auto"});
			$('.Mylightbox #lightboxContent p#lightboxHTML object, .Mylightbox #lightboxContent p#lightboxHTML object embed, .Mylightbox #lightboxContent p#lightboxHTML img, .Mylightbox #lightboxContent p#lightboxHTML a img').css(
					{"width":Math.round(anchoContenido*0.9),"height":altura}
				);
		}
	},
	MylightboxEventos: function(){
		var instance	=	this;
		$('.Mylightbox a.btnCerrar, .Mylightbox a.btnPlusTrans').click(function(){
			$('.Mylightbox').fadeOut(200, function(){
				$('.fondoMyLightbox').fadeOut(100, function(){
					$('.Mylightbox, .fondoMyLightbox').remove();
				});
			});
			if(instance.cbfunction){
				instance.execCallback();					
			}
		});		
	},
	MylightboxCerrar: function(){
		var instance = this;
		$('.Mylightbox').fadeOut(200, function(){
			$('.fondoMyLightbox').fadeOut(100, function(){
				$('.Mylightbox, .fondoMyLightbox').remove();
			});
		});
		if(instance.strcallback){
			instance.execCallback();
		}
	},
	initEventos: function(){
		var instance	=	this;
		/* EN CASO DE REESCALAR */
		$(window).resize(function(){
			//asignaAltura();
			//colocarLazos();
			instance.MylightboxFondoDimensiona();
			instance.MylightboxPosiciona();
		});
		
		/* EN CASO DE SCROLLEAR */
		$(window).scroll(function(){
			instance.MylightboxFondoDimensiona();
			instance.MylightboxPosiciona();
		});
	}
});
// v2
var MyLbx = new Class({
	initialize: function(titulo,contenido,boton,html,autoajust,width,height){
		this.titulo = titulo;
		this.contenido = contenido;
		this.boton = boton;
		this.html = html;
		this.autoajust = autoajust;
		if(width != null)
		this.width	=	width;
		if(height != null)
		this.height	=	height;
	},
	callback: function(nombre,args){
		this.args = args;
		this.cbfunction	=	nombre;			
	},
	execCallback: function(){
		var strargs = "";
		for(var i=0; i<this.args.length;i++)
			strargs += this.args[i]+",";
		strargs	=	strargs.substring(0,strargs.length-1);
		this.strcallback	=	this.cbfunction+"("+strargs+");";
		eval(this.strcallback);
	},
	generar: function(){
		this.MylightboxFondoGenera();
		this.MylightboxGenera();
		this.initEventos();		
	},
	MylightboxFondoGenera: function(){
		$('body').prepend('<div class="fondoMyLightbox"></div>');		
		this.MylightboxFondoDimensiona();		
		$('.fondoMyLightbox')
			.animate({'opacity':0},0)
			.animate({'opacity':0.4},10, function(){
				
		});
	},
	MylightboxFondoDimensiona: function(){
		var altoVentana = $(document).height();
		$('.fondoMyLightbox').height(altoVentana);
		$('.fondoMyLightbox').css({'width':'100%'});
	},
	MylightboxGenera: function(){
		if(this.html == "0")		
		{
			if(this.boton == ""){
				this.boton = "cerrar";
			}
			if(this.titulo == ""){
				var div='<div class="Mylightbox"><a class="btnCerrar" title="cerrar">Cerrar X</a><div id="lightboxContent"><p>'+this.contenido+'</p><a class="btnPlusTrans fR"><span>'+this.boton+'</span></a></div></div>';
			}else{
				var div='<div class="Mylightbox"><a class="btnCerrar" title="cerrar">Cerrar X</a><div id="lightboxContent"><h5>'+this.titulo+'</h5><p>'+this.contenido+'</p><a class="btnPlusTrans fR"><span>'+this.boton+'</span></a></div></div>';
			}
			$('body').prepend(div);
		}else
		{
			if(this.titulo == ""){
				var div='<div class="Mylightbox"><a class="btnCerrar" title="cerrar">Cerrar X</a><div id="lightboxContent"><p id="lightboxHTML"></p></div></div>';
			}else{
				var div='<div class="Mylightbox"><a class="btnCerrar" title="cerrar">Cerrar X</a><div id="lightboxContent"><h5>'+this.titulo+'</h5><p id="lightboxHTML"></p></div></div>';
			}
			$('body').prepend(div);
			$('#lightboxHTML').html(this.contenido);
		}
				
		this.MylightboxPosiciona();
		$('.Mylightbox').css({"display":"block"});
		this.MylightboxEventos();
	},
	MylightboxPosiciona: function(){		
		var anchoVentana = $(window).width();
		var escrollTop = $(window).scrollTop();
		var altoVentana = $(window).height();
		var anchoLightBox	=	anchoVentana-50;
		var altoLightBox	=	altoVentana-50;
		var anchoContenido	=	anchoLightBox-50;
		var altoContenido;
		var anchoOriginal;
		var altoOriginal;
		if(this.autoajust == 1){						
			if($('.Mylightbox #lightboxContent p#lightboxHTML').size()>0){
				//alert("entra1");
				if(this.anchoContenido == undefined){
					//alert("entra");
					if($('.Mylightbox #lightboxContent p#lightboxHTML object').size()>0){					
						this.anchoLightBox	=	parseInt($('.Mylightbox #lightboxContent p#lightboxHTML object').css("width"),10)+50;
						this.altoLightBox	=	parseInt($('.Mylightbox #lightboxContent p#lightboxHTML object').css("height"),10)+50;
						this.anchoContenido	=	parseInt($('.Mylightbox #lightboxContent p#lightboxHTML object').css("width"),10);
						this.altoContenido	=	parseInt($('.Mylightbox #lightboxContent p#lightboxHTML object').css("height"),10);
					}else if($('.Mylightbox #MylightboxContent p#lightboxHTML img').size()>0){
						this.anchoLightBox	=	parseInt($('.Mylightbox #lightboxContent p#lightboxHTML img').css("width"),10)+50;
						this.altoLightBox	=	parseInt($('.Mylightbox #lightboxContent p#lightboxHTML img').css("height"),10)+50;
						this.anchoContenido	=	parseInt($('.Mylightbox #lightboxContent p#lightboxHTML img').css("width"),10);
						this.altoContenido	=	parseInt($('.Mylightbox #lightboxContent p#lightboxHTML img').css("height"),10);
					}else{
						this.anchoLightBox	=	parseInt($('.Mylightbox #lightboxContent p#lightboxHTML').css("width"),10);
						this.altoLightBox	=	parseInt($('.Mylightbox #lightboxContent p#lightboxHTML').css("height"),10);
						this.anchoContenido	=	parseInt($('.Mylightbox #lightboxContent p#lightboxHTML').css("width"),10);
						this.altoContenido	=	parseInt($('.Mylightbox #lightboxContent p#lightboxHTML').css("height"),10);
					}
				}
			}
			if(this.anchoContenido != undefined){								
				anchoLightBox	=	this.anchoLightBox;
				altoLightBox	=	this.altoLightBox;
				anchoContenido	=	this.anchoContenido;
				altoContenido	=	this.altoContenido;
				//alert(anchoLightBox+" x "+altoLightBox+" - "+anchoContenido+" x "+altoContenido);
			}
		}else{
			this.anchoLightBox	=	anchoLightBox;
			this.altoLightBox	=	altoLightBox;
			this.anchoContenido	=	anchoContenido;
			if(this.width != undefined && this.height != undefined){
				anchoLightBox	=	this.width+50;
				altoLightBox	=	this.height+50;
				anchoContenido	=	this.width;
				altoContenido	=	this.height;
				this.anchoLightBox	=	anchoLightBox;
				this.altoLightBox	=	altoLightBox;
				this.anchoContenido	=	anchoContenido;
				this.altoConetnido	=	altoContenido;
			}
		}						
		var lightbox_X=(anchoVentana/2)-(anchoLightBox/2);
		var lightbox_Y=escrollTop+Math.round(altoVentana*0.02/2);
		//var lightbox_Y=	(altoVentana/2)-(altoLightBox/2);
		$("body").css({"margin":"0px","padding":"0px"});
		$('.Mylightbox')
			.css({'left':lightbox_X,'width':anchoLightBox+100,'height':altoLightBox+100})
			.stop()
			.animate({'top':lightbox_Y},500,'easeOutQuint');
		//$('.Mylightbox span.cabecera').css({'width':anchoContenido});
		/*if(this.autoajust){
			anchoOriginal	=	this.anchoContenido;
			altoOriginal	=	this.altoContenido;
		}/*else{
			if($('.Mylightbox #MylightboxContent p#lightboxHTML').size()>0){
				if($('.Mylightbox #MylightboxContent p#lightboxHTML object').size()>0){					
					anchoOriginal	=	Math.round(parseInt($('.Mylightbox #MylightboxContent p#lightboxHTML object').css("width")));
					altoOriginal	=	Math.round(parseInt($('.Mylightbox #MylightboxContent p#lightboxHTML object').css("height")));					
				}else if($('.Mylightbox #MylightboxContent p#lightboxHTML img').size()>0){
					anchoOriginal	=	Math.round(parseInt($('.Mylightbox #MylightboxContent p#lightboxHTML img').css("width")));
					altoOriginal	=	Math.round(parseInt($('.Mylightbox #MylightboxContent p#lightboxHTML img').css("height")));					
				}else{
					anchoOriginal	=	Math.round(parseInt($('.Mylightbox #MylightboxContent p#lightboxHTML').css("width")));
					altoOriginal	=	Math.round(parseInt($('.Mylightbox #MylightboxContent p#lightboxHTML').css("height")));					
				}			
			}
			if(this.width != undefined && this.height != undefined){
				anchoOriginal	=	this.width;
				altoOriginal	=	this.height;				
			}
		}*/
		/*var altura;
		if(this.autoajust){
			altura	=	altoOriginal;
			anchoContenido	=	this.anchoLightBox;
		}/*else{
			if(this.height != undefined){
				altura	=	this.height;
				anchoContenido	=	this.width;
			}else
				altura	= Math.round((altoOriginal*Math.round(anchoContenido*0.9))/anchoOriginal);
		}*/
		/*$('.Mylightbox #MylightboxContent').css({'width':anchoContenido+50,'height':altura+50,'margin':'0 auto'});*/
		$('.Mylightbox #lightboxContent').css({'width':anchoLightBox,'height':altoLightBox,'margin':'0 auto'});
		if($('.Mylightbox #lightboxContent p#lightboxHTML').size()>0){
			$('.Mylightbox #lightboxContent p#lightboxHTML').css({"width":anchoLightBox,"height":altoLightBox,"margin":"0 auto"});
			$('.Mylightbox #lightboxContent p#lightboxHTML object, .Mylightbox #lightboxContent p#lightboxHTML object embed, .Mylightbox #lightboxContent p#lightboxHTML img, .Mylightbox #lightboxContent p#lightboxHTML a img').css(
					{"width":anchoContenido,"height":altoContenido}
				);
		}
	},
	MylightboxEventos: function(){
		var instance	=	this;
		$('.Mylightbox a.btnCerrar, .Mylightbox a.btnPlusTrans').click(function(){
			$('.Mylightbox').fadeOut(200, function(){
				$('.fondoMyLightbox').fadeOut(100, function(){
					$('.Mylightbox, .fondoMyLightbox').remove();
				});
			});
			if(instance.cbfunction){
				instance.execCallback();					
			}
		});		
	},
	MylightboxCerrar: function(){
		var instance = this;
		$('.Mylightbox').fadeOut(200, function(){
			$('.fondoMyLightbox').fadeOut(100, function(){
				$('.Mylightbox, .fondoMyLightbox').remove();
			});
		});
		if(instance.strcallback){
			instance.execCallback();
		}
	},
	initEventos: function(){
		var instance	=	this;
		/* EN CASO DE REESCALAR */
		$(window).resize(function(){
			//asignaAltura();
			//colocarLazos();
			instance.MylightboxFondoDimensiona();
			//instance.MylightboxPosiciona();
		});
		
		/* EN CASO DE SCROLLEAR */
		$(window).scroll(function(){
			instance.MylightboxFondoDimensiona();
			//instance.MylightboxPosiciona();
		});
	}
});
