/*
 * Etalented 9/2010
 *
 ** Gallery jQuery plugin
 ** requires: jquery.carouFredSel.js
 */
(function(a){a.fn.gallery=function(d){var m=a.extend({viewerContainer:".carousel",viewerItemsParent:".items",viewerVisibleItems:3,thumbsContainer:null,thumbsItemsParent:null,thumbsVisibleItems:15,useHighlighter:true,viewerScrollDuration:1500,thumbsScrollDuration:1500,withPaging:true,withNav:true,useAutoScroll:false,useLazyLoad:true,viewerLazyLoadPath:">li>img",viewerLazyLoadImgSrc:"../images/ajax-loader.gif",thumbsLazyLoadPath:">li>img",thumbsLazyLoadImgSrc:"../images/ajax-loader.gif",lang:{"Previous page":"Previous page","Next page":"Next page"}},d);var g=this,s=false,r=false,b=null,t=null,c=null,f=null,i=null,q=null,k=null,j=null,u=null,n="number",h="object",l="string";function e(){q=a(m.viewerContainer,g).eq(0);i=a(m.viewerItemsParent,q).eq(0);c=a(m.thumbsContainer,g).eq(0);t=a(m.thumbsItemsParent,c).eq(0);$viewerLazyLoadImgs=a(m.viewerLazyLoadPath,i);$thumbsLazyLoadImgs=a(m.thumbsLazyLoadPath,t);f=a(">*",i);b=a(">*",t);s=(q.length==1||i.length==1)?true:false;r=(c.length==1||t.length==1)?true:false;if(!s){return g}if(m.useLazyLoad){a("<img />").attr("src",m.viewerLazyLoadImgSrc);$viewerLazyLoadImgs.each(function(){a(this).css("display","none").data("src",a(this).attr("src")).addClass("lazyLoad").removeAttr("width").removeAttr("height").attr("src",m.viewerLazyLoadImgSrc).show()});var v=[];for(var x=0;x<m.viewerVisibleItems;x++){v.push(f.eq(x))}p(v)}if(r){if(f.length!=b.length){return false}if(m.useLazyLoad){a("<img />").attr("src",m.thumbsLazyLoadImgSrc);$thumbsLazyLoadImgs.each(function(){a(this).hide().data("src",a(this).attr("src")).addClass("lazyLoad").removeAttr("width").removeAttr("height").attr("src",m.thumbsLazyLoadImgSrc).show()});var v=[];for(var x=0;x<m.thumbsVisibleItems;x++){v.push(b.eq(x))}p(v)}if(m.useHighlighter&&(b.length>m.thumbsVisibleItems)){a('<div id="highlighter">').appendTo(a(">.wrapper",c))}if(m.withNav){j=a('<ul class="nav"><li title="'+m.lang["Previous page"]+'" class="previous">'+m.lang["Previous page"]+'</li><li title="'+m.lang["Next page"]+'" class="next">'+m.lang["Next page"]+"</li>").prependTo(c);if(b.length>m.thumbsVisibleItems){a(".next, .previous",j).addClass("active").css("cursor","pointer")}}b.each(function(){a(this).data("index",a(this).index())})}if(m.withNav){k=a('<ul class="nav"><li title="'+m.lang["Previous page"]+'" class="previous">'+m.lang["Previous page"]+'</li><li title="'+m.lang["Next page"]+'" class="next">'+m.lang["Next page"]+"</li>").prependTo(q);if(f.length>m.viewerVisibleItems){a(".next, .previous",k).addClass("active").css("cursor","pointer")}}if(m.withPaging){a('<ol class="paging">').prependTo(q)}f.each(function(){a(this).data("index",a(this).index())});var w={auto:m.useAutoScroll,visibleItems:m.viewerVisibleItems,scroll:{duration:m.viewerScrollDuration},height:q.height(),width:q.width()};w.scroll.onBefore=function(B,A,z){if(m.useLazyLoad){p(A)}if(r){if(typeof A[0]==h){var y=a(A[0]).data("index");if(typeof y==n){t.trigger("scrollTo",[y,0])}}}};if(m.withNav){w.next={button:a(".next",k),duration:m.viewerScrollDuration+((m.viewerVisibleItems/100)*m.viewerScrollDuration)};w.prev={button:a(".previous",k),duration:m.viewerScrollDuration+((m.viewerVisibleItems/100)*m.viewerScrollDuration)}}if(m.withPaging){w.pagination={container:a(".paging",q),anchorBuilder:function(y){return"<li>"+y+"</li>"}}}i.carouFredSel(w);if(r){w={auto:false,visibleItems:m.thumbsVisibleItems,scroll:{duration:m.thumbsScrollDuration}};w.scroll.onBefore=function(A,z,y){if(m.useLazyLoad){p(z)}};if(m.withNav){w.next={button:a(".next",j),duration:m.thumbsScrollDuration+((m.thumbsVisibleItems/100)*m.thumbsScrollDuration)};w.prev={button:a(".previous",j),duration:m.thumbsScrollDuration+((m.thumbsVisibleItems/100)*m.thumbsScrollDuration)}}t.carouFredSel(w);b.css("cursor","pointer").click(function(){var y=a(this).data("index");if(typeof y==n){i.trigger("scrollTo",[y,0])}})}}function p(v){var x,w;a(v).each(function(){x=this;w=a(".lazyLoad",x).eq(0);if(w.size()==1){a("<img />").bind("load",function(){var z=a(this).data("parent");var y=a(".lazyLoad",z).eq(0);y.fadeOut(300,function(){a(this).removeClass("lazyLoad").attr("src",a(this).data("src")).fadeIn(500)})}).data("parent",x).attr("src",w.data("src"))}})}function o(v){if(window.console&&window.console.log){window.console.log(v)}}return this.each(e)}})(jQuery);
