/* AJAX post autosave
----------------------------------------------- */
var autosave_request=false;
var autosave_reqTimeout;
var autosave_load_process=0;

/* -----------[ DisableControls ]----------- */
function autosave_DisableControls(disable)
{
//    if (disable) autosave_ShowError(''); else autosave_ShowError('');

/*
    if ($("BlQuickpost"))
    {
        $("BlQuickpostHeaderOfPost").disabled=disable;
        $("BlQuickpostMessage").disabled=disable;
        $("BlQuickpostTags").disabled=disable;
        $("BlQuickpostSubmit").disabled=disable;
    }
*/
}

/* -----------[ ShowError ]----------- */
function autosave_ShowError(content)
{
    document.getElementById(autosave_divname).innerHTML=content;
}
/* -----------[ Result ]----------- */
function autosave_do_PostEvent_callback()
{
    if (autosave_request.readyState == 4)
    {
        clearTimeout(autosave_reqTimeout);
        autosave_load_process=0;

        if (autosave_request.status == 200)
        {
            result=unescape(autosave_request.responseText);
            retval=result.substr(0,2);
            content=result.substr(2);

            if (retval=='OK')  //пост прошел, дальше html
            {
                s=content.indexOf('|');
                autosave_postid=content.substr(0,s);
                document.getElementById('autosave_postid').value=autosave_postid;

                posthtml=content.substr(s+1);

                autosave_DisableControls(false);
                autosave_ShowError(posthtml);
            }
            else    //ошибка, дальше текст ошибки
            {
                autosave_DisableControls(false);
                autosave_ShowError(content);
            }
        }
        else
        {
            if (!autosave_request.status)
            {
                autosave_ShowError('<font color=red><b>Не удалось сохранить текст сообщения, скопируйте текст перед публикацией</b></font> <input type="button" value="Форсировать" onclick="cron_autosave(true);">');
                autosave_DisableControls(false);
            }
            else
            {
                autosave_ShowError('<font color=red><b>Не удалось сохранить текст сообщения, скопируйте текст перед публикацией</b></font> <input type="button" value="Форсировать" onclick="cron_autosave(true);">');
            }
//            else alert("Не удалось получить данные (код " + autosave_request.status + ", сообщение "+ autosave_request.statusText+")");
        }
    }
}

/* -----------[ Stop query ]----------- */
function autosave_stop_query()
{
    if (autosave_load_process==1)
    {
        autosave_request.abort();
        autosave_load_process=0;
        autosave_DisableControls(false);
        autosave_ShowError('Отправка данных не удалась');
    }
}

/* -----------[ Post event ]----------- */
function autosave_do_PostEvent(journalid, headerofpost, message, tags)
{
    if (autosave_load_process==1) return;
    if (headerofpost=='Заголовок' && message=='') return;

    autosave_load_process=1;

    if (window.XMLHttpRequest)
    {
        try
        {
            autosave_request = new XMLHttpRequest();
        }
        catch (e) {}
    }
    else if (window.ActiveXObject)
    {
        try
        {
            autosave_request = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e)
        {
            try
            {
                autosave_request = new AciveXObject("Microsoft.XMLHTTP");
            }
            catch (e) {}
        }
    }

    if (autosave_request)
    {
        postrequest='postid='+autosave_postid+"&journalid="+journalid+"&headerofpost="+escape(headerofpost.replace(/\+/g,'%u002B'))+"&message="+escape(message.replace(/\+/g,'%u002B'))+"&tags="+escape(tags.replace(/\+/g,'%u002B'));
        autosave_request.open('POST','/journal_autosave.php?doajax=1',true);

        autosave_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        autosave_request.onreadystatechange=autosave_do_PostEvent_callback;
        autosave_reqTimeout=setTimeout('autosave_stop_query()',30000);
        try
        {
            autosave_request.send(postrequest);
        }
        catch (e)
        {
            autosave_ShowError('<font color=red><b>Не удалось сохранить текст сообщения, скопируйте текст перед публикацией</b></font> <input type="button" value="Форсировать" onclick="cron_autosave(true);">');
        }

        autosave_DisableControls(true);
    }
    else
    {
        autosave_ShowError('<font color=red><b>Не удалось сохранить текст сообщения, скопируйте текст перед публикацией</b></font>');
    }
}