/*
 * @name:     Gallery
 * @version:  0.4
 * @release:  2010-07-17 19:12:02
 * @type:     jQuery plugin
 * @author:   David Sklar
--------------------------------------- */

(function($){var Gallery=function(box,opts){var $this=box;var frame;var slider;var slide;var btn_prev;var btn_next;var w_frame;var w_slider;var count=0;var page=1;var pages=0;var timer;var status=true;var options=opts;var length=opts.length-1;$this.find('a').wrapAll('<div class="'+options.prefix+'frame"><div class="'+options.prefix+'slider"></div></div>');slide=$this.find('a').eq(0);count=$this.find('a').length;w_slider=slide.outerWidth(true)*count;h_slider=slide.outerHeight(true);w_frame=slide.outerWidth(true)*(length+1);pages=Math.ceil(count/(length+1));slider=$this.find('div.'+options.prefix+'slider');slider.width(w_slider).height(h_slider).css({padding:0,margin:0,position:'relative'});frame=$this.find('div.'+options.prefix+'frame');frame.width(w_frame).css({padding:0,margin:0,position:'relative',overflow:'hidden'});$this.append('<a href="" class="'+options.prefix+'prev"></a>').append('<a href="" class="'+options.prefix+'next"></a>');$this.find('.prev, .next').css({'opacity':0});$this.hover(function(){clearTimeout(timer);controlShow();},function(){timer=setTimeout(function(){controlHide()},1000);});$(options.area).hover(function(){clearTimeout(timer);controlShow();},function(){timer=setTimeout(function(){controlHide()},1000);});btn_prev=$this.find('a.'+options.prefix+'prev');btn_prev.addClass(options.css).bind('click',function(e){if(status&&page>1){rewind();status=false;}
e.preventDefault();});btn_next=$this.find('a.'+options.prefix+'next');btn_next.bind('click',function(e){if(status&&page<pages){forward();status=false;}
e.preventDefault();});var forward=function(){var x=slider.position().left-w_frame;page++;run(x);};var rewind=function(){var x=slider.position().left+w_frame;page--;run(x);};var run=function(x){slider.animate({'left':x+'px'},{queue:false,easing:options.easing,duration:options.duration,complete:function(){if(options.color.duration){if(page>1&&page<pages){btn_prev.stop().animate({'backgroundColor':options.color.live},{duration:options.color.duration,complete:function(){btn_prev.removeClass(options.css);}});btn_next.stop().animate({'backgroundColor':options.color.live},{duration:options.color.duration,complete:function(){btn_prev.removeClass(options.css);}});}else if(page==1){btn_prev.stop().animate({'backgroundColor':options.color.dead},{duration:options.color.duration,complete:function(){btn_prev.addClass(options.css);}});if(pages>1){btn_next.stop().animate({'backgroundColor':options.color.live},{duration:options.color.duration,complete:function(){btn_next.removeClass(options.css);}});}}else if(page==pages){btn_next.stop().animate({'backgroundColor':options.color.dead},{duration:options.color.duration,complete:function(){btn_next.addClass(options.css);}});if(pages>1){btn_prev.stop().animate({'backgroundColor':options.color.live},{duration:options.color.duration,complete:function(){btn_prev.removeClass(options.css);}});}}}else{if(page>1&&page<pages){btn_prev.removeClass(options.css);btn_next.removeClass(options.css);}else if(page==1){btn_prev.addClass(options.css);if(pages>1){btn_next.removeClass(options.css);}}else if(page==pages){btn_next.addClass(options.css);if(pages>1){btn_prev.removeClass(options.css);}}}
status=true;}});};function controlShow(){$this.find('.'+options.prefix+'prev, .'+options.prefix+'next').stop().animate({'opacity':1},300);};function controlHide(){$this.find('.'+options.prefix+'prev, .'+options.prefix+'next').stop().animate({'opacity':0},300);};};$.fn.gallery=function(options){var opts=$.extend({},{area:'#master',prefix:'ms-',length:3,easing:'swing',duration:500,css:'disabled',color:{live:'#000',dead:'#666',duration:300}},options);return this.each(function(){return new Gallery($(this),opts);});};})(jQuery);

