(function($) {

	$.fn.filterCategory = function(options){
	  
		// default configuration properties
		var defaults = {	
			transition:		"fade",
			layerParent:	"referencies"
		}; 
		
		var options = $.extend(defaults, options);  
		var ie = $.browser.msie;
		//var bwsr = ($.browser.mozilla || $.browser.safari || $.browser.chrome) ? true : false;
		var bwsr = true;
		if(bwsr) {
			setupFilter(this);
		}
		else { 	
			var obj = $(this);
			var isCat = $("li", obj).hasClass("current-cat") ? "" : " current-cat";
			var li = $(document.createElement("li")).attr("class", "cat-item cat-item-0" + isCat);
			li.html("<a href=\"/portfolio\"><strong>Vše</strong></a>");
			li.insertBefore($("#filter li:first-child"));
			obj.addClass("extended");
		}
		
		
		function setupFilter(o) {
			o.each(function() {  
				var obj = $(this); 	
				var links = $("a", obj);
				var active = false;
				
				// Disable outline
				links.focus(function() {
				  $(this).blur();
				});
				
				// Prepare transparent layer
				var transpLayer = $(document.createElement("div")).attr("id", "transpLayer");  
				transpLayer.css({
					"display":"block",
					"position":"absolute",
					"top":"-50px",
					"left":"0",
					"z-index":"1",
					"opacity":"0", 
					"background":"#fff",
					"width":"100%",
					"height":"105%"
				});
						
			    // Onclick function  					
				links.click(function(){
					var parentObj = $(this).parent(); 				
					var parentClass = parentObj.attr('class').split(' ').slice(-1);
					
					if(parentObj.hasClass("current-cat")) {
						parentObj.removeClass("current-cat");
						active = false;
						$("#" + options.layerParent).remove("#transpLayer");
						resetItems();
					}
					else if(active) {
						$(".current-cat", obj).removeClass("current-cat");
						parentObj.addClass("current-cat");
						filterItems(parentClass);
					}
					else {
						parentObj.addClass("current-cat");
						active = true;
						$("#" + options.layerParent).append(transpLayer);
						filterItems(parentClass);
					}
									
					return false;
				});
				
			});
	
			};
			
			function resetItems() {
				$(".reference").css({"opacity": "1", "z-index": "2"});
				if(ie) {
					// reset
					$(".reference").css({"display": "block"});
				}
			};
											
			function filterItems(category){
				$(".reference." + category).css({"opacity": "1", "z-index": "2"});
				var el = $("div.reference:not(." + category + ")");
				el.css({"z-index": "0", "opacity": "0.2"});
				if(ie) {
					$(".reference." + category).css({"display": "block"});
					el.css({"z-index": "0", "display": "none"});
					
				}

			};
						
				  
	};

})(jQuery);
