$(function() {
	var getUrl = function() {
		return getCategories() + getAttributes() + getSortParameter() + getPerPageParameter() + getSearchParameter();
	};

	var getPerPageParameter = function() {
		return '/per_page/' + $("#f_per_page").val();
	};

	var getSortParameter = function() {
		return '/sort/' + $("#f_sort").val();
	};

	var getSearchQuery = function() {
		var searchQuery = String(window.location).match(/\/search\/([^/]+)/);

		if (searchQuery) {
			return searchQuery[1];
		}
		else {
			return '';
		}
	};

	var getSearchParameter = function() {
		var searchQuery = getSearchQuery();
		
		if (searchQuery.length) {
			return '/search/' + searchQuery;
		}
		else {
			return '';
		}
	}

	$("#f_sort, #f_per_page").bind('change', function(e) {
		e.preventDefault();
		window.location = getUrl();
	});


	var getCategories = function() {
		var  $checkedInputs = $("input[name=base_category]:checked")
			,checkedLength = $("input[name=base_category]:checked").length
			,url = ''
		;

		if (checkedLength == 1) {
			url = $checkedInputs.val();
		}
		else {
			var categories = new Array();
			$checkedInputs.each(function(i) {
				if (i == 0) {
					categories.push($(this).val());
				}
				else {
					var category = String($(this).val()).replace(/^(\/[-a-z0-9]+\/)(.+)/, "$2");
					categories.push(category);
				}
			});
			url = categories.join('/');
		}

		return url;
	};

	$("input[name=base_category]").bind('click', function(e) {
		var checkedLength = $("input[name=base_category]:checked").length;

		if (checkedLength == 0) {
			$(this).attr('checked', 'checked');
		}
		else {
			window.location = getUrl();
		}
	});


	var getAttributes = function() {
		var attributes = '';

		$("input[name=gender]:checked, input[name=destiny]:checked").each(function() {
			attributes += '/' + $(this).val();
		});

		return attributes;
	};

	$("input[name=gender], input[name=destiny]").bind('click', function(e) {
		window.location = getUrl();
	});

	
	var activeImg = $('.productImages a[@rel=fancybox]:first').get(0);
	$(".thumbnails img").each(function() {
		$(this).bind('mouseenter', function() {
			var bigImgUrl = $(this).attr('longdesc');
			activeImg = $(this).parent().get(0);
			$("<img>").attr('src', bigImgUrl).bind('load', function() {
				$(".mainImage img").attr('src', bigImgUrl);
			});
		});
	});
	$('.mainImage a').unbind('click').click(function() {
		$.fn.fancybox.start(activeImg, $.fn.fancybox.defaults); 
		return false;
	});


	$(".addOpinion").bind('click', function(e) {
		e.preventDefault();
		$("#addOpinion").toggle('normal');
	});

});
