var _goToLink  = function(link, navigatorPointer){
    link = encodeURI(link);
    var t = this;
    ClassLoader.ShowBigLoader();
    ;//fix for autocomplete
    $.ajax({
        type: "POST",
        url: link,
        data: {
            isAjax:1
        },
        dataType: "json",

        success: function(data){


            if ('undefined' != typeof(data.result) && 'undefined' != typeof(data.content) && data.result == '1'  && data.content != '' ) {
                t.replacePage(data.content);
                
                if('undefined' != typeof navigatorPointer && navigatorPointer){
                    eval(navigatorPointer);
                }

                document.location.href = '#' + navigationUrlParamCutter(link);
               
                if ('undefined' != typeof(data.title) && data.title != '' ) {
                    document.title = data.title;
                }

                Navigation.getNavigationInfo(0, function(){
                    Navigation.initSiteNavButtons();
                });

            } else {
                //redirect to homepage if empty result
                $.Ajaxor.goToLink('/');
                return;
            }
          
        },
        complete: function(){
        
            var LiveinternetNewLink = link.slice(1);
            var GoogleNewLink = link.slice(0,link.length-1);

            if ('undefined' != typeof(pageTracker)){
                //Google Analytics
                pageTracker._trackPageview(GoogleNewLink);
            }

            //LiveIntenet
            $("img[title='LiveInternet']").attr("src",'http://counter.yadro.ru/hit?t44.1;r'+escape(document.referrer)+((typeof(screen)=='undefined')?'':';s'+screen.width+'*'+screen.height+'*'+(screen.colorDepth?screen.colorDepth:screen.pixelDepth))+';u'+escape(document.URL)+LiveinternetNewLink+';'+Math.random());
           

            ClassLoader.HideBigLoader();
            //fix for autocomplete
            setTimeout(function(){
                $('.ac_results').remove();
            }, 3000);

        }
    });
	
    return false;
}

var _replacePage = function(html){
    initAllBuffaScripts($('#sector').html(html));
    calculatePlayListsCount();
    
}

var _setHumanCookie = function(){
    //set human cookie 300 days
    SetCookie('isHuman', '1', 300);
}

jQuery.fn.extend({
    ajaxor: function(options) {
        return this.each(function() {
            new jQuery.Ajaxor(this, options);
        });
    }
});

jQuery.Ajaxor = function(ahrefobj, options) {
    var $ahref = $(ahrefobj);
    var link = $ahref.attr('href');
    this.goToLink = _goToLink;
    this.replacePage = _replacePage;
    var t = this;
    $ahref.bind("click", function(){
        t.goToLink(link);
        return false;
    });

};

jQuery.Ajaxor.goToLink = _goToLink;
jQuery.Ajaxor.replacePage = _replacePage;
jQuery.Ajaxor.setHumanCookie = _setHumanCookie;

$(function() {
    $.Ajaxor.setHumanCookie();
    if (AJAXOR_SERVER_URI && AJAXOR_SERVER_URI.length > 0) {
        document.location.hash = '#'+AJAXOR_SERVER_URI;
        return;
    }

    var current_hash = document.location.hash;
    if( current_hash.length > 0){
        var href_to_execute = current_hash.replace('#', '');
        $.Ajaxor.goToLink(href_to_execute);
    }
    else{
        var url_components = document.location.href.split('/');
        var result ='/#';
        for(var i = 3; i < url_components.length; i++)
            result += '/' + url_components[i];

        document.location.href = result;
    }
});

function navigationUrlParamCutter(url){
    var index = url.indexOf('?');
    if(index == -1)
        return url;

    var newUrl = url.substring(0, index);
    var getParams = url.substring(index+1, url.length);

    var paramsArray = getParams.split('&');
    var counter = 0;
    for(var i=0; i<paramsArray.length; i++){
        if(paramsArray[i].indexOf('NavigatorBackStep=') == -1){
            newUrl += counter == 0 ? '?'+paramsArray[i] : '&'+paramsArray[i];
            counter++;
        }
    }
    return newUrl;
}