/************************************************************ * Choco-Slider v2.0 * http://chocoslider.alandawi.com.ar * * Desarrollado por Alan G. Dawidowicz * Web Site: www.alandawi.com.ar * * Copyright 2010 * Licencia: MIT - http://es.wikipedia.org/wiki/Licencia_MIT************************************************************/(function($) {	$.fn.chocoslider = function(options) {		var settings = $.extend({}, $.fn.chocoslider.defaults, options);		return this.each(function() {			var vars = {				currentSlide: 0,				currentImage: '',				totalSlides: 0,				randAnim: '',				running: false,				paused: false,				stop:false			};					var slider = $(this);			slider.data('choco:vars', vars);			slider.css('position','relative');			slider.addClass('chocoslider');						var kids = slider.children();			kids.each(function() {				var child = $(this);				var link = '';				if(!child.is('img')){					if(child.is('a')){						child.addClass('choco-imageLink');						link = child;					}					child = child.find('img:first');				}                var childWidth = child.width();                if(childWidth == 0) childWidth = child.attr('width');                var childHeight = child.height();                if(childHeight == 0) childHeight = child.attr('height');                if(childWidth > slider.width()){                    slider.width(childWidth);                }                if(childHeight > slider.height()){                    slider.height(childHeight);                }                if(link != ''){                    link.css('display','none');                }                child.css('display','none');                vars.totalSlides++;			});						if($(kids[vars.currentSlide]).is('img')){				vars.currentImage = $(kids[vars.currentSlide]);			} else {				vars.currentImage = $(kids[vars.currentSlide]).find('img:first');			}						if($(kids[vars.currentSlide]).is('a')){				$(kids[vars.currentSlide]).css('display','block');			}						slider.css('background','url('+ vars.currentImage.attr('src') +') no-repeat');						for(var i = 0; i < settings.numberStrips; i++){				var sliceWidth = Math.round(slider.width()/settings.numberStrips);				if(i == settings.numberStrips-1){					slider.append(						$('<div class="choco-slice"></div>').css({ left:(sliceWidth*i)+'px', width:(slider.width()-(sliceWidth*i))+'px' })					);				} else {					slider.append(						$('<div class="choco-slice"></div>').css({ left:(sliceWidth*i)+'px', width:sliceWidth+'px' })					);				}			}						slider.append(				$('<div class="choco-title"><p></p></div>').css({ display:'none', opacity:settings.transparencytitle })			);						if(vars.currentImage.attr('title') != ''){                var title = vars.currentImage.attr('title');                if(title.substr(0,1) == '#') title = $(title).html();                $('.choco-title p', slider).html(title);									$('.choco-title', slider).fadeIn(settings.speedStrip);			}						var timer = 0;			if(!settings.auto && kids.length > 1){				timer = setInterval(function(){ chocoRun(slider, kids, settings, false); }, settings.sliderDelay);			}						if(settings.controlNavigation){				var chocoControl = $('<div class="choco-controlNavigation"></div>');				slider.append(chocoControl);				for(var i = 0; i < kids.length; i++){						chocoControl.append('<a class="choco-control" rel="'+ i +'">'+ (i + 1) +'</a>');					}								$('.choco-controlNavigation a:eq('+ vars.currentSlide +')', slider).addClass('active');								$('.choco-controlNavigation a', slider).live('click', function(){					if(vars.running) return false;					if($(this).hasClass('active')) return false;					clearInterval(timer);					timer = '';					slider.css('background','url('+ vars.currentImage.attr('src') +') no-repeat');					vars.currentSlide = $(this).attr('rel') - 1;					chocoRun(slider, kids, settings, 'control');				});			}						if(settings.autoPause){				slider.hover(function(){					vars.paused = true;					clearInterval(timer);					timer = '';				}, function(){					vars.paused = false;					if(timer == '' && !settings.auto){						timer = setInterval(function(){ chocoRun(slider, kids, settings, false); }, settings.sliderDelay);					}				});			}						slider.bind('choco:animFinished', function(){ 				vars.running = false; 				$(kids).each(function(){					if($(this).is('a')){						$(this).css('display','none');					}				});				if($(kids[vars.currentSlide]).is('a')){					$(kids[vars.currentSlide]).css('display','block');				}				if(timer == '' && !vars.paused && !settings.auto){					timer = setInterval(function(){ chocoRun(slider, kids, settings, false); }, settings.sliderDelay);				}				settings.aChange.call(this);			});		});				function chocoRun(slider, kids, settings, nudge){			var vars = slider.data('choco:vars');			if((!vars || vars.stop) && !nudge) return false;						settings.bChange.call(this);								if(!nudge){				slider.css('background','url('+ vars.currentImage.attr('src') +') no-repeat');			} else {				if(nudge == 'prev'){					slider.css('background','url('+ vars.currentImage.attr('src') +') no-repeat');				}				if(nudge == 'next'){					slider.css('background','url('+ vars.currentImage.attr('src') +') no-repeat');				}			}			vars.currentSlide++;			if(vars.currentSlide == vars.totalSlides){ 				vars.currentSlide = 0;				settings.chocoEnd.call(this);			}			if(vars.currentSlide < 0) vars.currentSlide = (vars.totalSlides - 1);			if($(kids[vars.currentSlide]).is('img')){				vars.currentImage = $(kids[vars.currentSlide]);			} else {				vars.currentImage = $(kids[vars.currentSlide]).find('img:first');			}						if(settings.controlNavigation){				$('.choco-controlNavigation a', slider).removeClass('active');				$('.choco-controlNavigation a:eq('+ vars.currentSlide +')', slider).addClass('active');			}						if(vars.currentImage.attr('title') != ''){                var title = vars.currentImage.attr('title');                if(title.substr(0,1) == '#') title = $(title).html();	                    				if($('.choco-title', slider).css('display') == 'block'){					$('.choco-title p', slider).fadeOut(settings.speedStrip, function(){						$(this).html(title);						$(this).fadeIn(settings.speedStrip);					});				} else {					$('.choco-title p', slider).html(title);				}									$('.choco-title', slider).fadeIn(settings.speedStrip);			} else {				$('.choco-title', slider).fadeOut(settings.speedStrip);			}						var  i = 0;			$('.choco-slice', slider).each(function(){				var sliceWidth = Math.round(slider.width()/settings.numberStrips);				$(this).css({ height:'0px', opacity:'0', 					background: 'url('+ vars.currentImage.attr('src') +') no-repeat -'+ ((sliceWidth + (i * sliceWidth)) - sliceWidth) +'px 0%' });				i++;			});						if(settings.effect == 'random'){				var anims = new Array("effect1","effect2");				vars.randAnim = anims[Math.floor(Math.random()*(anims.length + 1))];				if(vars.randAnim == undefined) vars.randAnim = 'effect2';			}                        if(settings.effect.indexOf(',') != -1){                var anims = settings.effect.split(',');                vars.randAnim = $.trim(anims[Math.floor(Math.random()*anims.length)]);            }					vars.running = true;			if(settings.effect == 'effect1' || vars.randAnim == 'effect1'){				var timeBuff = 0;				var i = 0;				$('.choco-slice', slider).each(function(){					var slice = $(this);					var origWidth = slice.width();					slice.css({ top:'0px', height:'100%', width:'0px' });					if(i == settings.numberStrips-1){						setTimeout(function(){							slice.animate({ width:origWidth, opacity:'1.0' }, settings.speedStrip, '', function(){ slider.trigger('choco:animFinished'); });						}, (100 + timeBuff));					} else {						setTimeout(function(){							slice.animate({ width:origWidth, opacity:'1.0' }, settings.speedStrip);						}, (100 + timeBuff));					}					timeBuff += 50;					i++;				});			}  			else if(settings.effect == 'effect2' || vars.randAnim == 'effect2'){				var i = 0;				$('.choco-slice', slider).each(function(){					$(this).css('height','100%');					if(i == settings.numberStrips-1){						$(this).animate({ opacity:'1.0' }, (settings.speedStrip*2), '', function(){ slider.trigger('choco:animFinished'); });					} else {						$(this).animate({ opacity:'1.0' }, (settings.speedStrip*2));					}					i++;				});			}		}	};		$.fn.chocoslider.defaults = {		auto:true,		autoPause:true,				speedStrip:500,		effect:'random',		numberStrips:15,		sliderDelay:3000,				transparencytitle:0.8,				bChange: function(){},		aChange: function(){},		chocoEnd: function(){},		controlNavigation:true	};		$.fn._reverse = [].reverse;	})(jQuery);
