/*
function showhide(id) {
    var div = document.getElementById(id);
  
    if (div == null)
        return false;
   
    if (div.style.display != "none")
        div.style.display = "none";
    else
        div.style.display = "normal";
}
*/

// FUNKCIA LEN PRE FRANTISKANKY
// TODO: pouzivat funkciu uvedenu vyzsie a upravit frantiskanky tak aby bola s touto funkciou kompatibilna
// odstranit funkciu showhide zo suboru 'scripts' 
function showhide(id){

	el=document.getElementById(id).style;

	el.display=(el.display == 'block')?'none':'block';

}

function setCheckboxValue(hiddenName,checkboxRef){  
    var hiddenElem = document.getElementById(hiddenName);
  
    if(checkboxRef.checked)
        hiddenElem.value = "1";
    else
        hiddenElem.value = "00";
}

function ajaxSubmit(button)
{
    // Update CKEDITOR instances
    if (typeof(CKEDITOR) != "undefined")
    {
        for (instance in CKEDITOR.instances)
            CKEDITOR.instances[instance].updateElement();
    }

    var form = $(button).closest("form");
    var response = form.find(".response");

    // cleanup states
    resetStates(form);

    var postUrl = form.attr("action");
    var postMethod = form.attr("method");
    var postData = form.serialize() + "&" + $(button).attr("name") + "=" + $(button).val();

    $.ajax({
        url: postUrl,
        type: postMethod,
        data: postData,
        dataType: "json",
        success: function(data) {
            if (data.success)
            {
                blockForm(form);
                var info = $("<div>").html(data.success).addClass("ui-state-highlight").addClass("ui-corner-all");
                response.append(info);
                response.show();
            }

            if (data.error)
            {
                for(var i in data.error)
                {
                    var errorIcon = $("<span>").addClass("ui-icon").addClass("ui-icon-alert").css("float", "left");
                    $("#" + data.error[i].path).addClass("ui-state-error");
                    $("#error-response-" + data.error[i].path).html(data.error[i].data).prepend(errorIcon);
                }
            }

            if (data.fatal)
            {
                var fatal = $("<div>").html(data.fatal).addClass("ui-state-error").addClass("ui-corner-all");
                response.append(fatal);
            }
            
            if (data.redirect)
            {
                window.location = data.redirect;
            }
        },
        error: function() {
            alert("Na\u010dítavanie odpovedi zlyhalo!");
        }
    });

    // Do not call default submit handler
    return false;
}

function resetStates(form)
{
    form.find(".response").empty();
    form.find(".error-response").empty();
    form.find(".ui-state-error").removeClass("ui-state-error");
}

function blockForm(form)
{
    form.contents().not(".response,input[type=button]").remove();
}

function displayDialog(values, title, type)
{
    // don't display an empty array
    if (values.length == 0)
        return;

    var dialogContents = $("<div>");
    var icon = $("<span>");
    icon.addClass("ui-icon").addClass(type == "errors" ? "ui-icon-alert" : "ui-icon-info").css({
        "float": "left",
        "margin" : "0 7px 10px 0"
    });

    // messages
    $.each(values, function(index, value) {
        var row = $("<div>");
        row.css("clear", "both");
        row.text(value);
        row.prepend(icon.clone());
        dialogContents.append(row);
    });

    dialogContents.dialog({
        "buttons": {
            "Ok": function() {
                $(this).dialog("close");
            }
        },
        "dialogClass": "dialog-type-" + type,
        "title": title
    });
}

function saveCurrentAction() {
    if (window.location.pathname.indexOf("/login") !== 0)
        document.cookie = "last_action=" + escape(window.location.pathname) + "; path=/;";
}

saveCurrentAction();

$(document).ready(function() {

    $("a.postify").live('click', function(e) {
        if (e.isPropagationStopped())
            return true;
        
        var url = $(this).attr("href");
        
        if (url.substring(0, 1) == "/" && url.length > 1)
        {
            // trim first /
            var checkUrl = url.substring(1);

            // trim last /
            if (checkUrl.charAt(checkUrl.length - 1) == "/")
                checkUrl = checkUrl.substring(0,checkUrl.length-1);

            // split by /
            var params = checkUrl.split("/");

            // only if function has one or more parameters
            if (params.length < 2)
                return true;

            var form = $("<form>");
            form.css("display", "none");
            form.attr("method", "post");
            form.attr("action", "/" + params[0]);
            $("body").append(form);

            var input = $("<input/>");
            input.attr("type", "text");
            input.attr("name", "__postify");
            input.val(url);

            // append before setting value
            form.append(input);
            form.submit();

            // stop propagation
            return false;
        }

        // continue propagation
        return true;
    });

});
