/**
 * jQuery banner slideshow plugin
 * This jQuery plugin was build by Mathew Johnson.
 * @name jquery.banner.js
 * @author Mathew Johnson - http://www.mathewjohnson.com
 * @version 0.2
 * @date November, 2011
 * @category jQuery plugin
 * @copyright (c) 2010 Mathew Johnson (www.mathewjohnson.com)
 * @licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Australia License - http://creativecommons.org/licenses/by-nc-nd/3.0/au/
 */
(function($){$.fn.bannerSlideshow=function(settings){settings=jQuery.extend({timeToShowEachBanner:10000},settings);return this.each(function(){var $container=$(this);var bannerLoadedArray=[];var bannerImgSrcArray=[];var activeItem=0;var containerWidth=$container.innerWidth();var containerHeight=$container.innerHeight();var slideShowInterval=false;var imgPreloader=new Image();var loadingBanner=-1;var firstImgLoaded=0;var firstImgCheckInt=false;var $firstImg;$container.append('<div class="loading"><div class="inner"></div></div>');$container.append('<div class="nav"></div>');var $navA=$container.find('.nav a');var $loadingAnim=$container.find('.loading');$container.find('.loading, .loading .inner, .banner').css({'width':containerWidth,'height':containerHeight});$container.find('.banner img').each(function(index){bannerLoadedArray.push(0);bannerImgSrcArray.push((this.src!=""?this.src:this.name));if(index==0){$firstImg=$(this).load(function(){_first_img_loaded();});}else{if(this.src!=""){this.name=this.src;this.src="";};}});$container.find('.banner').each(function(index){var thisZ;if(index>0){thisZ=1999-index;}else{thisZ=2001;}$(this).css({'z-index':thisZ});});var _setup_z_index=function(wItem){$container.find('.banner').each(function(){$(this).css({'z-index':$(this).css('z-index')-1});});$container.find('.banner:eq('+wItem+')').each(function(index){$(this).find('img').attr('src',bannerImgSrcArray[wItem]);$(this).css({'z-index':2001,marginLeft:(0-containerWidth)}).show();});};var _show_banner=function(wItem){imgPreloader.onload=function(){};loadingBanner=-1;$loadingAnim.hide();_setup_z_index(wItem);$container.find('.banner:eq('+wItem+')').each(function(){$(this).animate({marginLeft:0},800,'easeOutQuart');});nextItem=wItem+1;if(nextItem>bannerLoadedArray.length-1){nextItem=0;}_preload_banner(nextItem,0);};var _load_banner=function(wItem){$loadingAnim.show();_setup_z_index(wItem);_preload_banner(wItem,1);};var _preload_banner=function(wItem,autoShowAfter){if(loadingBanner!=wItem){imgPreloader.onload=function(){};imgPreloader=new Image();if(autoShowAfter==1){imgPreloader.onload=function(){for(i=0;i<bannerImgSrcArray.length;i++){if(bannerImgSrcArray[i]==imgPreloader.src){bannerLoadedArray[i]=1;break;};}_show_banner(activeItem);imgPreloader.onload=function(){};};}else{imgPreloader.onload=function(){for(i=0;i<bannerImgSrcArray.length;i++){if(bannerImgSrcArray[i]==imgPreloader.src){bannerLoadedArray[i]=1;break;};}imgPreloader.onload=function(){};};}imgPreloader.src=bannerImgSrcArray[wItem];bannerImgSrcArray[wItem]=imgPreloader.src;loadingBanner=wItem;}};var _view_banner=function(wItem){if(wItem!=activeItem){$container.find('.nav a:eq('+activeItem+')').removeClass('sel');$container.find('.nav a:eq('+wItem+')').addClass('sel');if(bannerLoadedArray[wItem]==1){_show_banner(wItem);}else{_load_banner(wItem);}activeItem=wItem;}};var _slide_show_banner=function(){nextItem=activeItem+1;if(nextItem>bannerLoadedArray.length-1){nextItem=0;}clearInterval(slideShowInterval);if(bannerLoadedArray[nextItem]==1){_view_banner(nextItem);slideShowInterval=setInterval(_slide_show_banner,settings.timeToShowEachBanner);}else{_preload_banner(nextItem,0);slideShowInterval=setInterval(_slide_show_banner,100);}};var _check_first_img_loaded=function(){if($firstImg.attr('complete')==true||$firstImg.complete==true){_first_img_loaded();}};var _first_img_loaded=function(){bannerLoadedArray[0]=1;_preload_banner(1,0);slideShowInterval=setInterval(_slide_show_banner,settings.timeToShowEachBanner);clearInterval(firstImgCheckInt);firstImgCheckInt=false;};if(bannerLoadedArray.length>1){firstImgCheckInt=setInterval(_check_first_img_loaded,100);}var _click_banner=function(wItem){loadingBanner=-1;if(firstImgCheckInt!=false){clearInterval(firstImgCheckInt);firstImgCheckInt=false;}if(slideShowInterval!=false){clearInterval(slideShowInterval);slideShowInterval=false;}_view_banner(wItem);return false;};if(bannerLoadedArray.length>1){navList='<ul>';for(i=0;i<bannerLoadedArray.length;i++){navList+='<li><a href="javascript:;"'+(i==0?' class="sel"':'')+'>'+(i+1)+'</a></li>';}navList+='</ul>';$container.find('.nav').append(navList);$container.find('.nav a').each(function(index){var wIndex=index;$(this).click(function(){_click_banner(wIndex);});});}});};})(jQuery);

