Skip to content

Instantly share code, notes, and snippets.

@Olical
Created June 1, 2011 20:53
Show Gist options
  • Select an option

  • Save Olical/1003290 to your computer and use it in GitHub Desktop.

Select an option

Save Olical/1003290 to your computer and use it in GitHub Desktop.
Playing with Google closure
var h=void 0,i=null,n,o=this;function p(){}
function aa(a){var b=typeof a;if(b=="object")if(a){if(a instanceof Array)return"array";else if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if(c=="[object Window]")return"object";if(c=="[object Array]"||typeof a.length=="number"&&typeof a.splice!="undefined"&&typeof a.propertyIsEnumerable!="undefined"&&!a.propertyIsEnumerable("splice"))return"array";if(c=="[object Function]"||typeof a.call!="undefined"&&typeof a.propertyIsEnumerable!="undefined"&&!a.propertyIsEnumerable("call"))return"function"}else return"null";
else if(b=="function"&&typeof a.call=="undefined")return"object";return b}function q(a){return aa(a)=="array"}function ba(a){var b=aa(a);return b=="array"||b=="object"&&typeof a.length=="number"}function r(a){return typeof a=="string"}function s(a){return aa(a)=="function"}function ca(a){a=aa(a);return a=="object"||a=="array"||a=="function"}function t(a){return a[da]||(a[da]=++ea)}var da="closure_uid_"+Math.floor(Math.random()*2147483648).toString(36),ea=0,fa=Date.now||function(){return+new Date};
function u(a,b){function c(){}c.prototype=b.prototype;a.b=b.prototype;a.prototype=new c};function ga(a){if(!ha.test(a))return a;a.indexOf("&")!=-1&&(a=a.replace(ia,"&amp;"));a.indexOf("<")!=-1&&(a=a.replace(ja,"&lt;"));a.indexOf(">")!=-1&&(a=a.replace(ka,"&gt;"));a.indexOf('"')!=-1&&(a=a.replace(la,"&quot;"));return a}var ia=/&/g,ja=/</g,ka=/>/g,la=/\"/g,ha=/[&<>\"]/;
function ma(a,b){for(var c=0,d=String(a).replace(/^[\s\xa0]+|[\s\xa0]+$/g,"").split("."),f=String(b).replace(/^[\s\xa0]+|[\s\xa0]+$/g,"").split("."),e=Math.max(d.length,f.length),g=0;c==0&&g<e;g++){var j=d[g]||"",k=f[g]||"",l=RegExp("(\\d*)(\\D*)","g"),L=RegExp("(\\d*)(\\D*)","g");do{var m=l.exec(j)||["","",""],v=L.exec(k)||["","",""];if(m[0].length==0&&v[0].length==0)break;c=na(m[1].length==0?0:parseInt(m[1],10),v[1].length==0?0:parseInt(v[1],10))||na(m[2].length==0,v[2].length==0)||na(m[2],v[2])}while(c==
0)}return c}function na(a,b){if(a<b)return-1;else if(a>b)return 1;return 0};var w,oa,pa,qa;function ra(){return o.navigator?o.navigator.userAgent:i}qa=pa=oa=w=!1;var sa;if(sa=ra()){var ta=o.navigator;w=sa.indexOf("Opera")==0;oa=!w&&sa.indexOf("MSIE")!=-1;pa=!w&&sa.indexOf("WebKit")!=-1;qa=!w&&!pa&&ta.product=="Gecko"}var x=oa,y=qa,ua=pa,va=o.navigator,wa=(va&&va.platform||"").indexOf("Mac")!=-1,xa;
a:{var ya="",A;if(w&&o.opera)var za=o.opera.version,ya=typeof za=="function"?za():za;else if(y?A=/rv\:([^\);]+)(\)|;)/:x?A=/MSIE\s+([^\);]+)(\)|;)/:ua&&(A=/WebKit\/(\S+)/),A)var Aa=A.exec(ra()),ya=Aa?Aa[1]:"";if(x){var Ba,Ca=o.document;Ba=Ca?Ca.documentMode:h;if(Ba>parseFloat(ya)){xa=String(Ba);break a}}xa=ya}var Da={};function B(a){return Da[a]||(Da[a]=ma(xa,a)>=0)};function Ea(a,b){for(var c in a)b.call(h,a[c],c,a)}function Fa(){var a=C,b;for(b in a)return!1;return!0}var Ga=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"];function Ha(a){for(var b,c,d=1;d<arguments.length;d++){c=arguments[d];for(b in c)a[b]=c[b];for(var f=0;f<Ga.length;f++)b=Ga[f],Object.prototype.hasOwnProperty.call(c,b)&&(a[b]=c[b])}};var D=Array.prototype,Ia=D.indexOf?function(a,b,c){return D.indexOf.call(a,b,c)}:function(a,b,c){c=c==i?0:c<0?Math.max(0,a.length+c):c;if(r(a)){if(!r(b)||b.length!=1)return-1;return a.indexOf(b,c)}for(;c<a.length;c++)if(c in a&&a[c]===b)return c;return-1},Ja=D.forEach?function(a,b,c){D.forEach.call(a,b,c)}:function(a,b,c){for(var d=a.length,f=r(a)?a.split(""):a,e=0;e<d;e++)e in f&&b.call(c,f[e],e,a)};function Ka(){return D.concat.apply(D,arguments)}
function La(a){if(q(a))return Ka(a);else{for(var b=[],c=0,d=a.length;c<d;c++)b[c]=a[c];return b}}function Ma(a,b,c){return arguments.length<=2?D.slice.call(a,b):D.slice.call(a,b,c)};var Na;var Oa=!x||B("9"),Pa=x&&!B("8");function E(){Qa&&(Ra[t(this)]=this)}var Qa=!1,Ra={};E.prototype.S=!1;E.prototype.k=function(){if(!this.S&&(this.S=!0,this.a(),Qa)){var a=t(this);if(!Ra.hasOwnProperty(a))throw Error(this+" did not call the goog.Disposable base constructor or was disposed of after a clearUndisposedObjects call");delete Ra[a]}};E.prototype.a=function(){Sa(this.oa)};function Sa(){for(var a=0,b=arguments.length;a<b;++a){var c=arguments[a];ba(c)?Sa.apply(i,c):c&&typeof c.k=="function"&&c.k()}};function F(a,b){E.call(this);this.type=a;this.currentTarget=this.target=b}u(F,E);F.prototype.a=function(){delete this.type;delete this.target;delete this.currentTarget};F.prototype.p=!1;F.prototype.A=!0;F.prototype.preventDefault=function(){this.A=!1};function Ta(a){a.preventDefault()};var Ua=new Function("a","return a");function G(a,b){a&&this.o(a,b)}u(G,F);var Va=[1,4,2];n=G.prototype;n.target=i;n.relatedTarget=i;n.offsetX=0;n.offsetY=0;n.clientX=0;n.clientY=0;n.screenX=0;n.screenY=0;n.button=0;n.keyCode=0;n.charCode=0;n.ctrlKey=!1;n.altKey=!1;n.shiftKey=!1;n.metaKey=!1;n.ka=!1;n.m=i;
n.o=function(a,b){var c=this.type=a.type;F.call(this,c);this.target=a.target||a.srcElement;this.currentTarget=b;var d=a.relatedTarget;if(d){if(y){var f;a:{try{Ua(d.nodeName);f=!0;break a}catch(e){}f=!1}f||(d=i)}}else if(c=="mouseover")d=a.fromElement;else if(c=="mouseout")d=a.toElement;this.relatedTarget=d;this.offsetX=a.offsetX!==h?a.offsetX:a.layerX;this.offsetY=a.offsetY!==h?a.offsetY:a.layerY;this.clientX=a.clientX!==h?a.clientX:a.pageX;this.clientY=a.clientY!==h?a.clientY:a.pageY;this.screenX=
a.screenX||0;this.screenY=a.screenY||0;this.button=a.button;this.keyCode=a.keyCode||0;this.charCode=a.charCode||(c=="keypress"?a.keyCode:0);this.ctrlKey=a.ctrlKey;this.altKey=a.altKey;this.shiftKey=a.shiftKey;this.metaKey=a.metaKey;this.ka=wa?a.metaKey:a.ctrlKey;this.state=a.state;this.m=a;delete this.A;delete this.p};
n.preventDefault=function(){G.b.preventDefault.call(this);var a=this.m;if(a.preventDefault)a.preventDefault();else if(a.returnValue=!1,Pa)try{if(a.ctrlKey||a.keyCode>=112&&a.keyCode<=123)a.keyCode=-1}catch(b){}};n.a=function(){G.b.a.call(this);this.relatedTarget=this.currentTarget=this.target=this.m=i};function Wa(){}var Xa=0;n=Wa.prototype;n.key=0;n.q=!1;n.P=!1;n.o=function(a,b,c,d,f,e){if(s(a))this.X=!0;else if(a&&a.handleEvent&&s(a.handleEvent))this.X=!1;else throw Error("Invalid listener argument");this.u=a;this.aa=b;this.src=c;this.type=d;this.capture=!!f;this.H=e;this.P=!1;this.key=++Xa;this.q=!1};n.handleEvent=function(a){if(this.X)return this.u.call(this.H||this.src,a);return this.u.handleEvent.call(this.u,a)};var Ya,Za=(Ya="ScriptEngine"in o&&o.ScriptEngine()=="JScript")?o.ScriptEngineMajorVersion()+"."+o.ScriptEngineMinorVersion()+"."+o.ScriptEngineBuildVersion():"0";function H(a,b){E.call(this);this.Z=b;this.n=[];if(a>this.Z)throw Error("[goog.structs.SimplePool] Initial cannot be greater than max");for(var c=0;c<a;c++)this.n.push(this.h?this.h():{})}u(H,E);H.prototype.h=i;H.prototype.R=i;H.prototype.getObject=function(){if(this.n.length)return this.n.pop();return this.h?this.h():{}};function I(a,b){a.n.length<a.Z?a.n.push(b):$a(a,b)}function $a(a,b){if(a.R)a.R(b);else if(ca(b))if(s(b.k))b.k();else for(var c in b)delete b[c]}
H.prototype.a=function(){H.b.a.call(this);for(var a=this.n;a.length;)$a(this,a.pop());delete this.n};var ab,bb,J,cb,db,eb,fb,gb,hb,ib,jb;
(function(){function a(){return{f:0,e:0}}function b(){return[]}function c(){function a(b){return g.call(a.src,a.key,b)}return a}function d(){return new Wa}function f(){return new G}var e=Ya&&!(ma(Za,"5.7")>=0),g;eb=function(a){g=a};if(e){ab=function(){return j.getObject()};bb=function(a){I(j,a)};J=function(){return k.getObject()};cb=function(a){I(k,a)};db=function(){return l.getObject()};fb=function(){I(l,c())};gb=function(){return L.getObject()};hb=function(a){I(L,a)};ib=function(){return m.getObject()};
jb=function(a){I(m,a)};var j=new H(0,600);j.h=a;var k=new H(0,600);k.h=b;var l=new H(0,600);l.h=c;var L=new H(0,600);L.h=d;var m=new H(0,600);m.h=f}else ab=a,bb=p,J=b,cb=p,db=c,fb=p,gb=d,hb=p,ib=f,jb=p})();var K={},M={},N={},kb={};
function O(a,b,c,d,f){if(b)if(q(b)){for(var e=0;e<b.length;e++)O(a,b[e],c,d,f);return i}else{var d=!!d,g=M;b in g||(g[b]=ab());g=g[b];d in g||(g[d]=ab(),g.f++);var g=g[d],j=t(a),k;g.e++;if(g[j]){k=g[j];for(e=0;e<k.length;e++)if(g=k[e],g.u==c&&g.H==f){if(g.q)break;return k[e].key}}else k=g[j]=J(),g.f++;e=db();e.src=a;g=gb();g.o(c,e,a,b,d,f);c=g.key;e.key=c;k.push(g);K[c]=g;N[j]||(N[j]=J());N[j].push(g);a.addEventListener?(a==o||!a.Q)&&a.addEventListener(b,e,d):a.attachEvent(lb(b),e);return c}else throw Error("Invalid event type");
}function mb(a,b,c,d,f){if(q(b))for(var e=0;e<b.length;e++)mb(a,b[e],c,d,f);else{d=!!d;a:{e=M;if(b in e&&(e=e[b],d in e&&(e=e[d],a=t(a),e[a]))){a=e[a];break a}a=i}if(a)for(e=0;e<a.length;e++)if(a[e].u==c&&a[e].capture==d&&a[e].H==f){P(a[e].key);break}}}
function P(a){if(K[a]){var b=K[a];if(!b.q){var c=b.src,d=b.type,f=b.aa,e=b.capture;c.removeEventListener?(c==o||!c.Q)&&c.removeEventListener(d,f,e):c.detachEvent&&c.detachEvent(lb(d),f);c=t(c);f=M[d][e][c];if(N[c]){var g=N[c],j=Ia(g,b);j>=0&&D.splice.call(g,j,1);g.length==0&&delete N[c]}b.q=!0;f.$=!0;nb(d,e,c,f);delete K[a]}}}
function nb(a,b,c,d){if(!d.D&&d.$){for(var f=0,e=0;f<d.length;f++)if(d[f].q){var g=d[f].aa;g.src=i;fb(g);hb(d[f])}else f!=e&&(d[e]=d[f]),e++;d.length=e;d.$=!1;e==0&&(cb(d),delete M[a][b][c],M[a][b].f--,M[a][b].f==0&&(bb(M[a][b]),delete M[a][b],M[a].f--),M[a].f==0&&(bb(M[a]),delete M[a]))}}
function ob(a){var b,c=0,d=b==i;b=!!b;if(a==i)Ea(N,function(a){for(var e=a.length-1;e>=0;e--){var f=a[e];if(d||b==f.capture)P(f.key),c++}});else if(a=t(a),N[a])for(var a=N[a],f=a.length-1;f>=0;f--){var e=a[f];if(d||b==e.capture)P(e.key),c++}}function lb(a){if(a in kb)return kb[a];return kb[a]="on"+a}function Q(a,b,c,d,f){var e=1,b=t(b);if(a[b]){a.e--;a=a[b];a.D?a.D++:a.D=1;try{for(var g=a.length,j=0;j<g;j++){var k=a[j];k&&!k.q&&(e&=pb(k,f)!==!1)}}finally{a.D--,nb(c,d,b,a)}}return Boolean(e)}
function pb(a,b){var c=a.handleEvent(b);a.P&&P(a.key);return c}
eb(function(a,b){if(!K[a])return!0;var c=K[a],d=c.type,f=M;if(!(d in f))return!0;var f=f[d],e,g;Na===h&&(Na=x&&!o.addEventListener);if(Na){var j;if(!(j=b))a:{j="window.event".split(".");for(var k=o;e=j.shift();)if(k[e]!=i)k=k[e];else{j=i;break a}j=k}e=j;j=!0 in f;k=!1 in f;if(j){if(e.keyCode<0||e.returnValue!=h)return!0;a:{var l=!1;if(e.keyCode==0)try{e.keyCode=-1;break a}catch(L){l=!0}if(l||e.returnValue==h)e.returnValue=!0}}l=ib();l.o(e,this);e=!0;try{if(j){for(var m=J(),v=l.currentTarget;v;v=v.parentNode)m.push(v);
g=f[!0];g.e=g.f;for(var z=m.length-1;!l.p&&z>=0&&g.e;z--)l.currentTarget=m[z],e&=Q(g,m[z],d,!0,l);if(k){g=f[!1];g.e=g.f;for(z=0;!l.p&&z<m.length&&g.e;z++)l.currentTarget=m[z],e&=Q(g,m[z],d,!1,l)}}else e=pb(c,l)}finally{if(m)m.length=0,cb(m);l.k();jb(l)}return e}d=new G(b,this);try{e=pb(c,d)}finally{d.k()}return e});function R(a){E.call(this);this.ga=a}u(R,E);var qb=new H(0,100),rb=[];function S(a,b,c,d,f){q(c)||(rb[0]=c,c=rb);for(var e=0;e<c.length;e++){var g=a,j=O(b,c[e],d||a,f||!1,a.ga||a);g.j?g.j[j]=!0:g.t?(g.j=qb.getObject(),g.j[g.t]=!0,g.t=i,g.j[j]=!0):g.t=j}}function sb(a){if(a.j){for(var b in a.j)P(b),delete a.j[b];I(qb,a.j);a.j=i}else a.t&&P(a.t)}R.prototype.a=function(){R.b.a.call(this);sb(this)};R.prototype.handleEvent=function(){throw Error("EventHandler.handleEvent not implemented");};function tb(a,b){this.x=a!==h?a:0;this.y=b!==h?b:0}tb.prototype.toString=function(){return"("+this.x+", "+this.y+")"};function ub(a,b,c,d){this.left=a;this.top=b;this.width=c;this.height=d}ub.prototype.toString=function(){return"("+this.left+", "+this.top+" - "+this.width+"w x "+this.height+"h)"};var vb;function wb(a){var b;b=(b=a.className)&&typeof b.split=="function"?b.split(/\s+/):[];var c=Ma(arguments,1),d;d=b;for(var f=0,e=0;e<c.length;e++)Ia(d,c[e])>=0||(d.push(c[e]),f++);d=f==c.length;a.className=b.join(" ");return d};var xb=!x||B("9");!y&&!x||x&&B("9")||y&&B("1.9.1");x&&B("9");function yb(a,b){Ea(b,function(b,d){d=="style"?a.style.cssText=b:d=="class"?a.className=b:d=="for"?a.htmlFor=b:d in zb?a.setAttribute(zb[d],b):a[d]=b})}var zb={cellpadding:"cellPadding",cellspacing:"cellSpacing",colspan:"colSpan",rowspan:"rowSpan",valign:"vAlign",height:"height",width:"width",usemap:"useMap",frameborder:"frameBorder",maxlength:"maxLength",type:"type"};
function Ab(a){var b=!ua&&a.compatMode=="CSS1Compat"?a.documentElement:a.body,a=a.parentWindow||a.defaultView;return new tb(a.pageXOffset||b.scrollLeft,a.pageYOffset||b.scrollTop)}
function Bb(){var a=arguments,b=document,c=a[0],d=a[1];if(!xb&&d&&(d.name||d.type)){c=["<",c];d.name&&c.push(' name="',ga(d.name),'"');if(d.type){c.push(' type="',ga(d.type),'"');var f={};Ha(f,d);d=f;delete d.type}c.push(">");c=c.join("")}c=b.createElement(c);if(d)r(d)?c.className=d:q(d)?wb.apply(i,[c].concat(d)):yb(c,d);a.length>2&&Cb(b,c,a);return c}
function Cb(a,b,c){function d(c){c&&b.appendChild(r(c)?a.createTextNode(c):c)}for(var f=2;f<c.length;f++){var e=c[f];if(ba(e)&&!(ca(e)&&e.nodeType>0)){var g;a:{if(e&&typeof e.length=="number")if(ca(e)){g=typeof e.item=="function"||typeof e.item=="string";break a}else if(s(e)){g=typeof e.item=="function";break a}g=!1}Ja(g?La(e):e,d)}else d(e)}}function Db(a){return a.nodeType==9?a:a.ownerDocument||a.document}function T(a){this.d=a||o.document||document}T.prototype.createElement=function(a){return this.d.createElement(a)};
T.prototype.createTextNode=function(a){return this.d.createTextNode(a)};T.prototype.appendChild=function(a,b){a.appendChild(b)};function U(){E.call(this)}u(U,E);n=U.prototype;n.Q=!0;n.N=i;n.addEventListener=function(a,b,c,d){O(this,a,b,c,d)};n.removeEventListener=function(a,b,c,d){mb(this,a,b,c,d)};
n.dispatchEvent=function(a){var b=a.type||a,c=M;if(b in c){if(r(a))a=new F(a,this);else if(a instanceof F)a.target=a.target||this;else{var d=a,a=new F(b,this);Ha(a,d)}var d=1,f,c=c[b],b=!0 in c,e;if(b){f=[];for(e=this;e;e=e.N)f.push(e);e=c[!0];e.e=e.f;for(var g=f.length-1;!a.p&&g>=0&&e.e;g--)a.currentTarget=f[g],d&=Q(e,f[g],a.type,!0,a)&&a.A!=!1}if(!1 in c)if(e=c[!1],e.e=e.f,b)for(g=0;!a.p&&g<f.length&&e.e;g++)a.currentTarget=f[g],d&=Q(e,f[g],a.type,!1,a)&&a.A!=!1;else for(f=this;!a.p&&f&&e.e;f=f.N)a.currentTarget=
f,d&=Q(e,f,a.type,!1,a)&&a.A!=!1;a=Boolean(d)}else a=!0;return a};n.a=function(){U.b.a.call(this);ob(this);this.N=i};function Eb(a,b,c){E.call(this);this.target=a;this.handle=b||a;this.Y=c||new ub(NaN,NaN,NaN,NaN);this.d=Db(a);this.i=new R(this);O(this.handle,["touchstart","mousedown"],this.ba,!1,this)}u(Eb,U);var Fb=x||y&&B("1.9.3");n=Eb.prototype;n.clientX=0;n.clientY=0;n.screenX=0;n.screenY=0;n.ca=0;n.da=0;n.r=0;n.s=0;n.T=!0;n.l=!1;n.W=0;n.ia=0;n.ha=!1;n.a=function(){Eb.b.a.call(this);mb(this.handle,["touchstart","mousedown"],this.ba,!1,this);this.i.k();delete this.target;delete this.handle;delete this.i};
n.ba=function(a){var b=a.type=="mousedown";if(this.T&&!this.l&&(!b||(Oa?a.m.button==0:a.type=="click"||a.m.button&Va[0])&&(!ua||!wa||!a.ctrlKey))){Gb(a);if(this.W==0)if(Hb(this,a),this.l)a.preventDefault();else return;else a.preventDefault();var b=this.d,c=b.documentElement,d=!Fb;S(this.i,b,["touchmove","mousemove"],this.fa,d);S(this.i,b,["touchend","mouseup"],this.C,d);Fb?(c.setCapture(!1),S(this.i,c,"losecapture",this.C)):S(this.i,b?b.parentWindow||b.defaultView:window,"blur",this.C);x&&this.ha&&
S(this.i,b,"dragstart",Ta);this.la&&S(this.i,this.la,"scroll",this.ja,d);this.clientX=this.ca=a.clientX;this.clientY=this.da=a.clientY;this.screenX=a.screenX;this.screenY=a.screenY;this.r=this.target.offsetLeft;this.s=this.target.offsetTop;a=this.d?new T(Db(this.d)):vb||(vb=new T);this.w=Ab(a.d);this.ia=fa()}};function Hb(a,b){if(a.dispatchEvent(new Ib("start",a,b.clientX,b.clientY,b))!==!1)a.l=!0}
n.C=function(a,b){sb(this.i);Fb&&this.d.releaseCapture();if(this.l)Gb(a),this.l=!1,this.dispatchEvent(new Ib("end",this,a.clientX,a.clientY,a,Jb(this,this.r),Kb(this,this.s),b||a.type=="touchcancel"));(a.type=="touchend"||a.type=="touchcancel")&&a.preventDefault()};function Gb(a){var b=a.type;b=="touchstart"||b=="touchmove"?a.o(a.m.targetTouches[0],a.currentTarget):(b=="touchend"||b=="touchcancel")&&a.o(a.m.changedTouches[0],a.currentTarget)}
n.fa=function(a){if(this.T){Gb(a);var b=a.clientX-this.clientX,c=a.clientY-this.clientY;this.clientX=a.clientX;this.clientY=a.clientY;this.screenX=a.screenX;this.screenY=a.screenY;if(!this.l){var d=this.ca-this.clientX,f=this.da-this.clientY;if(d*d+f*f>this.W&&(Hb(this,a),!this.l)){this.C(a);return}}c=Lb(this,b,c);b=c.x;c=c.y;this.l&&this.dispatchEvent(new Ib("beforedrag",this,a.clientX,a.clientY,a,b,c))!==!1&&(Mb(this,a,b,c),a.preventDefault())}};
function Lb(a,b,c){var d;d=a.d?new T(Db(a.d)):vb||(vb=new T);d=Ab(d.d);b+=d.x-a.w.x;c+=d.y-a.w.y;a.w=d;a.r+=b;a.s+=c;return new tb(Jb(a,a.r),Kb(a,a.s))}n.ja=function(a){var b=Lb(this,0,0);a.clientX=this.w.x-this.clientX;a.clientY=this.w.y-this.clientY;Mb(this,a,b.x,b.y)};function Mb(a,b,c,d){a.target.style.left=c+"px";a.target.style.top=d+"px";a.dispatchEvent(new Ib("drag",a,b.clientX,b.clientY,b,c,d))}
function Jb(a,b){var c=a.Y,d=!isNaN(c.left)?c.left:i,c=!isNaN(c.width)?c.width:0;return Math.min(d!=i?d+c:Infinity,Math.max(d!=i?d:-Infinity,b))}function Kb(a,b){var c=a.Y,d=!isNaN(c.top)?c.top:i,c=!isNaN(c.height)?c.height:0;return Math.min(d!=i?d+c:Infinity,Math.max(d!=i?d:-Infinity,b))}function Ib(a,b,c,d,f,e,g,j){F.call(this,a);this.clientX=c;this.clientY=d;this.na=f;this.left=e!==h?e:b.r;this.top=g!==h?g:b.s;this.qa=b;this.pa=!!j}u(Ib,F);function Nb(a){var b=a.style,a="";"opacity"in b?a=b.opacity:"MozOpacity"in b?a=b.MozOpacity:"filter"in b&&(b=b.filter.match(/alpha\(opacity=([\d.]+)\)/))&&(a=String(b[1]/100));return a==""?a:Number(a)};var Ob=o.window;function V(a,b,c,d){E.call(this);if(!q(a)||!q(b))throw Error("Start and end parameters must be arrays");if(a.length!=b.length)throw Error("Start and end points must be the same length");this.B=a;this.ea=b;this.duration=c;this.O=d;this.coords=[]}u(V,U);var C={},W=i;function Pb(){Ob.clearTimeout(W);var a=fa(),b;for(b in C)Qb(C[b],a);W=Fa()?i:Ob.setTimeout(Pb,20)}function Rb(a){a=t(a);delete C[a];W&&Fa()&&(Ob.clearTimeout(W),W=i)}n=V.prototype;n.g=0;n.V=0;n.c=0;n.startTime=i;n.U=i;n.I=i;
n.play=function(a){if(a||this.g==0)this.c=0,this.coords=this.B;else if(this.g==1)return!1;Rb(this);this.startTime=fa();this.g==-1&&(this.startTime-=this.duration*this.c);this.U=this.startTime+this.duration;this.I=this.startTime;this.c||this.v();X(this,"play");this.g==-1&&this.L();this.g=1;a=t(this);a in C||(C[a]=this);W||(W=Ob.setTimeout(Pb,20));Qb(this,this.startTime);return!0};n.stop=function(a){Rb(this);this.g=0;if(a)this.c=1;Sb(this,this.c);this.M();this.F()};
n.a=function(){this.g!=0&&this.stop(!1);this.K();V.b.a.call(this)};function Qb(a,b){a.c=(b-a.startTime)/(a.U-a.startTime);if(a.c>=1)a.c=1;a.V=1E3/(b-a.I);a.I=b;Sb(a,a.c);a.c==1?(a.g=0,Rb(a),X(a,"finish"),a.F()):a.g==1&&a.J()}function Sb(a,b){s(a.O)&&(b=a.O(b));a.coords=Array(a.B.length);for(var c=0;c<a.B.length;c++)a.coords[c]=(a.ea[c]-a.B[c])*b+a.B[c]}n.J=function(){X(this,"animate")};n.v=function(){X(this,"begin")};n.K=function(){X(this,"destroy")};n.F=function(){X(this,"end")};
n.L=function(){X(this,"resume")};n.M=function(){X(this,"stop")};function X(a,b){a.dispatchEvent(new Tb(b,a))}function Tb(a,b){F.call(this,a);this.coords=b.coords;this.x=b.coords[0];this.y=b.coords[1];this.sa=b.coords[2];this.duration=b.duration;this.c=b.c;this.ra=b.V;this.state=b.g;this.ma=b}u(Tb,F);function Y(a,b,c,d,f){V.call(this,b,c,d,f);this.element=a}u(Y,V);Y.prototype.G=p;Y.prototype.J=function(){this.G();Y.b.J.call(this)};Y.prototype.F=function(){this.G();Y.b.F.call(this)};Y.prototype.v=function(){this.G();Y.b.v.call(this)};function Ub(a,b,c,d,f){typeof b=="number"&&(b=[b]);typeof c=="number"&&(c=[c]);Y.call(this,a,b,c,d,f);if(b.length!=1||c.length!=1)throw Error("Start and end points must be 1D");}u(Ub,Y);
Ub.prototype.G=function(){var a=this.coords[0],b=this.element.style;if("opacity"in b)b.opacity=a;else if("MozOpacity"in b)b.MozOpacity=a;else if("filter"in b)b.filter=a===""?"":"alpha(opacity="+a*100+")"};function Z(){V.call(this,[0],[0],0);this.z=[]}u(Z,V);Z.prototype.L=function(){Vb(this,function(a){a.play(a.c==0)});Z.b.L.call(this)};Z.prototype.M=function(){Vb(this,function(a){a.stop()});Z.b.M.call(this)};Z.prototype.K=function(){Wb(this);Z.b.K.call(this)};function Wb(a){Ja(a.z,function(a){a.k()})}function Xb(){Z.call(this)}u(Xb,Z);Xb.prototype.v=function(){for(var a=0;a<this.z.length;a++)this.z[a].play();Xb.b.v.call(this)};function Vb(a,b){Ja(a.z,b)}
Xb.prototype.add=function(a){this.z.push(a);this.duration=Math.max(this.duration,a.duration)};function Yb(){var a=i,a=Bb("div"),b=new Xb;document.body.appendChild(a);a=new Eb(a,a);O(a,"start",function(){b.stop();b.add(new Ub(this.target,Nb(this.target)||1,0.5,100));b.play()});O(a,"end",function(){b.stop();b.add(new Ub(this.target,Nb(this.target)||0.5,1,100));b.play()})}var Zb="closuretest.main".split("."),$=o;!(Zb[0]in $)&&$.execScript&&$.execScript("var "+Zb[0]);for(var $b;Zb.length&&($b=Zb.shift());)!Zb.length&&Yb!==h?$[$b]=Yb:$=$[$b]?$[$b]:$[$b]={};
// Set up namespace
goog.provide('closuretest.main');
// Require namespaces
goog.require('goog.dom');
goog.require('goog.fx.Dragger');
goog.require('goog.style');
goog.require('goog.fx');
goog.require('goog.fx.dom');
goog.require('goog.fx.AnimationParallelQueue');
closuretest.main = function() {
// Initialise variables
var dragger = null,
target = goog.dom.createDom('div'),
animation = new goog.fx.AnimationParallelQueue();
// Append the div
goog.dom.appendChild(document.body, target);
// Set up the dragger
dragger = new goog.fx.Dragger(target, target);
// Listen for the start and end of dragging
goog.events.listen(dragger, 'start', function(e) {
animation.stop();
animation.add(new goog.fx.dom.Fade(this.target, goog.style.getOpacity(this.target) || 1, .5, 100));
animation.play();
});
goog.events.listen(dragger, 'end', function(e) {
animation.stop();
animation.add(new goog.fx.dom.Fade(this.target, goog.style.getOpacity(this.target) || .5, 1, 100));
animation.play();
});
};
goog.exportSymbol('closuretest.main', closuretest.main);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment