/*
 * Pager
 * http://www.pupunch.com
 *
 * Autor: Andrés Senn
 * Copyright (c) 2009 Andrés Senn
 * Doble licencia MIT y GPL.
 */
( function($){
	$.fn.pager = function(options){
		settings = jQuery.extend({
			timmer: 5000,
			transition: 800,
			pause:'',
			play:'',
			next:'',
			prev:'',
			controls:''
		}, options);
		
		var element = $(this);
		element.find('>div').css('position', 'absolute').css('display', 'none');
		
		/* Variables */
		var ii = 0;
		var idInt = null;
		var num = element.find(">div").length;
		
		/* Primer evento */
		element.find(">div").eq(0).fadeIn(settings.transition);
		
		play();
		
		if(settings.pause != ''){
			$(settings.pause).click(function(){
				window.clearInterval(idInt);
			});
		}
		if(settings.play != ''){
			$(settings.play).click(function(){
				play();
			});
		}
		if(settings.controls != ''){
			$(settings.controls).find('>li').each(function(i){
				$(this).css('cursor','pointer');
				$(this).click(function(){
					play(i);
				});	
			});
		}
		if(settings.next != ''){
			$(settings.next).click(function(){
				next();
			});
		}
		if(settings.prev != ''){
			$(settings.prev).click(function(){
				prev();
			});
		}
		function next(){
			window.clearInterval(idInt);
			if (ii < num - 1) {
				element.find(">div").eq(ii).fadeOut(settings.transition);
				element.find(">div").eq(ii + 1).fadeIn(settings.transition);
				ii++;
			} else {
				element.find(">div").eq(ii).fadeOut(settings.transition);
				element.find(">div").eq(0).fadeIn(settings.transition);
				ii = 0;
			}
		}
		function prev(){
			window.clearInterval(idInt);
			if (ii > 0) {
				element.find(">div").eq(ii).fadeOut(settings.transition);
				element.find(">div").eq(ii - 1).fadeIn(settings.transition);
				ii--;
			} else {
				element.find(">div").eq(0).fadeOut(settings.transition);
				element.find(">div").eq(num-1).fadeIn(settings.transition);
				ii = num-1;
			}
		}
		function play(){
			var args = arguments;
			if (args[0] == undefined) {
				window.clearInterval(idInt);
				idInt = window.setInterval(function(){
					if (ii < num - 1) {
						element.find(">div").eq(ii).fadeOut(settings.transition);
						element.find(">div").eq(ii + 1).fadeIn(settings.transition);
						ii++;
					}
					else {
						element.find(">div").eq(ii).fadeOut(settings.transition);
						element.find(">div").eq(0).fadeIn(settings.transition);
						ii = 0;
					}
				}, settings.timmer);
			}else{
				window.clearInterval(idInt);
				element.find(">div").eq(ii).fadeOut(settings.transition);
				element.find(">div").eq(args[0]).fadeIn(settings.transition);
				ii = args[0];
			}
		}
	}
})(jQuery);

