/* gzip */
var autoInterval;

function stopAuto() {
	clearInterval(autoInterval);
}

function startAuto(iInterwal) {
	stopAuto();
	autoInterval = setInterval(
		$.cubesystem.bannerRotator.zaznacz(false),
		iInterwal
	);
}

function clearBannerEffects($banner) {
	//musi cos byc wpisane, bo inaczej nie umie zerowac styli pod ie8
	$banner.find('.ab_sfx').attr('style','overflow:hidden;');
}

function executeBannerEffects($banner) {
	$banner.find('.ab_sfx').each(function() {	
		//delay tylko w przypadku, gdy obecnie w petli mamy nie-naglowek, a sam naglowek ma ustawiony jakis efekt
		if (!$(this).hasClass('ab_head_sfx') && !$(this).parent().find('.ab_head_sfx').hasClass('ab_sfx_none')) {
			$(this).delay('slow');
		}
		
		if ($(this).hasClass('ab_sfx_fadein')) {
			//efekty dla pojawiania sie
			$(this).customFadeIn('slow');
		}
		else if ($(this).hasClass('ab_sfx_slidetxt')) {
			//efekty dla pojawiania sie ('kurtyna')
			$(this).slideDown('slow');
		}
		else if ($(this).hasClass('ab_sfx_slideinl')) {
			//efekty dla wjezdzania
			$(this).animate({
				left: '20px'
			}, 'slow', function() {
				$(this).animate({
					left: '0px'
				}, 'fast');
			});
		}
		else if ($(this).hasClass('ab_sfx_slideinr')) {
			//efekty dla wjezdzania
			$(this).animate({
				right: '20px'
			}, 'slow', function() {
				$(this).animate({
					right: '0px'
				}, 'fast');
			});
		}
	});
}

(function($){
	$.fn.CmsBannerRotator = function(el, o){
		
		var this_list = this;
		
		o = $.extend({
			next:	0,
			prev:	0,
			aTimes:	[],
			aTabs:	[],
			idList:	[],
			ilosc:	0,
			restart: 5000,
			elementsList: this_list
		}, o || {});
	
		return this.each(function(){
			var autoInterval;
		
			$("a", this).each(function(){
				if ($(this).attr('id')=='' && !$(this).hasClass('banner_nav')) {
					//nie ma id, nie ma banner nav, czyli do wyrzucenia
					return;
				}
				
				if ($(this).hasClass('banner_nav')) {
					//tutaj przypinamy akcje do mapowania nawigacji
					$(this).click(function() {
						if (o.elementsList.find("a.Selected").length == 0) {
							//chwilami nie ma zadnego selecta i dla takiego przypadku nic nie robimy
							return;
						}
					
						//odnajdz obecny a.Selected i kliknij na nastepnego lub poprzedniego
						if ($(this).hasClass('banner_nav_next')) {
							if (o.elementsList.find("a.Selected").next('a.banner_button').length>0) {
								o.elementsList.find("a.Selected").next('a.banner_button').click();
							}
							else {
								o.elementsList.find('a.banner_button').first().click();
							}
						}
						else {
							if (o.elementsList.find("a.Selected").prev('a.banner_button').length>0) {
								o.elementsList.find("a.Selected").prev('a.banner_button').click();
							}
							else {
								o.elementsList.find('a.banner_button').last().click();
							}
						}
						
						//alert(o.elementsList.find("a.Selected"));
					});
				
					return;
				}
			
				var aSplit = $(this).attr('id').split('_');
				o.aTabs.push("#tab_"+aSplit[1]); 
				o.idList.push("#t_"+aSplit[1]); 
				var iTime = parseInt($(this).attr('rel'));
				if (iTime == 0 || iTime == 'NaN' || iTime == 'undefined') {
					iTime = 15;
				}
				iTime = iTime * 1000;
				o.aTimes.push(iTime);
				
				$(this).click(function(){
					var sLinkDoStrony = $(this).attr('href');
					if(sLinkDoStrony != '' && sLinkDoStrony != 'undefined' && sLinkDoStrony != null) {
						window.location = sLinkDoStrony;
					}
					else {
						o.next = aSplit[1];

						for(i in o.aTabs) {
							// usuniecie zaznaczenia z cyferek
							$(o.aTabs[i]).removeClass("Selected");
							// ukrycie boksow
							if(typeof o.idList[i] == "string") {
								$(o.idList[i]).hide(); 
							}
						}
						
						zaznacz();
						startAuto()
					}
				});
				
				o.ilosc++;
			});
			
			function zaznacz() {
				
				$(o.aTabs[o.prev]).removeClass("Selected");
		 		//$(o.idList[o.prev]).hide(); // .fadeOut('fast');
				
				// zaznaczenie i pokazanie wybranego banera (no i schowanie poprzedniego, jesli jest co chowac)
				if ($(o.idList[o.prev]).length>0) {
					$(o.idList[o.prev]).fadeOut('slow', function() {
						clearBannerEffects($(o.idList[o.prev]));
						clearBannerEffects($(o.idList[o.next]));
						$(o.aTabs[o.next]).addClass("Selected");
						$(o.idList[o.next]).fadeIn('slow', function() {
							executeBannerEffects($(this));
						});
					});
				}
				else {
					clearBannerEffects($(o.idList[o.next]));
					$(o.aTabs[o.next]).addClass("Selected");
					$(o.idList[o.next]).fadeIn('slow', function() {
						executeBannerEffects($(this));
					});
				}
				
				startAuto();
			}
			
			function startAuto() {
				stopAuto();
				
				autoInterval = setInterval(function(){
					o.prev = o.next;
					o.next++;
	 				o.next = (o.next < o.ilosc) ? o.next : 0;
					zaznacz();
				}, o.aTimes[o.next]);
			};

			function stopAuto() {
				clearInterval(autoInterval);
			};
			
			zaznacz();
		});
	}
})(jQuery);

// do poprawki działania pod IE7-8, niestety nie bardzo działa
// http://www.kevinleary.net/wp-samples/ie-fade-problems.php
// jQuery customFade method/plugin
(function($) {
	$.fn.customFadeIn = function(speed, callback) {
		$(this).fadeIn(speed, function() {
			if(jQuery.browser.msie)
				$(this).get(0).style.removeAttribute('filter');
			if(callback != undefined)
				callback();
		});
	};
	$.fn.customFadeOut = function(speed, callback) {
		$(this).fadeOut(speed, function() {
			if(jQuery.browser.msie)
				$(this).get(0).style.removeAttribute('filter');
			if(callback != undefined)
				callback();
		});
	};
})(jQuery);
