(function($){var $scrollTo=$.scrollTo=function(target,duration,settings){$scrollTo.window().scrollTo(target,duration,settings)};$scrollTo.defaults={axis:"y",duration:1};$scrollTo.window=function(){return $($.browser.safari?"body":"html")};$.fn.scrollTo=function(target,duration,settings){if(typeof duration=="object"){settings=duration;duration=0}settings=$.extend({},$scrollTo.defaults,settings);duration=duration||settings.speed||settings.duration;settings.queue=settings.queue&&settings.axis.length>1;if(settings.queue){duration/=2}settings.offset=both(settings.offset);settings.over=both(settings.over);return this.each(function(){var elem=this,$elem=$(elem),t=target,toff,attr={},win=$elem.is("html,body");switch(typeof t){case"number":case"string":if(/^([+-]=)?\d+(px)?$/.test(t)){t=both(t);break}t=$(t,this);case"object":if(t.is||t.style){toff=(t=$(t)).offset()}}$.each(settings.axis.split(""),function(i,axis){var Pos=axis=="x"?"Left":"Top",pos=Pos.toLowerCase(),key="scroll"+Pos,act=elem[key],Dim=axis=="x"?"Width":"Height",dim=Dim.toLowerCase();if(toff){attr[key]=toff[pos]+(win?0:act-$elem.offset()[pos]);if(settings.margin){attr[key]-=parseInt(t.css("margin"+Pos))||0;attr[key]-=parseInt(t.css("border"+Pos+"Width"))||0}attr[key]+=settings.offset[pos]||0;if(settings.over[pos]){attr[key]+=t[dim]()*settings.over[pos]}}else{attr[key]=t[pos]}if(/^\d+$/.test(attr[key])){attr[key]=attr[key]<=0?0:Math.min(attr[key],max(Dim))}if(!i&&settings.queue){if(act!=attr[key]){animate(settings.onAfterFirst)}delete attr[key]}});animate(settings.onAfter);function animate(callback){$elem.animate(attr,duration,settings.easing,callback&&function(){callback.call(this,target)})}function max(Dim){var el=win?$.browser.opera?document.body:document.documentElement:elem;return el["scroll"+Dim]-el["client"+Dim]}})};function both(val){return typeof val=="object"?val:{top:val,left:val}}})(jQuery);
