$(document).ready(function(){

    var opcionesDefault = {
        tipo                : "",
        titulo              : "Mensaje",
        texto               : "Este es el mensaje",
        boton               : true,
        botonColor          : "#4F4F4F",
        borderColor         : "#CCCCCC",
        backgroundColor     : "#ffffff",
        transparentValue    : 60,
        textColor           : "#000000",
        width               : 300,
        autoClose           : false,
        transparentColor    : "#000000",
        clickOutClose       : false,
        top                 : 0,
        left                : 0
    };

    //Tipo Navegador
    var navegador   = navigator.appName;

    // dimensiones de la ventana
    var wscr = $(window).width();
    var hscr = $(window).height();

    jQuery.mensaje = function(opcionesUser){

        var opciones = jQuery.extend(opcionesDefault, opcionesUser);

        switch(opciones.tipo){
            case "confirm":
                opciones.titulo         = "Error";
                opciones.borderColor    = "#EF5D4A";
                break;
            case "error":
                opciones.titulo         = "Error";
                opciones.borderColor    = "#EF5D4A";
                opciones.botonColor     = "#ffffff";
                break;
            case "ok":
                opciones.titulo         = "OK";
                opciones.borderColor    = "#7FDF61";
                break;
            case "alerta":
                opciones.titulo         = "Alerta";
                opciones.borderColor    = "#FF981F";
                break;
            case "loading":
                opciones.titulo         = "";
                opciones.borderColor    = "#CCCCCC";
                opciones.boton          = false;
                break;
        }

        if (navegador=="Microsoft Internet Explorer"){
            //$('html, body').animate({scrollTop: '0px'}, 0);
            var bgDiv = $('<div>').attr({
                className   : 'bgTransModal',
            	id          : 'bgTransModal',
                style       : 'position:absolute; background-color:'+opciones.transparentColor+'; filter:alpha(opacity='+opciones.transparentValue+');-moz-opacity:'+opciones.transparentValue/100+'; -khtml-opacity: '+opciones.transparentValue/100+'; opacity: '+opciones.transparentValue/100+';'
            });

            var mdDiv = $('<div>').attr({
                className  : 'ventanaModal',
            	id         : 'ventanaModal',
                style      : 'width:'+opciones.width+'; position:absolute; border-color:'+opciones.borderColor+';' 
            });

            $(window).scroll(function(){

                if(($("#bgTransModal").length > 0) && $("#ventanaModal").length > 0){
                    var top=$('body,html').scrollTop();
                    $('#bgTransModal').css('top',top);
                    var hscr = $(window).height();
                    var hcnt = $('#ventanaModal').height();
                    var mtop = ( hscr - hcnt ) / 2;
                    $('#ventanaModal').css('top',top+mtop); 
                }

            });

        }else{
            var bgDiv = $('<div>').attr({
                className   : 'bgTransModal',
            	id          : 'bgTransModal',
                style       : 'background-color:'+opciones.transparentColor+'; filter:alpha(opacity='+opciones.transparentValue+');-moz-opacity:'+opciones.transparentValue/100+'; -khtml-opacity: '+opciones.transparentValue/100+'; opacity: '+opciones.transparentValue/100+';'
            });
            var mdDiv = $('<div>').attr({
                className  : 'ventanaModal',
            	id         : 'ventanaModal',
                style      : 'width:'+opciones.width+'; border-color:'+opciones.borderColor+';' 
            });
        }                        

        var tituloDiv = $('<div>').attr({
            className   : 'tituloModal',
            id          : 'tituloModal',
            style       : 'border-color:'+opciones.borderColor+'; background:'+opciones.borderColor+';' 
    	});

        var interiorDiv = $('<div>').attr({
            className       : 'interiorModal',
            id              : 'interiorModal',
            style           : 'background-color:'+opciones.backgroundColor+';'
        });

        var botonDiv = $('<div>').attr({
            className       : 'divBotonModal',
            id              : 'divBotonModal'
        });

        
        $('body').append(bgDiv).append(mdDiv);
       

        if (opciones.titulo!=""){
            $('#ventanaModal').append(tituloDiv);
            $('#ventanaModal .tituloModal').append(opciones.titulo);
        }

        $('#ventanaModal').append(interiorDiv);
        $('#ventanaModal .interiorModal').append(opciones.texto);

        if (opciones.autoClose>0){
            setTimeout("$.closeModal()", opciones.autoClose);
        }

        if (opciones.boton){    
            var btn = '<button id="btnModal" style="background:'+opciones.borderColor+'; color:'+opciones.botonColor+';">Aceptar</button>';
            $('#ventanaModal').append(botonDiv);
            $("#divBotonModal").html(btn);
        }
        
        $.resize(opciones);

        $('#bgTransModal').fadeIn("medium",function(){
            $('#ventanaModal').slideDown(200);   
        });

        $("#btnModal").click(function(){
            $.closeModal()
        });

        if(opciones.clickOutClose){
            $("#bgTransModal").click(function(){
                $.closeModal();
            });
        }
         

    }

    
    jQuery.resize = function(opcionesUser){

        var opciones = jQuery.extend(opcionesDefault, opcionesUser);

        $('#bgTransModal').width(wscr);
        $('#bgTransModal').height(hscr);
        // obtiendo tamaņo de contenedor
        var wcnt = $('#ventanaModal').width();
        var hcnt = $('#ventanaModal').height();
        // obtener posicion central
        if (opciones.left==0){
            esteLeft=( wscr - wcnt ) / 2;  
        }else{
            esteLeft=opciones.left;
        }
        
        if (opciones.top==0){
            esteTop = ( hscr - hcnt ) / 2;
        }else{
            esteTop = opciones.top;
        }
        // estableciendo posicion
        $('#ventanaModal').css("left", esteLeft+'px');
        $('#ventanaModal').css("top", esteTop+'px');
    }

     

    jQuery.closeModal = function(){
        $('#ventanaModal').slideUp(200,function(){
            $('#bgTransModal').fadeOut("medium",function(){
                $('#ventanaModal').removeAttr("style");
                $('#bgTransModal').removeAttr("style");
                $('#ventanaModal').remove();
                $('#bgTransModal').remove();
            });   
        });	
    }

    jQuery.cierraModal = function(){
        $('#ventanaModal').css("left", 0);
        $('#ventanaModal').css("top", 0);
        $('#ventanaModal').remove();
    }

});
