﻿$j(function() {
    //vertically center product thumbs
    $j(window).load(function() {
        centerProductThumbs();
    });

    //show filter
    $j('#show_filter').live("click", function() {
        $j('.category_filter').toggle();
        $j(this).toggleClass('open');
        return false;
    });
    
    $j(".product_info h3 a").jTruncate({
        length: 26,
        minTrail: 4,
        moreText: ""
    });

    $j(".featured .product_info p").jTruncate({
        length: 120,
        minTrail: 4,
        moreText: ""
    });
        
    setupGrid();
    setupFilter();
    
    //"recalibrate" after update panel does its thing
    if (typeof(Sys) != "undefined")
    {
		Sys.WebForms.PageRequestManager.getInstance().add_endRequest(setupGrid);
		Sys.WebForms.PageRequestManager.getInstance().add_endRequest(setupFilter);
		Sys.WebForms.PageRequestManager.getInstance().add_endRequest(centerProductThumbs);
	}
});

var setupGrid = function() {
    //'compare' interactivity
    $j('#grid_wrapper .compare').css({ opacity: .75 }).hover; //set overlay opacity
    $j('.product_grid').each(function() {
        var $container = $j(this);
        $j('.product_wrapper .compare .cbx', this).click(function() {
            var $button = $j('.compare_selected', $container);
            var $names = "";
            var $checked = $j(':checked', $container)
            $j($checked).each(function() { 
                $names += $j("h3 a", $j(this).parent().parent().parent()).text() + '|';
            });
            var numChecked = $checked.length;
            var nameLength;
            nameLength = $names.length;
            if (nameLength) {
                $names = $names.substr(0, $names.length - 1);
            }
            if (numChecked > 1 && numChecked <= 5) {
                $button.show();
                var $currentURL = $button.attr("href");
                var productPosition = $currentURL.indexOf("&products=");
                if (productPosition != -1)
                {
                    $currentURL = $currentURL.substr(0, productPosition);
                }
                $currentURL = $currentURL + "&products=" + $names;
                $button.attr("href", $currentURL);
            } else if (numChecked > 5) {
                //alert('Only 5 products can be compared within a category. Please select only 5 items.'); // MUST BE TRANSLATED
                alert($j('#cbxLimitMsg').text()); // MUST BE TRANSLATED
                return false;
            } else {
                $button.hide();
            }
        });
    });
    
    //hover-over for product items
    $j('<div id="subcat_hoverover"></div>"').css({ opacity: .9 }).appendTo('body');

    $j(document).mousemove(function(e) {
        $j('#subcat_hoverover').css({ top: (e.pageY + 15) + 'px', left: (e.pageX + 15) + 'px' });
    });

    //hover state for border change
    $j('.product_grid .product_wrapper').hover(function(){
        $j(this).addClass('hover');
        if (!$j(this).hasClass('featured')) {
            var pContent = $j(this).children('.product_info').children('p').clone();
            $j('#subcat_hoverover').addClass('active').html(pContent);
        }
    }, function() {
        $j(this).removeClass('hover');
        $j('#subcat_hoverover').removeClass('active');
    });

/*

    //hover state for border change
    $j('.product_grid .product_wrapper').hover(function() {
        $j(this).addClass('hover');
        if (!$j(this).hasClass('featured')) {
            var pContent = $j(this).children('.product_info').children('p').clone();
            $j('#subcat_hoverover').addClass('active').html(pContent);
        }
    }, function() {
        $j(this).removeClass('hover');
        $j('#subcat_hoverover').removeClass('active');
    });
*/

    $j(".product_info h3 a").jTruncate({
        length: 26,
        minTrail: 4,
        moreText: ""
    });
/*
    $('#example2').jTruncate({
        length: 200,
        minTrail: 0,
        moreText: "[see all]",
        lessText: "[hide extra]",
        ellipsisText: " (truncated)",
        moreAni: "fast",
        lessAni: 2000
    });  
*/
};

var centerProductThumbs = function(){
    $j('.product_grid .product_photo img').each(function() {
        var thisHeight = $j(this).height();
        var parentHeight = $j(this).parent('a').height();
        var offset = Math.floor((parentHeight - thisHeight) / 2) - 10;
        $j(this).css({ marginTop: offset + 'px' });
    });
}

var setupFilter = function(){
    // filter edu hover area

    //hover-over for product items
    $j('<div id="filter_hoverover"></div>"').css({ opacity: .9 }).appendTo('body');

    $j(document).mousemove(function(e) {
        $j('#filter_hoverover').css({ top: (e.pageY + 15) + 'px', left: (e.pageX + 15) + 'px' });
    });
    
    //hover state for border change
    $j('.filterEdu').hover(function() {
        $j(this).addClass('hover');
        var pContent = $j(this).parent().children('.filterEduRte').clone();
        $j('#filter_hoverover').addClass('active').html(pContent);
    }, function() {
        $j(this).removeClass('hover');
        $j('#filter_hoverover').removeClass('active');
    });
}
