﻿/// <reference path="~/Resources/js/jquery-1.2.6-intellisense.js" />
/// <reference path="~/Resources/js/start.js" />

$(function() {
    // Show products button handler
    $("#button-show-products").click(function() {
        filterProducts();
    });

    // Change product filter drop down handler
    VVM.productListOptions.change = function() {
        filterProducts();
    }

    // Change product filter drop down handler
    $(".products .drop-down-selectors select[id$='SortOptions']").change(function() {
        filterProducts(true);
    });

    // Change page size radio button handler
    $(".products .page-size-selection input").click(function() {
        filterProducts();
    });
});

function filterProducts(usePageing) {
    var url = VVM.productPage.path;
    var page = (VVM.productPage.index * 1) + 1;
    var token = "?";

    var filter = calculateFilter();
    if (filter != 0) {
        url += token + "filter=" + encodeURI(filter);
        token = "&";
    }

    var brands = $(".drop-down-panel :checkbox:checked");
    $(brands).each(function(i) {
        if (i == 0) url += token + "brands=";
        else url += ",";
        url += encodeURI($(this).parent().text());
        token = "&";
    });

    var sort = encodeURI($("select[id$='SortOptions']").val());
    if (sort != encodeURI("Sortera")) {
        url += token + "orderby=" + sort;
        token = "&";
    }

    var pageSize = $(".page-size-selection :radio:checked").val();
    if (pageSize != 9) {
        url += token + "pagesize=" + encodeURI(pageSize);
        token = "&";
    }

    if (usePageing && page > 1) {
        url += token + "page=" + page;
        token = "&";
    }

    location = url;
}

function calculateFilter() {
    var filter = 0;
    var filters = $(".product-group-filter :checkbox").serializeArray();
    $.each(filters, function(i, filterval) {
        filter += 1 * filterval.value;
    });
    return filter;
}