﻿/// <reference path="../../JQuery/jquery-rgc.js" />
function RGCDialogRGC(idDialogDiv, idMensaje, idImage, onDialogCloseFn, Titulo, Mensaje, Img, initParams) {
    var NombreObject = idDialogDiv.split("_")[0];
    var divDialogId = idDialogDiv;
    var divMensajeId = idMensaje;
    var imgImageId = idImage;
    var fnOnClose = onDialogCloseFn;
    this.Titulo = Titulo ;
    this.Mensaje = Mensaje;
    this.Img = Img;
    this.eventSrc = null;
    this.ObjButtons = null;
    this.GetDivDialog = function() { return divDialogId; }
    this.GetDivMensaje = function() { return divMensajeId; }
    this.bringToFront = function() {
        $("#" + divDialogId).dialog("option", "stack", true);
    }
    this.Width = function(ValWidth) {
        if (ValWidth == undefined) $("#" + divDialogId).dialog("option", "width");
        else if (!isNaN(Number(ValWidth))) $("#" + divDialogId).dialog("option", "width", ValWidth);
    }
    this.Height = function(ValHeight) {
        if (ValHeight == undefined) $("#" + divDialogId).dialog("option", "height");
        else if (!isNaN(Number(ValHeight))) $("#" + divDialogId).dialog("option", "height", ValHeight);
    }
    this.Maximize = function() {
        $("#" + divDialogId).dialog("option", "width", ($(window).width() - 1));
        $("#" + divDialogId).dialog("option", "height", ($(window).height() - 1));
        $("#" + divDialogId).dialog("option", "position", "center");
    }
    var ShowCloseBtn = this.ShowCloseBtn = function(Boolean) {
        if (Boolean == undefined || Boolean == null) return;
        else if (Boolean) $("#" + divDialogId).parent().find(".ui-dialog-titlebar-close").show();
        else $("#" + divDialogId).parent().find(".ui-dialog-titlebar-close").hide();
    }
    
    this.ErrorMessage = function(title, msg, tempObjButtons, BoolShow) {
        if (typeof (title) != "string") title = "Error";
        this.ShowCloseBtn(true);
        this.SetDialog(title, msg, "circle-close", tempObjButtons, (BoolShow == false ? false : true));
    }
    this.AlertMessage = function(title, msg, tempObjButtons, BoolShow, notDisplayX) {
        if (typeof (title) != "string") title = "Advertencia";
        this.ShowCloseBtn(true);
        this.SetDialog(title, msg, "alert", tempObjButtons, (BoolShow == false ? false : true), notDisplayX);
    }
    this.WaitMessage = function(title, msg, BoolShow, notDisplayX) {
        var htmlImgPrcs = "<div style='width: 250px; padding: 0px 10px 0px 15px'>" +
                "<img src='/App_Images/BackGrounds/AjaxProcess.gif' alt='Procesando'" +
                " alt='Procesando' style='width: 100%; height: 14px;' />" +
                "</div>";
        this.ShowCloseBtn(false);
        if (typeof (title) != "string") title = "Procesando";
        this.SetDialog(title, msg + htmlImgPrcs, "clock", null, (BoolShow == false ? false : true), (notDisplayX == true ? true : false));
    }
    this.InfoMessage = function(title, msg, tempObjButtons, BoolShow) {
        if (typeof (title) != "string") title = "Info";
        this.ShowCloseBtn(true);
        this.SetDialog(title, msg, "info", tempObjButtons, (BoolShow == false ? false : true));
    }
    this.IFrameMssg = function(title, url, tempObjButtons, BoolShow) {
        var iframeTag = "<iframe src='" + url + "' style='width: 100%; height: 100%;'/>";
        this.ShowCloseBtn(true);
        this.SetDialog(title, iframeTag, null, tempObjButtons, (BoolShow == false ? false : true));
    }
    this.InsHtmlId = function(title, idDivCont, tempObjButtons, BoolShow, notDisplayX, Opacity) {
        var Div2Move = $("#" + idDivCont);
        if (Div2Move.length != 1) alert("Error en la seleccion del contenido del Dialog");
        if (typeof (title) != "string") title = "";
        this.SetDialog(title, "", null, tempObjButtons, false, notDisplayX);
        $("#" + idDivCont).appendTo("#" + divMensajeId);
        this.Display((BoolShow == false ? false : true))
        if (!isNaN(Opacity)) {
            if(Opacity != initParams.Opacity) this.Opacity(Opacity);
        }
    }
    this.InsHtml = function(title, htmlContent, tempObjButtons, BoolShow, notDisplayX, Opacity) {
        if (typeof (title) != "string") title = "";
        this.SetDialog(title, "", null, tempObjButtons, false, notDisplayX);
        htmlContent.appendTo("#" + divMensajeId);
        this.Display((BoolShow == false ? false : true))
        if (!isNaN(Opacity)) {
            if (Opacity != initParams.Opacity) this.Opacity(Opacity);
        }
    }    
    this.Opacity = function(cociente) {
        if (cociente == undefined || cociente == null || isNaN(cociente) || !(Number(cociente) <= 1 && Number(cociente) >= 0)) return;
        $(".ui-widget-overlay, [style*='z-index: " + $("#" + idDialogDiv).parent().css("z-index") + ";']").css({"opacity" : cociente, "filter" : "Alpha(Opacity="+(cociente * 100)+")"})
        //$("#" + idDialogDiv).paretn().css("z-index")

    }
    this.Display = function(Boolean) {
    if (Boolean == undefined || Boolean == null) return $('#' + divDialogId).dialog("isOpen");
        else if (Boolean != $('#' + divDialogId).dialog("isOpen")) {
            if (Boolean) {
                $('#' + divDialogId).dialog("open");
                if (!isNaN(initParams.Opacity)) this.Opacity(initParams.Opacity);
            }
            else $('#' + divDialogId).dialog("close");
        }
    }
    this.SetDialog = function(strTitulo, strMensaje, img, ObjButtons, Open, notDisplayX) {
        var buttons = this.ObjButtons;
        this.ShowCloseBtn(notDisplayX == null || !notDisplayX);

        if (typeof (strTitulo) === 'string') {
            if (strTitulo != this.Titulo) {
                this.Titulo = strTitulo;
                $('#' + divDialogId).dialog('option', 'title', "<img src='/App_Images/Logos/PNGs/iso-gris-emergente.png' alt='RGC' style='vertical-align:middle;'/> " + strTitulo)
            }
        }
        if (typeof (strMensaje) === 'string') {
            this.Mensaje = strMensaje;
            $('#' + divMensajeId).html(strMensaje);
        } else if (typeof (strMensaje) === 'Object') {
            if (typeof (strMensaje.iFrame) === "string")
                this.Mensaje = "<iframe src='" + strMensaje.iFrame + "' width='99%' height='99%' sameless='sameless'></iframe>";
            $('#' + divMensajeId).html(this.Mensaje);
        }
        if (typeof (img) === 'string' && img.split(" ").join("") != "") {
            this.Img = img.split(" ").join("");
            $('#' + imgImageId).removeClass().addClass("ui-icon ui-icon-" + this.Img).show();
        } else $('#' + imgImageId).removeClass().hide();

        if (typeof (ObjButtons) === "object" && ObjButtons != null) {
            $('#' + divDialogId).dialog("option", "buttons", ObjButtons)
        } else if (ObjButtons != null) {
            if (typeof (this.ObjButtons) === "Object" && this.ObjButtons.length > 1) {
                $('#' + divDialogId).dialog("option", "buttons", ObjButtons)
            }
        }
        else if (buttons == null) $('#' + divDialogId).dialog("option", "buttons", null);

        this.Display(Open);
        /*if (typeof (Open) != undefined) {

            if (Open) $('#' + divDialogId).dialog("open");
        else $('#' + divDialogId).dialog("close");
        }*/
    }
    if (typeof (initParams) == undefined || initParams == null || !initParams) {
        initParams = {};
    }
        $('#' + divMensajeId).html(this.Mensaje);
        if (this.Titulo.split(" ").join("").length > 0)
            initParams.title = "<img src='/App_Images/Logos/PNGs/iso-gris-emergente.png' alt='RGC' /> " + this.Titulo;
        else if (initParams.title == undefined)
            initParams.title = "<img src='/App_Images/Logos/PNGs/iso-gris-emergente.png' alt='RGC' /> ";
        else if (initParams.title.split("<img").length <= 1)
            initParams.title = "<img src='/App_Images/Logos/PNGs/iso-gris-emergente.png' alt='RGC' /> " + initParams.title;
        if (typeof (initParams.open) != "function") initParams.open = function(type, data) {
            $(this).parent().appendTo('form');
            if (initParams.closeButton != undefined && initParams.closeButton == false)
                ShowCloseBtn(false);
        };
        if (typeof (initParams.close) != "function" && (typeof (fnOnClose) == "function" || typeof (fnOnClose) == "string")) {
            initParams.close = function(type, data) {
                if (typeof (fnOnClose) == "function") fnOnClose();
                else if (typeof (fnOnClose) == "string") eval(fnOnClose);
            };
        }
        if (initParams.modal == undefined) initParams.modal = true;
        if (initParams.position == undefined) initParams.position = 'center';
        if (initParams.closeOnEscape == undefined) initParams.closeOnEscape = false;
        if (initParams.maxHeigth == undefined) initParams.maxHeigth = ($(window).height() - 1);
        if (initParams.maxWidth == undefined) initParams.maxWidth = ($(window).width() - 1);
        if (initParams.autoOpen == undefined) initParams.autoOpen = false;
        $("#" + divDialogId).dialog(initParams);
        this.ObjButtons = $("#" + divDialogId).dialog("option", "buttons")
}

function RGCdlgMngrRGC() {
    this.count = new Number(0);
    this.listDlg = new Array();
    var listDlg = this.listDlg;
    this.Destroy = function(idDiv) {
        var Dlg2Dstry = $("div #" + idDiv + "_divRGCDlg");
        if (Dlg2Dstry.length > 0) {
            var position = existDiv(idDiv)
            if (position >= 0 && typeof (eval("this." + idDiv)) == undefined) alert("El no se encunetra en la lista.");
            else {
                Dlg2Dstry.remove();
                this.count -= 1;
                eval("this." + idDiv + "= undefined;");
                this.listDlg.splice(position, 1)
            }
            // 
        }
    }
    this.Create = function(idDiv, onDialogClosefn, Titulo, Mensaje, Img, initParams, BoolDisplay) {
        if (typeof (idDiv) === "string") {
            var position = existDiv(idDiv);
            var Dlg2Dstry = $("div #" + idDiv + "_divRGCDlg");
            if (Dlg2Dstry.length > 0 || position >= 0) alert("El ID del objeto a crear ya existe en el HTML.");
            else {
                var newDiv = "<div id=\"" + idDiv + "_divRGCDlg\"  style=\"width: 200px; display: none;\">" +
                        "<span id=\"" + idDiv + "_RGCImg\" style=\"float: left; margin: 0 7px 50px 0;\"></span>" +
                        "<div id=\"" + idDiv + "_divRGCMssg\" style=\"display:inline;\"></div>" +
                    "</div>";
                $(document.body).append(newDiv);
                if (initParams == undefined || initParams == null) initParams = {};
                initParams.autoOpen = (BoolDisplay == undefined ? false : BoolDisplay)
                eval("this." + idDiv + "= new RGCDialogRGC(idDiv + \"_divRGCDlg\", idDiv + \"_divRGCMssg\", idDiv + \"_RGCImg\", onDialogClosefn, Titulo, Mensaje, Img, initParams);")
                this.count += 1;
                this.listDlg.push(idDiv);
                return eval("this." + idDiv);
            }
        }
    }
    this.GetDialog = function(idDiv) {
        if (eval("this." + idDiv) != undefined) {
            return eval("this." + idDiv)
        }
    }
    function existDiv(nameDiv) {
        for (i = 0; i < listDlg.length; i++) {
            if (listDlg[i] == nameDiv) {
                return i;
            }
        }
        return -1;
    }
}
var DialogMngr = new RGCdlgMngrRGC();

