function getCount(){
	$.ajax({
		url:"/idea/catalog/ideacounter",
		data: $("#filter").serialize(),
		type: "post",
		dataType: "json",
		success: function(response) {
			if (response.counter) {
				$(".filter .submit button span").html(response.counter);
			}
		}
	});
}
$(function(){
	if ($('.filter').length) {
		$('.filter .switchers').each(function(){
			var s = $(this);
			var switchers = s.find('a');
			
			var arr = s.find('input').val().split(', ');
			for (i=0; i<arr.length; i++) {
				switchers.filter('[data-rel="'+arr[i]+'"]').addClass('active');
			}
			
			switchers.click(function(){
				var a = $(this);
				var rel = a.attr('data-rel');
				if (rel == 'all') {
					if (!a.hasClass('active')) {
						switchers.filter('.active').removeClass('active');
						a.addClass('active');
					};
				} else {
					if (a.hasClass('active')) {
						a.removeClass('active');
						if (!switchers.filter('.active').length) {
							switchers.filter('[data-rel="all"]').addClass('active');
						};
					} else {
						a.addClass('active');
						switchers.filter('[data-rel="all"]').removeClass('active');
					};
				};
				var val = '';
				switchers.filter('.active').each(function(){
					val += ($(this).attr('data-rel') +', ');
				});
				val = val.substring(0,val.lastIndexOf(', '))
				s.find('input').val(val)
				getCount();
				return false;
			});
		});
		
		$(".filter-keywords input:radio").change(function(){
			getCount();
		});

		$("#filter-keywords").change(function(){
			getCount();
		});
		
		$('.filter-label .filter-lable-link').click(function(){
			if (!$('.filter-label').hasClass('filter-label-expanded')) {
				$('.filter-label').addClass('filter-label-expanded');
				$('.filter').slideDown(200);
			} else {
				$('.filter-label').removeClass('filter-label-expanded');
				$('.filter').slideUp(200, function(){
					$(this).removeClass('filter-open');
				});
			};
		});
		
		$('.filter .title strong i').mouseenter(function(){
			$(this).parents('.title').addClass('title-active');
		});
		$('.filter .title').mouseleave(function(){
			$(this).removeClass('title-active');
		});
	};
});

var colourSelector = (function(){
	var colours,r,cs,
		qnt = 0,
		R = 80,
		W = 260,
		C = W/2,
		param = {stroke: "#fff", "stroke-width": 44},
		descSpan;
	
	function init(selector,c) {
		colours = c;
		cs = $('#'+selector);
		if ($.browser.msie) $('.filter').css({height:0}).show();
		r = Raphael(selector, W, W);
		if ($.browser.msie) $('.filter').hide().css({height:'auto'});
		r.customAttributes.arc = function (index,R) {
			var alpha = 360 / qnt,
				a = (90 - alpha) * Math.PI / 180,
				x = C + R * Math.cos(a) + ( ($.browser.opera) ? 1.25 : 0 ),
				y = C - R * Math.sin(a) + ( ($.browser.opera) ? 1.25 : 0 ),
				color = '#'+colours[index].colour,
				path;
				//console.log(desc);
			
			path = [["M", C, C - R], ["A", R, R, 0, 0, 1, x, y]];
			
			return {path:path, stroke:color};
		};
		
		qnt = colours.length;
		for (var i=0;i<qnt;i++) {
			draw(i);
		};
		
		/*cs.find('span').filter('.color-all').click(function(){
			var a = $(this);
			a.toggleClass('active');
			selectAll();
		});*/
		getCount();
		descSpan = cs.find('span').filter('.color-title');
	};
	
	/*function selectAll() {
		r.clear();
		var a = cs.find('span');
		for (var i=0;i<qnt;i++) {
			if (a.hasClass('active')) {
				colours[i].active = true;
			} else {
				colours[i].active = false;
			};
			draw(i);
		};
		setVal();
	};*/
	function drawShort() {
		r.clear();
		isShort = true;
		qnt = 0;
		for (var i=0;i<colours.length;i++) {
			qnt += (colours[i].short) ? 1 : 0;
		};
		var n = 0;
		for (var i=0;i<colours.length;i++) {
			if (colours[i].short) { 
				draw(i,n);
				n++;
			};
		};
	};
	
	function draw(index) {
		var item = r.path().attr(param).attr({arc:[index,R]});
		var step = 360/qnt;
		item.rotate(step*index,C,C);
		if (colours[index].active) {
			item.attr({arc:[index,R+20]});
		};
		item.hover(function(event){
			if (!colours[index].active) {
				this.animate({arc:[index,R+10]},100,'ease');
				descSpan.html(colours[index].desc);
			};
		},function(){
			if (!colours[index].active) {
				this.animate({arc:[index,R]},100,'ease')
				descSpan.html('');
			};
		}).click(function(){
			if (!colours[index].active) {
				this.animate({arc:[index,R+20]},100,'ease');
				colours[index].active = true;
			} else {
				this.animate({arc:[index,R+10]},100,'ease');
				colours[index].active = false;
			};
			
			setVal();
		});
	};
	function setVal() {
		var val = '';
		for (var i=0;i<qnt;i++) {
			if (colours[i].active) {
				val += (colours[i].id+', ');
			};
		};
		val = val.substring(0,val.lastIndexOf(', '));
		cs.find('input').val(val);
		getCount();
	};
	
	return {
		init:init
	};
})();
