/*
 * http://ejohn.org/blog/simple-javascript-inheritance/
 * Inspired by base2 and Prototype
 */
(function(){var a=false,b=/xyz/.test(function(){xyz;
})?/\b_super\b/:/.*/;
this.Class=function(){};
Class.extend=function(g){var f=this.prototype;
a=true;
var e=new this();
a=false;
for(var d in g){e[d]=typeof g[d]=="function"&&typeof f[d]=="function"&&b.test(g[d])?(function(h,i){return function(){var k=this._super;
this._super=f[h];
var j=i.apply(this,arguments);
this._super=k;
return j;
};
})(d,g[d]):g[d];
}function c(){if(!a&&this.init){this.init.apply(this,arguments);
}}c.prototype=e;
e.constructor=c;
c.extend=arguments.callee;
return c;
};
})();
jQuery.cookie=function(b,j,m){if(typeof j!="undefined"){m=m||{};
if(j===null){j="";
m.expires=-1;
}var e="";
if(m.expires&&(typeof m.expires=="number"||m.expires.toUTCString)){var f;
if(typeof m.expires=="number"){f=new Date();
f.setTime(f.getTime()+(m.expires*24*60*60*1000));
}else{f=m.expires;
}e="; expires="+f.toUTCString();
}var l=m.path?"; path="+m.path:"";
var g=m.domain?"; domain="+m.domain:"";
var a=m.secure?"; secure":"";
document.cookie=[b,"=",encodeURIComponent(j),e,l,g,a].join("");
}else{var d=null;
if(document.cookie&&document.cookie!=""){var k=document.cookie.split(";");
for(var h=0;
h<k.length;
h++){var c=jQuery.trim(k[h]);
if(c.substring(0,b.length+1)==(b+"=")){d=decodeURIComponent(c.substring(b.length+1));
d=decodeURIComponent(d);
break;
}}}return d;
}};
/*
 * gettext for jQuery
 * 
 * Copyright (c) 2008 Sabin Iacob (m0n5t3r) <iacobs@m0n5t3r.info>
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details. 
 *
 * @license http://www.gnu.org/licenses/gpl.html 
 * @project jquery.gettext
 */
(function($){$.gt=$.gt||{};
$.extend($.gt,{messages:{},lang:"C",setLang:function(code){$.gt.lang=typeof code=="string"&&code!=" "?code:"C";
},pl_re:/^Plural-Forms:\s*nplurals\s*=\s*(\d+);\s*plural\s*=\s*([^a-zA-Z0-9\$]*([a-zA-Z0-9\$]+).+)$/m,plural:function(n){return n!=1;
},load:function(){$("link[rel=gettext]").each(function(){var lang=this.lang;
$.get(this.href,function(data){$.gt.messages[lang]=$.gt.messages[lang]||{};
try{var messages=eval("("+data+")");
}catch(e){return;
}$.extend($.gt.messages[lang],messages);
var plural=$.gt.pl_re.exec($.gt.messages[lang][""]);
if(plural){$.gt.messages[lang][""]="";
var expr=plural[2];
var np=plural[1];
var v=plural[3];
try{var fn=eval("(function("+v+") {return "+expr+";})");
}catch(e){return;
}$.gt.plural=fn;
}});
});
$.gt.setLang($("html").attr("lang"));
},gettext:function(msgstr,params){var lang=$.gt.lang;
if(lang=="C"||typeof $.gt.messages[lang]=="undefined"){return msgstr;
}var trans=$.gt.messages[lang][msgstr];
if(typeof trans=="string"){}else{if(typeof trans=="object"&&trans.constructor==Array){trans=trans[0];
}else{trans=msgstr;
}}if(params){for(var key in params){trans=trans.replace(key,params[key]);
}}return trans;
},ngettext:function(){var lang=$.gt.lang;
var argv=Array.apply(null,arguments);
var cnt=argv[argv.length-1];
var msgstr=argv[0];
var plurals=argv.slice(0,-1);
var trans=plurals;
if(lang!="C"&&typeof $.gt.messages[lang]!="undefined"){trans=$.gt.messages[lang][msgstr];
}if(typeof trans=="string"){return trans;
}else{if(typeof trans=="object"&&trans.constructor==Array){var plural=$.gt.plural(cnt);
if(typeof plural=="boolean"&&plurals.length<=2){plural=plural?1:0;
}if(typeof plural=="number"&&plural<trans.length){return trans[plural];
}}}return msgstr;
}});
$("document").ready($.gt.load);
})(jQuery);
if(typeof _=="undefined"){var _=jQuery.gt.gettext;
}if(typeof n_=="undefined"){var n_=jQuery.gt.ngettext;
/*
 * Copyright (c) 2006-2007 Mathias Bank (http://www.mathias-bank.de)
 * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) 
 * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
 * 
 * Version 2.1
 * 
 */
}jQuery.fn.extend({getUrlParam:function(f){f=escape(unescape(f));
var e=new Array();
var b=null;
if($(this).attr("nodeName")=="#document"){if(window.location.search.search(f)>-1){b=window.location.search.substr(1,window.location.search.length).split("&");
}}else{if($(this).attr("src")){var d=$(this).attr("src");
if(d.indexOf("?")>-1){var a=d.substr(d.indexOf("?")+1);
b=a.split("&");
}}else{if($(this).attr("href")){var d=$(this).attr("href");
if(d.indexOf("?")>-1){var a=d.substr(d.indexOf("?")+1);
b=a.split("&");
}}else{return null;
}}}if(b==null){return null;
}for(var c=0;
c<b.length;
c++){if(escape(unescape(b[c].split("=")[0]))==f){var g=decodeURIComponent(b[c].split("=")[1].replace(/\+/g," "));
e.push(g);
}}if(e.length==0){return null;
}else{if(e.length==1){return e[0];
}else{return e;
}}},getAnchor:function(){if(window.location.href.indexOf("#")!=-1){var b=window.location.href;
var a=window.location.href.split("#");
if(a[1]){return a[1];
}}}});
/*
 * jQuery Form Plugin
 * version: 2.36 (07-NOV-2009)
 * @requires jQuery v1.2.6 or later
 *
 * Examples and documentation at: http://malsup.com/jquery/form/
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 */
(function(b){b.fn.ajaxSubmit=function(t){if(!this.length){a("ajaxSubmit: skipping submit process - no element selected");
return this;
}if(typeof t=="function"){t={success:t};
}var e=b.trim(this.attr("action"));
if(e){e=(e.match(/^([^#]+)/)||[])[1];
}e=e||window.location.href||"";
t=b.extend({url:e,type:this.attr("method")||"GET",iframeSrc:/^https/i.test(window.location.href||"")?"javascript:false":"about:blank"},t||{});
var v={};
this.trigger("form-pre-serialize",[this,t,v]);
if(v.veto){a("ajaxSubmit: submit vetoed via form-pre-serialize trigger");
return this;
}if(t.beforeSerialize&&t.beforeSerialize(this,t)===false){a("ajaxSubmit: submit aborted via beforeSerialize callback");
return this;
}var o=this.formToArray(t.semantic);
if(t.data){t.extraData=t.data;
for(var f in t.data){if(t.data[f] instanceof Array){for(var g in t.data[f]){o.push({name:f,value:t.data[f][g]});
}}else{o.push({name:f,value:t.data[f]});
}}}if(t.beforeSubmit&&t.beforeSubmit(o,this,t)===false){a("ajaxSubmit: submit aborted via beforeSubmit callback");
return this;
}this.trigger("form-submit-validate",[o,this,t,v]);
if(v.veto){a("ajaxSubmit: submit vetoed via form-submit-validate trigger");
return this;
}var d=b.param(o);
if(t.type.toUpperCase()=="GET"){t.url+=(t.url.indexOf("?")>=0?"&":"?")+d;
t.data=null;
}else{t.data=d;
}var u=this,l=[];
if(t.resetForm){l.push(function(){u.resetForm();
});
}if(t.clearForm){l.push(function(){u.clearForm();
});
}if(!t.dataType&&t.target){var r=t.success||function(){};
l.push(function(j){b(t.target).html(j).each(r,arguments);
});
}else{if(t.success){l.push(t.success);
}}t.success=function(q,k){for(var n=0,j=l.length;
n<j;
n++){l[n].apply(t,[q,k,u]);
}};
if(typeof t.error=="function"){var m=t.error;
t.error=function(n,j,k){m(j||k,u);
};
}var c=b("input:file",this).fieldValue();
var s=false;
for(var i=0;
i<c.length;
i++){if(c[i]){s=true;
}}var h=false;
if((c.length&&t.iframe!==false)||t.iframe||s||h){if(t.closeKeepAlive){b.get(t.closeKeepAlive,p);
}else{p();
}}else{b.ajax(t);
}this.trigger("form-submit-notify",[this,t]);
return this;
function p(){var x=u[0];
if(b(":input[name=submit]",x).length){alert('Error: Form elements must not be named "submit".');
return;
}var q=b.extend({},b.ajaxSettings,t);
var H=b.extend(true,{},b.extend(true,{},b.ajaxSettings),q);
var w="jqFormIO"+(new Date().getTime());
var D=b('<iframe id="'+w+'" name="'+w+'" src="'+q.iframeSrc+'" />');
var F=D[0];
D.css({position:"absolute",top:"-1000px",left:"-1000px"});
var G={aborted:0,responseText:null,responseXML:null,status:0,statusText:"n/a",getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){},abort:function(){this.aborted=1;
D.attr("src",q.iframeSrc);
}};
var E=q.global;
if(E&&!b.active++){b.event.trigger("ajaxStart");
}if(E){b.event.trigger("ajaxSend",[G,q]);
}if(H.beforeSend&&H.beforeSend(G,H)===false){H.global&&b.active--;
return;
}if(G.aborted){return;
}var k=0;
var A=0;
var j=x.clk;
if(j){var y=j.name;
if(y&&!j.disabled){t.extraData=t.extraData||{};
t.extraData[y]=j.value;
if(j.type=="image"){t.extraData[name+".x"]=x.clk_x;
t.extraData[name+".y"]=x.clk_y;
}}}setTimeout(function(){var K=u.attr("target"),I=u.attr("action");
x.setAttribute("target",w);
if(x.getAttribute("method")!="POST"){x.setAttribute("method","POST");
}if(x.getAttribute("action")!=q.url){x.setAttribute("action",q.url);
}if(!t.skipEncodingOverride){u.attr({encoding:"multipart/form-data",enctype:"multipart/form-data"});
}if(q.timeout){setTimeout(function(){A=true;
B();
},q.timeout);
}var J=[];
try{if(t.extraData){for(var L in t.extraData){J.push(b('<input type="hidden" name="'+L+'" value="'+t.extraData[L]+'" />').appendTo(x)[0]);
}}D.appendTo("body");
F.attachEvent?F.attachEvent("onload",B):F.addEventListener("load",B,false);
x.submit();
}finally{x.setAttribute("action",I);
K?x.setAttribute("target",K):u.removeAttr("target");
b(J).remove();
}},10);
var z=50;
function B(){if(k++){return;
}F.detachEvent?F.detachEvent("onload",B):F.removeEventListener("load",B,false);
var I=true;
try{if(A){throw"timeout";
}var J,M;
M=F.contentWindow?F.contentWindow.document:F.contentDocument?F.contentDocument:F.document;
var N=q.dataType=="xml"||M.XMLDocument||b.isXMLDoc(M);
a("isXml="+N);
if(!N&&(M.body==null||M.body.innerHTML=="")){if(--z){k=0;
setTimeout(B,100);
return;
}a("Could not access iframe DOM after 50 tries.");
return;
}G.responseText=M.body?M.body.innerHTML:null;
G.responseXML=M.XMLDocument?M.XMLDocument:M;
G.getResponseHeader=function(P){var O={"content-type":q.dataType};
return O[P];
};
if(q.dataType=="json"||q.dataType=="script"){var n=M.getElementsByTagName("textarea")[0];
if(n){G.responseText=n.value;
}else{var L=M.getElementsByTagName("pre")[0];
if(L){G.responseText=L.innerHTML;
}}}else{if(q.dataType=="xml"&&!G.responseXML&&G.responseText!=null){G.responseXML=C(G.responseText);
}}J=b.httpData(G,q.dataType);
}catch(K){I=false;
b.handleError(q,G,"error",K);
}if(I){q.success(J,"success");
if(E){b.event.trigger("ajaxSuccess",[G,q]);
}}if(E){b.event.trigger("ajaxComplete",[G,q]);
}if(E&&!--b.active){b.event.trigger("ajaxStop");
}if(q.complete){q.complete(G,I?"success":"error");
}setTimeout(function(){D.remove();
G.responseXML=null;
},100);
}function C(n,I){if(window.ActiveXObject){I=new ActiveXObject("Microsoft.XMLDOM");
I.async="false";
I.loadXML(n);
}else{I=(new DOMParser()).parseFromString(n,"text/xml");
}return(I&&I.documentElement&&I.documentElement.tagName!="parsererror")?I:null;
}}};
b.fn.ajaxForm=function(c){return this.ajaxFormUnbind().bind("submit.form-plugin",function(){b(this).ajaxSubmit(c);
return false;
}).bind("click.form-plugin",function(i){var h=i.target;
var f=b(h);
if(!(f.is(":submit,input:image"))){var d=f.closest(":submit");
if(d.length==0){return;
}h=d[0];
}var g=this;
g.clk=h;
if(h.type=="image"){if(i.offsetX!=undefined){g.clk_x=i.offsetX;
g.clk_y=i.offsetY;
}else{if(typeof b.fn.offset=="function"){var j=f.offset();
g.clk_x=i.pageX-j.left;
g.clk_y=i.pageY-j.top;
}else{g.clk_x=i.pageX-h.offsetLeft;
g.clk_y=i.pageY-h.offsetTop;
}}}setTimeout(function(){g.clk=g.clk_x=g.clk_y=null;
},100);
});
};
b.fn.ajaxFormUnbind=function(){return this.unbind("submit.form-plugin click.form-plugin");
};
b.fn.formToArray=function(q){var p=[];
if(this.length==0){return p;
}var d=this[0];
var h=q?d.getElementsByTagName("*"):d.elements;
if(!h){return p;
}for(var k=0,m=h.length;
k<m;
k++){var e=h[k];
var f=e.name;
if(!f){continue;
}if(q&&d.clk&&e.type=="image"){if(!e.disabled&&d.clk==e){p.push({name:f,value:b(e).val()});
p.push({name:f+".x",value:d.clk_x},{name:f+".y",value:d.clk_y});
}continue;
}var r=b.fieldValue(e,true);
if(r&&r.constructor==Array){for(var g=0,c=r.length;
g<c;
g++){p.push({name:f,value:r[g]});
}}else{if(r!==null&&typeof r!="undefined"){p.push({name:f,value:r});
}}}if(!q&&d.clk){var l=b(d.clk),o=l[0],f=o.name;
if(f&&!o.disabled&&o.type=="image"){p.push({name:f,value:l.val()});
p.push({name:f+".x",value:d.clk_x},{name:f+".y",value:d.clk_y});
}}return p;
};
b.fn.formSerialize=function(c){return b.param(this.formToArray(c));
};
b.fn.fieldSerialize=function(d){var c=[];
this.each(function(){var h=this.name;
if(!h){return;
}var f=b.fieldValue(this,d);
if(f&&f.constructor==Array){for(var g=0,e=f.length;
g<e;
g++){c.push({name:h,value:f[g]});
}}else{if(f!==null&&typeof f!="undefined"){c.push({name:this.name,value:f});
}}});
return b.param(c);
};
b.fn.fieldValue=function(h){for(var g=[],e=0,c=this.length;
e<c;
e++){var f=this[e];
var d=b.fieldValue(f,h);
if(d===null||typeof d=="undefined"||(d.constructor==Array&&!d.length)){continue;
}d.constructor==Array?b.merge(g,d):g.push(d);
}return g;
};
b.fieldValue=function(c,j){var e=c.name,p=c.type,q=c.tagName.toLowerCase();
if(typeof j=="undefined"){j=true;
}if(j&&(!e||c.disabled||p=="reset"||p=="button"||(p=="checkbox"||p=="radio")&&!c.checked||(p=="submit"||p=="image")&&c.form&&c.form.clk!=c||q=="select"&&c.selectedIndex==-1)){return null;
}if(q=="select"){var k=c.selectedIndex;
if(k<0){return null;
}var m=[],d=c.options;
var g=(p=="select-one");
var l=(g?k+1:d.length);
for(var f=(g?k:0);
f<l;
f++){var h=d[f];
if(h.selected){var o=h.value;
if(!o){o=(h.attributes&&h.attributes.value&&!(h.attributes.value.specified))?h.text:h.value;
}if(g){return o;
}m.push(o);
}}return m;
}return c.value;
};
b.fn.clearForm=function(){return this.each(function(){b("input,select,textarea",this).clearFields();
});
};
b.fn.clearFields=b.fn.clearInputs=function(){return this.each(function(){var d=this.type,c=this.tagName.toLowerCase();
if(d=="text"||d=="password"||c=="textarea"){this.value="";
}else{if(d=="checkbox"||d=="radio"){this.checked=false;
}else{if(c=="select"){this.selectedIndex=-1;
}}}});
};
b.fn.resetForm=function(){return this.each(function(){if(typeof this.reset=="function"||(typeof this.reset=="object"&&!this.reset.nodeType)){this.reset();
}});
};
b.fn.enable=function(c){if(c==undefined){c=true;
}return this.each(function(){this.disabled=!c;
});
};
b.fn.selected=function(c){if(c==undefined){c=true;
}return this.each(function(){var d=this.type;
if(d=="checkbox"||d=="radio"){this.checked=c;
}else{if(this.tagName.toLowerCase()=="option"){var e=b(this).parent("select");
if(c&&e[0]&&e[0].type=="select-one"){e.find("option").selected(false);
}this.selected=c;
}}});
};
function a(){if(b.fn.ajaxSubmit.debug&&window.console&&window.console.log){window.console.log("[jquery.form] "+Array.prototype.join.call(arguments,""));
}}})(jQuery);
/*
 * (c) Paul Uithol, 2009. Wrapper for jQuery ajax; adds data loading at a set interval, and callbacks with a specified scope.
 */
(function(a){a.loadData=function(e){var b=this;
var c=arguments;
var g=a.extend({},a.loadData.defaults,e,{complete:function(){if(g.interval){window.setTimeout(function(){b.loadData.apply(b,c);
},g.interval);
}a.isFunction(e.complete)&&e.complete.apply(e.callbackScope,arguments);
},success:function(h,d){a.isFunction(e.success)&&e.success.apply(e.callbackScope,arguments);
},error:function(h,d,i){g.debug&&console.warn("ajax error: %s - $%s",d,i);
if(h.status&&(h.status>300&&h.status<399)){window.location.reload();
}a.isFunction(e.error)&&e.error.apply(e.callbackScope,arguments);
}});
if(g.callbackScope){delete g.callbackScope;
}var f=new Date();
g.debug&&console.log("loadData options @ %i:%i:%i : %o",f.getHours(),(f.getMinutes()<10?"0"+f.getMinutes():f.getMinutes()),(f.getSeconds()<10?"0"+f.getSeconds():f.getSeconds()),g);
if(e.cancel||!g.url){return;
}a.ajax(g);
return this;
};
a.loadData.defaults={debug:false,url:null,cache:false,dataType:"json",timeout:null,interval:null};
})(jQuery);
/*
 * JavaScript Pretty Date
 * Copyright (c) 2008 John Resig (jquery.com)
 * Licensed under the MIT license.
 */
if(typeof _=="undefined"){var _=function(a){return a;
};
}(function(a){a.prettyDate={toDate:function(b){return b instanceof Date?b:new Date((b||"").replace(/-/g,"/").replace(/[TZ]/g," "));
},intervalToText:function(e,d){var c=a.prettyDate.toDate(e);
if(isNaN(c)){c=(new Date()).setISO8601(e);
}var f=(((new Date()).getTime()-c.getTime())/1000),b=Math.floor(f/86400);
if(isNaN(b)||b<0){return;
}return b==0&&(f<60&&_("just now")||f<120&&"1 "+_("minute ago")||f<3600&&Math.floor(f/60)+" "+_("minutes ago")||f<7200&&"1 "+_("hour ago")||f<86400&&Math.floor(f/3600)+" "+_("hours ago"))||b==1&&_("yesterday")||b<7&&b+" "+_("days ago")||b<31&&Math.ceil(b/7)+" "+_("weeks ago")||" ";
},dayToText:function(b,c){c=a.extend({},a.prettyDate.defaults,c);
b=(b instanceof Date)?b.getDay():parseInt(b);
b=c.shortNames?c.dayNames[b]:c.dayNames[b+7];
return _(b);
},monthToText:function(d,c,b){c=a.extend({},a.prettyDate.defaults,c);
d=(d instanceof Date)?d.getMonth():parseInt(d);
d=c.shortNames?c.monthNames[d]:c.monthNames[d+12];
return _(d);
}};
a.prettyDate.defaults={date:null,dateFromAttribute:"title",dayNames:["Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],method:"intervalToText",monthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec","January","February","March","April","May","June","July","August","September","October","November","December"],shortNames:false,insertionMethod:"replace"};
a.fn.extend({prettyDate:function(b){var b=a.extend({},a.prettyDate.defaults,b);
return this.each(function(){var c=b.date||a(this).attr(b.dateFromAttribute);
var d=a.prettyDate[b.method](c,b,true);
if(d){switch(b.insertionMethod){case"append":a(this).append("<span>"+d+"</span>");
break;
case"prepend":a(this).prepend("<span>"+d+"</span>");
break;
default:a(this).text(d);
}}});
}});
})(jQuery);
Date.prototype.setISO8601=function(e){var a=/(\d\d\d\d)(-)?(\d\d)(-)?(\d\d)(T)?(\d\d)(:)?(\d\d)(:)?(\d\d)(\.\d+)?(Z|([+-])(\d\d)(:)?(\d\d))/;
if(e.toString().match(new RegExp(a))){var c=e.match(new RegExp(a));
var b=0;
this.setUTCDate(1);
this.setUTCFullYear(parseInt(c[1],10));
this.setUTCMonth(parseInt(c[3],10)-1);
this.setUTCDate(parseInt(c[5],10));
this.setUTCHours(parseInt(c[7],10));
this.setUTCMinutes(parseInt(c[9],10));
this.setUTCSeconds(parseInt(c[11],10));
if(c[12]){this.setUTCMilliseconds(parseFloat(c[12])*1000);
}else{this.setUTCMilliseconds(0);
}if(c[13]!="Z"){b=(c[15]*60)+parseInt(c[17],10);
b*=((c[14]=="-")?-1:1);
this.setTime(this.getTime()-b*60*1000);
}}else{this.setTime(Date.parse(e));
}return this;
};
/*
 * jQuery.ScrollTo
 * Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
 * Dual licensed under MIT and GPL.
 * Date: 5/25/2009
 */
(function(c){var a=c.scrollTo=function(f,e,d){c(window).scrollTo(f,e,d);
};
a.defaults={axis:"xy",duration:parseFloat(c.fn.jquery)>=1.3?0:1};
a.window=function(d){return c(window)._scrollable();
};
c.fn._scrollable=function(){return this.map(function(){var e=this,d=!e.nodeName||c.inArray(e.nodeName.toLowerCase(),["iframe","#document","html","body"])!=-1;
if(!d){return e;
}var f=(e.contentWindow||e).document||e.ownerDocument||e;
return c.browser.safari||f.compatMode=="BackCompat"?f.body:f.documentElement;
});
};
c.fn.scrollTo=function(f,e,d){if(typeof e=="object"){d=e;
e=0;
}if(typeof d=="function"){d={onAfter:d};
}if(f=="max"){f=9000000000;
}d=c.extend({},a.defaults,d);
e=e||d.speed||d.duration;
d.queue=d.queue&&d.axis.length>1;
if(d.queue){e/=2;
}d.offset=b(d.offset);
d.over=b(d.over);
return this._scrollable().each(function(){var l=this,j=c(l),k=f,i,g={},m=j.is("html,body");
switch(typeof k){case"number":case"string":if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(k)){k=b(k);
break;
}k=c(k,this);
case"object":if(k.is||k.style){i=(k=c(k)).offset();
}}c.each(d.axis.split(""),function(q,r){var s=r=="x"?"Left":"Top",u=s.toLowerCase(),p="scroll"+s,o=l[p],n=a.max(l,r);
if(i){g[p]=i[u]+(m?0:o-j.offset()[u]);
if(d.margin){g[p]-=parseInt(k.css("margin"+s))||0;
g[p]-=parseInt(k.css("border"+s+"Width"))||0;
}g[p]+=d.offset[u]||0;
if(d.over[u]){g[p]+=k[r=="x"?"width":"height"]()*d.over[u];
}}else{var t=k[u];
g[p]=t.slice&&t.slice(-1)=="%"?parseFloat(t)/100*n:t;
}if(/^\d+$/.test(g[p])){g[p]=g[p]<=0?0:Math.min(g[p],n);
}if(!q&&d.queue){if(o!=g[p]){h(d.onAfterFirst);
}delete g[p];
}});
h(d.onAfter);
function h(n){j.animate(g,e,d.easing,n&&function(){n.call(this,f,d);
});
}}).end();
};
a.max=function(j,i){var h=i=="x"?"Width":"Height",e="scroll"+h;
if(!c(j).is("html,body")){return j[e]-c(j)[h.toLowerCase()]();
}var g="client"+h,f=j.ownerDocument.documentElement,d=j.ownerDocument.body;
return Math.max(f[e],d[e])-Math.min(f[g],d[g]);
};
function b(d){return typeof d=="object"?d:{top:d,left:d};
}})(jQuery);
