$(document).ready(function(){
	$('#loading').hide();

	$('#itemFilter :checkbox').click(function() {
		getProducts();
	});

	$('a.addToFavorite').hide();
	$("div[class=categoryItem]").addClass('categoryItemNoActive');
    $("div[class*=categoryItem]").live("mouseover", function(){
		$(this)
			.removeClass('categoryItemNoActive')
			.addClass('categoryItemActive')
			.find('a.addToFavorite')
			.show();
    });

    $("div[class*=categoryItem]").live("mouseout", function(){
		$(this)
			.removeClass('categoryItemActive')
			.addClass('categoryItemNoActive')
			.find('a.addToFavorite')
			.hide();
    });

	$("a.addToFavorite").live("click", function(){
		$('#loading').show();
		var url = $(this).attr('href').split('?');
		var skuUrl = url[1];

		var regex = "do-oblibenych-([\\w\\-]+)";
	  	var re = new RegExp(regex);
	  	var result = re.exec(url);
	  	var productId = result[1];

		$.getJSON(baseUrl + 'category/ajax-add-favourite/',
			{
				skuUrl: skuUrl,
				productId: productId
			}, function(json) {
				onAddToFavourites(json);
			}
		);
		return false;
	});

});


function onAddToFavourites(json)
{
	$("a.favorites").text('Oblíbené ('+ json.favouritesCount +')');
	$('#loading').hide();	
}


function getProducts()
{
	$('div.categoryList').XfadeTo("slow", 0.1);
	$('#loading').show();

	var sex = '';
	var categories = '';
	var parameters = '';
	var brandUrl = null;

	// assemble parameters
	var minPrice = $('input[name=price-min]').val();
	var maxPrice = $('input[name=price-max]').val();

	var url = parent.location.href;

	var regex = ".*slunecni-bryle-([\\w\\-]+)[.,]{1}.*$";
	var re = new RegExp(regex);
	var result = re.exec(url);
	if(result != null) {
		brandUrl = result[1];
	}

	var i = 0;
	$('#itemFilter :checkbox[name^=sex]:checked').each(function(i) {
		sex = sex + $(this).val() + ',';
	});
	$('#itemFilter :checkbox[name^=categories]:checked').each(function(i) {
		categories = categories + $(this).val() + ',';
	});
	$('#itemFilter :checkbox[name^=parameters]:checked').each(function(i) {
		parameters = parameters + $(this).val() + ',';
	});

	// disable input
	$(':checkbox').attr('disabled', true);
	$('#slider-range').slider('disable');

	$.getJSON(baseUrl + 'category/ajax-get-products/',
		{
			minPrice: minPrice,
			maxPrice: maxPrice,
			sex: sex,
			categories: categories,
			parameters: parameters,
			brandUrl: brandUrl
		}, function(json) {
			displayProducts(json);

			// enable input
			$(':checkbox').attr('disabled', false);
			$('#slider-range').slider('enable');
		}
	);

	$('div.categoryList').XfadeTo("slow", 1);
}


function displayProducts(json)
{
	$('#loading').hide();
	$('div.categoryList').empty();

	var categories = json.categories;
	var brands = json.brands;
	var products = json.products;
	var	skus = json.skus;
	var product;
	var brand;
	var sku;
	var html ='';

	if (products.length > 0) {
		for (var i in products) {
			product = products[i];

			brand = brands[product.brand_id];
			sku = skus[product.id];

			html = html + '<div class="categoryItem">';
			if (sku.is_new == 1) {
				html = html + '<span class="newItem">Novinka</span>';
			}
			if (sku.is_action > 0) {
				html = html + '<span class="actionItem">Akce</span>';
			}
			if (sku.on_stock == 1) {
				html = html + '<span class="onStockItem">Skladem</span>';
			}

			html = html + '<a href="do-oblibenych-'+product.id+'.html?'+sku.url+'" class="addToFavorite">Přidat do oblibených</a>';
			html = html + '<a href="bryle-'+brand.url+'-model-'+product.url+'.html?'+sku.url+'">';
			html = html + '<img class="productImage" src="images/glasses/'+brand.url+'/tn-'+sku.url+'.jpg" /><br class="nope" />';
			html = html + '<span>'+brand.name+'<br/>'+product.name+'<br/>';

			if (sku.is_action > 0) {
				var priceDiscount =  sku.price - ((sku.price * sku.is_action) / 100);
				html = html + '<b style="color: #2d2d2d;">'+number_format(priceDiscount,0,'.',' ')+',- Kč</b> <b style="text-decoration: line-through; font-weight: normal;">'+number_format(sku.price,0,'.',' ')+',- Kč</b>';
			} else {
				html = html + '<b style="color: #2d2d2d;">'+number_format(sku.price,0,'.',' ')+',- Kč</b>';
			}
			html = html + '</span>';
			html = html + '</a></div>';
		}
	} else {
		html = '<p>Vašemu filtru bohužel neodpovídají žádné výrobky.</p>';
	}

	$('div[class=categoryList]')
		.append(html)
		.append('<div class="cleaner"></div>');

	if (products.length > 0) {
		$('div[class=categoryList]').append('<p>Celkem produktů: '+products.length+'</p>');
	}

	$("div[class=categoryItem]").addClass('categoryItemNoActive');
	$('a[class=addToFavorite]').hide();	

}