﻿$(function() {
    $('.rollover').hover(function() {
        var currentImg = $(this).attr('src');
        $(this).attr('src', $(this).attr('hover'));
        $(this).attr('hover', currentImg);
    }, function() {
    var currentImg = $(this).attr('src');
        $(this).attr('src', $(this).attr('hover'));
        $(this).attr('hover', currentImg);
    });
});
var filterData = [];
var currentPage = 1;
function processCoupon(coupon) {
    $("<div title='Coupon Code'></div>").dialog({ width: 600, height: 275 }).load("/equipment/coupon.aspx", { COMMAND: 'apply', coupon: coupon, equipType: $("#txtEquipmentType").val() }, function () { });
}
function extrasMore(choice) {
    $("#additional" + choice).toggle(0, function() { $("#additionaldata" + choice).toggle("fast"); });  
}

function extrasLess(choice) {
    $("#additionaldata" + choice).toggle("fast", function() { $("#additional" + choice).toggle(0); });    
}

function addFilterArray(fname, fvalue, fdisplay) {
    filterData.push({ 'name': fname, 'value': fvalue, 'display': fdisplay });
    
    if (filterData.length > 0) {
        $("#you_selected").css("display", "block");
    }
    else {
        $("#you_selected").css("display", "none");
    }
    var filterHTML = "";
    for (var x = 0; x < filterData.length; x++) {
        filterHTML += "<span class=\"removeFilterChoice\"><a href=\"javascript:;\" onclick=\"removeFilter('" + filterData[x].name + "','" + filterData[x].value + "','" + filterData[x].display + "')\"><img src=\"/images/filter_remove.gif\" alt=\"Remove Filter\"/><span class=\"removeFilterChoiceLabel\"><strong>" + filterData[x].display + "</strong>: " + (filterData[x].value == 1 ? "Yes" : filterData[x].value) + "</span></a></span>";
    }
    if (filterData.length > 0) {
        filterHTML += "<a href=\"javascript:;\" onclick=\"removeAll()\" style=\"float: left; width: 195px; margin:5px 0px 10px 5px;\">Remove All Filters</a>";
    }
    $("#filtered_groups").html(filterHTML);
}
function removeAll() {
    filterData.length = 0;
    $("#filtered_groups").html("");
    $("#you_selected").toggle();
    currentPage = 1;
    refreshData();
}
function removeFilterArray(fname, fvalue, fdisplay) {

    var filterHTML = "";
    var match = false;

    for (var x = 0; x < filterData.length; x++) {

        if (filterData[x].name == fname) {

            filterData.splice(x, 1);
            match = true;
        }

        if (match) {
            for (x = 0; x < filterData.length; x++) {
                filterHTML += "<span class=\"removeFilterChoice\"><a href=\"javascript:;\" onclick=\"removeFilter('" + filterData[x].name + "','" + filterData[x].value + "','" + filterData[x].display + "')\"><img src=\"/images/filter_remove.gif\" alt=\"Remove Filter\"/><span class=\"removeFilterChoiceLabel\"><strong>" + filterData[x].display + "</strong>: " + (filterData[x].value == 1 ? "Yes" : filterData[x].value) + "</span></a></span>";
            }
        }
    }
    if (filterData.length == 0) {
        filterHTML = "None";
    }
    else {
        filterHTML += "<a href=\"javascript:;\" onclick=\"removeAll()\" style=\"float: left; width: 195px; margin:5px 0px 10px 5px;\">Remove All Filters</a>";
    }

    $("#filtered_groups").html(filterHTML);
}
function addFilter(fname, fvalue, fdisplay) {
    addFilterArray(fname, fvalue, fdisplay);
    currentPage = 1;
    refreshData();
    _gaq.push(['_trackPageview', '/equipment/filter.aspx/' + $("#txtEquipmentType").val() + "/" + fdisplay + "/" + fvalue]);
}
function addFilterCheck(id, fname, fvalue, fdisplay) {
    if ($("#" + id).is(':checked')) {
        addFilter(fname, fvalue, fdisplay);
        _gaq.push(['_trackPageview', '/equipment/filter.aspx/' + $("#txtEquipmentType").val() + "/" + fdisplay + "/" + fvalue]);
    }
    else {
        removeFilter(fname, fvalue, fdisplay);
    }
}
function removeFilter(fname, fvalue, fdisplay) {
    removeFilterArray(fname, fvalue, fdisplay);
    currentPage = 1;
    refreshData();
}
function switchPage(pageNum) {
    currentPage = pageNum;
    refreshData();
    _gaq.push(['_trackPageview', '/equipment/filter.aspx/' + $("#txtEquipmentType").val() + "/page/" + pageNum]);
}
function refreshData() {
    $("#filtered_data").html("<center><img src='/images/ajax_loading.gif' alt='Loading...' /></center>");
    var filterAjaxData = new Array();
    filterAjaxData = { "Items": filterData };
    $.get("/equipment/filter.aspx", { command: 'filterTest', fielddata: $.toJSON(filterAjaxData), numItems: $("#selNumItems").val(), orderBy: $("#selOrderBy").val(), equipType: $("#txtEquipmentType").val(),pageNum:currentPage },
        function(data) {
            var temp = $(data);

            $("#filter_choices").html(temp[1]);
            $("#filtered_data").html(temp[0]);
            if ($("#filter_choices").html().length < 30) {
                $("#narrow_by").toggle();
            }
            else {
                $("#narrow_by").css("display", "block");
            }
        });
        filterCount++;
        
    }
// auto suggestion begins
$(document).ready(function() {
    $("#txtSearch").mouseenter(showSuggest);
    $("#txtSearch").keyup(grabSuggest);
    $("#txtSearch").change(grabSuggest);
    $("#suggestList").mouseleave(function() { hideSuggest(); });
});
function hideSuggest() {
    $("#suggest").css("display", "none");
}
function showSuggest() {
    if (hasSearched == true) {
        $("#suggest").css("display", "block");
    }
}
var hasSearched = false;
var autoSuggestExecuting = false;
function grabSuggest() {
    if ($("#txtSearch").val().length > 2 && autoSuggestExecuting == false) {
        autoSuggestExecuting = true;
        if (hasSearched == true)
        {
            $("#txtSearch").focus(showSuggest);
        }
        $.get("/equipment/filter.aspx", { command: 'suggest', q: $("#txtSearch").val(), equipType: $("#txtEquipmentType").val() },
        function (data) {
            var resultData = $.evalJSON(data);
            var resultString = "";
            if (resultData.length > 0) {
                for (var x = 0; x < resultData.length; x++) {
                    resultString += "<li><div style='float:left;width:55px;'><img src='/images/equipment/thumbnails/" + resultData[x].Image + "' width='50' height='50'style='float:left;margin:0px;'/></div><div style='float:left;margin-top:5px;'><a href='/equipment/item.aspx/" + resultData[x].Value + "'>" + resultData[x].Name + "<br/><span style='margin-left:10px;font-weight:normal;'>" + resultData[x].Display + "</span></a></div><div class='clear'></div></li>";
                }
            }
            else {
                resultString = "<li><a href='#' style='text-decoration:none;'>No Matches Found</a></li>";
            }
            $("#suggest").css("display", "block");

            $("#suggestList").html(resultString);
            autoSuggestExecuting = false;
            hasSearched = true;
        })
    }
}
// comparison begins
$(document).keypress(function(e) { if (e.which == 13) { return false; } });
function comparison() {
    var result = "";
    for (var x = 0; x < compareItems.length; x++) {
        result += "&c" + x + "=" + escape(compareItems[x].sku);
    }
    $("#comparisonBox").html("<center><img src='/images/ajax_loading.gif' alt='Loading...' /></center>").load("/equipment/filter.aspx?COMMAND=compare" + "&equipType=" + $("#txtEquipmentType").val() + "&count=" + compareItems.length + result).dialog({ minWidth: 740, width: 740, modal: true, position: 'top', close: function() { $(this).dialog('destroy'); } });
}
var filterCount = 0;
var compareItems = new Array();
function checkComparison(id, sku, image) {
    // store client side sku/image for mult-result comparison
    //dont allow more than 3 to be checked
    var item = new Object;
    item.id = id;
    item.sku = sku;
    item.image = image;
    item.pagenum = filterCount;
    if ($("#" + id).is(':checked')) {
        if (compareItems.length == 3) {
            alert("You can only compare up to three items at a time.");
            $("#" + id).attr("checked", false);
        }
        else {
            var existing = false; //item already in compare set
            for (var x = 0; x < compareItems.length; x++) {
                if (compareItems[x].sku == sku) {
                    existing = true;
                }
            }
            if (existing) {
                alert("Item already in comparison list");
                $("#" + id).attr("checked", false);
            }
            else {
                compareItems.push(item);
            }
            refreshComparer();
        }
    }
    else { //item unchecked
        for (var x = 0; x < compareItems.length; x++) {
            if (compareItems[x].sku == sku) {
                if (compareItems[x].pagenum == filterCount) {
                    // uncheck box, dataset hasnt been changed
                    $("#" + compareItems[x].id).attr("checked", false);
                }
                compareItems.splice(x, 1);
            }
        }
        
        refreshComparer();
    }
}
function refreshComparer() {
    if (compareItems.length > 0) {
        $("#compareArea").css("display", "block");
        $("#comparedSelection").html("");
        for (var x = 0; x < compareItems.length; x++) {
            $("#comparedSelection").append("<div style='float:left;margin-right:10px;'><img src='/images/unselect_filter.gif' alt='Remove Item' style='cursor:hand;cursor:pointer;background:url(/images/equipment/thumbnails/" + compareItems[x].image + ");background-repeat:no-repeat;' onclick='removeCompareItem(" + x + ")' /><br/>" + compareItems[x].sku + "</div>");
        }
        $("#comparedSelection").append("<div style='float:left;margin-right:10px;margin-bottom:5px;'><input type='button' onclick='comparison()' style='margin-top:60px;' value='Compare'></div>");
    }
    else {
        $("#compareArea").css("display", "none");
    }
}
function removeCompareItem(itemIndex) {
    if (compareItems[itemIndex].pagenum == filterCount) {
        // uncheck box, dataset hasnt been changed
        $("#" + compareItems[itemIndex].id).attr("checked", false);
    }
    compareItems.splice(itemIndex, 1);
    refreshComparer();
}
