/*

* jQuery filter
* By: Paweł Fijałek [pfijalek(at)zoho.com]
* Version 0.3
* Last Modified: 18/09/2011
*/

function HProduct()
{
	HProduct.create();
};

HProduct.create = function()
{
	var self = this;

	$('#product .rozmiary').delegate('a.off', 'click', function(e){
		var sizeId = $(this).attr('id');
		var sel = '#oknoRozmiarPowiadomienie select option[value=' + sizeId +']';

		$(sel).prop('selected', true);
	});

	$('#product .rozmiary a.off').fancybox({
		scrolling: 'no',
		titleShow: false,
		showCloseButton: false,
		speedIn: 800,
		speedOut: 400
	});

	$('#product .rozmiary a:not(.off)').click(function(e){
		if($(this).not('.sel')){
			var size = $(this).text();
			var sizeId = $(this).attr('id');

			$(this).parent().find('a.sel').removeClass();
			$(this).addClass('sel');
			$('#productSizeId').val(sizeId);
			$('#product .wybrano b').text(size);
			$('#product .wybrano').css({'visibility' : 'visible'});
		}

		e.preventDefault();
	});

	$('#oknoRozmiarPowiadomienie input[type=submit]').click(function(e){
		var productId = $("#productId").val();
		var sizeId = $('#oknoRozmiarPowiadomienie select option:selected').val();
		var kod = $('#kod').val();
		var email = $('#emailRozmiarPowiadomienie').val();
		var link = '/towary/powiadom-rozmiar?action=rozmiarwyslij&id=' + productId + "&kod=" + kod + "&rozmiar=" + sizeId + "&email=" + email;

		$.getJSON(link, function(data){
			if(data){
				if(data.WYNIK == "OK"){
					$('#oknoRozmiarPowiadomienie .info .ok').show();
					$('#oknoRozmiarPowiadomienie .info .error').hide();
				}else{
					$('#oknoRozmiarPowiadomienie .info .ok').hide();
					$('#oknoRozmiarPowiadomienie .info .error').show();
				}
			}
		});

		e.preventDefault();
	});

	$('#oknoRozmiarPowiadomienie .btclose').click(function(){
		$('#email').val('');
		$('#oknoRozmiarPowiadomienie .info').children().hide();
		$.fancybox.close();
	});

	$('#oknoCenaPowiadomienie input[type=submit]').click(function(e){
		var productId = $("#productId").val();
		var kod = $('#kod').val();
		var email = $('#email').val();
		var cena = $('#cena').val();
		var link = '/towary/powiadom-cena?id=' + productId + '&kod=' + kod + '&cena=' + cena + '&email=' + email;

		$.getJSON(link, function(data){
			if(data){
				if(data.WYNIK == "OK"){
					$('#oknoCenaPowiadomienie .info .ok').show();
					$('#oknoCenaPowiadomienie .info .error').hide();
				}else{
					$('#oknoCenaPowiadomienie .info .ok').hide();
					$('#oknoCenaPowiadomienie .info .error').show();
				}
			}
		});

		e.preventDefault();
	});

	$('#oknoCenaPowiadomienie .btclose').click(function(){
		$('#email').val("");
		$('#oknoCenaPowiadomienie .info').children().hide();
		$.fancybox.close();
	});

	$('#oknoPolecZnajomemu input[type=submit]').click(function(e){

		$.post('/towary/powiadom-znajomego', $('#oknoPolecZnajomemu .powiadamiacz').serialize(), function(data){
			if(data){
				if(data == "OK"){
					$('#oknoPolecZnajomemu .info .ok').show();
					$('#oknoPolecZnajomemu .info .error').hide();
				}else{
					$('#oknoPolecZnajomemu .info .ok').hide();
					$('#oknoPolecZnajomemu .info .error').show();
				}
			}
		});

		e.preventDefault();
	});

	$('#oknoPolecZnajomemu .btclose').click(function(){
		$('#oknoPolecZnajomemu .info').children().hide();
		$.fancybox.close();
	});

	$('#product .toCommants').click(function(){
		var comTop = $('#comments').offset().top;

		$('html:not(:animated), body:not(:animated)').animate({scrollTop: comTop}, 'slow', function(){
			if($('#comments').tabs("option", "selected") != 1)$('#comments').tabs("select" , 1);
		});
	});

	$('#product .wybor_blok').delegate('a', 'click', function(e){
		if($(this).hasClass('sel')){
			e.preventDefault();
		}else{
			$(this).parent().find('a.sel').removeClass('sel');
			$(this).addClass('sel');
			$('#product .wybrany_color').text($(this).find('span').text());
		}
	});

	$('#product .toBasket').qtip({
		content: 'Vyberte prosím velikost',
		show : {
			ready : false,
			when : false
		},
		hide: 'mouseout',
		position: {
			corner: {
				target: 'bottomMiddle',
				tooltip: 'topMiddle'
			}
		},
		style: {
		padding: 2,
		background: '#C0184A',
		color: 'white',
		textAlign: 'center',
		border: {
			width: 1,
			radius: 5,
			color: '#C0184A'
		},
		tip: 'topMiddle'
		}
	});

	$('#comments').tabs({
		selected: 0,
		select: function(event, ui){
			if(ui.panel.id && ui.panel.id == 't2'){
				$('#komentarzeWrapper').scrollTop(0);
			}
		}
	});

	$('#komentarzeWrapper').scroll(function(){
		var limit = 30;
		var a = Math.round($('#komentarze').offset().top + $('#komentarze').outerHeight());
		var b = Math.round($('#komentarzeWrapper').offset().top + $('#komentarzeWrapper').height());

		if(a <= b){
			var comment = $('#commentsList .komentarz:last').attr('id').slice(1);
			var last = $(this).data('last_comment_id') ? $(this).data('last_comment_id') : '';
			$(this).data('last_comment_id', comment);

			if(comment != last) self.comments(limit, comment, '#commentsList');
		}
	});

	self.basket();
	self.recentlyViewed();
};

HProduct.basket = function()
{
	$('#product .toBasket').bind('click', function(e){
		if(!$('#product .rozmiary a.sel').length){
			$('#product .toBasket').qtip('show');
		}else{
			var productId = $("#productId").val();
			var sizeId = $("#productSizeId").val();
			var link = '/koszyk/dodaj?idtow=' + productId + '&idroz=' + sizeId;

			$.getJSON(link, function(data){
				if (data.ERROR != null){
					window.location.href = '/koszyk/?k=dod';
				}
			});
		}

		e.preventDefault();
	});
};

HProduct.comments = function(limit, last_id, wrapperPanel)
{
	var self = this;
	var id = $('#id').val();

	wrapperPanel = wrapperPanel ? $(wrapperPanel) : $('#commentsList');
	limit = limit ? '&limit=' + limit : '';
	last_id = last_id ? '&last_id=' + last_id : '';

	var loadComments = function(){
		var link = '/towary/towar-komentarze?id=' + id + limit + last_id;

		return	$.ajax({
			url: link,
			timeout: 2500,
			contentType: 'application/json; charset=utf-8',
			dataType: 'html'
		});
	};

	$('#commentsLoader').show();

	return $.when(loadComments()).done(
				function(data_comments){
					if(data_comments){
						var comments = $(data_comments);
						comments.appendTo(wrapperPanel);
					}

					$('#commentsLoader').hide();
				}
			);
};

HProduct.recentlyViewed = function()
{
	var limitProducts = 20;
	var cookieName = 'lastView';
	var produktId = $('#productId').val() ? $('#productId').val() : '';
	var cookie = $.cookies.get(cookieName);
	
	var rememberDays = 30;
	var exspireDate = new Date();
	exspireDate.setDate(exspireDate.getDate() + rememberDays);
	
	var cookieOptions = {
		    expiresAt: exspireDate
	};
	
	if(cookie){
		if(typeof(cookie) != 'string') cookie = cookie.toString();
		cookie = cookie.split(',');
		
		if(cookie.length > limitProducts){
			cookie = cookie.slice(cookie.lenth - limitProducts);
		}
		
		if(jQuery.inArray(produktId,cookie) == -1){
			if(cookie.length == limitProducts)cookie.shift();
			cookie.push(produktId);
		}
	}else{
		cookie = [produktId];
	}
	
	cookie = cookie.toString();
	
	$.cookies.set(cookieName, cookie, cookieOptions);
};
