// Configuracion 

// W3C WCAG 2.0: http://www.w3.org/TR/WCAG20-TECHS/G11.html : no crear contenido que parpadee más de 5 segundos.
// En nuestro caso, reducir animación a una frecuencia menor de 1 vez cada 5 segundos.

(function($){
	var opts;
	$.fn.banner = function(options){
		if (this.length) {
			// build main options
			opts = $.extend({}, $.fn.banner.defaults, options);

			// initalize the banner
			$.fn.banner.initialize();

			return this.each(function(){
				$(this).click(function(){
					//$(this).banner.start(this);
					return false;
				});
			});
		}
		
		return this;
	};

	// banner functions
	$.fn.banner.initialize = function() {
		opts.banner_pausa_inicial = 4000;
		opts.banner_transicion = 2000; // duración del fade entre banners
		opts.banner_pausa_banner = 7000; // pausa entre banners
		
		opts.currentbanner = 0;
		opts.currentid = 0;
		
		opts.banners = Array();
		opts.banners[0] = $(opts.banner1);
		
		if (typeof(opts.bannerdata) != 'undefined') {
			// Cacheo inicial de las imagenes
			opts.bannerdata[0].img = new Image();
			opts.bannerdata[0].img.src = opts.bannerdata[0].imgsrc;
	
			opts.bannerdata[1].img = new Image();
			opts.bannerdata[1].img.src = opts.bannerdata[1].imgsrc;
			
			opts.banners[0].before('<div id="' + opts.banner2 + '" class="banner"><img src="' + opts.bannerdata[1].img.src + '" alt="' + opts.bannerdata[1].title + '"/><a title="' +  bannerdata[1].title + '" href="' + opts.bannerdata[1].href + '">' + opts.bannerdata[1].title + '</a></div>');

			opts.banners[1] = $(opts.banner2);

			setTimeout(opts.bannerTimer, opts.banner_pausa_inicial);
		}
		
	},
// Funciones para la rotacion de banners

	$.fn.banner.fadeBanner : function() {
		// precargamos la siguiente imagen (esta dos lugares por delante)
		var loadbanner = (opts.currentbanner+2) % opts.bannerdata.length;
		if (!opts.bannerdata[loadbanner].img) {
			opts.bannerdata[loadbanner].img = new Image();
			opts.bannerdata[loadbanner].img.src =opts. bannerdata[loadbanner].imgsrc;
			opts.bannerdata[loadbanner].img.alt = opts.bannerdata[loadbanner].title;
		}
		
		// modificamos los datos del banner que acaba de salir de pantalla con el precargado
		opts.banners[opts.currentid].empty().append(opts.bannerdata[loadbanner].img).append('<a title="' +  opts.bannerdata[loadbanner].title + '" href="' + opts.bannerdata[loadbanner].href + '">' + opts.bannerdata[loadbanner].title + '</a>');
	
		opts.currentbanner = (opts.currentbanner+1) % opts.bannerdata.length;
		opts.currentid = (opts.currentid % 2);
	
		setTimeout(opts.bannerTimer, opts.banner_pausa_banner);
	},

	$.fn.banner.bannerTimer : function() {
		if (opts.currentid == 0) {
			opts.banners[0].fadeOut(opts.banner_transicion, opts.fadeBanner);
		} else {
			opts.banners[1].fadeIn(opts.banner_transicion, opts.fadeBanner);
		}
	}
	
})(jQuery);

