(function($){$.fn.innerFade=function(options){return this.each(function(){$.innerFade(this,options);});};$.innerFade=function(container,options){var settings={'animationtype':'fade','easing':'linear','speed':'normal','type':'sequence','timeout':2000,'containerheight':'auto','runningclass':'innerFade','children':null,'cancelLink':'.cancel','pauseLink':'.pause','prevLink':'.prev','nextLink':'.next','indexContainer':null,'currentItemContainer':null,'totalItemsContainer':null};if(options){$.extend(settings,options);}
var elements=(settings.children===null)?$(container).children():$(container).children(settings.children);if(elements.length>1){$.innerFadeControls(container,elements,settings);$.innerFadeCancel(container,settings);$(container).css({'position':'relative','height':settings.containerheight}).addClass(settings.runningclass);if(settings.indexContainer){$.innerFadeIndex(container,elements,settings);};for(var i=0;i<elements.length;i++){$(elements[i]).css('z-index',String(elements.length-i)).css('position','absolute').hide();}
var current='';var last='';if(settings.type=="random"){last=Math.floor(Math.random()*elements.length);do{current=Math.floor(Math.random()*elements.length);}while(last==current);$.innerFade.next(container,elements,settings,current,last);$(elements[last]).show();}else if(settings.type=='random_start'){settings.type='sequence';current=Math.floor(Math.random()*(elements.length));$.innerFade.next(container,elements,settings,(current+1)%elements.length,current);$(elements[current]).show();}else{current=0;last=elements.length-1;$.innerFade.next(container,elements,settings,current,last);$(elements[0]).show();}
if(settings.currentItemContainer){$.currentItem(current,settings);};if(settings.totalItemsContainer){$.totalItems(elements,settings);};$.innerFadePause(container,elements,settings);}};$.innerFadeFade=function(container,elements,settings,current,last){var buildControls=function(){if(settings.nextLink||settings.prevLink){$.innerFadeControls(container,elements,settings);}};if(settings.animationtype=='slide'){$(elements[last]).slideUp(settings.speed);$(elements[current]).slideDown(settings.speed,function(){buildPreviousNext();});}else if(settings.animationtype=='slideOver'){var itemWidth=$(elements[0]).width();$(container).css({'overflow':'hidden'});$(elements[last]).css({'left':'0px','position':'absolute','right':'auto','top':'0px'});$(elements[current]).css({'left':'auto','position':'absolute','right':'-'+itemWidth+'px','top':'0px'}).show();$(elements[last]).animate({'left':'-'+itemWidth+'px'},settings.speed,settings.easing,function(){$(this).hide();});$(elements[current]).animate({'right':'0px'},settings.speed,settings.easing,function(){buildControls();});}else{$(elements[last]).fadeOut(settings.speed);$(elements[current]).fadeIn(settings.speed,function(){buildControls();});}
if(settings.currentItemContainer){$.currentItem(current,settings);};if(settings.indexContainer){$.updateIndexes(container,elements,settings,current);};};$.innerFade.next=function(container,elements,settings,current,last){$.innerFadeFade(container,elements,settings,current,last);if(settings.type=="random"){last=current;while(current==last){current=Math.floor(Math.random()*elements.length);}}else{last=(last>current)?0:current;current=(current+1>=elements.length)?0:current+1;}
$(container).data("innerFadeTimeout",setTimeout((function(){$.innerFade.next(container,elements,settings,current,last);}),settings.timeout));};$.fn.innerFadeUnbind=function(){return this.each(function(index){$.innerFadeUnbind(this);});};$.innerFadeUnbind=function(container){clearTimeout($(container).data('innerFadeTimeout'));$(container).data('innerFadeTimeout',' ');};$.innerFadeControls=function(container,elements,settings){var previousSelector=(settings.prevLink)?settings.prevLink:'.innerFade-previous';var nextSelector=(settings.nextLink)?settings.nextLink:'.innerFade-next';var $currentElement=$('> :visible',$(container));var currentElementIndex=$(container).children().index($currentElement);var $nextElement=($currentElement.next().length>0)?$currentElement.next():$(container).children(':first');var nextElementIndex=$(container).children().index($nextElement);var $previousElement=($currentElement.prev().length>0)?$currentElement.prev():$(container).children(':last');var previousElementIndex=$(container).children().index($previousElement);var bindClick=function(selector,nextItem){$(selector).unbind().one('click',function(event){event.preventDefault();$.innerFadeUnbind(container);$.innerFadeFade(container,elements,settings,nextItem,currentElementIndex);});};bindClick(previousSelector,previousElementIndex);bindClick(nextSelector,nextElementIndex);};$.innerFadePause=function(container,elements,settings){$(settings.pauseLink).unbind().click(function(event){event.preventDefault();if($(container).data('innerFadeTimeout')!=' '){$.innerFadeUnbind(container);}else{var tag=$(container).children(':first').attr('tagName').toLowerCase();var nextItem='';var previousItem='';if(settings.type=="random"){previousItem=Math.floor(Math.random()*elements.length);do{nextItem=Math.floor(Math.random()*elements.length);}while(previousItem==nextItem);}else if(settings.type=="random_start"){previousItem=Math.floor(Math.random()*elements.length);nextItem=(previousItem+1)%elements.length;}else{previousItem=$(tag,$(container)).index($(tag+':visible',$(container)));nextItem=((previousItem+1)==elements.length)?0:previousItem+1;}
$.innerFade.next(container,elements,settings,nextItem,previousItem);}});};$.innerFadeCancel=function(container,settings){$(settings.cancelLink).unbind().click(function(event){event.preventDefault();$.innerFadeUnbind(container);});};$.updateIndexes=function(container,elements,settings,current){$(settings.indexContainer).children().removeClass('active');$('> :eq('+current+')',$(settings.indexContainer)).addClass('active');};$.handleLink=function(container,elements,settings,count,link){$(link).click(function(event){event.preventDefault();var $currentVisibleItem=$('> :visible',$(container));var currentItemIndex=$(elements).index($currentVisibleItem);$.innerFadeUnbind(container);if($('> :visible',$(container)).size()<=1){$.innerFadeFade(container,elements,settings,count,currentItemIndex);};});};$.generateIndexes=function(container,elements,settings){var $indexContainer=$(settings.indexContainer);for(var i=0;i<elements.length;i++){var $link=$('<li><a href="#">'+(i+1)+'</a></li>');$.handleLink(container,elements,settings,i,link);return $link;};};$.handleIndexes=function(container,elements,settings){var $indexContainer=$(settings.indexContainer);var $indexContainerChildren=$('> :visible',$indexContainer);if($indexContainerChildren.size()==elements.length){var count=elements.length;for(var i=0;i<count;i++){$('a',$indexContainer).click(function(event){event.preventDefault();});$.handleLink(container,elements,settings,i,$indexContainerChildren[i]);};}else{alert("There is a different number of items in the menu and slides. There needs to be the same number in both.\nThere are "+$indexContainerChildren.size()+" in the indexContainer.\nThere are "+elements.length+" in the slides container.");};};$.innerFadeIndex=function(container,elements,settings){var $indexContainer=$(settings.indexContainer);if($indexContainer.html().length<=0){$.generateIndexes(container,elements,settings);}else{$.handleIndexes(container,elements,settings);};};$.currentItem=function(current,settings){var $container=$(settings.currentItemContainer);$container.text(current+1);};$.totalItems=function(elements,settings){var $container=$(settings.totalItemsContainer);$container.text(elements.length);};})(jQuery);