(function(ptm){ ptm.extend(ptm.easing,{ easeinsine: function (x, t, b, c, d) { return -c * math.cos(t/d * (math.pi/2)) + c + b; } }); ptm.fn.xslider=function(settings){ settings=ptm.extend({},ptm.fn.xslider.sn.defaults,settings); this.each(function(){ var scrollobj=settings.scrollobj ? ptm(this).find(settings.scrollobj) : ptm(this).find("ul"), viewedsize=settings.viewedsize || (settings.dir=="h" ? scrollobj.parent().width() : scrollobj.parent().height()),//length of the wrapper visible; scrollunits=scrollobj.find("li"),//units to move; unitlen=settings.unitlen || (settings.dir=="h" ? scrollunits.eq(0).outerwidth() : scrollunits.eq(0).outerheight()), unitdisplayed=settings.unitdisplayed,//units num displayed; numtomove=settings.numtomove > unitdisplayed ? unitdisplayed : settings.numtomove, scrollobjsize=settings.scrollobjsize || scrollunits.length*unitlen,//length of the scrollobj; offset=0,//max width to move; offsetnow=0,//scrollobj now offset; movelength=unitlen*numtomove, pos=settings.dir=="h" ? "left" : "top", moving=false,//moving now?; btnright=ptm(this).find("a.aright"), btnleft=ptm(this).find("a.aleft"); btnright.unbind("click"); btnleft.unbind("click"); settings.dir=="h" ? scrollobj.css("left","0px") : scrollobj.css("top","0px"); if(scrollobjsize>viewedsize){ if(settings.loop=="cycle"){ btnleft.removeclass("agrayleft"); if(scrollunits.length<2*numtomove+unitdisplayed-numtomove){ scrollobj.find("li").clone().appendto(scrollobj); } }else{ btnleft.addclass("agrayleft"); offset=scrollobjsize-viewedsize; } btnright.removeclass("agrayright"); }else{ btnleft.addclass("agrayleft"); btnright.addclass("agrayright"); } btnleft.click(function(){ if(ptm(this).is("[class*='agrayleft']")){return false;} if(!moving){ moving=true; if(settings.loop=="cycle"){ scrollobj.find("li:gt("+(scrollunits.length-numtomove-1)+")").prependto(scrollobj); scrollobj.css(pos,"-"+movelength+"px"); ptm.fn.xslider.sn.animate(scrollobj,0,settings.dir,settings.speed,function(){moving=false;}); }else{ offsetnow-=movelength; if(offsetnow>unitlen*unitdisplayed-viewedsize){ ptm.fn.xslider.sn.animate(scrollobj,-offsetnow,settings.dir,settings.speed,function(){moving=false;}); }else{ ptm.fn.xslider.sn.animate(scrollobj,0,settings.dir,settings.speed,function(){moving=false;}); offsetnow=0; ptm(this).addclass("agrayleft"); } btnright.removeclass("agrayright"); } } return false; }); btnright.click(function(){ if(ptm(this).is("[class*='agrayright']")){return false;} if(!moving){ moving=true; if(settings.loop=="cycle"){ var callback=function(){ scrollobj.find("li:lt("+numtomove+")").appendto(scrollobj); scrollobj.css(pos,"0px"); moving=false; } ptm.fn.xslider.sn.animate(scrollobj,-movelength,settings.dir,settings.speed,callback); }else{ offsetnow+=movelength; if(offsetnow