	var myEffect = null;
	
	/* 
		#1479563 Wizualizacja pakietow miekkich - poprawki / rozbudowa 
		Dostosowanie wysokosci ramki w ktorej znajduja sie produkty w bundlu
		tak aby ramka byla tej samej wysokosci co ramka z info o cenie i buttonem "Kup caly zestaw"
	*/
	Event.observe(window, 'load', function() {
			var div = $('frame_gray_middle_id');
			if(div!=null){
	  			var height = $('frame_gray_middle_id').getHeight();
				document.getElementById('frame_gray_small_middle_id').style.height=height+"px";
			}
	});

	/* funkcja pokazuje warstwe z "Produkt jest dodawany do koszyka" */
	function showAddItemProgress(productId, layname) {
		if(myEffect!=null) {
			myEffect.cancel();
		}
		hideAddItemProgress();
		hideAlertCompatibility();
		var layer = layname + productId;
		$(layer).show();
	}

	/* funkcja ukrywa wszystkie warstwy z "Produkt jest dodawany do koszyka" */
	function hideAddItemProgress() {
		var alerts = document.getElementsByClassName('add2Cart_progress');
		for (i=0; i<alerts.length; i++){		
			if (alerts[i]){
				alerts[i].hide();
			}
		}
	}
	
	/* funkcja do ukrywania alertow z warstwy "produktu nie mozna dodac do koszyka" */
	function hideAlertCompatibility() {
		var alerts = document.getElementsByClassName('add2Cart_compatibility');
		for (i=0; i<alerts.length; i++){		
			if (alerts[i]){
				alerts[i].hide();
			}
		}
	}
	

	function onAddItemToOrderFromList(formName) {
		if(myEffect!=null) {
			myEffect.cancel();
		}
		stopTheClock();
		
		$('panel_product_add').innerHTML = '<img src="/b/img/header/indicator.gif" alt="" />';
		var formElement = $(formName);
		
		params = "";
		
		for (i=0; i<formElement.elements.length; i++) {
			switch(formElement.elements[i].type) {
				case "radio":
					if (formElement.elements[i].checked)
						params = params + 
						formElement.elements[i].name + "=" + 
						formElement.elements[i].value + "&";
						
					break;
				default:
					params = params + 
					formElement.elements[i].name + "=" + 
					formElement.elements[i].value + "&";
			} 
		}
		ajaxCall("/produkt?" + params, onComplAddItemToOrder);
		return false;
	}
	
	function onAddItemToOrder() {
		return onAddItemToOrderFromList('ajaxAdd');
	}
	
	function refreshPanel(request) {
		var response = request.responseText || "---";
		h_cart = document.getElementById('cart_panel_ajax');
		if (h_cart != null) {
			h_cart.innerHTML = response;
			$('minicart_lay').hide();
			switchMiniCart('minicart_lay');
			initializeTimer();
		}
		hideAddItemProgress();
		initializeCounting();
		
	}
	
	function onComplAddItemToOrder(request) {
		var response = request.responseText || "---";
		h_cart = document.getElementById('panel_product_add');
		if (h_cart != null) {
			h_cart.innerHTML = response;
			if (response.indexOf('pusty') == -1) {
//				$('header_cart_lt_id').innerHTML = '<img src="/b/img/header/cart_lt_red.gif" alt="" />';
//				$('header_cart_rt_id').innerHTML = '<img src="/b/img/header/cart_rt_red.gif" alt="" />';
//				$('header_cart_mid_red_id').style.background = 'url("/b/img/header/cart_mid_red.gif")';
				$('header_cart_mid_red_id').style.background = 'url("/b/img/header/mini_full_bg.png")';
				$('header_cart_more_id').innerHTML = '<a href="/koszyk/koszyk"><img src="/b/img/header/cart_more_arr_red.gif" alt="" /></a>';
			}
		}
		/* czesc sluzaca do sprawdzania czy dodawany produkt byl zgodny z typem koszyka 
		Jezeli brak zgodnosci to wtedy wyswietlamy przy dodawanym produkcie komunikat o braku mozliwosci dodania */
		if (response.indexOf('nieprawid') >= 0) {
			var index = response.indexOf('productId');
			if ( index >= 0) {
				// czesc stringa zaczynajaca sie od 'productId'
				var temp = response.substring(index);
				
				//index od ktorego zaczyna sie wartosc dla productId
				var indexFirst = temp.indexOf('value=') + 7;
				//index na ktorym konczy sie wartosc dla productId
				var	indexLast = temp.indexOf('>') - 1;
				
				//wartosc temp bedzie przechowywala productId
				temp = temp.substring(indexFirst,indexLast);
				var idAlert = "add2CartCompa" + temp;
				
				$(idAlert).show();
			}
		}
		
		ajaxCall('/ajax/cart_panel.jsp', refreshPanel);
	}
	
	function ajaxCall(url, oncompl) {
		var myAjax = new Ajax.Request(
				url,
				{
					method: 'post',
					onComplete: oncompl
				});
	}
	
	var secs;
	var timerID = null;
	var timerRunning = false;
	var delay = 1000;
	
	function initializeTimer() {
	    secs = 4;
	    stopTheClock();
	    startTheTimer();
	}
	
	function stopTheClock() {
	    if(timerRunning) {
	        clearTimeout(timerID);
	    }
	    timerRunning = false;
	}
	
	function startTheTimer() {
	    if (secs == 0) {
	        stopTheClock();
	        if ($('minicart_lay').visible()) {
	        	switchMiniCart('minicart_lay');
	        }
	    }
	    else {
	        self.status = secs;
	        secs = secs - 1;
	        timerRunning = true;
	        timerID = self.setTimeout("startTheTimer()", delay);
	    }
	}

	function getScrollY() {
		var sy = 0;
		if (document.documentElement && document.documentElement.scrollTop)
			sy = document.documentElement.scrollTop;
		else if (document.body && document.body.scrollTop) 
			sy = document.body.scrollTop; 
		else if (window.pageYOffset)
			sy = window.pageYOffset;
		else if (window.scrollY)
			sy = window.scrollY;
		return sy;
	}
	
	function switchMiniCart(elemName){
		var aux = getScrollY();
		if (aux<25) {
			aux=25;
		}
		$('minicart_lay').setStyle({
			top: aux+'px'
		});
	
		if ($(elemName).visible()){
			myEffect = new Effect.SlideUp($(elemName), { duration: 0.8 });
			$("minicart_tick").src = $("minicart_tick").src.replace("up", "down"); 
//			if ($("header_search_dropd")){
//				$("header_search_dropd").show();
//			}
		}else{
//			if ($("header_search_dropd")){
//				$("header_search_dropd").hide();
//			}
			myEffect = new Effect.SlideDown($(elemName), { duration: 0.8 });
			$("minicart_tick").src = $("minicart_tick").src.replace("down", "up"); 
		}
	}
	
	
	
	
	var secsCounting;
	var timerIDcounting = null;
	var timerRunningCounting = false;
	function initializeCounting() {
		secsCounting = 6;
	    stopTheClockCounting();
	    startTheTimerCounting();
	
	}
	
	function stopTheClockCounting() {
	    if(timerRunningCounting) {
	        clearTimeout(timerIDcounting);
	    }
	    timerRunningCounting = false;
	}
	
	function startTheTimerCounting() {
	    if (secsCounting == 0) {
	        stopTheClockCounting();
	        hideAlertCompatibility();
	    }
	    else {
	        self.status = secsCounting;
	        secsCounting = secsCounting - 1;
	        timerRunningCounting = true;
	        timerIDcounting = self.setTimeout("startTheTimerCounting()", delay);
	    }
	}
	

	/* #1491469 - ocenianie produktow - START */	
	function addRate(score) {
		var formElement = $('rateForm');
		$('score').value = score;
		
		var	params = "";
		for (i=0; i<formElement.elements.length; i++) {
			params = params + 
				formElement.elements[i].name + "=" + 
				formElement.elements[i].value + "&";
		}
		
		ajaxCall("/produkt?" + params, onComplUpdateNote);
	}	

	function onComplUpdateNote(request) {
		var response = request.responseText || "---";
		
		if(response.indexOf('showLoginForm') != -1) {
			/* 
			 * Warunek ten wystepuje gdy user kliknal na gwiazdke bez uprzedniego zalogowania.
			 * 
			 * Ponizszy kod robi redirect na strone logowania:
			 */
			$('show_login_form').innerHTML = response;
			response.evalScripts();
			return;
		}		
		
		var noteDiv = document.getElementById('note');
		if (noteDiv != null) {
			noteDiv.innerHTML = response;
			//przegenerowujemy tip-a:
			response.evalScripts();
			Tips.activateAllTips();
		}
	}

	function setRateWidth(width) {
		$('rating_current').setStyle({width: '' + width + 'px'});
	}
	/* #1491469 - ocenianie produktow - END */