var objBannerZeta = null;
var interval = null;

var echoHidden = function(text)
{
	jQuery('body').append('<div style="display:none">'+text+'</div><br />');
};

var flashGoNext = function() {
	objBannerZeta.goToNext();
};

(function($) {
	$.bannerZeta = function(elem, settings) {
		var base = this;
		var leftThumb = 0;
		
		settings.delaytime = settings.delaytime*1000;
		
		base.init = function() {
			base.numBanners = elem.find('.zeta-main').find('img,embed').length;
			
			elem.find('.'+settings.containerThumbsClass+' a').click(function(e) {
				e.preventDefault();
				base.goToBanner(elem.find('.'+settings.containerThumbsClass+' a').index(this));
			});
			
			base.goToBanner(settings.displayindex);
			
			/**/
			elem.find('.zeta-btn-prev').click(function() {
				lThumb = elem.find('.'+settings.containerThumbsClass+' li').eq(leftThumb);
				if(lThumb.prev().length)
				{
					lThumb.prev().show();
					elem.find('.'+settings.containerThumbsClass+' li').eq(leftThumb+settings.countThumbs-1).hide();
					
					leftThumb--;
				}
			});
			
			elem.find('.zeta-btn-next').click(function() {
				rThumb = elem.find('.'+settings.containerThumbsClass+' li').eq(leftThumb+settings.countThumbs-1);
				if(rThumb.next().length)
				{
					rThumb.next().show();
					elem.find('.'+settings.containerThumbsClass+' li').eq(leftThumb).hide();
					
					leftThumb++;
				}
			});
			/**/
			
			if(settings.autoswitch == 'true')
				interval = setInterval('objBannerZeta.goToNext()',settings.delaytime);
				
			if(settings.pauseautoswitchonmouseover == 'true') {
				elem.find('.zeta-main').hover(function() {
					interval = clearInterval(interval);
				}, function() {
					interval = setInterval('objBannerZeta.goToNext()',settings.delaytime);
				});
			}
		};
		
		base.goToPrev = function() {
			if(settings.playRtl) base.goForward();
			else base.goBackward();
		};
		
		base.goToNext = function() {
			if(settings.playRtl) base.goBackward();
			else base.goForward();
		};
		
		base.goForward = function() {
			// Se tem que parar quando chegar ao fim
			if(settings.stopAtEnd && ((base.currentBanner+1) == base.numBanners))
				interval = clearInterval(interval);
			else {
				index = ((base.currentBanner+1) == base.numBanners) ? 0 : base.currentBanner+1 ;
				base.goToBanner(index);
			}
		};
		
		base.goBackward = function() {
			// Se tem que parar quando chegar ao início
			if(settings.stopAtEnd && base.currentBanner == 0)
				clearInterval(interval);
			else {
				index = (base.currentBanner > 0) ? base.numBanners-1 : base.currentBanner-1 ;
				base.goToBanner(index);
			}
		};
		
		base.goToBanner = function(index) {
			base.currentBanner = index;
			
			tags = elem.find('.zeta-main').find('img,embed');
			tags.hide();
			current = tags.eq(base.currentBanner);
			
			if(settings.autoswitch == 'true') {
				// Se vai exibir um .swf o setInterval() deverá deixar de existir,
				// o gotoNext() deve ser chamado pelo próprio flash no fim da apresentação
				
				tag = current.get(0);
				if(tag.tagName.toLowerCase() == 'embed') {
					if(!isNaN(interval))
						interval = clearInterval(interval);
				} else if(isNaN(interval)) {
					interval = setInterval('objBannerZeta.goToNext()',settings.delaytime);
				}
			}
			
			current.show();
			
			$li = elem.find('.'+settings.containerThumbsClass+' li');
			if(!$li.eq(base.currentBanner).is(':visible'))
			{
				leftThumb = (base.currentBanner >= settings.countThumbs-1) ? base.currentBanner-settings.countThumbs+1 : base.currentBanner;
			
				elem.find('.'+settings.containerThumbsClass+' li').hide();
				
				for(i=leftThumb;i<leftThumb+settings.countThumbs;++i)
					elem.find('.'+settings.containerThumbsClass+' li').eq(i).show();
			}
			
			$li.removeClass('zeta-current-thumb').eq(base.currentBanner).addClass('zeta-current-thumb');
			
			settings.afterChangeBanner(settings.objJSON,index);
		};
		
		base.init();
	};
	
	$.bannerZeta.defaults = {
		// Appearance
		//width		: 100,
		//height	: 100,
		countThumbs	: 5,
		
		// Slideshow options
		//autoPlay		: true,
		playRtl			: false,
		//pauseOnHover	: true,
		stopAtEnd		: false,
		//index			: 0,
		//delay			: 3000,
		
		containerThumbsClass: 'zeta-container-thumbs',
		
		// Callbacks
		beforeChangeBanner	: function() {},
		afterChangeBanner	: function() {},
		
		// Attributes overridden by the XML tags
		autoswitch					: true,
		pauseautoswitchonmouseover	: true,
		displayindex				: 0,
		delaytime					: 4
	};
	
	$.fn.bannerZeta = function(xml,options) {
		var xmlFile = xml;
		var settings = $.extend(true, $.bannerZeta.defaults, options);
		
		return this.each(function() {
			//alert('this.each');
			var $this = jQuery(this);
			
			jQuery.ajax({
				type: 'POST',
				url: xmlFile,
				success: function(resp) {
					var objJSON = xml2json.parser(resp).data;
					
					settings = $.extend(true, settings, objJSON);
					
					if(objJSON.item.length) {
						$this.html($this.html()+'<div class="zeta-main"></div>'+
										'<div class="zeta-container">'+
											'<div class="zeta-sombra"></div>'+
											'<div class="zeta-btn-prev"></div>'+
											'<div class="zeta-container-thumbs"><ul></ul></div>'+
											'<div class="zeta-btn-next"></div>'+
											'<div class="zeta-break"></div>'+
										'</div>'+
									'</div>');
						
						$main = $this.find('.zeta-main');
						$thumbs = $this.find('.zeta-container-thumbs ul');
						
						for(i in objJSON.item) {
							arquivo = objJSON.item[i].img;
							arrAux = arquivo.split('.');
							
							/*if(arrAux[arrAux.length-1].toLowerCase() == 'swf')
							{
								$main.append('<div id="flashcontent"></div>');
								
								var so = new SWFObject(arquivo+'?x='+Math.random(),'', '956', '305', '0', '#333333');
	
								so.addParam('scale', 'noscale');
								so.addParam('wmode', 'transparent');
								so.write("flashcontent");
								
								jQuery('#flashcontent').removeAttr('id');
							}
							else $main.append('<img src="'+arquivo+'" />');
							
							$thumbs.append('<li><a href="#" style="background-image: url('+objJSON.item[i].thumb+')" /></a></li>');
							*/
							
							//$main.html($main.html()+'<img src="'+arquivo+'" />');
							$main.html($main.html()+'<a href="'+objJSON.item[i].imglink+'" target="_blank"><img src="'+arquivo+'" /></a>');
							$thumbs.html($thumbs.html()+'<li><a href="#" style="background-image: url('+objJSON.item[i].thumb+')" /></a></li>');
							
							if(i>=settings.countThumbs)
								$thumbs.children(':last').hide();
						}
						
						if(settings.width > 0) {
							//$main.find('img,embed').css({width: settings.width+'px'});
							/*width = Math.floor(settings.width/settings.countThumbs)-(objJSON.item.length*2);
							$thumbs.find('img').css({width: width+'px'});*/
						}
						
						if(settings.height > 0) {
							//$main.find('img,embed').css({height: settings.height+'px'});
						}
						
						settings.objJSON = objJSON;
						
						//echoHidden('chegou até aqui');
						objBannerZeta = new $.bannerZeta($this,settings);
					}
				}
			});
		});
	};
})(jQuery);
//jQuery.holdReady(false);

