function domAlert(msg, confirma, btTextOk, titulo, div_base) {
    // para prevenir doble aparicion...
    remove();
    $('a,input').blur();
    var ancho = 460;
    /*var alto = 198;*/
    var dispatcher = {};
    // para prevenir problemas de js al no usar el evento...
    dispatcher.onControlPressed = function () { }
    var title;
    title = (titulo ? titulo : "Alerta");
    var bDiv;
    bDiv = (div_base ? div_base : "contenedor");
    var confirm;
    confirm = (confirma ? true : false);
    var textOk;
    textOk = (btTextOk ? btTextOk : "ACEPTAR");
    $('body #' + bDiv).append('<div id="overlayAlert" />').find('#overlayAlert').css({
        position: 'absolute',
        top: 0,
        left: 0,
        width: $('body #' + bDiv).width(),
        height: $('body #' + bDiv).height(),
        'z-index': 30,
        background: '#FFFFFF'
    }).fadeTo(0, .8);
    $('body #' + bDiv).append('<div id="domAlert"><h3>' + title + '</h3><p>' + msg + '</p><div class="controls"></div></div>');

    $('body #' + bDiv + ' #domAlert .controls').append('<input type="button" class="ok" name="aceptar" value="' + textOk + '" />');
    confirm ?
        $('body #' + bDiv + ' #domAlert .controls').append('<input type="button" class="cancel" name="cancelar" value="CANCELAR" />') :
        false;
    $('body #' + bDiv + ' #domAlert').css({
        position: 'absolute',
        top: (($('body #' + bDiv + '').offset()['top'] + $(window).scrollTop()) + 100) + 'px',
        left: (($('body #' + bDiv + '').width() - ancho) / 2) + "px",
        padding: "18px",
        width: ancho - (18 * 2) + "px",
        /*height:alto - (18*2) + "px",*/
        background: '#FFFFFF',
        'text-align': 'left',
         'z-index': 35
    })
    $('body #' + bDiv + ' #domAlert .controls .ok').bind('click', function () {
        remove();
        dispatcher.value = true;
        dispatcher.onControlPressed();
        return true;
    })
    $('body #' + bDiv + ' #overlayAlert').bind('click', function () {
        remove();
        dispatcher.value = true;
        dispatcher.onControlPressed();
        return true;
    })
    $('body #' + bDiv + ' #domAlert .controls .cancel').bind('click', function () {
        remove();
        dispatcher.value = false;
        return false;
    })
    $(window).bind('scroll', function () {
        $('body #' + bDiv + ' #domAlert').css({
            top: (($('body #' + bDiv + '').offset()['top'] + $(window).scrollTop()) + 100) + 'px'
        });
    })

    function remove() {
        $('body #' + bDiv + ' #domAlert').remove()
        $('body #' + bDiv + ' #overlayAlert').remove()
    }
    return dispatcher;
}

function customAlert(msg, titulo) {
    domAlert(msg, false, "ACEPTAR", titulo);
}
