﻿CurrentToggleId = "";

function TreeViewClickSet() {
    $(".priceToggleItem").click(function() {
        tagParam = "";
        CurrentToggleId = this.id.replace("priceToggleItem", "");
        $.ajaxSetup({ cache: false });
        $.getJSON("/Price/CategoryChildrenCount/",
                    {
                        idParam: CurrentToggleId,
                        tagParam: tagParam
                    },
                    CheckCategoryChildrenCount);
    });
}

function CheckCategoryChildrenCount(data) {
    if (data != null && data > 0) {
        $.getJSON("/Price/TreeViewToggle/",
                    {
                        idParam: CurrentToggleId,
                        tagParam: tagParam
                    },
                    TreeViewOut);
    }
    else {
        document.location.href = $("#" + CurrentToggleId).attr("href");
    }
}

function TreeViewOut(items) {
    if (items != null && items.length > 0) {
        ulpriceArea = $(".ulprice");
        ulpriceArea.text("");
        innerHTML = AppendChildren(items);
        ulpriceArea.append(innerHTML);
        TreeViewClickSet();
        DownPriceClickSet();
    }
}

function AppendChildren(children) {
    innerHTML = "";
    context = "/Price/Index";
    if (document.location.href.search("/Admin/PriceList") != -1) {
        context = "/Admin/PriceList";
    }
    if (children.length > 0) {
        innerHTML += "<ul>";
        $.each(children, function(i) {
            innerHTML += "<li><div class='priceToggleItem";
            if (this.Children.length > 0) {
                innerHTML += " Opened";
            }
            innerHTML += "' id='priceToggleItem" + this.GUID + "'></div>";
            if ((this.Parent_GUID == "") && (context != "/Admin/PriceList")) {
                innerHTML += "<div class='down_price' id='" + this.Description + "'><img src='/Content/img/save.gif' width='10' height='10' alt='Скачать' title='Скачать' /></div>";
            }
            innerHTML += "<a id='" + this.GUID + "'";
            currentItemHref = context + "/" + this.GUID;
            if (document.location.pathname == currentItemHref) {
                innerHTML += " style='font-weight: bold;'";
            }
            innerHTML += " href='" + context + "/" + this.GUID + "'>" + this.Description + "</a>";
            innerHTML += AppendChildren(this.Children);
            innerHTML += "</li>";
        });
        innerHTML += "</ul>";
    }
    return innerHTML;
}

function DownPriceClickSet(){
    
    $(".down_price").click(function() {
        var id = $(this).attr('id');
        $('#download_xls').attr('href', '/Content/price/docs/' + id + '.zip');
        $('#download_pdf').attr('href', '/Content/price/docs/' + id + '.pdf');

        $("#download_xls").click(function() {
            try {
                pageTracker._trackEvent('Загрузка прайса', id, 'Excel', 1);
            } catch (err) {
            }
        });

        $("#download_pdf").click(function() {
            try {
                pageTracker._trackEvent('Загрузка прайса', id, 'PDF', 1);
            } catch (err) {
            }
        });

        $('#popupwindow_download').show();
    });
       
};

function FilterParamsToSearchForm() {
    if ($("#searchInFilter").attr("value") == "true") {
        $("#filterForm").find("input").each(function() {
            if ($("#searchForm " + "#" + this.id).length == 0) {
                $(this).clone().appendTo("#searchForm").hide();
            }
        });
    }
}

$(document).ready(function() {

    $("#search-text").Watermark("Введите наименование, код или артикул");

    $("#SGCheckbox").click(function() {
        if ($(this).hasClass("SGChecked")) {
            $(this).removeClass("SGChecked");
            $("#searchInGroup").attr("value", "false");
        }
        else {
            $(this).addClass("SGChecked");
            $("#searchInGroup").attr("value", "true");
        }
    });

    if ($("#searchInGroup").attr("value") == "true") {
        $("#SGCheckbox").addClass("SGChecked");
    }

    $("#btnSearch").click(function() {
        FilterParamsToSearchForm();
    });

    TreeViewClickSet();
    DownPriceClickSet();

    sortBy = $("#sortBy").attr("value");
    if (sortBy) {
        if (sortBy.indexOf("guid") != -1) {
            $(".codes").addClass((sortBy.indexOf("asc") != -1) ? "asc" : "desc");
        }
        else if (sortBy.indexOf("description") != -1) {
            $(".name").addClass((sortBy.indexOf("asc") != -1) ? "asc" : "desc");
        }
        else if (sortBy.indexOf("price_rur") != -1) {
            $(".pric").addClass((sortBy.indexOf("asc") != -1) ? "asc" : "desc");
        }
        else {
            $(".name").addClass("desc");
        }
    }

    $(".interactItem").click(function() {

        Desc = $(this).hasClass("desc");

        $(".interactItem").removeClass("desc");
        $(".interactItem").removeClass("asc");

        if ($(".pagescroll").length > 0) {

            Desc = !Desc;

            sortBy = "";
            if ($(this).hasClass("codes")) {
                sortBy = "guid";
            }
            else if ($(this).hasClass("name")) {
                sortBy = "description";
            }
            else if ($(this).hasClass("pric")) {
                sortBy = "price_rur";
            }
            $("#sortBy").attr("value", sortBy + ((Desc) ? " desc" : " asc"));
            $("#sortForm").attr("action", document.location.href);

            $("#searchForm").find("input").each(function() {
                if ($("#sortForm " + "#" + this.id).length == 0) {
                    $(this).clone().appendTo("#sortForm").hide();
                }
            })

            $("#filterForm").find("input").each(function() {
                if ($("#sortForm " + "#" + this.id).length == 0) {
                    $(this).clone().appendTo("#sortForm").hide();
                }
            })

            $("#sortForm").submit();
        }
        else {

            if (Desc) {
                $(this).removeClass("desc");
                $(this).addClass("asc");
                Desc = false;
            }
            else {
                $(this).removeClass("asc");
                $(this).addClass("desc");
                Desc = true;
            }

            var table = Array();
            column = "";
            if ($(this).hasClass("codes")) {
                column = "Codes";
            }
            else if ($(this).hasClass("name")) {
                column = "Name";
            }
            else if ($(this).hasClass("pric")) {
                column = "Pric";
            }
            if (column != "") {
                i = 0;
                $(".interact" + column).each(function() {
                    if (column == "Pric") {
                        value = 0;
                        if (this.innerText != "") {
                            value = parseFloat(this.innerHTML.replace(" ", ""));
                        }
                    }
                    else {
                        value = this.innerHTML;
                    }

                    if (value + "" == "NaN") {
                        value = 0;
                    }

                    table[i] = {
                        value: value,
                        lineblock: $("#" + this.id.replace("interact" + column, "")),
                        infoblock: $("#infotr" + this.id.replace("interact" + column, ""))
                    };
                    i++;
                });
            }

            table.sort(function(a, b) {
                if (a["value"] < b["value"])
                    return (Desc) ? 1 : -1;
                else if (a["value"] > b["value"])
                    return (Desc) ? -1 : 1;
                else
                    return 0;
            })

            even = true;
            $(table).each(function() {
                $("#products").append(this["lineblock"]);
                $("#products").append(this["infoblock"]);
                even = !even;
                if (!$(this["lineblock"]).hasClass("current")) {
                    $(this["lineblock"]).removeClass("even");
                    $(this["lineblock"]).removeClass("odd");
                    $(this["lineblock"]).addClass((even) ? "even" : "odd");
                }
            })
        }
    });


    function onrowclick(e) {
        if (!$(this).hasClass("current")) {

            $(this).children(".name").removeClass("nameon");

            $(".current").each(function(item) {
                $(this).removeClass("current");
                var cl = $(this).next().next().attr('class');
                if (cl == 'odd') {
                    $(this).addClass("even");
                } else {
                    $(this).addClass("odd");
                }

            });

            $(this).removeClass("even");
            $(this).removeClass("odd");
            $(this).addClass("current");

            $(".gradblock").hide();

        }
        var id = $(this).attr("id");
        $("#info_" + id).slideToggle(300, function() {
            if ($("#info_" + id).offset().top - $("html,body").scrollTop() + $("#info_" + id).attr("offsetHeight") > $("html,body").height()) {
                $("html,body").animate({ scrollTop: $("html,body").scrollTop() + $("#info_" + id).attr("offsetHeight") })
            }
        });
    };

    $(".even").click(onrowclick);
    $(".odd").click(onrowclick);
    $(".current").click(onrowclick);

    $(".name").hover(
        function() {
            if (!$(this).parent().hasClass("current")) {
                $(this).addClass("nameon");
            }
        },
        function() { $(this).removeClass("nameon"); }
    );

    function checkSearchField() {
        if ($("#search-text").val().length > 2) {
            $("#btnSearch").attr("disabled", "");
        } else {
            $("#btnSearch").attr("disabled", "disabled");
        }
    }

    function showTips(json_result) {
        $.getJSON("/AJAXSearch/", { text: $("#search-text").val() }, function(json_result) {
            var arr = Array();
            $.each(json_result, function(i, item) {
                arr[i] = item.Description;
            });
            alert(arr.length);
        });
    }

});
