// Javascript Text File
/**
 * В этом файл располагаются функциии и предустановки для работы с
 * всплывающими слоями
 *
 */
var pppSingleton = null;

function ppp_assert(cas, message){
    if(cas == null){
        alert(message);
    }
}

function _showPopup(config, offsetX, offsetY, text_in_edit, callback, data)
{
    if( pppSingleton != null){
        _hidePopup();
    }
    
    cfg = config;                               // алиас
    cfg.callback = callback;                    // запоминаем колбек на случай закрытия окна
    cfg.data     = data;
    
    ppp_assert($,              'Не подключен прототайп'   );
    ppp_assert($(cfg.div_id),  cfg.div_id  + ' не найден' );
    if(text_in_edit){
        ppp_assert($(cfg.edit_id), cfg.edit_id + ' не найден' );
        ppp_assert($(cfg.edit_id).value, 'Эдит есть, но не редактируем' );
    }

    div = $(cfg.div_id);                        // див

    if(offsetX != null)                         // если задано
    div.style.left = offsetX + 'px';            // положение по горизонтали

    if(offsetX != null)                         // если задано
    div.style.top  = offsetY + 'px';            // положение по вертикали

    if(text_in_edit != null){
        $(cfg.edit_id).value = text_in_edit;    // текст для редактирования
    }

    pppSingleton = cfg;                         // записать синглтон
    
    if(cfg.error_id){
        $(cfg.error_id).innerHTML = '';
    }
    
    $(cfg.div_id).style.display = 'block';      // показать окошко
    $(cfg.edit_id).activate();                  // поместить фокус и выделить
}

function _hidePopup()
{
    $(cfg.div_id).style.display = 'none';       // спрятать окошко
    pppSingleton = null;                        // почистить синглтон
}

function _submitPopup(what)
{
    ppp_assert(pppSingleton, 'Не задан синглтон');
    
    cfg = pppSingleton;                         // синглтон
    data = cfg.data;                            // данные для передачи колбеку
    callback = cfg.callback;                    // колбек

    data.message = $(cfg.edit_id).value;        // что ввёл пользователь

    callback( data );                           // вызываем колбек

    return false;
}

/*function showPrompt(what) {
    var x = what.id;
    var target = $("prompt_" + x);
    var wPos = what.cumulativeOffset() ;         // положение объекта клика
    var tDim = target.getDimensions();           // размеры хинта
    target.style.left = (wPos[0] - tDim.width)  + 'px';
    target.style.top  = (wPos[1] - tDim.height - 2) + 'px';
    target.style.display = "block";
}

function hidePrompt(what) {
    var x = what.id;
    $("prompt_" + x).style.display = "none";
}
*/
