(function($) {
	/**
	 * Konstruktor ajaxoveho kosiku, bude se jednat o singletonni aplikaci
	 * @param node
	 */	 	
	function CartWindow(options) {
		var defaults = {posLeft: 500, posTop: 200, lang: 'cs', className: 'pridej_polozku'};

		this.timeOut = null;
		this.options = $.extend({}, defaults, options);
	}

  $.extend(CartWindow.prototype, {
		init: function() {
		  var thisRef = this;
		  var inner_html = $("<div>",{id: 'vrstva_kosik', 'class': 'kosik_'+thisRef.options.lang});
		  var inner_head = $("<div>",{id: 'vrstva_kosik_nadpis'});
		  inner_head.append($("<a>",{id: 'zavrit_kosik'}));
		  inner_html.append(inner_head);
		  inner_html.append($("<div>",{id: 'vrstva_kosik_cekej'}));
			inner_html.append($("<div>",{id: 'vrstva_kosik_obsah'}));
		  $("#pozadi").append(inner_html);

//posouvani okna
		  $("#vrstva_kosik").draggable( {
		    zIndex  : 10000,
		    ghosting: false,
		    opacity : 0.7,
		    handle  :  "#vrstva_kosik_nadpis",
		    start   : function() {
		    clearTimeout(thisRef.timeOut);
		    } 
		  });
		
		  $("#vrstva_kosik").hide();
		
//automaticky posun pri scrollu
		  $(window).scroll(function() {
		  	$("#vrstva_kosik").animate({top:$(window).scrollTop() + "px" }, {queue: false, duration: 350});
		  });
		
//zavreni okna
		  $("#zavrit_kosik").click(function() {
			  $("#vrstva_kosik").hide();
			  $("#vrstva_kosik_obsah").hide();
			  $("#vrstva_kosik_cekej").show();
			  return false;
		  });

// definice eventu pro odeslani
			$("." + thisRef.options.className).each(function (){
				$(this).append($("<input>",{type: 'hidden', name:'ajax_view', value:'1'}));
			});
			
			$("." + thisRef.options.className).ajaxForm({
			  dataType: 'xml',
			  success: function(xml) {
			  	if ($(xml).find('status').text() == 'redirect') {
						document.location.href = $(xml).find('params param[name=url]').attr('value');
					} else {
// aktualizuji cenu v boxu s kosikem
						$("#kosik strong.cena_kosik").html($(xml).find('param[name=price]').attr('value'));
						if ($("#kosik strong.cena_kosik").hasClass('red')) {
							$("#kosik strong.cena_kosik").removeClass('red');
						}
// zobrazim data do kosiku (nazev a cenu)
						thisRef.showCart(this,$(xml).find('params'));
					}
			  },
			  error: function(a,b) {
					alert(a);
				}
			});
		},
		showCart: function(node,params) {
		  var thisRef = this;
// TODO nastaveni pozice okna
			var scrollTop = $(window).scrollTop();
			if (thisRef.options.posTop < scrollTop) 
				thisRef.options.posTop = scrollTop;
			$("#vrstva_kosik").css({top: thisRef.options.posTop + "px", left: thisRef.options.posLeft + "px"});

// zpracuji parametry a zobrazim okno
			var paramArr = new Object();
			$(params).find('param').each(function(){
				paramArr[$(this).attr('name')] = $(this).attr('value');
			});

		  $("#vrstva_kosik_cekej").show();
			$("#vrstva_kosik_obsah").load(web_root_lang + "scripts/ajax_kosik.php", paramArr, function() {
			  $("#vrstva_kosik_obsah").show();
			  $("#vrstva_kosik_cekej").hide();
				$("#vrstva_kosik").show();
				thisRef.timeOut = setTimeout(function(){
				  $("#vrstva_kosik_obsah").hide();
				  $("#vrstva_kosik_cekej").show();
					$("#vrstva_kosik").hide('slow');
				}, 5000);
				
				//pokud hover, pak se okno NEzavira
				$("#vrstva_kosik").hover(
					function(){
						clearTimeout(thisRef.timeOut);
					},
					function(){
						thisRef.timeOut = setTimeout(function(){
						  $("#vrstva_kosik_obsah").hide();
						  $("#vrstva_kosik_cekej").show();
							$("#vrstva_kosik").hide('slow');
						},5000)
					}
				);
			});
		}
	});
  $.cartwindow = function(options) {
    var cartwindow = new CartWindow(options);
		cartwindow.init();
  }
})(jQuery);
