/*
 *  ValidateUtil JavaScript framework, version XX
 *  (c) 2010 Horacio Cruz
 *
 *  ValidateUtil is freely distributable
 */
/**
 * Crea el dialog(message) y lo inicializa.
 *
 * idElem       id del elemento que representa el modal.
 * width        ancho del modal
 * height       alto del modal, si se pone 0 se ajusta, pero si se draggea la ventana se minimiza a 0
 * titulo       tidulo de la ventana modal
 * contenido    contenido de la ventana modal que siempre aparecer� centrado
 * fnOnClose    funci�n que se mandar� llamar cuando el modal se cierre
 *
 * Ejemplo de ejecusi�n:
 * window.onload = function () {
 *    modalMessage('idDIVDialog', 300, 150, 'Aqu&iacute; va el t&iacute;tulo.', 'Aqu&iacute; va el <b>contenido</b>.', function() { doSomething(); });
 * }
 */
function modalMessage(idElem, width, height, titulo, contenido, fnOnClose) {
    var body = document.getElementsByTagName("body")[0];
    var div = document.createElement("DIV");
    div.id = idElem;
    div.innerHTML = "<div align='center'>" + contenido + "</div>";
    body.appendChild(div);

    $('#' + idElem).dialog({
        /*
         * Todos se puede configurar (o dejarlo por default)
         * http://jqueryui.com/demos/dialog/#modal-confirmation (pesta�a Options, ...)
         */
        bgiframe: true,
        title: titulo,
        resizable: false,
        autoOpen: false,
        width: width,
        height: height,
        draggable : false,

        modal: true,
        buttons: {
            Aceptar: function() {
                $(this).dialog('close');
            }
        },
        close: function() {
            fnOnClose();
        }
    });
}

/**
 * Inicializa el dialog de una forma predefinida.
 *
 * idElem       id del elemento que representa el modal.
 * width        ancho del modal
 * height       alto del modal, si se pone 0 se ajusta, pero si se draggea la ventana se minimiza a 0
 * titulo       tidulo de la ventana modal
 * fnOnAccept   funci�n que se mandar� llamar cuando se presiones Aceptar
 * fnOnCancel   funci�n que se mandar� llamar cuando se presione Cancelar
 * fnOnClose    funci�n que se mandar� llamar cuando el modal se cierre
 *
 * Ejemplo de ejecusi�n:
 * window.onload = function () {
 *    modalForm('idDIVDialog', 230, 250, 'Aqu&iacute; va el t&iacute;tulo.', function() { doSomething(0); });
 * }
 */
function modalForm(idElem, width, height, titulo, fnOnClose) {
    $('#' + idElem).dialog({
        /*
         * Todos se puede configurar (o dejarlo por default)
         * http://jqueryui.com/demos/dialog/#modal-confirmation (pestaña Options, ...)
         */
        bgiframe: true,
        title: titulo,
        resizable: false,
        autoOpen: false,
        width: width,
        height: height,
        draggable : false,

        modal: true,
        close: function() {
            fnOnClose();
        }
    });
}

/**
 * Abre un elwindowModal especificado con el id que se envia como parametro.
 * 
 * idElem   id del elemento que representa el modal.
 */
function openModalMessage(idElem) {
    $('#' + idElem).dialog('open');
}

/**
 * Cierra un el windowModal especificado con el id que se envia como parametro.
 *
 * idElem   id del elemento que representa el modal.
 */
function closeModalMessage(idElem) {
    $('#' + idElem).dialog('close');
}