function kk_ajax()
{
    var i_anchor = document.location.href.lastIndexOf('#');
    i_anchor = i_anchor != 1 && i_anchor != -1 ? document.location.href.substr(i_anchor+1) : null;

    if(i_anchor!=null && i_anchor!='' && ajax_onload_refresh && $.isArray(ajax_onload_refresh)){
        kk_ajax_load(ajax_onload_refresh, i_anchor);
    }else{
        kk_ajax_init();
    }
}


function kk_ajax_init(only_in)
{

    $((only_in ? only_in+' ' : '')+'a[kk_load]').click(function(){

        var from = $(this).attr('href').replace(/http(s)*:\/\/[^\/]+/, "");
        var tp = $(this).attr('kk_load');
        var before_exe = $(this).attr('kk_before');

        var chk = (before_exe ? eval(before_exe) : true);

        return (chk ? kk_ajax_load(tp, from) : false);

    });

    $((only_in ? only_in+' ' : '')+'form[kk_load]').submit(function(){

        var from = $(this).attr('action').replace(/http(s)*:\/\/[^\/]+/, "");
        var tp = $(this).attr('kk_load');
        var before_exe = $(this).attr('kk_before');

        $(this).append('<input type="hidden" name="ajax" value="'+tp+'" />');

        var chk = (before_exe ? eval(before_exe) : true);

        return (chk ? kk_ajax_load(tp, from, $(this).serialize()) : false);

    });

}

function kk_ajax_load(tp, from, post)
{
        var elems;
        if($.isArray(tp)){
            elems = tp;
            tp = 'ajax_onload';
        //}elseif(tp == "kk_reload"){
        //    elems = ["#kk_reload"];
        }else{
            elems = ajax_type[tp];
        }

        if(elems){

            $('#ajax_overlay').show();
            $(elems[0]).addClass("ajax_loader");
            $(elems[0]).prepend('<!--<div class="ajax_smooth"></div>--><div id="ajax_load"><img src="/sys/images/ajax-loader-1.gif" width="48" height="48" alt="" /></div>');

            query = {ajax: tp};
            if( post ){
                query = post;
            }
          
            $.post(from, query, function(data){
                                  
                 for (var i=0; i < elems.length; i++) {
                     $(elems[i]).html($(data).find(elems[i]).html());
                     kk_ajax_init(elems[i]);
                 }

                 $('#ajax_sysmsg').html('');
                 $('#sysmsg').html('');
                 $('#sysmsg_glob').html('');

                 if(!post){
                    var uri = document.location.href.lastIndexOf('#');
                    uri = uri != 1 ? document.location.href.substr(0, uri) : null;
                    document.location=uri+"#"+from;
                 }

                 $('#ajax_sysmsg').html($(data).find('#sysmsg').html());
                 $('#ajax_sysmsg').append($(data).find('#sysmsg_glob').html());

                 $(elems[0]).removeClass("ajax_loader");
                 $('#ajax_overlay').hide();

            }, "html");
        }
        return false;

}

var ajax_type = new Array();
var ajax_onload_refresh = null;
$(document).ready(function(){if(ajax_type){kk_ajax();}});
