﻿var arrFilter;

$(document).ready(function() {
	if ($('.filterThis > li').length < 2) { return; }

	var stringOfClassNames = '';
	$('.filterThis > li').each(function(i) {
		stringOfClassNames = stringOfClassNames + ' ' + this.className;
	});
	stringOfClassNames = jQuery.trim(stringOfClassNames);
	var arrayClasses = stringOfClassNames.split(' ');

	arrayUniqueClasses = new Array(0);
	for (i = 0; i < arrayClasses.length; i++) {
		if ($.inArray(arrayClasses[i], arrayUniqueClasses) == -1) {
			arrayUniqueClasses.push(arrayClasses[i]);
		}
	}

	if (arrayUniqueClasses.length > 1) {
		$('<ul class="filters"><\/ul>').insertBefore('#filterul2');

		$.each(arrayUniqueClasses, function() {
			if (this != "") {
				$('<li><label for="filterID' + this + '"><input class="dynamicFilterInput" type="checkbox" checked="checked" value="' + this + '" id="filterID' + this + '" /> ' + this + '<\/label><\/li>').appendTo('ul.filters');
			}
		});

		$('.filterThis > li').addClass('filterTriggerShown');

		var fnFilterClick = function() {
			arrFilter = new Array();
			$(".filters input:checked").each(function() { arrFilter.push(this.value); });
			$(".filterThis > li").each(function() {
				var bInArray = false;
				var arrClassNames = this.className.split(' ');
				for (var i = 0; i < arrClassNames.length; i++) {
					if ($.inArray(arrClassNames[i], arrFilter)>-1) {
						bInArray = true;
						break;
					}
				}
				if (bInArray) {
					if ($(this).hasClass("filterTriggerHidden")) {
						$(this).fadeIn();
					}
					$(this).removeClass("filterTriggerHidden").addClass("filterTriggerShown");
				} else {
					if ($(this).hasClass("filterTriggerShown")) {
						$(this).fadeOut();
					}
					$(this).removeClass("filterTriggerShown").addClass("filterTriggerHidden");
				}
			});
		}
		$(".filters input").bind("click", fnFilterClick);
	}
});