unpoly-rails 0.20.0 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of unpoly-rails might be problematic. Click here for more details.

data/dist/unpoly.min.js CHANGED
@@ -1,3 +1,3 @@
1
- (function(){window.up={}}).call(this),function(){var e=[].slice;up.util=function(t){var n,r,o,u,i,a,s,l,p,c,f,d,m,h,v,g,y,b,w,k,S,x,T,$,P,E,C,D,A,U,O,F,R,M,j,K,z,L,I,W,N,q,H,_,Q,V,J,B,X,G,Y,Z,et,tt,nt,rt,ot,ut,it,at,st,lt,pt,ct,ft,dt,mt,ht,vt,gt,yt,bt,wt,kt,St,xt,Tt,$t,Pt,Et,Ct,Dt,At,Ut,Ot,Ft,Rt,Mt,jt;return Z=function(t){var n,r;return n=void 0,r=!1,function(){var o;return o=1<=arguments.length?e.call(arguments,0):[],r?n:(r=!0,n=t.apply(null,o))}},H=function(e,t){return t=t.toString(),(""===t||"80"===t)&&"http:"===e||"443"===t&&"https:"===e},it=function(e,t){var n,r,o;return n=dt(e),r=n.protocol+"//"+n.hostname,H(n.protocol,n.port)||(r+=":"+n.port),o=n.pathname,"/"!==o[0]&&(o="/"+o),(null!=t?t.stripTrailingSlash:void 0)===!0&&(o=o.replace(/\/$/,"")),r+=o,(null!=t?t.hash:void 0)===!0&&(r+=n.hash),(null!=t?t.search:void 0)!==!1&&(r+=n.search),r},dt=function(e){var n;return n=null,_(e)?(n=t("<a>").attr({href:e}).get(0),A(n.hostname)&&(n.href=n.href)):n=Ot(e),n},ut=function(e){return e?e.toUpperCase():"GET"},n=function(e){var n,r,o,u,i,a,s,l,p,c,f,d,m,h,v,g;for(v=e.split(/[ >]/),o=null,f=p=0,m=v.length;m>p;f=++p){for(a=v[f],i=a.match(/(^|\.|\#)[A-Za-z0-9\-_]+/g),g="div",u=[],c=null,d=0,h=i.length;h>d;d++)switch(s=i[d],s[0]){case".":u.push(s.substr(1));break;case"#":c=s.substr(1);break;default:g=s}l="<"+g,u.length&&(l+=' class="'+u.join(" ")+'"'),c&&(l+=' id="'+c+'"'),l+=">",n=t(l),r&&n.appendTo(r),0===f&&(o=n),r=n}return o},h=function(e,t){var n;return n=document.createElement(e),N(t)&&(n.innerHTML=t),n},r=function(e,t){var r;return null==t&&(t=document.body),r=n(e),r.addClass("up-placeholder"),r.appendTo(t),r},$t=function(e){var n,r,o,u,i,a,s,l,p;if(n=t(e),l=void 0,up.puts("Creating selector from element %o",n.get(0)),p=mt(n.attr("up-id")))l="[up-id='"+p+"']";else if(u=mt(n.attr("id")))l="#"+u;else if(s=mt(n.attr("name")))l="[name='"+s+"']";else if(r=mt(ot(n)))for(l="",o=0,a=r.length;a>o;o++)i=r[o],l+="."+i;else l=n.prop("tagName").toLowerCase();return l},ot=function(e){var t,n;return t=e.attr("class")||"",n=t.split(" "),Tt(n,function(e){return N(e)&&!e.match(/^up-/)})},v=function(e){var t,n,r,o,u,i,a,s,l,p,c,f;return l=function(e){return"<"+e+"(?: [^>]*)?>"},i=function(e){return"</"+e+">"},t="(?:.|\\n)*?",u=function(e){return"("+e+")"},f=new RegExp(l("head")+t+l("title")+u(t)+i("title")+t+i("body"),"i"),o=new RegExp(l("body")+u(t)+i("body"),"i"),(r=e.match(o))?(s=document.createElement("html"),n=h("body",r[1]),s.appendChild(n),(c=e.match(f))&&(a=h("head"),s.appendChild(a),p=h("title",c[1]),a.appendChild(p)),s):h("div",e)},x=t.extend,Ut=t.trim,b=function(e,t){var n,r,o,u,i;for(i=[],r=n=0,u=e.length;u>n;r=++n)o=e[r],i.push(t(o,r));return i},G=b,Ct=function(e,t){var n,r,o,u;for(u=[],r=n=0,o=e-1;o>=0?o>=n:n>=o;r=o>=0?++n:--n)u.push(t(r));return u},L=function(e){return null===e},Q=function(e){return void 0===e},O=function(e){return!Q(e)},z=function(e){return Q(e)||L(e)},M=function(e){return!z(e)},A=function(e){return z(e)||W(e)&&0===Object.keys(e).length||0===e.length},mt=function(e,t){return null==t&&(t=N),t(e)?e:void 0},N=function(e){return!A(e)},R=function(e){return"function"==typeof e},_=function(e){return"string"==typeof e},I=function(e){return"number"==typeof e},j=function(e){return"object"==typeof e&&!!e},W=function(e){return j(e)||"function"==typeof e},F=function(e){return!(!e||1!==e.nodeType)},K=function(e){return e instanceof jQuery},q=function(e){return W(e)&&R(e.then)},U=function(e){return q(e)&&R(e.resolve)},D=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},At=function(e){return Array.prototype.slice.call(e)},d=function(e){return D(e)?e.slice():x({},e)},Ot=function(e){return K(e)?e.get(0):e},et=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],x.apply(null,[{}].concat(e.call(t)))},ft=function(e,t){var n,r,o,u;if(o=e?d(e):{},t)for(r in t)n=t[r],u=o[r],M(u)?W(n)&&W(u)&&(o[r]=ft(u,n)):o[r]=n;return o},ct=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],y(t,M)},y=function(e,t){var n,r,o,u;for(u=void 0,r=0,o=e.length;o>r;r++)if(n=e[r],t(n)){u=n;break}return u},i=function(e,t){var n,r,o,u;for(u=!1,r=0,o=e.length;o>r;r++)if(n=e[r],t(n)){u=!0;break}return u},u=function(e,t){var n,r,o,u;for(u=!0,r=0,o=e.length;o>r;r++)if(n=e[r],!t(n)){u=!1;break}return u},p=function(e){return Tt(e,M)},Ft=function(e){var t;return t={},Tt(e,function(e){return t.hasOwnProperty(e)?!1:t[e]=!0})},Tt=function(e,t){var n;return n=[],b(e,function(e){return t(e)?n.push(e):void 0}),n},vt=function(e,t){return Tt(e,function(e){return!t(e)})},C=function(e,t){return Tt(e,function(e){return f(t,e)})},ht=function(){var t,n,r,o;return t=arguments[0],r=2<=arguments.length?e.call(arguments,1):[],o=function(){var e,o,u;for(u=[],e=0,o=r.length;o>e;e++)n=r[e],u.push(t.attr(n));return u}(),y(o,N)},rt=function(e){return setTimeout(e,0)},B=function(e){return e[e.length-1]},l=function(){var e;return e=document.documentElement,{width:e.clientWidth,height:e.clientHeight}},xt=Z(function(){var e,n,r;return e=t("<div>").css({position:"absolute",top:"0",left:"0",width:"50px",height:"50px",overflowY:"scroll"}),e.appendTo(document.body),n=e.get(0),r=n.offsetWidth-n.clientWidth,e.remove(),r}),lt=function(t){var n;return n=void 0,function(){var r;return r=1<=arguments.length?e.call(arguments,0):[],null!=t&&(n=t.apply(null,r)),t=void 0,n}},Et=function(e,t,n){var r,o;return o=e.css(Object.keys(t)),e.css(t),r=function(){return e.css(o)},n?(n(),r()):lt(r)},E=function(e){var t,n;return n=e.css(["transform","-webkit-transform"]),A(n)||"none"===n.transform?(t=function(){return e.css(n)},e.css({transform:"translateZ(0)","-webkit-transform":"translateZ(0)"})):t=function(){},t},g=function(e,n,r){var u,i,a,s,l,p;return u=t(e),r=ft(r,{duration:300,delay:0,easing:"ease"}),i=t.Deferred(),s={"transition-property":Object.keys(n).join(", "),"transition-duration":r.duration+"ms","transition-delay":r.delay+"ms","transition-timing-function":r.easing},l=E(u),p=Et(u,s),u.css(n),i.then(l),i.then(p),u.data(o,i),i.then(function(){return u.removeData(o)}),a=setTimeout(function(){return i.resolve()},r.duration+r.delay),i.then(function(){return clearTimeout(a)}),i},o="up-animation-promise",$=function(e){return t(e).each(function(){var e;return(e=t(this).data(o))?e.resolve():void 0})},Y=function(e,n){var r,o,u,i,a,s;return n=ft(n,{relative:!1,inner:!1,full:!1}),n.relative?n.relative===!0?i=e.position():(r=t(n.relative),a=e.offset(),r.is(document)?i=a:(u=r.offset(),i={left:a.left-u.left,top:a.top-u.top})):i=e.offset(),o={left:i.left,top:i.top},n.inner?(o.width=e.width(),o.height=e.height()):(o.width=e.outerWidth(),o.height=e.outerHeight()),n.full&&(s=l(),o.right=s.width-(o.left+o.width),o.bottom=s.height-(o.top+o.height)),o},m=function(e,t){var n,r,o,u,i;for(u=e.get(0).attributes,i=[],r=0,o=u.length;o>r;r++)n=u[r],i.push(n.specified?t.attr(n.name,n.value):void 0);return i},T=function(e,t){return e.find(t).addBack(t)},k=function(e){return 27===e.keyCode},f=function(e,t){return e.indexOf(t)>=0},s=function(e,t){var n;switch(n=e.attr(t)){case"false":return!1;case"true":return!0;case"":return!0;default:return n}},X=function(e){return e.getResponseHeader("X-Up-Location")},Dt=function(e){return e.getResponseHeader("X-Up-Title")},tt=function(e){return e.getResponseHeader("X-Up-Method")},pt=function(){var t,n,r,o,u,i;for(o=arguments[0],u=2<=arguments.length?e.call(arguments,1):[],t={},n=0,r=u.length;r>n;n++)i=u[n],o.hasOwnProperty(i)&&(t[i]=o[i]);return t},S=function(){var t,n,r,o,u,i;for(o=arguments[0],u=2<=arguments.length?e.call(arguments,1):[],t=d(o),n=0,r=u.length;r>n;n++)i=u[n],delete t[i];return t},V=function(e){return!(e.metaKey||e.shiftKey||e.ctrlKey)},J=function(e){var t;return t=Q(e.button)||0===e.button,t&&V(e)},kt=function(){var e;return e=t.Deferred(),e.resolve(),e},St=function(){return kt().promise()},Rt=function(){return t.Deferred()},Mt=function(){return Rt().promise()},at=function(){return t()},wt=function(){var n,r;return n=1<=arguments.length?e.call(arguments,0):[],r=t.when.apply(t,n),r.resolve=function(){return b(n,function(e){return"function"==typeof e.resolve?e.resolve():void 0})},r},Pt=function(e,t){var n,r,o;r=[];for(n in t)o=t[n],r.push(z(e.attr(n))?e.attr(n,o):void 0);return r},gt=function(e,t){var n;return n=e.indexOf(t),n>=0?(e.splice(n,1),t):void 0},nt=function(e){var n,r,o,u,a,s,l;for(a={},l=[],r=[],o=0,u=e.length;u>o;o++)s=e[o],_(s)?l.push(s):r.push(s);return a.parsed=r,l.length&&(n=l.join(", "),a.parsed.push(n)),a.select=function(){return a.find(void 0)},a.find=function(e){var n,r,o,u,i,s;for(r=at(),i=a.parsed,o=0,u=i.length;u>o;o++)s=i[o],n=e?e.find(s):t(s),r=r.add(n);return r},a.findWithSelf=function(e){var t;return t=a.find(e),a.doesMatch(e)&&(t=t.add(e)),t},a.doesMatch=function(e){var n;return n=t(e),i(a.parsed,function(e){return n.is(e)})},a.seekUp=function(e){var n,r,o;for(o=t(e),n=o,r=void 0;n.length;){if(a.doesMatch(n)){r=n;break}n=n.parent()}return r||at()},a},a=function(t){var n,r,o,u,i,a,s,l,p,c,f,m;return null==t&&(t={}),f=void 0,r=function(){return f={}},r(),s=function(){var n;return n=1<=arguments.length?e.call(arguments,0):[],t.log?(n[0]="["+t.log+"] "+n[0],up.puts.apply(up,n)):void 0},a=function(){return Object.keys(f)},l=function(){return z(t.size)?void 0:R(t.size)?t.size():I(t.size)?t.size:w("Invalid size config: %o",t.size)},o=function(){return z(t.expiry)?void 0:R(t.expiry)?t.expiry():I(t.expiry)?t.expiry:w("Invalid expiry config: %o",t.expiry)},p=function(e){return t.key?t.key(e):e.toString()},Ut=function(){var e,t,n,r;return r=d(a()),n=l(),n&&r.length>n&&(e=null,t=null,b(r,function(n){var r,o;return r=f[n],o=r.timestamp,!t||t>o?(e=n,t=o):void 0}),e)?delete f[e]:void 0},n=function(e,t){var n;return n=u(e,{silent:!0}),O(n)?c(t,n):void 0},m=function(){return(new Date).valueOf()},c=function(e,t){var n;return n=p(e),f[n]={timestamp:m(),value:t}},gt=function(e){var t;return t=p(e),delete f[t]},i=function(e){var t,n;return t=o(),t?(n=m()-e.timestamp,n<o()):!0},u=function(e,t){var n,r;return null==t&&(t={}),r=p(e),(n=f[r])?i(n)?(t.silent||s("Cache hit for '%s'",e),n.value):(t.silent||s("Discarding stale cache entry for '%s'",e),void gt(e)):void(t.silent||s("Cache miss for '%s'",e))},{alias:n,get:u,set:c,remove:gt,clear:r,keys:a}},c=function(e){var t;return null==e&&(e={}),t={},t.reset=function(){return x(t,e)},t.reset(),Object.preventExtensions(t),t},jt=function(e){var t,n;return e=Ot(e),t=e.parentNode,n=At(e.childNodes),b(n,function(n){return t.insertBefore(n,e)}),t.removeChild(e)},st=function(e){var t,n;for(t=void 0;(e=e.parent())&&e.length;)if(n=e.css("position"),"absolute"===n||"relative"===n||e.is("body")){t=e;break}return t},P=function(e,n){var r,o,u,i;return r=t(e),o=st(r),u=r.position(),i=o.offset(),r.css({position:"absolute",left:u.left-i.left,top:u.top-i.top+n.scrollTop(),right:"",bottom:""})},yt=function(e){var t,n,r,o,u,i,a;for(i=bt(e),t=[],a=i.split("&"),n=0,r=a.length;r>n;n++)u=a[n],N(u)&&(o=u.split("="),t.push({name:decodeURIComponent(o[0]),value:decodeURIComponent(o[1])}));return t},bt=function(e){var n;return e?(n=t.param(e),n=n.replace(/\+/g,"%20")):""},w=function(){var n,r,o,u,i;throw r=1<=arguments.length?e.call(arguments,0):[],(u=up.log).error.apply(u,r),o=(i=up.browser).sprintf.apply(i,r),n=mt(t(".up-error"))||t('<div class="up-error"></div>').prependTo("body"),n.addClass("up-error"),n.text(o),new Error(o)},{requestDataAsArray:yt,requestDataAsQuery:bt,offsetParent:st,fixedToAbsolute:P,presentAttr:ht,createElement:h,parseUrl:dt,normalizeUrl:it,normalizeMethod:ut,createElementFromHtml:v,$createElementFromSelector:n,$createPlaceholder:r,selectorForElement:$t,extend:x,copy:d,merge:et,options:ft,option:ct,error:w,each:b,map:G,times:Ct,any:i,all:u,detect:y,select:Tt,reject:vt,intersect:C,compact:p,uniq:Ft,last:B,isNull:L,isDefined:O,isUndefined:Q,isGiven:M,isMissing:z,isPresent:N,isBlank:A,presence:mt,isObject:W,isFunction:R,isString:_,isElement:F,isJQuery:K,isPromise:q,isDeferred:U,isHash:j,isUnmodifiedKeyEvent:V,isUnmodifiedMouseEvent:J,nullJQuery:at,unJQuery:Ot,nextFrame:rt,measure:Y,temporaryCss:Et,cssAnimate:g,finishCssAnimate:$,forceCompositing:E,escapePressed:k,copyAttributes:m,findWithSelf:T,contains:f,isArray:D,toArray:At,castedAttr:s,locationFromXhr:X,titleFromXhr:Dt,methodFromXhr:tt,clientSize:l,only:pt,except:S,trim:Ut,unresolvableDeferred:Rt,unresolvablePromise:Mt,resolvedPromise:St,resolvedDeferred:kt,resolvableWhen:wt,setMissingAttrs:Pt,remove:gt,memoize:Z,scrollbarWidth:xt,config:c,cache:a,unwrapElement:jt,multiSelector:nt,error:w}}($),up.error=up.util.error}.call(this),function(){var e=[].slice;up.log=function(){var t,n,r,o,u,i;return o=function(e){return"\u1d1c\u1d18 "+e},t=function(){var t,n,r;return n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],n?(r=up.browser).puts.apply(r,["debug",o(n)].concat(e.call(t))):void 0},u=function(){var t,n,r;return n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],n?(r=up.browser).puts.apply(r,["log",o(n)].concat(e.call(t))):void 0},i=function(){var t,n,r;return n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],n?(r=up.browser).puts.apply(r,["warn",o(n)].concat(e.call(t))):void 0},r=function(){var t,n,r,u;if(r=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],n=t.pop(),!r)return n();(u=up.browser).puts.apply(u,["groupCollapsed",o(r)].concat(e.call(t)));try{return n()}finally{r&&console.groupEnd()}},n=function(){var t,n,r;return n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],n?(r=up.browser).puts.apply(r,["error",o(n)].concat(e.call(t))):void 0},{puts:u,debug:t,error:n,warn:i,group:r}}(jQuery),up.puts=up.log.puts}.call(this),function(){var e=[].slice;up.browser=function(t){var n,r,o,u,i,a,s,l,p,c,f,d,m,h,v,g,y,b;return y=up.util,m=function(e,n){var r,o,u,i,a;return null==n&&(n={}),i=y.option(n.method,"get").toLowerCase(),"get"===i?(a=y.requestDataAsQuery(n.data),a&&(e=e+"?"+a),location.href=e):(r=t("<form method='post' action='"+e+"'></form>"),o=function(e){var n;return n=t('<input type="hidden">'),n.attr(e.name,e.value),n.appendTo(r)},o({name:up.proxy.config.wrapMethodParam,value:i}),(u=up.rails.csrfField())&&o(u),y.each(y.requestDataAsArray(n.data),o),r.hide().appendTo("body"),r.submit())},v=function(){var t,n,r;return r=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],y.isDefined(console[r])||(r="log"),u()?console[r].apply(console,t):(n=g.apply(null,t),console[r](n))},n=/\%[odisf]/g,g=function(){var t,r,o,u;return u=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],r=0,o=80,u.replace(n,function(){var e,n;return e=t[r],n=typeof e,"string"===n?(e=e.replace(/\s+/g," "),e.length>o&&(e=e.substr(0,o)+"\u2026"),e='"'+e+'"'):e="undefined"===n?"undefined":"number"===n||"function"===n?e.toString():JSON.stringify(e),e.length>o&&(e=e.substr(0,o)+" \u2026",("object"===n||"function"===n)&&(e+=" }")),r+=1,e})},b=function(){return location.href},p=y.memoize(function(){return y.isUndefined(document.addEventListener)}),c=y.memoize(function(){return p()||-1!==navigator.appVersion.indexOf("MSIE 9.")}),i=y.memoize(function(){return y.isDefined(history.pushState)&&"get"===s()}),r=y.memoize(function(){return"transition"in document.documentElement.style}),o=y.memoize(function(){return"oninput"in document.createElement("input")}),u=y.memoize(function(){return!c()}),f=y.memoize(function(){var e,n,r,o;return o=t.fn.jquery,r=o.split("."),e=parseInt(r[0]),n=parseInt(r[1]),e>=2||1===e&&n>=9}),h=function(e){var t,n;return n=null!=(t=document.cookie.match(new RegExp(e+"=(\\w+)")))?t[1]:void 0,y.isPresent(n)&&(document.cookie=e+"=; expires=Thu, 01-Jan-70 00:00:01 GMT; path=/"),n},a=function(e){return y.isBlank(e)||a(e)?y.resolvedPromise():y.unresolvablePromise()},s=y.memoize(function(){return(h("_up_request_method")||"get").toLowerCase()}),d=function(){return!p()&&f()},l=function(){return console.group||(console.group=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],v.apply(null,["group"].concat(e.call(t)))}),console.groupCollapsed||(console.groupCollapsed=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],v.apply(null,["groupCollapsed"].concat(e.call(t)))}),console.groupEnd||(console.groupEnd=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],v.apply(null,["groupEnd"].concat(e.call(t)))})},{url:b,loadPage:m,confirm:a,canPushState:i,canCssTransition:r,canInputEvent:o,canLogSubstitution:u,isSupported:d,installPolyfills:l,puts:v,sprintf:g}}(jQuery)}.call(this),function(){var slice=[].slice;up.bus=function($){var boot,emit,emitReset,forgetUpDescription,live,liveUpDescriptions,logEmission,nextUpDescriptionNumber,nobodyPrevents,onEscape,rememberUpDescription,restoreSnapshot,snapshot,u,unbind,upDescriptionNumber,upDescriptionToJqueryDescription,upListenerToJqueryListener;return u=up.util,liveUpDescriptions={},nextUpDescriptionNumber=0,upListenerToJqueryListener=function(e){return function(t){var n;return n=t.$element||$(this),e.apply(n.get(0),[t,n,up.syntax.data(n)])}},upDescriptionToJqueryDescription=function(e,t){var n,r,o;return n=u.copy(e),o=n.pop(),r=void 0,t?(r=upListenerToJqueryListener(o),o._asJqueryListener=r,o._descriptionNumber=++nextUpDescriptionNumber):(r=o._asJqueryListener,r||u.error("up.off: The event listener %o was never registered through up.on")),n.push(r),n},live=function(){var e,t,n;return n=1<=arguments.length?slice.call(arguments,0):[],up.browser.isSupported()?(e=upDescriptionToJqueryDescription(n,!0),rememberUpDescription(n),(t=$(document)).on.apply(t,e),function(){return unbind.apply(null,n)}):function(){}},unbind=function(){var e,t,n;return n=1<=arguments.length?slice.call(arguments,0):[],e=upDescriptionToJqueryDescription(n,!1),forgetUpDescription(n),(t=$(document)).off.apply(t,e)},rememberUpDescription=function(e){var t;return t=upDescriptionNumber(e),liveUpDescriptions[t]=e},forgetUpDescription=function(e){var t;return t=upDescriptionNumber(e),delete liveUpDescriptions[t]},upDescriptionNumber=function(e){return u.last(e)._descriptionNumber},emit=function(e,t){var n,r;return null==t&&(t={}),r=$.Event(e,t),(n=t.$element)?delete t.$element:n=$(document),logEmission(e,t),n.trigger(r),r},logEmission=function(e,t){var n,r,o;return t.hasOwnProperty("message")?(n=t.message,delete t.message,u.isArray(n)?(o=n,n=o[0],r=2<=o.length?slice.call(o,1):[]):r=[],n?u.isPresent(t)?up.puts.apply(up,[n+" (%s (%o))"].concat(slice.call(r),[e],[t])):up.puts.apply(up,[n+" (%s)"].concat(slice.call(r),[e])):void 0):u.isPresent(t)?up.puts("Emitted event %s (%o)",e,t):up.puts("Emitted event %s",e)},nobodyPrevents=function(){var e,t;return e=1<=arguments.length?slice.call(arguments,0):[],t=emit.apply(null,e),t.isDefaultPrevented()?(up.puts("An observer prevented the event %s",e[0]),!1):!0},onEscape=function(e){return live("keydown","body",function(t){return u.escapePressed(t)?e(t):void 0})},snapshot=function(){var e,t,n,r;for(r=[],t=0,n=liveUpDescriptions.length;n>t;t++)e=liveUpDescriptions[t],r.push(e.isDefault=!0);return r},restoreSnapshot=function(){var e,t,n,r,o;for(t=u.reject(liveUpDescriptions,function(e){return e.isDefault}),o=[],n=0,r=t.length;r>n;n++)e=t[n],o.push(unbind.apply(null,e));return o},emitReset=function(){return up.emit("up:framework:reset",{message:"Resetting framework"})},boot=function(){return up.browser.isSupported()?(up.browser.installPolyfills(),up.emit("up:framework:boot",{message:"Booting framework"})):void 0},live("up:framework:boot",snapshot),live("up:framework:reset",restoreSnapshot),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),on:live,off:unbind,emit:emit,nobodyPrevents:nobodyPrevents,onEscape:onEscape,emitReset:emitReset,boot:boot}}(jQuery),up.on=up.bus.on,up.off=up.bus.off,up.emit=up.bus.emit,up.reset=up.bus.emitReset,up.boot=up.bus.boot}.call(this),function(){var e=[].slice;up.syntax=function(t){var n,r,o,u,i,a,s,l,p,c,f;return f=up.util,n="up-destroyable",r="up-destroyer",s=[],a=function(){var t,n,r;return r=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],up.browser.isSupported()?(a=t.pop(),n=f.options(t[0]),s.push({selector:r,callback:a,batch:n.batch,keep:n.keep})):void 0},o=function(e,t,o){var u,i;return up.puts(e.isDefault?void 0:"Compiling '%s' on %o",e.selector,o),e.keep&&(i=f.isString(e.keep)?e.keep:"",t.attr("up-keep",i)),u=e.callback.apply(o,[t,l(t)]),f.isFunction(u)?(t.addClass(n),t.data(r,u)):void 0},i=function(e,n){var r;return n=f.options(n),r=t(n.skip),up.log.group("Compiling fragment %o",e.get(0),function(){var n,u,i,l;for(l=[],u=0,i=s.length;i>u;u++)a=s[u],n=f.findWithSelf(e,a.selector),n=n.filter(function(){var e;return e=t(this),f.all(r,function(t){return 0===e.closest(t).length})}),l.push(n.length?up.log.group(a.isDefault?void 0:"Compiling '%s' on %d element(s)",a.selector,n.length,function(){return a.batch?o(a,n,n.get()):n.each(function(){return o(a,t(this),this)})}):void 0);return l})},u=function(e){return f.findWithSelf(e,"."+n).each(function(){var e,n;return e=t(this),(n=e.data(r))()})},l=function(e){var n,r;return n=t(e),r=n.attr("up-data"),f.isString(r)&&""!==f.trim(r)?JSON.parse(r):{}},c=function(){var e,t,n;for(n=[],e=0,t=s.length;t>e;e++)a=s[e],n.push(a.isDefault=!0);return n},p=function(){return s=f.select(s,function(e){return e.isDefault})},up.on("up:framework:boot",c),up.on("up:framework:reset",p),{compiler:a,compile:i,clean:u,data:l}}(jQuery),up.compiler=up.syntax.compiler,up.ready=function(){return up.util.error("up.ready no longer exists. Please use up.hello instead.")},up.awaken=function(){return up.util.error("up.awaken no longer exists. Please use up.compiler instead.")}}.call(this),function(){up.history=function(e){var t,n,r,o,u,i,a,s,l,p,c,f,d,m,h,v;return v=up.util,n=v.config({popTargets:["body"],restoreScroll:!0}),p=void 0,i=void 0,m=function(){return n.reset(),p=void 0,i=void 0},a=function(e){return v.normalizeUrl(e,{hash:!0})},r=function(){return a(up.browser.url())},o=function(e){return a(e)===r()},s=function(e){return i&&(p=i,i=void 0),i=e},d=function(e,t){return u("replace",e,t)},c=function(e,t){return up.puts("Current location is now %s",e),u("push",e,t)},u=function(e,n,u){var i,a;return u=v.options(u,{force:!1}),u.force||!o(n)?up.browser.canPushState()?(i=e+"State",a=t(),window.history[i](a,"",n),s(r())):v.error("This browser doesn't support history.pushState"):void 0},t=function(){return{fromUp:!0}},h=function(e){var t;return(null!=e?e.fromUp:void 0)?(t=r(),up.log.group("Restoring URL %s",t,function(){var e;return e=n.popTargets.join(", "),up.replace(e,t,{history:!1,reveal:!1,transition:"none",saveScroll:!1,restoreScroll:n.restoreScroll})})):up.puts("Ignoring a state not pushed by Unpoly (%o)",e)},l=function(e){return up.log.group("History state popped to URL %s",r(),function(){var t;return s(r()),up.layout.saveScroll({url:p}),t=e.originalEvent.state,h(t)})},up.browser.canPushState()&&(f=function(){return e(window).on("popstate",l),d(r(),{force:!0})},"undefined"!=typeof jasmine&&null!==jasmine?f():setTimeout(f,100)),up.compiler("[up-back]",function(e){return v.isPresent(p)?(v.setMissingAttrs(e,{"up-href":p,"up-restore-scroll":""}),e.removeAttr("up-back"),up.link.makeFollowable(e)):void 0}),up.on("up:framework:reset",m),{config:n,defaults:function(){return v.error("up.history.defaults(...) no longer exists. Set values on he up.history.config property instead.")},push:c,replace:d,url:r,previousUrl:function(){return p},normalizeUrl:a}}(jQuery)}.call(this),function(){var slice=[].slice;up.layout=function($){var SCROLL_PROMISE_KEY,anchoredRight,config,finishScrolling,fixedChildren,lastScrollTops,measureObstruction,reset,restoreScroll,reveal,revealOrRestoreScroll,saveScroll,scroll,scrollTops,u,viewportOf,viewportSelector,viewports,viewportsWithin;return u=up.util,config=u.config({duration:0,viewports:[document,".up-modal","[up-viewport]"],fixedTop:["[up-fixed~=top]"],fixedBottom:["[up-fixed~=bottom]"],anchoredRight:["[up-anchored~=right]","[up-fixed~=top]","[up-fixed~=bottom]","[up-fixed~=right]"],snap:50,substance:150,easing:"swing"}),lastScrollTops=u.cache({size:30,key:up.history.normalizeUrl}),reset=function(){return config.reset(),lastScrollTops.clear()},SCROLL_PROMISE_KEY="up-scroll-promise",scroll=function(e,t,n){var r,o,i,a,s;return r=$(e),n=u.options(n),i=u.option(n.duration,config.duration),a=u.option(n.easing,config.easing),finishScrolling(r),i>0?(o=$.Deferred(),r.data(SCROLL_PROMISE_KEY,o),o.then(function(){return r.removeData(SCROLL_PROMISE_KEY),r.finish()}),s={scrollTop:t},r.get(0)===document&&(r=$("html, body")),r.animate(s,{duration:i,easing:a,complete:function(){return o.resolve()}}),o):(r.scrollTop(t),u.resolvedDeferred())},finishScrolling=function(e){return $(e).each(function(){var e;return(e=$(this).data(SCROLL_PROMISE_KEY))?e.resolve():void 0})},anchoredRight=function(){return u.multiSelector(config.anchoredRight).select()},measureObstruction=function(){var e,t,n,r;return n=function(e,t){var n,r;return n=$(e),r=n.css(t),u.isPresent(r)||u.error("Fixed element %o must have a CSS attribute %s",n.get(0),t),parseInt(r)+n.height()},t=function(){var e,t,o,u;for(o=$(config.fixedTop.join(", ")),u=[],e=0,t=o.length;t>e;e++)r=o[e],u.push(n(r,"top"));return u}(),e=function(){var e,t,o,u;for(o=$(config.fixedBottom.join(", ")),u=[],e=0,t=o.length;t>e;e++)r=o[e],u.push(n(r,"bottom"));return u}(),{top:Math.max.apply(Math,[0].concat(slice.call(t))),bottom:Math.max.apply(Math,[0].concat(slice.call(e)))}},reveal=function(e,t){var n,r,o,i,a,s,l,p,c,f,d,m,h,v;return n=$(e),up.puts("Revealing fragment %o",e.get(0)),t=u.options(t),r=t.viewport?$(t.viewport):viewportOf(n),m=u.option(t.snap,config.snap),v=r.is(document),h=v?u.clientSize().height:r.height(),c=r.scrollTop(),s=c,p=void 0,l=void 0,v?(l=measureObstruction(),p=0):(l={top:0,bottom:0},p=c),f=function(){return s+l.top},d=function(){return s+h-l.bottom-1},o=u.measure(n,{relative:r}),i=o.top+p,a=i+Math.min(o.height,config.substance)-1,a>d()&&(s+=a-d()),(i<f()||t.top)&&(s=i-l.top),m>s&&(s=0),s!==c?scroll(r,s,t):u.resolvedDeferred()},viewportSelector=function(){return u.multiSelector(config.viewports)},viewportOf=function(e){var t,n;return t=$(e),n=viewportSelector().seekUp(t),n.length||u.error("Could not find viewport for %o",t),n},viewportsWithin=function(e){var t;return t=$(e),viewportSelector().findWithSelf(t)},viewports=function(){return viewportSelector().select()},scrollTops=function(){var e,t,n,r,o,u,i;for(u={},o=config.viewports,t=0,r=o.length;r>t;t++)i=o[t],e=$(i),e.length&&(n=i,i===document&&(n="document"),u[n]=e.scrollTop());return u},fixedChildren=function(e){var t,n;return null==e&&(e=void 0),e||(e=document.body),n=$(e),t=n.find("[up-fixed]"),u.isPresent(config.fixedTop)&&(t=t.add(n.find(config.fixedTop.join(", ")))),u.isPresent(config.fixedBottom)&&(t=t.add(n.find(config.fixedBottom.join(", ")))),t},saveScroll=function(e){var t,n;return null==e&&(e={}),n=u.option(e.url,up.history.url()),t=u.option(e.tops,scrollTops()),up.puts("Saving scroll positions for URL %s (%o)",n,t),lastScrollTops.set(n,t)},restoreScroll=function(e){var t,n,r,o,i;return null==e&&(e={}),i=up.history.url(),r=void 0,e.around?(n=viewportsWithin(e.around),t=viewportOf(e.around),r=t.add(n)):r=viewports(),o=lastScrollTops.get(i),up.log.group("Restoring scroll positions for URL %s to %o",i,o,function(){var e,t,n,i;for(t in o)i=o[t],n="document"===t?document:t,e=r.filter(n),scroll(e,i,{duration:0});return u.resolvedDeferred()})},revealOrRestoreScroll=function(e,t){var n,r,o,i;return n=$(e),t.restoreScroll?restoreScroll({around:n}):t.reveal?(t.source&&(i=u.parseUrl(t.source),i.hash&&"#"!==i.hash&&(o=i.hash.substr(1),r=u.findWithSelf(n,"#"+o+", a[name='"+o+"']"),r.length&&(n=r))),reveal(n)):u.resolvedDeferred()},up.on("up:framework:reset",reset),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),reveal:reveal,scroll:scroll,finishScrolling:finishScrolling,config:config,defaults:function(){return u.error("up.layout.defaults(...) no longer exists. Set values on he up.layout.config property instead.")},viewportOf:viewportOf,viewportsWithin:viewportsWithin,viewports:viewports,scrollTops:scrollTops,saveScroll:saveScroll,restoreScroll:restoreScroll,revealOrRestoreScroll:revealOrRestoreScroll,anchoredRight:anchoredRight,fixedChildren:fixedChildren}}(jQuery),up.scroll=up.layout.scroll,up.reveal=up.layout.reveal}.call(this),function(){up.flow=function($){var autofocus,destroy,emitFragmentInserted,emitFragmentKept,extract,findKeepPlan,findOldFragment,first,hello,isRealElement,oldFragmentNotFound,parseImplantSteps,parseResponse,processResponse,reload,replace,resolveSelector,setSource,source,swapElements,transferKeepableElements,u,updateHistory;return u=up.util,setSource=function(e,t){var n;return n=$(e),u.isPresent(t)&&(t=u.normalizeUrl(t)),n.attr("up-source",t)},source=function(e){var t;return t=$(e).closest("[up-source]"),u.presence(t.attr("up-source"))||up.browser.url()},resolveSelector=function(e,t){var n,r;return u.isString(e)?(r=e,u.contains(r,"&")&&(t?(n=u.selectorForElement(t),r=r.replace(/\&/,n)):u.error("Found origin reference (%s) in selector %s, but options.origin is missing","&",r))):r=u.selectorForElement(e),r},replace=function(e,t,n){var r,o,i,a;return up.puts("Replacing %s from %s (%o)",e,t,n),n=u.options(n),a=resolveSelector(e,n.origin),r=u.option(n.failTarget,"body"),r=resolveSelector(r,n.origin),up.browser.canPushState()||n.history===!1?(i={url:t,method:n.method,data:n.data,target:a,failTarget:r,cache:n.cache,preload:n.preload,headers:n.headers},o=up.ajax(i),o.done(function(e,r,o){return processResponse(!0,a,t,i,o,n)}),o.fail(function(e){return processResponse(!1,r,t,i,e,n)}),o):(n.preload||up.browser.loadPage(t,u.only(n,"method","data")),u.unresolvablePromise())},processResponse=function(e,t,n,r,o,i){var a,s,l,p;return i.method=u.normalizeMethod(u.option(u.methodFromXhr(o),i.method)),i.title=u.option(u.titleFromXhr(o),i.title),a="GET"===i.method,(p=u.locationFromXhr(o))?(n=p,e&&(s={url:n,method:u.methodFromXhr(o),target:t},up.proxy.alias(r,s))):a&&(l=u.requestDataAsQuery(i.data))&&(n=n+"?"+l),e?a?(i.history===!1||u.isString(i.history)||(i.history=n),i.source===!1||u.isString(i.source)||(i.source=n)):(u.isString(i.history)||(i.history=!1),u.isString(i.source)||(i.source="keep")):(i.transition=i.failTransition,i.failTransition=void 0,a?(i.history!==!1&&(i.history=n),i.source!==!1&&(i.source=n)):(i.source="keep",i.history=!1)),i.preload?u.resolvedPromise():extract(t,o.responseText,i)},extract=function(e,t,n){return up.log.group("Extracting %s from %d bytes of HTML",e,null!=t?t.length:void 0,function(){var r,o,i,a,s,l,p,c;for(n=u.options(n,{historyMethod:"push",requireMatch:!0,keep:!0}),p=resolveSelector(e,n.origin),l=parseResponse(t,n),n.title||(n.title=l.title()),n.saveScroll!==!1&&up.layout.saveScroll(),"function"==typeof n.beforeSwap&&n.beforeSwap(),r=[],updateHistory(n),a=parseImplantSteps(p,n),o=0,i=a.length;i>o;o++)c=a[o],up.log.group("Updating %s",c.selector,function(){var e,t,o,u;return t=findOldFragment(c.selector,n),e=null!=(u=l.find(c.selector))?u.first():void 0,t&&e?(o=swapElements(t,e,c.pseudoClass,c.transition,n),r.push(o)):void 0});return"function"==typeof n.afterSwap&&n.afterSwap(),(s=up.motion).when.apply(s,r)})},findOldFragment=function(e,t){return first(".up-popup "+e)||first(".up-modal "+e)||first(e)||oldFragmentNotFound(e,t)},oldFragmentNotFound=function(e,t){var n;return t.requireMatch?(n="Could not find selector %s in current body HTML","#"===n[0]&&(n+=" (avoid using IDs)"),u.error(n,e)):void 0},parseResponse=function(e,t){var n;return n=u.createElementFromHtml(e),{title:function(){var e;return null!=(e=n.querySelector("title"))?e.textContent:void 0},find:function(r){var o;return(o=$.find(r,n)[0])?$(o):t.requireMatch?u.error("Could not find selector %s in response %o",r,e):void 0}}},updateHistory=function(e){return e.history?(e.title&&(document.title=e.title),up.history[e.historyMethod](e.history)):void 0},swapElements=function(e,t,n,r,o){var i,a,s,l;return r||(r="none"),"keep"===o.source&&(o=u.merge(o,{source:source(e)})),up.motion.finish(e),n?(i=t.contents().wrap('<span class="up-insertion"></span>').parent(),"before"===n?e.prepend(i):e.append(i),hello(i.children(),o),s=up.layout.revealOrRestoreScroll(i,o),s=s.then(function(){return up.animate(i,r,o)}),s=s.then(function(){return u.unwrapElement(i)})):(a=findKeepPlan(e,t,o))?(emitFragmentKept(a),s=u.resolvedPromise()):(l=function(){return o.keepPlans=transferKeepableElements(e,t,o),t.insertBefore(e),o.source!==!1&&setSource(t,o.source),autofocus(t),hello(t,o),up.morph(e,t,r,o)},s=destroy(e,{animation:l})),s},transferKeepableElements=function(e,t,n){var r,o,i,a,s,l,p,c;if(a=[],n.keep)for(c=e.find("[up-keep]"),i=0,l=c.length;l>i;i++)s=c[i],r=$(s),(p=findKeepPlan(r,t,u.merge(n,{descendantsOnly:!0})))&&(o=r.clone(),r.replaceWith(o),p.$newElement.replaceWith(r),a.push(p));
2
- return a},findKeepPlan=function(e,t,n){var r,o,i,a,s;return n.keep&&(r=e,(s=u.castedAttr(r,"up-keep"))&&(u.isString(s)||(s="&"),s=resolveSelector(s,r),o=n.descendantsOnly?t.find(s):u.findWithSelf(t,s),o=o.first(),o.length&&o.is("[up-keep]")&&(i={$element:r,$newElement:o,newData:up.syntax.data(o)},a=u.merge(i,{message:["Keeping element %o",r.get(0)]}),up.bus.nobodyPrevents("up:fragment:keep",a))))?i:void 0},parseImplantSteps=function(e,t){var n,r,o,i,a,s,l,p,c,f,d,m;for(d=t.transition||t.animation||"none",n=/\ *,\ */,r=e.split(n),m=u.isString(m)?d.split(n):[d],l=[],o=i=0,a=r.length;a>i;o=++i)p=r[o],c=p.match(/^(.+?)(?:\:(before|after))?$/),c||u.error('Could not parse selector atom "%s"',p),e=c[1],"html"===e&&(e="body"),s=c[2],f=m[o]||u.last(m),l.push({selector:e,pseudoClass:s,transition:f});return l},hello=function(e,t){var n,r,o,i,a,s;for(n=$(e),t=u.options(t,{keepPlans:[]}),o=[],s=t.keepPlans,r=0,i=s.length;i>r;r++)a=s[r],emitFragmentKept(a),o.push(a.$element);return up.syntax.compile(n,{skip:o}),emitFragmentInserted(n,t),n},emitFragmentInserted=function(e,t){var n;return n=$(e),up.emit("up:fragment:inserted",{$element:n,message:["Inserted fragment %o",n.get(0)],origin:t.origin})},emitFragmentKept=function(e){var t;return t=u.merge(e,{message:["Kept fragment %o",e.$element.get(0)]}),up.emit("up:fragment:kept",t)},autofocus=function(e){var t,n;return n="[autofocus]:last",t=u.findWithSelf(e,n),t.length&&t.get(0)!==document.activeElement?t.focus():void 0},isRealElement=function(e){var t;return t=".up-ghost, .up-destroying",0===e.closest(t).length},first=function(e){var t,n,r,o,i,a;for(o=void 0,o=u.isString(e)?$(e).get():e,n=void 0,i=0,a=o.length;a>i;i++)if(r=o[i],t=$(r),isRealElement(t)){n=t;break}return n},destroy=function(e,t){var n,r,o,i,a;return n=$(e),n.is(".up-placeholder, .up-tooltip, .up-modal, .up-popup")||(i=["Destroying fragment %o",n.get(0)],a=["Destroyed fragment %o",n.get(0)]),up.bus.nobodyPrevents("up:fragment:destroy",{$element:n,message:i})?(t=u.options(t,{animation:!1}),r=up.motion.animateOptions(t),n.addClass("up-destroying"),u.isPresent(t.url)&&up.history.push(t.url),u.isPresent(t.title)&&(document.title=t.title),o=u.presence(t.animation,u.isDeferred)||up.motion.animate(n,t.animation,r),o.then(function(){return up.syntax.clean(n),up.emit("up:fragment:destroyed",{$element:n,message:a}),n.remove()}),o):$.Deferred()},reload=function(e,t){var n;return t=u.options(t,{cache:!1}),n=t.url||source(e),replace(e,n,t)},up.on("ready",function(){var e;return e=$(document.body),setSource(e,up.browser.url()),hello(e)}),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),replace:replace,reload:reload,destroy:destroy,extract:extract,first:first,source:source,resolveSelector:resolveSelector,hello:hello}}(jQuery),up.replace=up.flow.replace,up.extract=up.flow.extract,up.reload=up.flow.reload,up.destroy=up.flow.destroy,up.first=up.flow.first,up.hello=up.flow.hello}.call(this),function(){up.motion=function(e){var t,n,r,o,u,i,a,s,l,p,c,f,d,m,h,v,g,y,b,w,k,S,x,T,$;return T=up.util,u={},s={},x={},l={},a=T.config({duration:300,delay:0,easing:"ease",enabled:!0}),y=function(){return u=T.copy(s),x=T.copy(l),a.reset()},m=function(){return a.enabled&&up.browser.canCssTransition()},n=function(t,o,u){var a;return a=e(t),f(a),u=r(u),"none"===o||o===!1?v():T.isFunction(o)?i(o(a,u),o):T.isString(o)?n(a,c(o),u):T.isHash(o)?m()?T.cssAnimate(a,o,u):(a.css(o),T.resolvedDeferred()):T.error("Unknown animation type for %o",o)},r=function(e,t){var n;return null==t&&(t=null),e=T.options(e),n={},n.easing=T.option(e.easing,null!=t?t.attr("up-easing"):void 0,a.easing),n.duration=Number(T.option(e.duration,null!=t?t.attr("up-duration"):void 0,a.duration)),n.delay=Number(T.option(e.delay,null!=t?t.attr("up-delay"):void 0,a.delay)),n},c=function(e){return u[e]||T.error("Unknown animation %o",e)},t="up-ghosting-promise",$=function(e,n,r,o){var u,i,a,s,l,p,c;return s=void 0,i=void 0,l=void 0,a=void 0,u=up.layout.viewportOf(e),T.temporaryCss(n,{display:"none"},function(){return s=g(e,u),s.$ghost.addClass("up-destroying"),s.$bounds.addClass("up-destroying"),l=u.scrollTop()}),T.temporaryCss(e,{display:"none"},function(){return up.layout.revealOrRestoreScroll(n,r),i=g(n,u),a=u.scrollTop()}),s.moveTop(a-l),e.hide(),c=T.temporaryCss(n,{opacity:"0"}),p=o(s.$ghost,i.$ghost),e.data(t,p),n.data(t,p),p.then(function(){return e.removeData(t),n.removeData(t),c(),s.$bounds.remove(),i.$bounds.remove()}),p},f=function(t){return e(t).each(function(){var t;return t=e(this),T.finishCssAnimate(t),d(t)})},d=function(e){var n;return(n=e.data(t))?(up.puts("Canceling existing ghosting on %o",e),"function"==typeof n.resolve?n.resolve():void 0):void 0},i=function(e,t){return T.isDeferred(e)?e:T.error("Did not return a promise with .then and .resolve methods: %o",t)},h=function(t,o,a,s){var l,c;return"none"===a&&(a=!1),c=e(t),l=e(o),p(c,a),p(l,a),up.log.group(a?"Morphing %o to %o (using %o)":void 0,t,o,a,function(){var e,t,o,p;return t=T.only(s,"reveal","restoreScroll","source"),t=T.extend(t,r(s)),m()?(f(c),f(l),a?(e=u[a])?(w(c,l,t),n(l,e,t)):(p=T.presence(a,T.isFunction)||x[a])?$(c,l,t,function(e,n){var r;return r=p(e,n,t),i(r,a)}):T.isString(a)&&a.indexOf("/")>=0?(o=a.split("/"),p=function(e,t,r){return b(n(e,o[0],r),n(t,o[1],r))},h(c,l,p,t)):T.error("Unknown transition %o",a):w(c,l,t)):w(c,l,t)})},p=function(e,t){var n;return t&&0===e.parents("body").length?(n=e.get(0),T.error("Can't morph a <%s> element (%o)",n.tagName,n)):void 0},w=function(e,t,n){return e.hide(),up.layout.revealOrRestoreScroll(t,n)},g=function(t,n){var r,o,u,i,a,s,l,p,c;for(i=T.measure(t,{relative:!0,inner:!0}),u=t.clone(),u.find("script").remove(),u.css({position:"static"===t.css("position")?"static":"relative",top:"",right:"",bottom:"",left:"",width:"100%",height:"100%"}),u.addClass("up-ghost"),r=e('<div class="up-bounds"></div>'),r.css({position:"absolute"}),r.css(i),c=i.top,p=function(e){return 0!==e?(c+=e,r.css({top:c})):void 0},u.appendTo(r),r.insertBefore(t),p(t.offset().top-u.offset().top),o=up.layout.fixedChildren(u),s=0,l=o.length;l>s;s++)a=o[s],T.fixedToAbsolute(a,n);return{$ghost:u,$bounds:r,moveTop:p}},S=function(e,t){return x[e]=t},o=function(e,t){return u[e]=t},k=function(){return s=T.copy(u),l=T.copy(x)},b=T.resolvableWhen,v=T.resolvedDeferred,o("none",v),o("fade-in",function(e,t){return e.css({opacity:0}),n(e,{opacity:1},t)}),o("fade-out",function(e,t){return e.css({opacity:1}),n(e,{opacity:0},t)}),o("move-to-top",function(e,t){var r,o;return r=T.measure(e),o=r.top+r.height,e.css({"margin-top":"0px"}),n(e,{"margin-top":"-"+o+"px"},t)}),o("move-from-top",function(e,t){var r,o;return r=T.measure(e),o=r.top+r.height,e.css({"margin-top":"-"+o+"px"}),n(e,{"margin-top":"0px"},t)}),o("move-to-bottom",function(e,t){var r,o;return r=T.measure(e),o=T.clientSize().height-r.top,e.css({"margin-top":"0px"}),n(e,{"margin-top":o+"px"},t)}),o("move-from-bottom",function(e,t){var r,o;return r=T.measure(e),o=T.clientSize().height-r.top,e.css({"margin-top":o+"px"}),n(e,{"margin-top":"0px"},t)}),o("move-to-left",function(e,t){var r,o;return r=T.measure(e),o=r.left+r.width,e.css({"margin-left":"0px"}),n(e,{"margin-left":"-"+o+"px"},t)}),o("move-from-left",function(e,t){var r,o;return r=T.measure(e),o=r.left+r.width,e.css({"margin-left":"-"+o+"px"}),n(e,{"margin-left":"0px"},t)}),o("move-to-right",function(e,t){var r,o;return r=T.measure(e),o=T.clientSize().width-r.left,e.css({"margin-left":"0px"}),n(e,{"margin-left":o+"px"},t)}),o("move-from-right",function(e,t){var r,o;return r=T.measure(e),o=T.clientSize().width-r.left,e.css({"margin-left":o+"px"}),n(e,{"margin-left":"0px"},t)}),o("roll-down",function(e,t){var r,o;return r=e.height(),o=T.temporaryCss(e,{height:"0px",overflow:"hidden"}),n(e,{height:r+"px"},t).then(o)}),S("none",v),S("move-left",function(e,t,r){return b(n(e,"move-to-left",r),n(t,"move-from-right",r))}),S("move-right",function(e,t,r){return b(n(e,"move-to-right",r),n(t,"move-from-left",r))}),S("move-up",function(e,t,r){return b(n(e,"move-to-top",r),n(t,"move-from-bottom",r))}),S("move-down",function(e,t,r){return b(n(e,"move-to-bottom",r),n(t,"move-from-top",r))}),S("cross-fade",function(e,t,r){return b(n(e,"fade-out",r),n(t,"fade-in",r))}),up.on("up:framework:boot",k),up.on("up:framework:reset",y),{morph:h,animate:n,animateOptions:r,finish:f,transition:S,animation:o,config:a,isEnabled:m,defaults:function(){return T.error("up.motion.defaults(...) no longer exists. Set values on he up.motion.config property instead.")},none:v,when:b,prependCopy:g}}(jQuery),up.transition=up.motion.transition,up.animation=up.motion.animation,up.morph=up.motion.morph,up.animate=up.motion.animate}.call(this),function(){var e=[].slice;up.proxy=function(t){var n,r,o,u,i,a,s,l,p,c,f,d,m,h,v,g,y,b,w,k,S,x,T,$,P,E,C,D,A,U,O,F,R;return R=up.util,n=void 0,P=void 0,i=void 0,x=void 0,a=void 0,C=[],m=R.config({busyDelay:300,preloadDelay:75,cacheSize:70,cacheExpiry:3e5,maxRequests:4,wrapMethods:["PATCH","PUT","DELETE"],wrapMethodParam:"_method",safeMethods:["GET","OPTIONS","HEAD"]}),l=function(e){return S(e),[e.url,e.method,e.data,e.target].join("|")},s=R.cache({size:function(){return m.cacheSize},expiry:function(){return m.cacheExpiry},key:l}),h=function(e){var t,n,r,o,u,i,a;for(e=S(e),n=[e],"html"!==e.target&&(i=R.merge(e,{target:"html"}),n.push(i),"body"!==e.target&&(u=R.merge(e,{target:"body"}),n.push(u))),r=0,o=n.length;o>r;r++)if(t=n[r],a=s.get(t))return a},O=s.set,D=s.remove,d=s.clear,c=function(){return clearTimeout(P),P=null},p=function(){return clearTimeout(i),i=null},A=function(){return n=null,c(),p(),x=0,m.reset(),a=!1,s.clear(),C=[]},A(),o=s.alias,S=function(e){return e._normalized||(e.method=R.normalizeMethod(e.method),e.url&&(e.url=R.normalizeUrl(e.url)),e.target||(e.target="body"),e._normalized=!0),e},r=function(e){var t,n,r,o,u;return t=e.cache===!0,n=e.cache===!1,u=R.only(e,"url","method","data","target","headers","_normalized"),u=S(u),r=!0,g(u)||t?(o=h(u))&&!n?(up.puts("Re-using cached response for %s %s",u.method,u.url),r="pending"===o.state()):(o=w(u),O(u,o),o.fail(function(){return D(u)})):(d(),o=w(u)),r&&!e.preload&&(k(),o.always(b)),console.groupEnd(),o},v=function(){return 0===x},u=function(){return x>0},k=function(){var e,t;return t=v(),x+=1,t?(e=function(){return u()?(up.emit("up:proxy:busy",{message:"Proxy is busy"}),a=!0):void 0},m.busyDelay>0?i=setTimeout(e,m.busyDelay):e()):void 0},b=function(){return x-=1,v()&&a?(up.emit("up:proxy:idle",{message:"Proxy is idle"}),a=!1):void 0},w=function(e){return x<m.maxRequests?y(e):E(e)},E=function(e){var n,r;return up.puts("Queuing request for %s %s",e.method,e.url),n=t.Deferred(),r={deferred:n,request:e},C.push(r),n.promise()},y=function(e){var n;return up.emit("up:proxy:load",R.merge(e,{message:["Loading %s %s",e.method,e.url]})),e=R.copy(e),e.headers||(e.headers={}),e.headers["X-Up-Target"]=e.target,e.data=R.requestDataAsArray(e.data),R.contains(m.wrapMethods,e.method)&&(e.data.push({name:m.wrapMethodParam,value:e.method}),e.method="POST"),n=t.ajax(e),n.done(function(t,n,r){return U(e,r)}),n.fail(function(t){return U(e,t)}),n},U=function(e,t){var n;return up.emit("up:proxy:received",R.merge(e,{message:["Server responded with %s %s (%d bytes)",t.status,t.statusText,null!=(n=t.responseText)?n.length:void 0]})),T()},T=function(){var t,n;return(t=C.shift())?(n=y(t.request),n.done(function(){var n,r;return n=1<=arguments.length?e.call(arguments,0):[],(r=t.deferred).resolve.apply(r,n)}),n.fail(function(){var n,r;return n=1<=arguments.length?e.call(arguments,0):[],(r=t.deferred).reject.apply(r,n)})):void 0},g=function(e){return S(e),R.contains(m.safeMethods,e.method)},f=function(e){var t,r;return r=parseInt(R.presentAttr(e,"up-delay"))||m.preloadDelay,e.is(n)?void 0:(n=e,c(),t=function(){return $(e),n=null},F(t,r))},F=function(e,t){return P=setTimeout(e,t)},$=function(e,n){var r,o;return r=t(e),n=R.options(n),o=up.link.followMethod(r,n),g({method:o})?up.log.group("Preloading link %o",r,function(){return n.preload=!0,up.follow(r,n)}):(up.puts("Won't preload %o due to unsafe method %s",r,o),R.resolvedPromise())},up.on("mouseover mousedown touchstart","[up-preload]",function(e,t){return up.link.childClicked(e,t)?void 0:f(t)}),up.on("up:framework:reset",A),{preload:$,ajax:r,get:h,alias:o,clear:d,remove:D,idle:v,busy:u,config:m,defaults:function(){return R.error("up.proxy.defaults(...) no longer exists. Set values on he up.proxy.config property instead.")}}}(jQuery),up.ajax=up.proxy.ajax}.call(this),function(){up.link=function($){var allowDefault,childClicked,follow,followMethod,followVariantSelectors,isFollowable,makeFollowable,onAction,shouldProcessLinkEvent,u,visit;return u=up.util,visit=function(e,t){var n;return t=u.options(t),n=u.option(t.target,"body"),up.replace(n,e,t)},follow=function(e,t){var n,r,o;return n=$(e),t=u.options(t),o=u.option(n.attr("up-href"),n.attr("href")),r=u.option(t.target,n.attr("up-target"),"body"),t.failTarget=u.option(t.failTarget,n.attr("up-fail-target"),"body"),t.transition=u.option(t.transition,u.castedAttr(n,"up-transition"),"none"),t.failTransition=u.option(t.failTransition,u.castedAttr(n,"up-fail-transition"),"none"),t.history=u.option(t.history,u.castedAttr(n,"up-history")),t.reveal=u.option(t.reveal,u.castedAttr(n,"up-reveal"),!0),t.cache=u.option(t.cache,u.castedAttr(n,"up-cache")),t.restoreScroll=u.option(t.restoreScroll,u.castedAttr(n,"up-restore-scroll")),t.method=followMethod(n,t),t.origin=u.option(t.origin,n),t.confirm=u.option(t.confirm,n.attr("up-confirm")),t=u.merge(t,up.motion.animateOptions(t,n)),up.browser.confirm(t.confirm).then(function(){return up.replace(r,o,t)})},followMethod=function(e,t){var n;return n=$(e),t=u.options(t),u.option(t.method,n.attr("up-method"),n.attr("data-method"),"get").toUpperCase()},childClicked=function(e,t){var n,r;return n=$(e.target),r=n.closest("a, [up-href]"),r.length&&t.find(r).length},shouldProcessLinkEvent=function(e,t){return u.isUnmodifiedMouseEvent(e)&&!childClicked(e,t)},followVariantSelectors=[],allowDefault=function(){},onAction=function(e,t){return followVariantSelectors.push(e),up.on("click","a"+e+", [up-href]"+e,function(e,n){return shouldProcessLinkEvent(e,n)?n.is("[up-instant]")?e.preventDefault():(e.preventDefault(),t(n)):allowDefault(e)}),up.on("mousedown","a"+e+"[up-instant], [up-href]"+e+"[up-instant]",function(e,n){return shouldProcessLinkEvent(e,n)?(e.preventDefault(),t(n)):void 0})},isFollowable=function(e){return u.any(followVariantSelectors,function(t){return e.is(t)})},makeFollowable=function(e){var t;return t=$(e),isFollowable(t)?void 0:t.attr("up-follow","")},onAction("[up-target]",function(e){return follow(e)}),onAction("[up-follow]",function(e){return follow(e)}),up.compiler("[up-expand]",function(e){var t,n,r,o,i,a,s,l,p,c;if(t=e.find("a, [up-href]"),(p=e.attr("up-expand"))&&(t=t.filter(p)),i=t.get(0)){for(c=/^up-/,s={},s["up-href"]=$(i).attr("href"),l=i.attributes,r=0,o=l.length;o>r;r++)n=l[r],a=n.name,a.match(c)&&(s[a]=n.value);return u.setMissingAttrs(e,s),e.removeAttr("up-expand"),makeFollowable(e)}}),up.compiler("[up-dash]",function(e){var t,n;return n=u.castedAttr(e,"up-dash"),t={"up-preload":"true","up-instant":"true"},n===!0?t["up-follow"]="":t["up-target"]=n,u.setMissingAttrs(e,t),e.removeAttr("up-dash")}),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),visit:visit,follow:follow,makeFollowable:makeFollowable,shouldProcessLinkEvent:shouldProcessLinkEvent,childClicked:childClicked,followMethod:followMethod,onAction:onAction}}(jQuery),up.visit=up.link.visit,up.follow=up.link.follow}.call(this),function(){var slice=[].slice;up.form=function($){var autosubmit,config,currentValuesForToggle,observe,observeForm,reset,resolveValidateTarget,submit,toggleTargets,u,validate;return u=up.util,config=u.config({validateTargets:["[up-fieldset]:has(&)","fieldset:has(&)","label:has(&)","form:has(&)"],fields:[":input"],observeDelay:0}),reset=function(){return config.reset()},submit=function(e,t){var n,r,o,i,a;return n=$(e).closest("form"),t=u.options(t),i=u.option(t.target,n.attr("up-target"),"body"),a=u.option(t.url,n.attr("action"),up.browser.url()),t.failTarget=u.option(t.failTarget,n.attr("up-fail-target"))||u.selectorForElement(n),t.history=u.option(t.history,u.castedAttr(n,"up-history"),!0),t.transition=u.option(t.transition,u.castedAttr(n,"up-transition"),"none"),t.failTransition=u.option(t.failTransition,u.castedAttr(n,"up-fail-transition"),"none"),t.method=u.option(t.method,n.attr("up-method"),n.attr("data-method"),n.attr("method"),"post").toUpperCase(),t.headers=u.option(t.headers,{}),t.reveal=u.option(t.reveal,u.castedAttr(n,"up-reveal"),!0),t.cache=u.option(t.cache,u.castedAttr(n,"up-cache")),t.restoreScroll=u.option(t.restoreScroll,u.castedAttr(n,"up-restore-scroll")),t.origin=u.option(t.origin,n),t.data=n.serializeArray(),t=u.merge(t,up.motion.animateOptions(t,n)),r=n.find("input[type=file]").length,t.validate&&(t.headers||(t.headers={}),t.headers["X-Up-Validate"]=t.validate,r)?u.unresolvablePromise():(n.addClass("up-active"),r||!up.browser.canPushState()&&t.history!==!1?(n.get(0).submit(),u.unresolvablePromise()):(o=up.replace(i,a,t),o.always(function(){return n.removeClass("up-active")}),o))},observe=function(){var $element,args,callback,callbackArg,callbackPromise,callbackTimer,changeEvents,check,clearTimer,delay,knownValue,nextCallback,options,rawCallback,runNextCallback,selectorOrElement;return selectorOrElement=arguments[0],args=2<=arguments.length?slice.call(arguments,1):[],options={},callbackArg=void 0,1===args.length&&(callbackArg=args[0]),args.length>1&&(options=u.options(args[0]),callbackArg=args[1]),$element=$(selectorOrElement),options=u.options(options),delay=u.option($element.attr("up-delay"),options.delay,config.observeDelay),delay=parseInt(delay),callback=null,u.isGiven(options.change)&&u.error("up.observe now takes the change callback as the last argument"),rawCallback=u.option(u.presentAttr($element,"op-observe"),callbackArg),callback=u.isString(rawCallback)?function(value,$field){return eval(rawCallback)}:rawCallback||u.error("up.observe: No change callback given"),$element.is("form")?observeForm($element,options,callback):(knownValue=null,callbackTimer=null,callbackPromise=u.resolvedPromise(),nextCallback=null,runNextCallback=function(){var e;return nextCallback?(e=nextCallback(),nextCallback=null,e):void 0},check=function(){var e,t,n;return n=$element.val(),t=u.isNull(knownValue),knownValue===n||(knownValue=n,t)?void 0:(clearTimer(),nextCallback=function(){return callback.apply($element.get(0),[n,$element])},e=function(){return callbackPromise.then(function(){var e;return e=runNextCallback(),callbackPromise=u.isPromise(e)?e:u.resolvedPromise()})},0===delay?e():setTimeout(e,delay))},clearTimer=function(){return clearTimeout(callbackTimer)},changeEvents=up.browser.canInputEvent()?"input change":"input change keypress paste cut click propertychange",$element.on(changeEvents,check),check(),function(){return $element.off(changeEvents,check),clearTimer()})},observeForm=function(e,t,n){var r,o;return r=u.multiSelector(config.fields).find(e),o=u.map(r,function(e){return observe(e,n)}),function(){var e,t,n,r;for(r=[],t=0,n=o.length;n>t;t++)e=o[t],r.push(e());return r}},autosubmit=function(e,t){return observe(e,t,function(e,t){var n;return n=t.closest("form"),t.addClass("up-active"),submit(n).always(function(){return t.removeClass("up-active")})})},resolveValidateTarget=function(e,t){var n;return n=u.option(t.target,e.attr("up-validate")),u.isBlank(n)&&(n||(n=u.detect(config.validateTargets,function(n){var r;return r=up.flow.resolveSelector(n,t.origin),e.closest(r).length}))),u.isBlank(n)&&u.error("Could not find default validation target for %o (tried ancestors %o)",e.get(0),config.validateTargets),u.isString(n)||(n=u.selectorForElement(n)),n},validate=function(e,t){var n,r,o;return n=$(e),t=u.options(t),t.origin=n,t.target=resolveValidateTarget(n,t),t.failTarget=t.target,t.history=!1,t.headers=u.option(t.headers,{}),t.validate=n.attr("name")||"__none__",t=u.merge(t,up.motion.animateOptions(t,n)),r=n.closest("form"),o=up.submit(r,t)},currentValuesForToggle=function(e){var t,n,r;return r=void 0,e.is("input[type=checkbox]")?r=e.is(":checked")?[":checked",":present",e.val()]:[":unchecked",":blank"]:e.is("input[type=radio]")?(t=e.closest("form, body").find("input[type='radio'][name='"+e.attr("name")+"']:checked"),r=t.length?[":checked",":present",t.val()]:[":unchecked",":blank"]):(n=e.val(),r=u.isPresent(n)?[":present",n]:[":blank"]),r},currentValuesForToggle=function(e){var t,n,r,o;return e.is("input[type=checkbox]")?e.is(":checked")?(r=e.val(),n=":checked"):n=":unchecked":e.is("input[type=radio]")?(t=e.closest("form, body").find("input[type='radio'][name='"+e.attr("name")+"']:checked"),t.length?(n=":checked",r=t.val()):n=":unchecked"):r=e.val(),o=[],u.isPresent(r)?(o.push(r),o.push(":present")):o.push(":blank"),u.isPresent(n)&&o.push(n),o},toggleTargets=function(e,t){var n,r,o;return n=$(e),t=u.options(t),o=u.option(t.target,n.attr("up-toggle")),u.isPresent(o)||u.error("No toggle target given for %o",n.get(0)),r=currentValuesForToggle(n),$(o).each(function(){var e,t,n,o;return e=$(this),(t=e.attr("up-hide-for"))?(t=t.split(" "),n=0===u.intersect(r,t).length):(o=(o=e.attr("up-show-for"))?o.split(" "):[":present",":checked"],n=u.intersect(r,o).length>0),e.toggle(n)})},up.on("submit","form[up-target]",function(e,t){return e.preventDefault(),submit(t)}),up.on("change","[up-validate]",function(e,t){return validate(t)}),up.on("change","[up-toggle]",function(e,t){return console.log("CHANGE EVENT"),toggleTargets(t)}),up.compiler("[up-toggle]",function(e){return toggleTargets(e)}),up.compiler("[up-observe]",function(e){return observe(e)}),up.compiler("[up-autosubmit]",function(e){return autosubmit(e)}),up.on("up:framework:reset",reset),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),config:config,submit:submit,observe:observe,validate:validate,toggleTargets:toggleTargets}}(jQuery),up.submit=up.form.submit,up.observe=up.form.observe,up.autosubmit=up.form.autosubmit,up.validate=up.form.validate}.call(this),function(){up.popup=function($){var attach,autoclose,close,config,contains,coveredUrl,createFrame,currentUrl,discardHistory,ensureInViewport,isOpen,reset,setPosition,u;return u=up.util,currentUrl=void 0,coveredUrl=function(){return $(".up-popup").attr("up-covered-url")},config=u.config({openAnimation:"fade-in",closeAnimation:"fade-out",position:"bottom-right",history:!1}),reset=function(){return close({animation:!1}),config.reset()},setPosition=function(e,t){var n,r,o;return o=u.measure(e,{full:!0}),r=function(){switch(t){case"bottom-right":return{right:o.right,top:o.top+o.height};case"bottom-left":return{left:o.left,top:o.top+o.height};case"top-right":return{right:o.right,bottom:o.top};case"top-left":return{left:o.left,bottom:o.top};default:return u.error("Unknown position option '%s'",t)}}(),n=$(".up-popup"),n.attr("up-position",t),n.css(r),ensureInViewport(n)},ensureInViewport=function(e){var t,n,r,o,i,a,s;if(n=u.measure(e,{full:!0}),r=null,o=null,n.right<0&&(r=-n.right),n.bottom<0&&(o=-n.bottom),n.left<0&&(r=n.left),n.top<0&&(o=n.top),r&&((i=parseInt(e.css("left")))?e.css("left",i-r):(a=parseInt(e.css("right")))&&e.css("right",a+r)),o){if(s=parseInt(e.css("top")))return e.css("top",s-o);if(t=parseInt(e.css("bottom")))return e.css("bottom",t+o)}},discardHistory=function(){var e;return e=$(".up-popup"),e.removeAttr("up-covered-url"),e.removeAttr("up-covered-title")},createFrame=function(e,t){var n;return n=u.$createElementFromSelector(".up-popup"),t.sticky&&n.attr("up-sticky",""),n.attr("up-covered-url",up.browser.url()),n.attr("up-covered-title",document.title),u.$createPlaceholder(e,n),n.appendTo(document.body),n},isOpen=function(){return $(".up-popup").length>0},attach=function(e,t){var n,r,o,i;return n=$(e),n.length||u.error("Cannot attach popup to non-existing element %o",e),t=u.options(t),i=u.option(t.url,n.attr("href")),o=u.option(t.target,n.attr("up-popup"),"body"),t.position=u.option(t.position,n.attr("up-position"),config.position),t.animation=u.option(t.animation,n.attr("up-animation"),config.openAnimation),t.sticky=u.option(t.sticky,u.castedAttr(n,"up-sticky")),t.history=up.browser.canPushState()?u.option(t.history,u.castedAttr(n,"up-history"),config.history):!1,t.confirm=u.option(t.confirm,n.attr("up-confirm")),r=up.motion.animateOptions(t,n),up.browser.confirm(t.confirm).then(function(){var e,a;return up.bus.nobodyPrevents("up:popup:open",{url:i,message:"Opening popup"})?(a=isOpen(),a&&close({animation:!1}),t.beforeSwap=function(){return createFrame(o,t)},e=up.replace(o,i,u.merge(t,{animation:!1})),e=e.then(function(){return setPosition(n,t.position)}),a||(e=e.then(function(){return up.animate($(".up-popup"),t.animation,r)})),e=e.then(function(){return up.emit("up:popup:opened",{message:"Popup opened"})})):u.unresolvableDeferred()})},close=function(e){var t,n;return t=$(".up-popup"),t.length?up.bus.nobodyPrevents("up:popup:close",{$element:t})?(e=u.options(e,{animation:config.closeAnimation,url:t.attr("up-covered-url"),title:t.attr("up-covered-title")}),currentUrl=void 0,n=up.destroy(t,e),n.then(function(){return up.emit("up:popup:closed",{message:"Popup closed"})}),n):u.unresolvableDeferred():u.resolvedDeferred()},autoclose=function(){return $(".up-popup").is("[up-sticky]")?void 0:(discardHistory(),close())},contains=function(e){var t;return t=$(e),t.closest(".up-popup").length>0},up.link.onAction("[up-popup]",function(e){return e.is(".up-current")?close():attach(e)}),up.on("click","body",function(e){var t;return t=$(e.target),t.closest(".up-popup").length||t.closest("[up-popup]").length?void 0:close()}),up.on("up:fragment:inserted",function(e,t){var n;if(contains(t)){if(n=t.attr("up-source"))return currentUrl=n}else if(contains(e.origin))return autoclose()}),up.bus.onEscape(function(){return close()}),up.on("click","[up-close]",function(e,t){return t.closest(".up-popup").length?(close(),e.preventDefault()):void 0}),up.on("up:framework:reset",reset),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),attach:attach,close:close,url:function(){return currentUrl},coveredUrl:coveredUrl,config:config,defaults:function(){return u.error("up.popup.defaults(...) no longer exists. Set values on he up.popup.config property instead.")},contains:contains,open:function(){return up.error("up.popup.open no longer exists. Please use up.popup.attach instead.")},source:function(){return up.error("up.popup.source no longer exists. Please use up.popup.url instead.")},isOpen:isOpen}}(jQuery)}.call(this),function(){up.modal=function($){var autoclose,close,config,contains,coveredUrl,createFrame,currentUrl,discardHistory,follow,isOpen,open,reset,shiftElements,templateHtml,u,unshiftElements,unshifters,visit;return u=up.util,config=u.config({maxWidth:null,minWidth:null,width:null,height:null,history:!0,openAnimation:"fade-in",closeAnimation:"fade-out",closeLabel:"\xd7",template:function(e){return'<div class="up-modal">\n <div class="up-modal-dialog">\n <div class="up-modal-close" up-close>'+e.closeLabel+'</div>\n <div class="up-modal-content"></div>\n </div>\n</div>'}}),currentUrl=void 0,coveredUrl=function(){return $(".up-modal").attr("up-covered-url")},reset=function(){return close({animation:!1}),currentUrl=void 0,config.reset()},templateHtml=function(){var e;return e=config.template,u.isFunction(e)?e(config):e},discardHistory=function(){var e;return e=$(".up-modal"),e.removeAttr("up-covered-url"),e.removeAttr("up-covered-title")},createFrame=function(e,t){var n,r,o;return shiftElements(),o=$(templateHtml()),t.sticky&&o.attr("up-sticky",""),o.attr("up-covered-url",up.browser.url()),o.attr("up-covered-title",document.title),r=o.find(".up-modal-dialog"),u.isPresent(t.width)&&r.css("width",t.width),u.isPresent(t.maxWidth)&&r.css("max-width",t.maxWidth),u.isPresent(t.height)&&r.css("height",t.height),n=o.find(".up-modal-content"),u.$createPlaceholder(e,n),o.appendTo(document.body),o},unshifters=[],shiftElements=function(){var e,t,n,r;return n=u.scrollbarWidth(),e=parseInt($("body").css("padding-right")),t=n+e,r=u.temporaryCss($("body"),{"padding-right":t+"px","overflow-y":"hidden"}),unshifters.push(r),up.layout.anchoredRight().each(function(){var e,t,r,o;return e=$(this),t=parseInt(e.css("right")),r=n+t,o=u.temporaryCss(e,{right:r}),unshifters.push(o)})},unshiftElements=function(){var e,t;for(e=[];t=unshifters.pop();)e.push(t());return e},isOpen=function(){return $(".up-modal").length>0},follow=function(e,t){return t=u.options(t),t.$link=$(e),open(t)},visit=function(e,t){return t=u.options(t),t.url=e,open(t)},open=function(e){var t,n,r,o;return e=u.options(e),t=u.option(e.$link,u.nullJQuery()),o=u.option(e.url,t.attr("up-href"),t.attr("href")),r=u.option(e.target,t.attr("up-modal"),"body"),e.width=u.option(e.width,t.attr("up-width"),config.width),e.maxWidth=u.option(e.maxWidth,t.attr("up-max-width"),config.maxWidth),e.height=u.option(e.height,t.attr("up-height"),config.height),e.animation=u.option(e.animation,t.attr("up-animation"),config.openAnimation),e.sticky=u.option(e.sticky,u.castedAttr(t,"up-sticky")),e.history=up.browser.canPushState()?u.option(e.history,u.castedAttr(t,"up-history"),config.history):!1,e.confirm=u.option(e.confirm,t.attr("up-confirm")),n=up.motion.animateOptions(e,t),up.browser.confirm(e.confirm).then(function(){var t,i;return up.bus.nobodyPrevents("up:modal:open",{url:o,message:"Opening modal"})?(i=isOpen(),i&&close({animation:!1}),e.beforeSwap=function(){return createFrame(r,e)},t=up.replace(r,o,u.merge(e,{animation:!1})),i||(t=t.then(function(){return up.animate($(".up-modal"),e.animation,n)})),t=t.then(function(){return up.emit("up:modal:opened",{message:"Modal opened"})})):u.unresolvablePromise()})},close=function(e){var t,n;return t=$(".up-modal"),t.length?up.bus.nobodyPrevents("up:modal:close",{$element:t,message:"Closing modal"})?(e=u.options(e,{animation:config.closeAnimation,url:t.attr("up-covered-url"),title:t.attr("up-covered-title")}),currentUrl=void 0,n=up.destroy(t,e),n=n.then(function(){return unshiftElements(),up.emit("up:modal:closed",{message:"Modal closed"})})):u.unresolvableDeferred():u.resolvedDeferred()},autoclose=function(){return $(".up-modal").is("[up-sticky]")?void 0:(discardHistory(),close())},contains=function(e){var t;return t=$(e),t.closest(".up-modal").length>0},up.link.onAction("[up-modal]",function(e){return follow(e)}),up.on("click","body",function(e){var t;return t=$(e.target),t.closest(".up-modal-dialog").length||t.closest("[up-modal]").length?void 0:close()}),up.on("up:fragment:inserted",function(e,t){var n;if(contains(t)){if(n=t.attr("up-source"))return currentUrl=n}else if(!up.popup.contains(t)&&contains(e.origin))return autoclose()}),up.bus.onEscape(function(){return close()}),up.on("click","[up-close]",function(e,t){return t.closest(".up-modal").length?(close(),e.preventDefault()):void 0}),up.on("up:framework:reset",reset),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),visit:visit,follow:follow,open:function(){return up.error("up.modal.open no longer exists. Please use either up.modal.follow or up.modal.visit.")},close:close,url:function(){return currentUrl},coveredUrl:coveredUrl,config:config,defaults:function(){return u.error("up.modal.defaults(...) no longer exists. Set values on he up.modal.config property instead.")},contains:contains,source:function(){return up.error("up.modal.source no longer exists. Please use up.popup.url instead.")},isOpen:isOpen}}(jQuery)}.call(this),function(){up.tooltip=function(e){var t,n,r,o,u,i,a;return a=up.util,r=a.config({position:"top",openAnimation:"fade-in",closeAnimation:"fade-out"}),u=function(){return r.reset()},i=function(e,t,n){var r,o,u;return o=a.measure(e),u=a.measure(t),r=function(){switch(n){case"top":return{left:o.left+.5*(o.width-u.width),top:o.top-u.height};case"bottom":return{left:o.left+.5*(o.width-u.width),top:o.top+o.height};default:return a.error("Unknown position option '%s'",n)}}(),t.attr("up-position",n),t.css(r)},o=function(e){var t;return t=a.$createElementFromSelector(".up-tooltip"),a.isGiven(e.text)?t.text(e.text):t.html(e.html),t.appendTo(document.body),t},t=function(t,u){var s,l,p,c,f,d,m;return null==u&&(u={}),s=e(t),f=a.option(u.html,s.attr("up-tooltip-html")),m=a.option(u.text,s.attr("up-tooltip")),d=a.option(u.position,s.attr("up-position"),r.position),c=a.option(u.animation,a.castedAttr(s,"up-animation"),r.openAnimation),p=up.motion.animateOptions(u,s),n(),l=o({text:m,html:f}),i(s,l,d),up.animate(l,c,p)},n=function(t){var n;return n=e(".up-tooltip"),n.length?(t=a.options(t,{animation:r.closeAnimation}),t=a.merge(t,up.motion.animateOptions(t)),up.destroy(n,t)):void 0
3
- },up.compiler("[up-tooltip], [up-tooltip-html]",function(e){return e.on("mouseover",function(){return t(e)}),e.on("mouseout",function(){return n()})}),up.on("click","body",function(){return n()}),up.on("up:framework:reset",n),up.bus.onEscape(function(){return n()}),up.on("up:framework:reset",u),{attach:t,close:n,open:function(){return a.error("up.tooltip.open no longer exists. Use up.tooltip.attach instead.")}}}(jQuery)}.call(this),function(){up.navigation=function(e){var t,n,r,o,u,i,a,s,l,p,c,f,d,m,h,v,g;return h=up.util,i=h.config({currentClasses:["up-current"]}),c=function(){return i.reset()},a=function(){var e;return e=i.currentClasses,e=e.concat(["up-current"]),e=h.uniq(e),e.join(" ")},t="up-active",n=["a","[up-href]","[up-alias]"],o=n.join(", "),u=function(){var e,t,r;for(r=[],e=0,t=n.length;t>e;e++)m=n[e],r.push(m+"[up-instant]");return r}().join(", "),r="."+t,p=function(e){return h.isPresent(e)?h.normalizeUrl(e,{search:!1,stripTrailingSlash:!0}):void 0},d=function(e){var t,n,r,o,u,i,a,s,l,c;for(s=[],i=["href","up-href","up-alias"],n=0,o=i.length;o>n;n++)if(t=i[n],l=h.presentAttr(e,t))for(c="up-alias"===t?l.split(" "):[l],r=0,u=c.length;u>r;r++)a=c[r],"#"!==a&&(a=p(a),s.push(a));return s},g=function(e){var t,n,r,o;return e=h.compact(e),r=function(e){return"*"===e.substr(-1)?n(e.slice(0,-1)):t(e)},t=function(t){return h.contains(e,t)},n=function(t){return h.detect(e,function(e){return 0===e.indexOf(t)})},o=function(e){return h.detect(e,r)},{matchesAny:o}},l=function(){var t,n;return t=g([p(up.browser.url()),p(up.modal.url()),p(up.modal.coveredUrl()),p(up.popup.url()),p(up.popup.coveredUrl())]),n=a(),h.each(e(o),function(r){var o,u;return o=e(r),u=d(o),t.matchesAny(u)?o.addClass(n):o.hasClass(n)&&0===o.closest(".up-destroying").length?o.removeClass(n):void 0})},f=function(e){return v(),e=s(e),e.addClass(t)},s=function(e){return h.presence(e.parents(o))||e},v=function(){return e(r).removeClass(t)},up.on("click",o,function(e,t){return h.isUnmodifiedMouseEvent(e)&&!t.is("[up-instant]")?f(t):void 0}),up.on("mousedown",u,function(e,t){return h.isUnmodifiedMouseEvent(e)?f(t):void 0}),up.on("up:fragment:inserted",function(){return v(),l()}),up.on("up:fragment:destroyed",function(e,t){return t.is(".up-modal, .up-popup")?l():void 0}),up.on("up:framework:reset",c),{config:i,defaults:function(){return h.error("up.navigation.defaults(...) no longer exists. Set values on he up.navigation.config property instead.")}}}(jQuery)}.call(this),function(){up.rails=function(e){var t,n,r,o;return r=up.util,o=function(e){return e.is("[up-follow], [up-target], [up-modal], [up-popup]")},n=function(){return r.isGiven(e.rails)},r.each(["method","confirm"],function(e){var t,u;return t="data-"+e,u="up-"+e,up.compiler("["+t+"]",function(e){var i;return n()&&o(e)?(i={},i[u]=e.attr(t),r.setMissingAttrs(e,i),e.removeAttr(t)):void 0})}),t=function(){return n()?{name:e.rails.csrfParam(),value:e.rails.csrfToken()}:void 0},{csrfField:t,isRails:n}}(jQuery)}.call(this),function(){up.boot()}.call(this);
1
+ (function(){window.up={}}).call(this),function(){var e=[].slice;up.util=function(t){var n,r,o,u,i,a,s,l,c,p,f,d,m,h,v,g,y,b,w,k,S,x,$,T,P,E,D,C,A,U,O,F,R,M,j,K,z,L,I,W,q,N,H,_,Q,V,J,B,X,G,Y,Z,et,tt,nt,rt,ot,ut,it,at,st,lt,ct,pt,ft,dt,mt,ht,vt,gt,yt,bt,wt,kt,St,xt,$t,Tt,Pt,Et,Dt,Ct,At,Ut,Ot,Ft,Rt,Mt,jt,Kt;return Z=function(t){var n,r;return n=void 0,r=!1,function(){var o;return o=1<=arguments.length?e.call(arguments,0):[],r?n:(r=!0,n=t.apply(null,o))}},H=function(e,t){return t=t.toString(),(""===t||"80"===t)&&"http:"===e||"443"===t&&"https:"===e},it=function(e,t){var n,r,o;return n=dt(e),r=n.protocol+"//"+n.hostname,H(n.protocol,n.port)||(r+=":"+n.port),o=n.pathname,"/"!==o[0]&&(o="/"+o),(null!=t?t.stripTrailingSlash:void 0)===!0&&(o=o.replace(/\/$/,"")),r+=o,(null!=t?t.hash:void 0)===!0&&(r+=n.hash),(null!=t?t.search:void 0)!==!1&&(r+=n.search),r},dt=function(e){var n;return n=null,_(e)?(n=t("<a>").attr({href:e}).get(0),A(n.hostname)&&(n.href=n.href)):n=Ft(e),n},ut=function(e){return e?e.toUpperCase():"GET"},n=function(e){var n,r,o,u,i,a,s,l,c,p,f,d,m,h,v,g;for(v=e.split(/[ >]/),o=null,f=c=0,m=v.length;m>c;f=++c){for(a=v[f],i=a.match(/(^|\.|\#)[A-Za-z0-9\-_]+/g),g="div",u=[],p=null,d=0,h=i.length;h>d;d++)switch(s=i[d],s[0]){case".":u.push(s.substr(1));break;case"#":p=s.substr(1);break;default:g=s}l="<"+g,u.length&&(l+=' class="'+u.join(" ")+'"'),p&&(l+=' id="'+p+'"'),l+=">",n=t(l),r&&n.appendTo(r),0===f&&(o=n),r=n}return o},h=function(e,t){var n;return n=document.createElement(e),q(t)&&(n.innerHTML=t),n},r=function(e,t){var r;return null==t&&(t=document.body),r=n(e),r.addClass("up-placeholder"),r.appendTo(t),r},Pt=function(e){var n,r,o,u,i,a,s,l,c;if(n=t(e),l=void 0,up.puts("Creating selector from element %o",n.get(0)),c=ht(n.attr("up-id")))l="[up-id='"+c+"']";else if(u=ht(n.attr("id")))l="#"+u;else if(s=ht(n.attr("name")))l="[name='"+s+"']";else if(r=ht(ot(n)))for(l="",o=0,a=r.length;a>o;o++)i=r[o],l+="."+i;else l=n.prop("tagName").toLowerCase();return l},ot=function(e){var t,n;return t=e.attr("class")||"",n=t.split(" "),Tt(n,function(e){return q(e)&&!e.match(/^up-/)})},v=function(e){var t,n,r,o,u,i,a,s,l,c,p,f;return l=function(e){return"<"+e+"(?: [^>]*)?>"},i=function(e){return"</"+e+">"},t="(?:.|\\n)*?",u=function(e){return"("+e+")"},f=new RegExp(l("head")+t+l("title")+u(t)+i("title")+t+i("body"),"i"),o=new RegExp(l("body")+u(t)+i("body"),"i"),(r=e.match(o))?(s=document.createElement("html"),n=h("body",r[1]),s.appendChild(n),(p=e.match(f))&&(a=h("head"),s.appendChild(a),c=h("title",p[1]),a.appendChild(c)),s):h("div",e)},x=t.extend,Ot=t.trim,b=function(e,t){var n,r,o,u,i;for(i=[],r=n=0,u=e.length;u>n;r=++n)o=e[r],i.push(t(o,r));return i},G=b,Ct=function(e,t){var n,r,o,u;for(u=[],r=n=0,o=e-1;o>=0?o>=n:n>=o;r=o>=0?++n:--n)u.push(t(r));return u},L=function(e){return null===e},Q=function(e){return void 0===e},O=function(e){return!Q(e)},z=function(e){return Q(e)||L(e)},M=function(e){return!z(e)},A=function(e){return z(e)||W(e)&&0===Object.keys(e).length||0===e.length},ht=function(e,t){return null==t&&(t=q),t(e)?e:void 0},q=function(e){return!A(e)},R=function(e){return"function"==typeof e},_=function(e){return"string"==typeof e},I=function(e){return"number"==typeof e},j=function(e){return"object"==typeof e&&!!e},W=function(e){return j(e)||"function"==typeof e},F=function(e){return!(!e||1!==e.nodeType)},K=function(e){return e instanceof jQuery},N=function(e){return W(e)&&R(e.then)},U=function(e){return N(e)&&R(e.resolve)},C=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},Ut=function(e){return Array.prototype.slice.call(e)},d=function(e){return C(e)?e.slice():x({},e)},Ft=function(e){return K(e)?e.get(0):e},et=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],x.apply(null,[{}].concat(e.call(t)))},ft=function(e,t){var n,r,o,u;if(o=e?d(e):{},t)for(r in t)n=t[r],u=o[r],M(u)?W(n)&&W(u)&&(o[r]=ft(u,n)):o[r]=n;return o},pt=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],y(t,M)},y=function(e,t){var n,r,o,u;for(u=void 0,r=0,o=e.length;o>r;r++)if(n=e[r],t(n)){u=n;break}return u},i=function(e,t){var n,r,o,u;for(u=!1,r=0,o=e.length;o>r;r++)if(n=e[r],t(n)){u=!0;break}return u},u=function(e,t){var n,r,o,u;for(u=!0,r=0,o=e.length;o>r;r++)if(n=e[r],!t(n)){u=!1;break}return u},c=function(e){return Tt(e,M)},Rt=function(e){var t;return t={},Tt(e,function(e){return t.hasOwnProperty(e)?!1:t[e]=!0})},Tt=function(e,t){var n;return n=[],b(e,function(e){return t(e)?n.push(e):void 0}),n},gt=function(e,t){return Tt(e,function(e){return!t(e)})},D=function(e,t){return Tt(e,function(e){return f(t,e)})},vt=function(){var t,n,r,o;return t=arguments[0],r=2<=arguments.length?e.call(arguments,1):[],o=function(){var e,o,u;for(u=[],e=0,o=r.length;o>e;e++)n=r[e],u.push(t.attr(n));return u}(),y(o,q)},rt=function(e){return setTimeout(e,0)},B=function(e){return e[e.length-1]},l=function(){var e;return e=document.documentElement,{width:e.clientWidth,height:e.clientHeight}},$t=Z(function(){var e,n,r;return e=t("<div>").css({position:"absolute",top:"0",left:"0",width:"50px",height:"50px",overflowY:"scroll"}),e.appendTo(document.body),n=e.get(0),r=n.offsetWidth-n.clientWidth,e.remove(),r}),lt=function(t){var n;return n=void 0,function(){var r;return r=1<=arguments.length?e.call(arguments,0):[],null!=t&&(n=t.apply(null,r)),t=void 0,n}},Dt=function(e,t,n){var r,o;return o=e.css(Object.keys(t)),e.css(t),r=function(){return e.css(o)},n?(n(),r()):lt(r)},E=function(e){var t,n;return n=e.css(["transform","-webkit-transform"]),A(n)||"none"===n.transform?(t=function(){return e.css(n)},e.css({transform:"translateZ(0)","-webkit-transform":"translateZ(0)"})):t=function(){},t},g=function(e,n,r){var u,i,a,s,l,c;return u=t(e),r=ft(r,{duration:300,delay:0,easing:"ease"}),i=t.Deferred(),s={"transition-property":Object.keys(n).join(", "),"transition-duration":r.duration+"ms","transition-delay":r.delay+"ms","transition-timing-function":r.easing},l=E(u),c=Dt(u,s),u.css(n),i.then(l),i.then(c),u.data(o,i),i.then(function(){return u.removeData(o)}),a=setTimeout(function(){return i.resolve()},r.duration+r.delay),i.then(function(){return clearTimeout(a)}),i},o="up-animation-deferred",T=function(e){return t(e).each(function(){var e;return(e=mt(this,o))?e.resolve():void 0})},Y=function(e,n){var r,o,u,i,a,s;return n=ft(n,{relative:!1,inner:!1,full:!1}),n.relative?n.relative===!0?i=e.position():(r=t(n.relative),a=e.offset(),r.is(document)?i=a:(u=r.offset(),i={left:a.left-u.left,top:a.top-u.top})):i=e.offset(),o={left:i.left,top:i.top},n.inner?(o.width=e.width(),o.height=e.height()):(o.width=e.outerWidth(),o.height=e.outerHeight()),n.full&&(s=l(),o.right=s.width-(o.left+o.width),o.bottom=s.height-(o.top+o.height)),o},m=function(e,t){var n,r,o,u,i;for(u=e.get(0).attributes,i=[],r=0,o=u.length;o>r;r++)n=u[r],i.push(n.specified?t.attr(n.name,n.value):void 0);return i},$=function(e,t){return e.find(t).addBack(t)},k=function(e){return 27===e.keyCode},f=function(e,t){return e.indexOf(t)>=0},s=function(e,t){var n;switch(n=e.attr(t)){case"false":return!1;case"true":return!0;case"":return!0;default:return n}},X=function(e){return e.getResponseHeader("X-Up-Location")},At=function(e){return e.getResponseHeader("X-Up-Title")},tt=function(e){return e.getResponseHeader("X-Up-Method")},ct=function(){var t,n,r,o,u,i;for(o=arguments[0],u=2<=arguments.length?e.call(arguments,1):[],t={},n=0,r=u.length;r>n;n++)i=u[n],o.hasOwnProperty(i)&&(t[i]=o[i]);return t},S=function(){var t,n,r,o,u,i;for(o=arguments[0],u=2<=arguments.length?e.call(arguments,1):[],t=d(o),n=0,r=u.length;r>n;n++)i=u[n],delete t[i];return t},V=function(e){return!(e.metaKey||e.shiftKey||e.ctrlKey)},J=function(e){var t;return t=Q(e.button)||0===e.button,t&&V(e)},St=function(){var e;return e=t.Deferred(),e.resolve(),e},xt=function(){return St().promise()},Mt=function(){return t.Deferred()},jt=function(){return Mt().promise()},at=function(){return t()},kt=function(){var n,r;return n=1<=arguments.length?e.call(arguments,0):[],r=t.when.apply(t,[St()].concat(e.call(n))),r.resolve=Z(function(){return b(n,function(e){return e.resolve()})}),r},Et=function(e,t){var n,r,o;r=[];for(n in t)o=t[n],r.push(z(e.attr(n))?e.attr(n,o):void 0);return r},yt=function(e,t){var n;return n=e.indexOf(t),n>=0?(e.splice(n,1),t):void 0},nt=function(e){var n,r,o,u,a,s,l;for(a={},l=[],r=[],o=0,u=e.length;u>o;o++)s=e[o],_(s)?l.push(s):r.push(s);return a.parsed=r,l.length&&(n=l.join(", "),a.parsed.push(n)),a.select=function(){return a.find(void 0)},a.find=function(e){var n,r,o,u,i,s;for(r=at(),i=a.parsed,o=0,u=i.length;u>o;o++)s=i[o],n=e?e.find(s):t(s),r=r.add(n);return r},a.findWithSelf=function(e){var t;return t=a.find(e),a.doesMatch(e)&&(t=t.add(e)),t},a.doesMatch=function(e){var n;return n=t(e),i(a.parsed,function(e){return n.is(e)})},a.seekUp=function(e){var n,r,o;for(o=t(e),n=o,r=void 0;n.length;){if(a.doesMatch(n)){r=n;break}n=n.parent()}return r||at()},a},a=function(t){var n,r,o,u,i,a,s,l,c,p,f,m;return null==t&&(t={}),f=void 0,r=function(){return f={}},r(),s=function(){var n;return n=1<=arguments.length?e.call(arguments,0):[],t.log?(n[0]="["+t.log+"] "+n[0],up.puts.apply(up,n)):void 0},a=function(){return Object.keys(f)},l=function(){return z(t.size)?void 0:R(t.size)?t.size():I(t.size)?t.size:w("Invalid size config: %o",t.size)},o=function(){return z(t.expiry)?void 0:R(t.expiry)?t.expiry():I(t.expiry)?t.expiry:w("Invalid expiry config: %o",t.expiry)},c=function(e){return t.key?t.key(e):e.toString()},Ot=function(){var e,t,n,r;return r=d(a()),n=l(),n&&r.length>n&&(e=null,t=null,b(r,function(n){var r,o;return r=f[n],o=r.timestamp,!t||t>o?(e=n,t=o):void 0}),e)?delete f[e]:void 0},n=function(e,t){var n;return n=u(e,{silent:!0}),O(n)?p(t,n):void 0},m=function(){return(new Date).valueOf()},p=function(e,t){var n;return n=c(e),f[n]={timestamp:m(),value:t}},yt=function(e){var t;return t=c(e),delete f[t]},i=function(e){var t,n;return t=o(),t?(n=m()-e.timestamp,n<o()):!0},u=function(e,t){var n,r;return null==t&&(t={}),r=c(e),(n=f[r])?i(n)?(t.silent||s("Cache hit for '%s'",e),n.value):(t.silent||s("Discarding stale cache entry for '%s'",e),void yt(e)):void(t.silent||s("Cache miss for '%s'",e))},{alias:n,get:u,set:p,remove:yt,clear:r,keys:a}},p=function(e){var t;return null==e&&(e={}),t={},t.reset=function(){return x(t,e)},t.reset(),Object.preventExtensions(t),t},Kt=function(e){var t,n;return e=Ft(e),t=e.parentNode,n=Ut(e.childNodes),b(n,function(n){return t.insertBefore(n,e)}),t.removeChild(e)},st=function(e){var t,n;for(t=void 0;(e=e.parent())&&e.length;)if(n=e.css("position"),"absolute"===n||"relative"===n||e.is("body")){t=e;break}return t},P=function(e,n){var r,o,u,i;return r=t(e),o=st(r),u=r.position(),i=o.offset(),r.css({position:"absolute",left:u.left-i.left,top:u.top-i.top+n.scrollTop(),right:"",bottom:""})},bt=function(e){var t,n,r,o,u,i,a;for(i=wt(e),t=[],a=i.split("&"),n=0,r=a.length;r>n;n++)u=a[n],q(u)&&(o=u.split("="),t.push({name:decodeURIComponent(o[0]),value:decodeURIComponent(o[1])}));return t},wt=function(e){var n;return e?(n=t.param(e),n=n.replace(/\+/g,"%20")):""},w=function(){var n,r,o,u,i;throw r=1<=arguments.length?e.call(arguments,0):[],(u=up.log).error.apply(u,r),o=(i=up.browser).sprintf.apply(i,r),n=ht(t(".up-error"))||t('<div class="up-error"></div>').prependTo("body"),n.addClass("up-error"),n.text(o),new Error(o)},mt=function(e,n){var r,o;return r=t(e),o=r.data(n),r.removeData(n),o},{requestDataAsArray:bt,requestDataAsQuery:wt,offsetParent:st,fixedToAbsolute:P,presentAttr:vt,createElement:h,parseUrl:dt,normalizeUrl:it,normalizeMethod:ut,createElementFromHtml:v,$createElementFromSelector:n,$createPlaceholder:r,selectorForElement:Pt,extend:x,copy:d,merge:et,options:ft,option:pt,error:w,each:b,map:G,times:Ct,any:i,all:u,detect:y,select:Tt,reject:gt,intersect:D,compact:c,uniq:Rt,last:B,isNull:L,isDefined:O,isUndefined:Q,isGiven:M,isMissing:z,isPresent:q,isBlank:A,presence:ht,isObject:W,isFunction:R,isString:_,isElement:F,isJQuery:K,isPromise:N,isDeferred:U,isHash:j,isUnmodifiedKeyEvent:V,isUnmodifiedMouseEvent:J,nullJQuery:at,unJQuery:Ft,nextFrame:rt,measure:Y,temporaryCss:Dt,cssAnimate:g,finishCssAnimate:T,forceCompositing:E,escapePressed:k,copyAttributes:m,findWithSelf:$,contains:f,isArray:C,toArray:Ut,castedAttr:s,locationFromXhr:X,titleFromXhr:At,methodFromXhr:tt,clientSize:l,only:ct,except:S,trim:Ot,unresolvableDeferred:Mt,unresolvablePromise:jt,resolvedPromise:xt,resolvedDeferred:St,resolvableWhen:kt,setMissingAttrs:Et,remove:yt,memoize:Z,scrollbarWidth:$t,config:p,cache:a,unwrapElement:Kt,multiSelector:nt,error:w,pluckData:mt}}($),up.error=up.util.error}.call(this),function(){var e=[].slice;up.log=function(){var t,n,r,o,u,i;return o=function(e){return"\u1d1c\u1d18 "+e},t=function(){var t,n,r;return n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],n?(r=up.browser).puts.apply(r,["debug",o(n)].concat(e.call(t))):void 0},u=function(){var t,n,r;return n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],n?(r=up.browser).puts.apply(r,["log",o(n)].concat(e.call(t))):void 0},i=function(){var t,n,r;return n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],n?(r=up.browser).puts.apply(r,["warn",o(n)].concat(e.call(t))):void 0},r=function(){var t,n,r,u;if(r=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],n=t.pop(),!r)return n();(u=up.browser).puts.apply(u,["groupCollapsed",o(r)].concat(e.call(t)));try{return n()}finally{r&&console.groupEnd()}},n=function(){var t,n,r;return n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],n?(r=up.browser).puts.apply(r,["error",o(n)].concat(e.call(t))):void 0},{puts:u,debug:t,error:n,warn:i,group:r}}(jQuery),up.puts=up.log.puts}.call(this),function(){var e=[].slice;up.browser=function(t){var n,r,o,u,i,a,s,l,c,p,f,d,m,h,v,g,y,b;return y=up.util,m=function(e,n){var r,o,u,i,a;return null==n&&(n={}),i=y.option(n.method,"get").toLowerCase(),"get"===i?(a=y.requestDataAsQuery(n.data),a&&(e=e+"?"+a),location.href=e):(r=t("<form method='post' action='"+e+"'></form>"),o=function(e){var n;return n=t('<input type="hidden">'),n.attr(e.name,e.value),n.appendTo(r)},o({name:up.proxy.config.wrapMethodParam,value:i}),(u=up.rails.csrfField())&&o(u),y.each(y.requestDataAsArray(n.data),o),r.hide().appendTo("body"),r.submit())},v=function(){var t,n,r;return r=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],y.isDefined(console[r])||(r="log"),u()?console[r].apply(console,t):(n=g.apply(null,t),console[r](n))},n=/\%[odisf]/g,g=function(){var t,r,o,u;return u=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],r=0,o=80,u.replace(n,function(){var e,n;return e=t[r],n=typeof e,"string"===n?(e=e.replace(/\s+/g," "),e.length>o&&(e=e.substr(0,o)+"\u2026"),e='"'+e+'"'):e="undefined"===n?"undefined":"number"===n||"function"===n?e.toString():JSON.stringify(e),e.length>o&&(e=e.substr(0,o)+" \u2026",("object"===n||"function"===n)&&(e+=" }")),r+=1,e})},b=function(){return location.href},c=y.memoize(function(){return y.isUndefined(document.addEventListener)}),p=y.memoize(function(){return c()||-1!==navigator.appVersion.indexOf("MSIE 9.")}),i=y.memoize(function(){return y.isDefined(history.pushState)&&"get"===s()}),r=y.memoize(function(){return"transition"in document.documentElement.style}),o=y.memoize(function(){return"oninput"in document.createElement("input")}),u=y.memoize(function(){return!p()}),f=y.memoize(function(){var e,n,r,o;return o=t.fn.jquery,r=o.split("."),e=parseInt(r[0]),n=parseInt(r[1]),e>=2||1===e&&n>=9}),h=function(e){var t,n;return n=null!=(t=document.cookie.match(new RegExp(e+"=(\\w+)")))?t[1]:void 0,y.isPresent(n)&&(document.cookie=e+"=; expires=Thu, 01-Jan-70 00:00:01 GMT; path=/"),n},a=function(e){return y.isBlank(e)||a(e)?y.resolvedPromise():y.unresolvablePromise()},s=y.memoize(function(){return(h("_up_request_method")||"get").toLowerCase()}),d=function(){return!c()&&f()},l=function(){return console.group||(console.group=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],v.apply(null,["group"].concat(e.call(t)))}),console.groupCollapsed||(console.groupCollapsed=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],v.apply(null,["groupCollapsed"].concat(e.call(t)))}),console.groupEnd||(console.groupEnd=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],v.apply(null,["groupEnd"].concat(e.call(t)))})},{url:b,loadPage:m,confirm:a,canPushState:i,canCssTransition:r,canInputEvent:o,canLogSubstitution:u,isSupported:d,installPolyfills:l,puts:v,sprintf:g}}(jQuery)}.call(this),function(){var slice=[].slice;up.bus=function($){var boot,emit,emitReset,forgetUpDescription,live,liveUpDescriptions,logEmission,nextUpDescriptionNumber,nobodyPrevents,onEscape,rememberUpDescription,restoreSnapshot,snapshot,u,unbind,upDescriptionNumber,upDescriptionToJqueryDescription,upListenerToJqueryListener;return u=up.util,liveUpDescriptions={},nextUpDescriptionNumber=0,upListenerToJqueryListener=function(e){return function(t){var n;return n=t.$element||$(this),e.apply(n.get(0),[t,n,up.syntax.data(n)])}},upDescriptionToJqueryDescription=function(e,t){var n,r,o;return n=u.copy(e),o=n.pop(),r=void 0,t?(r=upListenerToJqueryListener(o),o._asJqueryListener=r,o._descriptionNumber=++nextUpDescriptionNumber):(r=o._asJqueryListener,r||u.error("up.off: The event listener %o was never registered through up.on")),n.push(r),n},live=function(){var e,t,n;return n=1<=arguments.length?slice.call(arguments,0):[],up.browser.isSupported()?(e=upDescriptionToJqueryDescription(n,!0),rememberUpDescription(n),(t=$(document)).on.apply(t,e),function(){return unbind.apply(null,n)}):function(){}},unbind=function(){var e,t,n;return n=1<=arguments.length?slice.call(arguments,0):[],e=upDescriptionToJqueryDescription(n,!1),forgetUpDescription(n),(t=$(document)).off.apply(t,e)},rememberUpDescription=function(e){var t;return t=upDescriptionNumber(e),liveUpDescriptions[t]=e},forgetUpDescription=function(e){var t;return t=upDescriptionNumber(e),delete liveUpDescriptions[t]},upDescriptionNumber=function(e){return u.last(e)._descriptionNumber},emit=function(e,t){var n,r;return null==t&&(t={}),r=$.Event(e,t),(n=t.$element)?delete t.$element:n=$(document),logEmission(e,t),n.trigger(r),r},logEmission=function(e,t){var n,r,o;return t.hasOwnProperty("message")?(n=t.message,delete t.message,u.isArray(n)?(o=n,n=o[0],r=2<=o.length?slice.call(o,1):[]):r=[],n?u.isPresent(t)?up.puts.apply(up,[n+" (%s (%o))"].concat(slice.call(r),[e],[t])):up.puts.apply(up,[n+" (%s)"].concat(slice.call(r),[e])):void 0):u.isPresent(t)?up.puts("Emitted event %s (%o)",e,t):up.puts("Emitted event %s",e)},nobodyPrevents=function(){var e,t;return e=1<=arguments.length?slice.call(arguments,0):[],t=emit.apply(null,e),t.isDefaultPrevented()?(up.puts("An observer prevented the event %s",e[0]),!1):!0},onEscape=function(e){return live("keydown","body",function(t){return u.escapePressed(t)?e(t):void 0})},snapshot=function(){var e,t,n,r;for(r=[],t=0,n=liveUpDescriptions.length;n>t;t++)e=liveUpDescriptions[t],r.push(e.isDefault=!0);return r},restoreSnapshot=function(){var e,t,n,r,o;for(t=u.reject(liveUpDescriptions,function(e){return e.isDefault}),o=[],n=0,r=t.length;r>n;n++)e=t[n],o.push(unbind.apply(null,e));return o},emitReset=function(){return up.emit("up:framework:reset",{message:"Resetting framework"})},boot=function(){return up.browser.isSupported()?(up.browser.installPolyfills(),up.emit("up:framework:boot",{message:"Booting framework"})):void 0},live("up:framework:boot",snapshot),live("up:framework:reset",restoreSnapshot),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),on:live,off:unbind,emit:emit,nobodyPrevents:nobodyPrevents,onEscape:onEscape,emitReset:emitReset,boot:boot}}(jQuery),up.on=up.bus.on,up.off=up.bus.off,up.emit=up.bus.emit,up.reset=up.bus.emitReset,up.boot=up.bus.boot}.call(this),function(){var e=[].slice;up.syntax=function(t){var n,r,o,u,i,a,s,l,c,p,f,d,m,h,v;return v=up.util,n="up-destroyable",r="up-destroyer",l=[],d=[],s=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],p.apply(null,[l].concat(e.call(t)))},f=function(){var t;return t=1<=arguments.length?e.call(arguments,0):[],p.apply(null,[d].concat(e.call(t)))},u=function(){var t,n,r,o;return o=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],n=t.pop(),r=v.options(t[0],{priority:0}),{selector:o,callback:n,priority:r.priority,batch:r.batch,keep:r.keep}},p=function(){var t,n,r,o,i;if(i=arguments[0],t=2<=arguments.length?e.call(arguments,1):[],up.browser.isSupported()){for(r=u.apply(null,t),n=0;(o=i[n])&&o.priority<=r.priority;)n+=1;return i.splice(n,0,r)}},o=function(e,t,o){var u,i;return up.puts(e.isDefault?void 0:"Compiling '%s' on %o",e.selector,o),e.keep&&(i=v.isString(e.keep)?e.keep:"",t.attr("up-keep",i)),u=e.callback.apply(o,[t,c(t)]),v.isFunction(u)?(t.addClass(n),t.data(r,u)):void 0},a=function(e,n){var r;return n=v.options(n),r=t(n.skip),up.log.group("Compiling fragment %o",e.get(0),function(){var n,u,i,a,c,p;for(c=[d,l],p=[],u=0,i=c.length;i>u;u++)a=c[u],p.push(function(){var u,i,l;for(l=[],u=0,i=a.length;i>u;u++)s=a[u],n=v.findWithSelf(e,s.selector),n=n.filter(function(){var e;return e=t(this),v.all(r,function(t){return 0===e.closest(t).length})}),l.push(n.length?up.log.group(s.isDefault?void 0:"Compiling '%s' on %d element(s)",s.selector,n.length,function(){return s.batch?o(s,n,n.get()):n.each(function(){return o(s,t(this),this)})}):void 0);return l}());return p})},i=function(e){return v.findWithSelf(e,"."+n).each(function(){var e,n;return e=t(this),(n=e.data(r))()})},c=function(e){var n,r;return n=t(e),r=n.attr("up-data"),v.isString(r)&&""!==v.trim(r)?JSON.parse(r):{}},h=function(){var e,t,n;for(n=[],e=0,t=l.length;t>e;e++)s=l[e],n.push(s.isDefault=!0);return n},m=function(){return l=v.select(l,function(e){return e.isDefault})},up.on("up:framework:boot",h),up.on("up:framework:reset",m),{compiler:s,macro:f,compile:a,clean:i,data:c}}(jQuery),up.compiler=up.syntax.compiler,up.macro=up.syntax.macro,up.ready=function(){return up.util.error("up.ready no longer exists. Please use up.hello instead.")},up.awaken=function(){return up.util.error("up.awaken no longer exists. Please use up.compiler instead.")}}.call(this),function(){up.history=function(e){var t,n,r,o,u,i,a,s,l,c,p,f,d,m,h,v;return v=up.util,n=v.config({popTargets:["body"],restoreScroll:!0}),c=void 0,i=void 0,m=function(){return n.reset(),c=void 0,i=void 0},a=function(e){return v.normalizeUrl(e,{hash:!0})},r=function(){return a(up.browser.url())},o=function(e){return a(e)===r()},s=function(e){return i&&(c=i,i=void 0),i=e},d=function(e,t){return u("replace",e,t)},p=function(e,t){return up.puts("Current location is now %s",e),u("push",e,t)},u=function(e,n,u){var i,a;return u=v.options(u,{force:!1}),u.force||!o(n)?up.browser.canPushState()?(i=e+"State",a=t(),window.history[i](a,"",n),s(r())):v.error("This browser doesn't support history.pushState"):void 0},t=function(){return{fromUp:!0}},h=function(e){var t;return(null!=e?e.fromUp:void 0)?(t=r(),up.log.group("Restoring URL %s",t,function(){var e;return e=n.popTargets.join(", "),up.replace(e,t,{history:!1,reveal:!1,transition:"none",saveScroll:!1,restoreScroll:n.restoreScroll})})):up.puts("Ignoring a state not pushed by Unpoly (%o)",e)},l=function(e){return up.log.group("History state popped to URL %s",r(),function(){var t;return s(r()),up.layout.saveScroll({url:c}),t=e.originalEvent.state,h(t)})},up.browser.canPushState()&&(f=function(){return e(window).on("popstate",l),d(r(),{force:!0})},"undefined"!=typeof jasmine&&null!==jasmine?f():setTimeout(f,100)),up.compiler("[up-back]",function(e){return v.isPresent(c)?(v.setMissingAttrs(e,{"up-href":c,"up-restore-scroll":""}),e.removeAttr("up-back"),up.link.makeFollowable(e)):void 0}),up.on("up:framework:reset",m),{config:n,defaults:function(){return v.error("up.history.defaults(...) no longer exists. Set values on he up.history.config property instead.")},push:p,replace:d,url:r,previousUrl:function(){return c},normalizeUrl:a}}(jQuery)}.call(this),function(){var slice=[].slice;up.layout=function($){var SCROLL_PROMISE_KEY,anchoredRight,config,finishScrolling,fixedChildren,lastScrollTops,measureObstruction,reset,restoreScroll,reveal,revealOrRestoreScroll,saveScroll,scroll,scrollTops,u,viewportOf,viewportSelector,viewports,viewportsWithin;return u=up.util,config=u.config({duration:0,viewports:[document,".up-modal","[up-viewport]"],fixedTop:["[up-fixed~=top]"],fixedBottom:["[up-fixed~=bottom]"],anchoredRight:["[up-anchored~=right]","[up-fixed~=top]","[up-fixed~=bottom]","[up-fixed~=right]"],snap:50,substance:150,easing:"swing"}),lastScrollTops=u.cache({size:30,key:up.history.normalizeUrl}),reset=function(){return config.reset(),lastScrollTops.clear()},SCROLL_PROMISE_KEY="up-scroll-promise",scroll=function(e,t,n){var r,o,i,a,s;return r=$(e),n=u.options(n),i=u.option(n.duration,config.duration),a=u.option(n.easing,config.easing),finishScrolling(r),i>0?(o=$.Deferred(),r.data(SCROLL_PROMISE_KEY,o),o.then(function(){return r.removeData(SCROLL_PROMISE_KEY),r.finish()}),s={scrollTop:t},r.get(0)===document&&(r=$("html, body")),r.animate(s,{duration:i,easing:a,complete:function(){return o.resolve()}}),o):(r.scrollTop(t),u.resolvedDeferred())},finishScrolling=function(e){return $(e).each(function(){var e;return(e=$(this).data(SCROLL_PROMISE_KEY))?e.resolve():void 0})},anchoredRight=function(){return u.multiSelector(config.anchoredRight).select()},measureObstruction=function(){var e,t,n,r;return n=function(e,t){var n,r;return n=$(e),r=n.css(t),u.isPresent(r)||u.error("Fixed element %o must have a CSS attribute %s",n.get(0),t),parseInt(r)+n.height()},t=function(){var e,t,o,u;for(o=$(config.fixedTop.join(", ")),u=[],e=0,t=o.length;t>e;e++)r=o[e],u.push(n(r,"top"));return u}(),e=function(){var e,t,o,u;for(o=$(config.fixedBottom.join(", ")),u=[],e=0,t=o.length;t>e;e++)r=o[e],u.push(n(r,"bottom"));return u}(),{top:Math.max.apply(Math,[0].concat(slice.call(t))),bottom:Math.max.apply(Math,[0].concat(slice.call(e)))}},reveal=function(e,t){var n,r,o,i,a,s,l,c,p,f,d,m,h,v;return n=$(e),up.puts("Revealing fragment %o",e.get(0)),t=u.options(t),r=t.viewport?$(t.viewport):viewportOf(n),m=u.option(t.snap,config.snap),v=r.is(document),h=v?u.clientSize().height:r.height(),p=r.scrollTop(),s=p,c=void 0,l=void 0,v?(l=measureObstruction(),c=0):(l={top:0,bottom:0},c=p),f=function(){return s+l.top},d=function(){return s+h-l.bottom-1},o=u.measure(n,{relative:r}),i=o.top+c,a=i+Math.min(o.height,config.substance)-1,a>d()&&(s+=a-d()),(i<f()||t.top)&&(s=i-l.top),m>s&&(s=0),s!==p?scroll(r,s,t):u.resolvedDeferred()},viewportSelector=function(){return u.multiSelector(config.viewports)},viewportOf=function(e){var t,n;return t=$(e),n=viewportSelector().seekUp(t),n.length||u.error("Could not find viewport for %o",t),n},viewportsWithin=function(e){var t;return t=$(e),viewportSelector().findWithSelf(t)},viewports=function(){return viewportSelector().select()},scrollTops=function(){var e,t,n,r,o,u,i;for(u={},o=config.viewports,t=0,r=o.length;r>t;t++)i=o[t],e=$(i),e.length&&(n=i,i===document&&(n="document"),u[n]=e.scrollTop());return u},fixedChildren=function(e){var t,n;return null==e&&(e=void 0),e||(e=document.body),n=$(e),t=n.find("[up-fixed]"),u.isPresent(config.fixedTop)&&(t=t.add(n.find(config.fixedTop.join(", ")))),u.isPresent(config.fixedBottom)&&(t=t.add(n.find(config.fixedBottom.join(", ")))),t},saveScroll=function(e){var t,n;return null==e&&(e={}),n=u.option(e.url,up.history.url()),t=u.option(e.tops,scrollTops()),up.puts("Saving scroll positions for URL %s (%o)",n,t),lastScrollTops.set(n,t)},restoreScroll=function(e){var t,n,r,o,i;return null==e&&(e={}),i=up.history.url(),r=void 0,e.around?(n=viewportsWithin(e.around),t=viewportOf(e.around),r=t.add(n)):r=viewports(),o=lastScrollTops.get(i),up.log.group("Restoring scroll positions for URL %s to %o",i,o,function(){var e,t,n,i;for(t in o)i=o[t],n="document"===t?document:t,e=r.filter(n),scroll(e,i,{duration:0});return u.resolvedDeferred()})},revealOrRestoreScroll=function(e,t){var n,r,o,i;return n=$(e),t.restoreScroll?restoreScroll({around:n}):t.reveal?(t.source&&(i=u.parseUrl(t.source),i.hash&&"#"!==i.hash&&(o=i.hash.substr(1),r=u.findWithSelf(n,"#"+o+", a[name='"+o+"']"),r.length&&(n=r))),reveal(n)):u.resolvedDeferred()},up.on("up:framework:reset",reset),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),reveal:reveal,scroll:scroll,finishScrolling:finishScrolling,config:config,defaults:function(){return u.error("up.layout.defaults(...) no longer exists. Set values on he up.layout.config property instead.")},viewportOf:viewportOf,viewportsWithin:viewportsWithin,viewports:viewports,scrollTops:scrollTops,saveScroll:saveScroll,restoreScroll:restoreScroll,revealOrRestoreScroll:revealOrRestoreScroll,anchoredRight:anchoredRight,fixedChildren:fixedChildren}}(jQuery),up.scroll=up.layout.scroll,up.reveal=up.layout.reveal}.call(this),function(){up.flow=function($){var autofocus,destroy,emitFragmentInserted,emitFragmentKept,extract,findKeepPlan,findOldFragment,first,hello,isRealElement,oldFragmentNotFound,parseImplantSteps,parseResponse,processResponse,reload,replace,resolveSelector,setSource,source,swapElements,transferKeepableElements,u,updateHistory;return u=up.util,setSource=function(e,t){var n;return n=$(e),u.isPresent(t)&&(t=u.normalizeUrl(t)),n.attr("up-source",t)},source=function(e){var t;return t=$(e).closest("[up-source]"),u.presence(t.attr("up-source"))||up.browser.url()},resolveSelector=function(e,t){var n,r;return u.isString(e)?(r=e,u.contains(r,"&")&&(t?(n=u.selectorForElement(t),r=r.replace(/\&/,n)):u.error("Found origin reference (%s) in selector %s, but options.origin is missing","&",r))):r=u.selectorForElement(e),r},replace=function(e,t,n){var r,o,i,a;return up.puts("Replacing %s from %s (%o)",e,t,n),n=u.options(n),a=resolveSelector(e,n.origin),r=u.option(n.failTarget,"body"),r=resolveSelector(r,n.origin),up.browser.canPushState()||n.history===!1?(i={url:t,method:n.method,data:n.data,target:a,failTarget:r,cache:n.cache,preload:n.preload,headers:n.headers},o=up.ajax(i),o.done(function(e,r,o){return processResponse(!0,a,t,i,o,n)}),o.fail(function(e){return processResponse(!1,r,t,i,e,n)}),o):(n.preload||up.browser.loadPage(t,u.only(n,"method","data")),u.unresolvablePromise())},processResponse=function(e,t,n,r,o,i){var a,s,l,c;return i.method=u.normalizeMethod(u.option(u.methodFromXhr(o),i.method)),i.title=u.option(u.titleFromXhr(o),i.title),a="GET"===i.method,(c=u.locationFromXhr(o))?(n=c,e&&(s={url:n,method:u.methodFromXhr(o),target:t},up.proxy.alias(r,s))):a&&(l=u.requestDataAsQuery(i.data))&&(n=n+"?"+l),e?a?(i.history===!1||u.isString(i.history)||(i.history=n),i.source===!1||u.isString(i.source)||(i.source=n)):(u.isString(i.history)||(i.history=!1),u.isString(i.source)||(i.source="keep")):(i.transition=i.failTransition,i.failTransition=void 0,a?(i.history!==!1&&(i.history=n),i.source!==!1&&(i.source=n)):(i.source="keep",i.history=!1)),i.preload?u.resolvedPromise():extract(t,o.responseText,i)},extract=function(e,t,n){return up.log.group("Extracting %s from %d bytes of HTML",e,null!=t?t.length:void 0,function(){var r,o,i,a,s,l,c,p;for(n=u.options(n,{historyMethod:"push",requireMatch:!0,keep:!0}),c=resolveSelector(e,n.origin),l=parseResponse(t,n),n.title||(n.title=l.title()),n.saveScroll!==!1&&up.layout.saveScroll(),"function"==typeof n.beforeSwap&&n.beforeSwap(),r=[],updateHistory(n),a=parseImplantSteps(c,n),o=0,i=a.length;i>o;o++)p=a[o],up.log.group("Updating %s",p.selector,function(){var e,t,o,u;return t=findOldFragment(p.selector,n),e=null!=(u=l.find(p.selector))?u.first():void 0,t&&e?(o=swapElements(t,e,p.pseudoClass,p.transition,n),r.push(o)):void 0});return"function"==typeof n.afterSwap&&n.afterSwap(),(s=up.motion).when.apply(s,r)})},findOldFragment=function(e,t){return first(".up-popup "+e)||first(".up-modal "+e)||first(e)||oldFragmentNotFound(e,t)},oldFragmentNotFound=function(e,t){var n;return t.requireMatch?(n="Could not find selector %s in current body HTML","#"===n[0]&&(n+=" (avoid using IDs)"),u.error(n,e)):void 0},parseResponse=function(e,t){var n;return n=u.createElementFromHtml(e),{title:function(){var e;return null!=(e=n.querySelector("title"))?e.textContent:void 0},find:function(r){var o;return(o=$.find(r,n)[0])?$(o):t.requireMatch?u.error("Could not find selector %s in response %o",r,e):void 0}}},updateHistory=function(e){return e.history?(e.title&&(document.title=e.title),up.history[e.historyMethod](e.history)):void 0},swapElements=function(e,t,n,r,o){var i,a,s,l;return r||(r="none"),"keep"===o.source&&(o=u.merge(o,{source:source(e)})),up.motion.finish(e),n?(i=t.contents().wrap('<span class="up-insertion"></span>').parent(),"before"===n?e.prepend(i):e.append(i),hello(i.children(),o),s=up.layout.revealOrRestoreScroll(i,o),s=s.then(function(){return up.animate(i,r,o)
2
+ }),s=s.then(function(){return u.unwrapElement(i)})):(a=findKeepPlan(e,t,o))?(emitFragmentKept(a),s=u.resolvedPromise()):(l=function(){return o.keepPlans=transferKeepableElements(e,t,o),t.insertBefore(e),o.source!==!1&&setSource(t,o.source),autofocus(t),hello(t,o),up.morph(e,t,r,o)},s=destroy(e,{animation:l})),s},transferKeepableElements=function(e,t,n){var r,o,i,a,s,l,c,p;if(a=[],n.keep)for(p=e.find("[up-keep]"),i=0,l=p.length;l>i;i++)s=p[i],r=$(s),(c=findKeepPlan(r,t,u.merge(n,{descendantsOnly:!0})))&&(o=r.clone(),r.replaceWith(o),c.$newElement.replaceWith(r),a.push(c));return a},findKeepPlan=function(e,t,n){var r,o,i,a,s;return n.keep&&(r=e,(s=u.castedAttr(r,"up-keep"))&&(u.isString(s)||(s="&"),s=resolveSelector(s,r),o=n.descendantsOnly?t.find(s):u.findWithSelf(t,s),o=o.first(),o.length&&o.is("[up-keep]")&&(i={$element:r,$newElement:o,newData:up.syntax.data(o)},a=u.merge(i,{message:["Keeping element %o",r.get(0)]}),up.bus.nobodyPrevents("up:fragment:keep",a))))?i:void 0},parseImplantSteps=function(e,t){var n,r,o,i,a,s,l,c,p,f,d,m;for(d=t.transition||t.animation||"none",n=/\ *,\ */,r=e.split(n),m=u.isString(m)?d.split(n):[d],l=[],o=i=0,a=r.length;a>i;o=++i)c=r[o],p=c.match(/^(.+?)(?:\:(before|after))?$/),p||u.error('Could not parse selector atom "%s"',c),e=p[1],"html"===e&&(e="body"),s=p[2],f=m[o]||u.last(m),l.push({selector:e,pseudoClass:s,transition:f});return l},hello=function(e,t){var n,r,o,i,a,s;for(n=$(e),t=u.options(t,{keepPlans:[]}),o=[],s=t.keepPlans,r=0,i=s.length;i>r;r++)a=s[r],emitFragmentKept(a),o.push(a.$element);return up.syntax.compile(n,{skip:o}),emitFragmentInserted(n,t),n},emitFragmentInserted=function(e,t){var n;return n=$(e),up.emit("up:fragment:inserted",{$element:n,message:["Inserted fragment %o",n.get(0)],origin:t.origin})},emitFragmentKept=function(e){var t;return t=u.merge(e,{message:["Kept fragment %o",e.$element.get(0)]}),up.emit("up:fragment:kept",t)},autofocus=function(e){var t,n;return n="[autofocus]:last",t=u.findWithSelf(e,n),t.length&&t.get(0)!==document.activeElement?t.focus():void 0},isRealElement=function(e){var t;return t=".up-ghost, .up-destroying",0===e.closest(t).length},first=function(e){var t,n,r,o,i,a;for(o=void 0,o=u.isString(e)?$(e).get():e,n=void 0,i=0,a=o.length;a>i;i++)if(r=o[i],t=$(r),isRealElement(t)){n=t;break}return n},destroy=function(e,t){var n,r,o,i,a;return n=$(e),n.is(".up-placeholder, .up-tooltip, .up-modal, .up-popup")||(i=["Destroying fragment %o",n.get(0)],a=["Destroyed fragment %o",n.get(0)]),up.bus.nobodyPrevents("up:fragment:destroy",{$element:n,message:i})?(t=u.options(t,{animation:!1}),r=up.motion.animateOptions(t),n.addClass("up-destroying"),u.isPresent(t.url)&&up.history.push(t.url),u.isPresent(t.title)&&(document.title=t.title),o=u.presence(t.animation,u.isDeferred)||up.motion.animate(n,t.animation,r),o.then(function(){return up.syntax.clean(n),up.emit("up:fragment:destroyed",{$element:n,message:a}),n.remove()}),o):$.Deferred()},reload=function(e,t){var n;return t=u.options(t,{cache:!1}),n=t.url||source(e),replace(e,n,t)},up.on("ready",function(){var e;return e=$(document.body),setSource(e,up.browser.url()),hello(e)}),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),replace:replace,reload:reload,destroy:destroy,extract:extract,first:first,source:source,resolveSelector:resolveSelector,hello:hello}}(jQuery),up.replace=up.flow.replace,up.extract=up.flow.extract,up.reload=up.flow.reload,up.destroy=up.flow.destroy,up.first=up.flow.first,up.hello=up.flow.hello}.call(this),function(){up.motion=function(e){var t,n,r,o,u,i,a,s,l,c,p,f,d,m,h,v,g,y,b,w,k,S,x,$,T;return $=up.util,u={},s={},x={},l={},a=$.config({duration:300,delay:0,easing:"ease",enabled:!0}),y=function(){return u=$.copy(s),x=$.copy(l),a.reset()},m=function(){return a.enabled&&up.browser.canCssTransition()},n=function(t,o,u){var a;return a=e(t),f(a),u=r(u),"none"===o||o===!1?v():$.isFunction(o)?i(o(a,u),o):$.isString(o)?n(a,p(o),u):$.isHash(o)?m()?$.cssAnimate(a,o,u):(a.css(o),$.resolvedDeferred()):$.error("Unknown animation type for %o",o)},r=function(e,t){var n;return null==t&&(t=null),e=$.options(e),n={},n.easing=$.option(e.easing,null!=t?t.attr("up-easing"):void 0,a.easing),n.duration=Number($.option(e.duration,null!=t?t.attr("up-duration"):void 0,a.duration)),n.delay=Number($.option(e.delay,null!=t?t.attr("up-delay"):void 0,a.delay)),n},p=function(e){return u[e]||$.error("Unknown animation %o",e)},t="up-ghosting-deferred",T=function(e,n,r,o){var u,i,a,s,l,c,p;return l=void 0,a=void 0,c=void 0,s=void 0,u=up.layout.viewportOf(e),$.temporaryCss(n,{display:"none"},function(){return l=g(e,u),c=u.scrollTop()}),$.temporaryCss(e,{display:"none"},function(){return up.layout.revealOrRestoreScroll(n,r),a=g(n,u),s=u.scrollTop()}),l.moveTop(s-c),e.hide(),p=$.temporaryCss(n,{opacity:"0"}),i=o(l.$ghost,a.$ghost),e.data(t,i),n.data(t,i),i.then(function(){return e.removeData(t),n.removeData(t),p(),l.$bounds.remove(),a.$bounds.remove()}),i},f=function(t){var n;return n=e(t),$.finishCssAnimate(n),d(n)},d=function(n){return n.each(function(){var n,r;return n=e(this),(r=$.pluckData(n,t))?r.resolve():void 0})},i=function(e,t){return $.isDeferred(e)?e:$.error("Did not return a promise with .then and .resolve methods: %o",t)},h=function(t,o,a,s){var l,p;return"none"===a&&(a=!1),p=e(t),l=e(o),c(p,a),c(l,a),up.log.group(a?"Morphing %o to %o (using %s)":void 0,p.get(0),l.get(0),a,function(){var e,t,o,c;return t=$.only(s,"reveal","restoreScroll","source"),t=$.extend(t,r(s)),m()?(f(p),f(l),a?(e=u[a])?(w(p,l,t),n(l,e,t)):(c=$.presence(a,$.isFunction)||x[a])?T(p,l,t,function(e,n){var r;return r=c(e,n,t),i(r,a)}):$.isString(a)&&a.indexOf("/")>=0?(o=a.split("/"),c=function(e,t,r){return b(n(e,o[0],r),n(t,o[1],r))},h(p,l,c,t)):$.error("Unknown transition %o",a):w(p,l,t)):w(p,l,t)})},c=function(e,t){var n;return t&&0===e.parents("body").length?(n=e.get(0),$.error("Can't morph a <%s> element (%o)",n.tagName,n)):void 0},w=function(e,t,n){return e.hide(),up.layout.revealOrRestoreScroll(t,n)},g=function(t,n){var r,o,u,i,a,s,l,c,p;for(i=$.measure(t,{relative:!0,inner:!0}),u=t.clone(),u.find("script").remove(),u.css({position:"static"===t.css("position")?"static":"relative",top:"",right:"",bottom:"",left:"",width:"100%",height:"100%"}),u.addClass("up-ghost"),r=e('<div class="up-bounds"></div>'),r.css({position:"absolute"}),r.css(i),p=i.top,c=function(e){return 0!==e?(p+=e,r.css({top:p})):void 0},u.appendTo(r),r.insertBefore(t),c(t.offset().top-u.offset().top),o=up.layout.fixedChildren(u),s=0,l=o.length;l>s;s++)a=o[s],$.fixedToAbsolute(a,n);return{$ghost:u,$bounds:r,moveTop:c}},S=function(e,t){return x[e]=t},o=function(e,t){return u[e]=t},k=function(){return s=$.copy(u),l=$.copy(x)},b=$.resolvableWhen,v=$.resolvedDeferred,o("none",v),o("fade-in",function(e,t){return e.css({opacity:0}),n(e,{opacity:1},t)}),o("fade-out",function(e,t){return e.css({opacity:1}),n(e,{opacity:0},t)}),o("move-to-top",function(e,t){var r,o;return r=$.measure(e),o=r.top+r.height,e.css({"margin-top":"0px"}),n(e,{"margin-top":"-"+o+"px"},t)}),o("move-from-top",function(e,t){var r,o;return r=$.measure(e),o=r.top+r.height,e.css({"margin-top":"-"+o+"px"}),n(e,{"margin-top":"0px"},t)}),o("move-to-bottom",function(e,t){var r,o;return r=$.measure(e),o=$.clientSize().height-r.top,e.css({"margin-top":"0px"}),n(e,{"margin-top":o+"px"},t)}),o("move-from-bottom",function(e,t){var r,o;return r=$.measure(e),o=$.clientSize().height-r.top,e.css({"margin-top":o+"px"}),n(e,{"margin-top":"0px"},t)}),o("move-to-left",function(e,t){var r,o;return r=$.measure(e),o=r.left+r.width,e.css({"margin-left":"0px"}),n(e,{"margin-left":"-"+o+"px"},t)}),o("move-from-left",function(e,t){var r,o;return r=$.measure(e),o=r.left+r.width,e.css({"margin-left":"-"+o+"px"}),n(e,{"margin-left":"0px"},t)}),o("move-to-right",function(e,t){var r,o;return r=$.measure(e),o=$.clientSize().width-r.left,e.css({"margin-left":"0px"}),n(e,{"margin-left":o+"px"},t)}),o("move-from-right",function(e,t){var r,o;return r=$.measure(e),o=$.clientSize().width-r.left,e.css({"margin-left":o+"px"}),n(e,{"margin-left":"0px"},t)}),o("roll-down",function(e,t){var r,o;return r=e.height(),o=$.temporaryCss(e,{height:"0px",overflow:"hidden"}),n(e,{height:r+"px"},t).then(o)}),S("none",v),S("move-left",function(e,t,r){return b(n(e,"move-to-left",r),n(t,"move-from-right",r))}),S("move-right",function(e,t,r){return b(n(e,"move-to-right",r),n(t,"move-from-left",r))}),S("move-up",function(e,t,r){return b(n(e,"move-to-top",r),n(t,"move-from-bottom",r))}),S("move-down",function(e,t,r){return b(n(e,"move-to-bottom",r),n(t,"move-from-top",r))}),S("cross-fade",function(e,t,r){return b(n(e,"fade-out",r),n(t,"fade-in",r))}),up.on("up:framework:boot",k),up.on("up:framework:reset",y),{morph:h,animate:n,animateOptions:r,finish:f,transition:S,animation:o,config:a,isEnabled:m,defaults:function(){return $.error("up.motion.defaults(...) no longer exists. Set values on he up.motion.config property instead.")},none:v,when:b,prependCopy:g}}(jQuery),up.transition=up.motion.transition,up.animation=up.motion.animation,up.morph=up.motion.morph,up.animate=up.motion.animate}.call(this),function(){var e=[].slice;up.proxy=function(t){var n,r,o,u,i,a,s,l,c,p,f,d,m,h,v,g,y,b,w,k,S,x,$,T,P,E,D,C,A,U,O,F,R;return R=up.util,n=void 0,P=void 0,i=void 0,x=void 0,a=void 0,D=[],m=R.config({busyDelay:300,preloadDelay:75,cacheSize:70,cacheExpiry:3e5,maxRequests:4,wrapMethods:["PATCH","PUT","DELETE"],wrapMethodParam:"_method",safeMethods:["GET","OPTIONS","HEAD"]}),l=function(e){return S(e),[e.url,e.method,e.data,e.target].join("|")},s=R.cache({size:function(){return m.cacheSize},expiry:function(){return m.cacheExpiry},key:l}),h=function(e){var t,n,r,o,u,i,a;for(e=S(e),n=[e],"html"!==e.target&&(i=R.merge(e,{target:"html"}),n.push(i),"body"!==e.target&&(u=R.merge(e,{target:"body"}),n.push(u))),r=0,o=n.length;o>r;r++)if(t=n[r],a=s.get(t))return a},O=s.set,C=s.remove,d=s.clear,p=function(){return clearTimeout(P),P=null},c=function(){return clearTimeout(i),i=null},A=function(){return n=null,p(),c(),x=0,m.reset(),a=!1,s.clear(),D=[]},A(),o=s.alias,S=function(e){return e._normalized||(e.method=R.normalizeMethod(e.method),e.url&&(e.url=R.normalizeUrl(e.url)),e.target||(e.target="body"),e._normalized=!0),e},r=function(e){var t,n,r,o,u;return t=e.cache===!0,n=e.cache===!1,u=R.only(e,"url","method","data","target","headers","_normalized"),u=S(u),r=!0,g(u)||t?(o=h(u))&&!n?(up.puts("Re-using cached response for %s %s",u.method,u.url),r="pending"===o.state()):(o=w(u),O(u,o),o.fail(function(){return C(u)})):(d(),o=w(u)),r&&!e.preload&&(k(),o.always(b)),console.groupEnd(),o},v=function(){return 0===x},u=function(){return x>0},k=function(){var e,t;return t=v(),x+=1,t?(e=function(){return u()?(up.emit("up:proxy:busy",{message:"Proxy is busy"}),a=!0):void 0},m.busyDelay>0?i=setTimeout(e,m.busyDelay):e()):void 0},b=function(){return x-=1,v()&&a?(up.emit("up:proxy:idle",{message:"Proxy is idle"}),a=!1):void 0},w=function(e){return x<m.maxRequests?y(e):E(e)},E=function(e){var n,r;return up.puts("Queuing request for %s %s",e.method,e.url),n=t.Deferred(),r={deferred:n,request:e},D.push(r),n.promise()},y=function(e){var n;return up.emit("up:proxy:load",R.merge(e,{message:["Loading %s %s",e.method,e.url]})),e=R.copy(e),e.headers||(e.headers={}),e.headers["X-Up-Target"]=e.target,e.data=R.requestDataAsArray(e.data),R.contains(m.wrapMethods,e.method)&&(e.data.push({name:m.wrapMethodParam,value:e.method}),e.method="POST"),n=t.ajax(e),n.done(function(t,n,r){return U(e,r)}),n.fail(function(t){return U(e,t)}),n},U=function(e,t){var n;return up.emit("up:proxy:received",R.merge(e,{message:["Server responded with %s %s (%d bytes)",t.status,t.statusText,null!=(n=t.responseText)?n.length:void 0]})),$()},$=function(){var t,n;return(t=D.shift())?(n=y(t.request),n.done(function(){var n,r;return n=1<=arguments.length?e.call(arguments,0):[],(r=t.deferred).resolve.apply(r,n)}),n.fail(function(){var n,r;return n=1<=arguments.length?e.call(arguments,0):[],(r=t.deferred).reject.apply(r,n)})):void 0},g=function(e){return S(e),R.contains(m.safeMethods,e.method)},f=function(e){var t,r;return r=parseInt(R.presentAttr(e,"up-delay"))||m.preloadDelay,e.is(n)?void 0:(n=e,p(),t=function(){return T(e),n=null},F(t,r))},F=function(e,t){return P=setTimeout(e,t)},T=function(e,n){var r,o;return r=t(e),n=R.options(n),o=up.link.followMethod(r,n),g({method:o})?up.log.group("Preloading link %o",r,function(){return n.preload=!0,up.follow(r,n)}):(up.puts("Won't preload %o due to unsafe method %s",r,o),R.resolvedPromise())},up.on("mouseover mousedown touchstart","[up-preload]",function(e,t){return up.link.childClicked(e,t)?void 0:f(t)}),up.on("up:framework:reset",A),{preload:T,ajax:r,get:h,alias:o,clear:d,remove:C,idle:v,busy:u,config:m,defaults:function(){return R.error("up.proxy.defaults(...) no longer exists. Set values on he up.proxy.config property instead.")}}}(jQuery),up.ajax=up.proxy.ajax}.call(this),function(){up.link=function($){var allowDefault,childClicked,follow,followMethod,followVariantSelectors,isFollowable,makeFollowable,onAction,shouldProcessLinkEvent,u,visit;return u=up.util,visit=function(e,t){var n;return t=u.options(t),n=u.option(t.target,"body"),up.replace(n,e,t)},follow=function(e,t){var n,r,o;return n=$(e),t=u.options(t),o=u.option(n.attr("up-href"),n.attr("href")),r=u.option(t.target,n.attr("up-target"),"body"),t.failTarget=u.option(t.failTarget,n.attr("up-fail-target"),"body"),t.transition=u.option(t.transition,u.castedAttr(n,"up-transition"),"none"),t.failTransition=u.option(t.failTransition,u.castedAttr(n,"up-fail-transition"),"none"),t.history=u.option(t.history,u.castedAttr(n,"up-history")),t.reveal=u.option(t.reveal,u.castedAttr(n,"up-reveal"),!0),t.cache=u.option(t.cache,u.castedAttr(n,"up-cache")),t.restoreScroll=u.option(t.restoreScroll,u.castedAttr(n,"up-restore-scroll")),t.method=followMethod(n,t),t.origin=u.option(t.origin,n),t.confirm=u.option(t.confirm,n.attr("up-confirm")),t=u.merge(t,up.motion.animateOptions(t,n)),up.browser.confirm(t.confirm).then(function(){return up.replace(r,o,t)})},followMethod=function(e,t){var n;return n=$(e),t=u.options(t),u.option(t.method,n.attr("up-method"),n.attr("data-method"),"get").toUpperCase()},childClicked=function(e,t){var n,r;return n=$(e.target),r=n.closest("a, [up-href]"),r.length&&t.find(r).length},shouldProcessLinkEvent=function(e,t){return u.isUnmodifiedMouseEvent(e)&&!childClicked(e,t)},followVariantSelectors=[],allowDefault=function(){},onAction=function(e,t){return followVariantSelectors.push(e),up.on("click","a"+e+", [up-href]"+e,function(e,n){return shouldProcessLinkEvent(e,n)?n.is("[up-instant]")?e.preventDefault():(e.preventDefault(),t(n)):allowDefault(e)}),up.on("mousedown","a"+e+"[up-instant], [up-href]"+e+"[up-instant]",function(e,n){return shouldProcessLinkEvent(e,n)?(e.preventDefault(),t(n)):void 0})},isFollowable=function(e){return u.any(followVariantSelectors,function(t){return e.is(t)})},makeFollowable=function(e){var t;return t=$(e),isFollowable(t)?void 0:t.attr("up-follow","")},onAction("[up-target]",function(e){return follow(e)}),onAction("[up-follow]",function(e){return follow(e)}),up.macro("[up-expand]",function(e){var t,n,r,o,i,a,s,l,c,p;if(t=e.find("a, [up-href]"),(c=e.attr("up-expand"))&&(t=t.filter(c)),i=t.get(0)){for(p=/^up-/,s={},s["up-href"]=$(i).attr("href"),l=i.attributes,r=0,o=l.length;o>r;r++)n=l[r],a=n.name,a.match(p)&&(s[a]=n.value);return u.setMissingAttrs(e,s),e.removeAttr("up-expand"),makeFollowable(e)}}),up.macro("[up-dash]",function(e){var t,n;return n=u.castedAttr(e,"up-dash"),t={"up-preload":"true","up-instant":"true"},n===!0?t["up-follow"]="":t["up-target"]=n,u.setMissingAttrs(e,t),e.removeAttr("up-dash")}),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),visit:visit,follow:follow,makeFollowable:makeFollowable,shouldProcessLinkEvent:shouldProcessLinkEvent,childClicked:childClicked,followMethod:followMethod,onAction:onAction}}(jQuery),up.visit=up.link.visit,up.follow=up.link.follow}.call(this),function(){var slice=[].slice;up.form=function($){var autosubmit,config,currentValuesForSwitch,observe,observeForm,reset,resolveValidateTarget,submit,switchTargets,u,validate;return u=up.util,config=u.config({validateTargets:["[up-fieldset]:has(&)","fieldset:has(&)","label:has(&)","form:has(&)"],fields:[":input"],observeDelay:0}),reset=function(){return config.reset()},submit=function(e,t){var n,r,o,i,a;return n=$(e).closest("form"),t=u.options(t),i=u.option(t.target,n.attr("up-target"),"body"),a=u.option(t.url,n.attr("action"),up.browser.url()),t.failTarget=u.option(t.failTarget,n.attr("up-fail-target"))||u.selectorForElement(n),t.history=u.option(t.history,u.castedAttr(n,"up-history"),!0),t.transition=u.option(t.transition,u.castedAttr(n,"up-transition"),"none"),t.failTransition=u.option(t.failTransition,u.castedAttr(n,"up-fail-transition"),"none"),t.method=u.option(t.method,n.attr("up-method"),n.attr("data-method"),n.attr("method"),"post").toUpperCase(),t.headers=u.option(t.headers,{}),t.reveal=u.option(t.reveal,u.castedAttr(n,"up-reveal"),!0),t.cache=u.option(t.cache,u.castedAttr(n,"up-cache")),t.restoreScroll=u.option(t.restoreScroll,u.castedAttr(n,"up-restore-scroll")),t.origin=u.option(t.origin,n),t.data=n.serializeArray(),t=u.merge(t,up.motion.animateOptions(t,n)),r=n.find("input[type=file]").length,t.validate&&(t.headers||(t.headers={}),t.headers["X-Up-Validate"]=t.validate,r)?u.unresolvablePromise():(n.addClass("up-active"),r||!up.browser.canPushState()&&t.history!==!1?(n.get(0).submit(),u.unresolvablePromise()):(o=up.replace(i,a,t),o.always(function(){return n.removeClass("up-active")}),o))},observe=function(){var $element,args,callback,callbackArg,callbackPromise,callbackTimer,changeEvents,check,clearTimer,delay,knownValue,nextCallback,options,rawCallback,runNextCallback,selectorOrElement;return selectorOrElement=arguments[0],args=2<=arguments.length?slice.call(arguments,1):[],options={},callbackArg=void 0,1===args.length&&(callbackArg=args[0]),args.length>1&&(options=u.options(args[0]),callbackArg=args[1]),$element=$(selectorOrElement),options=u.options(options),delay=u.option($element.attr("up-delay"),options.delay,config.observeDelay),delay=parseInt(delay),callback=null,u.isGiven(options.change)&&u.error("up.observe now takes the change callback as the last argument"),rawCallback=u.option(u.presentAttr($element,"op-observe"),callbackArg),callback=u.isString(rawCallback)?function(value,$field){return eval(rawCallback)}:rawCallback||u.error("up.observe: No change callback given"),$element.is("form")?observeForm($element,options,callback):(knownValue=null,callbackTimer=null,callbackPromise=u.resolvedPromise(),nextCallback=null,runNextCallback=function(){var e;return nextCallback?(e=nextCallback(),nextCallback=null,e):void 0},check=function(){var e,t,n;return n=$element.val(),t=u.isNull(knownValue),knownValue===n||(knownValue=n,t)?void 0:(clearTimer(),nextCallback=function(){return callback.apply($element.get(0),[n,$element])},e=function(){return callbackPromise.then(function(){var e;return e=runNextCallback(),callbackPromise=u.isPromise(e)?e:u.resolvedPromise()})},0===delay?e():setTimeout(e,delay))},clearTimer=function(){return clearTimeout(callbackTimer)},changeEvents=up.browser.canInputEvent()?"input change":"input change keypress paste cut click propertychange",$element.on(changeEvents,check),check(),function(){return $element.off(changeEvents,check),clearTimer()})},observeForm=function(e,t,n){var r,o;return r=u.multiSelector(config.fields).find(e),o=u.map(r,function(e){return observe(e,n)}),function(){var e,t,n,r;for(r=[],t=0,n=o.length;n>t;t++)e=o[t],r.push(e());return r}},autosubmit=function(e,t){return observe(e,t,function(e,t){var n;return n=t.closest("form"),t.addClass("up-active"),submit(n).always(function(){return t.removeClass("up-active")})})},resolveValidateTarget=function(e,t){var n;return n=u.option(t.target,e.attr("up-validate")),u.isBlank(n)&&(n||(n=u.detect(config.validateTargets,function(n){var r;return r=up.flow.resolveSelector(n,t.origin),e.closest(r).length}))),u.isBlank(n)&&u.error("Could not find default validation target for %o (tried ancestors %o)",e.get(0),config.validateTargets),u.isString(n)||(n=u.selectorForElement(n)),n},validate=function(e,t){var n,r,o;return n=$(e),t=u.options(t),t.origin=n,t.target=resolveValidateTarget(n,t),t.failTarget=t.target,t.history=!1,t.headers=u.option(t.headers,{}),t.validate=n.attr("name")||"__none__",t=u.merge(t,up.motion.animateOptions(t,n)),r=n.closest("form"),o=up.submit(r,t)},currentValuesForSwitch=function(e){var t,n,r;return r=void 0,e.is("input[type=checkbox]")?r=e.is(":checked")?[":checked",":present",e.val()]:[":unchecked",":blank"]:e.is("input[type=radio]")?(t=e.closest("form, body").find("input[type='radio'][name='"+e.attr("name")+"']:checked"),r=t.length?[":checked",":present",t.val()]:[":unchecked",":blank"]):(n=e.val(),r=u.isPresent(n)?[":present",n]:[":blank"]),r},currentValuesForSwitch=function(e){var t,n,r,o;return e.is("input[type=checkbox]")?e.is(":checked")?(r=e.val(),n=":checked"):n=":unchecked":e.is("input[type=radio]")?(t=e.closest("form, body").find("input[type='radio'][name='"+e.attr("name")+"']:checked"),t.length?(n=":checked",r=t.val()):n=":unchecked"):r=e.val(),o=[],u.isPresent(r)?(o.push(r),o.push(":present")):o.push(":blank"),u.isPresent(n)&&o.push(n),o},switchTargets=function(e,t){var n,r,o;return n=$(e),t=u.options(t),o=u.option(t.target,n.attr("up-switch")),u.isPresent(o)||u.error("No switch target given for %o",n.get(0)),r=currentValuesForSwitch(n),$(o).each(function(){var e,t,n,o;return e=$(this),(t=e.attr("up-hide-for"))?(t=t.split(" "),n=0===u.intersect(r,t).length):(o=(o=e.attr("up-show-for"))?o.split(" "):[":present",":checked"],n=u.intersect(r,o).length>0),e.toggle(n)})},up.on("submit","form[up-target]",function(e,t){return e.preventDefault(),submit(t)}),up.on("change","[up-validate]",function(e,t){return validate(t)}),up.on("change","[up-switch]",function(e,t){return switchTargets(t)}),up.compiler("[up-switch]",function(e){return switchTargets(e)}),up.compiler("[up-observe]",function(e){return observe(e)}),up.compiler("[up-autosubmit]",function(e){return autosubmit(e)}),up.on("up:framework:reset",reset),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),config:config,submit:submit,observe:observe,validate:validate,switchTargets:switchTargets}}(jQuery),up.submit=up.form.submit,up.observe=up.form.observe,up.autosubmit=up.form.autosubmit,up.validate=up.form.validate}.call(this),function(){up.popup=function($){var attach,autoclose,close,config,contains,coveredUrl,createFrame,currentUrl,discardHistory,ensureInViewport,isOpen,reset,setPosition,u;return u=up.util,currentUrl=void 0,coveredUrl=function(){return $(".up-popup").attr("up-covered-url")},config=u.config({openAnimation:"fade-in",closeAnimation:"fade-out",position:"bottom-right",history:!1}),reset=function(){return close({animation:!1}),config.reset()},setPosition=function(e,t){var n,r,o;return o=u.measure(e,{full:!0}),r=function(){switch(t){case"bottom-right":return{right:o.right,top:o.top+o.height};case"bottom-left":return{left:o.left,top:o.top+o.height};case"top-right":return{right:o.right,bottom:o.top};case"top-left":return{left:o.left,bottom:o.top};default:return u.error("Unknown position option '%s'",t)}}(),n=$(".up-popup"),n.attr("up-position",t),n.css(r),ensureInViewport(n)},ensureInViewport=function(e){var t,n,r,o,i,a,s;if(n=u.measure(e,{full:!0}),r=null,o=null,n.right<0&&(r=-n.right),n.bottom<0&&(o=-n.bottom),n.left<0&&(r=n.left),n.top<0&&(o=n.top),r&&((i=parseInt(e.css("left")))?e.css("left",i-r):(a=parseInt(e.css("right")))&&e.css("right",a+r)),o){if(s=parseInt(e.css("top")))return e.css("top",s-o);if(t=parseInt(e.css("bottom")))return e.css("bottom",t+o)}},discardHistory=function(){var e;return e=$(".up-popup"),e.removeAttr("up-covered-url"),e.removeAttr("up-covered-title")},createFrame=function(e,t){var n;return n=u.$createElementFromSelector(".up-popup"),t.sticky&&n.attr("up-sticky",""),n.attr("up-covered-url",up.browser.url()),n.attr("up-covered-title",document.title),u.$createPlaceholder(e,n),n.appendTo(document.body),n},isOpen=function(){return $(".up-popup").length>0},attach=function(e,t){var n,r,o,i;return n=$(e),n.length||u.error("Cannot attach popup to non-existing element %o",e),t=u.options(t),i=u.option(t.url,n.attr("href")),o=u.option(t.target,n.attr("up-popup"),"body"),t.position=u.option(t.position,n.attr("up-position"),config.position),t.animation=u.option(t.animation,n.attr("up-animation"),config.openAnimation),t.sticky=u.option(t.sticky,u.castedAttr(n,"up-sticky")),t.history=up.browser.canPushState()?u.option(t.history,u.castedAttr(n,"up-history"),config.history):!1,t.confirm=u.option(t.confirm,n.attr("up-confirm")),r=up.motion.animateOptions(t,n),up.browser.confirm(t.confirm).then(function(){var e,a;return up.bus.nobodyPrevents("up:popup:open",{url:i,message:"Opening popup"})?(a=isOpen(),a&&close({animation:!1}),t.beforeSwap=function(){return createFrame(o,t)},e=up.replace(o,i,u.merge(t,{animation:!1})),e=e.then(function(){return setPosition(n,t.position)}),a||(e=e.then(function(){return up.animate($(".up-popup"),t.animation,r)})),e=e.then(function(){return up.emit("up:popup:opened",{message:"Popup opened"})})):u.unresolvableDeferred()})},close=function(e){var t,n;return t=$(".up-popup"),t.length?up.bus.nobodyPrevents("up:popup:close",{$element:t})?(e=u.options(e,{animation:config.closeAnimation,url:t.attr("up-covered-url"),title:t.attr("up-covered-title")}),currentUrl=void 0,n=up.destroy(t,e),n.then(function(){return up.emit("up:popup:closed",{message:"Popup closed"})}),n):u.unresolvableDeferred():u.resolvedDeferred()},autoclose=function(){return $(".up-popup").is("[up-sticky]")?void 0:(discardHistory(),close())},contains=function(e){var t;return t=$(e),t.closest(".up-popup").length>0},up.link.onAction("[up-popup]",function(e){return e.is(".up-current")?close():attach(e)}),up.on("click","body",function(e){var t;return t=$(e.target),t.closest(".up-popup").length||t.closest("[up-popup]").length?void 0:close()}),up.on("up:fragment:inserted",function(e,t){var n;if(contains(t)){if(n=t.attr("up-source"))return currentUrl=n}else if(contains(e.origin))return autoclose()}),up.bus.onEscape(function(){return close()}),up.on("click","[up-close]",function(e,t){return t.closest(".up-popup").length?(close(),e.preventDefault()):void 0}),up.on("up:framework:reset",reset),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),attach:attach,close:close,url:function(){return currentUrl},coveredUrl:coveredUrl,config:config,defaults:function(){return u.error("up.popup.defaults(...) no longer exists. Set values on he up.popup.config property instead.")},contains:contains,open:function(){return up.error("up.popup.open no longer exists. Please use up.popup.attach instead.")},source:function(){return up.error("up.popup.source no longer exists. Please use up.popup.url instead.")},isOpen:isOpen}}(jQuery)}.call(this),function(){up.modal=function($){var autoclose,close,config,contains,coveredUrl,createFrame,currentUrl,discardHistory,follow,isOpen,open,reset,shiftElements,templateHtml,u,unshiftElements,unshifters,visit;return u=up.util,config=u.config({maxWidth:null,minWidth:null,width:null,height:null,history:!0,openAnimation:"fade-in",closeAnimation:"fade-out",closeLabel:"\xd7",template:function(e){return'<div class="up-modal">\n <div class="up-modal-dialog">\n <div class="up-modal-close" up-close>'+e.closeLabel+'</div>\n <div class="up-modal-content"></div>\n </div>\n</div>'}}),currentUrl=void 0,coveredUrl=function(){return $(".up-modal").attr("up-covered-url")},reset=function(){return close({animation:!1}),currentUrl=void 0,config.reset()},templateHtml=function(){var e;return e=config.template,u.isFunction(e)?e(config):e},discardHistory=function(){var e;return e=$(".up-modal"),e.removeAttr("up-covered-url"),e.removeAttr("up-covered-title")},createFrame=function(e,t){var n,r,o;return shiftElements(),o=$(templateHtml()),t.sticky&&o.attr("up-sticky",""),o.attr("up-covered-url",up.browser.url()),o.attr("up-covered-title",document.title),r=o.find(".up-modal-dialog"),u.isPresent(t.width)&&r.css("width",t.width),u.isPresent(t.maxWidth)&&r.css("max-width",t.maxWidth),u.isPresent(t.height)&&r.css("height",t.height),n=o.find(".up-modal-content"),u.$createPlaceholder(e,n),o.appendTo(document.body),o},unshifters=[],shiftElements=function(){var e,t,n,r;return n=u.scrollbarWidth(),e=parseInt($("body").css("padding-right")),t=n+e,r=u.temporaryCss($("body"),{"padding-right":t+"px","overflow-y":"hidden"}),unshifters.push(r),up.layout.anchoredRight().each(function(){var e,t,r,o;return e=$(this),t=parseInt(e.css("right")),r=n+t,o=u.temporaryCss(e,{right:r}),unshifters.push(o)})},unshiftElements=function(){var e,t;for(e=[];t=unshifters.pop();)e.push(t());return e},isOpen=function(){return $(".up-modal").length>0},follow=function(e,t){return t=u.options(t),t.$link=$(e),open(t)},visit=function(e,t){return t=u.options(t),t.url=e,open(t)},open=function(e){var t,n,r,o;return e=u.options(e),t=u.option(e.$link,u.nullJQuery()),o=u.option(e.url,t.attr("up-href"),t.attr("href")),r=u.option(e.target,t.attr("up-modal"),"body"),e.width=u.option(e.width,t.attr("up-width"),config.width),e.maxWidth=u.option(e.maxWidth,t.attr("up-max-width"),config.maxWidth),e.height=u.option(e.height,t.attr("up-height"),config.height),e.animation=u.option(e.animation,t.attr("up-animation"),config.openAnimation),e.sticky=u.option(e.sticky,u.castedAttr(t,"up-sticky")),e.history=up.browser.canPushState()?u.option(e.history,u.castedAttr(t,"up-history"),config.history):!1,e.confirm=u.option(e.confirm,t.attr("up-confirm")),n=up.motion.animateOptions(e,t),up.browser.confirm(e.confirm).then(function(){var t,i;return up.bus.nobodyPrevents("up:modal:open",{url:o,message:"Opening modal"})?(i=isOpen(),i&&close({animation:!1}),e.beforeSwap=function(){return createFrame(r,e)},t=up.replace(r,o,u.merge(e,{animation:!1})),i||(t=t.then(function(){return up.animate($(".up-modal"),e.animation,n)})),t=t.then(function(){return up.emit("up:modal:opened",{message:"Modal opened"})})):u.unresolvablePromise()})},close=function(e){var t,n;return t=$(".up-modal"),t.length?up.bus.nobodyPrevents("up:modal:close",{$element:t,message:"Closing modal"})?(e=u.options(e,{animation:config.closeAnimation,url:t.attr("up-covered-url"),title:t.attr("up-covered-title")}),currentUrl=void 0,n=up.destroy(t,e),n=n.then(function(){return unshiftElements(),up.emit("up:modal:closed",{message:"Modal closed"})})):u.unresolvableDeferred():u.resolvedDeferred()},autoclose=function(){return $(".up-modal").is("[up-sticky]")?void 0:(discardHistory(),close())},contains=function(e){var t;return t=$(e),t.closest(".up-modal").length>0},up.link.onAction("[up-modal]",function(e){return follow(e)}),up.on("click","body",function(e){var t;return t=$(e.target),t.closest(".up-modal-dialog").length||t.closest("[up-modal]").length?void 0:close()}),up.on("up:fragment:inserted",function(e,t){var n;if(contains(t)){if(n=t.attr("up-source"))return currentUrl=n}else if(!up.popup.contains(t)&&contains(e.origin))return autoclose()}),up.bus.onEscape(function(){return close()}),up.on("click","[up-close]",function(e,t){return t.closest(".up-modal").length?(close(),e.preventDefault()):void 0}),up.on("up:framework:reset",reset),{knife:eval("undefined"!=typeof Knife&&null!==Knife?Knife.point:void 0),visit:visit,follow:follow,open:function(){return up.error("up.modal.open no longer exists. Please use either up.modal.follow or up.modal.visit.")},close:close,url:function(){return currentUrl},coveredUrl:coveredUrl,config:config,defaults:function(){return u.error("up.modal.defaults(...) no longer exists. Set values on he up.modal.config property instead.")},contains:contains,source:function(){return up.error("up.modal.source no longer exists. Please use up.popup.url instead.")},isOpen:isOpen}}(jQuery)}.call(this),function(){up.tooltip=function(e){var t,n,r,o,u,i,a;return a=up.util,r=a.config({position:"top",openAnimation:"fade-in",closeAnimation:"fade-out"}),u=function(){return r.reset()},i=function(e,t,n){var r,o,u;return o=a.measure(e),u=a.measure(t),r=function(){switch(n){case"top":return{left:o.left+.5*(o.width-u.width),top:o.top-u.height};case"bottom":return{left:o.left+.5*(o.width-u.width),top:o.top+o.height};default:return a.error("Unknown position option '%s'",n)}}(),t.attr("up-position",n),t.css(r)},o=function(e){var t;return t=a.$createElementFromSelector(".up-tooltip"),a.isGiven(e.text)?t.text(e.text):t.html(e.html),t.appendTo(document.body),t},t=function(t,u){var s,l,c,p,f,d,m;return null==u&&(u={}),s=e(t),f=a.option(u.html,s.attr("up-tooltip-html")),m=a.option(u.text,s.attr("up-tooltip")),d=a.option(u.position,s.attr("up-position"),r.position),p=a.option(u.animation,a.castedAttr(s,"up-animation"),r.openAnimation),c=up.motion.animateOptions(u,s),n(),l=o({text:m,html:f}),i(s,l,d),up.animate(l,p,c)
3
+ },n=function(t){var n;return n=e(".up-tooltip"),n.length?(t=a.options(t,{animation:r.closeAnimation}),t=a.merge(t,up.motion.animateOptions(t)),up.destroy(n,t)):void 0},up.compiler("[up-tooltip], [up-tooltip-html]",function(e){return e.on("mouseover",function(){return t(e)}),e.on("mouseout",function(){return n()})}),up.on("click","body",function(){return n()}),up.on("up:framework:reset",n),up.bus.onEscape(function(){return n()}),up.on("up:framework:reset",u),{attach:t,close:n,open:function(){return a.error("up.tooltip.open no longer exists. Use up.tooltip.attach instead.")}}}(jQuery)}.call(this),function(){up.navigation=function(e){var t,n,r,o,u,i,a,s,l,c,p,f,d,m,h,v,g;return h=up.util,i=h.config({currentClasses:["up-current"]}),p=function(){return i.reset()},a=function(){var e;return e=i.currentClasses,e=e.concat(["up-current"]),e=h.uniq(e),e.join(" ")},t="up-active",n=["a","[up-href]","[up-alias]"],o=n.join(", "),u=function(){var e,t,r;for(r=[],e=0,t=n.length;t>e;e++)m=n[e],r.push(m+"[up-instant]");return r}().join(", "),r="."+t,c=function(e){return h.isPresent(e)?h.normalizeUrl(e,{search:!1,stripTrailingSlash:!0}):void 0},d=function(e){var t,n,r,o,u,i,a,s,l,p;for(s=[],i=["href","up-href","up-alias"],n=0,o=i.length;o>n;n++)if(t=i[n],l=h.presentAttr(e,t))for(p="up-alias"===t?l.split(" "):[l],r=0,u=p.length;u>r;r++)a=p[r],"#"!==a&&(a=c(a),s.push(a));return s},g=function(e){var t,n,r,o;return e=h.compact(e),r=function(e){return"*"===e.substr(-1)?n(e.slice(0,-1)):t(e)},t=function(t){return h.contains(e,t)},n=function(t){return h.detect(e,function(e){return 0===e.indexOf(t)})},o=function(e){return h.detect(e,r)},{matchesAny:o}},l=function(){var t,n;return t=g([c(up.browser.url()),c(up.modal.url()),c(up.modal.coveredUrl()),c(up.popup.url()),c(up.popup.coveredUrl())]),n=a(),h.each(e(o),function(r){var o,u;return o=e(r),u=d(o),t.matchesAny(u)?o.addClass(n):o.hasClass(n)&&0===o.closest(".up-destroying").length?o.removeClass(n):void 0})},f=function(e){return v(),e=s(e),e.addClass(t)},s=function(e){return h.presence(e.parents(o))||e},v=function(){return e(r).removeClass(t)},up.on("click",o,function(e,t){return h.isUnmodifiedMouseEvent(e)&&!t.is("[up-instant]")?f(t):void 0}),up.on("mousedown",u,function(e,t){return h.isUnmodifiedMouseEvent(e)?f(t):void 0}),up.on("up:fragment:inserted",function(){return v(),l()}),up.on("up:fragment:destroyed",function(e,t){return t.is(".up-modal, .up-popup")?l():void 0}),up.on("up:framework:reset",p),{config:i,defaults:function(){return h.error("up.navigation.defaults(...) no longer exists. Set values on he up.navigation.config property instead.")}}}(jQuery)}.call(this),function(){up.rails=function(e){var t,n,r,o;return r=up.util,o=function(e){return e.is("[up-follow], [up-target], [up-modal], [up-popup]")},n=function(){return r.isGiven(e.rails)},r.each(["method","confirm"],function(e){var t,u;return t="data-"+e,u="up-"+e,up.compiler("["+t+"]",function(e){var i;return n()&&o(e)?(i={},i[u]=e.attr(t),r.setMissingAttrs(e,i),e.removeAttr(t)):void 0})}),t=function(){return n()?{name:e.rails.csrfParam(),value:e.rails.csrfToken()}:void 0},{csrfField:t,isRails:n}}(jQuery)}.call(this),function(){up.boot()}.call(this);
@@ -379,7 +379,7 @@ up.form = (($) ->
379
379
  promise = up.submit($form, options)
380
380
  promise
381
381
 
382
- currentValuesForToggle = ($field) ->
382
+ currentValuesForSwitch = ($field) ->
383
383
  values = undefined
384
384
  if $field.is('input[type=checkbox]')
385
385
  if $field.is(':checked')
@@ -400,7 +400,7 @@ up.form = (($) ->
400
400
  values = [':blank']
401
401
  values
402
402
 
403
- currentValuesForToggle = ($field) ->
403
+ currentValuesForSwitch = ($field) ->
404
404
  if $field.is('input[type=checkbox]')
405
405
  if $field.is(':checked')
406
406
  value = $field.val()
@@ -429,25 +429,25 @@ up.form = (($) ->
429
429
  ###*
430
430
  Shows or hides a target selector depending on the value.
431
431
 
432
- See [`[up-toggle]`](/up-toggle) for more documentation and examples.
432
+ See [`[up-switch]`](/up-switch) for more documentation and examples.
433
433
 
434
434
  This function does not currently have a very useful API outside
435
- of our use for `up-toggle`'s UJS behavior, that's why it's currently
435
+ of our use for `up-switch`'s UJS behavior, that's why it's currently
436
436
  still marked `@internal`.
437
437
 
438
- @function up.form.toggle
438
+ @function up.form.switchTargets
439
439
  @param {String|Element|jQuery} fieldOrSelector
440
440
  @param {String} [options.target]
441
- The target selectors to toggle.
442
- Defaults to an `up-toggle` attribute on the given field.
441
+ The target selectors to switch.
442
+ Defaults to an `up-switch` attribute on the given field.
443
443
  @internal
444
444
  ###
445
- toggleTargets = (fieldOrSelector, options) ->
445
+ switchTargets = (fieldOrSelector, options) ->
446
446
  $field = $(fieldOrSelector)
447
447
  options = u.options(options)
448
- targets = u.option(options.target, $field.attr('up-toggle'))
449
- u.isPresent(targets) or u.error("No toggle target given for %o", $field.get(0))
450
- fieldValues = currentValuesForToggle($field)
448
+ targets = u.option(options.target, $field.attr('up-switch'))
449
+ u.isPresent(targets) or u.error("No switch target given for %o", $field.get(0))
450
+ fieldValues = currentValuesForSwitch($field)
451
451
  $(targets).each ->
452
452
  $target = $(this)
453
453
  if hideValues = $target.attr('up-hide-for')
@@ -716,9 +716,9 @@ up.form = (($) ->
716
716
 
717
717
  \#\#\#\# Example
718
718
 
719
- The triggering input gets an `up-toggle` attribute with a selector for the elements to show or hide:
719
+ The triggering input gets an `up-switch` attribute with a selector for the elements to show or hide:
720
720
 
721
- <select name="advancedness" up-toggle=".target">
721
+ <select name="advancedness" up-switch=".target">
722
722
  <option value="basic">Basic parts</option>
723
723
  <option value="advanced">Advanced parts</option>
724
724
  <option value="very-advanced">Very advanced parts</option>
@@ -740,7 +740,7 @@ up.form = (($) ->
740
740
 
741
741
  For checkboxes you can also use the pseudo-values `:checked` or `:unchecked` like so:
742
742
 
743
- <input type="checkbox" name="flag" up-toggle=".target">
743
+ <input type="checkbox" name="flag" up-switch=".target">
744
744
 
745
745
  <div class="target" up-show-for=":checked">
746
746
  only shown when checkbox is checked
@@ -749,20 +749,20 @@ up.form = (($) ->
749
749
  You can also use the pseudo-values `:blank` to match an empty input value,
750
750
  or `:present` to match a non-empty input value:
751
751
 
752
- <input type="text" name="email" up-toggle=".target">
752
+ <input type="text" name="email" up-switch=".target">
753
753
 
754
754
  <div class="target" up-show-for=":blank">
755
755
  please enter an email address
756
756
  </div>
757
757
 
758
- @selector [up-toggle]
758
+ @selector [up-switch]
759
759
  @stable
760
760
  ###
761
761
 
762
762
  ###*
763
763
  Show this element only if a form field has a given value.
764
764
 
765
- See [`[up-toggle]`](/up-toggle) for more documentation and examples.
765
+ See [`[up-switch]`](/up-switch) for more documentation and examples.
766
766
 
767
767
  @selector [up-show-for]
768
768
  @param up-show-for
@@ -773,7 +773,7 @@ up.form = (($) ->
773
773
  ###*
774
774
  Hide this element if a form field has a given value.
775
775
 
776
- See [`[up-toggle]`](/up-toggle) for more documentation and examples.
776
+ See [`[up-switch]`](/up-switch) for more documentation and examples.
777
777
 
778
778
  @selector [up-hide-for]
779
779
  @param up-hide-for
@@ -781,12 +781,11 @@ up.form = (($) ->
781
781
  @stable
782
782
  ###
783
783
 
784
- up.on 'change', '[up-toggle]', (event, $field) ->
785
- console.log("CHANGE EVENT")
786
- toggleTargets($field)
784
+ up.on 'change', '[up-switch]', (event, $field) ->
785
+ switchTargets($field)
787
786
 
788
- up.compiler '[up-toggle]', ($field) ->
789
- toggleTargets($field)
787
+ up.compiler '[up-switch]', ($field) ->
788
+ switchTargets($field)
790
789
 
791
790
  ###*
792
791
  Observes this field or form and runs a callback when a value changes.
@@ -854,7 +853,7 @@ up.form = (($) ->
854
853
  submit: submit
855
854
  observe: observe
856
855
  validate: validate
857
- toggleTargets: toggleTargets
856
+ switchTargets: switchTargets
858
857
 
859
858
  )(jQuery)
860
859
 
@@ -505,6 +505,22 @@ up.layout = (($) ->
505
505
  @stable
506
506
  ###
507
507
 
508
+
509
+ ###*
510
+ Marks this element as a navigation anchored to the right edge of the screen
511
+ using `position: fixed` or `position:absolute`.
512
+
513
+ [`up.modal`](/up.modal) will move anchored elements to the left so they
514
+ don't appear to move when a modal dialog is opened or closed.
515
+
516
+ \#\#\#\# Example
517
+
518
+ <div class="bottom-nav" up-fixed="bottom">...</div>
519
+
520
+ @selector [up-anchored=right]
521
+ @stable
522
+ ###
523
+
508
524
  up.on 'up:framework:reset', reset
509
525
 
510
526
  knife: eval(Knife?.point)
@@ -166,6 +166,7 @@ up.link = (($) ->
166
166
  $link = $(linkOrSelector)
167
167
 
168
168
  options = u.options(options)
169
+
169
170
  url = u.option($link.attr('up-href'), $link.attr('href'))
170
171
  target = u.option(options.target, $link.attr('up-target'), 'body')
171
172
  options.failTarget = u.option(options.failTarget, $link.attr('up-fail-target'), 'body')
@@ -430,7 +431,7 @@ up.link = (($) ->
430
431
  If omitted, the first contained link will be expanded.
431
432
  @stable
432
433
  ###
433
- up.compiler '[up-expand]', ($area) ->
434
+ up.macro '[up-expand]', ($area) ->
434
435
  $childLinks = $area.find('a, [up-href]')
435
436
  if selector = $area.attr('up-expand')
436
437
  $childLinks = $childLinks.filter(selector)
@@ -465,7 +466,7 @@ up.link = (($) ->
465
466
  @selector [up-dash]
466
467
  @stable
467
468
  ###
468
- up.compiler '[up-dash]', ($element) ->
469
+ up.macro '[up-dash]', ($element) ->
469
470
  target = u.castedAttr($element, 'up-dash')
470
471
  newAttrs = {
471
472
  'up-preload': 'true',
@@ -46,7 +46,7 @@ up.log = (($) ->
46
46
  block = args.pop() # Coffeescript copies the arguments array
47
47
  if message
48
48
  up.browser.puts('groupCollapsed', prefix(message), args...)
49
- # up.browser.puts('log', prefix(message), args...)
49
+ # up.browser.puts('group', prefix(message), args...)
50
50
  try
51
51
  block()
52
52
  finally
@@ -189,7 +189,7 @@ up.motion = (($) ->
189
189
  findAnimation = (name) ->
190
190
  animations[name] or u.error("Unknown animation %o", name)
191
191
 
192
- GHOSTING_PROMISE_KEY = 'up-ghosting-promise'
192
+ GHOSTING_DEFERRED_KEY = 'up-ghosting-deferred'
193
193
 
194
194
  withGhosts = ($old, $new, options, block) ->
195
195
 
@@ -203,8 +203,6 @@ up.motion = (($) ->
203
203
  u.temporaryCss $new, display: 'none', ->
204
204
  # Within this block, $new is hidden but $old is visible
205
205
  oldCopy = prependCopy($old, $viewport)
206
- oldCopy.$ghost.addClass('up-destroying')
207
- oldCopy.$bounds.addClass('up-destroying')
208
206
  # Remember the previous scroll position in case we will reveal $new below.
209
207
  oldScrollTop = $viewport.scrollTop()
210
208
  # $viewport.scrollTop(oldScrollTop + 1)
@@ -231,24 +229,24 @@ up.motion = (($) ->
231
229
  # shown again, causing a flicker while the browser is painting.
232
230
  showNew = u.temporaryCss($new, opacity: '0')
233
231
 
234
- promise = block(oldCopy.$ghost, newCopy.$ghost)
232
+ deferred = block(oldCopy.$ghost, newCopy.$ghost)
235
233
 
236
234
  # Make a way to look at $old and $new and see if an animation is
237
235
  # already in progress. If someone attempted a new animation on the
238
236
  # same elements, the stored promises would be resolved by the second
239
237
  # animation call, making the transition jump to the last frame instantly.
240
- $old.data(GHOSTING_PROMISE_KEY, promise)
241
- $new.data(GHOSTING_PROMISE_KEY, promise)
238
+ $old.data(GHOSTING_DEFERRED_KEY, deferred)
239
+ $new.data(GHOSTING_DEFERRED_KEY, deferred)
242
240
 
243
- promise.then ->
244
- $old.removeData(GHOSTING_PROMISE_KEY)
245
- $new.removeData(GHOSTING_PROMISE_KEY)
241
+ deferred.then ->
242
+ $old.removeData(GHOSTING_DEFERRED_KEY)
243
+ $new.removeData(GHOSTING_DEFERRED_KEY)
246
244
  # Now that the transition is over we show $new again.
247
245
  showNew()
248
246
  oldCopy.$bounds.remove()
249
247
  newCopy.$bounds.remove()
250
248
 
251
- promise
249
+ deferred
252
250
 
253
251
  ###*
254
252
  Completes all [animations](/up.animate) and [transitions](/up.morph)
@@ -263,15 +261,15 @@ up.motion = (($) ->
263
261
  @stable
264
262
  ###
265
263
  finish = (elementOrSelector) ->
266
- $(elementOrSelector).each ->
264
+ $element = $(elementOrSelector)
265
+ u.finishCssAnimate($element)
266
+ finishGhosting($element)
267
+
268
+ finishGhosting = ($collection) ->
269
+ $collection.each ->
267
270
  $element = $(this)
268
- u.finishCssAnimate($element)
269
- finishGhosting($element)
270
-
271
- finishGhosting = ($element) ->
272
- if existingGhosting = $element.data(GHOSTING_PROMISE_KEY)
273
- up.puts('Canceling existing ghosting on %o', $element)
274
- existingGhosting.resolve?()
271
+ if existingGhosting = u.pluckData($element, GHOSTING_DEFERRED_KEY)
272
+ existingGhosting.resolve()
275
273
 
276
274
  assertIsDeferred = (object, source) ->
277
275
  if u.isDeferred(object)
@@ -352,7 +350,7 @@ up.motion = (($) ->
352
350
  ensureMorphable($old, transitionOrName)
353
351
  ensureMorphable($new, transitionOrName)
354
352
 
355
- up.log.group ('Morphing %o to %o (using %o)' if transitionOrName), source, target, transitionOrName, ->
353
+ up.log.group ('Morphing %o to %o (using %s)' if transitionOrName), $old.get(0), $new.get(0), transitionOrName, ->
356
354
 
357
355
  parsedOptions = u.only(options, 'reveal', 'restoreScroll', 'source')
358
356
  parsedOptions = u.extend(parsedOptions, animateOptions(options))
@@ -39,6 +39,8 @@ up.syntax = (($) ->
39
39
  DESTROYABLE_CLASS = 'up-destroyable'
40
40
  DESTROYER_KEY = 'up-destroyer'
41
41
 
42
+ compilers = []
43
+ macros = []
42
44
 
43
45
  ###*
44
46
  Registers a function to be called whenever an element with
@@ -177,6 +179,10 @@ up.syntax = (($) ->
177
179
  @function up.compiler
178
180
  @param {String} selector
179
181
  The selector to match.
182
+ @param {Number} [options.priority=0]
183
+ The priority of this compilers.
184
+ Compilers with a higher priority are run first.
185
+ Two compilers with the same priority are run in the order they were registered.
180
186
  @param {Boolean} [options.batch=false]
181
187
  If set to `true` and a fragment insertion contains multiple
182
188
  elements matching the selector, `compiler` is only called once
@@ -199,18 +205,69 @@ up.syntax = (($) ->
199
205
  is already handled by [`up.destroy`](/up.destroy).
200
206
  @stable
201
207
  ###
202
- compilers = []
208
+ compiler = (args...) ->
209
+ insertCompiler(compilers, args...)
210
+
211
+ ###*
212
+ Registers a [compiler](/up.compiler) that is run before all other compilers.
213
+
214
+ You can use `up.macro` to register a compiler that sets other UJS attributes.
215
+
216
+ \#\#\#\# Example
217
+
218
+ You will sometimes find yourself setting the same combination of UJS attributes again and again:
219
+
220
+ <a href="/page1" up-target=".content" up-transition="cross-fade" up-duration="300">Page 1</a>
221
+ <a href="/page2" up-target=".content" up-transition="cross-fade" up-duration="300">Page 2</a>
222
+ <a href="/page3" up-target=".content" up-transition="cross-fade" up-duration="300">Page 3</a>
223
+
224
+ We would much rather define a new `content-link` attribute that let's us
225
+ write the same links like this:
226
+
227
+ <a href="/page1" content-link>Page 1</a>
228
+ <a href="/page2" content-link>Page 2</a>
229
+ <a href="/page3" content-link>Page 3</a>
230
+
231
+ We can define the `content-link` attribute by registering a macro that
232
+ sets the `up-target`, `up-transition` and `up-duration` attributes for us:
203
233
 
204
- compiler = (selector, args...) ->
234
+ up.macro('[content-link]', function($link) {
235
+ $link.attr('up-target', '.content');
236
+ $link.attr('up-transition', 'cross-fade');
237
+ $link.attr('up-duration', '300');
238
+ });
239
+
240
+ Examples for built-in macros are [`up-dash`](/up-dash) and [`up-expand`](/up-expand).
241
+
242
+ @param {String} selector
243
+ The selector to match.
244
+ @param {Object} options
245
+ See options for [`up.compiler`](/up.compiler).
246
+ @param {Function($element, data)} compiler
247
+ The function to call when a matching element is inserted.
248
+ See [`up.compiler`](/up.compiler) for details.
249
+ @stable
250
+ ###
251
+ macro = (args...) ->
252
+ insertCompiler(macros, args...)
253
+
254
+ buildCompiler = (selector, args...) ->
255
+ callback = args.pop()
256
+ options = u.options(args[0], priority: 0)
257
+ selector: selector
258
+ callback: callback
259
+ priority: options.priority
260
+ batch: options.batch
261
+ keep: options.keep
262
+
263
+ insertCompiler = (queue, args...) ->
205
264
  # Silently discard any compilers that are registered on unsupported browsers
206
265
  return unless up.browser.isSupported()
207
- compiler = args.pop()
208
- options = u.options(args[0])
209
- compilers.push
210
- selector: selector
211
- callback: compiler
212
- batch: options.batch
213
- keep: options.keep
266
+ newCompiler = buildCompiler(args...)
267
+ index = 0
268
+ while (oldCompiler = queue[index]) && (oldCompiler.priority <= newCompiler.priority)
269
+ index += 1
270
+ queue.splice(index, 0, newCompiler)
214
271
 
215
272
  applyCompiler = (compiler, $jqueryElement, nativeElement) ->
216
273
  up.puts ("Compiling '%s' on %o" unless compiler.isDefault), compiler.selector, nativeElement
@@ -236,20 +293,21 @@ up.syntax = (($) ->
236
293
  $skipSubtrees = $(options.skip)
237
294
 
238
295
  up.log.group "Compiling fragment %o", $fragment.get(0), ->
239
- for compiler in compilers
240
- $matches = u.findWithSelf($fragment, compiler.selector)
241
-
242
- $matches = $matches.filter ->
243
- $match = $(this)
244
- u.all $skipSubtrees, (element) ->
245
- $match.closest(element).length == 0
246
-
247
- if $matches.length
248
- up.log.group ("Compiling '%s' on %d element(s)" unless compiler.isDefault), compiler.selector, $matches.length, ->
249
- if compiler.batch
250
- applyCompiler(compiler, $matches, $matches.get())
251
- else
252
- $matches.each -> applyCompiler(compiler, $(this), this)
296
+ for queue in [macros, compilers]
297
+ for compiler in queue
298
+ $matches = u.findWithSelf($fragment, compiler.selector)
299
+
300
+ $matches = $matches.filter ->
301
+ $match = $(this)
302
+ u.all $skipSubtrees, (element) ->
303
+ $match.closest(element).length == 0
304
+
305
+ if $matches.length
306
+ up.log.group ("Compiling '%s' on %d element(s)" unless compiler.isDefault), compiler.selector, $matches.length, ->
307
+ if compiler.batch
308
+ applyCompiler(compiler, $matches, $matches.get())
309
+ else
310
+ $matches.each -> applyCompiler(compiler, $(this), this)
253
311
 
254
312
  ###*
255
313
  Runs any destroyers on the given fragment and its descendants.
@@ -325,6 +383,7 @@ up.syntax = (($) ->
325
383
  up.on 'up:framework:reset', reset
326
384
 
327
385
  compiler: compiler
386
+ macro: macro
328
387
  compile: compile
329
388
  clean: clean
330
389
  data: data
@@ -332,6 +391,7 @@ up.syntax = (($) ->
332
391
  )(jQuery)
333
392
 
334
393
  up.compiler = up.syntax.compiler
394
+ up.macro = up.syntax.macro
335
395
 
336
396
  up.ready = -> up.util.error('up.ready no longer exists. Please use up.hello instead.')
337
397
  up.awaken = -> up.util.error('up.awaken no longer exists. Please use up.compiler instead.')
@@ -901,8 +901,8 @@ up.util = (($) ->
901
901
  $element.css(lastFrame)
902
902
  deferred.then(withoutCompositing)
903
903
  deferred.then(withoutTransition)
904
- $element.data(ANIMATION_PROMISE_KEY, deferred)
905
- deferred.then(-> $element.removeData(ANIMATION_PROMISE_KEY))
904
+ $element.data(ANIMATION_DEFERRED_KEY, deferred)
905
+ deferred.then(-> $element.removeData(ANIMATION_DEFERRED_KEY))
906
906
  endTimeout = setTimeout((-> deferred.resolve()), opts.duration + opts.delay)
907
907
  deferred.then(-> clearTimeout(endTimeout)) # clean up in case we're canceled
908
908
  # Return the whole deferred and not just return a thenable.
@@ -910,7 +910,7 @@ up.util = (($) ->
910
910
  # by resolving the deferred.
911
911
  deferred
912
912
 
913
- ANIMATION_PROMISE_KEY = 'up-animation-promise'
913
+ ANIMATION_DEFERRED_KEY = 'up-animation-deferred'
914
914
 
915
915
  ###*
916
916
  Completes the animation for the given element by jumping
@@ -927,7 +927,7 @@ up.util = (($) ->
927
927
  ###
928
928
  finishCssAnimate = (elementOrSelector) ->
929
929
  $(elementOrSelector).each ->
930
- if existingAnimation = $(this).data(ANIMATION_PROMISE_KEY)
930
+ if existingAnimation = pluckData(this, ANIMATION_DEFERRED_KEY)
931
931
  existingAnimation.resolve()
932
932
 
933
933
  ###*
@@ -1160,9 +1160,13 @@ up.util = (($) ->
1160
1160
  @internal
1161
1161
  ###
1162
1162
  resolvableWhen = (deferreds...) ->
1163
- joined = $.when(deferreds...)
1164
- joined.resolve = ->
1165
- each deferreds, (deferred) -> deferred.resolve?()
1163
+ # Pass an additional resolved deferred to $.when so $.when will
1164
+ # not return the given deferred if only one deferred is passed.
1165
+ joined = $.when(resolvedDeferred(), deferreds...)
1166
+ joined.resolve = memoize(->
1167
+ each deferreds, (deferred) ->
1168
+ deferred.resolve()
1169
+ )
1166
1170
  joined
1167
1171
 
1168
1172
  # resolvableSequence = (first, callbacks...) ->
@@ -1500,6 +1504,12 @@ up.util = (($) ->
1500
1504
  $error.text(asString)
1501
1505
  throw new Error(asString)
1502
1506
 
1507
+ pluckData = (elementOrSelector, key) ->
1508
+ $element = $(elementOrSelector)
1509
+ value = $element.data(key)
1510
+ $element.removeData(key)
1511
+ value
1512
+
1503
1513
  requestDataAsArray: requestDataAsArray
1504
1514
  requestDataAsQuery: requestDataAsQuery
1505
1515
  offsetParent: offsetParent
@@ -1587,6 +1597,7 @@ up.util = (($) ->
1587
1597
  unwrapElement: unwrapElement
1588
1598
  multiSelector: multiSelector
1589
1599
  error: error
1600
+ pluckData: pluckData
1590
1601
 
1591
1602
  )($)
1592
1603