/* *       Easy Slider 1.5 - jQuery plugin *      written by Alen Grakalic       *      http://cssglobe.com/post/4004/easy-slider-15-the-easiest-jquery-plugin-for-sliding * *      Copyright (c) 2009 Alen Grakalic (http://cssglobe.com) *      Dual licensed under the MIT (MIT-LICENSE.txt) *      and GPL (GPL-LICENSE.txt) licenses. * *      Built for jQuery library *      http://jquery.com * */ /* *      markup example for $("#slider").easySlider(); *       *       <div id="slider"> *            <ul> *                  <li><img src="images/01.jpg" alt="" /></li> *                  <li><img src="images/02.jpg" alt="" /></li> *                  <li><img src="images/03.jpg" alt="" /></li> *                  <li><img src="images/04.jpg" alt="" /></li> *                  <li><img src="images/05.jpg" alt="" /></li> *            </ul> *      </div> * */(function($) {      $.fn.easySlider = function(options){                    // default configuration properties            var defaults = {                                    prevId:             'prevBtn',                  prevText:             '',                  nextId:             'nextBtn',                        nextText:             '',                  controlsShow:      true,                  controlsBefore:      '',                  controlsAfter:      '',                        controlsFade:      true,                  firstId:             'firstBtn',                  firstText:             'First',                  firstShow:            false,                  lastId:             'lastBtn',                        lastText:             'Last',                  lastShow:            false,                                          vertical:            false,                  speed:                   1500,                  auto:                  false,                  pause:                 500,                  continuous:            false            };                         var options = $.extend(defaults, options);                                      this.each(function() {                    var obj = $(this);                                           var s = $("li", obj).length;                  var w = $("li", obj).width();                   var h = $("li", obj).height();                   obj.width(w);                   obj.height(h);                   obj.css("overflow","hidden");                  var ts = s-1;                  var t = 0;                  $("ul", obj).css('width',s*w);                                    if(!options.vertical) $("li", obj).css('float','left');                                    if(options.controlsShow){                        var html = options.controlsBefore;                        if(options.firstShow) html += '<span id="'+ options.firstId +'"><a href=\"javascript:void(0);\">'+ options.firstText +'</a></span>';                        html += ' <span id="'+ options.prevId +'"><a href=\"javascript:void(0);\">'+ options.prevText +'</a></span>';                        html += ' <span id="'+ options.nextId +'"><a href=\"javascript:void(0);\">'+ options.nextText +'</a></span>';                        if(options.lastShow) html += ' <span id="'+ options.lastId +'"><a href=\"javascript:void(0);\">'+ options.lastText +'</a></span>';                        html += options.controlsAfter;                                                            $(obj).after(html);                                                                              };                        $("a","#"+options.nextId).click(function(){                                    animate("next",true);                  });                  $("a","#"+options.prevId).click(function(){                                    animate("prev",true);                                          });                        $("a","#"+options.firstId).click(function(){                                    animate("first",true);                  });                                          $("a","#"+options.lastId).click(function(){                                    animate("last",true);                                          });                                                function animate(dir,clicked){                        var ot = t;                                                switch(dir){                              case "next":                                    t = (ot>=ts) ? (options.continuous ? 0 : ts) : t+1;                                                                        break;                               case "prev":                                    t = (t<=0) ? (options.continuous ? ts : 0) : t-1;                                    break;                               case "first":                                    t = 0;                                    break;                               case "last":                                    t = ts;                                    break;                               default:                                    break;                         };                                                      var diff = Math.abs(ot-t);                        var speed = diff*options.speed;                                                            if(!options.vertical) {                              p = (t*w*-1);                              $("ul",obj).animate(                                    { marginLeft: p },                                     speed                              );                                                } else {                              p = (t*h*-1);                              $("ul",obj).animate(                                    { marginTop: p },                                     speed                              );                                                      };                                                if(!options.continuous && options.controlsFade){                                                            if(t==ts){                                    $("a","#"+options.nextId).hide();                                    $("a","#"+options.lastId).hide();                              } else {                                    $("a","#"+options.nextId).show();                                    $("a","#"+options.lastId).show();                                                            };                              if(t==0){                                    $("a","#"+options.prevId).hide();                                    $("a","#"+options.firstId).hide();                              } else {                                    $("a","#"+options.prevId).show();                                    $("a","#"+options.firstId).show();                              };                                                      };                                                                        if(clicked) clearTimeout(timeout);                        if(options.auto && dir=="next" && !clicked){;                              timeout = setTimeout(function(){                                    animate("next",false);                              },diff*options.speed+options.pause);                        };                                          };                  // init                  var timeout;                  if(options.auto){;                        timeout = setTimeout(function(){                              animate("next",false);                        },options.pause);                  };                                          if(!options.continuous && options.controlsFade){                                                      $("a","#"+options.prevId).hide();                        $("a","#"+options.firstId).hide();                                          };                                                      });              };})(jQuery);
