﻿$(document).ready(function () {
    if ($('#filter').size()) {
        $('#cat-filter option').first().val($('#GroupID-input').val());
    };
    selectBoxes_init();

    $('.filter-select-color-button').live('click', function (e) {
        e.preventDefault();
        $('.filter-colors').toggle();
    });

    $('.filter-colors-submit a').live('click', function () {
        var storage = $('.filter-colors');
        $(storage).toggle();
        $(storage).data('select', '');
        $(storage).find('input:checked').each(function () {
            var data = $(storage).data('select');
            var val = $(this).val();
            if (data) {
                $(storage).data('select', data + ',' + val);
            } else {
                $(storage).data('select', val);
            };
        });
        $('#ColorsField').val($(storage).data('select'));
        resetPriceRange();
        $("#PageNum").val(1);
        filterSubmit();
        return false;
    });

    $("#cat-filter, #manufacturers-filter").live('change', function (evt) {
        resetPriceRange();
        $("#PageNum").val(1);
        filterSubmit();
    });

    $('.seeall').live('click', function () {
        $("#PageSize").val('1000');
        $("#PageNum").val(1);
        filterSubmit();
        return false;
    });

    $(".products-per-page").val($("#PageSize").val());

    $('.products-per-page').live('change', function () {
        var val = $(this).val();
        $('#PageNum').val(1);
        $("#PageSize").val(val);
        filterSubmit();
    });

    initPagination();
});

function resetPriceRange() {
    $('#filter-price-input').val('');
}

function selectBoxes_init() {
    $(".filter-select-wrap select,.category-select").selectbox();
}

function  goto_top_point() {
    if ($("#top-point").size()) {
        //var destination = $("#top-point").offset().top;
        $("html").animate({ scrollTop: 0}, 0 );
    }
}

function initPagination() {
    var total = parseInt($("#total-products").val());
    var pageSize = parseInt($("#PageSize-load").val());
    var current_page = parseInt($('#PageNum').val())-1;
    if (total <= pageSize || !total) {
        $(".top-pagination,.seeall").hide();
    } else {
        $(".top-pagination,.seeall").show();
        $(".top-pagination").pagination(total, {
            num_edge_entries: 1,
            current_page: current_page,
            num_display_entries: 6,
            callback: pageselectCallback,
            items_per_page: pageSize,
            prev_text:"Prev",
            next_text:"Next"
        });
    }
    Compare.reset();
}

function pageselectCallback(page) {
    $("#PageNum").val(page + 1);
    page_height();
    filterSubmit('noreset');
    return false;
}

function filterSubmit(data) {
    var data = data || false;
    if (data != 'noreset') {
    };

    $("#EcomSearch").ajaxSubmit({
        beforeSubmit: ajaxloader.start(),
        timeout: 120000,
        error: function (xhr, ajaxOptions, thrownError) {
            ajax_send_error();
        },
        success: function (responseText, statusText, xhr, form) {
            replaceProductsList(responseText, statusText, xhr, form);
            selectBoxes_init();
        }
    });
}

function pagingSubmit() {
    $("#EcomSearch").ajaxSubmit({
        beforeSubmit: ajaxloader.start(),
        complete: ajaxloader.stop(),
        timeout: 120000,
        error: function(xhr, ajaxOptions, thrownError) {
            ajax_send_error();
        },
        success: pageProductsList
    });
}

function onResetFilter() {
    $('#EcomSearch').resetForm();
    $('#EcomSearch').reset;
    $(".filter-select-wrap :selected").attr("selected", false);
    $(".filter-select-wrap select").selectbox("detach").selectbox("attach");
    resetPriceRange();
    filterSubmit();
}

function initPriceSlider() {
    var values = [0, 0];
    var range = getRangeValues($("#filter-price-input").val());
    if (range[0] > 0 && range[1] > 0) {
        filters.Price.CurrentFrom = range[0];
        filters.Price.CurrentTo = range[1];
        values[0] = range[0];
        values[1] = range[1];
    }
    range = getRangeValues($("#filter-price-current").val());
    if (range[0] > 0 && range[1] > 0) {
        values[0] = range[0];
        values[1] = range[1];
        $('.filter-cost-slider-start span').text(values[0]);
        $('.filter-cost-slider-end span').text(values[1]);
        $("#filter-price-input").val(values[0] + '-' + values[1]);
    }
    $(".filter-cost-slider").slider({
        range: true,
        min: filters.Price.CurrentFrom,
        max: filters.Price.CurrentTo,
        step: 10,
        values: values,
        slide: function (event, ui) {
            $('.filter-cost-slider-start span').text(ui.values[0]);
            $('.filter-cost-slider-end span').text(ui.values[1]);
            $('#filter-price-input').val(ui.values[0] + '-' + ui.values[1]);
        },
        stop: function () {
            $("#PageNum").val(1);
            filterSubmit();
        }
    });
}

function getRangeValues(range) {
    var res = [0, 0];
    if (range && range.length > 0) {
        var vals = range.split('-');
        res[0] = 1 * vals[0];
        res[1] = 1 * vals[1];
    }
    return res;
}

function GoToProductList(groupID){
    location = global.url.GroupsPage + '?GroupID=' + groupID;
}

function replaceProductsList(responseText, statusText, xhr, form) {
    if (statusText == "success") {
        var test = $(".important-ajaxcontent").html($(responseText).find(".important-ajaxcontent").html());
        $(".products-per-page").val();
        $("#PageSize").val($("#PageSize-load").val());
        product_view.current();                                             
        title_view.generate();
        if ($('.prod-thumb.view-block').size() > 0) title_view.apply_short();
        $("#EcomSearch").html($(responseText).find("#EcomSearch").html());
        initPriceSlider();
        createColorSelectors();
    };
    initPagination();
    ajaxloader.stop();
    Compare.init();
    page_height();
    price_view.generate();
    goto_top_point();
    
    /*
    $('.products-per-page').change(function () {
        var val = $(this).val();
        $("#PageSize").val(val);
        filterSubmit();
    });
    */
}

function pageProductsList(responseText, statusText, xhr, $form) {
    if (statusText == "success") {
        $(".important-ajaxcontent").html($(responseText).find(".important-ajaxcontent").html());
        initPagination();
        product_view.current();                                             
        title_view.generate();                                              
        if ($('.prod-thumb.view-block').size()>0) title_view.apply_short();
    };
    ajaxloader.stop();
    Compare.init();
    page_height();
    goto_top_point();
} 

