﻿// napisao: Marko Šalinić
// datum: 28-03-2011
//
// Komponenta koja wrapuje jquery post i get ajax zahteve tako da proverava rezultat poziva.
// Ukoliko se u rezultatu poziva nađe text "sessionend", to znači da je istekla sesija
// i poziv ne poziva callback funkciju, već pušta javascript da uradi redirekciju
// koja je prosleđena sa strane servera.

$.extend({
    getx: function (url, param, callback, type)
    {
        if (typeof (param) == 'function')
        {
            type = callback;
            callback = param;
            param = null;
        }
        $.get(url, param, function (data)
        {
            if (typeof (data) == 'string')
            {
                if (data.indexOf('sessionend^^^', 0) != -1)
                {
                    return;
                }
            }

            if (callback)
                callback(data);
        }, type);
    },

    postx: function (url, param, callback, type)
    {
        if (typeof (param) == 'function')
        {
            type = callback;
            callback = param;
            param = null;
        }
        $.post(url, param, function (data)
        {
            if (typeof (data) == 'string')
            {
                if (data.indexOf('sessionend^^^', 0) != -1)
                {
                    return;
                }
            }
            if (callback)
                callback(data);
        }, type);
    },

    jsonx: function (jurl, jparam, jcallback, jtype)
    {
        if (typeof (jparam) == 'function')
        {
            jtype = jcallback;
            jcallback = jparam;
            jparam = null;
        }
        $.ajax({
            url: jurl,
            data: jparam,
            type: 'POST',
            contentType: 'application/json',
            dataType: jtype,
            success: function (result)
            {
                if (typeof (result) == 'string')
                {
                    if (result.indexOf('sessionend^^^', 0) != -1)
                    {
                        return;
                    }
                }
                if (jcallback)
                    jcallback(result);
            }
        });
    }
});
