$(document).ready(function() {
    filterSelectSubmit();
    searchSuggest();
    initRotate();
    initMainNav();
    initRating();
    initLightbox();
    swapHover();
    showCheckBalance();
});

$(window).load(function(){
	matchEachHeight(".featureBottom");
	matchHeight(".subcategoryRow", ".subcategoryResult");
});

var articles;
var interval;
var old = 0;
var current = 0;

function initRotate(){
	articles = $("div.article").size();
	$("div.article:eq("+current+")").css('top', '8px');
	interval = setInterval(rotate, 4500);
	$('#newsBar').hover(function(){
		clearInterval(interval);
	}, function(){
		interval = setInterval(rotate, 4500);
		rotate();
	});
};

function rotate(){
	current = (old + 1) % articles;
	$("div.article:eq(" + old + ")").animate({top: -31}, "slow", function(){
		$(this).css('top', '36px');
	});
	$("div.article:eq(" + current + ")").animate({top: 8}, "slow");
	old = current;
};

var mainHovered = false;

function initMainNav(){
	$("#mainNavMenu").hover(function(){
		mainHovered = true;
	}, function(){
		mainHovered = false;
		tryHideMainNav();
	});
	$("#mN2").hover(function(){
		mainHovered = true;
		$("#leftNav").addClass("static");
		$("#mainNavMenu").show();
	}, function(){
		mainHovered = false;
		tryHideMainNav();
	});
};

function tryHideMainNav(){
	setTimeout('hideMainNav()', 500);
};

function hideMainNav(){
	if (!mainHovered){
		$("#leftNav").removeClass("static");
		$("#mainNavMenu").hide();
	}
};

function swapHover(){
	$("#thumbnails img").hover(function(){
		var src = $(this).attr("src");
		var medium = src.replace(/micro/, "medium");
		var large = src.replace(/micro/, "large");
		$("#productImg a").attr("href", large);
		$("#productImg img").attr("src", medium);
	}, function(){});
};

function initRating(){
	$("#rateProduct").click(function(){
		RateIt();
	});
};

function initLightbox(){
	var a = $("#thumbnails a");
	if (a.length > 0) {
		a.lightBox();
		$("#productImg a").click(function(){
			$("#thumbnails a[href=" + $(this).attr("href") + "]").click();
			return false;
		});
	} else {
		$("#productImg a").lightBox();
	}
};

var searchFocused = false;
var searchHovered = false;
var showSearch = false;

function searchSuggest(){
	$(".filterSearch").keyup(function(){
		var search = $(this);
		var term = search.val();
		if (term.length <= 1){
			$("#filterSearchProducts").remove();
			return false;
		}
		var str = {
			SearchTerm : term,
			CategoryID : ($("#filterCategoryID").val() == null) ? 0 : $("#filterCategoryID").val(),
			SectionID : ($("#filterSectionID").val() == null) ? 0 : $("#filterSectionID").val(),
			GenreID : ($("#filterGenreID").val() == null) ? 0 : $("#filterGenreID").val(),
			VectorID : ($("#filterVectorID").val() == null) ? 0 : $("#filterVectorID").val(),
			ManufacturerID : ($("#filterManufacturerID").val() == null) ? 0 : $("#filterManufacturerID").val()
		};
		var jsonStr = JSON.stringify(str);
		//alert(jsonStr);
		$.ajax({
			type: "POST",
			contentType: "application/json; charset=utf-8",
			url: "SearchService.asmx/Search",
			data: jsonStr,
			dataType: "json",
			success: function(result){
				$("#filterSearchProducts").remove();
				if (result.d.length > 0){
					var list = $('<ul id="filterSearchProductsList" />');
					$.each(result.d, function(index, product){
						if (index % 2 == 0){
							list.append('<li class="odd"><a href="'+product.Url+'">'+product.Name+'</a></li>');
						} else {
							list.append('<li class="even"><a href="'+product.Url+'">'+product.Name+'</a></li>');
						}
					});
					list.append('<li id="seeAll"><a href="search.aspx?SearchTerm='+term+'">See All Results</a>');
					$('<div id="filterSearchProducts" />').hover(function(){
						searchHovered = true;
						showSearch = true;
					}, function(){
						searchHovered = false;
						if (!searchFocused){
							showSearch = false;
						}
						tryHideSearch();
					}).prepend(list).prependTo("#mainSearch");
				}
			},
			error: function(xhr, msg){
				$("#filterSearchProducts").remove();
				//alert(xhr.responseText);
			}
		});
	}).blur(function(){
		searchFocused = false;
		if (!searchHovered){
			showSearch = false;
		}
		tryHideSearch();
	}).focus(function(){
		var self = $(this);
		if (self.val() == "Search..."){
			self.val("");
		}
		searchFocused = true;
		showSearch = true;
		$("#filterSearchProducts").show();
	});
};

function tryHideSearch(){
	setTimeout('hideSearch()', 500);
};

function hideSearch(){
	if (!showSearch){
		$("#filterSearchProducts").hide();
	}
};

function filterSelectSubmit(){
	$('#filterForm select').change(function(){
		$('#filterForm').submit();
	});
};

function matchHeight(group, individual){
	$(group).each(function(){
		var row = $(individual, $(this));
		var height = 0;
		row.each(function(index){
			var outerheight = $(this).outerHeight(true);
			if (outerheight > height){
				height = outerheight;
			}
		});
		row.height(height);
	});
};

function matchEachHeight(individual){
	var height = 0;
	var group = $(individual);
	group.each(function(){
		var outerheight = $(this).outerHeight(true);
		if (outerheight > height){
			height = outerheight;
		}
	});
	group.height(height);
};
function showCheckBalance() {
    $('.checkBalanceToggle').click(function() {
        $('#checkBalanceWindow').animate({
        'opacity' : 'toggle',
        });
    });
};


