﻿var ShG = new Object();
ShG.PageNumber = undefined;
ShG.SliderStates = undefined;
ShG.StatesArray = undefined;
ShG.DefaultStates = "0,0,0,0,0";
ShG.AnchorParams = new Object();
ShG.oldURL = undefined;
ShG.SliderChange = undefined;
ShG.NSliders = undefined;
ShG.IdPrefix = undefined;
ShG.Ajax = true;
ShG.slider_getstate = function(idprefix) {
    var sliders = $("[id^=" + idprefix + "]");
    var surl = "";
    for (var i = 0; i < sliders.length; i++) {
        var slider = sliders[i];
        var id = slider.id.substring(7);
        var v = $(slider).slider('value');
        surl += v + ",";

    }
    if (surl.substring(surl.length - 1) == ",")
        surl = surl.substring(0, surl.length - 1);

    return surl;
};

ShG.InitSliders = function(States, NSliders, IdPrefix, Max, Min, Step, OnChangeFunction) {
    ShG.NSliders = NSliders;
    ShG.IdPrefix = IdPrefix;
    ShG.SliderStates = States;

    if (ShG.AnchorExist() == true) {
        ShG.InitFromAnchor();
        States = ShG.AnchorParams["states"];
    }

    ShG.StatesArray = States.split(",");

    ShG.SliderChange = (OnChangeFunction.length > 0 ? (eval(OnChangeFunction)) : undefined);

    for (var i = 1; i <= ShG.NSliders; i++) {
        $("#" + IdPrefix + i).slider({ range: "min", max: Max, min: Min, step: Step, value: ShG.StatesArray[i - 1] });
        $("#" + ShG.IdPrefix + i).bind("slidechange", ShG.SliderChange);

    }



    if (ShG.AnchorParams["pagenumber"]) {
        ShG.goToPage(ShG.AnchorParams["pagenumber"]);
    }
    else if (ShG.AnchorParams["states"]) {
        ShG.slider_change_community();
    }

};

ShG.AnchorExist = function() {
    var res = false;
    res = (document.location.href.indexOf("#") != -1) || ((document.location.href.indexOf("?") == -1) && (document.location.href.indexOf("/community/") != -1));
    return res;

};
ShG.InitFromAnchor = function() {
    try {
        var anchor = document.location.href.split("#")[1];
        var anchors = anchor.split("|");
        var n = anchors.length;
        for (var i = 0; i < n; i++) {
            var params = anchors[i].split("=");
            ShG.AnchorParams["" + params[0].toLowerCase()] = params[1].toLowerCase();

        }
    }
    catch (e) {
        ShG.AnchorParams["states"] = ShG.DefaultStates;
    }
};

ShG.getURL = function(param) {
    var a = ShG.AnchorExist();
    var url;
    var anchor = "";
    if (param.bAjax)
        url = "/guide/community_ajax/?";
    else
        url = "/guide/community/?";

    if (param.bAnchor) {
        //url += "states=" + ShG.SliderStates  + "&"
        anchor += "states=" + ShG.slider_getstate("sldr") + "|";
    }
    else
        url += "states=" + ShG.slider_getstate("sldr") + "&";

    if (param.PageNumber) {
        if (param.PageNumber > 1) {
            if (param.bAnchor) {
                anchor += "pagenumber=" + param.PageNumber + "|"
            }
            else {
                url += "pagenumber=" + param.PageNumber + "&";
            }
        }
    }

    if (url.substring(url.length - 1) == "?")
        url = url.substring(0, url.length - 1);

    if (url.substring(url.length - 1) == "&")
        url = url.substring(0, url.length - 1);

    if (url.substring(url.length - 1) == ",")
        url = url.substring(0, url.length - 1);

    if (anchor.length > 0)
        url += "#" + anchor;

    if (url.substring(url.length - 1) == "|")
        url = url.substring(0, url.length - 1);

    return url;

};


ShG.goToPage = function(n) {
    ShG.PageNumber = n;
    var url = "";
    if (ShG.Ajax == true) {
        url = ShG.getURL({ bAjax: true, PageNumber: n, bAnchor: undefined });
        ShG.LoadNewContent(url);
    }
    else {
        url = ShG.getURL({ bAjax: false, PageNumber: n, bAnchor: undefined });
        document.location.href = url;

    }
    return false;
};

ShG.Begin = function() {

    var url = ShG.getURL({ bAjax: undefined, PageNumber: undefined, bAnchor: true });
    document.location.href = url;
    return false;
};

ShG.slider_change_main = function(event, ui) {
    //ShG.FixSliders(event, ui);
};

ShG.emptyF = function(event, ui) {
    ;
};
ShG.FixSliders = function(event, ui) {

    for (var i = 1; i <= ShG.NSliders; i++) {
        $("#" + ShG.IdPrefix + i).unbind("slidechange", ShG.SliderChange);

    }

    var sv = new Array();
    var nNotNul = 0;
    var nNotNul2 = 0;

    if (event) {
        var cuurenSlider = Number(event.target.id.substring(5));
        var delta = Math.abs(Number($("#" + ShG.IdPrefix + cuurenSlider).slider('value')) - ShG.StatesArray[cuurenSlider - 1]);
        var summ = 0;
        for (var i = 1; i <= 5; i++) {
            sv[i - 1] = Number($("#" + ShG.IdPrefix + i).slider('value'));
            summ += sv[i - 1];
            if (sv[i - 1] != 0 && i != cuurenSlider) {
                if (nNotNul == 0)
                    nNotNul = i;
                else if (nNotNul2 == 0 && nNotNul != 0)
                    nNotNul2 = i;
            }
        }
        if (summ > 5) {

            var sldr1 = $("#" + ShG.IdPrefix + nNotNul);
            if (delta == 1) {

                sv[nNotNul - 1] = sv[nNotNul - 1] - 1;
                sldr1.slider('value', sv[nNotNul - 1]);
            }
            else if (delta == 2) {
                var sldr1 = $("#" + ShG.IdPrefix + nNotNul);
                var sldr2 = $("#" + ShG.IdPrefix + nNotNul2);
                if (sv[nNotNul - 1] == 2) {

                    sv[nNotNul - 1] = sv[nNotNul - 1] - (summ - 5);
                    sldr1.slider('value', sv[nNotNul - 1]);

                }
                else {

                    sv[nNotNul - 1] = sv[nNotNul - 1] - 1;
                    sldr1.slider('value', sv[nNotNul - 1]);
                    sv[nNotNul2 - 1] = sv[nNotNul2 - 1] - 1;
                    sldr2.slider('value', sv[nNotNul2 - 1]);


                }
            }
        }

        ShG.StatesArray = sv;
        ShG.SliderStates = sv.join(",");
    }
    for (var i = 1; i <= ShG.NSliders; i++) {
        $("#" + ShG.IdPrefix + i).bind("slidechange", ShG.SliderChange);
    }

};

ShG.slider_change_community = function(event, ui) {
    //ShG.FixSliders(event, ui);
    var url = "";
    ShG.PageNumber = 1;
    if (ShG.Ajax == true) {
        url = ShG.getURL({ bAjax: true, PageNumber: undefined, bAnchor: undefined });
        if (url != ShG.oldURL) {
            ShG.oldURL = url;
            ShG.LoadNewContent(url);
        }
    }
    else {

        url = ShG.getURL({ bAjax: undefined, PageNumber: undefined, bAnchor: undefined });
        if (url != ShG.oldURL) {
            ShG.oldURL = url;
            document.location.href = url;
        }
    }
    return false;


};




ShG.ContentLoadCompleted = function(result) {

    var content = $("#for_ajax_users")
    content.empty();
    content.append(result);
    if (ShG.Ajax == true) {
        var url = ShG.getURL({ bAjax: false, PageNumber: ShG.PageNumber, bAnchor: true });
        document.location.href = url;
    }
    window.scroll(0, 0);
};

ShG.LoadNewContent = function(url) {
    var content = $("#for_ajax_users")
    content.html("<img src=\"/img/loading.gif\" /> Подождите, идёт загрузка...");
    $.get(url, ShG.ContentLoadCompleted)


};

