/***********************************************************
    AJAX FUNCTIONS
***********************************************************/
function createAjaxRequestObject()
{
    var req;

    if (window.ActiveXObject)
    {
        req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else
    {
        req = new XMLHttpRequest();
    }

    return req;
}

function sendAjaxMsg(url,params,callback,wait,uiType,uiText)
{
    var request = createAjaxRequestObject();

    request.open("POST",url,!wait);
    request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    request.setRequestHeader("Content-length", params.length);
    request.setRequestHeader("Connection", "close");
    request.onreadystatechange = function()
    {
        if (request.readyState == 0)
        {
            if (uiType > 0) hideAjaxUI();
            alert("Došlo k chybě při komunikaci se serverem!");
            return false;
        }
        else
        if (request.readyState == 4)
        {
            if (request.status == 200 || request.status == 304)
            {
                if (uiType > 0) hideAjaxUI();
                eval(callback + '(request.responseText)');
                return true;
            }
            else
            {
                if (uiType > 0) hideAjaxUI();
                alert("Došlo k chybě při komunikaci se serverem!");
                return false;
            }
        }
    };
    if (uiType > 0) showAjaxUI(uiType,uiText);
    request.send(params);
}

function showAjaxUI(uiType,uiText)
{
    document.getElementById('ajaxText').innerHTML = uiText;
    if (uiType == 1)
    {
        document.getElementById('ajaxImg').src = 'core/img/ajax_waiting.gif';
        document.getElementById('ajaxImg').width = 16;
        document.getElementById('ajaxImg').height = 16;
    }
    if (uiType == 2)
    {
        document.getElementById('ajaxImg').src = 'core/img/ajax_progress.gif';
        document.getElementById('ajaxImg').width = 220;
        document.getElementById('ajaxImg').height = 19;
    }
    document.getElementById('ajaxFader').style.display = 'block';
    document.getElementById('ajaxUi').style.display = 'block';
}

function hideAjaxUI()
{
    document.getElementById('ajaxUi').style.display = 'none';
    document.getElementById('ajaxFader').style.display = 'none';
}

function toggleItemVisiblity(itemId)
{
    if (document.getElementById(itemId).style.display == 'none')
    {
        document.getElementById(itemId).style.display = 'block';
    }
    else
    {
        document.getElementById(itemId).style.display = 'none';
    }
}

function coreShowDebugWindow()
{
    dbgWnd = window.open('','','width=600,height=500,scrollbars=1,resizable=1');
    dbgWnd.document.title = 'Debug info';
    dbgWnd.document.body.innerHTML = document.getElementById('coredebug').innerHTML;
    
}

function swapImage(image, id)
{
    document.getElementById(id).src = image;
}

function goURL(url,target)
{
    if (target.length == 0)
    {
        location.href = url;
    }
    else
    {
        var newWindow = window.open(url,target);
        newWindow.focus();
    }
}


function toggleItemVisiblity(id)
{
    if (document.getElementById(id).style.display != 'block')
    {
        document.getElementById(id).style.display = 'block';
    }
    else
    {
        document.getElementById(id).style.display = 'none';
    }
}
