// jquery.delta.ui.slider.js

(function($){if(typeof $.delta=='undefined'){$.delta={};}
if(typeof $.delta.ui=='undefined'){$.delta.ui={};}
$.delta.ui.slider=function(contents,width,height,options){var settings=$.extend({sliderID:'',sliderClass:'',zIndex:0,transition:'fadeIn',interval:2000,duration:400,easing:'swing'},options);var $slider=$('<div/>',{"id":settings.sliderID,"class":settings.sliderClass});var $transitions=$.delta.ui.slider.transitions;var $contents;var contentsHTML='';var currentPage=1;var totalPages=contents.length;var playSlide;var isSlidePlay=false;var isAnimated=false;for(var i=0;i<contents.length;i++){contentsHTML+='<div>'+contents[i]+'</div>';}
$slider.css({position:'relative',width:width,height:height,overflow:'hidden'}).append(contentsHTML);$contents=$slider.children('div');$contents.css({position:'absolute',width:width,height:height,top:'0%',left:'0%'}).not(':first').css({display:'none'});$transitions.bind('init',onInitTransition);$transitions.bind('complete',onCompleteTransition);function onInitTransition(evt){isAnimated=true;$slider.trigger('slidestart');}
function onCompleteTransition(evt){isAnimated=false;$slider.trigger('slideend');}
function slideLoop(){var $currentPage,$nextPage;var nextPage=currentPage+1;if(nextPage>totalPages){nextPage=1;}
$currentPage=$contents.eq(currentPage-1);$nextPage=$contents.eq(nextPage-1);currentPage=nextPage;$transitions[settings.transition]($currentPage,$nextPage,settings,false);playSlide=setTimeout(slideLoop,settings.interval);}
$.extend($slider,{slidePlay:function(){isSlidePlay=true;playSlide=setTimeout(slideLoop,settings.interval);},slideStop:function(){clearTimeout(playSlide);},generateSliderNav:function(options){var sliderNavSettings=$.extend({sliderNavID:'',sliderNavClass:'',prevBtnID:'',prevBtnClass:'',nextBtnID:'',nextBtnClass:''},options);var sliderNavHTML='<div class="'+sliderNavSettings.sliderNavClass+'" id="'+sliderNavSettings.sliderNavID+'"></div>';var prevBtnHTML='<div class="'+sliderNavSettings.prevBtnClass+'" id="'+sliderNavSettings.prevBtnID+'">Prev</div>';var nextBtnHTML='<div class="'+sliderNavSettings.nextBtnClass+'" id="'+sliderNavSettings.nextBtnID+'">Next</div>';var $sliderNav=$(sliderNavHTML);var $prevBtn=$(prevBtnHTML);var $nextBtn=$(nextBtnHTML);$prevBtn.bind('click',onClickPrev);$nextBtn.bind('click',onClickNext);$sliderNav.append($prevBtn,$nextBtn);function onClickPrev(evt){if(isAnimated){return;}
var $currentPage,$nextPage;var nextPage=currentPage-1;if(isSlidePlay){$slider.slideStop();}
if(nextPage<1){nextPage=totalPages;}
$currentPage=$contents.eq(currentPage-1);$nextPage=$contents.eq(nextPage-1);currentPage=nextPage;$transitions.bind('complete',onComplete);$transitions[settings.transition]($currentPage,$nextPage,settings,true);function onComplete(){if(isSlidePlay){$slider.slidePlay();}
$transitions.unbind('complete',onComplete);}}
function onClickNext(evt){if(isAnimated){return;}
var $currentPage,$nextPage;var nextPage=currentPage+1;if(isSlidePlay){$slider.slideStop();}
if(nextPage>totalPages){nextPage=1;}
$currentPage=$contents.eq(currentPage-1);$nextPage=$contents.eq(nextPage-1);currentPage=nextPage;$transitions.bind('complete',onComplete);$transitions[settings.transition]($currentPage,$nextPage,settings,false);function onComplete(){if(isSlidePlay){$slider.slidePlay();}
$transitions.unbind('complete',onComplete);}}
return $sliderNav;},generatePagination:function(options){var paginationSettings=$.extend({paginationID:'',paginationClass:'',pageBtnIDPrefix:'',pageBtnClass:''},options);var paginationHTML='<div class="'+paginationSettings.paginationClass+'" id="'+paginationSettings.paginationID+'"></div>';var pageBtnHTML='';var $pagination=$(paginationHTML);var $pageBtn;for(var i=0;i<contents.length;i++){pageBtnHTML+='<div class="'+paginationSettings.pageBtnClass+'"><a href="#page'+(i+1)+'">page'+(i+1)+'</a></div>';}
$pageBtn=$(pageBtnHTML);$pageBtn.filter(':first').addClass('current')
$slider.bind('slidestart',onSlideStart);$pageBtn.children('a').bind('click',onClickBtn);$pagination.append($pageBtn);function onSlideStart(evt){$pageBtn.filter('.current').removeClass('current').end().eq(currentPage-1).addClass('current').end();}
function onClickBtn(evt){evt.preventDefault();if(isAnimated){return false;}
var $currentTarget=$(evt.currentTarget);var $currentPage,$nextPage;var nextPage=$currentTarget.attr('href').replace(/.*#page/,'')*1;var reverse=false;if(nextPage==currentPage){return false;}
else if(nextPage<currentPage){reverse=true;}
if(isSlidePlay){$slider.slideStop();}
$currentPage=$contents.eq(currentPage-1);$nextPage=$contents.eq(nextPage-1);currentPage=nextPage;$transitions.bind('complete',onComplete);$transitions[settings.transition]($currentPage,$nextPage,settings,reverse);function onComplete(){if(isSlidePlay){$slider.slidePlay();}
$transitions.unbind('complete',onComplete);}
return false;}
return $pagination;}});return $slider;};$.delta.ui.slider.transitions=$.extend($({}),{fadeIn:function($currentPage,$nextPage,settings,reverse){if(reverse){this.fadeOut($currentPage,$nextPage,settings);return;}
var that=this;$(that).trigger('init');$currentPage.css({zIndex:settings.zIndex});$nextPage.css({zIndex:settings.zIndex+1,display:'block',opacity:0}).animate({opacity:1},{duration:settings.duration,easing:settings.easing,complete:function(){$currentPage.css({display:'none'});$(that).trigger('complete');}});},fadeOut:function($currentPage,$nextPage,settings,reverse){if(reverse){this.fadeIn($currentPage,$nextPage,settings);return;}
var that=this;$(that).trigger('init');$currentPage.css({zIndex:settings.zIndex+1}).animate({opacity:0},{duration:settings.duration,easing:settings.easing,complete:function(){$currentPage.css({display:'none'});$(that).trigger('complete');}});$nextPage.css({opacity:1,zIndex:settings.zIndex,display:'block'});},scrollTop:function($currentPage,$nextPage,settings,reverse){if(reverse){this.scrollBottom($currentPage,$nextPage,settings);return;}
var that=this;$(that).trigger('init');$currentPage.animate({top:'-100%'},{duration:settings.duration,easing:settings.easing,complete:function(){$currentPage.css({display:'none'});}});$nextPage.css({top:'100%',display:'block'}).animate({top:'0%'},{duration:settings.duration,easing:settings.easing,complete:function(){$(that).trigger('complete');}});},scrollRight:function($currentPage,$nextPage,settings,reverse){if(reverse){this.scrollLeft($currentPage,$nextPage,settings);return;}
var that=this;$(that).trigger('init');$currentPage.animate({left:'100%'},{duration:settings.duration,easing:settings.easing,complete:function(){$currentPage.css({display:'none'});}});$nextPage.css({left:'-100%',display:'block'}).animate({left:'0%'},{duration:settings.duration,easing:settings.easing,complete:function(){$(that).trigger('complete');}});},scrollBottom:function($currentPage,$nextPage,settings,reverse){if(reverse){this.scrollTop($currentPage,$nextPage,settings);return;}
var that=this;$(that).trigger('init');$currentPage.animate({top:'100%'},{duration:settings.duration,easing:settings.easing,complete:function(){$currentPage.css({display:'none'});}});$nextPage.css({top:'-100%',display:'block'}).animate({top:'0%'},{duration:settings.duration,easing:settings.easing,complete:function(){$(that).trigger('complete');}});},scrollLeft:function($currentPage,$nextPage,settings,reverse){if(reverse){this.scrollRight($currentPage,$nextPage,settings);return;}
var that=this;$(that).trigger('init');$currentPage.animate({left:'-100%'},{duration:settings.duration,easing:settings.easing,complete:function(){$currentPage.css({display:'none'});}});$nextPage.css({left:'100%',display:'block'}).animate({left:'0%'},{duration:settings.duration,easing:settings.easing,complete:function(){$(that).trigger('complete');}});}});})(jQuery);
