/**
 * Slideshow Lite plugin for jQuery
 *
 * v0.5.3
 *
 * Copyright (c) 2009 Fred Wu
 *
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 */

/**
 * Configuration options:
 *
 * pauseSeconds  float    number of seconds between each photo to be displayed
 * fadeSpeed     float    number of seconds for the fading transition, the value should not exceed 'pauseSeconds'
 * width         integer  width of the slideshow, in pixels
 * height        integer  height of the slideshow, in pixels
 * caption       boolean  display photo caption?
 * cssClass      string   name of the CSS class, defaults to 'slideshowlite'
 */

		  var titulos = new Array(6);
		  titulos[1] = "Conectando Intereses";
		  titulos[2] = "Autempleo/Emprender";
		  titulos[3] = "Comprar";
		  titulos[4] = "Vender";
		  titulos[5] = "Franquicias";
		  titulos[6] = "Estancos";

(function($){
	$.fn.slideshow = function(options){
		
		var defaults = {
			pauseSeconds: 2,
			fadeSpeed: 0.5,
			width: 468,
			height: 120,
			caption: true,
			cssClass: 'slideshowlite'
		};
		
		var options = $.extend(defaults, options);
		
		// ----------------------------------------
		// slideshow objects and variables
		// ----------------------------------------
		
		var target = this;
		var items  = $(target).children("a");
		var instance;
		
		// ----------------------------------------
		// some mandontory styling
		// ----------------------------------------
		
		if ( ! $(this).hasClass(options.cssClass)) $(this).addClass(options.cssClass);
		
		$(this).css({
			width: options.width + "px",
			height: options.height + "px"
		});
		
		// ----------------------------------------
		// create anchor links to make the structure simpler for manupilation
		// ----------------------------------------
		
		$(this).children("img").wrap(document.createElement("a"));
		$(this).children("a").attr("target", "blank");
		
		// ----------------------------------------
		// add item sequence markups
		// ----------------------------------------
		
		var i = 1;
		$(this).children("a").each(function(){
			$(this).attr("rel", i++);
			
		});
		
		// ----------------------------------------
		// create pagination and caption
		// ----------------------------------------
		
/* Antiguo con numeros */
		$(this).append("<ul></ul>");
		$(this).append("<ol></ol>");
		var pagination = $(this).children("ul");
		var caption = $(this).children("ol");
		

		var i = 1;
		var j = 0;
		$(this).children("a").each(function(){
			pagination.append("<li><a href=\"#\" name=\""+ i +"\">" + titulos[i] + "</a></li>");
			i++;
			caption.append("<li>" + $("#" + $(target).attr("id") + " img:nth(" + j++ + ")").attr("alt") + "</li>");
		});
		pagination.fadeTo(0, 0.8);
		caption.fadeTo(0, 0.6);
		caption.hide();

/* Nuevo con texto
      $(target).append("<ul></ul>");
      $(target).append("<ol></ol>");
      var pagination = $("> ul", target);
      var caption = $("> ol", target);

      var i = 1;
      var j = 0;
	  
	  // Esto de los títlos lo he tuneado para poder poner nombres en vez de números en el paginador////////////////////////////////////////////////////////////////////////////////////
	  var titulos = new Array(7);
	  titulos[1] = "Comprar";
	  titulos[2] = "Vender";
	  titulos[3] = "Franquicias";
	  titulos[4] = "Autempleo-emprender";
	  titulos[5] = "Estancos";
	  titulos[6] = "Financiación";
	  titulos[7] = "Valoración de empresas";
      
	  
	  $("a", target).each(function(){
        pagination.append("<li><a href=\"#\">" + titulos[i] + "</a></li>");
		i++;
        caption.append("<li>" + $("img:nth(" + j++ + ")", target).attr("alt") + "</li>");
      });
      pagination.fadeTo(0, 0.8);
      caption.fadeTo(0, 0.6);
      caption.hide();
*/		
		// ----------------------------------------
		// shortcuts
		// ----------------------------------------
		
		var firstItem   = $(target).children("a:first");
		var lastItem    = $(target).children("a:last");
		var currentItem = firstItem;
		
		// ----------------------------------------
		// pagination highlight
		// ----------------------------------------
		
		var paginationHighlight = function(sequence){
//			alert("paginationHighlight(sequence:"+sequence+")");
			pagination.children("li").children("a").removeClass("current");
			pagination.children("li").children("a:nth(" + sequence + ")").addClass("current");
		}
		
		// ----------------------------------------
		// caption
		// ----------------------------------------
		
		var showCaption = function(sequence){
//			alert("showCaption(sequence:"+sequence+")");
			caption.show();
			caption.children("li").hide();
			caption.children("li:nth(" + sequence + ")").fadeIn();
		}
		
		// ----------------------------------------
		// slideshow logic
		// ----------------------------------------
		
		var makeSlideshow = function(){
			
			// pagination click
			pagination.children("li").children("a").click(function(){
				if ( ! $(this).hasClass("current"))
				{
					// select the current item after the pagination click
//					alert("makeSlideshow(text:"+$(this).text()+")");
					
					for(var busca = 1; busca<=titulos.length;busca++)
					{
						if ($(this).text() == titulos[busca]) busca_actual = busca-1;
					}
					currentItem = $(target).children("a:nth(" + busca_actual + ")");
//					alert("makeSlideshow(currentItem:"+currentItem+")");

					currentItem.show();
					startSlideshow();
				}
			});
			
//			alert("makeSlideshow(rel:"+(currentItem.attr("rel")-1)+")");
			
			// pagination highlight
			paginationHighlight(currentItem.attr("rel")-1);
			
			// show caption
			if (options.caption == true)
			{
				showCaption(currentItem.attr("rel")-1);
			}
			
			// show the current slide
			currentItem.fadeIn(options.fadeSpeed*1000, function(){
				$(target).children("a").hide();
				$(this).show().css("z-index", 1);
			});
			
			// prepare for the next slide
			// determines the next item (or we need to rewind to the first item?)
			if (currentItem.children("img").attr("src") == lastItem.children("img").attr("src"))
			{
				currentItem = firstItem;
				currentItem.css("z-index", 2);
			}
			else
			{
				currentItem = currentItem.next();
			}
//			alert("makeSlideshow(currentItem:"+currentItem+")");
		};
		
		var startSlideshow = function(){
			clearInterval(instance);
			makeSlideshow();
			instance = setInterval(makeSlideshow, options.pauseSeconds*1000);
		};
		
		// ----------------------------------------
		// start the slideshow!
		// ----------------------------------------
		
		startSlideshow();
	};
})(jQuery);
