/**
Class Ventana

require class.Carrusel
**/

var Ventana = new Class({
    Implements: [Options, Events],
    options: {
        modal: false,
        ancho: 350,
        titulo: '',
        alto: 350,
        id: "VentanaMoo",
        fondo: "white",
        fondoModal: "#000",
        opacidad: 0.2,
        html: "",
        url: "",
        arrastra: false,
        separacion: 10,
        borde: 1,
        btnCerrar: "",
        imagenFondo: "",
        colorfondoCabecera: "",
        colorBorde: "",
        textoCerrar: "",
        anchoPrivado: 35,
        htmlCerrar: "",
        estiloCabecera: "",
        onCerrar: $empty(),
        onLoad: $empty(),
	    move:false
    },
    initialize: function(options){
        this.setOptions(options);
        av = window.getWidth() / 2;
        alv = window.getHeight() / 2;
        ad = this.options.ancho / 2;
        ald = this.options.alto / 2;
        ventana = new Element("div", {
            id: this.options.id,
            styles: {
                backgroundColor: this.options.fondo,
                padding: this.options.separacion + 'px',
                height: this.options.alto + 'px',
                width: this.options.ancho + 'px',
                position: 'absolute',
                border: this.options.borde + 'px solid #CCC',
                left: parseInt(av) - parseInt(ad),
                top: parseInt(alv) - parseInt(ald),
                zIndex: 1200,
                display: 'none'
            }
        
        });
        
        
            ventana.set('html', '<div id="header__moo" class="cabecera__moo" style="padding:10px;height:15px" >' +
            '<div style="width:85%;float:left;">' +
            this.options.titulo +
            '</div>' +
            '<div align="right" id="cierra_v_moo" style="float:left;width:15%;cursor:pointer;" title=""></div>' +
            '</div>' +
            '<div style="border-top:0px solid #CCC;padding:35px;height:' +
            parseInt(this.options.alto - 25) +
            'px;overflow:hidden;vertical-align:middle" align="center" id="conte__moo" class="cuerpo__moo">' +
            '</div>');
            
        
        
    },
    render: function(){
        if (!this.options.modal) {
            //$$('select').setStyle("visibility", "hidden");
            $$('body').grab(ventana);
            
            
                $('cierra_v_moo').addEvent('click', this.cerrar.bind(this));
            
            
            if (this.options.url == "") {
                $('conte__moo').set('html', this.options.html);
            }
            else {
                $('conte__moo').set("load", {
                    evalScripts: true,
                    evalResponse: true,
                    onSuccess: function(){
                        this.fireEvent('load');
                    }.bind(this)
                });
                $('conte__moo').load(this.options.url);
            }
            
        }
        else {
            var modal = new Element('div', {
                id: "VentanaMooModal",
                styles: {
                    backgroundColor: this.options.fondoModal,
                    opacity: this.options.opacidad,
                    height: window.getScrollHeight(),
                    width: window.getScrollWidth(),
                    zIndex: 1009,
                    position: 'absolute',
                    top: '0px',
                    left: '0px',
                    visibility: 'hidden'
                }
            });
            //$$('select').setStyle("visibility", "hidden");
            $$('body').grab(modal);
            modal.tween("opacity", [0, this.options.opacidad]);
            //modal.fadeTo(this.options.opacidad);
            $$('body').grab(ventana);
            
            if (this.options.separacion == 0) {
                $('conte__moo').setStyle("padding", "0px");
            }
            
            if (this.options.htmlCerrar != "") {
                $('cierra_v_moo').set("html", this.options.htmlCerrar);
            }
            if (this.options.colorBorde != "") {
                ventana.setStyles({
                    "border-color": this.options.colorBorde
                });
            }
            if (this.options.estiloCabecera != "") {
                $('header__moo').addClass(this.options.estiloCabecera);
            }
            if (this.options.imagenFondo != "") {
                $('conte__moo').setStyle("background-image", "url(" + this.options.imagenFondo + ")");
                $('conte__moo').setStyle("background-repeat", "repeat-x");
            }
            
            this.posicionar();
            if (this.options.url == "") {
                $('conte__moo').set('html', this.options.html);
            }
            else {
               
                    $('conte__moo').set('load', {
                        'evalResponse': true,
                        'onSuccess': function(){
                            if ($(this.options.btnCerrar) && this.options.url) {
                                $(this.options.btnCerrar).addEvent('click', this.cerrar.bind(this)).setStyle("cursor", "pointer").set("title", "");
                            }
                            else {
                                $('cierra_v_moo').addEvent('click', this.cerrar.bind(this));
                            }
                            this.fireEvent('load');
                        }.bind(this)
                    });
                    
              
                
                $('conte__moo').load(this.options.url);
            }
        }
        
        if (this.options.arrastra == "si") {
            if ($('header__moo')) {
                $('header__moo').setStyle("cursor", "move");
                $(ventana).makeDraggable({
                    handle: 'header__moo'/*,container:document.body*/
                });
            }
            
        }
        
        document.addEvents({
            'keypress': function(e){
                if (e.key == 'esc') {
                    if ($('conte__moo')) {
                        this.cerrar();
                    }
                }
            }.bind(this)
        });
		
		if(this.options.move){
		
			window.addEvents({
				'resize': function(){
					if ($('conte__moo')) {
						//	$('VentanaMooModal').morph({"width":window.getScrollWidth(),"height":window.getScrollHeight()});
						this.posicionar();
					}
					
				}.bind(this)            ,
				"scroll": function(){
					if ($('conte__moo')) {
						//$('VentanaMooModal').morph({"width":window.getScrollWidth(),"height":window.getScrollHeight()});
						this.posicionar();
					}
				}.bind(this)
			});
		}
        if ($('VentanaMooModal')) {
            $('VentanaMooModal').addEvent("click", function(){
                if ($('conte__moo')) {
                    this.cerrar();
                }
            }.bind(this));
            
        }
        
        
        
        
        var pos = window.getHeight();
        var posAncho = window.getWidth();
        sizes = window.getSize();
        scrollito = window.getScroll();
        
        
        ventana.setStyles({
            //top:0 + defaz.toInt()  
            'top': (scrollito.y + (sizes.y - this.options.alto) / 2).toInt()
        });
        
        
    },
    cerrar: function(){
        //window.removeEvent('keypress',function(e){});
        //$$('select').setStyle("visibility", "visible");
        $('VentanaMooModal').set("tween", {
            duration: 500,
            onComplete: function(){
                $('VentanaMooModal').destroy();
            }
        });
        if ($(this.options.id)) {
            $(this.options.id).destroy();
        }
        $('VentanaMooModal').tween("opacity", [this.options.opacidad, 0])
        
        //$$('select').setStyle("visibility", "visible");
        this.fireEvent('cerrar');
    },
    load: function(){
    },
    posicionar: function(){
        var scrollventana = new Fx.Scroll(window, {
            wait: false,
            duration: 800,
            transition: Fx.Transitions.Sine.easeInOut
        });
       
            var pos = window.getHeight();
            var posAncho = window.getWidth();
            sizes = window.getSize();
            scrollito = window.getScroll();
            //ventana.setStyles({"top":0,"display":"none"});
            /*
             ventana.setStyles({
             //top:0 + defaz.toInt()
             'top': (scrollito.y + (sizes.y - this.options.alto) / 2).toInt()
             });
             */
            
                //$('VentanaMooModal').morph({"width":window.getScrollWidth(),"height":window.getScrollHeight()});
                //ventana.setStyles({'top': (scrollito.y + (sizes.y - this.options.alto) / 2).toInt()});
                ventana.set('morph', {
                    duration: 500,
                    transition: 'sine:in:out',
                    onComplete: function(){
                        //scrollventana.toElement($('conte__moo'));
                        ventana.setStyles({
                            "display": "block"
                        });
					
                    }
                }).morph({
				'top': (scrollito.y + (sizes.y - this.options.alto) / 2).toInt(),
				"left":posAncho / 2 - (this.options.ancho / 2).toInt()
				
				/*'top': (scrollito.y + (sizes.y - this.options.alto) / 2).toInt(),
				
                     "left":posAncho / 2 - (this.options.ancho / 2).toInt()
                     */
                });
                $('cierra_v_moo').addEvent('click', this.cerrar.bind(this));
           
       
    }
});
