(function(a){function b(d){var e=d||window.event,f=[].slice.call(arguments,1),g=0,k=0,n=0;d=a.event.fix(e);d.type="mousewheel";if(d.wheelDelta)g=d.wheelDelta/120;if(d.detail)g=-d.detail/3;n=g;if(e.axis!==undefined&&e.axis===e.HORIZONTAL_AXIS){n=0;k=-1*g}var o=navigator.userAgent.toLowerCase(),u=1;if(jQuery.browser.msie||jQuery.browser.webkit&&!/chrome/.test(o))u=40;if(e.wheelDeltaY!==undefined)n=e.wheelDeltaY/120/u;if(e.wheelDeltaX!==undefined)k=-1*e.wheelDeltaX/120/u;f.unshift(d,g,k,n);return a.event.handle.apply(this,
f)}var c=["DOMMouseScroll","mousewheel"];a.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var d=c.length;d;)this.addEventListener(c[--d],b,false);else this.onmousewheel=b},teardown:function(){if(this.removeEventListener)for(var d=c.length;d;)this.removeEventListener(c[--d],b,false);else this.onmousewheel=null}};a.fn.extend({mousewheel:function(d){return d?this.bind("mousewheel",d):this.trigger("mousewheel")},unmousewheel:function(d){return this.unbind("mousewheel",d)}})})(jQuery);
(function(a){function b(){if(this===c.elem){c.pos=[-260,-260];c.elem=false;d=3}}var c={pos:[-260,-260]},d=3,e=document,f=e.documentElement,g=e.body,k,n;a.event.special.mwheelIntent={setup:function(){var o=a(this).bind("mousewheel",a.event.special.mwheelIntent.handler);this!==e&&this!==f&&this!==g&&o.bind("mouseleave",b);return true},teardown:function(){a(this).unbind("mousewheel",a.event.special.mwheelIntent.handler).unbind("mouseleave",b);return true},handler:function(o){var u=[o.clientX,o.clientY];
if(this===c.elem||Math.abs(c.pos[0]-u[0])>d||Math.abs(c.pos[1]-u[1])>d){c.elem=this;c.pos=u;d=250;clearTimeout(n);n=setTimeout(function(){d=10},200);clearTimeout(k);k=setTimeout(function(){d=3},1500);o=a.extend({},o,{type:"mwheelIntent"});return a.event.handle.apply(this,arguments)}}};a.fn.extend({mwheelIntent:function(o){return o?this.bind("mwheelIntent",o):this.trigger("mwheelIntent")},unmwheelIntent:function(o){return this.unbind("mwheelIntent",o)}});a(function(){g=e.body;a(e).bind("mwheelIntent.mwheelIntentDefault",
a.noop)})})(jQuery);
(function(a,b,c){a.fn.jScrollPane=function(d){function e(f,g){function k(A){var C,G,I,J,K,L=false,V=false;E=A;if(M===c){J=f.scrollTop();K=f.scrollLeft();f.css({overflow:"hidden",padding:0});Q=f.innerWidth()+na;N=f.innerHeight();f.width(Q);M=a('<div class="jspPane" />').css("padding",La).append(f.children());O=a('<div class="jspContainer" />').css({width:Q+"px",height:N+"px"}).append(M).appendTo(f)}else{f.css("width","");L=E.stickToBottom&&H();V=E.stickToRight&&U();if(I=f.innerWidth()+na!=Q||f.outerHeight()!=
N){Q=f.innerWidth()+na;N=f.innerHeight();O.css({width:Q+"px",height:N+"px"})}if(!I&&Ma==P&&M.outerHeight()==R){f.width(Q);return}Ma=P;M.css("width","");f.width(Q);O.find(">.jspVerticalBar,>.jspHorizontalBar").remove().end()}M.css("overflow","auto");P=A.contentWidth?A.contentWidth:M[0].scrollWidth;R=M[0].scrollHeight;M.css("overflow","");xa=P/Q;ya=R/N;fa=ya>1;if((ga=xa>1)||fa){f.addClass("jspScrollable");if(A=E.maintainPosition&&(Y||Z)){C=D();G=F()}n();u();h();if(A){z(V?P-Q:C,false);y(L?R-N:G,false)}aa();
W();za();E.enableKeyboardNavigation&&oa();E.clickOnTrack&&l();Aa();E.hijackInternalLinks&&ba()}else{f.removeClass("jspScrollable");M.css({top:0,width:O.width()-na});O.unbind(Ia);M.find(":input,a").unbind("focus.jsp");f.attr("tabindex","-1").removeAttr("tabindex").unbind("keydown.jsp keypress.jsp");j();qa()}if(E.autoReinitialise&&!Ba)Ba=setInterval(function(){k(E)},E.autoReinitialiseDelay);else!E.autoReinitialise&&Ba&&clearInterval(Ba);J&&f.scrollTop(0)&&y(J,false);K&&f.scrollLeft(0)&&z(K,false);f.trigger("jsp-initialised",
[ga||fa])}function n(){if(fa){O.append(a('<div class="jspVerticalBar" />').append(a('<div class="jspCap jspCapTop" />'),a('<div class="jspTrack" />').append(a('<div class="jspDrag" />').append(a('<div class="jspDragTop" />'),a('<div class="jspDragBottom" />'))),a('<div class="jspCap jspCapBottom" />')));Ca=O.find(">.jspVerticalBar");ha=Ca.find(">.jspTrack");ca=ha.find(">.jspDrag");if(E.showArrows){ta=a('<a class="jspArrow jspArrowUp" />').bind("mousedown.jsp",r(0,-1)).bind("click.jsp",X);ua=a('<a class="jspArrow jspArrowDown" />').bind("mousedown.jsp",
r(0,1)).bind("click.jsp",X);if(E.arrowScrollOnHover){ta.bind("mouseover.jsp",r(0,-1,ta));ua.bind("mouseover.jsp",r(0,1,ua))}m(ha,E.verticalArrowPositions,ta,ua)}ra=N;O.find(">.jspVerticalBar>.jspCap:visible,>.jspVerticalBar>.jspArrow").each(function(){ra-=a(this).outerHeight()});ca.hover(function(){ca.addClass("jspHover")},function(){ca.removeClass("jspHover")}).bind("mousedown.jsp",function(A){a("html").bind("dragstart.jsp selectstart.jsp",X);ca.addClass("jspActive");var C=A.pageY-ca.position().top;
a("html").bind("mousemove.jsp",function(G){v(G.pageY-C,false)}).bind("mouseup.jsp mouseleave.jsp",w);return false});o()}}function o(){ha.height(ra+"px");Y=0;Ja=E.verticalGutter+ha.outerWidth();M.width(Q-Ja-na);try{Ca.position().left===0&&M.css("margin-left",Ja+"px")}catch(A){}}function u(){if(ga){O.append(a('<div class="jspHorizontalBar" />').append(a('<div class="jspCap jspCapLeft" />'),a('<div class="jspTrack" />').append(a('<div class="jspDrag" />').append(a('<div class="jspDragLeft" />'),a('<div class="jspDragRight" />'))),
a('<div class="jspCap jspCapRight" />')));Da=O.find(">.jspHorizontalBar");ia=Da.find(">.jspTrack");da=ia.find(">.jspDrag");if(E.showArrows){va=a('<a class="jspArrow jspArrowLeft" />').bind("mousedown.jsp",r(-1,0)).bind("click.jsp",X);wa=a('<a class="jspArrow jspArrowRight" />').bind("mousedown.jsp",r(1,0)).bind("click.jsp",X);if(E.arrowScrollOnHover){va.bind("mouseover.jsp",r(-1,0,va));wa.bind("mouseover.jsp",r(1,0,wa))}m(ia,E.horizontalArrowPositions,va,wa)}da.hover(function(){da.addClass("jspHover")},
function(){da.removeClass("jspHover")}).bind("mousedown.jsp",function(A){a("html").bind("dragstart.jsp selectstart.jsp",X);da.addClass("jspActive");var C=A.pageX-da.position().left;a("html").bind("mousemove.jsp",function(G){t(G.pageX-C,false)}).bind("mouseup.jsp mouseleave.jsp",w);return false});pa=O.innerWidth();s()}}function s(){O.find(">.jspHorizontalBar>.jspCap:visible,>.jspHorizontalBar>.jspArrow").each(function(){pa-=a(this).outerWidth()});ia.width(pa+"px");Z=0}function h(){if(ga&&fa){var A=
ia.outerHeight(),C=ha.outerWidth();ra-=A;a(Da).find(">.jspCap:visible,>.jspArrow").each(function(){pa+=a(this).outerWidth()});pa-=C;N-=C;Q-=A;ia.parent().append(a('<div class="jspCorner" />').css("width",A+"px"));o();s()}ga&&M.width(O.outerWidth()-na+"px");R=M.outerHeight();ya=R/N;if(ga){ka=Math.ceil(1/xa*pa);if(ka>E.horizontalDragMaxWidth)ka=E.horizontalDragMaxWidth;else if(ka<E.horizontalDragMinWidth)ka=E.horizontalDragMinWidth;da.width(ka+"px");la=pa-ka;x(Z)}if(fa){ma=Math.ceil(1/ya*ra);if(ma>
E.verticalDragMaxHeight)ma=E.verticalDragMaxHeight;else if(ma<E.verticalDragMinHeight)ma=E.verticalDragMinHeight;ca.height(ma+"px");ja=ra-ma;q(Y)}}function m(A,C,G,I){var J="before",K="after";if(C=="os")C=/Mac/.test(navigator.platform)?"after":"split";if(C==J)K=C;else if(C==K){J=C;C=G;G=I;I=C}A[J](G)[K](I)}function r(A,C,G){return function(){p(A,C,this,G);this.blur();return false}}function p(A,C,G,I){G=a(G).addClass("jspActive");var J,K,L=true,V=function(){A!==0&&S.scrollByX(A*E.arrowButtonSpeed);
C!==0&&S.scrollByY(C*E.arrowButtonSpeed);K=setTimeout(V,L?E.initialDelay:E.arrowRepeatFreq);L=false};V();J=I?"mouseout.jsp":"mouseup.jsp";I=I||a("html");I.bind(J,function(){G.removeClass("jspActive");K&&clearTimeout(K);K=null;I.unbind(J)})}function l(){j();fa&&ha.bind("mousedown.jsp",function(A){if(A.originalTarget===c||A.originalTarget==A.currentTarget){var C=a(this),G=C.offset(),I=A.pageY-G.top-Y,J,K=true,L=function(){var T=C.offset();T=A.pageY-T.top-ma/2;var ea=N*E.scrollPagePercent,sa=ja*ea/(R-
N);if(I<0)Y-sa>T?S.scrollByY(-ea):v(T);else if(I>0)Y+sa<T?S.scrollByY(ea):v(T);else{V();return}J=setTimeout(L,K?E.initialDelay:E.trackClickRepeatFreq);K=false},V=function(){J&&clearTimeout(J);J=null;a(document).unbind("mouseup.jsp",V)};L();a(document).bind("mouseup.jsp",V);return false}});ga&&ia.bind("mousedown.jsp",function(A){if(A.originalTarget===c||A.originalTarget==A.currentTarget){var C=a(this),G=C.offset(),I=A.pageX-G.left-Z,J,K=true,L=function(){var T=C.offset();T=A.pageX-T.left-ka/2;var ea=
Q*E.scrollPagePercent,sa=la*ea/(P-Q);if(I<0)Z-sa>T?S.scrollByX(-ea):t(T);else if(I>0)Z+sa<T?S.scrollByX(ea):t(T);else{V();return}J=setTimeout(L,K?E.initialDelay:E.trackClickRepeatFreq);K=false},V=function(){J&&clearTimeout(J);J=null;a(document).unbind("mouseup.jsp",V)};L();a(document).bind("mouseup.jsp",V);return false}})}function j(){ia&&ia.unbind("mousedown.jsp");ha&&ha.unbind("mousedown.jsp")}function w(){a("html").unbind("dragstart.jsp selectstart.jsp mousemove.jsp mouseup.jsp mouseleave.jsp");
ca&&ca.removeClass("jspActive");da&&da.removeClass("jspActive")}function v(A,C){if(fa){if(A<0)A=0;else if(A>ja)A=ja;if(C===c)C=E.animateScroll;if(C)S.animate(ca,"top",A,q);else{ca.css("top",A);q(A)}}}function q(A){if(A===c)A=ca.position().top;O.scrollTop(0);Y=A;var C=Y===0,G=Y==ja;A=-(A/ja)*(R-N);if(Ea!=C||Fa!=G){Ea=C;Fa=G;f.trigger("jsp-arrow-change",[Ea,Fa,Ga,Ha])}if(E.showArrows){ta[C?"addClass":"removeClass"]("jspDisabled");ua[G?"addClass":"removeClass"]("jspDisabled")}M.css("top",A);f.trigger("jsp-scroll-y",
[-A,C,G]).trigger("scroll")}function t(A,C){if(ga){if(A<0)A=0;else if(A>la)A=la;if(C===c)C=E.animateScroll;if(C)S.animate(da,"left",A,x);else{da.css("left",A);x(A)}}}function x(A){if(A===c)A=da.position().left;O.scrollTop(0);Z=A;var C=Z===0,G=Z==la;A=-(A/la)*(P-Q);if(Ga!=C||Ha!=G){Ga=C;Ha=G;f.trigger("jsp-arrow-change",[Ea,Fa,Ga,Ha])}if(E.showArrows){va[C?"addClass":"removeClass"]("jspDisabled");wa[G?"addClass":"removeClass"]("jspDisabled")}M.css("left",A);f.trigger("jsp-scroll-x",[-A,C,G]).trigger("scroll")}
function y(A,C){v(A/(R-N)*ja,C)}function z(A,C){t(A/(P-Q)*la,C)}function B(A,C,G){var I,J,K=0,L=0,V,T,ea;try{I=a(A)}catch(sa){return}J=I.outerHeight();A=I.outerWidth();O.scrollTop(0);for(O.scrollLeft(0);!I.is(".jspPane");){K+=I.position().top;L+=I.position().left;I=I.offsetParent();if(/^body|html$/i.test(I[0].nodeName))return}I=F();V=I+N;if(K<I||C)T=K-E.verticalGutter;else if(K+J>V)T=K-N+J+E.verticalGutter;T&&y(T,G);K=D();T=K+Q;if(L<K||C)ea=L-E.horizontalGutter;else if(L+A>T)ea=L-Q+A+E.horizontalGutter;
ea&&z(ea,G)}function D(){return-M.position().left}function F(){return-M.position().top}function H(){var A=R-N;return A>20&&A-F()<10}function U(){var A=P-Q;return A>20&&A-D()<10}function W(){O.unbind(Ia).bind(Ia,function(A,C,G,I){A=Z;C=Y;S.scrollBy(G*E.mouseWheelSpeed,-I*E.mouseWheelSpeed,false);return A==Z&&C==Y})}function X(){return false}function aa(){M.find(":input,a").unbind("focus.jsp").bind("focus.jsp",function(A){B(A.target,false)})}function oa(){function A(){var J=Z,K=Y;switch(C){case 40:S.scrollByY(E.keyboardSpeed,
false);break;case 38:S.scrollByY(-E.keyboardSpeed,false);break;case 34:case 32:S.scrollByY(N*E.scrollPagePercent,false);break;case 33:S.scrollByY(-N*E.scrollPagePercent,false);break;case 39:S.scrollByX(E.keyboardSpeed,false);break;case 37:S.scrollByX(-E.keyboardSpeed,false)}return G=J!=Z||K!=Y}var C,G,I=[];ga&&I.push(Da[0]);fa&&I.push(Ca[0]);M.focus(function(){f.focus()});f.attr("tabindex",0).unbind("keydown.jsp keypress.jsp").bind("keydown.jsp",function(J){if(!(J.target!==this&&!(I.length&&a(J.target).closest(I).length))){var K=
Z,L=Y;switch(J.keyCode){case 40:case 38:case 34:case 32:case 33:case 39:case 37:C=J.keyCode;A();break;case 35:y(R-N);C=null;break;case 36:y(0);C=null}G=J.keyCode==C&&K!=Z||L!=Y;return!G}}).bind("keypress.jsp",function(J){J.keyCode==C&&A();return!G});if(E.hideFocus){f.css("outline","none");"hideFocus"in O[0]&&f.attr("hideFocus",true)}else{f.css("outline","");"hideFocus"in O[0]&&f.attr("hideFocus",false)}}function Aa(){if(location.hash&&location.hash.length>1){var A,C,G=escape(location.hash);try{A=
a(G)}catch(I){return}if(A.length&&M.find(G))if(O.scrollTop()===0)C=setInterval(function(){if(O.scrollTop()>0){B(G,true);a(document).scrollTop(O.position().top);clearInterval(C)}},50);else{B(G,true);a(document).scrollTop(O.position().top)}}}function qa(){a("a.jspHijack").unbind("click.jsp-hijack").removeClass("jspHijack")}function ba(){qa();a("a[href^=#]").addClass("jspHijack").bind("click.jsp-hijack",function(){var A=this.href.split("#");if(A.length>1){A=A[1];if(A.length>0&&M.find("#"+A).length>0){B("#"+
A,true);return false}}})}function za(){var A,C,G,I,J,K=false;O.unbind("touchstart.jsp touchmove.jsp touchend.jsp click.jsp-touchclick").bind("touchstart.jsp",function(L){L=L.originalEvent.touches[0];A=D();C=F();G=L.pageX;I=L.pageY;J=false;K=true}).bind("touchmove.jsp",function(L){if(K){L=L.originalEvent.touches[0];var V=Z,T=Y;S.scrollTo(A+G-L.pageX,C+I-L.pageY);J=J||Math.abs(G-L.pageX)>5||Math.abs(I-L.pageY)>5;return V==Z&&T==Y}}).bind("touchend.jsp",function(){K=false}).bind("click.jsp-touchclick",
function(){if(J)return J=false})}var E,S=this,M,Q,N,O,P,R,xa,ya,fa,ga,ca,ja,Y,da,la,Z,Ca,ha,Ja,ra,ma,ta,ua,Da,ia,pa,ka,va,wa,Ba,La,na,Ma,Ea=true,Ga=true,Fa=false,Ha=false,Ka=f.clone(false,false).empty(),Ia=a.fn.mwheelIntent?"mwheelIntent.jsp":"mousewheel.jsp";La=f.css("paddingTop")+" "+f.css("paddingRight")+" "+f.css("paddingBottom")+" "+f.css("paddingLeft");na=(parseInt(f.css("paddingLeft"),10)||0)+(parseInt(f.css("paddingRight"),10)||0);a.extend(S,{reinitialise:function(A){A=a.extend({},E,A);k(A)},
scrollToElement:function(A,C,G){B(A,C,G)},scrollTo:function(A,C,G){z(A,G);y(C,G)},scrollToX:function(A,C){z(A,C)},scrollToY:function(A,C){y(A,C)},scrollToPercentX:function(A,C){z(A*(P-Q),C)},scrollToPercentY:function(A,C){y(A*(R-N),C)},scrollBy:function(A,C,G){S.scrollByX(A,G);S.scrollByY(C,G)},scrollByX:function(A,C){var G=(D()+Math[A<0?"floor":"ceil"](A))/(P-Q);t(G*la,C)},scrollByY:function(A,C){var G=(F()+Math[A<0?"floor":"ceil"](A))/(R-N);v(G*ja,C)},positionDragX:function(A,C){t(A,C)},positionDragY:function(A,
C){v(A,C)},animate:function(A,C,G,I){var J={};J[C]=G;A.animate(J,{duration:E.animateDuration,easing:E.animateEase,queue:false,step:I})},getContentPositionX:function(){return D()},getContentPositionY:function(){return F()},getContentWidth:function(){return P},getContentHeight:function(){return R},getPercentScrolledX:function(){return D()/(P-Q)},getPercentScrolledY:function(){return F()/(R-N)},getIsScrollableH:function(){return ga},getIsScrollableV:function(){return fa},getContentPane:function(){return M},
scrollToBottom:function(A){v(ja,A)},hijackInternalLinks:function(){ba()},destroy:function(){var A=F(),C=D();f.removeClass("jspScrollable").unbind(".jsp");f.replaceWith(Ka.append(M.children()));Ka.scrollTop(A);Ka.scrollLeft(C)}});k(g)}d=a.extend({},a.fn.jScrollPane.defaults,d);a.each(["mouseWheelSpeed","arrowButtonSpeed","trackClickSpeed","keyboardSpeed"],function(){d[this]=d[this]||d.speed});return this.each(function(){var f=a(this),g=f.data("jsp");if(g)g.reinitialise(d);else{g=new e(f,d);f.data("jsp",
g)}})};a.fn.jScrollPane.defaults={showArrows:false,maintainPosition:true,stickToBottom:false,stickToRight:false,clickOnTrack:true,autoReinitialise:false,autoReinitialiseDelay:500,verticalDragMinHeight:0,verticalDragMaxHeight:99999,horizontalDragMinWidth:0,horizontalDragMaxWidth:99999,contentWidth:c,animateScroll:false,animateDuration:300,animateEase:"linear",hijackInternalLinks:false,verticalGutter:4,horizontalGutter:4,mouseWheelSpeed:0,arrowButtonSpeed:0,arrowRepeatFreq:50,arrowScrollOnHover:false,
trackClickSpeed:0,trackClickRepeatFreq:70,verticalArrowPositions:"split",horizontalArrowPositions:"split",enableKeyboardNavigation:true,hideFocus:false,keyboardSpeed:0,initialDelay:300,speed:30,scrollPagePercent:0.8}})(jQuery,this);
(function(a){a.extend(a.fn,{livequery:function(c,d,e){var f=this,g;if(a.isFunction(c)){e=d;d=c;c=undefined}a.each(a.livequery.queries,function(k,n){if(f.selector==n.selector&&f.context==n.context&&c==n.type&&(!d||d.$lqguid==n.fn.$lqguid)&&(!e||e.$lqguid==n.fn2.$lqguid))return(g=n)&&false});g=g||new a.livequery(this.selector,this.context,c,d,e);g.stopped=false;g.run();return this},expire:function(c,d,e){var f=this;if(a.isFunction(c)){e=d;d=c;c=undefined}a.each(a.livequery.queries,function(g,k){if(f.selector==
k.selector&&f.context==k.context&&(!c||c==k.type)&&(!d||d.$lqguid==k.fn.$lqguid)&&(!e||e.$lqguid==k.fn2.$lqguid)&&!this.stopped)a.livequery.stop(k.id)});return this}});a.livequery=function(c,d,e,f,g){this.selector=c;this.context=d||document;this.type=e;this.fn=f;this.fn2=g;this.elements=[];this.stopped=false;this.id=a.livequery.queries.push(this)-1;f.$lqguid=f.$lqguid||a.livequery.guid++;if(g)g.$lqguid=g.$lqguid||a.livequery.guid++;return this};a.livequery.prototype={stop:function(){var c=this;if(this.type)this.elements.unbind(this.type,
this.fn);else this.fn2&&this.elements.each(function(d,e){c.fn2.apply(e)});this.elements=[];this.stopped=true},run:function(){if(!this.stopped){var c=this,d=this.elements,e=a(this.selector,this.context),f=e.not(d);this.elements=e;if(this.type){f.bind(this.type,this.fn);d.length>0&&a.each(d,function(g,k){a.inArray(k,e)<0&&a.event.remove(k,c.type,c.fn)})}else{f.each(function(){c.fn.apply(this)});this.fn2&&d.length>0&&a.each(d,function(g,k){a.inArray(k,e)<0&&c.fn2.apply(k)})}}}};a.extend(a.livequery,
{guid:0,queries:[],queue:[],running:false,timeout:null,checkQueue:function(){if(a.livequery.running&&a.livequery.queue.length)for(var c=a.livequery.queue.length;c--;)a.livequery.queries[a.livequery.queue.shift()].run()},pause:function(){a.livequery.running=false},play:function(){a.livequery.running=true;a.livequery.run()},registerPlugin:function(){a.each(arguments,function(c,d){if(a.fn[d]){var e=a.fn[d];a.fn[d]=function(){var f=e.apply(this,arguments);a.livequery.run();return f}}})},run:function(c){if(c!=
undefined)a.inArray(c,a.livequery.queue)<0&&a.livequery.queue.push(c);else a.each(a.livequery.queries,function(d){a.inArray(d,a.livequery.queue)<0&&a.livequery.queue.push(d)});a.livequery.timeout&&clearTimeout(a.livequery.timeout);a.livequery.timeout=setTimeout(a.livequery.checkQueue,20)},stop:function(c){c!=undefined?a.livequery.queries[c].stop():a.each(a.livequery.queries,function(d){a.livequery.queries[d].stop()})}});a.livequery.registerPlugin("append","prepend","after","before","wrap","attr",
"removeAttr","addClass","removeClass","toggleClass","empty","remove");a(function(){a.livequery.play()});var b=a.prototype.init;a.prototype.init=function(c,d){var e=b.apply(this,arguments);if(c&&c.selector){e.context=c.context;e.selector=c.selector}if(typeof c=="string"){e.context=d||document;e.selector=c}return e};a.prototype.init.prototype=a.prototype})(jQuery);
(function(a,b,c){function d(u){u=u||location.href;return"#"+u.replace(/^[^#]*#?(.*)$/,"$1")}var e="hashchange",f=document,g,k=a.event.special,n=f.documentMode,o="on"+e in b&&(n===c||n>7);a.fn[e]=function(u){return u?this.bind(e,u):this.trigger(e)};a.fn[e].delay=50;k[e]=a.extend(k[e],{setup:function(){if(o)return false;a(g.start)},teardown:function(){if(o)return false;a(g.stop)}});g=function(){function u(){var j=d(),w=l(m);if(j!==m){p(m=j,w);a(b).trigger(e)}else if(w!==m)location.href=location.href.replace(/#.*/,
"")+w;h=setTimeout(u,a.fn[e].delay)}var s={},h,m=d(),r=function(j){return j},p=r,l=r;s.start=function(){h||u()};s.stop=function(){h&&clearTimeout(h);h=c};a.browser.msie&&!o&&function(){var j,w;s.start=function(){if(!j){w=(w=a.fn[e].src)&&w+d();j=a('<iframe tabindex="-1" title="empty"/>').hide().one("load",function(){w||p(d());u()}).attr("src",w||"javascript:0").insertAfter("body")[0].contentWindow;f.onpropertychange=function(){try{if(event.propertyName==="title")j.document.title=f.title}catch(v){}}}};
s.stop=r;l=function(){return d(j.location.href)};p=function(v,q){var t=j.document,x=a.fn[e].domain;if(v!==q){t.title=f.title;t.open();x&&t.write('<script>document.domain="'+x+'"<\/script>');t.close();j.location.hash=v}}}();return s}()})(jQuery,this);
(function(a){function b(h){h=h.split(")");for(var m=a.trim,r=h.length-1,p,l,j,w=1,v=0,q=0,t=1,x,y,z,B=0,D=0;r--;){p=h[r].split("(");l=m(p[0]);j=p[1];x=p=y=z=0;switch(l){case "translateX":B+=parseInt(j,10);continue;case "translateY":D+=parseInt(j,10);continue;case "translate":j=j.split(",");B+=parseInt(j[0],10);D+=parseInt(j[1]||0,10);continue;case "rotate":j=d(j);x=Math.cos(j);p=Math.sin(j);y=-Math.sin(j);z=Math.cos(j);break;case "scaleX":x=j;z=1;break;case "scaleY":x=1;z=j;break;case "scale":j=j.split(",");
x=j[0];z=j.length>1?j[1]:j[0];break;case "skewX":x=z=1;y=Math.tan(d(j));break;case "skewY":x=z=1;p=Math.tan(d(j));break;case "skew":x=z=1;j=j.split(",");y=Math.tan(d(j[0]));p=Math.tan(d(j[1]||0));break;case "matrix":j=j.split(",");x=+j[0];p=+j[1];y=+j[2];z=+j[3];B+=parseInt(j[4],10);D+=parseInt(j[5],10)}l=w*x+v*y;v=w*p+v*z;x=q*x+t*y;t=q*p+t*z;w=l;q=x}return[w,v,q,t,B,D]}function c(h){var m,r,p,l=h[0],j=h[1],w=h[2],v=h[3];if(l*v-j*w){m=Math.sqrt(l*l+j*j);l/=m;j/=m;p=l*w+j*v;w-=l*p;v-=j*p;r=Math.sqrt(w*
w+v*v);w/=r;v/=r;p/=r;if(l*v<j*w){l=-l;j=-j;p=-p;m=-m}}else j=l=m=r=p=0;return{translate:[+h[4],+h[5]],rotate:Math.atan2(j,l),scale:[m,r],skew:[p,0]}}function d(h){return~h.indexOf("deg")?parseInt(h,10)*(Math.PI*2/360):~h.indexOf("grad")?parseInt(h,10)*(Math.PI/200):parseFloat(h)}var e=document.createElement("div");e=e.style;for(var f=["OTransform","msTransform","WebkitTransform","MozTransform","transform"],g=f.length,k,n,o,u,s=/Matrix([^)]*)/;g--;)if(f[g]in e)a.support.transform=k=f[g];if(!k)a.support.matrixFilter=
n=e.filter==="";e=e=null;a.cssNumber.transform=true;if(k&&k!="transform"){a.cssProps.transform=k;if(k=="MozTransform")o={get:function(h,m){return m?a.css(h,k).split("px").join(""):h.style[k]},set:function(h,m){h.style[k]=/matrix\([^)p]*\)/.test(m)?m.replace(/matrix((?:[^,]*,){4})([^,]*),([^)]*)/,"matrix$1$2px,$3px"):m}};else if(/^1\.[0-5](?:\.|$)/.test(a.fn.jquery))o={get:function(h,m){return m?a.css(h,k.replace(/^ms/,"Ms")):h.style[k]}}}else if(n)o={get:function(h,m){var r=m&&h.currentStyle?h.currentStyle:
h.style,p;if(r&&s.test(r.filter)){p=RegExp.$1.split(",");p=[p[0].split("=")[1],p[2].split("=")[1],p[1].split("=")[1],p[3].split("=")[1]]}else p=[1,0,0,1];p[4]=r?r.left:0;p[5]=r?r.top:0;return"matrix("+p+")"},set:function(h,m,r){var p=h.style,l,j,w;if(!r)p.zoom=1;m=b(m);if(!r||r.M){j=["Matrix(M11="+m[0],"M12="+m[2],"M21="+m[1],"M22="+m[3],"SizingMethod='auto expand'"].join();w=(l=h.currentStyle)&&l.filter||p.filter||"";p.filter=s.test(w)?w.replace(s,j):w+" progid:DXImageTransform.Microsoft."+j+")";
if(l=a.transform.centerOrigin){p[l=="margin"?"marginLeft":"left"]=-(h.offsetWidth/2)+h.clientWidth/2+"px";p[l=="margin"?"marginTop":"top"]=-(h.offsetHeight/2)+h.clientHeight/2+"px"}}if(!r||r.T){p.left=m[4]+"px";p.top=m[5]+"px"}}};if(o)a.cssHooks.transform=o;u=o&&o.get||a.css;a.fx.step.transform=function(h){var m=h.elem,r=h.start,p=h.end,l,j=h.pos,w,v,q=false,t=false;w=v="";if(!r||typeof r==="string"){r||(r=u(m,k));if(n)m.style.zoom=1;l=p.split(r);if(l.length==2){p=l.join("");h.origin=r;r="none"}if(r==
"none")r={translate:[0,0],rotate:0,scale:[1,1],skew:[0,0]};else{r=r;r=/\(([^,]*),([^,]*),([^,]*),([^,]*),([^,p]*)(?:px)?,([^)p]*)(?:px)?/.exec(r);r=c([r[1],r[2],r[3],r[4],r[5],r[6]])}h.start=r=r;if(~p.indexOf("matrix"))p=c(b(p));else{p=p;p=p.split(")");l=[0,0];for(var x=0,y=[1,1],z=[0,0],B=p.length-1,D=a.trim,F,H;B--;){F=p[B].split("(");H=F[1];switch(D(F[0])){case "translateX":l[0]+=parseInt(H,10);break;case "translateY":l[1]+=parseInt(H,10);break;case "translate":H=H.split(",");l[0]+=parseInt(H[0],
10);l[1]+=parseInt(H[1]||0,10);break;case "rotate":x+=d(H);break;case "scaleX":y[0]*=H;case "scaleY":y[1]*=H;case "scale":H=H.split(",");y[0]*=H[0];y[1]*=H.length>1?H[1]:H[0];break;case "skewX":z[0]+=d(H);break;case "skewY":z[1]+=d(H);break;case "skew":H=H.split(",");z[0]+=d(H[0]);z[1]+=d(H[1]||"0")}}p={translate:l,rotate:x,scale:y,skew:z}}h.end=p=p}if(r.translate){w=" translate("+(r.translate[0]+(p.translate[0]-r.translate[0])*j+0.5|0)+"px,"+(r.translate[1]+(p.translate[1]-r.translate[1])*j+0.5|
0)+"px)";q=true}if(r.rotate!=undefined){v=" rotate("+(r.rotate+(p.rotate-r.rotate)*j)+"rad)";t=true}if(r.scale)t=true;if(r.skew)t=true;h=h.origin?h.origin+w+" skew(0deg) scale(1)"+v:w+v+" scale(1) skew(0deg)";o&&o.set?o.set(m,h,{M:t,T:q}):m.style[k]=h};a.transform={centerOrigin:"margin"}})(jQuery);
(function(a,b){a[b]=function(c,d){this.$elem=a(c);var e=this;a.each(d,function(f,g){e[f]=g});this.wrapCheckboxWithDivs();this.attachEvents();this.disableTextSelection();this.resizeHandle&&this.optionallyResize("handle");this.resizeContainer&&this.optionallyResize("container");this.initialPosition()};a.extend(a[b].prototype,{wrapCheckboxWithDivs:function(){this.$elem.wrap('<div class="'+this.containerClass+'" />');this.container=this.$elem.parent();this.offLabel=a('<label class="'+this.labelOffClass+
'"><span>'+this.uncheckedLabel+"</span></label>").appendTo(this.container);this.offSpan=this.offLabel.children("span");this.onLabel=a('<label class="'+this.labelOnClass+'"><span>'+this.checkedLabel+"</span></label>").appendTo(this.container);this.onSpan=this.onLabel.children("span");this.handle=a('<div class="'+this.handleClass+'"><div class="'+this.handleRightClass+'"><div class="'+this.handleCenterClass+'" /></div></div>').appendTo(this.container)},disableTextSelection:function(){a.browser.msie&&
a.each([this.handle,this.offLabel,this.onLabel,this.container],function(){a(this).attr("unselectable","on")})},optionallyResize:function(c){var d=this.onLabel.width(),e=this.offLabel.width();if(c=="container"){d=d>e?d:e;d+=this.handle.width()+15}else d=d<e?d:e;this[c].css({width:d})},attachEvents:function(){var c=this;this.container.bind("mousedown touchstart",function(d){d.preventDefault();if(!c.$elem.is(":disabled")){d=d.pageX||d.originalEvent.changedTouches[0].pageX;a[b].currentlyClicking=c.handle;
a[b].dragStartPosition=d;a[b].handleLeftOffset=parseInt(c.handle.css("left"),10)||0;a[b].dragStartedOn=c.$elem}}).bind("iPhoneDrag",function(d,e){d.preventDefault();if(!c.$elem.is(":disabled"))if(c.$elem==a[b].dragStartedOn){var f=(e+a[b].handleLeftOffset-a[b].dragStartPosition)/c.rightSide;if(f<0)f=0;if(f>1)f=1;c.handle.css({left:f*c.rightSide});c.onLabel.css({width:f*c.rightSide+4});c.offSpan.css({marginRight:-f*c.rightSide});c.onSpan.css({marginLeft:-(1-f)*c.rightSide})}}).bind("iPhoneDragEnd",
function(d,e){if(!c.$elem.is(":disabled")){var f;if(a[b].dragging){f=(e-a[b].dragStartPosition)/c.rightSide;f=f<0?Math.abs(f)<0.5:f>=0.5}else f=!c.$elem.attr("checked");c.$elem.attr("checked",f);a[b].currentlyClicking=null;a[b].dragging=null;c.$elem.change()}});this.$elem.change(function(){if(c.$elem.is(":disabled")){c.container.addClass(c.disabledClass);return false}else c.container.removeClass(c.disabledClass);var d=c.$elem.attr("checked")?c.rightSide:0;c.handle.animate({left:d},c.duration);c.onLabel.animate({width:d+
4},c.duration);c.offSpan.animate({marginRight:-d},c.duration);c.onSpan.animate({marginLeft:d-c.rightSide},c.duration)})},initialPosition:function(){this.offLabel.css({width:this.container.width()-5});var c=a.browser.msie&&a.browser.version<7?3:6;this.rightSide=this.container.width()-this.handle.width()-c;if(this.$elem.is(":checked")){this.handle.css({left:this.rightSide});this.onLabel.css({width:this.rightSide+4});this.offSpan.css({marginRight:-this.rightSide})}else{this.onLabel.css({width:0});this.onSpan.css({marginLeft:-this.rightSide})}this.$elem.is(":disabled")&&
this.container.addClass(this.disabledClass)}});a.fn[b]=function(c){var d=this.filter(":checkbox");if(!d.length)return this;var e=a.extend({},a[b].defaults,c);d.each(function(){a(this).data(b,new a[b](this,e))});if(!a[b].initComplete){a(document).bind("mousemove touchmove",function(f){if(a[b].currentlyClicking){f.preventDefault();var g=f.pageX||f.originalEvent.changedTouches[0].pageX;if(!a[b].dragging&&Math.abs(a[b].dragStartPosition-g)>e.dragThreshold)a[b].dragging=true;a(f.target).trigger("iPhoneDrag",
[g])}}).bind("mouseup touchend",function(f){if(a[b].currentlyClicking){f.preventDefault();f=f.pageX||f.originalEvent.changedTouches[0].pageX;a(a[b].currentlyClicking).trigger("iPhoneDragEnd",[f])}});a[b].initComplete=true}return this};a[b].defaults={duration:200,checkedLabel:"ON",uncheckedLabel:"OFF",resizeHandle:true,resizeContainer:true,disabledClass:"iPhoneCheckDisabled",containerClass:"iPhoneCheckContainer",labelOnClass:"iPhoneCheckLabelOn",labelOffClass:"iPhoneCheckLabelOff",handleClass:"iPhoneCheckHandle",
handleCenterClass:"iPhoneCheckHandleCenter",handleRightClass:"iPhoneCheckHandleRight",dragThreshold:5}})(jQuery,"iphoneStyle");function warn(a){try{window.console.warn(a)}catch(b){}}function error(a){try{window.console.error(a)}catch(b){}}window.warn=warn;window.error=error;function _get(a,b){return a[b]}
var CLOSURE_NO_DEPS=true,Prototype={Version:"1.7",emptyFunction:function(){},K:function(a){return a}},Class=function(){function a(){}var b=function(){for(var c in{toString:1})if(c==="toString")return false;return true}();return{create:function(){function c(){this.initialize.apply(this,arguments)}var d=null,e=$A(arguments),f=null;if(Object.isString(e[0]))f=e.shift();if(Object.isFunction(e[0]))d=e.shift();Object.extend(c,Class.Methods);c.superclass=d;c.subclasses=[];if(d){a.prototype=d.prototype;c.prototype=
new a;if(!d.subclasses)d.subclasses=[];d.subclasses.push(c)}d=0;for(var g=e.length;d<g;d++)c.addMethods(e[d]);if(!c.prototype.initialize)c.prototype.initialize=Prototype.emptyFunction;c.prototype.constructor=c;if(f)c.toString=function(){return f};return c},Methods:{addMethods:function(c){var d=this.superclass&&this.superclass.prototype,e=Object.keys(c);if(b){c.toString!=Object.prototype.toString&&e.push("toString");c.valueOf!=Object.prototype.valueOf&&e.push("valueOf")}for(var f=0,g=e.length;f<g;f++){var k=
e[f],n=c[k];if(d&&Object.isFunction(n)&&n.argumentNames()[0]=="$super"){var o=n;n=function(u){return function(){return d[u].apply(this,arguments)}}(k).wrap(o);n.valueOf=o.valueOf.bind(o);n.toString=o.toString.bind(o)}this.prototype[k]=n}return this}}}}();function $A(a){if(!a)return[];if("toArray"in Object(a))return a.toArray();for(var b=a.length||0,c=Array(b);b--;)c[b]=a[b];return c}
(function(){function a(q){switch(q){case null:return o;case void 0:return u}switch(typeof q){case "boolean":return s;case "number":return h;case "string":return m}return r}function b(q,t){for(var x in t)q[x]=t[x];return q}function c(q){return d("",{"":q},[])}function d(q,t,x){t=t[q];var y=typeof t;if(a(t)===r&&typeof t.toJSON==="function")t=t.toJSON(q);q=n.call(t);switch(q){case l:case p:case j:t=t.valueOf()}switch(t){case null:return"null";case true:return"true";case false:return"false"}y=typeof t;
switch(y){case "string":return Object.inspect(t);case "number":return isFinite(t)?String(t):"null";case "object":y=0;for(var z=x.length;y<z;y++)if(x[y]===t)throw new TypeError;x.push(t);var B=[];if(q===w){y=0;for(z=t.length;y<z;y++){var D=d(y,t,x);B.push(typeof D==="undefined"?"null":D)}B="["+B.join(",")+"]"}else{var F=Object.keys(t);y=0;for(z=F.length;y<z;y++){q=F[y];D=d(q,t,x);typeof D!=="undefined"&&B.push(Object.inspect(q)+":"+D)}B="{"+B.join(",")+"}"}x.pop();return B}}function e(q){return JSON.stringify(q)}
function f(q){if(a(q)!==r)throw new TypeError;var t=[],x;for(x in q)q.hasOwnProperty(x)&&t.push(x);return t}function g(q){return n.call(q)===w}function k(q){return typeof q==="undefined"}var n=Object.prototype.toString,o="Null",u="Undefined",s="Boolean",h="Number",m="String",r="Object",p="[object Boolean]",l="[object Number]",j="[object String]",w="[object Array]",v=typeof window!=="undefined"&&window.JSON&&typeof JSON.stringify==="function"&&JSON.stringify(0)==="0"&&typeof JSON.stringify(Prototype.K)===
"undefined";if(typeof Array.isArray=="function"&&Array.isArray([])&&!Array.isArray({}))g=Array.isArray;b(Object,{extend:b,inspect:function(q){try{if(k(q))return"undefined";if(q===null)return"null";return q.inspect?q.inspect():String(q)}catch(t){if(t instanceof RangeError)return"...";throw t;}},toJSON:v?e:c,toQueryString:function(q){return $H(q).toQueryString()},toHTML:function(q){return q&&q.toHTML?q.toHTML():String.interpret(q)},keys:Object.keys||f,values:function(q){var t=[],x;for(x in q)t.push(q[x]);
return t},clone:function(q){return b({},q)},isElement:function(q){return!!(q&&q.nodeType==1)},isArray:g,isHash:function(q){return q instanceof Hash},isFunction:function(q){return n.call(q)==="[object Function]"},isString:function(q){return n.call(q)===j},isNumber:function(q){return n.call(q)===l},isDate:function(q){return n.call(q)==="[object Date]"},isUndefined:k})})();
Object.extend(Function.prototype,function(){function a(d,e){for(var f=d.length,g=e.length;g--;)d[f+g]=e[g];return d}function b(d,e){d=c.call(d,0);return a(d,e)}var c=Array.prototype.slice;return{argumentNames:function(){var d=this.toString().match(/^[\s\(]*function[^(]*\(([^)]*)\)/)[1].replace(/\/\/.*?[\r\n]|\/\*(?:.|[\r\n])*?\*\//g,"").replace(/\s+/g,"").split(",");return d.length==1&&!d[0]?[]:d},bind:function(d){if(arguments.length<2&&Object.isUndefined(arguments[0]))return this;var e=this,f=c.call(arguments,
1);return function(){var g=b(f,arguments);return e.apply(d,g)}},bindAsEventListener:function(d){var e=this,f=c.call(arguments,1);return function(g){g=a([g||window.event],f);return e.apply(d,g)}},curry:function(){if(!arguments.length)return this;var d=this,e=c.call(arguments,0);return function(){var f=b(e,arguments);return d.apply(this,f)}},delay:function(d){var e=this,f=c.call(arguments,1);d*=1E3;return window.setTimeout(function(){return e.apply(e,f)},d)},defer:function(){return this.delay.apply(this,
a([0.01],arguments))},wrap:function(d){var e=this;return function(){var f=a([e.bind(this)],arguments);return d.apply(this,f)}},methodize:function(){if(this._methodized)return this._methodized;var d=this;return this._methodized=function(){var e=a([this],arguments);return d.apply(null,e)}}}}());var IDispatcher={nodeType:69},Dispatcher=Class.create("Dispatcher",IDispatcher),uuid;
(function(){function a(){return((1+Math.random())*65536|0).toString(16).substring(1)}var b="";uuid=function(c){if(typeof c=="object"&&typeof c.prefix=="string")b=c.prefix;else c=c||b||"";return c+a()+a()+"-"+a()+"-"+a()+"-"+a()+"-"+a()+a()+a()}})();var Delegate=function(a,b,c){return{invoke:function(d){d||(d=c);return b.call(a,d)}}};
function delegate(a,b){b||error("No method passed to delegate");if(typeof b=="string")b=a[b];var c=function(){return b.apply(a,arguments)};c._isDelegate=true;return c}var Task,Batch;
(function(){Task=Class.create("Task",{initialize:function(a){this.__isTask__=true;a||(a=function(b){b&&b()});this.func=a;this.chain=[]},run:function(){var a=delegate(this,this.next);this.active=this.func;this.func.__isTask__?this.func.then(a).run():this.func(a);return this},cancel:function(){this.cancelled=true;this.active&&this.active.__isTask__&&this.active.cancel();this.dispose()},dispose:function(){this.chain=[];this.complete_func=this.func=this.active=undefined},then:function(a){this.chain.push(a);
return this},complete:function(a){this.complete_func=a;return this},next:function(){if(!this.cancelled)if(this.chain.length>0){var a=this.chain.shift(),b,c=this;b=function(){c.next()};if(a){this.active=a;if(a.__isTask__){b&&a.complete(b);a.run()}else b?a(b):a()}}else if(this.complete_func){this.complete_func();this.dispose()}},delay:function(a){var b=this;this.chain.push(function(c){setTimeout(function(){b.cancelled||c&&c()},a)});return this}});Batch=Class.create(Task,{initialize:function($super,
b,c){this.id=c;this.tasks=[];if(b)for(var d=0;d<b.length;d++)this.add(b[d]);var e=this;$super(function(f){function g(h){return function(){o++;k[h]="complete";o==k.length&&f()}}var k=e.tasks;if(k.length==0)f&&f();else for(var n=0,o=0;n<k.length;){var u=k[n],s=g(n);n++;u.__isTask__?u.complete(s).run():u(s)}},c)},add:function(a){this.tasks.push(a)}})})();var Poll={toString:function(){return"Poll"}};
(function(){Poll.Queue=Class.create("Poll.Queue",Dispatcher,{initialize:function($super,b,c){$super();this.timeout_interval=b;this.callback=c;this.queue=[]},has:function(a){for(var b=0;b<this.queue.length;b++)if(this.queue[b]===a)return true;return false},add:function(a){this.queue.push(a);this.start()},poll:function(){this.callback(this.queue.shift())!=false&&this.start()},start:function(){if(!(this.queue.length<=0))if(!this.timeout){var a=this;this.timeout=setTimeout(function(){a.timeout=null;a.poll()},
this.timeout_interval)}},stop:function(){this.timeout&&clearTimeout(this.timeout)}})})();var PropertyList,IPropertyList;
(function(){IPropertyList={keys:function(){return Object.keys(this)},add:function(a,b){this.set(a,b)},get:function(a){return this[a]},set:function(a,b){var c=this.get(a);if(c!==b){this[a]=b;$(this).triggerHandler(a,[b,c]);$(this).triggerHandler("prop_change",[a,b,c])}},bindProp:function(a,b){if(arguments.length==3){a=new DataPin(arguments[0],arguments[1]);b=arguments[2]}var c=false;if(arguments.length==4)c=arguments[3];if(!this.prop_bindings)this.prop_bindings=[];if(!c)if(typeof b=="function"&&!b._isDelegate)b=
delegate(this,b);this.prop_bindings.push(new Binding(a,b))},unbindProp:function(a,b){for(var c=0;c<this.prop_bindings.length;c++){var d=this.prop_bindings[c];if(d.source.obj===a&&d.source.property===b){d.destroy();this.prop_bindings.splice(c,1);break}}},bindEvent:function(a,b,c,d){if(!this.event_handlers)this.event_handlers=[];c=d?c:delegate(this,c);this.event_handlers.push({target:a,event:b,handler:c});$(a).bind(b,c)},unbindEvent:function(a,b){for(var c=0;c<this.event_handlers.length;c++){var d=
this.event_handlers[c];if(d.target===a&&b==d.event){$(d.target).unbind(d.event,d.handler);this.event_handlers.splice(c,1);break}}},unbindAll:function(){if(this.event_handlers){for(var a=0;a<this.event_handlers.length;a++){var b=this.event_handlers[a];$(b.target).unbind(b.event,b.handler)}this.event_handlers=null}if(this.prop_bindings){for(a=0;a<this.prop_bindings.length;a++)this.prop_bindings[a].destroy();this.prop_bindings=null}}};PropertyList=Class.create("PropertyList",Dispatcher,{initialize:function(a){if(a)for(var b in a)this.add(b,
a[b])}});PropertyList.addMethods(IPropertyList);if(typeof $!=="undefined"){$.fn.getProp=function(a){return this[0][a]};$.fn.setProp=function(a,b){var c=this[0];if(c[a]!==b){var d=c[a];c[a]=b;this.triggerHandler(a,[b,d]);this.triggerHandler("prop_change",[a,b,d])}return this}}})();
var DataPin=Class.create(Dispatcher,{initialize:function(a,b){this.obj=a;this.property=b;var c=this;this.change_handler=function(d,e,f){$(c).triggerHandler("change",[e,f])};$(a).bind(b,this.change_handler)},getValue:function(){return this.obj.get(this.property)},setValue:function(a){this.obj.set(this.property,a)},destroy:function(){$(this.obj).unbind(this.property,this.change_handler);this.change_handler=this.property=this.obj=undefined}}),Dictionary=Class.create("Dictionary",{initialize:function(){this.keyToObj=
{}},add:function(a,b){this.keyToObj[a]=b},get:function(a){return this.keyToObj[a]},remove:function(a){delete this.keyToObj[a]},addOrUpdate:function(a,b){var c=this.get(a);c?$.extend(c,b):this.add(a,b)}}),SortedDictionary=Class.create("SortedDictionary",Dictionary,{initialize:function($super){$super();this.sorted=[]},numItems:function(){return this.sorted?this.sorted.length:0},add:function($super,b,c){$super(b,c);this.sorted.push(b)},get:function(a){return this.keyToObj[a]},getItemAt:function(a){return this.keyToObj[this.sorted[a]]}}),
ListBounds,List,ListIndex,Slice;
(function(){ListBounds=Class.create("ListBounds",{initialize:function(a){a||(a={});this.first=!isNaN(a.first)?a.first:ListBounds.FIRST;this.last=!isNaN(a.last)?a.last:ListBounds.LAST},length:function(){return this.last-this.first+1}});ListBounds.FIRST=0;ListBounds.LAST=-1;List=Class.create("List",Dispatcher,{initialize:function($super,b){$super();this.reset();if(b)for(var c=0;c<b.length;c++)this.append(b[c])},getItemAt:function(a){return this.items[a]},prepend:function(a){this.insert(this.firstIndex()-1,
a)},append:function(a){this.insert(this.lastIndex()+1,a)},remove:function(a){var b=$(this),c=this.getItemAt(a);if(c){b.triggerHandler("changing");var d=false;if(a==this.first||a==this.last){delete this.items[a];if(a==this.first)this.first++;else a==this.last&&this.last--}else{d=true;var e=this.lastIndex();for(f=a+1;f<=e;f++)this.items[f-1]=this.items[f];delete this.items[e];this.last--}this.length()==0&&this.reset();b.triggerHandler("remove",[a,c,d]);b.triggerHandler("length");this.num_items=this.length();
b.triggerHandler("num_items",[this.num_items]);return c}else if(a==this.last){for(var f=a-1;!this.getItemAt(f)&&f>=this.first;)f--;this.last=f}else error("No item at index: "+a,true)},insert:function(a,b){var c=$(this);c.triggerHandler("changing");var d=false;if(this.items[a]){for(var e=d=this.lastIndex();e>=a;e--)this.items[e+1]=this.items[e];this.last=d+1;d=true}this.items[a]=b;if(this.first==undefined||a<this.first)this.first=a;if(this.last==undefined||a>this.last)this.last=a;c.triggerHandler("insert",
[a,b,d]);c.triggerHandler("length");this.num_items=this.length();c.triggerHandler("num_items",[this.num_items])},replace:function(a,b){this.remove(a);this.insert(a,b)},demand:function(a){if(typeof a!="ListBounds")a=new ListBounds(a);$(this).triggerHandler("list_demand",[a])},indexOf:function(a){var b=this.firstIndex(),c=this.lastIndex();for(b=b;b<=c;b++)if(this.getItemAt(b)===a)return b},removeAll:function(){for(;this.length()>0;)this.remove(this.lastIndex());this.reset()},reset:function(){this.last=
this.first=undefined;this.items={}},length:function(){return this.lastIndex()-this.firstIndex()+1},firstIndex:function(){return this.first==undefined?0:this.first},firstItem:function(){if(this.first!=undefined)return this.getItemAt(this.firstIndex())},lastIndex:function(){return this.last==undefined?-1:this.last},lastItem:function(){if(this.last!=undefined)return this.getItemAt(this.lastIndex())},slice:function(a,b){for(var c=a+b-1;this.lastIndex()>c;)this.remove(this.lastIndex());for(;this.firstIndex()<
a;)this.remove(this.firstIndex())}});ListIndex=Class.create("ListIndex",{initialize:function(a,b){this.dict=new Dictionary;this.prop=b;this.list=a;var c=this;$(a).bind({remove:function(d,e,f){d=_get(f,c.prop);c.dict.remove(d)},insert:function(d,e,f){d=_get(f,c.prop);c.dict.add(d,f)}})},get:function(a){return this.dict.get(a)},exists:function(a){return this.get(_get(a,this.prop))}});List.Provider=Class.create("List.Provider",PropertyList,{initialize:function($super){$super();this.list=this.initList("results");
this.bindEvent(this.list,"list_demand",this.onListDemand)},initList:function(){return new List},onListDemand:function(a,b){this.bounds=b;this.clipToBounds();this.scheduleRequests()},clipToBounds:function(){for(var a=this.bounds,b=this.list;b.length()>0&&b.firstIndex()<a.first;)b.remove(b.firstIndex());for(;b.length()>0&&b.lastIndex()>a.last;)b.remove(b.lastIndex())},scheduleRequests:function(){}})})();window["List.Provider"]=List.Provider;var Transition;
(function(){Transition=Class.create("Transition",{initialize:function(a){this.props={};if(a)for(var b in a){var c=a[b];this.add(b,c.start,c.end)}},add:function(a,b,c){this.props[a]={start:b,end:c,delta:c-b}},prop:function(a){return this.props[a]},start:function(a){return this.prop(a).start},end:function(a){return this.prop(a).end},delta:function(a){return this.prop(a).delta},value:function(a,b){return this.start(a)+this.delta(a)*b},reverse:function(){var a={},b;for(b in this.props){var c=this.props[b];
a[b]={start:c.end,end:c.start}}return new Transition(a)}});$.fn.inTransition=function(){return this.getProp("in_transition")};$.fn.beginTransition=function(){return this.each(function(){this.in_transition=this.in_transition===undefined?1:this.in_transition+1})};$.fn.endTransition=function(){return this.each(function(){if(this.in_transition===undefined)error("endTransition called but in_transition is undefined.  Mismatched calls to begin/end Transition.");else this.in_transition--;if(this.in_transition==
0){var a=$(this);a.triggerHandler("transition_complete");var b=a.getProp("after_transition_queue");if(b&&b.length>0)for(;b.length>0;){var c=b.shift();c&&c();if(a.inTransition())break}}})};$.fn.afterTransition=function(a){if(this.inTransition()){queue=this.getProp("after_transition_queue");if(!queue){queue=[];this.setProp("after_transition_queue",queue)}queue.push(a)}else a&&a()}})();var Binding,bind;
(function(){Binding=Class.create("Binding",{initialize:function(a,b){this.source=a;this.sink=b;this.change_function=function(c,d,e){if(b.constructor==DataPin)b.setValue(a.property,d);else if(typeof b=="function")b(d,e);else b.obj[b.property]=d};a.constructor==DataPin?$(a).bind("change",this.change_function):$(a.obj).bind(a.property,this.change_function)},destroy:function(){this.source.constructor==DataPin?$(this.source).unbind("change",this.change_function):$(this.source.obj).unbind(this.source.property,
this.change_function)}});bind=function(a){return new Binding(a.source,a.sink)}})();var Controller;
(function(){function a(){this.added=true;$(this).triggerHandler("added")}function b(){for(var c=[],d=0;d<this.controllers.length;d++)c[d]=this.controllers[d];for(d=0;d<c.length;d++)c[d].removed();this.controllers=undefined;this.removed=true}Controller=Class.create("Controller",PropertyList,{initialize:function($super){$super({state:"initial"})},attach:function(c){this.attached=true;this.$elem=c;this.elem=c[0];this.$elem.attr("ci",1);this.$elem.addController(this);this.bindEvent(this.$elem,"detach",
this.detach);this.bindEvent(this.$elem,"added",this.added);this.bindEvent(this.$elem,"removed",this.removed)},added:function(){},removed:function(){this.detach()},detach:function(){if(this.attached){this.attached=false;this.unbindAll();this.$elem.removeController(this);this.after_transition_queue=this.elem=this.$elem=null}},find:function(c){return this.$elem.find(c)},getData:function(){return this.$elem.getData()}});if(typeof $!=="undefined"){$("[ci=1]").livequery(a,b);$.fn.addController=function(c){var d=
this.getProp("controllers");if(!d){d=[];this.setProp("controllers",d)}d.push(c)};$.fn.removeController=function(c){for(var d=this.getProp("controllers"),e=-1,f=0;f<d.length;f++)if(d[f]===c){e=f;break}d.splice(e,1)};$.fn.getController=function(){return this.getProp("controller")};$.fn.getState=function(){return this.getProp("state")};$.fn.setState=function(c){return this.setProp("state",c)}}})();var Template,parseTemplate,applyTemplate;
(function(){parseTemplate=function(a){return"var data=env.data, params=env.params, map=env.map, attach=env.attach, text=env.text, invoke=env.invoke, handle=env.handle;var p=[],print=function parse_inner(){p.push.apply(p,arguments);};p.push('"+a.replace(/\s\x2f\x2f.*/g," ").replace(/[\r\t\n]/g," ").replace(/'(?=[^#]*#>)/g,"\t").split("'").join("\\'").split("\t").join("'").replace(/<#=(.+?)#>/g,"',$1,'").split("<#").join("');").split("#>").join("p.push('")+"');return p.join('');"};Template=Class.create("Template",
{initialize:function(a){this.txt="";(a=typeof a=="string"?a:undefined)&&this.load(a)},load:function(a){var b=Template.Cache[a];if(b)if(typeof b=="string")this.txt=b;else{if(typeof b=="function")this.f=b}else{b=a.replace(/[\/\.]/g,"_");b=$("#"+b);if(b.length>0){this.txt=b.html();Template.Cache[a]=this.txt}else{var c=this;$.ajax({url:a,async:false,dataType:"text",success:function(d){c.txt=d;Template.Cache[a]=d}})}}},text:function(){return this.txt},func:function(){if(!this.f){var a=parseTemplate(this.txt);
this.f=func=new Function("env",a)}return this.f}});Template.Cache={};Template.Instance=Class.create("Template.Instance",{initialize:function(a,b,c){if(a instanceof Array){var d=a;a=d[0];if(d.length>1)b=d[1];if(d.length>2)c=d[2]}this.template=typeof a=="function"||a.constructor===Template?a:new Template(a);this.data=b;this.params=c}})})();
(function(){if(typeof $!=="undefined")$.fn.applyTemplate=function(a,b,c){a=applyTemplate(a,b,c);if(!(a.length<1)){this.replaceWith(a);return a}};applyTemplate=function(a,b,c){function d(j,w,v){var q="map_"+uuid();s.push({type:"map",id:q,template:j,list:w,options:v});return'<div id="'+q+'"/>'}function e(j,w){var v,q;if(w){q=j;v=w}else v=j;var t="attach_"+uuid();s.push({type:"attach",id:t,obj:v,prop_id:q});return'<div id="'+t+'"/>'}function f(j,w,v){var q=uuid();s.push({type:"text",id:q,obj:j,property:w,
decode:v});return'<span id="'+q+'"/>'}function g(j,w,v){var q="invoke_"+uuid();j=j.constructor===Template.Instance?j:new Template.Instance(j,w,v);s.push({type:"invoke",id:q,instance:j});return'<div id="'+q+'"/>'}function k(j,w){var v="handle_"+uuid();s.push({type:"attach",id:v,event_name:j,func:w});return'<div id="'+v+'"/>'}uuid();var n=undefined;if(typeof a=="function")n=a(b);else if(typeof a=="object")n=a.hasOwnProperty("invoke")?a.invoke(b):a;if(n){if(n.template)a=n.template;if(n.data)b=n.data;
if(n.layout)layout=n.layout}if(typeof a=="string")a=new Template(a);if(b&&b.constructor==DataPin){var o=b.getValue();if(o)b=o;else return $("<div/>")}var u=a.func(),s=[];if(n=function(){var j="";return j=u({data:b||{},params:c||{},map:d,attach:e,text:f,invoke:g,handle:k})}()){document.createDocumentFragment();a=$("<div/>");a.html(n);for(n=s.length-1;n>=0;n--){var h=s[n];switch(h.type){case "invoke":h.instance.elem=a.find("#"+h.id)[0];new Template.Invocation(h.instance);break;case "attach":o="#"+h.id;
var m=a.filter(o);if(m.length<1)m=a.find(o);for(o=m[0].nextSibling;o.nodeType==3;)o=o.nextSibling;h.elem=o;var r=$(o);if(h.event_name&&h.func)r.bind(h.event_name,h.func);else{var p=false;if(typeof h.obj.constructor.prototype.attach!="undefined")p=true;else for(var l=h.obj.constructor.superclass;l&&!p;){p=typeof l.prototype.attach!="undefined";l=l.superclass}p&&h.obj.attach(r);if(h.prop_id)o[h.prop_id]=h.obj}h=m[0];m=h.parentNode;m.removeChild(h);break;case "map":o=a.find("#"+h.id)[0];m=o.parentNode;
m.removeChild(o);h.elem=m;$(m).mapTemplate(h.template,h.list,h.options);break;case "text":m=a.find("#"+h.id);o=_get(h.obj,h.property);if(h.decode)o=HtmlUtils.decode(o);o=document.createTextNode(o);m.after(o).remove();h.elem=o;bind({source:{obj:h.obj,property:h.property},sink:function(j){return function(w){var v=j.elem;if(j.decode)w=HtmlUtils.decode(w);w=document.createTextNode(w);$(v).after(w).remove();j.elem=w}}(h)})}}return a.children()}}})();$.fn.setData=function(a){this.setProp("data",a)};
$.fn.getData=function(){return this.getProp("data")};var DataSource;(function(){DataSource=Class.create("DataSource",{initialize:function(a){this.data=a},attach:function(a){this.$elem=a;this.elem=a[0];this.$elem.setData(this.data)}})})();
var Transform,Layout={enable3D:false,toString:function(){return"Layout"},Tasks:{Animate:Class.create("Layout.Tasks.Animate",Task,{initialize:function($super,b,c,d){$super(function(e){Layout.animate(b,c,d,e)})}}),Transform:Class.create("Layout.Tasks.Transform",Task,{initialize:function($super,b,c,d){$super(function(e){b.applyTransform(c,d,e)})}})}};
(function(){Layout.animate=function(a,b,c,d){a.css("display");if(Layout.enable3D){var e=function(){clearTimeout(f);a.unbind("webkitTransitionEnd",e);d&&d()};a.bind("webkitTransitionEnd",e);b["-webkit-transition-duration"]=c+"ms";a.css(b);var f=setTimeout(function(){e()},c+50)}else{var g;if(b.hasOwnProperty("z-index")){g=b["z-index"];delete b["z-index"]}b.hasOwnProperty("transform");a.stop(true);a.animate(b,c,"linear",function(){g!==undefined&&a.css("z-index",g);d()})}};Transform=Class.create("Transform",
Object,{initialize:function(a){this._isTransform=true;this.translation={x:0,y:0,z:0};this.rotation={x:0,y:0,z:0};this.scale=1;a||(a={});if(a.translation)this.translation=$.extend(this.translation,a.translation);if(a.rotation)this.rotation=$.extend(this.rotation,a.rotation);if(a.scale!=undefined)this.scale=a.scale},webkitValue:function(){var a=this.translation,b=this.rotation;return"translate3d("+a.x+"px, "+a.y+"px, "+a.z+"px) rotateX("+b.x+"deg) rotateY("+b.y+"deg) rotateZ("+b.z+"deg) scale("+this.scale+
")"},cssValues:function(){return $.support.transform?{transform:"translate("+this.translation.x+"px,"+this.translation.y+"px) rotate("+this.rotation.z+"deg)"}:{left:Math.round(this.translation.x)+"px",top:Math.round(this.translation.y)+"px"}},subtract:function(a){return new Transform({rotation:{x:this.rotation.x-a.rotation.x,y:this.rotation.y-a.rotation.y,z:this.rotation.z-a.rotation.z},scale:this.scale-a.scale,translation:{x:this.translation.x-a.translation.x,y:this.translation.y-a.translation.y,
z:this.translation.z-a.translation.z}})},add:function(a){return new Transform({rotation:{x:this.rotation.x+a.rotation.x,y:this.rotation.y+a.rotation.y,z:this.rotation.z+a.rotation.z},scale:this.scale+a.scale,translation:{x:this.translation.x+a.translation.x,y:this.translation.y+a.translation.y,z:this.translation.z+a.translation.z}})},multiply:function(a){return new Transform({rotation:{x:this.rotation.x*a,y:this.rotation.y*a,z:this.rotation.z*a},scale:this.scale*a,translation:{x:this.translation.x*
a,y:this.translation.y*a,z:this.translation.z*a}})}});$.fn.getTransform=function(){return this.getLayoutProps(true).transform};$.fn.getTranslation=function(){return this.getTransform().translation};$.fn.beginTransform=function(){this.setProp("in_transform",true);return this};$.fn.endTransform=function(){this.setProp("in_transform",false);return this};$.fn.inTransform=function(){return this.getProp("in_transform")};$.fn.applyTransform=function(a,b,c){if(b===undefined)b=0;a._isTransform||(a=new Transform(a));
a=Layout.enable3D&&this.hasClass("c3d")?{"-webkit-transform":a.webkitValue()}:a.cssValues();if(b==0){a["-webkit-transition-duration"]="0ms";this.css(a);c&&c()}else{this.beginTransform();var d=this;Layout.animate(this,a,b,function(){d.endTransform();c&&c()})}return this};$.fn.applyTranslation=function(a,b,c){var d=this.getTransform();$.extend(d.translation,a);this.applyTransform(d,b,c);return this}})();
(function(){Layout.Properties=Class.create("Layout.Properties",Object,{initialize:function(a){this._isLayoutProperties=true;var b=$.extend({type:"",args:{},width:0,height:0,top:0,left:0,viewport:{left:0,top:0},offset:{left:0,top:0},padding:{left:0,top:0,bottom:0,right:0},animation_duration:600,z_index:1},a);this.transform=a?a.transform&&a.transform._isTransform?a.transform:new Transform(a.transform):new Transform;this.updateLayoutProperties(b)},updateLayoutProperties:function(a){if(!a)return this;
if(a===this)return this;if(a.left!==undefined&&!isNaN(a.left))this.transform.translation.x=a.left;if(a.top!==undefined&&!isNaN(a.top))this.transform.translation.y=a.top;if(a.z!==undefined&&!isNaN(a.z))this.transform.translation.z=a.z;if(a.scale!==undefined&&!isNaN(a.scale))this.transform.scale=a.scale;$.extend(this,a);this.left=this.transform.translation.x;this.top=this.transform.translation.y;return this},relativePosition:function(){return{left:this.left+this.viewport.left+this.padding.left,top:this.top+
this.viewport.top+this.padding.top}}});Layout.Controller=Class.create("Layout.Controller",Controller,{initialize:function($super,b){$super();this.type=b},setArgs:function(a){this.args=a},attach:function($super,b){$super(b);this.$elem.addLayout(this);this.after_layout_queue=[]},detach:function($super){this.$elem.removeLayout(this);$super()},destroy:function(){this.detach()},preferredLayout:function(a){return a},layout:function(a,b){b&&b()},layoutItems:function(){},layoutItem:function(){}});Layout.Switcher=
Class.create("Layout.Switcher",Controller,{initialize:function($super,b,c,d){$super("switcher ("+b+")");this.switching=false;this.current_layout=null;this.layout_type=this.default_layout_type=b;this.type_map=c?c:{};this.transition_map=d?d:{};this.layouts={}},detach:function($super){$super()},getCurrentLayout:function(){return this.current_layout},getLayout:function(a){var b=this.layouts[a];if(!b){b=this.createLayout(a);this.layouts[a]=b}return b},createLayout:function(a){var b=typeof this.type_map==
"function"?this.type_map(a):this.type_map[a];if(b)return new b;else error("Unknown layout type: "+a)},validateLayoutProps:function(a){a||(a={type:this.default_layout_type});if(!a.type)a.type=this.default_layout_type;var b=this.getCurrentLayout();if(b){if(!a.hasOwnProperty("width"))a.width=b.width;if(!a.hasOwnProperty("height"))a.height=b.height;if(!a.hasOwnProperty("origin"))a.origin=b.origin}if(a.constructor!==Layout.Properties)a=new Layout.Properties(a);return a},getTransition:function(a){return typeof this.transition_map==
"function"?this.transition_map(a):this.transition_map[a]},switchLayout:function(a,b,c){function d(s){transition_id=k+"-"+u.layout_type;if(transition=u.getTransition(transition_id)){u.switching=true;transition(u,n,o,b,function(){s&&s()})}else e(function(){f(s)})}function e(s){transition_id=k+"-*";if(transition=u.getTransition(transition_id))transition(u,n,null,null,function(){s&&s()});else{n.destroy();s&&s()}}function f(s){transition_id="*-"+u.layout_type;if(transition=u.getTransition(transition_id))transition(u,
null,o,b,function(){s&&s()});else{if(o){o.attach(u.$elem);u.$elem.layout(b)}s&&s()}}function g(){u.switching=false;if(o)u.current_layout=o;u.$elem.endTransition();c&&c()}var k=this.layout_type,n=this.getCurrentLayout(),o=n;if(!n||a&&a!=this.layout_type){o=this.getLayout(a);if(o===n){warn("Layout edge case: new_layout is the same as old_layout: "+a);c&&c();return}this.layout_type=a}if(o===n)c&&c();else{this.$elem.beginTransition();var u=this;this.switching=true;if(n&&o)d(g);else if(n)e(g);else o?f(g):
g()}},attach:function($super,b){$super(b);this.current_layout=this.getLayout(this.layout_type);this.current_layout.attach(b)}});$.fn.setLayoutProps=function(a){this.getLayoutProps(true).updateLayoutProperties(a);return this};$.fn.getLayoutProps=function(a){var b=this.getProp("layout_props");if(a&&!b){b=new Layout.Properties;this.setProp("layout_props",b)}return b};$.fn.getLayout=function(){return this.getProp("layout")};$.fn.getLayouts=function(){return this.getProp("layouts")};$.fn.addLayout=function(a){var b=
this.getLayouts();if(!b){b=[];this.setProp("layouts",b)}b.push(a);return this};$.fn.removeLayout=function(a){for(var b=this.getLayouts(),c=0;c<b.length;c++)if(b[c]===a){b.splice(c,1);break}return this};$.fn.beginLayout=function(){this.setProp("in_layout",true);return this};$.fn.endLayout=function(){this.setProp("in_layout",false);var a=this.getProp("after_layout_queue");if(a&&a.length>0)for(;a.length>0;){var b=a.shift();b&&b();if(this.inLayout())return}return this};$.fn.inLayout=function(){return this.getProp("in_layout")};
$.fn.afterLayout=function(a){if(this.inLayout()){queue=this.getProp("after_layout_queue");if(!queue){queue=[];this.setProp("after_layout_queue",queue)}queue.push(a)}else a&&a()};$.fn.layout=function(a,b,c){this.beginLayout();var d,e=0,f;if(c!==undefined)f=c;if(b!==undefined){d=a;e=b}else if(typeof a=="function")f=a;else if(a instanceof Object)d=a;else if(a!==undefined)e=a;d!==undefined&&this.setLayoutProps(d);a=this.getLayouts();if(!a){this.endLayout();f&&f();return this}var g=this;if(a.length==1){a[0].layout(e,
function(){g.endLayout();f&&f()});return this}else{b=new Batch(null,"Layout");for(c=0;c<a.length;c++)b.add(function(k){return function(n){k.layout(e,n)}}(a[c]));b.complete(function(){g.endLayout();f&&f()});b.run()}return this}})();$.fn.setInputDisabled=function(a){a=a===true||a>0;var b=this.getProp("input_disabled");b||(b=a?0:1);a=a?b+1:b-1;this.setProp("input_disabled",a);return this};$.fn.inputDisabled=function(){return this.getProp("input_disabled")};$.fn.enableInput=function(){return this.setInputDisabled(false)};
$.fn.disableInput=function(){return this.setInputDisabled(true)};
var Transforms=function(){return{translate:function(a,b,c,d){if(d==undefined)d=0;b="translate3d("+b+"px,"+c+"px,"+d+"px)";a.css({"-webkit-transform":b,"-moz-transform":b})},translateScaleRotate:function(a,b,c,d,e){b="translate("+b+"px, "+c+"px) scale("+d+") rotate("+e+"deg)";a.css({"-webkit-transform":b,"-moz-transform":b})},scale:function(a,b){b="scale("+b+")";a.css({"-webkit-transform":b,"-moz-transform":b})},scaleRotate:function(a,b,c){b="scale("+b+") rotateY("+c+"deg)";a.css({"-webkit-transform":b,
"-moz-transform":b})}}}(),Form={toString:function(){return"Form"}};(function(){Form.Controller=Class.create("Form.Controller",Controller,{clientValidate:function(){return true},serverValidate:function(){return true}});$.fn.getFormController=function(){return this.getProp("form_controller")};$.fn.clientValidate=function(){return this.getFormController().clientValidate()};$.fn.serverValidate=function(a){return this.getFormController().serverValidate(a)}})();
Window={toString:function(){return"Window"},setResizeHandler:function(a){window.resize_handler&&window.resize_handler.destroy();window.resize_handler=new Window.ResizeHandler(a)}};
(function(){Window.ResizeHandler=Class.create("Window.ResizeHandler",Dispatcher,{initialize:function(a){this.func=a;this.$window=$(window);this.resize_requested=this.resizing=false;this.layout_t=undefined;this.resize_event_handler=delegate(this,this.onResizeEvent);this.resize_handler=delegate(this,this.doResize);this.after_resize_handler=delegate(this,this.afterResize);window.onorientationchange=this.resize_event_handler;this.$window.bind("resize",this.resize_event_handler)},destroy:function(){this.$window.unbind("resize",
this.resize_event_handler);window.onorientationchange=undefined},onResizeEvent:function(){if(this.resizing)this.resize_requested=true;else this.setResizeTimeout()},setResizeTimeout:function(){if(this.layout_t){clearTimeout(this.layout_t);this.layout_t=undefined}this.layout_t=setTimeout(this.resize_handler,10)},doResize:function(){this.resizing=true;this.resize_requested=false;this.func(this.after_resize_handler)},afterResize:function(){this.resizing=false;this.resize_requested&&this.setResizeTimeout()}})})();
var ObjectUtils=function(){function a(b,c,d){if(d===true)d=2;if(b&&b.hasOwnProperty("outerHTML"))return b.outerHTML;if(c==undefined)c=0;if(!(b instanceof Object))return b;var e=b instanceof Array,f=e?"[":"{",g=f,k=Object.keys(b),n;for(n in k){var o=k[n];if(g!=f)g+=",";g+="\n";var u=_get(b,o),s=typeof u;if(s=="object"&&d)u=a(u,c+1,d-1);else if(s=="function")u="{...}";for(s=0;s<c+1;s++)g+="  ";g+=e?u:o+": "+u}g+="\n";for(s=0;s<c;s++)g+="  ";g+=e?"]":"}";return g}return{toString:a,merge:function(b,c){for(var d in c)b[d]=
c[d];return b}}}(),dateFormat=function(){var a=/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,b=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,c=/[^-+\dA-Z]/g,d=function(e,f){e=String(e);for(f=f||2;e.length<f;)e="0"+e;return e};return function(e,f,g){var k=dateFormat;if(arguments.length==1&&Object.prototype.toString.call(e)=="[object String]"&&!/\d/.test(e)){f=e;e=undefined}e=e?new Date(e):new Date;
if(isNaN(e))throw SyntaxError("invalid date");f=String(k.masks[f]||f||k.masks["default"]);if(f.slice(0,4)=="UTC:"){f=f.slice(4);g=true}var n=g?"getUTC":"get",o=e[n+"Date"](),u=e[n+"Day"](),s=e[n+"Month"](),h=e[n+"FullYear"](),m=e[n+"Hours"](),r=e[n+"Minutes"](),p=e[n+"Seconds"]();n=e[n+"Milliseconds"]();var l=g?0:e.getTimezoneOffset(),j={d:o,dd:d(o),ddd:k.i18n.dayNames[u],dddd:k.i18n.dayNames[u+7],m:s+1,mm:d(s+1),mmm:k.i18n.monthNames[s],mmmm:k.i18n.monthNames[s+12],yy:String(h).slice(2),yyyy:h,h:m%
12||12,hh:d(m%12||12),H:m,HH:d(m),M:r,MM:d(r),s:p,ss:d(p),l:d(n,3),L:d(n>99?Math.round(n/10):n),t:m<12?"a":"p",tt:m<12?"am":"pm",T:m<12?"A":"P",TT:m<12?"AM":"PM",Z:g?"UTC":(String(e).match(b)||[""]).pop().replace(c,""),o:(l>0?"-":"+")+d(Math.floor(Math.abs(l)/60)*100+Math.abs(l)%60,4),S:["th","st","nd","rd"][o%10>3?0:(o%100-o%10!=10)*o%10]};return f.replace(a,function(w){return w in j?j[w]:w.slice(1,w.length-1)})}}();
dateFormat.masks={"default":"ddd mmm dd yyyy HH:MM:ss",shortDate:"m/d/yy",mediumDate:"mmm d, yyyy",longDate:"mmmm d, yyyy",fullDate:"dddd, mmmm d, yyyy",shortTime:"h:MM TT",mediumTime:"h:MM:ss TT",longTime:"h:MM:ss TT Z",isoDate:"yyyy-mm-dd",isoTime:"HH:MM:ss",isoDateTime:"yyyy-mm-dd'T'HH:MM:ss",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"};
dateFormat.i18n={dayNames:["Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],monthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec","January","February","March","April","May","June","July","August","September","October","November","December"]};Date.prototype.format=function(a,b){return dateFormat(this,a,b)};
var Tween=function(){function a(o,u,s,h){return o==h?u+s:s*(-Math.pow(2,-10*o/h)+1)+u}function b(o,u,s,h){return s*Math.sin(o/h*n)+u}function c(o,u){var s=(new Date).getTime()*0.0010,h=g[o];s=s-h.beginTime;var m=h.duration,r=h.startValue;if(s>m)s=m;var p=h.ease(s,0,1,m);if(s==m){delete g[o];k--;h.callback(h.target,r+p*(h.endValue-r),true)}else{if(u){delete g[o];k--}h.callback(h.target,r+p*(h.endValue-r),u?true:false)}}function d(){for(var o in g)c(o);if(k===0){clearInterval(f);e=false}}var e=false,
f,g={},k=0,n=Math.PI/2;return{to:function(o,u,s,h,m,r,p){if(!e){f=setInterval(d,33);e=true}this.killTweensOf(u);k++;var l={};l.target=o;l.callback=h;l.startValue=m;l.endValue=r;l.beginTime=(new Date).getTime()*0.0010;l.duration=s;l.ease=p===undefined||p=="expo"?a:b;g[u]=l},killTweensOf:function(o){g.hasOwnProperty(o)&&c(o,true)}}}(),HtmlUtils={toString:function(){return"HtmlUtils"}};
(function(){var a=$("<div/>");HtmlUtils.encode=function(b){if(!b)return b;return a.text(b).html()};HtmlUtils.decode=function(b,c){var d=0,e=0,f=false;if(typeof c==="undefined")c=2;if(!b)return"";b=b.toString().replace(/&lt;/g,"<").replace(/&gt;/g,">");var g={ENT_NOQUOTES:0,ENT_HTML_QUOTE_SINGLE:1,ENT_HTML_QUOTE_DOUBLE:2,ENT_COMPAT:2,ENT_QUOTES:3,ENT_IGNORE:4};if(c===0)f=true;if(typeof c!=="number"){c=[].concat(c);for(e=0;e<c.length;e++)if(g[c[e]]===0)f=true;else if(g[c[e]])d|=g[c[e]];c=d}if(c&g.ENT_HTML_QUOTE_SINGLE)b=
b.replace(/&#0*39;/g,"'");f||(b=b.replace(/&quot;/g,'"'));return b=b.replace(/&amp;/g,"&")}})();
(function(){var a={init:function(){a.browser=a.searchString(a.dataBrowser)||"Unknown";a.version=a.searchVersion(navigator.userAgent)||a.searchVersion(navigator.appVersion)||"Unknown";a.OS=a.searchString(a.dataOS)||"Unknown"},supportsCss3D:function(){for(var b=document.createElement("div"),c=false,d=["perspectiveProperty","WebkitPerspective"],e=d.length-1;e>=0;e--)c=c?c:b.style[d[e]]!=undefined;if(c){d=document.createElement("style");d.textContent="@media (-webkit-transform-3d){#test3d{height:3px}}";
document.getElementsByTagName("head")[0].appendChild(d);b.id="test3d";document.body.appendChild(b);c=b.offsetHeight===3;d.parentNode.removeChild(d);b.parentNode.removeChild(b)}return c},supportsFileDrop:function(){return window.File&&window.FileList&&!(a.browser.toLowerCase()=="safari"&&a.OS.toLowerCase()=="windows")&&!(a.browser.toLowerCase()=="firefox"&&a.version==3.6)},supportsFileRead:function(){return window.webkitURL||window.URL},searchString:function(b){for(var c=0;c<b.length;c++){var d=b[c].string,
e=b[c].prop;a.versionSearchString=b[c].versionSearch||b[c].identity;if(d){if(d.indexOf(b[c].subString)!=-1)return b[c].identity}else if(e)return b[c].identity}},searchVersion:function(b){var c=b.indexOf(a.versionSearchString);if(c!=-1)return parseFloat(b.substring(c+a.versionSearchString.length+1))},dataBrowser:[{string:navigator.userAgent,subString:"Chrome",identity:"Chrome"},{string:navigator.userAgent,subString:"OmniWeb",versionSearch:"OmniWeb/",identity:"OmniWeb"},{string:navigator.vendor,subString:"Apple",
identity:"Safari",versionSearch:"Version"},{prop:window.opera,identity:"Opera"},{string:navigator.vendor,subString:"iCab",identity:"iCab"},{string:navigator.vendor,subString:"KDE",identity:"Konqueror"},{string:navigator.userAgent,subString:"Firefox",identity:"Firefox"},{string:navigator.vendor,subString:"Camino",identity:"Camino"},{string:navigator.userAgent,subString:"Netscape",identity:"Netscape"},{string:navigator.userAgent,subString:"MSIE",identity:"Explorer",versionSearch:"MSIE"},{string:navigator.userAgent,
subString:"Gecko",identity:"Mozilla",versionSearch:"rv"},{string:navigator.userAgent,subString:"Mozilla",identity:"Netscape",versionSearch:"Mozilla"}],dataOS:[{string:navigator.platform,subString:"Win",identity:"Windows"},{string:navigator.platform,subString:"Mac",identity:"Mac"},{string:navigator.userAgent,subString:"iPhone",identity:"iPhone/iPod"},{string:navigator.platform,subString:"Linux",identity:"Linux"}],getZoom:function(){var b=d.browser.toLowerCase(),c=1;if(b=="firefox")c=1;else if(b=="chrome"||
b=="safari")c=document.width/jQuery(document).width();else if(b=="explorer")if(d.version==7){var d=document.body;b=d.getBoundingClientRect();c=(b.left-b.right)/d.offsetWidth}else{if(d.version>=8)c=screen.deviceXDPI/screen.logicalXDPI}else if(b=="opera")c=1;return c},isAtDefaultZoom:function(){return a.getZoom()==1}};a.init();window.BrowserDetect=a})();
var Utils=function(){var a=function(){return{encode:function(b){var c="",d,e,f,g,k,n,o=0;b=b;b=b.replace(/\r\n/g,"\n");e="";for(f=0;f<b.length;f++){g=b.charCodeAt(f);if(g<128)e+=String.fromCharCode(g);else{if(g>127&&g<2048)e+=String.fromCharCode(g>>6|192);else{e+=String.fromCharCode(g>>12|224);e+=String.fromCharCode(g>>6&63|128)}e+=String.fromCharCode(g&63|128)}}for(b=e;o<b.length;){d=b.charCodeAt(o++);e=b.charCodeAt(o++);f=b.charCodeAt(o++);g=d>>2;d=(d&3)<<4|e>>4;k=(e&15)<<2|f>>6;n=f&63;if(isNaN(e))k=
n=64;else if(isNaN(f))n=64;c=c+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(g)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(d)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(k)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(n)}return c},decode:function(b){var c="",d,e,f,g,k,n=0;for(b=b.replace(/[^A-Za-z0-9\+\/\=]/g,"");n<b.length;){d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(b.charAt(n++));
e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(b.charAt(n++));g="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(b.charAt(n++));k="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(b.charAt(n++));d=d<<2|e>>4;e=(e&15)<<4|g>>2;f=(g&3)<<6|k;c+=String.fromCharCode(d);if(g!=64)c+=String.fromCharCode(e);if(k!=64)c+=String.fromCharCode(f)}b=c;c="";for(n=k=g=0;g<b.length;){k=b.charCodeAt(g);if(k<128){c+=String.fromCharCode(k);
g++}else if(k>191&&k<224){n=b.charCodeAt(g+1);c+=String.fromCharCode((k&31)<<6|n&63);g+=2}else{n=b.charCodeAt(g+1);c3=b.charCodeAt(g+2);c+=String.fromCharCode((k&15)<<12|(n&63)<<6|c3&63);g+=3}}return c=c}}}();return{makeUnselectable:function(b){if(b.nodeType==1)b.unselectable="on";for(b=b.firstChild;b;){Utils.makeUnselectable(b);b=b.nextSibling}},SHA1:function(b){function c(w,v){return w<<v|w>>>32-v}function d(w){var v="",q,t;for(q=7;q>=0;q--){t=w>>>q*4&15;v+=t.toString(16)}return v}var e,f,g=[],
k=1732584193,n=4023233417,o=2562383102,u=271733878,s=3285377520,h,m,r,p,l;b=function(w){w=w.replace(/\r\n/g,"\n");for(var v="",q=0;q<w.length;q++){var t=w.charCodeAt(q);if(t<128)v+=String.fromCharCode(t);else{if(t>127&&t<2048)v+=String.fromCharCode(t>>6|192);else{v+=String.fromCharCode(t>>12|224);v+=String.fromCharCode(t>>6&63|128)}v+=String.fromCharCode(t&63|128)}}return v}(b);h=b.length;var j=[];for(e=0;e<h-3;e+=4){f=b.charCodeAt(e)<<24|b.charCodeAt(e+1)<<16|b.charCodeAt(e+2)<<8|b.charCodeAt(e+
3);j.push(f)}switch(h%4){case 0:e=2147483648;break;case 1:e=b.charCodeAt(h-1)<<24|8388608;break;case 2:e=b.charCodeAt(h-2)<<24|b.charCodeAt(h-1)<<16|32768;break;case 3:e=b.charCodeAt(h-3)<<24|b.charCodeAt(h-2)<<16|b.charCodeAt(h-1)<<8|128}for(j.push(e);j.length%16!=14;)j.push(0);j.push(h>>>29);j.push(h<<3&4294967295);for(b=0;b<j.length;b+=16){for(e=0;e<16;e++)g[e]=j[b+e];for(e=16;e<=79;e++)g[e]=c(g[e-3]^g[e-8]^g[e-14]^g[e-16],1);f=k;h=n;m=o;r=u;p=s;for(e=0;e<=19;e++){l=c(f,5)+(h&m|~h&r)+p+g[e]+1518500249&
4294967295;p=r;r=m;m=c(h,30);h=f;f=l}for(e=20;e<=39;e++){l=c(f,5)+(h^m^r)+p+g[e]+1859775393&4294967295;p=r;r=m;m=c(h,30);h=f;f=l}for(e=40;e<=59;e++){l=c(f,5)+(h&m|h&r|m&r)+p+g[e]+2400959708&4294967295;p=r;r=m;m=c(h,30);h=f;f=l}for(e=60;e<=79;e++){l=c(f,5)+(h^m^r)+p+g[e]+3395469782&4294967295;p=r;r=m;m=c(h,30);h=f;f=l}k=k+f&4294967295;n=n+h&4294967295;o=o+m&4294967295;u=u+r&4294967295;s=s+p&4294967295}l=d(k)+d(n)+d(o)+d(u)+d(s);return l.toLowerCase()},B64Encode:a.encode,B64Decode:a.decode,getQueryParams:function(b){if(!b)b=
document.location.search;b=b.split("+").join(" ");for(var c={},d,e=/[?&]?([^=]+)=([^&]*)/g;d=e.exec(b);)c[decodeURIComponent(d[1])]=decodeURIComponent(d[2]);return c},clamp:function(b,c,d){return b<c?c:b>d?d:b},removeObjectFromArray:function(b,c){var d=c.indexOf(b);d!=-1&&c.splice(d,1)}}}();
function Get_Cookie(a){var b=document.cookie.split(";"),c="",d="",e="",f="";for(f=0;f<b.length;f++){c=b[f].split("=");d=c[0].replace(/^\s+|\s+$/g,"");if(d==a){if(c.length>1)e=unescape(c[1].replace(/^\s+|\s+$/g,""));return e}}return null}function Set_Cookie(a,b,c,d,e,f){var g=new Date;g.setTime(g.getTime());if(c)c=c*1E3*60*60*24;g=new Date(g.getTime()+c);document.cookie=a+"="+escape(b)+(c?";expires="+g.toGMTString():"")+(d?";path="+d:"")+(e?";domain="+e:"")+(f?";secure":"")}
function Delete_Cookie(a,b,c){if(Get_Cookie(a))document.cookie=a+"="+(b?";path="+b:"")+(c?";domain="+c:"")+";expires=Thu, 01-Jan-1970 00:00:01 GMT"}var EmailUtils={validateEmail:function(a){return a.match("[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?")}};
(function(){function a(){var c=this.invocation;this.invoked=true;c.added(this)}function b(){this.invocation.removed(this);this.invocation=null;this.invoked=false}typeof $!=="undefined"&&$("[ti=1]").livequery(a,b);Template.Invocation=Class.create("Template.Invocation",{initialize:function(c){this.history=[];this.instance=c;this.invoke();if(c.data&&c.data.constructor==DataPin){this.change_handler=delegate(this,this.onDataChange);$(c.data).bind("change",this.change_handler)}},onDataChange:function(){this.invoke()},
invoke:function(){var c=this.instance,d=$(c.elem);if(d&&d.length>0){for(var e=0;this.history.length>e;){var f=this.history[e];if(f.state=="initial"){$(f.elem).triggerHandler("removed");this.history.splice(e,1)}else e++}d=d.applyTemplate(c.template,c.data,c.params);if(!(!d||d.length<1)){e=d[0];e.getAttribute("id")==c.id&&e.removeAttribute("id");c.elem=e;d.first().attr("ti",1);d.first().setProp("invocation",this);this.history.push({elem:e,state:"initial"});d.parent().triggerHandler("invoked",[d])}}},
added:function(c){for(var d=-1,e=0;e<this.history.length;e++)if(this.history[e].elem===c){d=e;break}this.history[d].state="added"},removed:function(c){var d=false;if(c===this.instance.elem)d=true;if(this.history[this.history.length-1].state!="added")d=true;if(d)this.destroy();else{d=-1;for(var e=0;e<this.history.length;e++)if(this.history[e].elem===c){d=e;break}this.history.splice(d,1)}},destroy:function(){this.change_handler&&$(this.instance.data).unbind("change",this.change_handler);this.history=
[]}})})();
(function(){Template.Mapper=Class.create("Template.Mapper",Controller,{initialize:function(a,b,c){this.template=a;this.items=new List;this.list=b;this.options=c;if(!this.options)this.options={delay:0};if(this.options.delay==undefined)this.options.delay=0;this.insert_queue=new Poll.Queue(this.options.delay||0,delegate(this,this.onInsertQueue))},attach:function($super,b){$super(b);if(this.list.length()>0)for(var c=this.list.firstIndex();c<=this.list.lastIndex();c++)this.insert(c,this.list.getItemAt(c));this.bindEvent(this.list,
"remove",this.onRemove);this.bindEvent(this.list,"insert",this.onInsert)},detach:function($super){$super();for(this.insert_timeout&&clearTimeout(this.insert_timeout);this.items.length()>0;)this.remove(this.items.lastIndex());this.list=this.template=this.items=null},reindex:function(){for(var a=this.items.firstIndex();a<=this.items.lastIndex();a++){map_item=this.items.getItemAt(a);map_item.index=a;map_item.$elem&&map_item.$elem.setProp("map_index",a)}},onRemove:function(a,b,c,d){this.remove(b,d)},
remove:function(a,b){var c=this.items.getItemAt(a);if(c){c.removed=true;var d=c.$elem;d&&d.afterTransition(function(){d.afterLayout(function(){d.remove()})});this.items.remove(a,b);b&&this.reindex()}else a==this.items.lastIndex()&&this.items.remove(a)},onInsert:function(a,b,c,d){this.insert(b,c,d)},insert:function(a,b,c){var d={index:a,item:b};this.items.insert(a,d);if(c)for(c=this.items.firstIndex();c<=this.items.lastIndex();c++){d=this.items.getItemAt(c);d.index=c;d.$elem&&d.$elem.setProp("map_index",
c)}this.options.delay==0?this.invokeTemplate(a,b):this.insert_queue.add(d)},onInsertQueue:function(a){a.removed||this.invokeTemplate(a.index,a.item)},invokeTemplate:function(a,b){var c=this.items.getItemAt(a),d=applyTemplate(this.template,b,this.options.params),e=d[0];c.$elem=d;d.setProp("map_index",a);this.$elem.triggerHandler("before_insert",{index:a,item:b,element:e});this.updateDOM(c)},updateDOM:function(a){var b=a.index,c=a.$elem;a=a.item;var d=c[0];if(b==this.items.firstIndex())this.$elem.prepend(c);
else if(b==this.items.lastIndex())this.$elem.append(c);else{var e,f=b,g=false;do{f--;if((e=this.items.getItemAt(f))&&e.$elem){c.insertAfter(e.$elem);g=true}}while(!g&&f>this.items.firstIndex());if(!g){f=b;do{f++;if((e=this.items.getItemAt(f))&&e.$elem){c.insertBefore(e.$elem);g=true}}while(!g&&f<this.items.lastIndex())}g||this.$elem.append(c)}this.$elem.triggerHandler("after_insert",{index:b,item:a,element:d})}});if(typeof $!=="undefined")$.fn.mapTemplate=function(a,b,c){(new Template.Mapper(a,b,
c)).attach(this);return this}})();
(function(){Template.Switcher=Class.create("Template.Switcher",Controller,{initialize:function($super,b,c,d){$super();this.template_instances={};this.data=b;this.template_map=c;this.transition_map=d;if(!this.transition_map)this.transition_map={}},attach:function($super,b){$super(b);this.data&&this.data.constructor==DataPin&&this.bindEvent(this.data,"change",this.onDataPinChange)},detach:function($super){$super();this.template_instances={}},added:function(){this.data&&this.data.constructor!=DataPin&&
this.onDataPinChange(undefined,this.data,undefined)},onDataPinChange:function(a,b,c){var d=this.getTemplateInstance(b);if(a=this.transition_map[c+"-"+b]){var e=this;a(this,this.$current,d,function(){e.switchTemplate(d,b,c)})}else this.switchTemplate(d,b,c)},switchTemplate:function(a,b,c){if(this.$current){var d=this.$current;this.$current=undefined;this.$elem.triggerHandler("remove_template",[d,c]);this.remove(d,c)}if(a){this.append(a);this.$elem.triggerHandler("add_template",[a,b]);this.$current=
a}},remove:function(a,b){if(a&&a.parent()[0]===this.$elem[0]){a.remove();delete this.template_instances[b]}},append:function(a){a.parent()[0]!=this.$elem[0]&&this.$elem.append(a)},getTemplateInstance:function(a){if(!this.template_instances[a]){var b;b=typeof this.template_map=="function"?this.template_map(a):this.template_map[a];if(!b)return;var c,d;if(b.template)b=b.template;if(b instanceof Array){c=b[0];d=b[1]}else c=b;if(!c)return;b=applyTemplate(c,d);this.template_instances[a]=b}return this.template_instances[a]}})})();
var server_vars=window.server_vars;server_vars.base_url=server_vars.base_url;server_vars.share_url=server_vars.share_url;server_vars.static_root=server_vars.static_root;server_vars.preload_images=server_vars.preload_images;server_vars.images=server_vars.images;server_vars.css_3d=server_vars.css_3d;server_vars.enable_polling=server_vars.enable_polling;server_vars.captcha=server_vars.captcha;server_vars.recaptcha_key=server_vars.recaptcha_key;server_vars.debug=server_vars.debug;
server_vars.notifications=server_vars.notifications;var Analytics;
(function(){Analytics=Class.create("Analytics",{pageView:function(a){var b=Liveshare.authenticated()?"Member":"Visitor";_gaq.push(["_setCustomVar",1,"User Type",b,2]);_gaq.push(["_trackPageview",a])},event:function(a,b,c,d){d?_gaq.push(["_trackEvent",a,b,c,d]):_gaq.push(["_trackEvent",a,b,c])},home:function(){this.pageView("/")},search:function(){this.pageView("/search")},featuredStreams:function(){this.pageView("/public")},myStreams:function(){this.pageView("/my-streams")},nearbyStreams:function(){this.pageView("/nearby")},
stream:function(a){this.pageView("/stream/"+a)},media:function(a,b){this.pageView("/stream/"+a+"/"+b)},scroll:function(a){this.event("UI","scroll","amount",a)},itemDetail:function(a,b){this.pageView("/stream/"+a+"/"+b+"/info")}})})();var Tracker=new Analytics,Item;
(function(){Item=Class.create("Item",PropertyList,{initialize:function($super,b){this.item_type=b;$super({access:Item.Access.VISIBLE})}});Item.Access={LOADING:"loading",VISIBLE:"visible",NEED_LOGIN:"need_login",NOT_AUTHORIZED:"no_auth",ERROR:"error"};Item.Config={Detail:{MAX_WIDTH:600}};Item.Layouts=function(a){var b;switch(a){case "normal":b=Item.Layouts.Normal;break;case "detail":b=Item.Layouts.Detail}return b};Item.Tasks={toString:function(){return"Item.Tasks"}}})();
var Liveshare={toString:function(){return"Liveshare"},Parsers:{},Config:{MIN_REQUEST_SIZE:20,placeholderImg:server_vars.static_root+"/images/Last_img_flame.png",previewCount:20,numPreviewsPerStack:3,minThumbnailSize:256,maxImageSize:1024,extraItems:2,itemRequestMultiplier:1.3,PubNub:{SUB_KEY:"sub-b61f04e1-af5c-11e0-923e-eb9ed3267db0"}},ServerCache:{Users:new Dictionary,addUsers:function(a){a=a instanceof Array?a:[a];for(var b=0;b<a.length;b++)Liveshare.ServerCache.Users.addOrUpdate(a[b].userid,a[b])},
Events:new Dictionary,addEvents:function(a){a=a instanceof Array?a:[a];for(var b=0;b<a.length;b++)Liveshare.ServerCache.Events.addOrUpdate(a[b].eventid,a[b])},MediaItems:new Dictionary,addMediaItems:function(a){a=a instanceof Array?a:[a];for(var b=0;b<a.length;b++)Liveshare.ServerCache.MediaItems.addOrUpdate(a[b].mediaid,a[b])},Comments:new Dictionary,addComments:function(a){a=a instanceof Array?a:[a];for(var b=0;b<a.length;b++)Liveshare.ServerCache.Comments.addOrUpdate(a[b].commentid,a[b])}},shortUserName:function(a){var b=
"";if(a.firstname){b=a.firstname;if(a.lastname)b+=" "+a.lastname.substr(0,1)}return HtmlUtils.encode(b)},fullUserName:function(a){var b="";if(a.firstname){b=a.firstname;if(a.lastname)b+=" "+a.lastname}return HtmlUtils.encode(b)},getInviteToken:function(a){var b=Get_Cookie("invite_token");if(b){b=b.split("\\");for(var c=0;c<b.length;c++){var d=b[c].split(".");if(d.length>1)if(d[0]==a)return d[1]}}},MyUser:new PropertyList({authenticated:false,firstname:"",lastname:"",userid:-1}),authenticated:function(){return Liveshare.MyUser.get("authenticated")}};
(function(){Liveshare.Stream=Class.create("Liveshare.Stream",Item,{initialize:function($super,b,c){$super("stream");this.set("is_empty",false);this.set("num_members",0);this.provider=new Liveshare.Provider;this.provider.getState()=="ready"&&this.onProviderStateChange("ready","initial");bind({source:new DataPin(this.provider,"state"),sink:delegate(this,this.onProviderStateChange)});this.items=this.provider.results;this.set("icon_url",Liveshare.Config.placeholderImg);c||(c="stack");this.set("layout_type",
c);b&&this.parseEvent(b)},slice:function(){var a=this.provider;a.slice(a.results.firstIndex(),Liveshare.Config.numPreviewsPerStack)},addMediaPreviews:function(a,b){var c=a.length-1;if(b)for(var d=c;d>=0;d--){var e=a[d];this.addMediaItem(e,true)}else for(d=0;d<=c;d++){e=a[d];this.addMediaItem(e,false)}},addMediaItem:function(a,b){if(a.deleted!==true)if(!(a.myflag>0))if(!this.hasItem({mediaid:a.mediaid})){var c=new Liveshare.PhotoItem(a);if(b){c.set("provider_index",this.items.firstIndex()-1);this.items.prepend(c)}else{c.set("provider_index",
this.items.lastIndex()+1);this.items.append(c)}this.provider.processNewItem(c)}},onProviderStateChange:function(a){if(a=="ready")this.checkEmpty();else if(a=="error")this.provider.error==401?this.set("access",Item.Access.NEED_LOGIN):this.set("access",Item.Access.ERROR)},checkEmpty:function(){this.items.length()==0||this.items.length()==1&&this.items.getItemAt(this.items.firstIndex()).item_type=="placeholder"?this.set("is_empty",true):this.set("is_empty",false)},hasItem:function(a){return this.provider.index.exists(a)},
getItem:function(a){return this.provider.index.get(a)},removeItem:function(a){this.items.remove(this.items.indexOf(a),true);this.checkEmpty()},parseEvent:function(a,b){for(var c in a)switch(c){case "name":this.set("name",a[c]?HtmlUtils.encode(a[c]):"Untitled Stream");break;default:this.set(c,a[c])}this.set("id",a.eventid);this.provider.set("query",{method:"items",type:"items",eventid:this.get("eventid")});c=(c=a.startdatetime)?(new Date(c)).format(dateFormat.masks.mediumDate):"";this.set("formatted_date",
c);c=(c=a.location)?HtmlUtils.encode(c).replace("&apos;","'"):"";this.set("location",c);c="";if(a.firstname){c=a.firstname;if(a.lastname)c+=" "+a.lastname.substr(0,1);c=HtmlUtils.encode(c)}this.set("created_by",c);c=server_vars.share_url;var d=c+"/stream/"+a.eventid;this.set("url",d);this.set("link_url",d);d="http://www.facebook.com/share.php?u="+encodeURIComponent(d+"?t="+(new Date).getTime().toString());this.set("fb_url",d);this.set("facebook_url",d);c=c+"/twitter/"+a.eventid;this.set("tw_url",
c);this.set("twitter_url",c);a.imageurl&&this.set("icon_url",a.imageurl);c=a.visibility==2;this.set("is_private",c);if(c)if(d=a.users){this.set("users",d);this.set("num_members",d.length);b?this.set("access",Item.Access.VISIBLE):this.checkAccess()}else Liveshare.MyUser.get("authenticated")||this.set("access",Item.Access.NEED_LOGIN);if(c)this.set("uploadAllowed",this.get("access")=="no_auth"?false:true);else{this.set("uploadAllowed",true);if(this.get("moderationtype")==2)Liveshare.authenticated()?
this.set("uploadAllowed",this.get("moderator")):this.set("uploadAllowed",false)}this.set("owner",false);c=Liveshare.MyUser.get("userid");d=a.userid;c&&d&&c==d&&this.set("owner",true);if(d=HtmlUtils.encode(this.get("location")))d="@ "+d;c=this.get("formatted_date");if((d=d)&&c)d+=", ";d+=c;this.set("info",d)},checkAccess:function(){var a=true,b=this.get("is_private"),c=this.get("num_members");if(b&&!Liveshare.authenticated())a=false;else if(b&&c>=1){a=false;b=Liveshare.MyUser.get("userid");for(var d=
this.get("users"),e=0;e<c;e++)if(d[e].userid==b){a=true;this.get("subscribed")===undefined&&this.set("subscribed",true);break}}if(a)this.set("access",Item.Access.VISIBLE);else{this.set("uploadAllowed",false);this.set("access",Item.Access.NOT_AUTHORIZED)}}});Liveshare.Placeholder=Class.create("Liveshare.Placeholder",Item,{initialize:function($super){$super("placeholder");this.set("thumb_url",Liveshare.Config.placeholderImg);this.set("mediaid","ph");this.set("eventid","ph");this.set("creationdatetime",
(new Date(1970,1,2)).getTime());this.set("updatedatetime",(new Date(1970,1,2)).getTime())}});Liveshare.LoadingIndicator=Class.create("Liveshare.LoadingIndicator",Liveshare.Placeholder,{initialize:function($super){$super();this.item_type="loading_indicator";this.set("thumb_url","/images/loading.gif")}});Liveshare.PhotoItem=Class.create("Liveshare.PhotoItem",Item,{initialize:function($super,b){$super("photo");this.parseMediaItem(b)},parentStream:function(){return this.parent.data},parseMediaItem:function(a){this.mediaItem=
a;for(var b in a)this.set(b,a[b]);this.set("id",a.mediaid);this.initTitle();this.initUrls()},initUrls:function(){var a=this.mediaItem,b,c,d,e,f=Liveshare.Config.minThumbnailSize,g=Liveshare.Config.maxImageSize;this.set("num_likes",a.ranking);var k=5E3,n=0,o=0;b=a.content;c=b.extension;d=b.size;b=a.contentbaseurl;for(var u in d){e=parseInt(d[u],10);if(e<k&&e>=f)k=e;if(e>n&&e<=g)n=e;if(e>o)o=e}if(k==5E3)k=128;f=a.eventid;a=a.mediaid;o=b+"_"+o+"."+c;this.set("thumb_url",b+"_"+k+"."+c);this.set("content_url",
b+"_"+n+"."+c);this.set("original_url",o);this.set("download_url",server_vars.base_url+"/download?url="+o+"&filename="+this.get("creationdatetime"));c=server_vars.share_url+"/stream/"+f+"?mediaId="+a;this.set("link_url",c);this.set("facebook_url","http://www.facebook.com/share.php?u="+encodeURIComponent(c+"&t="+(new Date).getTime().toString()));this.set("twitter_url",server_vars.base_url+"/twitter/"+f+"?mediaId="+a)},initTitle:function(){var a=this.mediaItem,b=a.title;if(!b){b=new Date(a.creationdatetime);
b="<div class='day'>"+b.format("dddd h:MMTT")+"</div> on "+b.format("mmm d yyyy");if(a.user){var c=a.user.firstname+" "+a.user.lastname;if(a=a.user.imageurl)if(a=a.match(/\d+/))c="<a target='_blank' class='link' href='http://www.facebook.com/profile.php?id="+a+"'>"+c+"</a>";b+="<br/> by "+c}}this.set("title",HtmlUtils.encode(b))},clearComments:function(){this.comments.removeAll()},initComments:function(){if(!this.comments){this.comments=new List;this.comments_index=new ListIndex(this.comments,"commentid")}},
hasComments:function(){return this.comments&&this.comments.length()>0},getCommentById:function(a){return this.comments_index.get(a)},loadComments:function(){if(!this.loading_comments){this.initComments();this.loading_comments=true;var a=this;LiveshareAPI.GetMediaComments(this.get("mediaid"),{limit:1E4},function(b){a.loading_comments=false;if(a.comments){var c=b.result.comment;b=c.length;for(var d=a.comments.firstIndex(),e=0,f=[],g={},k=0;k<b;k++){var n=c[k];g[n.commentid]=n}for(k=0;k<b;k++){n=c[k];
if(n.myflag>0)e++;else if(k>0&&n.commentid==c[k-1].commentid)e++;else{var o=k-e+d;if(o>a.comments.lastIndex())a.comments.append(new Liveshare.Comment(n));else{var u=a.comments.getItemAt(o);if(u.get("commentid")!=n.commentid)if(u.get("temp")){k--;d++}else if(g[u.get("commentid")])a.comments.insert(o,new Liveshare.Comment(n));else{f.push(u);d++;k--}}}}for(k=0;k<f.length;k++){n=f[k];c=a.comments.indexOf(n);a.comments.remove(c)}for(;a.comments.length()>b-e;){n=a.comments.getItemAt(a.comments.lastIndex());
if(n.get("temp"))e--;else a.comments.remove(a.comments.lastIndex())}a.set("commentcount",a.comments.length());$(a).triggerHandler("comments_refreshed")}})}},initRankings:function(){if(!this.rankings)this.rankings=new List},loadRankings:function(a){if(!this.loading_rankings)if(this.rankings&&!a)$(this).triggerHandler("rankings_refreshed");else{this.loading_rankings=true;var b=this;LiveshareAPI.GetMediaRankings(this.get("mediaid"),{limit:1E4},function(c){b.loading_rankings=false;c=c.result.ranking;
var d=c.length;b.set("ranking",d);b.rankings&&b.rankings.removeAll();b.initRankings();for(var e=b.get("myranking"),f=Liveshare.MyUser.get("userid"),g=false,k=0;k<d;k++){var n=c[k];if(n.user.userid==f){g=true;b.set("myranking",n.value)}b.rankings.append(n)}e&&!g&&b.set("myranking",0);$(b).triggerHandler("rankings_refreshed")})}}});Liveshare.Comment=Class.create("Liveshare.Comment",Item,{initialize:function($super,b){$super("comment");for(var c in b)switch(c){case "text":this.set(c,HtmlUtils.encode(b[c]));
break;default:this.set(c,b[c])}}})})();var LiveshareAPI;
(function(){function a(b){return $.ajax({type:b.type||"GET",url:b.url,data:b.data,complete:function(){},success:function(c){b.callback&&b.callback(c)}})}LiveshareAPI=function(){return{toString:function(){return"LiveshareAPI"},SetMediaCommentDeleted:function(b,c,d){return a({url:server_vars.base_url+"/api/comment/delete/"+b+"/"+c,callback:d})},SetMediaCommentFlag:function(b,c,d,e){return a({url:server_vars.base_url+"/api/comment/flag/"+b+"/"+c+"/"+d,callback:e})},AddMediaComment:function(b,c,d){return a({type:"POST",
url:server_vars.base_url+"/api/comment/add/"+b,data:{text:c},callback:d})},Featured:function(b,c){return a({url:server_vars.base_url+"/api/featured",data:b,callback:c})},GetMyStreams:function(b,c){return a({url:server_vars.base_url+"/api/following",data:b,callback:c})},GetHome:function(b,c){return a({url:server_vars.base_url+"/api/home",data:b,callback:c})},GetActivityStream:function(b,c){return a({url:server_vars.base_url+"/api/activity",data:b,callback:c})},GetEvents:function(b,c){return a({url:server_vars.base_url+
"/api/events",data:b,callback:c})},GetMediaPreview:function(b,c,d){return a({url:server_vars.base_url+"/api/preview/"+b,data:c,callback:d})},GetStreamDetails:function(b,c,d){return a({url:server_vars.base_url+"/api/stream/"+b,data:c,callback:d})},GetMediaRankings:function(b,c,d){return a({url:server_vars.base_url+"/api/rankings/"+b,data:c,callback:d})},GetMediaComments:function(b,c,d){return a({url:server_vars.base_url+"/api/comments/"+b,data:c,callback:d})},Like:function(b,c,d){return a({url:server_vars.base_url+
"/api/like/"+b+"/"+c,callback:d})},Flag:function(b,c,d){return a({url:server_vars.base_url+"/api/flag/"+b+"/"+c,callback:d})},EditEvent:function(b,c){return a({url:server_vars.base_url+"/api/editEvent/",data:b,callback:c})},AddFriends:function(b,c){return a({url:server_vars.base_url+"/api/addfriends/",data:b,callback:c})},CreateStream:function(b,c){return a({url:server_vars.base_url+"/api/createStream/",data:b,callback:c})},Logout:function(b){return a({url:server_vars.base_url+"/api/logout",callback:b})},
UserProfile:function(b){return a({url:server_vars.base_url+"/api/profile",callback:b})},RemoveAccount:function(b,c){return a({url:server_vars.base_url+"/api/removeAccount",data:{id:b},callback:c})},GetNotifications:function(b,c){return a({url:server_vars.base_url+"/api/getNotifications",data:b,callback:c})}}}()})();
(function(){Liveshare.Request=Class.create("Liveshare.Request",Dispatcher,{initialize:function(a){this.lastPage=false;this.query=a},setCallbacks:function(a,b){this.success_callback=a;this.error_callback=b},send:function(a){this.context=a;return true},cancel:function(){this.cancelled=true;this.xhr&&this.xhr.abort()},failure:function(a){this.error=a;var b=$(this);b.triggerHandler("error",[this,a]);b.triggerHandler("complete",[false,this,a])},success:function(a){var b=$(this);b.triggerHandler("success",
[this,a]);b.triggerHandler("complete",[true,this,a])},updateLastTime:function(a){if(!this.lastTime||a<this.lastTime)this.lastTime=a},updateFirstTime:function(a){if(!this.firstTime||a>this.firstTime)this.firstTime=a}});Liveshare.EventsRequest=Class.create("Liveshare.EventsRequest",Liveshare.Request,{initialize:function($super,b){$super(b);this.num_previews_per_event=b.num_previews?b.num_previews:Liveshare.Config.previewCount;this.skip_empty_events=b.skip_empty?b.skip_empty:true},getEvents:function(a){this.xhr=
LiveshareAPI.GetEvents(a,delegate(this,this.onEvents));return true},onEvents:function(a){if(!this.cancelled)if(a.result){this.events=[];a=a.result;var b=a.event;if(b){this.numResults=b.length;if(this.context.limit&&b.length<this.context.limit)this.lastPage=true;this.eventIDs=new SortedDictionary;for(var c in b)this.processEvent(b[c]);if(this.eventIDs.numItems()>0)this.xhr=LiveshareAPI.GetMediaPreview(this.eventIDs.sorted.join(","),{previewcount:this.num_previews_per_event,limit:this.num_previews_per_event*
this.eventIDs.sorted.length},delegate(this,this.onPreviews));else this.success(this.events)}else this.failure(a.returncode)}else this.failure(a.error)},processEvent:function(a){var b=a.eventid;if(!this.eventIDs.get(b)){this.updateLastTime(a.updatedatetime);this.updateFirstTime(a.updatedatetime);if(!(this.skip_empty_events&&a.mediaitems===0)){this.eventIDs.add(b,{event:a});this.events.push(a)}}},onPreviews:function(a){if(!this.cancelled){a=a.result.media;for(var b=0;b<a.length;b++){var c=a[b],d=this.eventIDs.get(c.eventid).event;
d.previews||(d.previews=[]);d.previews.push(c)}this.success(this.events)}}});Liveshare.Request.Factory=function(a){var b;switch(a.method){case "featured":b=Liveshare.FeaturedRequest.Factory(a);break;case "mystreams":b=Liveshare.MyStreamsRequest.Factory(a);break;case "items":b=Liveshare.ItemsRequest.Factory(a);break;case "local":b=Liveshare.LocalRequest.Factory(a);break;case "nearby":b=Liveshare.NearbyRequest.Factory(a);break;case "search":b=Liveshare.SearchRequest.Factory(a)}return b};Liveshare.SearchRequest=
Class.create("Liveshare.SearchRequest",Liveshare.EventsRequest,{send:function($super,b){$super(b);return this.getEvents({search:this.query.search,limit:b.limit,offset:b.offset,safe:this.query.safe})}});Liveshare.SearchRequest.Factory=function(a){return new Liveshare.SearchRequest(a)};Liveshare.NearbyRequest=Class.create("Liveshare.NearbyRequest",Liveshare.EventsRequest,{onGetCurrentPosition:function(a){Liveshare.Config.current_position=a},onDenyCurrentPosition:function(){},success:function($super,
b){$super(b)},send:function($super,b){$super(b);var c={featured:false,sortorder:"reverse",significant:false,limit:b.limit,offset:b.offset,safe:0};if(this.query.latitude&&this.query.longitude){if(this.query.latitude!="null"){c.latitude=this.query.latitude;c.longitude=this.query.longitude}}else{var d=Liveshare.Config.current_position;if(!d)return false;c.latitude=d.coords.latitude;c.longitude=d.coords.longitude}if(this.query.radius!="null")c.radius=this.query.radius;c.sortby="updatedatetime";return this.getEvents(c)}});
Liveshare.NearbyRequest.Factory=function(a){var b=Nav.getContext();$.extend(a,{radius:b.radius?b.radius:server_vars.nearby.radius});if(b.ll||b.sll){b=b.ll?b.ll:b.sll;if(b=="null"){a.latitude="null";a.longitude="null"}else{b=b.replace("%2C",",").split(",");a.latitude=b[0];a.longitude=b[1]}}return new Liveshare.NearbyRequest(a)};Liveshare.LocalRequest=Class.create("Liveshare.LocalRequest",Liveshare.Request,{send:function(){return false}});Liveshare.LocalRequest.Factory=function(a){return new Liveshare.LocalRequest(a)};
Liveshare.ItemsRequest=Class.create("Liveshare.ItemsRequest",Liveshare.Request,{send:function($super,b){$super(b);var c=b.maxTime,d=b.minTime,e=b.mediaids,f={eventid:this.query.eventid,limit:b.limit,filterdeleted:true,sortorder:b.prepend?"forward":"reverse"};if(c)f["creation-max"]=c;if(d)f["creation-min"]=d;if(e)f.mediaids=e;this.xhr=LiveshareAPI.GetActivityStream(f,delegate(this,this.onItems));return true},onItems:function(a){if(!this.cancelled)if(!a||!a.result){error("No response to GetActivityStream",
true);this.failure(this,404)}else{a=a.result;if(!a||a.returncode!=0)this.failure(401);else{a=a.media;if(this.context.limit&&a.length<this.context.limit)this.lastPage=true;this.numResults=a.length;this.success(a)}}}});Liveshare.ItemsRequest.Factory=function(a){return new Liveshare.ItemsRequest(a)};Liveshare.MyStreamsRequest=Class.create("Liveshare.MyStreamsRequest",Liveshare.EventsRequest,{send:function($super,b){$super(b);if(!Liveshare.authenticated())return false;var c={previewcount:Liveshare.Config.previewCount};
if(b.limit)c.limit=b.limit;if(b.minTime)c["updated-min"]=b.minTime;if(b.maxTime)c["updated-max"]=b.maxTime;if(b.offset)c.offset=b.offset;return this.getHome(c)},getHome:function(a){this.skip_empty_events=false;this.xhr=LiveshareAPI.GetHome(a,delegate(this,this.onEvents));return true},processEvent:function($super,b){var c=b.subscribed;if(c!==false){if(c===undefined)b.subscribed=true;$super(b)}}});Liveshare.MyStreamsRequest.Factory=function(a){return new Liveshare.MyStreamsRequest(a)};Liveshare.FeaturedRequest=
Class.create("Liveshare.FeaturedRequest",Liveshare.EventsRequest,{send:function($super,b){$super(b);var c=b.limit,d=b.offset,e,f=(new Date).getTime();e=f-2592E6;f=f+864E5;e=Math.floor(e/864E5)*864E5;f=Math.floor(f/864E5)*864E5;e={min:e,max:f};return this.getEvents({limit:c,offset:d,"mediacount-min":this.num_previews_per_event,"datetime-min":e.min,"datetime-max":e.max,sortorder:"reverse",featured:true})}});Liveshare.FeaturedRequest.Factory=function(a){return new Liveshare.FeaturedRequest(a)}})();
(function(){Liveshare.Provider=Class.create("Liveshare.Provider",List.Provider,{initialize:function($super){$super({state:"initial",stream:null,query:{method:"unknown",type:"unknown"}});this.results=this.list;this.cache={results:new List};this.offset=0;this.bindProp(this,"query",this.onQueryChanged);this.bindProp(this,"method",this.onMethodChanged);this.bindProp(this,"eventid",this.onEventIDChanged)},getQuery:function(){return this.get("query")},getState:function(){return this.get("state")},resetState:function(){this.lastPage=
this.firstPage=false;this.firstTime=this.lastTime=undefined;this.offset=0;this.setRequest(null);this.set("state","initial")},reset:function(){this.context&&this.cancel(this.context);this.resetState();this.cache.results.removeAll();this.results.removeAll();$(this).triggerHandler("reset")},firstIndex:function(){return this.cache.results.firstIndex()},firstItem:function(){return this.cache.results.firstItem()},lastIndex:function(){return this.cache.results.lastIndex()},lastItem:function(){return this.cache.results.lastItem()},
numResults:function(){return this.cache.results.length()},setRequest:function(a){if(this.req){this.unbindEvent(this.req,"success");this.unbindEvent(this.req,"error")}if(this.req=a){this.bindEvent(this.req,"success",this.onResults);this.bindEvent(this.req,"error",this.onError)}},copyFromCache:function(a){this.results.insert(a.get("provider_index"),a)},syncCache:function(a,b){if(this.bounds){if(a===undefined)a=this.bounds.first;if(b===undefined)b=this.bounds.last;for(var c=this.cache.results,d=c.firstIndex(),
e=this.results.firstIndex()-1;e>=a;e--){if(d>e)break;e<=b&&this.copyFromCache(c.getItemAt(e))}d=c.lastIndex();for(e=this.results.lastIndex()+1;e<=b;e++){if(d<e)break;e>=a&&this.copyFromCache(c.getItemAt(e))}}},clipToBounds:function($super){$super();this.syncCache()},cancel:function(a){if(a===this.context){this.context=null;this.req&&this.req.cancel();this.set("state","ready")}},slice:function(a,b){this.getState()=="loading"&&this.cancel(this.context);this.bounds=new ListBounds({first:a,last:a+b-1});
this.clipToBounds()},removeResultAt:function(a){var b=this.cache.results.remove(a,true);a>=this.results.firstIndex()&&a<=this.results.lastIndex()&&this.results.remove(a,true);this.reindex();return b},getStreamForEvent:function(a){return this.hasResult({eventid:a.eventid})?this.getResult(a.eventid):new Liveshare.Stream(a)},getNewItems:function(a){a||(a={});if(this.firstTime!=undefined)$.extend(a,{prepend:true,minTime:this.firstTime});else{if(!this.bounds)return false;$.extend(a,{limit:Math.max(Liveshare.Config.MIN_REQUEST_SIZE,
this.bounds.last+1)})}return this.loadItems(a)},onQueryChanged:function(a,b){if(Object.toJSON(a)!==Object.toJSON(b)){this.reset();var c=a.method,d=a.type;if(d=="streams"){this.index=new ListIndex(this.results,"eventid");this.cache.index=new ListIndex(this.cache.results,"eventid")}else if(d=="items")if(c=="local"){this.index=null;this.cache.index=null}else{this.index=new ListIndex(this.results,"mediaid");this.cache.index=new ListIndex(this.cache.results,"mediaid")}else return;this.scheduleRequests()}},
onMethodChanged:function(){},onEventIDChanged:function(){},hasResult:function(a){if(!this.index)return false;return this.index.exists(a)},hasCacheResult:function(a){return this.cache.index.exists(a)},getResult:function(a){return this.index.get(a)},getCacheResult:function(a){return this.cache.index.get(a)},updateLastTime:function(a){if(!this.lastTime||a<this.lastTime)this.lastTime=a},updateFirstTime:function(a){if(!this.firstTime||a>this.firstTime)this.firstTime=a},loadItems:function(a){if(this.getState()==
"loading")return false;var b=this.getQuery(),c=Liveshare.Request.Factory(b);if(b.method=="nearby")if(!Liveshare.Config.current_position&&!(b.latitude&&b.longitude)){navigator.geolocation.getCurrentPosition(delegate(this,this.onGetCurrentPosition),delegate(this,this.onDenyCurrentPosition));return false}this.setRequest(c);this.context=a;if(c.send(a)){this.set("state","loading");return c}else{this.context=null;this.setRequest(null)}return false},onGetCurrentPosition:function(a){Liveshare.Config.current_position=
a;this.scheduleRequests()},onDenyCurrentPosition:function(){},scheduleRequests:function(){if(this.getState()=="loading")return false;if(!this.bounds)return false;if(this.bounds.length()==0)return false;var a=this.getQuery();if(a.type!="items")if(this.bounds.first<0)this.bounds.first=0;if(!this.lastTime&&!this.lastPage){var b={limit:Math.max(Liveshare.Config.MIN_REQUEST_SIZE,this.bounds.last+1)};return this.loadItems(b)}if(this.bounds.last>this.cache.results.lastIndex()&&!this.lastPage){b=this.bounds.last-
this.cache.results.lastIndex();b={limit:Math.max(Liveshare.Config.MIN_REQUEST_SIZE,b+1)};if(a.type=="items"||a.method=="mystreams")b.maxTime=this.lastTime+1E3;else b.offset=this.offset;return this.loadItems(b)}if(this.bounds.first<this.cache.results.firstIndex()&&!this.firstPage){a=this.cache.results.firstIndex()-this.bounds.first;b={limit:Math.max(Liveshare.Config.MIN_REQUEST_SIZE,a+1),minTime:this.firstTime,prepend:true};return this.loadItems(b)}return false},processNewItem:function(a){var b=this.getQuery();
a.item_type=="stream"&&a.items.length()==0&&a.provider.addPlaceholder();if(a.item_type=="stream"){var c=a.get("startdatetime");a=a.get("updatedatetime");b=b.method=="featured"?c:a;this.updateLastTime(b);this.updateFirstTime(b)}else if(a.item_type=="photo"){b=a.get("creationdatetime");this.updateLastTime(b);this.updateFirstTime(b)}},onResults:function(a,b,c){this.offset+=b.numResults;b.lastTime&&this.updateLastTime(b.lastTime);b.firstTime&&this.updateFirstTime(b.firstTime);switch(b.query.type){case "streams":for(a=
0;a<c.length;a++)this.addEvent(c[a]);break;case "items":if(this.addMediaItems(c)==0)if(this.context.prepend)this.firstPage=true;else this.lastPage=true}if(b.lastPage)if(this.context.prepend)this.firstPage=true;else this.lastPage=true;this.context=null;this.set("state","loaded");this.setRequest(null);this.scheduleRequests()==false&&this.set("state","ready")},onError:function(a,b){this.set("error",b.error);this.set("state","error");this.setRequest(null)},reindex:function(){for(var a=this.cache.results,
b=a.firstIndex();b<=a.lastIndex();b++)a.getItemAt(b).set("provider_index",b);this.syncCache()},addMediaItems:function(a){for(var b=this.cache.results.length(),c=a.length-1,d=0;d<=c;d++)this.addMediaItem(a[d]);return this.cache.results.length()-b},addMediaItem:function(a){var b=a.mediaid;if(a.deleted===true)this.hasCacheResult(a);else if(!(a.myflag>0))if(this.hasCacheResult(a)){b=this.getCacheResult(b);b.set("commentcount",a.commentcount);b.set("ranking",a.ranking);b.set("myranking",a.myranking);b.set("myflag",
a.myflag)}else{b=new Liveshare.PhotoItem(a);this.removePlaceholder();this.addPhotoItem(b)}},addPhotoItem:function(a){var b=false,c=a.get("creationdatetime"),d=this.cache.results.firstIndex(),e=this.cache.results.lastIndex();if(this.cache.results.length()==0)index=0;else if(c==this.firstTime&&this.firstTime==this.lastTime)index=e+1;else if(this.firstTime&&c>=this.firstTime)index=d-1;else if(this.lastTime&&c<=this.lastTime)index=e+1;else{b=d-1;for(d=d;d<e;d++){var f=this.cache.results.getItemAt(d);
if(c>f.get("creationdatetime"))break;b=d}index=b+1;b=true}a.set("provider_index",index);this.cache.results.insert(index,a);if(b){this.results.insert(index,a);this.reindex()}this.processNewItem(a);this.bounds&&index>=this.bounds.first&&index<=this.bounds.last&&!this.hasResult(a)&&this.copyFromCache(a)},addEvent:function(a){var b=this.getQuery().method=="mystreams"?a.updatedatetime:a.startdatetime,c=this.firstTime&&b>this.firstTime;if(this.hasCacheResult(a)){b=this.getCacheResult(a.eventid);c=b.get("provider_index")}else{b=
new Liveshare.Stream(a);c=c?this.cache.results.firstIndex()-1:this.cache.results.lastIndex()+1;b.set("provider_index",c);this.cache.results.insert(c,b)}var d=a.previews;d||(d=[]);a=b.provider;if(a.allow_updates_from_parent==false)return b;var e=Liveshare.Config.numPreviewsPerStack,f=a.firstItem();a.addMediaItems(d);for(var g=[],k=a.firstIndex(),n=a.lastIndex(),o=0,u=k;u<=n;u++){if(o>=d.length)break;var s=d[o];if(s.deleted||s.myflag){o++;u--}else{k=a.cache.results.getItemAt(u);if(k.get("mediaid")!=
s.mediaid)g.push({item:k,index:u});else o++}}if(g.length>0)for(d=0;d<g.length;d++){k=g[d].item;c=a.cache.results.indexOf(k);a.removeResultAt(c)}a.slice(a.firstIndex(),e);(g.length>0||f&&a.firstItem()!=f)&&$(b).triggerHandler("new_items");this.processNewItem(b);c>=this.bounds.first&&c<=this.bounds.last&&!this.hasResult(b)&&this.copyFromCache(b);return b},addPlaceholder:function(){var a=new Liveshare.Placeholder;a.set("provider_index",this.results.lastIndex()+1);if(!this.index.exists(a)){this.results.append(a);
this.updateLastTime(a.get("creationdatetime"));this.updateFirstTime(a.get("creationdatetime"))}},removePlaceholder:function(){this.results.length()==1&&this.results.firstItem().item_type=="placeholder"&&this.results.remove(this.results.firstIndex())},allowUpdatesFromParent:function(a){this.allow_updates_from_parent=a}})})();
var App={DEFAULT_TITLE:"Liveshare.com - photo sharing made simple.",PUBLIC_TITLE:"Public on Liveshare.com",MYSTREAMS_TITLE:"My Streams on Liveshare.com",TAB_MYSTREAMS:"following",TAB_PUBLIC:"public",TAB_CREATE:"create",TAB_NEARBY:"nearby",TAB_SEARCH:"search",Tasks:{toString:function(){return"App.Tasks"}},navContext:function(a,b){if(!b)a._parent=Nav.getContext();return new NavContext(a)},isHomePage:function(){var a=Nav.getContext();if(Nav.home_context&&a)return a.getSignature()==Nav.home_context.getSignature();
return false}},Thumb={toString:function(){return"Thumb"},Config:{LOAD_INTERVAL:10}},Stream={Config:{TRANSITION_ANIM_TIME:300,SCALE_THUMBS:true,ITEM_ASPECT:4/3,STACK_ASPECT:2,Entry:{SIZES:[64,128,256,512],THUMB_SIZE:256},Stack:{HOVER_DELAY:500,ITEM_BORDER:5,ANIM_TIME:300,NUM_PREVIEWS:3,ICON_SIZE:20,ITEM_SIZE:0.75,DEFAULT_SPREAD:0.1,PRESSED_SPREAD_FACTOR:0.5,HOVER_SPREAD_FACTOR:1.5,ROTATION_FACTOR:-3},Grid:{ITEM_BORDER:0,TARGET_ROW_HEIGHT:250,NUM_ROWS:3,MIN_ROWS:1,CELL_SPACING:0.1,OFFSCREEN_COLUMN_MULTIPLIER:1.5},
ItemSelected:{ITEM_BORDER:5}},Layouts:function(a){var b;switch(a){case "grid":b=Stream.Layouts.Grid;break;case "stack":b=Stream.Layouts.Stack;break;case "child_expanded":b=Stream.Layouts.ChildExpanded;break;case "item_selected":b=Stream.Layouts.ItemSelected}return b},Controllers:{},InputHandlers:{},Transitions:[],Tasks:{toString:function(){return"Stream.Tasks"}}},Link={};
Link.Controller=Class.create("Link.Controller",Controller,{initialize:function($super,b){$super();this.enabled=!b},enable:function(){this.enabled=true},disable:function(){this.enabled=false},attach:function($super,b){$super(b);this.bindEvent(b,"click",this.onClick)},onClick:function(){if(this.enabled==false)return false}});var Nav,NavContext;
(function(){NavContext=Class.create("NavContext",PropertyList,{toString:function(){return ObjectUtils.toString(this)},initialize:function($super,b){b||(b={});this.set("_sig","");this.set("_parent","");$super(b);this.makeSignature()},makeSignature:function(){var a=[],b=this.keys(),c;for(c in b){var d=b[c];if(!(d=="_sig"||d=="_parent")){var e=this.get(d);e!==undefined&&e!==""&&a.push([d,encodeURIComponent(e)].join("="))}}if(a=a.join("&"))a="&"+a;this.set("_sig",a.replace("%2C",","));return a},getSignature:function(){return this.get("_sig")},
setParent:function(a){this.set("_parent",a)},getParent:function(){return this.get("_parent")}});NavManager=Class.create("NavManager",PropertyList,{initialize:function($super){$super({current_context:null,title:"loading"});this.allow_title_update=false;this.home_context=new NavContext;bind({source:new DataPin(this,"current_context"),sink:delegate(this,this.contextChange)})},setTitle:function(a){this.get("current_context").set("title",a);if(this.allow_title_update)document.title=a},prevContext:function(){return this.get("prev_context")},
getContext:function(){return this.get("current_context")},setContext:function(a,b){if(a){var c=a.getSignature(),d=this.get("current_context");if(!(d&&d.getSignature()==a.getSignature())){this.set("current_context",a);if(window.location.hash=="#"+c||!window.location.hash&&!c)$(this).trigger("change",[a,d]);else if(b)window.location.replace(server_vars.base_url+"/#"+c);else window.location.hash=c}}else error("undefined context")},parseHash:function(a){var b={};a=a.split("&");for(var c=0;c<a.length;c++){var d=
a[c].split("=");if(d.length==2){var e=d[0];d=decodeURIComponent(d[1]);e=="_sig"||e=="_parent"||(b[e]=d)}}return new NavContext(b)},appendContext:function(a){a._parent=this.get("current_context");this.setContext(a)},getTitle:function(){return this.get("title")},setInitialContext:function(){$(window).bind("hashchange",delegate(this,this.hashChange));this.getContext()||window.location.hash&&this.setContext(this.parseHash(window.location.hash));this.getContext()||this.setContext(this.home_context)},hashChange:function(){if(this.inChange()){var a=
this;this.afterChange(function(){a.hashChange()})}else{var b=this.parseHash(window.location.hash),c=this.getContext();if(!c||b.getSignature()!=c.getSignature()){var d=this.prevContext();if(d&&b.getSignature()==d.getSignature())b=d;else if(c&&c.getParent()&&c.getParent().getSignature()==b.getSignature())b=c.getParent();this.set("current_context",b)}this.allow_title_update=true;c=this.getContext();if(b=c.get("title"))document.title=b;$(this).trigger("change",[this.get("current_context"),this.get("prev_context")])}},
contextChange:function(a,b){this.set("prev_context",b);this.allow_title_update=false},back:function(a){a||(a=1);for(var b=this.getContext(),c=0;c<a;c++){b=b.getParent();if(!b)return false}this.set("current_context",b);history.go(-a);return true},beginChange:function(){this.set("in_change",true)},endChange:function(){this.set("in_change",false);var a=this.get("after_change_queue");if(a&&a.length>0)for(;a.length>0;){var b=a.shift();b&&b();if(this.inChange())break}},inChange:function(){return this.get("in_change")},
afterChange:function(a){if(this.inChange()){queue=this.get("after_change_queue");if(!queue){queue=[];this.set("after_change_queue",queue)}queue.push(a)}else a&&a()}});Nav=new NavManager;Nav.Controller=Class.create("Nav.Controller",Controller,{initialize:function($super){$super();this.after_nav_queue=[]},attach:function($super,b){$super(b)},detach:function($super){$super()},added:function(){this.bindProp(Nav,"current_context",this.onNavContextChange);this.bindEvent(Nav,"change",this.onNavChange);this.onNavChange(undefined,
Nav.getContext())},onNavContextChange:function(){},onNavChange:function(a,b,c){Nav.beginChange();var d=this;this.$elem.afterTransition(function(){b===Nav.getContext()&&d.handleNavChange(b,c,function(){Nav.endChange()})})},handleNavChange:function(a,b,c){c&&c()}})})();
(function(){App.Tasks.GetNotifications=Class.create("App.Tasks.GetNotifications",Task,{initialize:function($super){$super(delegate(this,this.mainFunc),"App.Tasks.GetNotifications")},mainFunc:function(a){Liveshare.API.GetNotifications(a)}});App.Tasks.LoadImage=Class.create("App.Tasks.LoadImage",Task,{initialize:function($super,b){$super(delegate(this,this.mainFunc),"App.Tasks.LoadImage");this.url=b},mainFunc:function(a){this.loader=new Thumb.Loader(this.url);this.loader.load(a)}});App.Tasks.ClientInfo=
Class.create("App.Tasks.ClientInfo",Task,{initialize:function($super,b){$super(delegate(this,this.mainFunc),"App.Tasks.ClientInfo");this.model=b},mainFunc:function(a){var b=this;$.ajax({url:server_vars.base_url+"/api/clientinfo",success:function(c){Liveshare.Config.apiEndpoint=c.ls_endpoint;server_vars.accesstoken=c.accesstoken;server_vars.authenticated=c.authenticated;b.model.set("authenticated",server_vars.authenticated);var d=c.ls_user;if(d){var e=Liveshare.MyUser;e.set("userid",d.userid);e.set("firstname",
d.firstname);e.set("lastname",d.lastname);e.set("imageurl",d.imageurl);e.set("authenticated",c.authenticated)}},error:function(){},complete:function(){a&&a()},async:true})}});App.Tasks.RefreshStreamDetails=Class.create("App.Tasks.RefreshStreamDetails",Task,{initialize:function($super,b){$super(delegate(this,this.mainFunc),"App.Tasks.RefreshStreamDetails: "+b.get("eventid"));this.stream=b},mainFunc:function(a){var b=this.stream.get("eventid"),c=this;LiveshareAPI.GetStreamDetails(b,{},function(d){var e=
d.result,f=e.returncode;if(f==16777218)c.stream.set("access",Item.Access.NEED_LOGIN);else if(f!=0)c.stream.set("access",Item.Access.ERROR);else(e=e.event[0])?c.stream.parseEvent(e,d.token):c.stream.set("access",Item.Access.ERROR);a&&a()})}});App.Tasks.RefreshStreamItems=Class.create("App.Tasks.RefreshStreamItems",Task,{initialize:function($super,b){$super(delegate(this,this.mainFunc),"App.Tasks.RefreshStreamItems: "+b.get("eventid"));this.stream=b},mainFunc:function(a){var b=this.stream.get("eventid"),
c=this.stream.provider;if(c.getQuery().method!="items")a&&a();else{for(var d=c.results,e=d.length(),f="",g=d.firstIndex();g<=d.lastIndex();g++){var k=d.getItemAt(g);if(k.item_type=="photo"){if(f!="")f+=",";f+=k.get("mediaid")}}if(f)LiveshareAPI.GetActivityStream({eventid:b,mediaids:f,limit:e},function(n){n=n.result;if(n.returncode==0){n=n.media;for(var o=0;o<n.length;o++){var u=n[o],s=c.getResult(u.mediaid);if(s){s.set("myranking",u.myranking);s.set("myflag",u.myflag)}}}a&&a()});else a&&a()}}});App.Tasks.RefreshStreamComments=
Class.create("App.Tasks.RefreshStreamComments",Task,{initialize:function($super,b){$super(delegate(this,this.mainFunc),"App.Tasks.RefreshStreamComments: "+b.get("eventid"));this.stream=b},mainFunc:function(a){var b=this.stream.items.firstIndex(),c=this.stream.items.lastIndex();for(b=b;b<c;b++){var d=this.stream.items.getItemAt(b);d.hasComments()&&this.then(new App.Tasks.RefreshItemComments(d))}a&&a()}});App.Tasks.RefreshItemComments=Class.create("App.Tasks.RefreshItemComments",Task,{initialize:function($super,
b){$super(delegate(this,this.mainFunc),"App.Tasks.RefreshItemComments: "+b.get("mediaid"));this.item=b},mainFunc:function(a){var b=this;LiveshareAPI.GetMediaComments(this.item.get("mediaid"),{},function(c){c=c.result.comment;for(var d=c.length,e=0;e<d;e++){var f=c[e];b.item.comments_index.exists(f)&&b.item.getCommentById(f.commentid).set("myflag",f.myflag)}a&&a()})}})})();
(function(){Thumb.Loader=Class.create("Thumb.Loader",PropertyList,{initialize:function($super,b){$super();this.url=b},load:function(a){this.callback=a;this.props={};var b=this;this.img=new Image;this.img.onload=function(){b.onLoad(this.width,this.height)};this.img.onerror=function(){};this.img.src=this.url;return this.props},onLoad:function(a,b){this.img=undefined;this.props.width=a;this.props.height=b;this.props.aspect=this.props.width/this.props.height;this.callback&&this.callback(this.props)}})})();
(function(){Thumb.Controller=Class.create("Thumb.Controller",Layout.Controller,{initialize:function($super){$super("thumb")},attach:function($super,b){$super(b)},onMouseDown:function(){return false},layout:function(a,b){b&&b()}})})();
(function(){Thumb.Mapper=Class.create("Thumb.Mapper",Template.Mapper,{initialize:function($super,b,c,d){$super(b,c,d);this.loaders={}},attach:function($super,b){$super(b)},loadThumb:function(a){var b=a.item,c=b.get("thumb_url"),d=a.index,e=new Thumb.Loader(c);this.loaders[c]=e;var f=this;e.load(function(g){b.thumb_props=g;a.loaded=true;a.removed||f.invokeTemplate(d,b);delete f.loaders[c]})},invokeTemplate:function($super,b,c){if(!this.options.wait_for_thumb_load||c.hasOwnProperty("thumb_url")==false||
c.thumb_props!=undefined)$super(b,c);else{var d=this.items.getItemAt(b);if(c.get("thumb_url"))this.loadThumb(d);else{var e=$(c),f=this,g=function(){if(c.get("thumb_url")){e.unbind("thumb_url",g);f.loadThumb(d)}};e.bind("thumb_url",g)}}}})})();Template.Cache["/src/app/thumb/thumb.template"]=function(a){var b=a.data;a=a.attach;var c=[];c.push("",a("controller",new Thumb.Controller)," <img",b.css_class?' class="'+b.css_class+'"':"",' src="',b.url,'">');return c.join("")};
(function(){function a(){this.returnValue=false}function b(){this.cancelBubble=true}var c=0,d=[],e={},f={},g={"<":"lt",">":"gt","&":"amp",'"':"quot","'":"#39"},k=/[<>&\"\']/g,n=window.setTimeout,o={},u;(function(h){h=h.split(/,/);var m,r,p;for(m=0;m<h.length;m+=2){p=h[m+1].split(/ /);for(r=0;r<p.length;r++)f[p[r]]=h[m]}})("application/msword,doc dot,application/pdf,pdf,application/pgp-signature,pgp,application/postscript,ps ai eps,application/rtf,rtf,application/vnd.ms-excel,xls xlb,application/vnd.ms-powerpoint,ppt pps pot,application/zip,zip,application/x-shockwave-flash,swf swfl,application/vnd.openxmlformats,docx pptx xlsx,audio/mpeg,mpga mpega mp2 mp3,audio/x-wav,wav,audio/mp4,m4a,image/bmp,bmp,image/gif,gif,image/jpeg,jpeg jpg jpe,image/photoshop,psd,image/png,png,image/svg+xml,svg svgz,image/tiff,tiff tif,text/html,htm html xhtml,text/rtf,rtf,video/mpeg,mpeg mpg mpe,video/quicktime,qt mov,video/mp4,mp4,video/x-m4v,m4v,video/x-flv,flv,video/x-ms-wmv,wmv,video/avi,avi,video/webm,webm,video/vnd.rn-realvideo,rv,text/csv,csv,text/plain,asc txt text diff log,application/octet-stream,exe");
var s={VERSION:"1.5b",STOPPED:1,STARTED:2,QUEUED:1,UPLOADING:2,FAILED:4,DONE:5,GENERIC_ERROR:-100,HTTP_ERROR:-200,IO_ERROR:-300,SECURITY_ERROR:-400,INIT_ERROR:-500,FILE_SIZE_ERROR:-600,FILE_EXTENSION_ERROR:-601,IMAGE_FORMAT_ERROR:-700,IMAGE_MEMORY_ERROR:-701,IMAGE_DIMENSIONS_ERROR:-702,mimeTypes:f,extend:function(h){s.each(arguments,function(m,r){r>0&&s.each(m,function(p,l){h[l]=p})});return h},cleanName:function(h){var m,r;r=[/[\300-\306]/g,"A",/[\340-\346]/g,"a",/\307/g,"C",/\347/g,"c",/[\310-\313]/g,
"E",/[\350-\353]/g,"e",/[\314-\317]/g,"I",/[\354-\357]/g,"i",/\321/g,"N",/\361/g,"n",/[\322-\330]/g,"O",/[\362-\370]/g,"o",/[\331-\334]/g,"U",/[\371-\374]/g,"u"];for(m=0;m<r.length;m+=2)h=h.replace(r[m],r[m+1]);h=h.replace(/\s+/g,"_");return h=h.replace(/[^a-z0-9_\-\.]+/gi,"")},addRuntime:function(h,m){m.name=h;d[h]=m;d.push(m);return m},guid:function(){var h=(new Date).getTime().toString(32),m;for(m=0;m<5;m++)h+=Math.floor(Math.random()*65535).toString(32);return(s.guidPrefix||"p")+h+(c++).toString(32)},
buildUrl:function(h,m){var r="";s.each(m,function(p,l){r+=(r?"&":"")+encodeURIComponent(l)+"="+encodeURIComponent(p)});if(r)h+=(h.indexOf("?")>0?"&":"?")+r;return h},each:function(h,m){var r,p;if(h){r=h.length;if(r===void 0)for(p in h){if(h.hasOwnProperty(p))if(m(h[p],p)===false)break}else for(p=0;p<r;p++)if(m(h[p],p)===false)break}},formatSize:function(h){if(h===void 0||/\D/.test(h))return s.translate("N/A");if(h>1073741824)return Math.round(h/1073741824,1)+" GB";if(h>1048576)return Math.round(h/
1048576,1)+" MB";if(h>1024)return Math.round(h/1024,1)+" KB";return h+" b"},getPos:function(h,m){function r(v){var q,t=0;q=0;if(v){q=v.getBoundingClientRect();v=w.compatMode==="CSS1Compat"?w.documentElement:w.body;t=q.left+v.scrollLeft;q=q.top+v.scrollTop}return{x:t,y:q}}var p=0,l=0,j,w=document;h=h;m=m||w.body;if(h&&h.getBoundingClientRect&&navigator.userAgent.indexOf("MSIE")>0&&w.documentMode!==8){p=r(h);l=r(m);return{x:p.x-l.x,y:p.y-l.y}}for(j=h;j&&j!=m&&j.nodeType;){p+=j.offsetLeft||0;l+=j.offsetTop||
0;j=j.offsetParent}for(j=h.parentNode;j&&j!=m&&j.nodeType;){p-=j.scrollLeft||0;l-=j.scrollTop||0;j=j.parentNode}return{x:p,y:l}},getSize:function(h){return{w:h.offsetWidth||h.clientWidth,h:h.offsetHeight||h.clientHeight}},parseSize:function(h){var m;if(typeof h=="string"){h=/^([0-9]+)([mgk]?)$/.exec(h.toLowerCase().replace(/[^0-9mkg]/g,""));m=h[2];h=+h[1];if(m=="g")h*=1073741824;if(m=="m")h*=1048576;if(m=="k")h*=1024}return h},xmlEncode:function(h){return h?(""+h).replace(k,function(m){return g[m]?
"&"+g[m]+";":m}):h},toArray:function(h){var m,r=[];for(m=0;m<h.length;m++)r[m]=h[m];return r},addI18n:function(h){return s.extend(e,h)},translate:function(h){return e[h]||h},isEmptyObj:function(h){if(h===void 0)return true;for(var m in h)return false;return true},hasClass:function(h,m){if(h.className=="")return false;return RegExp("(^|\\s+)"+m+"(\\s+|$)").test(h.className)},addClass:function(h,m){if(!s.hasClass(h,m))h.className=h.className==""?m:h.className.replace(/\s+$/,"")+" "+m},removeClass:function(h,
m){h.className=h.className.replace(RegExp("(^|\\s+)"+m+"(\\s+|$)"),function(r,p,l){return p===" "&&l===" "?" ":""})},getStyle:function(h,m){if(h.currentStyle)return h.currentStyle[m];else if(window.getComputedStyle)return window.getComputedStyle(h,null)[m]},addEvent:function(h,m,r,p){var l;m=m.toLowerCase();if(u===void 0)u="Plupload_"+s.guid();if(h.addEventListener){l=r;h.addEventListener(m,l,false)}else if(h.attachEvent){l=function(){var j=window.event;if(!j.target)j.target=j.srcElement;j.preventDefault=
a;j.stopPropagation=b;r(j)};h.attachEvent("on"+m,l)}if(h[u]===void 0)h[u]=s.guid();o.hasOwnProperty(h[u])||(o[h[u]]={});h=o[h[u]];h.hasOwnProperty(m)||(h[m]=[]);h[m].push({func:l,orig:r,key:p})},removeEvent:function(h,m,r){var p,l;if(typeof r=="function")p=r;else l=r;m=m.toLowerCase();if(h[u]&&o[h[u]]&&o[h[u]][m]){r=o[h[u]][m];for(var j=r.length-1;j>=0;j--)if(r[j].key===l||r[j].orig===p){if(h.detachEvent)h.detachEvent("on"+m,r[j].func);else h.removeEventListener&&h.removeEventListener(m,r[j].func,
false);r[j].orig=null;r[j].func=null;r.splice(j,1);if(p!==void 0)break}r.length||delete o[h[u]][m];if(s.isEmptyObj(o[h[u]])){delete o[h[u]];try{delete h[u]}catch(w){h[u]=void 0}}}},removeAllEvents:function(h,m){h[u]===void 0||!h[u]||s.each(o[h[u]],function(r,p){s.removeEvent(h,p,m)})}};s.Uploader=function(h){function m(){var v,q=0,t;if(this.state==s.STARTED){for(t=0;t<j.length;t++)if(!v&&j[t].status==s.QUEUED){v=j[t];v.status=s.UPLOADING;this.trigger("BeforeUpload",v)&&this.trigger("UploadFile",v)}else q++;
if(q==j.length){this.trigger("UploadComplete",j);this.stop()}}}function r(){var v,q;l.reset();for(v=0;v<j.length;v++){q=j[v];if(q.size!==void 0){l.size+=q.size;l.loaded+=q.loaded}else l.size=void 0;if(q.status==s.DONE)l.uploaded++;else if(q.status==s.FAILED)l.failed++;else l.queued++}if(l.size===void 0)l.percent=j.length>0?Math.ceil(l.uploaded/j.length*100):0;else{l.bytesPerSec=Math.ceil(l.loaded/((+new Date-w||1)/1E3));l.percent=l.size>0?Math.ceil(l.loaded/l.size*100):0}}var p={},l,j=[],w;l=new s.QueueProgress;
h=s.extend({chunk_size:0,multipart:true,multi_selection:true,file_data_name:"file",filters:[]},h);s.extend(this,{state:s.STOPPED,runtime:"",features:{},files:j,settings:h,total:l,id:s.guid(),init:function(){function v(){var B=x[y++],D,F,H;if(B){D=B.getFeatures();if(F=q.settings.required_features){F=F.split(",");for(H=0;H<F.length;H++)if(!D[F[H]]){v();return}}B.init(q,function(U){if(U&&U.success){q.features=D;q.runtime=B.name;q.trigger("Init",{runtime:B.name});q.trigger("PostInit");q.refresh()}else v()})}else q.trigger("Error",
{code:s.INIT_ERROR,message:s.translate("Init error.")})}var q=this,t,x,y=0,z;typeof h.preinit=="function"?h.preinit(q):s.each(h.preinit,function(B,D){q.bind(D,B)});h.page_url=h.page_url||document.location.pathname.replace(/\/[^\/]+$/g,"/");if(!/^(\w+:\/\/|\/)/.test(h.url))h.url=h.page_url+h.url;h.chunk_size=s.parseSize(h.chunk_size);h.max_file_size=s.parseSize(h.max_file_size);q.bind("FilesAdded",function(B,D){var F,H,U=0,W;if((F=h.filters)&&F.length){W=[];s.each(F,function(X){s.each(X.extensions.split(/,/),
function(aa){/^\s*\*\s*$/.test(aa)?W.push("\\.*"):W.push("\\."+aa.replace(RegExp("["+"/^$.*+?|()[]{}\\".replace(/./g,"\\$&")+"]","g"),"\\$&"))})});W=RegExp(W.join("|")+"$","i")}for(F=0;F<D.length;F++){H=D[F];H.loaded=0;H.percent=0;H.status=s.QUEUED;if(W&&!W.test(H.name))B.trigger("Error",{code:s.FILE_EXTENSION_ERROR,message:s.translate("File extension error."),file:H});else if(H.size!==void 0&&H.size>h.max_file_size)B.trigger("Error",{code:s.FILE_SIZE_ERROR,message:s.translate("File size error."),
file:H});else{j.push(H);U++}}if(U)n(function(){q.trigger("QueueChanged");q.refresh()},1);else return false});h.unique_names&&q.bind("UploadFile",function(B,D){var F=D.name.match(/\.([^.]+)$/),H="tmp";if(F)H=F[1];D.target_name=D.id+"."+H});q.bind("UploadProgress",function(B,D){D.percent=D.size>0?Math.ceil(D.loaded/D.size*100):100;r()});q.bind("StateChanged",function(B){if(B.state==s.STARTED)w=+new Date;else if(B.state==s.STOPPED)for(t=B.files.length-1;t>=0;t--)if(B.files[t].status==s.UPLOADING){B.files[t].status=
s.QUEUED;r()}});q.bind("QueueChanged",r);q.bind("Error",function(B,D){if(D.file){D.file.status=s.FAILED;r();B.state==s.STARTED&&n(function(){m.call(q)},1)}});q.bind("FileUploaded",function(B,D){D.status=s.DONE;D.loaded=D.size;B.trigger("UploadProgress",D);n(function(){m.call(q)},1)});if(h.runtimes){x=[];z=h.runtimes.split(/\s?,\s?/);for(t=0;t<z.length;t++)d[z[t]]&&x.push(d[z[t]])}else x=d;v();typeof h.init=="function"?h.init(q):s.each(h.init,function(B,D){q.bind(D,B)})},refresh:function(){this.trigger("Refresh")},
start:function(){if(this.state!=s.STARTED){this.state=s.STARTED;this.trigger("StateChanged");m.call(this)}},stop:function(){if(this.state!=s.STOPPED){this.state=s.STOPPED;this.trigger("StateChanged")}},getFile:function(v){var q;for(q=j.length-1;q>=0;q--)if(j[q].id===v)return j[q]},removeFile:function(v){var q;for(q=j.length-1;q>=0;q--)if(j[q].id===v.id)return this.splice(q,1)[0]},splice:function(v,q){var t;t=j.splice(v===void 0?0:v,q===void 0?j.length:q);this.trigger("FilesRemoved",t);this.trigger("QueueChanged");
return t},trigger:function(v){var q=p[v.toLowerCase()],t,x;if(q){x=Array.prototype.slice.call(arguments);x[0]=this;for(t=0;t<q.length;t++)if(q[t].func.apply(q[t].scope,x)===false)return false}return true},hasEventListener:function(v){return!!p[v.toLowerCase()]},bind:function(v,q,t){var x;v=v.toLowerCase();x=p[v]||[];x.push({func:q,scope:t||this});p[v]=x},unbind:function(v,q){v=v.toLowerCase();var t=p[v],x;if(t){if(q!==void 0)for(x=t.length-1;x>=0;x--){if(t[x].func===q){t.splice(x,1);break}}else t=
[];t.length||delete p[v]}},unbindAll:function(){var v=this;s.each(p,function(q,t){v.unbind(t)})},destroy:function(){this.trigger("Destroy");this.unbindAll()}})};s.File=function(h,m,r){this.id=h;this.name=m;this.size=r;this.status=this.percent=this.loaded=0};s.Runtime=function(){this.getFeatures=function(){};this.init=function(){}};s.QueueProgress=function(){var h=this;h.size=0;h.loaded=0;h.uploaded=0;h.failed=0;h.queued=0;h.percent=0;h.bytesPerSec=0;h.reset=function(){h.size=h.loaded=h.uploaded=h.failed=
h.queued=h.percent=h.bytesPerSec=0}};s.runtimes={};window.plupload=s})();window.plupload=window.plupload;
(function(a,b,c,d){function e(h,m){var r;if("FileReader"in a){r=new FileReader;r.readAsDataURL(h);r.onload=function(){m(r.result)}}else return m(h.getAsDataURL())}function f(h,m){var r;if("FileReader"in a){r=new FileReader;r.readAsBinaryString(h);r.onload=function(){m(r.result)}}else return m(h.getAsBinary())}function g(h,m,r,p){var l,j,w,v,q=this;e(u[h.id],function(t){l=b.createElement("canvas");l.style.display="none";b.body.appendChild(l);j=l.getContext("2d");w=new Image;w.onerror=w.onabort=function(){p({success:false})};
w.onload=function(){var x,y,z,B;if(!m.width)m.width=w.width;if(!m.height)m.height=w.height;v=Math.min(m.width/w.width,m.height/w.height);if(v<1||v===1&&r==="image/jpeg"){x=Math.round(w.width*v);y=Math.round(w.height*v);l.width=x;l.height=y;j.drawImage(w,0,0,x,y);if(r==="image/jpeg"){z=new n(atob(t.substring(t.indexOf("base64,")+7)));if(z.headers&&z.headers.length){B=new o;if(B.init(z.get("exif")[0])){B.setExif("PixelXDimension",x);B.setExif("PixelYDimension",y);z.set("exif",B.getBinary());q.hasEventListener("ExifData")&&
q.trigger("ExifData",h,B.EXIF());q.hasEventListener("GpsData")&&q.trigger("GpsData",h,B.GPS())}}if(m.quality)try{t=l.toDataURL(r,m.quality/100)}catch(D){t=l.toDataURL(r)}}else t=l.toDataURL(r);t=t.substring(t.indexOf("base64,")+7);t=atob(t);if(z&&z.headers&&z.headers.length){t=z.restore(t);z.purge()}l.parentNode.removeChild(l);p({success:true,data:t})}else p({success:false})};w.src=t})}function k(){function h(l,j){var w=r?0:-8*(j-1),v=0,q;for(q=0;q<j;q++)v|=p.charCodeAt(l+q)<<Math.abs(w+q*8);return v}
function m(l,j,w){w=arguments.length===3?w:p.length-j-1;p=p.substr(0,j)+l+p.substr(w+j)}var r=false,p;return{II:function(l){if(l===d)return r;else r=l},init:function(l){r=false;p=l},SEGMENT:function(l,j,w){switch(arguments.length){case 1:return p.substr(l,p.length-l-1);case 2:return p.substr(l,j);case 3:m(w,l,j);break;default:return p}},BYTE:function(l){return h(l,1)},SHORT:function(l){return h(l,2)},LONG:function(l,j){if(j===d)return h(l,4);else{var w="",v=r?0:-24,q;for(q=0;q<4;q++)w+=String.fromCharCode(j>>
Math.abs(v+q*8)&255);m(w,l,4)}},SLONG:function(l){l=h(l,4);return l>2147483647?l-4294967296:l},STRING:function(l,j){var w="";for(j+=l;l<j;l++)w+=String.fromCharCode(h(l,1));return w}}}function n(h){var m={65505:{app:"EXIF",name:"APP1",signature:"Exif\u0000"},65506:{app:"ICC",name:"APP2",signature:"ICC_PROFILE\u0000"},65517:{app:"IPTC",name:"APP13",signature:"Photoshop 3.0\u0000"}},r=[],p,l,j=d,w=0;p=new k;p.init(h);if(p.SHORT(0)===65496){l=2;for(h=Math.min(1048576,h.length);l<=h;){j=p.SHORT(l);if(j>=
65488&&j<=65495)l+=2;else{if(j===65498||j===65497)break;w=p.SHORT(l+2)+2;m[j]&&p.STRING(l+4,m[j].signature.length)===m[j].signature&&r.push({hex:j,app:m[j].app.toUpperCase(),name:m[j].name.toUpperCase(),start:l,length:w,segment:p.SEGMENT(l,w)});l+=w}}p.init(null);return{headers:r,restore:function(v){p.init(v);var q=new n(v);if(!q.headers)return false;for(v=q.headers.length;v>0;v--){var t=q.headers[v-1];p.SEGMENT(t.start,t.length,"")}q.purge();l=p.SHORT(2)==65504?4+p.SHORT(4):2;v=0;for(q=r.length;v<
q;v++){p.SEGMENT(l,0,r[v].segment);l+=r[v].length}return p.SEGMENT()},get:function(v){for(var q=[],t=0,x=r.length;t<x;t++)r[t].app===v.toUpperCase()&&q.push(r[t].segment);return q},set:function(v,q){var t=[];if(typeof q==="string")t.push(q);else t=q;for(var x=ii=0,y=r.length;x<y;x++){if(r[x].app===v.toUpperCase()){r[x].segment=t[ii];r[x].length=t[ii].length;ii++}if(ii>=t.length)break}},purge:function(){r=[];p.init(null)}}}}function o(){function h(j,w){var v=m.SHORT(j),q,t,x,y,z,B=[],D={};for(q=0;q<
v;q++){z=j+12*q+2;x=w[m.SHORT(z)];if(x!==d){t=m.SHORT(z+=2);y=m.LONG(z+=2);z+=4;B=[];switch(t){case 1:case 7:if(y>4)z=m.LONG(z)+p.tiffHeader;for(t=0;t<y;t++)B[t]=m.BYTE(z+t);break;case 2:if(y>4)z=m.LONG(z)+p.tiffHeader;D[x]=m.STRING(z,y-1);continue;case 3:if(y>2)z=m.LONG(z)+p.tiffHeader;for(t=0;t<y;t++)B[t]=m.SHORT(z+t*2);break;case 4:if(y>1)z=m.LONG(z)+p.tiffHeader;for(t=0;t<y;t++)B[t]=m.LONG(z+t*4);break;case 5:z=m.LONG(z)+p.tiffHeader;for(t=0;t<y;t++)B[t]=m.LONG(z+t*4)/m.LONG(z+t*4+4);break;case 9:z=
m.LONG(z)+p.tiffHeader;for(t=0;t<y;t++)B[t]=m.SLONG(z+t*4);break;case 10:z=m.LONG(z)+p.tiffHeader;for(t=0;t<y;t++)B[t]=m.SLONG(z+t*4)/m.SLONG(z+t*4+4);break;default:continue}y=y==1?B[0]:B;D[x]=l.hasOwnProperty(x)&&typeof y!="object"?l[x][y]:y}}return D}var m,r,p={},l;m=new k;r={tiff:{274:"Orientation",34665:"ExifIFDPointer",34853:"GPSInfoIFDPointer"},exif:{36864:"ExifVersion",40961:"ColorSpace",40962:"PixelXDimension",40963:"PixelYDimension",36867:"DateTimeOriginal",33434:"ExposureTime",33437:"FNumber",
34855:"ISOSpeedRatings",37377:"ShutterSpeedValue",37378:"ApertureValue",37383:"MeteringMode",37384:"LightSource",37385:"Flash",41986:"ExposureMode",41987:"WhiteBalance",41990:"SceneCaptureType",41988:"DigitalZoomRatio",41992:"Contrast",41993:"Saturation",41994:"Sharpness"},gps:{0:"GPSVersionID",1:"GPSLatitudeRef",2:"GPSLatitude",3:"GPSLongitudeRef",4:"GPSLongitude"}};l={ColorSpace:{1:"sRGB",0:"Uncalibrated"},MeteringMode:{0:"Unknown",1:"Average",2:"CenterWeightedAverage",3:"Spot",4:"MultiSpot",5:"Pattern",
6:"Partial",255:"Other"},LightSource:{1:"Daylight",2:"Fliorescent",3:"Tungsten",4:"Flash",9:"Fine weather",10:"Cloudy weather",11:"Shade",12:"Daylight fluorescent (D 5700 - 7100K)",13:"Day white fluorescent (N 4600 -5400K)",14:"Cool white fluorescent (W 3900 - 4500K)",15:"White fluorescent (WW 3200 - 3700K)",17:"Standard light A",18:"Standard light B",19:"Standard light C",20:"D55",21:"D65",22:"D75",23:"D50",24:"ISO studio tungsten",255:"Other"},Flash:{0:"Flash did not fire.",1:"Flash fired.",5:"Strobe return light not detected.",
7:"Strobe return light detected.",9:"Flash fired, compulsory flash mode",13:"Flash fired, compulsory flash mode, return light not detected",15:"Flash fired, compulsory flash mode, return light detected",16:"Flash did not fire, compulsory flash mode",24:"Flash did not fire, auto mode",25:"Flash fired, auto mode",29:"Flash fired, auto mode, return light not detected",31:"Flash fired, auto mode, return light detected",32:"No flash function",65:"Flash fired, red-eye reduction mode",69:"Flash fired, red-eye reduction mode, return light not detected",
71:"Flash fired, red-eye reduction mode, return light detected",73:"Flash fired, compulsory flash mode, red-eye reduction mode",77:"Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected",79:"Flash fired, compulsory flash mode, red-eye reduction mode, return light detected",89:"Flash fired, auto mode, red-eye reduction mode",93:"Flash fired, auto mode, return light not detected, red-eye reduction mode",95:"Flash fired, auto mode, return light detected, red-eye reduction mode"},
ExposureMode:{0:"Auto exposure",1:"Manual exposure",2:"Auto bracket"},WhiteBalance:{0:"Auto white balance",1:"Manual white balance"},SceneCaptureType:{0:"Standard",1:"Landscape",2:"Portrait",3:"Night scene"},Contrast:{0:"Normal",1:"Soft",2:"Hard"},Saturation:{0:"Normal",1:"Low saturation",2:"High saturation"},Sharpness:{0:"Normal",1:"Soft",2:"Hard"},GPSLatitudeRef:{N:"North latitude",S:"South latitude"},GPSLongitudeRef:{E:"East longitude",W:"West longitude"}};return{init:function(j){p={tiffHeader:10};
if(j===d||!j.length)return false;m.init(j);if(m.SHORT(0)===65505&&m.STRING(4,5).toUpperCase()==="EXIF\u0000"){j=d;j=p.tiffHeader;m.II(m.SHORT(j)==18761);if(m.SHORT(j+=2)!==42)j=false;else{p.IFD0=p.tiffHeader+m.LONG(j+2);j=h(p.IFD0,r.tiff);p.exifIFD="ExifIFDPointer"in j?p.tiffHeader+j.ExifIFDPointer:d;p.gpsIFD="GPSInfoIFDPointer"in j?p.tiffHeader+j.GPSInfoIFDPointer:d;j=true}return j}return false},EXIF:function(){var j;j=h(p.exifIFD,r.exif);if(j.ExifVersion)j.ExifVersion=String.fromCharCode(j.ExifVersion[0],
j.ExifVersion[1],j.ExifVersion[2],j.ExifVersion[3]);return j},GPS:function(){var j;j=h(p.gpsIFD,r.gps);if(j.GPSVersionID)j.GPSVersionID=j.GPSVersionID.join(".");return j},setExif:function(j,w){if(j!=="PixelXDimension"&&j!=="PixelYDimension")return false;var v;v=j;var q,t,x,y=0;if(typeof v==="string"){q=r["exif".toLowerCase()];for(hex in q)if(q[hex]===v){v=hex;break}}q=p["exif".toLowerCase()+"IFD"];t=m.SHORT(q);for(i=0;i<t;i++){x=q+12*i+2;if(m.SHORT(x)==v){y=x+8;break}}if(y){m.LONG(y,w);v=true}else v=
false;return v},getBinary:function(){return m.SEGMENT()}}}var u={},s;c.runtimes.Html5=c.addRuntime("html5",{getFeatures:function(){var h,m,r,p,l,j,w;w=function(){var v=navigator,q=v.userAgent,t=v.vendor,x,y;y=(x=/WebKit/.test(q))&&t.indexOf("Apple")!==-1;t=a.opera&&a.opera.buildNumber;return{ie:!x&&!t&&/MSIE/gi.test(q)&&/Explorer/gi.test(v.appName),webkit:x,gecko:!x&&/Gecko/.test(q),safari:y,safariwin:y&&navigator.platform.indexOf("Win")!==-1,opera:!!t}}();m=r=l=j=false;if(a.XMLHttpRequest){h=new XMLHttpRequest;
r=!!h.upload;m=!!(h.sendAsBinary||h.upload)}if(m){p=!!(h.sendAsBinary||a.Uint8Array&&a.ArrayBuffer);l=!!(File&&(File.prototype.getAsDataURL||a.FileReader)&&p);j=!!(File&&(File.prototype.mozSlice||File.prototype.webkitSlice||File.prototype.slice))}s=w.safariwin;return{html5:m,dragdrop:function(){var v=b.createElement("div");return"draggable"in v||"ondragstart"in v&&"ondrop"in v}(),jpgresize:l,pngresize:l,multipart:l||!!a.FileReader||!!a.FormData,canSendBinary:p,cantSendBlobInFormData:!!(w.gecko&&a.FormData&&
a.FileReader&&!FileReader.prototype.readAsArrayBuffer),progress:r,chunks:j,triggerDialog:w.gecko&&a.FormData||w.webkit}},init:function(h,m){function r(l){var j,w,v=[],q,t={},x=[];for(w=0;w<l.length;w++){j=l[w];if(!t[j.name]){t[j.name]=true;q=c.guid();u[q]=j;x.push(j);v.push(new c.File(q,j.fileName||j.name,j.fileSize||j.size))}}if(v.length){h.trigger("FilesAdded",v);h.trigger("OriginalFiles",x)}}var p;p=this.getFeatures();if(p.html5){h.bind("Init",function(l){var j,w,v=[],q,t,x=l.settings.filters,
y,z;q=b.body;j=b.createElement("div");j.id=l.id+"_html5_container";c.extend(j.style,{position:"absolute",background:h.settings.shim_bgcolor||"transparent",width:"0px",height:"0px",overflow:"hidden",zIndex:99999,opacity:h.settings.shim_bgcolor?"":0});j.className="plupload html5";if(h.settings.container){q=b.getElementById(h.settings.container);if(c.getStyle(q,"position")==="static")q.style.position="relative"}q.appendChild(j);q=0;a:for(;q<x.length;q++){y=x[q].extensions.split(/,/);for(t=0;t<y.length;t++){if(y[t]===
"*"){v=[];break a}(z=c.mimeTypes[y[t]])&&v.push(z)}}j.innerHTML='<input id="'+h.id+'_html5"  style="font-size:999px" type="file" accept="'+v.join(",")+'" '+(h.settings.multi_selection?'multiple="multiple"':"")+" />";j.scrollTop=100;v=b.getElementById(h.id+"_html5");l.features.triggerDialog?c.extend(v.style,{position:"absolute",width:"100%",height:"100%"}):c.extend(v.style,{cssFloat:"right",styleFloat:"right"});v.onchange=function(){r(this.files);this.value=""};if(w=b.getElementById(l.settings.browse_button)){var B=
l.settings.browse_button_hover,D=l.settings.browse_button_active;j=l.features.triggerDialog?w:j;if(B){c.addEvent(j,"mouseover",function(){c.addClass(w,B)},l.id);c.addEvent(j,"mouseout",function(){c.removeClass(w,B)},l.id)}if(D){c.addEvent(j,"mousedown",function(){c.addClass(w,D)},l.id);c.addEvent(b.body,"mouseup",function(){c.removeClass(w,D)},l.id)}l.features.triggerDialog&&c.addEvent(w,"click",function(F){b.getElementById(l.id+"_html5").click();F.preventDefault()},l.id)}});h.bind("PostInit",function(){var l=
b.getElementById(h.settings.drop_element);if(l)if(s)c.addEvent(l,"dragenter",function(){var j,w;j=b.getElementById(h.id+"_drop");if(!j){j=b.createElement("input");j.setAttribute("type","file");j.setAttribute("id",h.id+"_drop");j.setAttribute("multiple","multiple");c.addEvent(j,"change",function(){r(this.files);c.removeEvent(j,"change",h.id);j.parentNode.removeChild(j)},h.id);l.appendChild(j)}c.getPos(l,b.getElementById(h.settings.container));w=c.getSize(l);c.getStyle(l,"position")==="static"&&c.extend(l.style,
{position:"relative"});c.extend(j.style,{position:"absolute",display:"block",top:0,left:0,width:w.w+"px",height:w.h+"px",opacity:0})},h.id);else{c.addEvent(l,"dragover",function(j){j.preventDefault()},h.id);c.addEvent(l,"drop",function(j){var w=j.dataTransfer;w&&w.files&&r(w.files);j.preventDefault()},h.id)}});h.bind("Refresh",function(l){var j,w,v;if(j=b.getElementById(h.settings.browse_button)){w=c.getPos(j,b.getElementById(l.settings.container));v=c.getSize(j);l=b.getElementById(h.id+"_html5_container");
c.extend(l.style,{top:w.y+"px",left:w.x+"px",width:v.w+"px",height:v.h+"px"});if(h.features.triggerDialog){c.getStyle(j,"position")==="static"&&c.extend(j.style,{position:"relative"});w=parseInt(c.getStyle(j,"z-index"),10);if(isNaN(w))w=0;c.extend(j.style,{zIndex:w});c.extend(l.style,{zIndex:w-1})}}});h.bind("UploadFile",function(l,j){function w(x,y,z){var B;if(File.prototype.slice)try{x.slice();return x.slice(y,z)}catch(D){return x.slice(y,z-y)}else return(B=File.prototype.webkitSlice||File.prototype.mozSlice)?
B.call(x,y,z):null}function v(x){function y(){function H(ba){var za=0,E=new XMLHttpRequest,S=E.upload,M="----pluploadboundary"+c.guid(),Q,N="";if(S)S.onprogress=function(P){j.loaded=Math.min(j.size,B+P.loaded-za);l.trigger("UploadProgress",j)};E.onreadystatechange=function(){var P,R;if(E.readyState==4){try{P=E.status}catch(xa){P=0}if(P>=400)l.trigger("Error",{code:c.HTTP_ERROR,message:c.translate("HTTP Error."),file:j,status:P});else{if(W){R={chunk:z,chunks:W,response:E.responseText,status:P};l.trigger("ChunkUploaded",
j,R);B+=oa;if(R.cancelled){j.status=c.FAILED;return}j.loaded=Math.min(j.size,(z+1)*aa)}else j.loaded=j.size;l.trigger("UploadProgress",j);ba=U=Q=N=null;if(!W||++z>=W){j.status=c.DONE;l.trigger("FileUploaded",j,{response:E.responseText,status:P})}else y()}E=null}};if(l.settings.multipart&&p.multipart){X.name=j.target_name||j.name;E.open("post",qa,true);c.each(l.settings.headers,function(P,R){E.setRequestHeader(R,P)});if(!F&&a.FormData){Q=new FormData;c.each(c.extend(X,l.settings.multipart_params),
function(P,R){Q.append(R,P)});Q.append(l.settings.file_data_name,ba);E.send(Q);return}if(F){E.setRequestHeader("Content-Type","multipart/form-data; boundary="+M);c.each(c.extend(X,l.settings.multipart_params),function(P,R){N+="--"+M+'\r\nContent-Disposition: form-data; name="'+R+'"\r\n\r\n';N+=unescape(encodeURIComponent(P))+"\r\n"});Aa=c.mimeTypes[j.name.replace(/^.+\.([^.]+)/,"$1").toLowerCase()]||"application/octet-stream";N+="--"+M+'\r\nContent-Disposition: form-data; name="'+l.settings.file_data_name+
'"; filename="'+unescape(encodeURIComponent(j.name))+'"\r\nContent-Type: '+Aa+"\r\n\r\n"+ba+"\r\n--"+M+"--\r\n";za=N.length-ba.length;ba=N;if(E.sendAsBinary)E.sendAsBinary(ba);else if(p.canSendBinary){S=new Uint8Array(ba.length);for(var O=0;O<ba.length;O++)S[O]=ba.charCodeAt(O)&255;E.send(S.buffer)}return}}qa=c.buildUrl(l.settings.url,c.extend(X,l.settings.multipart_params));E.open("post",qa,true);E.setRequestHeader("Content-Type","application/octet-stream");c.each(l.settings.headers,function(P,R){E.setRequestHeader(R,
P)});E.send(ba)}var U,W,X,aa,oa,Aa,qa=l.settings.url;if(!(j.status==c.DONE||j.status==c.FAILED||l.state==c.STOPPED)){X={name:j.target_name||j.name};if(q.chunk_size&&j.size>q.chunk_size&&(p.chunks||typeof x=="string")){aa=q.chunk_size;W=Math.ceil(j.size/aa);oa=Math.min(aa,j.size-z*aa);U=typeof x=="string"?x.substring(z*aa,z*aa+oa):w(x,z*aa,z*aa+oa);X.chunk=z;X.chunks=W}else{oa=j.size;U=x}if(D&&p.cantSendBlobInFormData&&p.chunks&&l.settings.chunk_size){D.onload=function(){F=true;H(D.result)};D.readAsBinaryString(U)}else H(U)}}
var z=0,B=0,D="FileReader"in a?new FileReader:null,F=typeof x==="string";y()}var q=l.settings,t;t=u[j.id];if(p.jpgresize&&l.settings.resize&&/\.(png|jpg|jpeg)$/i.test(j.name))g.call(l,j,l.settings.resize,/\.png$/i.test(j.name)?"image/png":"image/jpeg",function(x){if(x.success){j.size=x.data.length;v(x.data)}else v(t)});else!p.chunks&&p.jpgresize?f(t,v):v(t)});h.bind("Destroy",function(l){var j,w,v=b.body,q={inputContainer:l.id+"_html5_container",inputFile:l.id+"_html5",browseButton:l.settings.browse_button,
dropElm:l.settings.drop_element};for(j in q)(w=b.getElementById(q[j]))&&c.removeAllEvents(w,l.id);c.removeAllEvents(b.body,l.id);if(l.settings.container)v=b.getElementById(l.settings.container);v.removeChild(b.getElementById(q.inputContainer))});m({success:true})}else m({success:false})}})})(window,document,plupload);
(function(a,b,c){function d(){var g;try{g=navigator.plugins["Shockwave Flash"];g=g.description}catch(k){try{g=(new ActiveXObject("ShockwaveFlash.ShockwaveFlash")).GetVariable("$version")}catch(n){g="0.0"}}g=g.match(/\d+/g);return parseFloat(g[0]+"."+g[1])}var e={},f={};c.flash={trigger:function(g,k,n){setTimeout(function(){var o=e[g];o&&o.trigger("Flash:"+k,n)},0)}};c.runtimes.Flash=c.addRuntime("flash",{getFeatures:function(){return{jpgresize:true,pngresize:true,maxWidth:8091,maxHeight:8091,chunks:true,
progress:true,multipart:true}},init:function(g,k){function n(){return b.getElementById(g.id+"_flash")}function o(){if(h++>5E3)k({success:false});else f[g.id]||setTimeout(o,1)}var u,s,h=0,m=b.body;if(d()<10)k({success:false});else{f[g.id]=false;e[g.id]=g;b.getElementById(g.settings.browse_button);u=b.createElement("div");u.id=g.id+"_flash_container";c.extend(u.style,{position:"absolute",top:"0px",background:g.settings.shim_bgcolor||"transparent",zIndex:99999,width:"100%",height:"100%"});u.className=
"plupload flash";if(g.settings.container){m=b.getElementById(g.settings.container);if(c.getStyle(m,"position")==="static")m.style.position="relative"}m.appendChild(u);s="id="+escape(g.id);u.innerHTML='<object id="'+g.id+'_flash" width="100%" height="100%" style="outline:0" type="application/x-shockwave-flash" data="'+g.settings.flash_swf_url+'"><param name="movie" value="'+g.settings.flash_swf_url+'" /><param name="flashvars" value="'+s+'" /><param name="wmode" value="transparent" /><param name="allowscriptaccess" value="always" /></object>';
o();u=null;g.bind("Flash:Init",function(){var r={};n().setFileFilters(g.settings.filters,g.settings.multi_selection);if(!f[g.id]){f[g.id]=true;g.bind("UploadFile",function(p,l){var j=p.settings,w=g.settings.resize||{};n().uploadFile(r[l.id],j.url,{name:l.target_name||l.name,mime:c.mimeTypes[l.name.replace(/^.+\.([^.]+)/,"$1").toLowerCase()]||"application/octet-stream",chunk_size:j.chunk_size,width:w.width,height:w.height,quality:w.quality,multipart:j.multipart,multipart_params:j.multipart_params||
{},file_data_name:j.file_data_name,format:/\.(jpg|jpeg)$/i.test(l.name)?"jpg":"png",headers:j.headers,urlstream_upload:j.urlstream_upload})});g.bind("Flash:UploadProcess",function(p,l){var j=p.getFile(r[l.id]);if(j.status!=c.FAILED){j.loaded=l.loaded;j.size=l.size;p.trigger("UploadProgress",j)}});g.bind("Flash:UploadChunkComplete",function(p,l){var j=p.getFile(r[l.id]);p.trigger("ChunkUploaded",j,{chunk:l.chunk,chunks:l.chunks,response:l.text});j.status!=c.FAILED&&n().uploadNextChunk();if(l.chunk==
l.chunks-1){j.status=c.DONE;p.trigger("FileUploaded",j,{response:l.text})}});g.bind("Flash:SelectFiles",function(p,l){var j,w,v=[],q;for(w=0;w<l.length;w++){j=l[w];q=c.guid();r[q]=j.id;r[j.id]=q;v.push(new c.File(q,j.name,j.size))}v.length&&g.trigger("FilesAdded",v)});g.bind("Flash:SecurityError",function(p,l){g.trigger("Error",{code:c.SECURITY_ERROR,message:c.translate("Security error."),details:l.message,file:g.getFile(r[l.id])})});g.bind("Flash:GenericError",function(p,l){g.trigger("Error",{code:c.GENERIC_ERROR,
message:c.translate("Generic error."),details:l.message,file:g.getFile(r[l.id])})});g.bind("Flash:IOError",function(p,l){g.trigger("Error",{code:c.IO_ERROR,message:c.translate("IO error."),details:l.message,file:g.getFile(r[l.id])})});g.bind("Flash:ImageError",function(p,l){g.trigger("Error",{code:parseInt(l.code,10),message:c.translate("Image error."),file:g.getFile(r[l.id])})});g.bind("Flash:StageEvent:rollOver",function(p){var l;l=b.getElementById(g.settings.browse_button);p=p.settings.browse_button_hover;
l&&p&&c.addClass(l,p)});g.bind("Flash:StageEvent:rollOut",function(p){var l;l=b.getElementById(g.settings.browse_button);p=p.settings.browse_button_hover;l&&p&&c.removeClass(l,p)});g.bind("Flash:StageEvent:mouseDown",function(p){var l,j;l=b.getElementById(g.settings.browse_button);j=p.settings.browse_button_active;if(l&&j){c.addClass(l,j);c.addEvent(b.body,"mouseup",function(){c.removeClass(l,j)},p.id)}});g.bind("Flash:StageEvent:mouseUp",function(p){var l;l=b.getElementById(g.settings.browse_button);
p=p.settings.browse_button_active;l&&p&&c.removeClass(l,p)});g.bind("Flash:ExifData",function(p,l){g.trigger("ExifData",g.getFile(r[l.id]),l.data)});g.bind("Flash:GpsData",function(p,l){g.trigger("GpsData",g.getFile(r[l.id]),l.data)});g.bind("QueueChanged",function(){g.refresh()});g.bind("FilesRemoved",function(p,l){var j;for(j=0;j<l.length;j++)n().removeFile(r[l[j].id])});g.bind("StateChanged",function(){g.refresh()});g.bind("Refresh",function(p){var l,j;n().setFileFilters(g.settings.filters,g.settings.multi_selection);
if(l=b.getElementById(p.settings.browse_button)){j=c.getPos(l,b.getElementById(p.settings.container));l=c.getSize(l);c.extend(b.getElementById(p.id+"_flash_container").style,{top:j.y+"px",left:j.x+"px",width:l.w+"px",height:l.h+"px"})}});g.bind("Destroy",function(p){c.removeAllEvents(b.body,p.id);delete f[p.id];delete e[p.id];(p=b.getElementById(p.id+"_flash_container"))&&m.removeChild(p)});k({success:true})}})}}})})(window,document,plupload);
(function(){if(!(window.google&&google.gears)){var a=null;if(typeof GearsFactory!="undefined")a=new GearsFactory;else try{a=new ActiveXObject("Gears.Factory");a.getBuildInfo().indexOf("ie_mobile")!=-1&&a.privateSetGlobalObject(this)}catch(b){if(typeof navigator.mimeTypes!="undefined"&&navigator.mimeTypes["application/x-googlegears"]){a=document.createElement("object");a.style.display="none";a.width=0;a.height=0;a.type="application/x-googlegears";document.documentElement.appendChild(a)}}if(a){if(!window.google)window.google=
{};if(!google.gears)google.gears={factory:a}}}})();
(function(a,b,c){function d(f,g,k){var n,o;n=google.gears.factory.create("beta.canvas");try{n.decode(f);if(!g.width)g.width=n.width;if(!g.height)g.height=n.height;o=Math.min(width/n.width,height/n.height);if(o<1||o===1&&k==="image/jpeg"){n.resize(Math.round(n.width*o),Math.round(n.height*o));if(g.quality)return n.encode(k,{quality:g.quality/100});return n.encode(k)}}catch(u){}return f}var e={};c.runtimes.Gears=c.addRuntime("gears",{getFeatures:function(){return{dragdrop:true,jpgresize:true,pngresize:true,
chunks:true,progress:true,multipart:true}},init:function(f,g){function k(u){var s,h,m=[],r;for(h=0;h<u.length;h++){s=u[h];r=c.guid();e[r]=s.blob;m.push(new c.File(r,s.name,s.blob.length))}f.trigger("FilesAdded",m)}var n;if(!a.google||!google.gears)return g({success:false});try{n=google.gears.factory.create("beta.desktop")}catch(o){return g({success:false})}f.bind("PostInit",function(){var u=f.settings,s=b.getElementById(u.drop_element);if(s){c.addEvent(s,"dragover",function(h){n.setDropEffect(h,"copy");
h.preventDefault()},f.id);c.addEvent(s,"drop",function(h){var m=n.getDragData(h,"application/x-gears-files");m&&k(m.files);h.preventDefault()},f.id);s=0}c.addEvent(b.getElementById(u.browse_button),"click",function(h){var m=[],r,p;h.preventDefault();h=0;a:for(;h<u.filters.length;h++){p=u.filters[h].extensions.split(",");for(r=0;r<p.length;r++){if(p[r]==="*"){m=[];break a}m.push("."+p[r])}}n.openFiles(k,{singleFile:!u.multi_selection,filter:m})},f.id)});f.bind("UploadFile",function(u,s){function h(){function v(D){var F,
H="----pluploadboundary"+c.guid(),U;if(x){q.setRequestHeader("Content-Type","multipart/form-data; boundary="+H);F=google.gears.factory.create("beta.blobbuilder");c.each(c.extend(z,u.settings.multipart_params),function(W,X){F.append("--"+H+'\r\nContent-Disposition: form-data; name="'+X+'"\r\n\r\n');F.append(W+"\r\n")});U=c.mimeTypes[s.name.replace(/^.+\.([^.]+)/,"$1").toLowerCase()]||"application/octet-stream";F.append("--"+H+'\r\nContent-Disposition: form-data; name="'+u.settings.file_data_name+'"; filename="'+
s.name+'"\r\nContent-Type: '+U+"\r\n\r\n");F.append(D);F.append("\r\n--"+H+"--\r\n");U=F.getAsBlob();y=U.length-D.length;D=U}q.send(D)}var q,t,x=u.settings.multipart,y=0,z={name:s.target_name||s.name},B=u.settings.url;if(!(s.status==c.DONE||s.status==c.FAILED||u.state==c.STOPPED)){if(w){z.chunk=m;z.chunks=r}t=Math.min(p,s.size-m*p);x||(B=c.buildUrl(u.settings.url,z));q=google.gears.factory.create("beta.httprequest");q.open("POST",B);if(!x){q.setRequestHeader("Content-Disposition",'attachment; filename="'+
s.name+'"');q.setRequestHeader("Content-Type","application/octet-stream")}c.each(u.settings.headers,function(D,F){q.setRequestHeader(F,D)});q.upload.onprogress=function(D){s.loaded=l+D.loaded-y;u.trigger("UploadProgress",s)};q.onreadystatechange=function(){var D;if(q.readyState==4)if(q.status==200){D={chunk:m,chunks:r,response:q.responseText,status:q.status};u.trigger("ChunkUploaded",s,D);if(D.cancelled)s.status=c.FAILED;else{l+=t;if(++m>=r){s.status=c.DONE;u.trigger("FileUploaded",s,{response:q.responseText,
status:q.status})}else h()}}else u.trigger("Error",{code:c.HTTP_ERROR,message:c.translate("HTTP Error."),file:s,chunk:m,chunks:r,status:q.status})};m<r&&v(e[s.id].slice(m*p,t))}}var m=0,r,p,l=0,j=u.settings.resize,w;if(j&&/\.(png|jpg|jpeg)$/i.test(s.name))e[s.id]=d(e[s.id],j,/\.png$/i.test(s.name)?"image/png":"image/jpeg");s.size=e[s.id].length;p=u.settings.chunk_size;w=p>0;r=Math.ceil(s.size/p);if(!w){p=s.size;r=1}h()});f.bind("Destroy",function(u){var s,h,m={browseButton:u.settings.browse_button,
dropElm:u.settings.drop_element};for(s in m)(h=b.getElementById(m[s]))&&c.removeAllEvents(h,u.id)});g({success:true})}})})(window,document,plupload);
(function(a,b,c){function d(e){return b.getElementById(e)}c.runtimes.Html4=c.addRuntime("html4",{getFeatures:function(){var e=function(){var f=navigator,g=f.userAgent,k=f.vendor,n,o;o=(n=/WebKit/.test(g))&&k.indexOf("Apple")!==-1;k=a.opera&&a.opera.buildNumber;return{ie:!n&&!k&&/MSIE/gi.test(g)&&/Explorer/gi.test(f.appName),webkit:n,gecko:!n&&/Gecko/.test(g),safari:o,safariwin:o&&navigator.platform.indexOf("Win")!==-1,opera:!!k}}();return{multipart:true,triggerDialog:e.gecko&&a.FormData||e.webkit}},
init:function(e,f){e.bind("Init",function(g){function k(){var x,y,z,B;m=c.guid();r.push(m);x=b.createElement("form");x.setAttribute("id","form_"+m);x.setAttribute("method","post");x.setAttribute("enctype","multipart/form-data");x.setAttribute("encoding","multipart/form-data");x.setAttribute("target",g.id+"_iframe");x.style.position="absolute";y=b.createElement("input");y.setAttribute("id","input_"+m);y.setAttribute("type","file");y.setAttribute("accept",l);y.setAttribute("size",1);B=d(g.settings.browse_button);
g.features.triggerDialog&&B&&c.addEvent(d(g.settings.browse_button),"click",function(D){y.click();D.preventDefault()},g.id);c.extend(y.style,{width:"100%",height:"100%",opacity:0,fontSize:"999px"});c.extend(x.style,{overflow:"hidden"});if(z=g.settings.shim_bgcolor)x.style.background=z;p&&c.extend(y.style,{filter:"alpha(opacity=0)"});c.addEvent(y,"change",function(D){var F=D.target;D=[];if(F.value){d("form_"+m).style.top="-1048575px";F=F.value.replace(/\\/g,"/");F=F.substring(F.length,F.lastIndexOf("/")+
1);D.push(new c.File(m,F));g.features.triggerDialog?c.removeEvent(B,"click",g.id):c.removeAllEvents(x,g.id);c.removeEvent(y,"change",g.id);k();D.length&&e.trigger("FilesAdded",D)}},g.id);x.appendChild(y);o.appendChild(x);g.refresh()}function n(){var x=b.createElement("div");x.innerHTML='<iframe id="'+g.id+'_iframe" name="'+g.id+'_iframe" src="'+s+':&quot;&quot;" style="display:none"></iframe>';u=x.firstChild;o.appendChild(u);c.addEvent(u,"load",function(y){y=y.target;var z;if(h){try{z=y.contentWindow.document||
y.contentDocument||a.frames[y.id].document}catch(B){g.trigger("Error",{code:c.SECURITY_ERROR,message:c.translate("Security error."),file:h});return}if(z=z.documentElement.innerText||z.documentElement.textContent){h.status=c.DONE;h.loaded=1025;h.percent=100;g.trigger("UploadProgress",h);g.trigger("FileUploaded",h,{response:z})}}},g.id)}var o=b.body,u,s="javascript",h,m,r=[],p=/MSIE/.test(navigator.userAgent),l=[],j=g.settings.filters,w,v,q,t;w=0;a:for(;w<j.length;w++){v=j[w].extensions.split(/,/);
for(t=0;t<v.length;t++){if(v[t]==="*"){l=[];break a}(q=c.mimeTypes[v[t]])&&l.push(q)}}l=l.join(",");if(g.settings.container){o=d(g.settings.container);if(c.getStyle(o,"position")==="static")o.style.position="relative"}g.bind("UploadFile",function(x,y){var z;if(!(y.status==c.DONE||y.status==c.FAILED||x.state==c.STOPPED)){z=d("form_"+y.id);d("input_"+y.id).setAttribute("name",x.settings.file_data_name);z.setAttribute("action",x.settings.url);c.each(c.extend({name:y.target_name||y.name},x.settings.multipart_params),
function(B,D){var F=b.createElement("input");c.extend(F,{type:"hidden",name:D,value:B});z.insertBefore(F,z.firstChild)});h=y;d("form_"+m).style.top="-1048575px";z.submit();z.parentNode.removeChild(z)}});g.bind("FileUploaded",function(x){x.refresh()});g.bind("StateChanged",function(x){x.state==c.STARTED&&n();x.state==c.STOPPED&&a.setTimeout(function(){c.removeEvent(u,"load",x.id);u.parentNode.removeChild(u)},0)});g.bind("Refresh",function(x){var y,z,B,D,F,H;if(y=d(x.settings.browse_button)){F=c.getPos(y,
d(x.settings.container));H=c.getSize(y);z=d("form_"+m);d("input_"+m);c.extend(z.style,{top:F.y+"px",left:F.x+"px",width:H.w+"px",height:H.h+"px"});if(x.features.triggerDialog){c.getStyle(y,"position")==="static"&&c.extend(y.style,{position:"relative"});F=parseInt(y.style.zIndex,10);if(isNaN(F))F=0;c.extend(y.style,{zIndex:F});c.extend(z.style,{zIndex:F-1})}B=x.settings.browse_button_hover;D=x.settings.browse_button_active;z=x.features.triggerDialog?y:z;if(B){c.addEvent(z,"mouseover",function(){c.addClass(y,
B)},x.id);c.addEvent(z,"mouseout",function(){c.removeClass(y,B)},x.id)}if(D){c.addEvent(z,"mousedown",function(){c.addClass(y,D)},x.id);c.addEvent(b.body,"mouseup",function(){c.removeClass(y,D)},x.id)}}});e.bind("FilesRemoved",function(x,y){var z,B;for(z=0;z<y.length;z++)(B=d("form_"+y[z].id))&&B.parentNode.removeChild(B)});e.bind("Destroy",function(x){var y,z,B,D={inputContainer:"form_"+m,inputFile:"input_"+m,browseButton:x.settings.browse_button};for(y in D)(z=d(D[y]))&&c.removeAllEvents(z,x.id);
c.removeAllEvents(b.body,x.id);c.each(r,function(F){(B=d("form_"+F))&&o.removeChild(B)})});k()});f({success:true})}})})(window,document,plupload);
Liveshare.ProfileData=Class.create("Liveshare.ProfileData",PropertyList,{initialize:function($super){$super();this.other_emails=new List;this.other_phones=new List},load:function(a){var b=this;LiveshareAPI.UserProfile(function(c){b.parseProfile(c.profile);a&&a()})},parseProfile:function(a){var b=a.userlist;this.other_emails.removeAll();this.other_phones.removeAll();for(var c in a)this.set(c,a[c]);a=b[0];a.profile_pic_url!=""?this.set("image_path",a.profile_pic_url+"?type=normal"):this.set("image_path",
server_vars.static_root+"/images/default_user.jpg");this.set("first_name",a.first_name);this.set("last_name",a.last_name);this.user_account={};this.accounts=a.accounts;for(a=0;a<this.accounts.length;a++)this.addUserAccount(this.accounts[a]);this.addEmails();this.addPhones();this.user_account.facebook&&this.set("facebook",true)},addUserAccount:function(a){var b=a.type;this.user_account[b]||(this.user_account[b]=[]);this.user_account[b].push(a)},addEmails:function(){var a="",b=this.user_account.email;
if(b)for(var c=0;c<b.length;c++){var d=b[c];if(d.primary==1)a=d.identifier;else this.other_emails.append(d)}if(!a&&this.other_emails.length()>0)a=this.other_emails.getItemAt(0).identifier;this.set("primary_email",a)},addPhones:function(){var a="",b=this.user_account.phone;if(b)for(var c=0;c<b.length;c++){var d=b[c];if(d.primary==1)a=d.identifier;else this.other_phones.append(d)}if(!a&&this.other_phones.length()>0)a=this.other_phones.getItemAt(0).identifier;this.set("primary_phone",a)}});
Liveshare.ProfileController=Class.create("Liveshare.ProfileController",Controller,{initialize:function($super){$super();this.errors={general:"An unknown error occurred; please try again.",wrong_password:"The current password you entered is incorrect.",password_too_short:"Your new password must have at least 6 characters.",password_no_match:"The new passwords you entered do not match.",fb_already_connected:"Your facebook account can not be added.  It appears your facebook account is assigned to another liveshare account.",
fb_general:"There was a problem connecting with your facebook account.  Please try again later."};this.status={saved_name:"Your name has been saved.",saved_password:"Your password has been saved."}},attach:function($super,b){$super(b);this.profile=this.getData();this.bindProp(this.profile,"image_path",this.onPictureChange);this.$email_toggle=this.find(":checkbox");this.bindEvent(this.$email_toggle,"change",this.onEmailToggle);this.$picture=this.find(".picture");this.$nameForm=this.find("#usersNameUpdate");
this.bindEvent(this.$nameForm,"submit",this.onSubmitName);this.$lsFirstName=this.find("#lsFirstName");this.$lsLastName=this.find("#lsLastName");this.$passwordForm=this.find("#usersPasswordUpdate");this.bindEvent(this.$passwordForm,"submit",this.onSubmitPassword);this.$userNameForm=this.find("#userNameForm");this.$userName=this.find("#userName");this.$editName=this.find("#editName");this.bindEvent(this.$editName,"click",this.onEditNameClick);this.$nameCancel=this.find("#nameCancel");this.bindEvent(this.$nameCancel,
"click",this.onNameCancelClick);this.$inputPassword=this.find("#inputPassword");this.$passwordAction=this.find("#passwordAction");this.$changePassword=this.find("#changePassword");this.bindEvent(this.$changePassword,"click",this.onChangePasswordClick);this.$passwordCancel=this.find("#passwordCancel");this.bindEvent(this.$passwordCancel,"click",this.onPasswordCancelClick);this.$passwordError=this.find(".password.error");this.$status=this.find(".status");this.$back=this.find("a.back");this.bindEvent(this.$back,
"click",this.onBackClick);Nav.getContext().getParent()||this.$back.hide();this.$fb_no=this.$elem.find(".fb_no");this.$fb_yes=this.$elem.find(".fb_yes");this.bindProp(this.profile,"facebook",this.onFacebookChange);this.onFacebookChange();this.$fbError=this.find(".facebook.error");var c=$(window);this.bindEvent(c,"fbLoginError",this.onFacebookError);this.bindEvent(c,"fbLoginSuccess",this.onFacebookLogin);this.bindEvent(this.$elem,"refresh_data",this.onRefreshData)},added:function(){this.$email_toggle.iphoneStyle()},
onBackClick:function(){Nav.back()},onFacebookChange:function(){if(this.profile.get("facebook")){this.$fb_yes.show();this.$fb_no.hide()}else{this.$fb_yes.hide();this.$fb_no.show()}},onFacebookError:function(a,b){var c=this.errors.fb_general;if(b.code=="already_connected")c=this.errors.fb_already_connected;this.$fbError.text(c)},onFacebookLogin:function(){this.$fbError.text("");this.profile.set("facebook",true)},onEmailToggle:function(){var a=this.$email_toggle.is(":checked")?1:0;$.get(server_vars.base_url+
"/api/setEmailNotification?notify="+a)},onPictureChange:function(){this.$picture.attr("src",this.profile.get("image_path"))},onEditNameClick:function(){this.$userNameForm.show();this.$userName.hide()},onNameCancelClick:function(){this.$userNameForm.hide();this.$userName.show()},onChangePasswordClick:function(){this.$inputPassword.show();this.$passwordAction.hide()},onPasswordCancelClick:function(){this.$inputPassword.hide();this.$passwordAction.show()},onSubmitName:function(){this.$status.text("");
var a=this;$.post(this.$nameForm.attr("action"),this.$nameForm.serialize(),function(b){if(b.status==1){a.onNameCancelClick();a.profile.set("first_name",a.$lsFirstName.val());a.profile.set("last_name",a.$lsLastName.val());a.$status.text(a.status.saved_name)}});return false},onSubmitPassword:function(){this.$passwordError.text("");this.$status.text("");var a=this;$.post(this.$passwordForm.attr("action"),this.$passwordForm.serialize(),function(b){b=parseInt(b.status);if(b==2){a.onPasswordCancelClick();
a.$status.text(a.status.saved_password)}else{var c=a.errors.general;switch(b){case -1:c=a.errors.wrong_password;break;case -2:c=a.errors.password_too_short;break;case -3:c=a.errors.password_no_match}a.$passwordError.text(c)}});return false},onRefreshData:function(){this.profile.load()}});
Liveshare.ProfileEmail=Class.create("Liveshare.ProfileEmail",Controller,{attach:function($super,b){$super(b);this.$delete=this.find(".delete");this.bindEvent(this.$delete,"click",this.onDeleteClick)},onDeleteClick:function(){if(confirm("Are you sure you want to remove this?\nFriends will no longer be able to share to this email.")){var a=this,b=this.getData();LiveshareAPI.RemoveAccount(b.id,function(){a.$elem.trigger("refresh_data",[b])})}}});
Liveshare.ProfilePhone=Class.create("Liveshare.ProfilePhone",Controller,{attach:function($super,b){$super(b);this.$delete=this.find(".delete");this.bindEvent(this.$delete,"click",this.onDeleteClick)},onDeleteClick:function(){if(confirm("Are you sure you want to remove this?\nFriends will no longer be able to share to this phone number.")){var a=this,b=this.getData();LiveshareAPI.RemoveAccount(b.id,function(){a.$elem.trigger("refresh_data",[b])})}}});
Liveshare.ChangePicture=Class.create("Liveshare.ChangePicture",Controller,{attach:function($super,b){$super(b);this.profile=this.getData();this.settings=this.elem.settings;this.$button=this.find(".plupload_btn");this.bindEvent(this.$button,"plupload_initialized",this.initUploader);this.bindEvent(this.$button,"plupload_filesadded plupload_originalfiles plupload_qchange",this.killPropogation);this.$uploading=this.find(".uploading");this.$uploading.hide()},initUploader:function(a,b){b.settings.url=this.settings.url;
b.bind("FilesAdded",delegate(this,this.onFilesAdded));b.bind("BeforeUpload",delegate(this,this.beforeFileUpload));b.bind("FileUploaded",delegate(this,this.afterUpload));this.uploader=b;return false},onFilesAdded:function(){this.uploader.start()},beforeFileUpload:function(){this.$button.hide();this.$uploading.show()},killPropogation:function(){return false},afterUpload:function(a,b,c){this.$uploading.hide();var d=this;c.response==0&&this.profile.load(function(){d.$button.show()})}});
var Search={toString:function(){return"Search"}},Share={toString:function(){return"Share"}},Manage={toString:function(){return"Manage"}},Page={toString:function(){return"Page"}},Notice=Class.create("Notice",Dispatcher,{initialize:function($super,b){$super();this.type=this.id=undefined;this.priority=1;this.timeOut=3E3;this.template=this.$content=undefined;this.slot="right";$.extend(this,b)},isValid:function(){if(this.id!=undefined&&(this.$content!=undefined||this.template!=undefined))return true;return false}}),
Header={toString:function(){return"Header"},Content:{left:[],center:[],right:[]}},Menu;
(function(){Menu={toString:function(){return"Menu"},Items:{header:[]},menus:new Dictionary,register:function(a,b){Menu.menus.add(a,b)},unregister:function(a){Menu.menus.remove(a)}};Menu.Top=Class.create("Menu.Top",Controller,{attach:function($super,b){$super(b);this.bindEvent(this.$elem,"menu_open",this.onMenuOpen);this.bindEvent(this.$elem,"menu_close",this.onMenuClose);this.bindEvent(this.$elem,"mousedown _mousedown",this.onMouseDown)},onMenuOpen:function(a){this.$elem.find(".menu-item").each(function(b,
c){c!==a.currentTarget&&$(c).getController().close()});return false},onMenuClose:function(){return false},onMouseDown:function(a){a.originalEvent&&a.originalEvent.data=="from_menu"||this.closeAll()},closeAll:function(){this.$elem.find(".menu-item").each(function(a,b){$(b).getController().close()})}});Menu.Controller=Class.create("Menu.Controller",Controller,{initialize:function($super,b){$super();b||(b={});this.options=b},attach:function($super,b){$super(b);this.$menu=this.$elem.find(".menu:first");
this.options.no_click||this.bindEvent(this.$menu,"click",this.onMenuClick);this.$submenu=this.$elem.find(".submenu:first");this.bindEvent(this.$elem,"mousedown",this.filterInput)},filterInput:function(a){a.originalEvent.data="from_menu"},onShow:function(){this.$menu.addClass("option_selected");this.$submenu.css({display:"block"});this.$submenu.children().triggerHandler("resize");this.options.show_overlay&&this.$elem.trigger("show_overlay");this.$elem.triggerHandler("menu_show")},onHide:function(){this.$menu.removeClass("option_selected");
this.$submenu.css({display:"none"});this.options.show_overlay&&this.$elem.trigger("hide_overlay");this.$elem.triggerHandler("menu_hide")},open:function(){if(!this.showing){this.$elem.trigger("menu_open");this.showing=true;this.onShow()}},close:function(){if(this.showing){this.$elem.trigger("menu_close");this.showing=false;this.onHide()}},toggle:function(){this.showing?this.close():this.open()},onMenuClick:function(){this.toggle()}})})();
var Login,ModalLoginController,fbResponseCallback=function(a){$.ajax({url:server_vars.base_url+"/api/FBLogin"+a,success:function(b){if(!b.access_token&&!b.fb_token){$(window).triggerHandler("loginFailure",[{code:"fail"}]);$(window).triggerHandler("fbLoginError",[{code:"fail"}])}else if(b.loggedin)if(b.error){$(window).triggerHandler("loginFailure",[{code:"errors",response:b}]);$(window).triggerHandler("fbLoginError",[{code:"already_connected"}])}else{$(window).triggerHandler("loginSuccess",[b]);$(window).triggerHandler("fbLoginSuccess")}else{$(window).triggerHandler("loginFailure",
[{code:"no_account",response:b}]);$(window).triggerHandler("fbLoginError",[{code:"no_account"}])}}})};window.fbResponseCallback=fbResponseCallback;
(function(){Login={toString:function(){return"Login"},prompt:function(b){var c={controller:new Login.ModalWindowController,template:"/src/app/login/login.template",data:{state:"login"},frame:false,width:400,height:400};$.extend(c,b);modalWindow.open(c);b&&b.callback&&new Login.Listener(b.callback,b.wait,b.wait_event)},show:function(b){Menu.menus.get("login").show();b&&b.callback&&new Login.Listener(b.callback,b.wait,b.wait_event)},hide:function(){Menu.menus.get("login").hide()},toggle:function(){Menu.menus.get("login").toggle()}};
Login.State={toString:function(){return"Login.State"}};Login.Listener=Class.create("Login.Listener",{initialize:function(b,c,d){function e(){g();b&&b(true)}function f(){g();b&&b(false)}function g(){c?k.unbind(d,e):k.unbind("loginSuccess",e);k.unbind("loginFailure",f)}var k=$(window);d||(d="loginComplete");c?k.bind(d,e):k.bind("loginSuccess",e);k.bind("loginFailure",f)}});Login.ModalWindowController=Class.create("Login.ModalWindowController",Controller,{attach:function($super,c){$super(c);this.$window=
$(window);this.bindEvent(this.$window,"loginSuccess",this.onLoginSuccess);this.bindEvent(this.$window,"loginFailure",this.onLoginFailure);this.$modalWindow=$(modalWindow);this.bindEvent(this.$modalWindow,"close",this.onModalWindowClose)},detach:function($super){$super()},onModalWindowClose:function(){$(window).trigger("loginFailure")},onLoginSuccess:function(){this.unbindEvent(this.$modalWindow,"close");modalWindow.close(true)},onLoginFailure:function(){this.unbindEvent(this.$modalWindow,"close")}});
Login.AuthTask=Class.create("Login.AuthTask",Task,{initialize:function($super,c){$super(delegate(this,this.mainFunc));this.method=c;this.wait_event="loginComplete";this.data={state:"login"}},needLogin:function(){var b=this;Login.prompt({callback:function(c){c?b.method():b.onLoginCancel()},data:this.data,wait:true,wait_event:this.wait_event})},mainFunc:function(b){this.callback=b;Liveshare.authenticated()?this.method():this.needLogin()},onLoginCancel:function(){this.callback&&this.callback()},done:function(b){if(b===
undefined)b=0;this.return_code=b;this.callback&&this.callback()}});var a=function(b,c){if(b.indexOf("/modal/")!=-1)if($(c).attr("dimensions")){var d="",e=$(c).attr("dimensions").split(",");d=e[2]=="ls_users"?{frame_id:"modframe_gradient",background_css:"ls_users"}:{frame_id:e[2]};if(e.length>3)d.controller=e[3];openMyModal(b,e[0],e[1],d)}else openMyModal(b,585,306);else window.location=b};$("a.reqlogin").live("click",function(b){b.preventDefault();var c=this,d=$(this).attr("href");if(d[0]=="/")d=
window.location.protocol+"//"+window.location.host+d;Liveshare.authenticated()?a(d,c):Login.prompt({callback:function(e){e&&a(d,c)},modal:true})})})();var Buttons={toString:function(){return"Buttons"}},ModalWindow;
(function(){ModalWindow=Class.create("ModalWindow",Dispatcher,{initialize:function(){this.controller=this.config=null},close:function(a){if(this.showing){this.showing=false;$(this).triggerHandler("close",[a]);if(this.$content){this.$content.remove();this.$content=undefined}this.config.container||this.$container.remove();this.$container=undefined;if(this.$overlay){this.$overlay.remove();this.$overlay=undefined}this.config=undefined;$(document).unbind("keypress",modalWindow.handleKeys)}},open:function(a){this.showing=
true;var b={parent:"body",frame_id:"myFrame",window_id:"myModal",window_style:"",window_css:"modal-window",background_css:"modal-overlay",show_overlay:true,close_button:true,frame:true};$.extend(b,a);this.config=b;$(this).triggerHandler("open");$(document).bind("keypress",modalWindow.handleKeys);a=$(this.config.parent);if(this.config.show_overlay){this.$overlay=$('<div class="'+this.config.background_css+' c3d"></div>');a.append(this.$overlay)}this.$container=this.config.container?this.config.container:
$('<div id="'+this.config.window_id+'" class="c3d '+this.config.window_css+'" style="width:'+this.config.width+"px; height:"+this.config.height+"px; margin-top:-"+this.config.height/2+"px; margin-left:-"+this.config.width/2+"px;"+this.config.window_style+'"/>');this.$container.parent().length==0&&a.append(this.$container);this.attachCloseButton();if(this.config.source){if(this.config.source.indexOf("http:")!=0)this.config.source=server_vars.base_url+this.config.source;if(this.config.frame){this.$content=
$("<iframe width='"+this.config.width+"' height='"+this.config.height+"' id='"+this.config.frame_id+"' frameborder='0' scrolling='no' allowtransparency='true' src='"+this.config.source+"'></iframe>");this.$container.append(this.$content);this.attachController()}else{var c=this;this.$container.load(this.config.source,function(){c.initAjaxContent()})}}else if(this.config.template){this.$content=applyTemplate(this.config.template,this.config.data,this.config.params);this.$container.append(this.$content);
this.attachController()}},handleKeys:function(a){if(a.keyCode=="27"){modalWindow.close();that.config.cancel_callback&&that.config.cancel_callback()}},attachCloseButton:function(){if(this.config.close_button){var a=$('<a class="close-window"></a>'),b=this;a.click(function(){b.config.cancel_callback&&b.config.cancel_callback();modalWindow.close()});this.$container.append(a)}},initAjaxContent:function(){this.attachController();this.attachCloseButton()},attachController:function(){if(this.config.controller){var a;
a=typeof this.config.controller=="string"?new (eval(this.config.controller)):this.config.controller;var b=this.$container.children().first();a.attach(b)}}})})();
var modalWindow=new ModalWindow,openMyModal=function(){var a={};if(arguments.length==1)a=arguments[0];else if(arguments.length==2){a=arguments[1];a.source=arguments[0]}else{if(arguments.length>3)a=arguments[3];a.source=arguments[0];a.width=arguments[1];a.height=arguments[2]}modalWindow.open(a)},Wrapper={toString:function(){return"Wrapper"},Pages:[]},Local={toString:function(){return"Local"}};
(function(){Local.PhotoItem=Class.create("Local.PhotoItem",Item,{initialize:function($super,c){$super("photo");this.file=c;this.creationdatetime=(new Date).getTime();if(!c.type.match("image.*")||c.fileSize>10485760)this.set("thumb_url",server_vars.static_root+"/images/preview_not_available.jpg");else{this.set("thumb_url","");this.onLoad(c)}},onLoad:function(b){b=Local.PhotoItem.BlobAPI.createObjectURL(b);var c=this,d=new Image,e=document.createElement("canvas"),f=e.getContext("2d"),g=document.createElement("canvas"),
k=g.getContext("2d");d.onload=function(){var o=1;if(d.width>400)o=400/d.width;else ration=400/d.height;g.width=d.width;g.height=d.height;k.drawImage(d,0,0);e.width=d.width*o;e.height=d.height*o;f.drawImage(g,0,0,g.width,g.height,0,0,e.width,e.height);c.set("thumb_url",e.toDataURL());Local.PhotoItem.BlobAPI.revokeObjectURL(d.src)};d.onerror=function(){this.src="/images/preview_not_available.jpg"};try{d.src=b}catch(n){}},onError:function(){}});var a=window.webkitURL||window.URL;if(a){a.createObjectURL=
a.createObjectURL;a.revokeObjectURL=a.revokeObjectURL}Local.PhotoItem.BlobAPI=a})();var Controls={toString:function(){return"Controls"}},Upload={toString:function(){return"Upload"},Config:{MAX_FILE_SIZE:"10000000mb",FILTERS:[{title:"Image files",extensions:"jpg,jpeg,gif,png,bmp,tiff,raw,psd,pdf,pcx,pct,pcd,m4v,mng,cr2"}],MULTIPART:true}},PubNub;
(function(){PubNub={toString:function(){return"PubNub"},init:function(){this.pn=PUBNUB.init({subscribe_key:"sub-b61f04e1-af5c-11e0-923e-eb9ed3267db0"})},subscribe:function(a,b,c){this.pn.subscribe({channel:a,callback:b,error:c?c:function(){}})},unsubscribe:function(a){this.pn.unsubscribe({channel:a})},test:function(){PUBNUB.subscribe({channel:"hello_world",error:function(){alert("Connection Lost. Will auto-reconnect when Online.")},callback:function(a){alert(a)},connect:function(){PUBNUB.publish({channel:"hello_world",
message:"Hi from PubNub."})}})}};PubNub.init()})();var Notifications;
(function(){function a(e){e=Liveshare.ServerCache.Events.get(e);return"<a href='"+(server_vars.base_url+"/#&id="+e.eventid)+"'>"+e.name+"</a>"}function b(e){e=Liveshare.ServerCache.Users.get(e);return Liveshare.fullUserName(e)}function c(e){var f=Liveshare.ServerCache.MediaItems.get(e);if(f)e=server_vars.base_url+"/#&id="+f.eventid+"&mediaid="+f.mediaid;else return" ||"+e+"|| ";return"<a href='"+e+"'>photo</a>"}var d={1:"you uploaded",2:"you commented on",3:"you liked"};Notification=Class.create("Notification",
{initialize:function(e){this.parseData(e)},parseData:function(e){this.data=e;this.type=e.type;this.id=e.notificationid;var f=e.eventid,g=e.param1;e=e.param2;switch(this.type){case 1:this.userid=g;this.mediaid=e;this.eventid=f;break;case 2:this.userid=g;this.mediaid=e;break;case 3:this.userid=g;this.eventid=f;break;case 4:this.userid=g;this.mediaid=e;this.eventid=f;this.reason=this.data.param3;this.commentid=this.data.param4;break;case 5:this.userid=g;this.eventid=f;this.invitee=this.data.param5}},
toHtml:function(){var e=this.eventid,f=this.mediaid,g=this.userid,k="";switch(this.type){case 1:k=b(g)+" added a "+c(f)+" to "+a(e);break;case 2:k=b(g)+" liked your "+c(f);break;case 3:k=b(g)+" invited you to "+a(e);break;case 4:k=d[this.reason];k=b(g)+" commented on the "+c(f)+k+" in "+a(e);e=Liveshare.ServerCache.Comments.get(this.commentid);k+=":<span class='comment'>"+HtmlUtils.encode(e.text)+"</span>";break;case 5:k=b(g)+" invited "+b(this.invitee)+" to "+a(e)}return k}});Notifications=new (Class.create("Notifications",
PropertyList,{toString:function(){return"Notifications"},initialize:function($super){$super();this.list=new List;this.index=new ListIndex(this.list,"id")},init:function(){this.bindProp(Liveshare.MyUser,"authenticated",this.onAuthChange);this.onAuthChange()},onAuthChange:function(){Liveshare.authenticated()?this.getNotifications():this.unsubscribe()},unsubscribe:function(){this.channel&&PubNub.unsubscribe(this.channel)},getNotifications:function(){var e={userid:Liveshare.MyUser.get("userid"),verbose:true};
LiveshareAPI.GetNotifications(e,delegate(this,this.onGetNotifications))},onGetNotifications:function(e){var f=e.result;if(f.pubnubchannel){this.channel=f.pubnubchannel;PubNub.subscribe(this.channel,delegate(this,this.onData),delegate(this,this.onError))}this.onGetNotification(e)},onData:function(e){e={notificationids:e.notificationid,userid:Liveshare.MyUser.get("userid"),verbose:true,excludeself:false};LiveshareAPI.GetNotifications(e,delegate(this,this.onGetNotification))},onGetNotification:function(e){e=
e.result;var f=e.comment;f&&Liveshare.ServerCache.addComments(f);(f=e.media)&&Liveshare.ServerCache.addMediaItems(f);(f=e.event)&&Liveshare.ServerCache.addEvents(f);(f=e.user)&&Liveshare.ServerCache.addUsers(f);f=e.notification;for(var g=0;g<f.length;g++){e=f[g];this.index.get(e.notificationid)||this.list.prepend(new Notification(e))}},onError:function(){},processNotification:function(e){var f=e.eventid,g=e.mediaid;switch(e.type){case 1:$(this).triggerHandler("new_media",[f,g,"notifications"])}}}))})();
Header.Layout=Class.create("Header.Layout",Layout.Controller,{initialize:function($super){$super("header")},attach:function($super,b){$super(b);this.$logo=this.$elem.find("#logo");this.$left=this.$elem.find(".header-left");this.$center=this.$elem.find(".header-center");this.$right=this.$elem.find(".header-right");this.bindEvent(this.$elem,"resize",this.onResize)},onResize:function(){if(this.pending_layout)return false;else{this.pending_layout=true;setTimeout(delegate(this,this.layout),1)}},layout:function(a,
b){this.pending_layout=false;var c=this.$elem.getLayoutProps();if(c){this.$elem.css({width:c.width});c=this.$elem.width();this.$left.css({left:this.$logo.outerWidth(true)});var d=this.$elem.height(),e=this.$logo.outerWidth(true)+this.$left.outerWidth(true),f=this.$right.outerWidth(true),g=Math.max(e,f),k=g-e,n=g-f,o=c-2*g;this.$center.css({width:o,marginLeft:k,marginRight:n,left:e});this.$center.children().each(function(u,s){$(s).layout({width:o-k-n,height:d})})}b&&b()}});
(function(){Wrapper.Layout=Class.create("Wrapper.Layout",Layout.Controller,{initialize:function($super){$super("wrapper")},attach:function($super,b){$super(b);this.$body=$("body");this.$content=this.$elem.find("#content");this.$header=this.$elem.find("#header");this.$footer=this.$elem.find("#footer");this.$footer.hide();this.$container=this.$elem.find(".page-container");this.bindEvent(this.$container,"add_template",this.onShowPage);Window.setResizeHandler(delegate(this,this.resize))},onShowPage:function(a,
b,c){this.page&&this.$elem.removeClass(this.page);this.$elem.addClass(c);this.page=c;this.$page=b;this.layout_options=Wrapper.Pages[c].layout;this.layout()},resize:function(a){this.layout(0,a)},layout:function(a,b){this.$header.layout({width:this.$elem.width()});var c=this.$header.outerHeight(true);this.$content.css({width:this.$elem.width(),height:this.$elem.height()-c});c=this.layout_options.type;var d=this.layout_options.show_footer,e=0;if(c=="content"||d){this.$footer.css({display:"block"});e=
this.$footer.outerHeight(true)}else this.$footer.css({display:"none"});d=this.$content.width();e=this.$content.height()-e;this.$container.css({"min-height":e});if(c=="content"){this.$content.css({overflow:"auto"});b&&b()}else if(c=="app"){this.$content.css({overflow:"hidden"});this.$container.css({paddingBottom:0});if(this.$page.length==0)b&&b();else this.$page.layout({height:e,width:d},a,function(){b&&b()})}else error("Unknown layout type: "+this.layout_type)}})})();
(function(){Wrapper.Controller=Class.create("Wrapper.Controller",Controller,{initialize:function($super){$super()},attach:function($super,b){$super(b);this.$overlay=this.$elem.find(".content-overlay");this.$overlay.hide();this.bindEvent(this.$elem,"show_overlay",this.onShowOverlay);this.bindEvent(this.$elem,"hide_overlay",this.onHideOverlay)},onShowOverlay:function(){this.$overlay.show()},onHideOverlay:function(){this.$overlay.hide()}})})();
(function(){Controls.MessageBubble=Class.create("MessageBubble",Controller,{attach:function($super,b){$super(b);this.$inner=this.$elem.find(".inner:first");this.$arrow=this.$elem.find(".top_arrow:first");this.bindEvent(this.$elem,"resize",this.onResize)},added:function(){this.layout()},onResize:function(){this.layout()},layout:function(){var a=$(document.body).width(),b=this.$elem.parent().offset(),c=this.$elem.outerWidth(true),d=-Math.round(c/2);if(b.left+c+d+10>a)d=a-(b.left+c+10);else if(b.left+
d<10)d=10-b.left;this.$elem.css({left:d});this.$arrow.css({left:-d-Math.round(this.$arrow.outerWidth()/2)})}})})();
(function(){Form.Error=Class.create("Form.Error",PropertyList,{initialize:function(a,b,c){this.$elem=a;this.message=b;this.params=c},show:function(){this.create();this.layout();this.$message.css({opacity:0});var a=new Task;this.params.initial_delay&&a.delay(this.params.initial_delay);a.then(delegate(this,this.fadeIn));this.params.show_time&&a.delay(this.params.show_time).then(delegate(this,this.fadeOut)).then(delegate(this,this.hide));this.task=a;a.run()},close:function(){this.hide();$(this).triggerHandler("closed")},
hide:function(a){this.destroy();a&&a()},onHide:function(){this.hide()},create:function(){this.bindEvent(this.$elem,"hide_error",this.onHide);this.$error=applyTemplate("/src/app/form/error/form_error.template",this.message,this.params);this.$message=this.$error.find(".message_bubble");this.$arrow=this.$message.find(".arrow");this.$close=this.$message.find(".close");this.bindEvent(this.$close,"click",this.close);this.$error.addClass(this.params.direction);$(document.body).append(this.$error)},destroy:function(a){if(this.task){this.task.cancel();
this.task=undefined}this.unbindAll();this.$error&&this.$error.remove();this.$close=this.$arrow=this.$message=this.$error=undefined;a&&a()},fadeIn:function(a){if(this.params.fade_in_time>0)this.$message.animate({opacity:1},this.params.fade_in_time,a);else{this.$message.css({opacity:1});a&&a()}},fadeOut:function(a){var b=this;if(this.params.fade_out_time)this.$message.animate({opacity:0},this.params.fade_out_time,function(){$(b).triggerHandler("fade_complete");a&&a()});else{this.$message.css({opacity:0});
$(this).triggerHandler("fade_complete");a&&a()}},layout:function(){if(this.$error){var a=this.$elem.offset();this.$error.css({left:a.left,top:a.top});a=this.$elem.outerHeight();var b=this.$elem.outerWidth(),c=this.$message.outerHeight(),d=this.$message.outerWidth();if(this.params.direction=="right"){this.$message.css({top:-Math.round(c/2)+Math.round(a/2),left:-(d+15)});this.$arrow.css({top:Math.round(c/2)-10})}else if(this.params.direction=="left"){this.$message.css({top:-Math.round(c/2)+Math.round(a/
2),right:-(b+15)});this.$arrow.css({top:Math.round(c/2)-10})}else if(this.params.direction=="top"){this.$message.css({top:a+12,left:Math.round((b-d)/2)});this.$arrow.css({right:Math.round(d/2)-12})}this.$message.css({width:this.$message.width()+2,height:this.$message.height()});this.$error.css({width:0,height:0})}}});Form.showError=function(a,b,c){var d={direction:"right",initial_delay:undefined,show_time:undefined,fade_in_time:100,fade_out_time:100};$.extend(d,c);a=new Form.Error(a,b,d);a.show();
return a};Form.hideError=function(a){a.triggerHandler("hide_error")}})();var UploadManager;
(function(){UploadManagerClass=Class.create("UploadManagerClass",Controller,{initialize:function($super){$super();this.$elem=$("<div/>");this.uploadQ_counter=this.total_files_since_drop=0;this.error_in_upload=false;this.pluploads=[];this.files_in_q=[]},createPlUpload:function(a){var b={runtimes:"html5,flash,html4",max_file_size:Upload.Config.MAX_FILE_SIZE,flash_swf_url:"/js/lib/plupload/plupload.flash.swf",resize:{quality:100}};$.extend(b,a);return new plupload.Uploader(b)},registerPlupload:function(a){this.pluploads.push(a);
a.bind("FilesAdded",delegate(this,this.onFilesAdded));a.bind("BeforeUpload",delegate(this,this.beforeFileUpload));a.bind("FileUploaded",delegate(this,this.afterUpload));a.bind("Destroy",delegate(this,this.onPluploadDestroyed))},unregisterPlupload:function(a){for(var b=0;b<this.pluploads.length;b++)if(a===this.pluploads[b]){this.pluploads.splice(b,1);break}},getPluploads:function(){return this.pluploads},startPlupload:function(a){for(var b=0;b<a.files.length;b++);if(a.state!=plupload.STARTED)if(Liveshare.authenticated()){c=
this;getNewFileCount=function(d){var e=0;d=d.files;if(!d)return e;for(var f=0;f<d.length;f++){for(var g=false,k=0;k<c.files_in_q.length;k++)if(c.files_in_q[k]==d[f].id){g=true;break}if(!g){e+=1;c.files_in_q.push(d[f].id)}}return e};b=getNewFileCount(a);if(b>0){this.set("state","uploading");this.uploadQ_counter+=b;this.total_files_since_drop+=b;$(this).triggerHandler("update",[this.uploadQ_counter,this.total_files_since_drop]);a.start()}}else{var c=this;this.set("state","waiting_on_login");Login.prompt({callback:function(d){if(d)c.startPlupload(a);
else{c.set("state","initial");$(c).triggerHandler("upload_cancelled_by_user");a.splice(0,a.files.length)}},wait:true})}},onFilesAdded:function(a,b){if(a.state==plupload.STARTED){var c=b.length;this.uploadQ_counter+=c;this.total_files_since_drop+=c;$(this).triggerHandler("update",[this.uploadQ_counter,this.total_files_since_drop])}},beforeFileUpload:function(a,b){a.settings.url=server_vars.base_url+"/api/ajaxFileUpload/?eventid="+b.eventid;this.uploadQ_counter-=1;$(this).triggerHandler("update",[this.uploadQ_counter,
this.total_files_since_drop])},afterUpload:function(a,b,c){if((c=JSON.parse(c.response))&&c.error==401){this.uploadQ_counter+=1;a.files.push(b);a.stop();Liveshare.MyUser.set("authenticated",false);this.startPlupload(a);$(this).triggerHandler("update",[this.uploadQ_counter,this.total_files_since_drop])}else{if(c&&c.result&&c.result.returncode==0)$(this).trigger("file_upload_success",[b.eventid]);else{$(this).trigger("file_upload_failure",[b.eventid]);this.error_in_upload=true}if(this.uploadQ_counter==
0){$(this).triggerHandler("complete");this.set("state","initial");this.resetUpload()}}},onPluploadDestroyed:function(a){this.unregisterPlupload(a)},resetUpload:function(){this.uploadQ_counter=this.total_files_since_drop=0;this.set("state","initial")},killOrphanFiles:function(){for(var a=this.pluploads,b=0;b<a.length;b++){var c=a[b];c.files.length>0&&!c.files[0].eventid&&c.splice(0,c.files.length)}},numFilesInQ:function(){return this.uploadQ_counter},numFilesSinceDrop:function(){return this.total_files_since_drop},
hasErrorInUpload:function(){return this.error_in_upload=false}});UploadManager=new UploadManagerClass;UploadManager.MAX_UPLOAD_SIZE=15728640})();
Upload.Controller=Class.create("Upload.Controller",Controller,{initialize:function($super){$super();this.plupload_id=uuid();this.plupload_params={}},attach:function($super,b){$super(b);if(BrowserDetect.browser.toLowerCase()=="firefox"&&BrowserDetect.version==3.6)this.plupload_params.container=this.$elem.attr("id")},detach:function($super){$super()},added:function(){this.file_picker=UploadManager.createPlUpload(this.plupload_params);this.bindEvents();this.file_picker.init();this.$elem.trigger("plupload_initialized",
[this.file_picker])},removed:function($super){var b=this.file_picker.total;if(b.queued>0&&b.percent<100){this.unbindEvents();this.file_picker.bind("UploadComplete",delegate(this,this.destroyFilePicker))}else this.destroyFilePicker();$super()},bindEvents:function(){this.delegates={files_added:delegate(this,this.onFilesAdded),original_files:delegate(this,this.onOriginalFiles),queue_changed:delegate(this,this.onQueueChanged)};this.file_picker.bind("FilesAdded",this.delegates.files_added);this.file_picker.bind("OriginalFiles",
this.delegates.original_files);this.file_picker.bind("QueueChanged",this.delegates.queue_changed)},unbindEvents:function(){if(this.delegates){this.file_picker.unbind("FilesAdded",this.delegates.files_added);this.file_picker.unbind("OriginalFiles",this.delegates.original_files);this.file_picker.unbind("QueueChanged",this.delegates.queue_changed)}},destroyFilePicker:function(){this.unbindEvents();this.file_picker.destroy()},onFilesAdded:function(a,b){this.$elem.trigger("plupload_filesadded",[a,b])},
onOriginalFiles:function(a,b){this.$elem.trigger("plupload_originalfiles",[a,b])},onQueueChanged:function(a){this.$elem.trigger("plupload_qchange",[a])}});
(function(){Upload.DragListener=Class.create("Upload.DragListener",Upload.Controller,{initialize:function($super){$super()},attach:function($super,b){$super(b);$.extend(this.plupload_params,{browse_button:null,drop_element:this.$elem.attr("id"),multipart:false,resize:false,runtimes:"html5"});this.set("dragging",false);this.bindEvent(this.$elem,"dragenter",this.dragEnterHandler);this.bindEvent(this.$elem,"dragleave",this.dragLeaveHandler);this.bindEvent(this.$elem,"dragover",this.dragOverHandler);
this.bindEvent(this.$elem,"drop",this.dropHandler);this.bindEvent(this.$elem,"mouseenter",this.mouseEnterHandler)},detach:function($super){this.hideDropOverlay();$super()},mouseEnterHandler:function(){this.hideDropOverlay()},dragEnterHandler:function(){this.showDropOverlay();return false},dragLeaveHandler:function(){this.hideDropOverlay();return false},dragOverHandler:function(){this.showDropOverlay();return false},dropHandler:function(){this.hideDropOverlay();return false},hideDropOverlay:function(){this.set("dragging",
false)},showDropOverlay:function(){this.set("dragging",true)}})})();
(function(){Upload.NoticeController=Class.create("Upload.NoticeController",Controller,{initialize:function($super){$super();this.error_on_upload=false},attach:function($super,b){$super(b);this.bindProp(UploadManager,"state",this.onUploadManagerStateChange);this.bindEvent(UploadManager,"file_upload_failure",this.onUploadError);this.bindEvent(UploadManager,"upload_cancelled_by_user",this.onUploadCancel);this.onUploadManagerStateChange(UploadManager.get("state"))},detach:function($super){$super()},onUploadManagerStateChange:function(a,
b){if(a=="initial"&&b!=undefined){var c=this;this.timeout_id=setTimeout(function(){c.hideProgressBar();c.timeout_id=null},this.error_on_upload?5E3:500)}else if(a=="uploading"){if(this.timeout_id){clearTimeout(this.timeout_id);this.timeout_id=null}this.error_on_upload=false;this.showProgressBar()}},onUploadError:function(){this.error_on_upload=true},onUploadCancel:function(){this.hideProgressBar()},showProgressBar:function(){if(!this.$upload_progress){this.$progress_container=$("<div/>");this.$upload_progress=
applyTemplate("/src/app/upload/notices/progress/upload_progress.template",{});this.$progress_container.append(this.$upload_progress)}this.$upload_progress.getController().reset();this.upload_progress_notice=new Notice({$content:this.$progress_container,contenttype:"dom",id:"upload_progress_bar",priority:10,timeOut:0,slot:"right_bottom"});Notices.requestDisplay(this.upload_progress_notice)},hideProgressBar:function(){this.upload_progress_notice&&Notices.cancelDisplay(this.upload_progress_notice.id,
this.upload_progress_notice.slot);this.$upload_progress=null}})})();
(function(){Upload.Progress=Class.create("Upload.Progress",Controller,{initialize:function($super){$super()},attach:function($super,b){$super(b);this.$upload_progress_bar=this.$elem.find(".upload_progress_bar");this.$upload_progress_bar_bg=this.$elem.find(".upload_progress_bar_bg");this.$upload_progress_text=this.$elem.find(".upload_progress_text");this.$upload_exclaim=this.$elem.find(".upload_exclaim");this.$upload_error_text=this.$elem.find(".upload_error_text");this.hideExclaim();this.hideErrorHover();
this.setUploadProgressValue(0,true);if(UploadManager){this.bindEvent(UploadManager,"update",this.onUploadQUpdate);this.bindEvent(UploadManager,"complete",this.onUploadQComplete);this.bindEvent(UploadManager,"files_dropped",this.onFileDrop);this.bindEvent(UploadManager,"file_upload_failure",this.onUploadError)}},detach:function($super){$super()},reset:function(){this.hideExclaim();this.hideErrorHover();this.setUploadProgressValue(0,true)},onUploadQUpdate:function(a,b,c){this.$upload_progress_text.html("Uploading<br/>"+
(c-b)+" of "+c);this.setUploadProgressValue(1-(b+0.75)/c,false)},onUploadQComplete:function(){this.setUploadProgressValue(1,false)},onUploadError:function(){this.showExclaim();var a=this;this.$upload_exclaim.hover(function(){a.showErrorHover()},function(){a.hideErrorHover()})},onFileDrop:function(){UploadManager.uploadInProgress()||this.setUploadProgressValue(0,true)},setUploadProgressValue:function(a,b){if(typeof a=="number"&&a>=0&&a<=1)b?this.$upload_progress_bar.css({width:a*84}):this.$upload_progress_bar.animate({width:a*
84},500)},showExclaim:function(){this.$upload_exclaim.css({display:"block"})},hideExclaim:function(){this.$upload_exclaim.css({display:"none"})},showErrorText:function(){this.$upload_error_text.css({display:"block"})},hideErrorText:function(){this.$upload_error_text.css({display:"none"})},hideError:function(){this.hideErrorText();this.hideExclaim()},showErrorHover:function(){this.$upload_progress_bar.css({display:"none"});this.$upload_progress_bar_bg.css({display:"none"});this.$upload_progress_text.css({display:"none"});
this.$upload_error_text.css({display:"block"})},hideErrorHover:function(){this.$upload_progress_bar.css({display:"block"});this.$upload_progress_bar_bg.css({display:"block"});this.$upload_progress_text.css({display:"block"});this.$upload_error_text.css({display:"none"})}})})();
var ButtonBar=Class.create("ButtonBar",Controller,{attach:function($super,b){$super(b);this.$buttons=this.$elem.find(".btn_short, .btn_tall");this.bindEvent(this.$buttons,"click",this.onButtonClick)},onButtonClick:function(a){$(a.currentTarget).addClass("option_selected");this.$buttons.each(function(b,c){c!==a.currentTarget&&$(c).removeClass("option_selected")})}}),BackButton=Class.create("BackButton",Link.Controller,{initialize:function($super){$super(true);this.set("state","back-link")},attach:function($super,
b){$super(b);this.bindProp(this,"state",this.onStateChange);this.onStateChange();this.bindEvent(Nav,"change",this.onNavChange);this.onNavChange()},onStateChange:function(a,b){b&&this.$elem.removeClass(b);a&&this.$elem.addClass(a);switch(this.get("state")){case "back-link":this.set("label","Back");break;case "home":this.set("label","Home")}},onNavChange:function(){if(App.isHomePage())this.$elem.hide();else{this.$elem.show();this.enable();var a=Nav.getContext();a&&a.getParent()?this.set("state","back-link"):
this.set("state","home")}},onClick:function(){if(this.enabled){this.disable();this.$elem.trigger("nav_back")}else return false}});Buttons.CreateStream=Class.create("Buttons.CreateStream",Controller,{attach:function($super,b){$super(b);this.bindEvent(this.$elem,"click",this.onClick)},onClick:function(){Nav.setContext(new App.navContext({tab:"create"}));return false}});var Plupload={};
(function(){Plupload.UploadButton=Class.create("Plupload.UploadButton",Upload.Controller,{attach:function($super,b){$super(b);var c=true;if((this.settings=this.$elem.getData())&&this.settings.hasOwnProperty("multi_selection"))c=this.settings.multi_selection;var d=Upload.Config.MULTIPART;if(this.settings&&this.settings.hasOwnProperty("multipart"))d=this.settings.multipart;$.extend(this.plupload_params,{browse_button:"plupload_filepicker_"+this.plupload_id,drop_element:null,multi_selection:c,multipart:d})}})})();
Buttons.FBConnect=Class.create("Buttons.FBCreate",Controller,{attach:function($super,b){$super(b);this.data=this.getData();this.$link=this.elem.nodeName=="A"?this.$elem:this.find("a");this.bindEvent(this.$link,"click",this.onClick)},onClick:function(){var a=this.$link.attr("href");window.open(a,"_blank","height=460,width=480,status=yes,toolbar=no,menubar=yes,location=no",false);(a=this.data.virtual_page_url)||(a="/Virtual/Login/Facebook");Tracker.pageView(a);return false}});
Search.Box=Class.create("Search.Box",Controller,{attach:function($super,b){$super(b);this.$form=this.$elem.find("form");this.$query=this.$elem.find(".query");this.bindEvent(this.$query,"focus",this.onSearchFocus);this.bindEvent(this.$query,"blur",this.onSearchBlur);this.bindEvent(this.$form,"submit",this.onSubmit)},onSubmit:function(){this.submitQuery();return false},onSearchFocus:function(){if(this.$query[0].value=="Search streams")this.$query[0].value=""},onSearchBlur:function(){if(this.$query[0].value==
"")this.$query[0].value="Search streams"},submitQuery:function(){var a=this.$query.val();a=App.navContext({search:a,tab:""});Nav.setContext(a)}});
Share.Networks=Class.create("Share.Networks",Controller,{initialize:function($super){$super()},attach:function($super,b){$super(b);this.item=this.$elem.getData();this.track_data=this.item.item_type=="photo"?this.item.get("eventid")+":"+this.item.get("mediaid"):this.item.get("eventid");this.$gplus=this.$elem.find(".gplus")},added:function(){gapi.plusone.render(this.$gplus.find(".button")[0],{href:this.item.get("link_url"),annotation:"none"})},onFacebookClick:function(){Tracker.event("Photo","Share_Facebook",
this.track_data,"")},onTwitterClick:function(){Tracker.event("Photo","Share_Twitter",this.track_data,"")}});
(function(){Manage.EditableEmailItem=Class.create("Manage.EditableEmailItem",Controller,{attach:function($super,b){$super(b);this.data=this.$elem.getData();this.bindProp(this.data,"status",this.onStatusChange);this.onStatusChange(this.data.get("status"));this.$address_area=this.$elem.find(".email_address");this.bindEvent(this.$address_area,"click",this.onAddressClick);this.$input_area=this.$elem.find(".input");this.bindEvent(this.$input_area,"blur",this.onInputBlur);this.$delete_btn=this.$elem.find(".remove_email");
this.bindEvent(this.$delete_btn,"click",this.onDeleteClick)},onDeleteClick:function(){this.$elem.trigger("delete_email",[this.data.get("email")])},onAddressClick:function(){this.$input_area.val(this.data.get("email"));this.$address_area.hide();this.$input_area.show();this.$input_area.focus()},onInputBlur:function(){this.data.set("email",this.$input_area.val());this.$input_area.hide();this.$address_area.show();EmailUtils.validateEmail(this.$input_area.val())?this.data.set("status","ok"):this.data.set("status",
"error")},onStatusChange:function(a,b){b&&this.$elem.removeClass(b);a&&this.$elem.addClass(a);this.$elem.trigger("status_change",[a,b])}})})();
(function(){Manage.EmailList=Class.create("Manage.EmailList",Controller,{attach:function($super,b){$super(b);this.list=this.$elem.getData();this.bindEvent(this.$elem,"delete_email",this.onDeleteEmail)},onDeleteEmail:function(a,b){var c=this.list.firstIndex(),d=this.list.lastIndex();for(c=c;c<=d;c++)if(this.list.getItemAt(c).get("email")==b){this.list.remove(c);break}}})})();
(function(){Manage.Invite=Class.create("Manage.Invite",Controller,{initialize:function($super){$super();this.emails=new List;this.index=new ListIndex(this.emails,"email");this.set("invites_text","")},attach:function($super,b){$super(b);this.stream=this.getData();this.$form=this.find("form");this.bindEvent(this.$form,"submit",this.onSubmit);this.$entry=this.find(".email_entry");this.$entry.val("Enter any email address(es)");this.bindEvent(this.$entry,"focus",this.onEntryFocus);this.bindEvent(this.$entry,
"blur",this.onEntryBlur);this.$submit=this.find(".submit");this.bindEvent(this.$elem,"show",this.onShow)},detach:function($super){$super();this.hideAllErrors()},onShow:function(a,b){if(b)!Liveshare.authenticated()&&this.emails.length()>0&&this.showLoginError();else this.hideAllErrors()},showLoginError:function(){if(!this.login_error)this.login_error=Form.showError(this.$submit,"Click 'Send Invites' and then login or signup.",{direction:"top"})},hideAllErrors:function(){if(this.login_error){this.login_error.hide();
this.login_error=undefined}},onSubmit:function(){this.hideAllErrors();this.$entry.blur();if(this.$entry.val()=="Enter any email address(es)")this.stream.get("eventid")?this.sendToServer():this.saveToStream();return false},sendToServer:function(){var a="",b=this.emails.firstIndex(),c=this.emails.lastIndex();for(b=b;b<=c;b++){var d=this.emails.getItemAt(b);if(d.get("status")=="ok"){if(a!="")a+=",";a+=d.get("email")}}if(a!=""){var e=this,f=new Stream.Tasks.AddFriends(this.stream,a);f.then(function(g){if(f.response){for(var k=
e.emails.num_items>1?e.emails.num_items+" invites sent":e.emails.num_items+" invite sent",n=e.emails.firstIndex();n<=e.emails.lastIndex();)if(e.emails.getItemAt(n).get("status")=="ok"){e.emails.remove(n);n=Math.max(n,e.emails.firstIndex());e.set("invites_text",k)}else n++;(new App.Tasks.RefreshStreamDetails(e.stream)).then(g).run()}else{e.showLoginError();g&&g()}});f.run()}},saveToStream:function(){if(!this.stream.users)this.stream.users=[];var a=this.emails.firstIndex(),b=this.emails.lastIndex();
for(a=a;a<=b;a++){var c=this.emails.getItemAt(a);c.get("status")=="ok"&&this.stream.users.push({email:c.get("email")})}},onEntryFocus:function(){this.$entry.val()=="Enter any email address(es)"&&this.$entry.val("")},onEntryBlur:function(){var a=this.$entry.val();if(a=="")this.$entry.val("Enter any email address(es)");else if(a!="Enter any email address(es)"){if(a=this.listify(a)){a=a.split(",");for(var b=0;b<a.length;b++){var c="unknown";if(EmailUtils.validateEmail(a[b]))c="ok";else{if(!this.hasError)this.hasError=
true;c="error"}var d=$.trim(a[b]);this.index.get(d)||this.emails.append(new PropertyList({email:d,status:c}))}}this.$entry.val("Enter any email address(es)")}},listify:function(a){a=a.replace(/[<>]/g,"").replace(/[;,\n\t ]/g,",").split(",");for(var b=[],c=0;c<a.length;c++)a[c].length>0&&$.trim(a[c])!=""&&b.push($.trim(a[c]));return b.length>0?b.join(","):false}})})();
Manage.Members=Class.create("Manage.Members",Layout.Controller,{initialize:function($super){$super("members");this.members=new List},attach:function($super,b){$super(b);this.stream=this.$elem.getData();this.$private=this.$elem.find(".private");this.$public=this.$elem.find(".public");this.$owner=this.$elem.find(".owner");this.$invite=this.find(".invite.section");this.$scroll_container=this.$elem.find(".scroll-container");this.$scroll_content=this.$elem.find(".scroll-content");this.$visibility=this.$elem.find("input:radio[name=visibility]");
this.bindEvent(this.$visibility,"change",this.onVisibilityChange);this.bindEvent(this.$elem,"show",this.onShow);this.bindProp(this.stream,"owner",this.onChange);this.bindProp(this.stream,"num_members",this.onChange);this.bindProp(this.stream,"is_private",this.onChange);this.onChange()},added:function(){this.sizeScrollContainer();this.$scroll_container.jScrollPane({maintainPosition:true,verticalGutter:0,showArrows:true,horizontalGutter:10,mouseWheelSpeed:2,arrowButtonSpeed:2,animateScroll:false})},
onShow:function(a,b){b&&this.layout();this.$invite.triggerHandler("show",[b])},layout:function(a,b){this.reinitScroll();b&&b()},sizeScrollContainer:function(){var a=this.$scroll_content.outerHeight(true);this.$scroll_container.height(Utils.clamp(a,100,310))},reinitScroll:function(){var a=this.$scroll_container.data("jsp");if(a){this.sizeScrollContainer();a.reinitialise()}},updateMemberList:function(){this.members.removeAll();var a=this.stream.get("users");if(a)for(var b=0;b<a.length;b++)this.members.append(a[b]);
this.reinitScroll()},onVisibilityChange:function(){var a=this;if(this.$visibility.filter(":checked").val()=="private"){this.stream.set("is_private",true);LiveshareAPI.EditEvent({eventid:this.stream.get("eventid"),visibility:2},function(){(new App.Tasks.RefreshStreamDetails(a.stream)).complete(function(){a.updateMemberList()}).run()})}else{this.stream.set("is_private",false);LiveshareAPI.EditEvent({eventid:this.stream.get("eventid"),visibility:1},function(){})}},onChange:function(){this.updateMemberList();
this.$owner.hide();if(this.stream.get("is_private")){this.$private.show();this.$public.hide();this.$elem.removeClass("public").addClass("private");this.$visibility.filter("[value=private]").attr("checked","checked");var a=this.stream.get("num_members");this.set("members_text",a+(a>1?" members":" member"))}else{this.$private.hide();this.$public.show();this.$elem.removeClass("private").addClass("public");this.$visibility.filter("[value=public]").attr("checked","checked")}}});
(function(){var a=server_vars.login_ssl?server_vars.base_url.replace("http://","https://"):server_vars.base_url;Login.API={toString:function(){return"Login.API"},ForgotPassword:function(b,c){$.ajax({type:"POST",url:a+"/login/ajaxforgotpassword",data:"lsEmailPhone="+encodeURIComponent(b),success:function(d){c(d)}})},DoLogin:function(b,c,d){$.ajax({type:"POST",url:a+"/login/ajaxauth",data:"lsEmailPhone="+encodeURIComponent(b)+"&lsPassword="+encodeURIComponent(c)+"&fb_token=1",success:function(e){d(e)}})},
DoFacebookLogin:function(b,c){$.ajax({type:"POST",url:a+"/login/fbajaxauth",data:"access_token="+b,success:function(d){c(d)}})},DoSignup:function(b,c,d,e,f,g,k){$.ajax({type:"POST",url:a+"/login/ajaxsignup",data:{lsFirstName:b,lsLastName:c,lsEmail:d,lsPassword:e,fb_token:1,captcha_challenge:f,captcha_response:g},success:function(n){k(n)}})}}})();
(function(){Login.Controller=Class.create("Login.Controller",Controller,{initialize:function($super,b){$super();b||(b={});this.template_instances={};this.state_to_template={initial:["/src/app/login/state/initial/initial_state.template",b],login:["/src/app/login/state/login/login_state.template",b],signup:["/src/app/login/state/signup/signup_state.template",b],forgotpassword:["/src/app/login/state/forgotpassword/forgotpassword.template",b],fpack:"/src/app/login/state/forgotpassword/acknowledgement.template"};
this.set("state",undefined)},attach:function($super,b){$super(b);this.bindEvent(this.$elem,"add_template",this.onAddTemplate);this.bindEvent(this.$elem,"remove_template",this.onRemoveTemplate);this.bindEvent(this.$elem,"resize",this.onResize);this.bindEvent(this.$elem,"request-forgotpassword",this.onRequestForgotPassword);this.bindEvent(this.$elem,"request-signup",this.onRequestSignup);this.bindEvent(this.$elem,"login-success",this.onLoginSuccess);this.bindEvent(this.$elem,"request-fpack",this.onRequestFpack);
this.bindEvent(this.$elem,"request-login",this.onRequestLogin);this.bindEvent(this.$elem,"hide_errors",this.hideAllErrors)},detach:function(){this.template_instances={}},added:function(){var a=this.$elem.getData();a.state&&this.setState(a.state)},hideAllErrors:function(){this.$current&&this.$current.triggerHandler("hide_errors")},onAddTemplate:function(a,b){this.$current=b;this.$elem.trigger("resize")},onRemoveTemplate:function(){},getState:function(){return this.get("state")},setState:function(a){this.hideAllErrors();
this.set("state",a)},onRequestForgotPassword:function(){this.setState("forgotpassword")},onRequestFpack:function(){this.setState("fpack")},onRequestLogin:function(){this.setState("login")},onRequestSignup:function(){this.setState("signup")},onLoginSuccess:function(){$(window).triggerHandler("loginSuccess")},onResize:function(){}})})();
(function(){Login.State.Controller=Class.create("Login.State.Controller",Controller,{initialize:function($super){$super()},attach:function($super,b){$super(b)},detach:function($super){$super()},makeRelative:function(){this.$elem.removeClass("mk_absolute").addClass("mk_relative")},makeAbsolute:function(){this.$elem.removeClass("mk_relative").addClass("mk_absolute")},hideAllErrors:function(){}})})();
(function(){function a(e){for(var f=0;f<e.length;f++)e[f]&&e[f].removeClass("mk_relative").addClass("mk_absolute")}function b(e){return function(f,g,k,n){var o=f.$elem.outerHeight(true),u=f.$elem.outerWidth(true);f.$elem.css({height:o,width:u});var s=0,h=0;(new Task(function(m){if(g)g.fadeTo(d,0,m);else m&&m()})).then(function(m){a([g]);if(k){a([k]);k.fadeTo(0,0);k.show();f.append(k);s=k.outerHeight(true);h=k.outerWidth(true);k.css({height:s,width:h})}m&&m()}).then(function(m){Tween.to(null,e+"-transition",
d/1E3,function(r,p,l){f.$elem.css({height:Math.round(o+(s-o)*p),width:Math.round(u+(h-u)*p)});f.$elem.trigger("resize");k&&k.fadeTo(0,p);if(l){g&&g.hide();r=[g,k];for(p=0;p<r.length;p++)r[p]&&r[p].removeClass("mk_absolute").addClass("mk_relative");f.$elem.css({width:"auto",height:"auto"});k.css({width:"auto",height:"auto"});m()}},0,1,"easeOutSine")}).complete(n).run()}}function c(){return function(e,f,g,k){f&&f.hide();if(g){g.show();e.append(g)}k()}}var d=250;Login.Transitions={toString:function(){return"Login.Transitions"},
"initial-login":b("initial-login"),"login-initial":c("login-initial"),"initial-signup":b("initial-signup"),"signup-initial":c("signup-initial"),"login-signup":b("login-signup"),"signup-login":b("signup-login"),"login-forgotpassword":b("login-forgotpassword"),"forgotpassword-login":b("forgotpassword-login"),"forgotpassword-initial":c("forgotpassword-initial"),"forgotpassword-fpack":b("forgotpassword-fpack"),"fpack-initial":c("fpack-initial")}})();
Login.State.Initial=Class.create("Login.State.Initial",Controller,{attach:function($super,b){$super(b);this.$signup=this.$elem.find(".signup");this.bindEvent(this.$signup,"click",this.onSignup)},onSignup:function(){this.$elem.trigger("request-signup");return false}});
(function(){Login.State.ForgotPassword=Class.create("Login.State.ForgotPassword",Login.State.Controller,{initialize:function($super){$super();this.errors={generic:"Unable to process your request right now",email:"Please provide a valid email"};this.error_params={direction:"right"}},attach:function($super,b){$super(b);this.$email=this.$elem.find("input[name='lsEmailPhone']:first");this.$lsSubmit=this.$elem.find("a[name='lsSubmit']:first");this.$back=this.$elem.find("a.back-to-login:first");this.hideAllErrors();
this.bindEvent(this.$email,"focus",this.onEmailFocus);this.bindEvent(this.$email,"blur",this.onEmailBlur);this.bindEvent(this.$email,"keypress",this.onEmailKeyPress);this.bindEvent(this.$lsSubmit,"click",this.onSubmit);this.bindEvent(this.$elem,"hide_errors",this.hideAllErrors);this.bindEvent(this.$back,"click",this.onBackRequest);this.requestIsPending=false;var c=this.$elem.getData();if(c.direction)this.error_params.direction=c.direction},detach:function($super){this.hideAllErrors();$super()},hideAllErrors:function(){Form.hideError(this.$email);
Form.hideError(this.$lsSubmit)},onEmailFocus:function(){if(this.$email[0].value=="Email"){this.$email.attr("value","");this.$email.removeClass("idle").addClass("focus")}},onEmailBlur:function(){if(this.$email[0].value==""){this.$email.attr("value","Email");this.$email.removeClass("focus").addClass("idle")}else EmailUtils.validateEmail(this.$email[0].value)||Form.showError(this.$email,this.errors.email,this.error_params)},onEmailKeyPress:function(a){Form.hideError(this.$email);a.which==13&&this.onSubmit()},
onSubmit:function(){if(this.$email[0].value==""||this.$email[0].value=="Email"||!EmailUtils.validateEmail(this.$email[0].value)){Form.showError(this.$email,this.errors.email,this.error_params);return false}this.hideAllErrors();if(!this.requestIsPending){this.requestIsPending=true;Login.API.ForgotPassword(this.$email[0].value,delegate(this,this.onSubmitResponse))}},onBackRequest:function(){this.$elem.trigger("request-login");return false},onSubmitResponse:function(a){a.returncode==0?this.$elem.trigger("request-fpack"):
Form.showError(this.$lsSubmit,this.errors.generic,this.error_params);this.requestIsPending=false}})})();
(function(){Login.State.Login=Class.create("Login.State.Login",Login.State.Controller,{initialize:function($super){$super();this.errors={generic:"Unable to login with that email and password",email:"Invalid Email",password:"Please type a password"};this.error_params={direction:"right"}},attach:function($super,b){$super(b);this.$pass=this.find("input[name='lsPassword']:first");this.$fauxpass=this.find("input[name='lsFauxPassword']:first");this.$email=this.find("input[name='lsEmailPhone']:first");this.$lsSubmit=
this.find("input[name='lsSubmit']:first");this.$request_pword=this.find("a[name='request_pword']:first");this.$request_signup=this.find("a[name='request_signup']:first");this.$login_error=this.find(".login_error");this.$form=this.find("form");this.hideAllErrors();this.bindEvent(this.$email,"focus",this.onEmailFocus);this.bindEvent(this.$email,"blur",this.onEmailBlur);this.bindEvent(this.$email,"keypress",this.onEmailKeyPress);this.bindEvent(this.$fauxpass,"focus",this.onFauxPasswordFocus);this.bindEvent(this.$pass,
"blur",this.onPasswordBlur);this.bindEvent(this.$pass,"keypress",this.onPasswordKeyPress);this.bindEvent(this.$lsSubmit,"click",this.onSubmit);this.bindEvent(this.$form,"submit",this.onSubmit);this.bindEvent(this.$request_pword,"click",this.onPasswordRequest);this.bindEvent(this.$request_signup,"click",this.onSignupRequest);this.bindEvent(this.$elem,"hide_errors",this.hideAllErrors);this.requestIsPending=false;var c=this.$elem.getData();if(c.direction)this.error_params.direction=c.direction},detach:function($super){this.hideAllErrors();
$super()},hideAllErrors:function(){Form.hideError(this.$email);Form.hideError(this.$pass);Form.hideError(this.$login_error)},onEmailFocus:function(){Form.hideError(this.$login_error);if(this.$email[0].value=="Email"){this.$email[0].value="";this.$email.removeClass("idle").addClass("focus")}},onEmailBlur:function(){if(this.$email[0].value==""){this.$email[0].value="Email";this.$email.removeClass("focus").addClass("idle");Form.hideError(this.$email)}else EmailUtils.validateEmail(this.$email[0].value)?
Form.hideError(this.$email):Form.showError(this.$email,this.errors.email,this.error_params)},onEmailKeyPress:function(){Form.hideError(this.$email)},showPasswordField:function(){this.$fauxpass.removeClass("block").addClass("hidden");this.$pass.removeClass("hidden").addClass("block");this.$pass.removeClass("idle").addClass("focus");this.$pass.focus()},onFauxPasswordFocus:function(){Form.hideError(this.$login_error);this.showPasswordField()},onPasswordBlur:function(){this.$pass.removeClass("focus").addClass("idle");
if(this.$pass[0].value==""){this.$fauxpass.removeClass("hidden").addClass("block");this.$pass.removeClass("block").addClass("hidden");Form.hideError(this.$pass)}},onPasswordKeyPress:function(){Form.hideError(this.$pass)},onSubmit:function(){if(!EmailUtils.validateEmail(this.$email[0].value)){Form.showError(this.$email,this.errors.email,this.error_params);return false}if(this.$pass[0].value==""){this.showPasswordField();Form.showError(this.$pass,this.errors.password,this.error_params);return false}this.hideAllErrors();
Tracker.pageView("/Virtual/Login/Liveshare");if(!this.requestIsPending){this.requestIsPending=true;this.$lsSubmit.addClass("disabled");Login.API.DoLogin(this.$email[0].value,this.$pass[0].value,delegate(this,this.onSubmitResponse));return false}},onSubmitResponse:function(a){if(a.returncode==0){Tracker.pageView("/Virtual/Login/Success/Liveshare");this.$elem.trigger("login-success")}else{this.$lsSubmit.removeClass("disabled");Form.showError(this.$login_error,this.errors.generic,this.error_params)}this.requestIsPending=
false},onPasswordRequest:function(){this.$elem.trigger("request-forgotpassword");return false},onSignupRequest:function(){this.$elem.trigger("request-signup");return false}})})();
(function(){Login.State.Signup=Class.create("Login.State.Signup",Login.State.Controller,{initialize:function($super){$super();this.errors={generic:"Unable to process your request right now",password:"Your password needs to have at least 6 characters",captcha:"Incorrect captcha, try again",email_invalid:"Please enter a valid email address",email_taken:"That email address is already associated with another user",name:"Both first and last name are required"};this.error_params={direction:"right"}},attach:function($super,
b){$super(b);this.$nameField=this.$elem.find(".nameField:first");this.$fname=this.$elem.find("input[name='lsFirstName']:first");this.$lname=this.$elem.find("input[name='lsLastName']:first");this.$email=this.$elem.find("input[name='lsEmail']:first");this.$pass=this.$elem.find("input[name='lsPassword']:first");this.$fauxpass=this.$elem.find("input[name='lsFauxPassword']:first");this.$lsSubmit=this.$elem.find("input[name='lsSubmit']:first");this.$request_login=this.$elem.find("a[name='request_login']:first");
this.$lslogin=this.$elem.find("p[name='liveshare_login']:first");this.$form=this.find("form");this.hideAllErrors();this.bindEvent(this.$fname,"focus",this.onFirstNameFocus);this.bindEvent(this.$fname,"blur",this.onFirstNameBlur);this.bindEvent(this.$fname,"keypress",this.onFirstNameKeypress);this.bindEvent(this.$lname,"focus",this.onLastNameFocus);this.bindEvent(this.$lname,"blur",this.onLastNameBlur);this.bindEvent(this.$lname,"keypress",this.onLastNameKeypress);this.bindEvent(this.$email,"focus",
this.onEmailFocus);this.bindEvent(this.$email,"blur",this.onEmailBlur);this.bindEvent(this.$email,"keypress",this.onEmailKeypress);this.bindEvent(this.$fauxpass,"focus",this.onFauxPasswordFocus);this.bindEvent(this.$pass,"focus",this.onPasswordFocus);this.bindEvent(this.$pass,"blur",this.onPasswordBlur);this.bindEvent(this.$pass,"keypress",this.onPasswordKeypress);this.bindEvent(this.$lsSubmit,"click",this.onSubmit);this.bindEvent(this.$form,"submit",this.onSubmit);this.bindEvent(this.$request_login,
"click",this.onLoginRequest);this.bindEvent(this.$elem,"hide_errors",this.hideAllErrors);this.requestIsPending=false;var c=this.$elem.getData();if(c.direction)this.error_params.direction=c.direction},detach:function($super){this.hideAllErrors();$super()},initCaptcha:function(a){if(server_vars.captcha&&!this.$captcha){this.$captcha=this.$elem.find(".captcha");Recaptcha.create(server_vars.recaptcha_key,this.$captcha[0],{theme:"white",callback:a?a:delegate(this,this.onLoadCaptcha)})}},onLoadCaptcha:function(){this.$elem.trigger("resize")},
hideAllErrors:function(){Form.hideError(this.$email);Form.hideError(this.$pass);Form.hideError(this.$nameField);this.$captcha&&Form.hideError(this.$captcha);Form.hideError(this.$lsSubmit)},hideLiveshareLogin:function(){this.$lslogin.hide()},hideTOS:function(){this.$elem.find("#tos:first").hide()},onFirstNameFocus:function(){if(this.$fname[0].value=="First Name"){this.$fname[0].value="";this.$fname.removeClass("idle").addClass("focus")}},onFirstNameBlur:function(){if(this.$fname[0].value==""){this.$fname[0].value=
"First Name";this.$fname.removeClass("focus").addClass("idle")}},onFirstNameKeypress:function(){Form.hideError(this.$nameField)},onLastNameFocus:function(){if(this.$lname[0].value=="Last Name"){this.$lname[0].value="";this.$lname.removeClass("idle").addClass("focus")}},onLastNameBlur:function(){if(this.$lname[0].value==""){this.$lname[0].value="Last Name";this.$lname.removeClass("focus").addClass("idle")}},onLastNameKeypress:function(){Form.hideError(this.$nameField)},onEmailFocus:function(){if(this.$email[0].value==
"Email"){this.$email[0].value="";this.$email.removeClass("idle").addClass("focus")}},onEmailBlur:function(){if(this.$email[0].value==""){this.$email[0].value="Email";this.$email.removeClass("focus").addClass("idle");Form.hideError(this.$email)}else EmailUtils.validateEmail(this.$email[0].value)?Form.hideError(this.$email):Form.showError(this.$email,this.errors.email_invalid,this.error_params)},onEmailKeypress:function(){Form.hideError(this.$email)},showPasswordField:function(){this.$fauxpass.removeClass("block").addClass("hidden");
this.$pass.removeClass("hidden").addClass("block");this.$pass.removeClass("idle").addClass("focus");this.$pass.focus()},onFauxPasswordFocus:function(){this.showPasswordField()},onPasswordFocus:function(){this.initCaptcha()},onPasswordBlur:function(){this.$pass.removeClass("focus").addClass("idle");if(this.$pass[0].value==""){this.$pass.removeClass("block").addClass("hidden");this.$fauxpass.removeClass("hidden").addClass("block");Form.hideError(this.$pass)}else this.$pass[0].value.length<6&&Form.showError(this.$pass,
this.errors.password,this.error_params)},onPasswordKeypress:function(){Form.hideError(this.$pass)},onSubmit:function(){this.hideAllErrors();if(!EmailUtils.validateEmail(this.$email[0].value)){Form.showError(this.$email,this.errors.email_invalid,this.error_params);this.$email.focus();return false}if(this.$pass[0].value.length<6){this.showPasswordField();Form.showError(this.$pass,this.errors.password,this.error_params);return false}var a=this.$fname[0].value=="First Name"?"":this.$fname[0].value,b=
this.$lname[0].value=="Last Name"?"":this.$lname[0].value;if(!a||!b){Form.showError(this.$nameField,this.errors.name,this.error_params);return false}if(this.requestIsPending)return false;this.requestIsPending=true;this.$lsSubmit.addClass("disabled");Tracker.pageView("/Virtual/Signup/Liveshare");var c=null,d=null;if(server_vars.captcha){c=Recaptcha.get_challenge();d=Recaptcha.get_response();Recaptcha.destroy()}this.$captcha=undefined;Login.API.DoSignup(a,b,this.$email[0].value,this.$pass[0].value,
c,d,delegate(this,this.onSubmitResponse));return false},onSubmitResponse:function(a){switch(a.returncode){case 0:Tracker.pageView("/Virtual/Signup/Success/Liveshare");this.$elem.trigger("login-success");break;case 2:Form.showError(this.$pass,this.errors.password,this.error_params);this.$pass.focus();break;case 4:Form.showError(this.$email,this.errors.email_taken,this.error_params);this.$email.focus();break;case 3:case 5:case 6:Form.showError(this.$email,this.errors.email_invalid,this.error_params);
this.$email.focus();break;case 7:var b=this;this.initCaptcha(function(){Form.showError(b.$captcha,b.errors.captcha,b.error_params)});break;default:Form.showError(this.$lsSubmit,this.errors.generic,this.error_params)}if(a.returncode!=0){this.$lsSubmit.removeClass("disabled");this.initCaptcha()}this.requestIsPending=false},onLoginRequest:function(){this.$elem.trigger("request-login");return false}})})();
Menu.Actions=Class.create("Menu.Actions",Menu.Controller,{attach:function($super,b){$super(b);this.$mobile_download=this.$elem.find(".mobile_download");this.bindEvent(this.$mobile_download,"click",this.onMobileClick);this.bindProp(Liveshare.MyUser,"authenticated",this.update);this.update()},onMobileClick:function(){Tracker.event("TopRightMenu","Download","","");modalWindow.open({controller:"",template:"/src/app/menu/mobile/mobile_devices.template",data:{},frame:false,width:357,height:153});return false},
update:function(){this.$elem.css({display:Liveshare.authenticated()?"none":"block"})}});
Menu.Login=Class.create("Menu.Login",Menu.Controller,{attach:function($super,b){$super(b);Menu.register("login",this);this.$login=this.$elem.find(".login-container");this.$bubble=this.$elem.find(".message_bubble:first");this.$window=$(window);this.bindEvent(this.$window,"loginSuccess",this.close);this.bindProp(Liveshare.MyUser,"authenticated",this.update);this.bindEvent(Nav,"change",this.update);this.update()},update:function(){var a="none";Liveshare.authenticated()||(a="block");this.$elem.css({display:a});
this.$elem.trigger("resize")},onShow:function($super){$super();_gaq.push(["_trackEvent","TopRightMenu","Login"]);this.$login.getController().setState("login")},onHide:function($super){this.$login.triggerHandler("hide_errors");$super()}});
Menu.User=Class.create("Menu.User",Menu.Controller,{attach:function($super,b){$super(b);this.$links=this.$elem.find("a");this.bindEvent(this.$links,"click",this.onLinkClick);this.$logout=this.find("a.logout");this.$mobile_download=this.$elem.find(".mobile_download");this.$profile=this.find("a.profile");this.bindEvent(this.$profile,"click",this.onProfileClick);this.bindEvent(this.$mobile_download,"click",this.onMobileClick);this.bindEvent(this.$logout,"click",this.onLogoutClick);this.bindProp(Liveshare.MyUser,
"authenticated",this.update);this.update()},onProfileClick:function(){Nav.setContext(App.navContext({tab:"profile"}));return false},onMobileClick:function(){Tracker.event("TopRightMenu","Download","","");modalWindow.open({controller:"",template:"/src/app/menu/mobile/mobile_devices.template",data:{},frame:false,width:357,height:153});return false},onLinkClick:function(){this.close()},onLogoutClick:function(){},onLogout:function(){Liveshare.MyUser.set("authenticated",false);Liveshare.MyUser.set("userid",
undefined);server_vars.authenticated=false},update:function(){this.set("username",Liveshare.MyUser.get("firstname")+" "+Liveshare.MyUser.get("lastname").substr(0,1)+".");this.$elem.css({display:Liveshare.MyUser.get("authenticated")?"block":"none"});this.$elem.trigger("resize")}});Menu.Mobile=Class.create("Menu.Mobile",Menu.Controller,{attach:function($super,b){$super(b);this.$link=this.$elem.find("a.go_mobile");this.bindEvent(this.$link,"click",this.onMobileClick)},onMobileClick:function(){return false}});
Menu.Members=Class.create("Menu.Members",Menu.Controller,{initialize:function($super){$super();this.members_text=""},attach:function($super,b){$super(b);Menu.register("stream_members",this);this.stream=this.getData();this.$members=this.find(".manage_members");this.bindProp(this.stream,"num_members",this.onChange);this.bindProp(this.stream,"is_private",this.onChange);this.onChange()},detach:function($super){$super();Menu.unregister("stream_members",this)},onShow:function($super){$super();this.$members.triggerHandler("show",
[true])},onHide:function($super){$super();Notices.cancelDisplay("stream_created","create_stream");this.$members.triggerHandler("show",[false])},onChange:function(){if(this.stream.get("is_private")){var a=this.stream.get("num_members");a>0?this.set("members_text",a):this.set("members_text","")}else this.set("members_text","")},showCreateMessage:function(){var a=applyTemplate("/src/app/notices/create_stream_notice.template",this.stream);a=new Notice({$content:a,contenttype:"dom",id:"stream_created",
priority:3,timeOut:0,slot:"create_stream",show_close:false,css_class:"info_block"});Notices.requestDisplay(a)}});var Notices;
(function(){Notice.Q=Class.create("Notice.Q",PropertyList,{initialize:function($super,b){$super();this.noticeQ=[];this.notice_on_display=false;this.current_notice=this.timeout_id=undefined;this.slot=b.slot},requestDisplay:function(a){if(a.isValid()){if(this.notice_on_display&&this.current_notice&&this.current_notice.priority<a.priority){this.insertNotice(this.current_notice);this.clearTimer();Notices.set(this.slot+"_current_notice",undefined);this.notice_on_display=false}this.insertNotice(a);this.playNextNotice()}},
cancelDisplay:function(a){if(this.notice_on_display&&this.current_notice&&this.current_notice.id==a){this.clearTimer();Notices.set(this.slot+"_current_notice",undefined);this.notice_on_display=false}for(var b=0;b<this.noticeQ.length;b++)if(this.noticeQ[b].id==a){this.noticeQ.splice(b,1);break}this.playNextNotice()},insertNotice:function(a){var b;for(b=0;b<this.noticeQ.length;b++)if(this.noticeQ[b].id==a.id)return;var c=false;for(b=0;b<this.noticeQ.length;b++)if(this.noticeQ[b].priority<a.priority){this.noticeQ.splice(b,
0,a);c=true;break}c||this.noticeQ.push(a)},playNextNotice:function(){if(this.noticeQ.length>0&&!this.notice_on_display){this.current_notice=this.noticeQ.shift();Notices.set(this.slot+"_current_notice",this.current_notice);this.notice_on_display=true;if(this.current_notice.timeOut>0)this.timeout_id=setTimeout(delegate(this,this.onTimerExpire),this.current_notice.timeOut)}},clearTimer:function(){if(this.timeout_id!=undefined){clearTimeout(this.timeout_id);this.timeout_id=undefined}},onTimerExpire:function(){this.timeout_id=
undefined;Notices.set(this.slot+"_current_notice",undefined);this.notice_on_display=false;this.playNextNotice()}});Notice.Manager=Class.create("Notice.Manager",PropertyList,{initialize:function($super){$super();this.slot_to_q={center_top:new Notice.Q({slot:"center_top"}),right_top:new Notice.Q({slot:"right_top"}),right_bottom:new Notice.Q({slot:"right_bottom"}),create_stream:new Notice.Q({slot:"create_stream"})}},requestDisplay:function(a){a.isValid()&&this.slot_to_q[a.slot].requestDisplay(a)},cancelDisplay:function(a,
b){this.slot_to_q[b].cancelDisplay(a)}});Notices=new Notice.Manager})();
(function(){Notice.Controller=Class.create("Notice.Controller",Controller,{attach:function($super,b){$super(b);this.notice=this.getData();this.$container=this.find(".container:first");this.$close=this.find(".close-btn");this.bindEvent(this.$close,"click",this.onClose);this.notice.show_close==false&&this.$close.hide();if(this.notice.isValid()){this.$container.empty();var c=this.notice.$content;c||(c=applyTemplate(this.notice.template));this.$container.append(c)}this.notice.css_class&&this.$elem.addClass(this.notice.css_class);
this.$elem.css({opacity:0})},detach:function($super){$super();this.task&&this.task.cancel()},added:function(){var a=new Task,b=this;this.notice.initial_delay&&a.delay(this.notice.initial_delay);this.notice.fade_in_time?a.then(function(c){b.$elem.animate({opacity:1},b.notice.fade_in_time,c)}):a.then(function(c){b.$elem.css({opacity:1});c&&c()});if(this.notice.display_time){a.delay(this.notice.display_time);this.notice.fade_out_time?a.then(function(c){b.$elem.animate({opacity:0},b.notice.fade_out_time,
c)}):a.then(function(c){b.$elem.css({opacity:0});c&&c()});a.then(function(c){b.onClose();c&&c()})}this.task=a;a.run()},onClose:function(){Notices.cancelDisplay(this.notice.id,this.notice.slot)}})})();(function(){Menu.SignupNotice=Class.create("Menu.SignupNotice",Menu.Controller,{initialize:function($super){$super()},attach:function($super,b){$super(b);this.$login_container=this.find(".login-container");this.bindEvent(this.$elem,"menu_hide",this.onMenuHide)},detach:function($super){$super()},onMenuHide:function(){this.$login_container.trigger("hide_errors")}})})();
var Messages={toString:function(){return"Messages"}};
(function(){Stream.Empty=Class.create("Stream.Empty",Controller,{initialize:function($super){$super();this.showDndTemplate=$.support.fileDrop},attach:function($super,b){$super(b);var c=this.$elem.getData();if(App.isHomePage()){this.$video=this.find("div.home_actions a.video");this.bindEvent(this.$video,"click",this.onVideoClick)}if(!$.support.fileAPI)if(this.showDndTemplate){this.$headline=this.find("div.headline>h3:first");this.$localfilesabsent=this.find("div.local_files_absent:first");this.$localfilespresent=
this.find("div.local_files_present:first");this.$subheadline=this.find("div.subheadline:first");this.$homeactions=b.find(".home_actions:first");this.bindProp(c,"orphan_file_count",this.onSafariOrphanFileCountChange)}else{this.$headline=this.find("h2.text_center:first");this.$localfilespresent=this.find("div.local_files_present:first");this.$subheadline=this.find("div.subheadline_ie:first");this.bindProp(c,"orphan_file_count",this.onIEOrphanFileCountChange)}},detach:function($super){$super()},onSafariOrphanFileCountChange:function(a){if(a==
0){this.$elem.removeClass("local_files_added");this.$homeactions.show();this.$localfilesabsent.show();this.$localfilespresent.hide();this.$headline.html("Drag & drop photos here to start your stream now.")}else{this.$elem.addClass("local_files_added");this.$homeactions.hide();this.$localfilesabsent.hide();this.$localfilespresent.show();this.$subheadline.html("Your "+(a==1?"photo":"photos")+" will be uploaded when you click the Create Stream button");this.$headline.html(a+(a==1?" photo":" photos")+
" pending for upload...")}},onIEOrphanFileCountChange:function(a){if(a==0){this.$elem.removeClass("local_files_added");this.$headline.html("Add photos to begin this stream.");this.$localfilespresent.hide()}else{this.$elem.addClass("local_files_added");this.$headline.html(a+(a==1?" photo":" photos")+" pending for upload...");this.$subheadline.html("Your "+(a==1?"photo":"photos")+" will be uploaded when you click the Create Stream button");this.$localfilespresent.show()}},onVideoClick:function(){modalWindow.open({source:"http://www.youtube.com/embed/TAKvmli2tFU?autoplay=1",
width:"560",height:"315",frame:true,window_style:"padding:20px"});return false}})})();Messages.Login=Class.create("Messages.Login",Controller,{attach:function($super,b){$super(b);this.$login=this.find("a.login");this.bindEvent(this.$login,"click",this.onClick)},onClick:function(){Login.prompt({data:{state:"login",login_title:"Login to LiveShare to comment, like, and add photos of your own."}});return false}});
(function(){Item.Tasks.RefreshItems=Class.create("Stream.Tasks.RefreshItem",Task,{initialize:function($super,b){this.items=b;$super(delegate(this,this.refreshItems))},refreshItems:function(a){for(var b=[],c={},d=0;d<this.items.length;d++){var e=this.items[d],f=e.get("mediaid");c[f]={item:e,touched:false};b.push(f)}LiveshareAPI.GetActivityStream({mediaids:b.join(","),limit:b.length},function(g){g=g.result;if(g.returncode==0){g=g.media;for(var k=0;k<g.length;k++){var n=g[k],o=c[n.mediaid];o.touched=
true;o=o.item;o.parseMediaItem(n)}for(var u in c){o=c[u];if(!o.touched){o=o.item;o.set("deleted",true)}}}a&&a()})}});Item.Tasks.LikeItem=Class.create("Item.Tasks.LikeItem",Login.AuthTask,{initialize:function($super,b){$super(this.likeItem);this.data.login_title="Please login to like this photo.";this.wait_event="loginStreamItems";this.item=b;var c=1;if(this.item.get("myranking")>0)c=0;this.myranking=c},needLogin:function($super){this.item.set("myranking",this.myranking);$super()},onLoginCancel:function($super){this.item.set("myranking",
0);$super()},likeItem:function(){if(this.item.get("myranking")==this.myranking)this.done();else{this.item.set("myranking",this.myranking);var a=this;LiveshareAPI.Like(this.item.get("mediaid"),this.myranking,function(b){if(b.error==401)a.needLogin();else{if(b.hasOwnProperty("result"))if(b.result.returncode==0){b=a.item.get("ranking");if(a.myranking)b++;else b--;a.item.set("ranking",b);a.item.set("myranking",a.myranking);a.item.loadRankings(true)}a.done()}})}}});Item.Tasks.PostComment=Class.create("Item.Tasks.PostComment",
Login.AuthTask,{initialize:function($super,b,c){$super(this.postComment);this.data.login_title="Please login to comment on this photo.";this.item=b;this.text=c;this.wait_event="loginSuccess"},postComment:function(){var a=this.item.get("mediaid"),b=this.item.get("eventid"),c=Liveshare.MyUser,d=uuid(),e=new Liveshare.Comment({user:{userid:c.get("userid"),firstname:c.get("firstname"),lastname:c.get("lastname"),imageurl:c.get("imageurl")},text:this.text,eventid:b,mediaid:a,creationdatetime:(new Date).getTime(),
commentid:d,temp:true});this.item.comments.append(e);$(this.item).triggerHandler("new_comment");var f=this;LiveshareAPI.AddMediaComment(this.item.get("mediaid"),this.text,function(g){if(g.error==401)f.needLogin();else{if(g.result.returncode==0){g=g.result.commentid;e.set("commentid",g);e.set("temp",false);f.item.set("commentcount",f.item.get("commentcount")+1);var k=f.item.comments_index.dict;k.remove(d);k.add(g,e)}f.done()}})}});Item.Tasks.FlagItem=Class.create("Item.Tasks.FlagItem",Login.AuthTask,
{initialize:function($super,b,c){$super(this.flagItem);this.data.login_title="Please login to flag this photo.";this.item=b;this.$elem=c;b=1;if(this.item.get("myflag")>0)b=0;this.myflag=b;this.item.set("myflag",this.myflag)},flagItem:function(){if(Liveshare.MyUser.get("userid")==this.item.get("user").userid){this.$elem.trigger("item_delete",[this.item]);this.done()}else{var a=this;LiveshareAPI.Flag(this.item.get("mediaid"),this.myflag,function(b){if(b.error==401)a.needLogin();else{b.hasOwnProperty("result")&&
b.result.returncode==0&&a.item.set("myflag",a.myflag);a.done()}})}}});Item.Tasks.FlagComment=Class.create("Item.Tasks.FlagComment",Login.AuthTask,{initialize:function($super,b){$super(this.flagComment);this.data.login_title="Please login to flag this comment.";this.comment=b;var c=1;if(this.comment.get("myflag")>0)c=0;this.myflag=c},flagComment:function(){if(this.comment.get("myflag")==this.myflag)this.done();else if(this.comment.get("user").userid==Liveshare.MyUser.get("userid"))(new Item.Tasks.DeleteComment(this.comment)).then(this.callback).run();
else{var a=this;LiveshareAPI.SetMediaCommentFlag(this.comment.get("mediaid"),this.comment.get("commentid"),this.myflag,function(b){if(b.error==401)a.needLogin();else{b.hasOwnProperty("result")&&b.result.returncode==0&&a.comment.set("myflag",a.myflag);a.done()}})}}});Item.Tasks.DeleteComment=Class.create("Item.Tasks.DeleteComment",Login.AuthTask,{initialize:function($super,b,c){$super(this.deleteComment);this.data.login_title="Please login to delete this comment.";this.item=b;this.comment=c},deleteComment:function(){var a=
this;LiveshareAPI.SetMediaCommentDeleted(this.comment.get("commentid"),true,function(b){if(b.error==401)a.needLogin();else{if(b.result.returncode==0){b=a.item.comments.indexOf(a.comment);b!=undefined&&a.item.comments.remove(b);a.item.set("commentcount",a.item.get("commentcount")-1);$(a.item).triggerHandler("comments_refreshed")}a.done()}})}})})();Item.Transitions=[];
(function(){Item.Transitions["normal-selected"]=function(a,b){var c=Stream.Config.TRANSITION_ANIM_TIME,d=a.$elem,e=d.find(".entry:first"),f=d.find(".content:first"),g=d.find(".container:first"),k=d.getLayoutProps(),n=k.border,o=d.getLayout(),u=o.$badge,s=o.$thumb,h=o.$hires,m=o.$flag_overlay;(new Task(function(r){h&&h.hide();u.hide();o.addDetail();o.hideDetail();o.calcDetailProps();r&&r()})).then(function(r){var p=new Transition({outer_width:{start:e.width(),end:o.outer_width},outer_height:{start:e.height(),
end:o.outer_height},thumb_width:{start:s.width(),end:o.thumb_width},thumb_height:{start:s.height(),end:o.thumb_height},thumb_margin_left:{start:0,end:o.thumb_margin.left},thumb_margin_top:{start:0,end:o.thumb_margin.top},x:{start:k.normal_props.x,end:k.selected_props.x},y:{start:k.normal_props.y,end:k.selected_props.y}}),l=false;Tween.to(null,"item-detail-in",c/1E3,function(j,w,v){j=Math.round(p.value("x",w));var q=Math.round(p.value("y",w));d.applyTranslation({x:j,y:q});j=Math.round(p.value("outer_width",
w));q=Math.round(p.value("outer_height",w));var t=Math.round(-j/2),x=Math.round(-q/2);e.css({width:j,height:q});e.applyTranslation({x:t,y:x});g.css({width:j,height:q});f.css({width:j-2*n,height:q-2*n});j=Math.round(p.value("thumb_width",w));q=Math.round(p.value("thumb_height",w));t=Math.round(p.value("thumb_margin_left",w));x=Math.round(p.value("thumb_margin_top",w));var y={width:j,height:q,marginLeft:t,marginRight:t,marginTop:x,marginBottom:x};s.css(y);o.$placeholder&&o.$placeholder.css(y);m&&m.css({width:j,
height:q,left:t,top:x});if(!l&&w>0.8){e.addClass("no_shadow");f.addClass("white_bubble box_shadow");l=true}v&&r&&r()},0,1,"sine")}).delay(1).then(function(r){o.showDetail();o.showHiRes();o.layout();r&&r()}).delay(1).then(b).run()};Item.Transitions["selected-normal"]=function(a,b){var c=Stream.Config.TRANSITION_ANIM_TIME,d=a.$elem,e=d.find(".entry:first"),f=d.find(".content:first"),g=d.find(".container:first"),k=d.getLayoutProps(),n=k.border,o=d.getLayout(),u=o.$badge,s=o.$thumb,h=o.$hires,m=o.$flag_overlay,
r=parseInt(s.css("marginLeft").replace("px","")),p=parseInt(s.css("marginTop").replace("px",""));(new Task(function(l){o.hideDetail();o.removeDetail();o.removeHiRes();o.calcNormalProps();l&&l()})).then(function(l){var j=new Transition({outer_width:{start:e.width(),end:o.outer_width},outer_height:{start:e.height(),end:o.outer_height},thumb_width:{start:s.width(),end:o.inner_width},thumb_height:{start:s.height(),end:o.inner_height},thumb_margin_left:{start:r,end:n},thumb_margin_top:{start:p,end:n},
x:{start:k.selected_props.x,end:k.normal_props.x},y:{start:k.selected_props.y,end:k.normal_props.y}}),w=false;Tween.to(null,"item-detail-out",c/1E3,function(v,q,t){v=Math.round(j.value("x",q));var x=Math.round(j.value("y",q));d.applyTranslation({x:v,y:x});v=Math.round(j.value("outer_width",q));x=Math.round(j.value("outer_height",q));var y=Math.round(-v/2),z=Math.round(-x/2);e.css({width:v,height:x});e.applyTranslation({x:y,y:z});g.css({width:v,height:x});f.css({width:v,height:x});v=Math.round(j.value("thumb_width",
q));x=Math.round(j.value("thumb_height",q));y=Math.round(j.value("thumb_margin_left",q));z=Math.round(j.value("thumb_margin_top",q));var B={width:v,height:x,marginLeft:y,marginRight:y,marginTop:z,marginBottom:z};s.css(B);o.$placeholder&&o.$placeholder.css(B);m&&m.css({width:v,height:x,left:y,top:z});if(!w&&q>0.8){e.removeClass("no_shadow");f.removeClass("white_bubble box_shadow");w=true}t&&l&&l()},0,1,"sine")}).then(function(l){s.show();u.show();s.css({left:n,top:n,margin:0});if(h){h.css({width:s.width(),
height:s.height(),left:n,top:n,margin:0});h.show()}l&&l()}).then(function(l){o.layout();l&&l()}).then(function(l){var j=d.getData();j.comments&&j.clearComments();k.selected_props=undefined;k.normal_props=undefined;l&&l()}).then(b).run()}})();
(function(){Item.Controller=Class.create("Item.Controller",Controller,{attach:function($super,b){$super(b);this.item=b.getData();this.$elem.setState("normal");this.bindProp(this.$elem,"state",this.onStateChange);this.bindEvent(this.$elem,"item_flag",this.onFlag);this.bindEvent(this.$elem,"item_like",this.onLike);this.bindEvent(this.$elem,"comment_delete",this.onDeleteComment)},detach:function($super){$super();this.item=null},onStateChange:function(a,b){b&&this.$elem.removeClass(b);a&&this.$elem.addClass(a);
this.$elem.beginTransition();var c=b+"-"+a;c=Item.Transitions[c];if(!c){c="*-"+a;c=Item.Transitions[c]}if(c){var d=this;c(this,function(){d.afterStateChange(a,b)})}},afterStateChange:function(a,b){this.$elem.endTransition();this.$elem.triggerHandler("state_changed",[a,b])},onLike:function(){this.unbindEvent(this.$elem,"item_like");var a=this;(new Item.Tasks.LikeItem(this.item)).then(function(){a.bindEvent(a.$elem,"item_like",a.onLike)}).run();return false},onFlag:function(){this.unbindEvent(this.$elem,
"item_flag");var a=this;(new Item.Tasks.FlagItem(this.item,this.$elem)).then(function(){a.bindEvent(a.$elem,"item_flag",a.onFlag)}).run();return false},onDeleteComment:function(a,b){(new Item.Tasks.DeleteComment(this.item,b)).then(function(){}).run();return false}})})();
(function(){Item.USE_SHADOW_TEMPLATE=true;Item.Layout=Class.create("Item.Layout",Layout.Controller,{initialize:function($super){$super("item")},onFlagStateChange:function(){this.item.get("myflag")?this.showFlagOverlay():this.removeFlagOverlay()},attach:function($super,b){$super(b);this.item=b.getData();this.bindProp(this.item,"thumb_url",this.onThumbUrlChange);this.$entry=this.find(".entry:first");this.$container=this.$elem.find(".container:first");if(this.$container.length==0)this.$container=undefined;
this.$content=this.find(".content:first");this.$thumb=this.find(".thumb:first");if(this.item.item_type=="photo"){this.$badge=this.$elem.find(".badge:first");this.$badge.show()}this.bindProp(this.item,"myflag",this.onFlagStateChange);this.onFlagStateChange();$.browser.msie&&Utils.makeUnselectable(this.elem)},detach:function($super){this.removeHiRes();this.removeActions();this.removeInfo();this.$badge&&this.$badge.hide();$super()},updateLikesBadge:function(){if(this.item.get("num_likes")>0){if(!this.$likes){this.$likes=
applyTemplate("/src/app/item/likes_badge.template",this.item);this.$elem.append(this.$likes);this.layout(0)}}else if(this.$likes){this.$likes.remove();this.$likes=undefined}},calcProps:function(){this.props=this.$elem.getLayoutProps(true);this.props.border=this.props.border||0;if(this.props.thumb_props)!this.loading_thumb&&this.$placeholder&&this.removePlaceholder();else this.item.get("thumb_url")?this.loadThumb():this.addPlaceholder();this.$detail?this.calcDetailProps():this.calcNormalProps()},calcNormalProps:function(){var a=
Stream.Config.ITEM_ASPECT,b=2*this.props.border,c=this.props.width,d=this.props.height,e=d;d=Math.round(d*a);if(d>c){e=Math.round(c/a);d=c}this.outer_height=e;this.outer_width=d;this.inner_height=e-b;this.inner_width=d-b;this.calcThumbProps(this.inner_width,this.inner_height);if(this.thumb_margin&&!this.props.crop_thumb){this.inner_width=this.thumb_width;this.inner_height=this.thumb_height;this.outer_width=this.inner_width+b;this.outer_height=this.inner_height+b;this.thumb_margin={left:0,top:0}}this.border=
this.props.border},calcDetailProps:function(){var a=this.$elem.parents(".viewport:first").getLayoutProps();this.calcThumbProps(a.width-100-300-2-20,a.height-40-35-20);this.inner_width=this.thumb_width;this.inner_height=this.thumb_height;this.thumb_margin={left:10,top:10};this.outer_width=this.thumb_width+20+322;this.outer_height=this.thumb_height+30+35},calcThumbProps:function(a,b){var c,d;c=this.props.thumb_props;if(!c||this.loading_thumb){c=a;d=b}else{var e=c.aspect;if(this.props.crop_thumb){d=
b;c=d*e;if(c<a){d=a/e;c=a}}else if(e>1){c=a;d=c/e;if(d>b){d=b;c=d*e}}else{d=b-20;c=d*e;if(c>a){c=a;d=c/e}}c=Math.round(c);d=Math.round(d)}this.thumb_width=c;this.thumb_height=d;this.thumb_margin={left:(a-c)/2,top:(b-d)/2}},onThumbUrlChange:function(){if(this.props){var a=this.item.get("thumb_url");if(a){this.$thumb.attr("src",a);this.loadThumb()}}},loadThumb:function(){var a=this.item.get("thumb_url");if(!this.loading_thumb){this.loading_thumb=true;this.$thumb.hide();this.loader=new Thumb.Loader(a);
this.loader.load(delegate(this,this.onLoadThumb));if(this.loading_thumb){var b=this;setTimeout(function(){b.addPlaceholder()},10);this.$entry.hide()}}},onLoadThumb:function(a){this.loader=undefined;if(this.attached){var b=this;this.$elem.afterTransition(function(){b.$elem.afterLayout(function(){b.$entry.show();b.props.thumb_props=a;b.loading_thumb=undefined;b.$thumb.show();b.layout()})})}},addPlaceholder:function(){if(this.loading_thumb)if(this.attached)if(!this.$placeholder){this.$entry.show();if(this.item.item_type!=
"placeholder"){this.$placeholder=$('<div class="placeholder"/>');this.$content.append(this.$placeholder);this.bindEvent(this.$placeholder,"click",this.onThumbClick);this.layout()}}},removePlaceholder:function(){if(this.$placeholder){this.unbindEvent(this.$placeholder,"click");this.$placeholder.remove();this.$placeholder=undefined}},layout:function(a,b){this.calcProps();if(this.old_props===undefined)a=0;if(a===undefined)a=0;if(a>0){var c=new Transition({width:{start:this.old_props.width,end:this.props.width},
height:{start:this.old_props.height,end:this.props.height},border:{start:this.old_props.border,end:this.props.border}}),d=this.props.crop_thumb;if(this.old_props.crop_thumb!=this.props.crop_thumb)this.props.crop_thumb=this.old_props.crop_thumb;var e=false,f=this;Tween.to(null,"item-layout-"+this.item.get("mediaid"),a/1E3,function(g,k,n){f.props.width=Math.round(c.value("width",k));f.props.height=Math.round(c.value("height",k));f.props.border=Math.round(c.value("border",k));if(!e&&k>0.5){f.props.crop_thumb=
d;e=true}f.calcProps();f.layoutContent();if(n){f.finishLayout();b&&b()}},0,1,"sine")}else{this.layoutContent();this.finishLayout();b&&b()}},finishLayout:function(){this.old_props={width:this.props.width,height:this.props.height,border:this.props.border||0,crop_thumb:this.props.crop_thumb}},layoutContent:function(){this.$container&&this.$container.css({width:this.outer_width,height:this.outer_height});this.$content.css({left:this.border||0,top:this.border||0,width:this.inner_width,height:this.inner_height});
this.$placeholder&&this.$placeholder.css({width:this.inner_width,height:this.inner_height,marginLeft:this.thumb_margin.left,marginTop:this.thumb_margin.top});this.$detail?this.layoutDetail():this.layoutNormal()},layoutThumb:function(){!this.props.thumb_props||this.loading_thumb||this.$thumb.css({width:this.thumb_width,height:this.thumb_height,marginLeft:this.thumb_margin.left,marginTop:this.thumb_margin.top})},layoutHiRes:function(){var a=parseInt(this.$thumb.css("marginLeft").replace("px","")),b=
parseInt(this.$thumb.css("marginTop").replace("px",""));this.$hires.css({left:this.border,top:this.border,width:this.$thumb.width(),height:this.$thumb.height(),marginLeft:a,marginTop:b,"z-index":3})},showHiRes:function(){if(!this.$hires&&!this.loading_hi_res){this.loading_hi_res=true;var a=this.item.get("content_url");this.$hires=applyTemplate("/src/app/thumb/thumb.template",{css_class:"hires",url:a});(new Thumb.Loader(a)).load(delegate(this,this.onHiResLoad))}},onHiResLoad:function(){if(this.attached)if(this.$hires){this.loading_hi_res=
undefined;this.bindEvent(this.$hires,"click",this.onThumbClick);this.layoutHiRes();this.$thumb.parent().append(this.$hires)}},onThumbClick:function(){this.$elem.triggerHandler("thumb_click")},removeHiRes:function(){if(this.$hires){this.unbindEvent(this.$hires,"click");this.$hires.remove();this.$hires=undefined}},showInfo:function(){if(!this.$info){this.$info=applyTemplate("/src/app/item/overlay/item_overlay.template",this.item);var a=this;this.$info.bind("item_deselect",function(){a.$elem.trigger("item_deselect",
[a.elem])});this.$entry.append(this.$info)}},removeInfo:function(){if(this.$info){this.$info.remove();this.$info=undefined}},showActions:function(){if(!this.$actions){this.$actions=applyTemplate("/src/app/item/sidebar/item_sidebar.template",this.item);this.$entry.append(this.$actions);try{gapi.plusone.go("gplus-"+this.item.get("mediaid"))}catch(a){}}},removeActions:function(){if(this.$actions){this.$actions.remove();this.$actions=undefined}},showFlagOverlay:function(){if(!this.$flag_overlay){this.$flag_overlay=
$('<img class="flag_overlay" src="/images/black_rect.jpg">');this.$entry.append(this.$flag_overlay);this.bindEvent(this.$flag_overlay,"click",this.onFlagOverlayClick);this.layout(0)}},removeFlagOverlay:function(){if(this.$flag_overlay){this.unbindEvent(this.$flag_overlay,"click");this.$flag_overlay.remove();this.$flag_overlay=undefined}},onFlagOverlayClick:function(){this.$thumb.triggerHandler("click")},layoutNormal:function(){var a=Math.round(-this.outer_width/2),b=Math.round(-this.outer_height/
2);this.$entry.css({width:this.outer_width,height:this.outer_height,"z-index":this.props.z_index});this.$entry.applyTranslation({x:a,y:b});this.layoutThumb();this.$hires&&this.layoutHiRes();this.$flag_overlay&&this.$flag_overlay.css({left:this.border,top:this.border,width:this.inner_width,height:this.inner_height});this.$badge&&this.$badge.css({right:this.border,bottom:this.border});if(this.$info){a=this.$thumb.width();b=this.$thumb.height();this.$thumb.outerWidth();this.$thumb.width();this.$info.css({left:this.border,
top:this.border});this.$info.layout({width:this.inner_width,height:this.inner_height},0)}if(this.$actions){a=this.$entry.outerWidth();b=this.$entry.outerHeight()-20;this.$actions.css({height:b,left:a,top:10})}},initDetail:function(){var a=this.$detail.parent(),b=a.find(".col1"),c=a.find(".col2");a=a.find(".close-btn");var d=c.find(".scroll-container"),e=c.find(".scroll-content"),f=c.find(".comments_area"),g=f.find(".comment_form");f.find(".comment_list:first");this.$detail.find(".owner_info");f=c.find(".toolbar");
if(!this.item.parentStream().get("is_private")){var k=f.find(".menu-item.share"),n=k.find(".submenu");this.$detail.$share_menu=k;this.$detail.$share_submenu=n}k=c.find(".likes");$likes_summary=k.find(".summary");n=k.find(".detail");n.hide();var o=n.find(".collapse");this.$detail.$col1=b;this.$detail.$col2=c;this.$detail.$close=a;this.$detail.$scroll_container=d;this.$detail.$scroll_content=e;this.$detail.$comment_form=g;this.$detail.$toolbar=f;this.$detail.$likes=k;this.$detail.$likes_summary=$likes_summary;
this.$detail.$likes_detail=n;this.$detail.$likes_collapse=o},addDetail:function(){this.$detail=applyTemplate("/src/app/item/detail/item_detail.template",this.item);this.$thumb.parent().append(this.$detail);this.initDetail();this.$elem.addClass("item_detail");this.bindEvent(this.$detail.$close,"click",this.onCloseClick);if(this.$detail.$share_menu){this.bindEvent(this.$detail.$share_menu,"menu_show",this.reinitScroll);this.bindEvent(this.$detail.$share_menu,"menu_hide",this.reinitScroll)}this.bindEvent(this.$detail.$likes_collapse,
"click",this.collapseLikes);this.item.initComments();this.bindEvent(this.item.comments,"changing",this.onCommentsChanging);this.bindEvent(this.item.comments,"length",this.onCommentsChanged);this.bindEvent(this.item,"rankings_refreshed",this.onGetRankings);this.bindEvent(this.item,"new_comment",this.scrollToBottom)},removeDetail:function(){this.unbindEvent(this.$detail.$close,"click");if(this.$detail.$share_menu){this.unbindEvent(this.$detail.$share_menu,"menu_show");this.unbindEvent(this.$detail.$share_menu,
"menu_hide")}this.unbindEvent(this.$detail.$likes_collapse,"click");this.$detail.$likes_expand&&this.unbindEvent(this.$detail.$likes_expand,"click");this.unbindEvent(this.item.comments,"changing");this.unbindEvent(this.item.comments,"length");this.unbindEvent(this.item,"rankings_refreshed");this.unbindEvent(this.item,"new_comment");this.$detail.remove();this.$elem.removeClass("item_detail");this.$detail=undefined;this.scroll_timeout&&clearTimeout(this.scroll_timeout)},hideDetail:function(){this.$detail.$col1.hide();
this.$detail.$col2.hide();this.$detail.$close.hide()},showDetail:function(){this.$detail.$col1.show();this.$detail.$col2.show();this.$detail.$close.show()},layoutDetail:function(){this.$thumb.parent().css({width:this.outer_width,height:this.outer_height,padding:0});var a=Math.round(-this.outer_width/2),b=Math.round(-this.outer_height/2);this.$entry.css({width:this.outer_width,height:this.outer_height});this.$entry.applyTranslation({x:a,y:b});this.layoutThumb();this.$hires&&this.layoutHiRes();this.$detail.$col1.css({width:this.thumb_width,
left:10,top:this.thumb_height+20});this.$detail.$col2.css({top:2,left:this.thumb_width+20,width:300,height:this.outer_height-4-20,paddingLeft:10,paddingTop:10,paddingBottom:10});try{gapi.plusone.go("gplus-"+this.item.get("mediaid"))}catch(c){warn("item_detail, gapi: "+c)}if(this.$flag_overlay){this.$hires.position();a=parseInt(this.$hires.css("marginLeft").replace("px",""));b=parseInt(this.$hires.css("marginTop").replace("px",""));this.$flag_overlay.css({left:a,top:b,width:this.$hires.width(),height:this.$hires.height(),
padding:0})}this.reinitScroll()},reinitScroll:function(){if(this.attached&&this.$detail){var a=this.$detail.$scroll_container,b=this.$detail.$col2,c=this.$detail.$likes,d=this.$detail.$comment_form;c=this.$detail.$toolbar.outerHeight(true)+c.outerHeight(true)+d.outerHeight(true);a.offset();a.position();b=b.height()-c;a.css({height:b,marginTop:0});if(b=a.data("jsp"))b.reinitialise();else{warn("initializing scroller");a.jScrollPane({maintainPosition:true,verticalGutter:0,showArrows:true,horizontalGutter:10,
mouseWheelSpeed:20,arrowButtonSpeed:2,animateScroll:false})}}},onCloseClick:function(){this.$elem.trigger("item_deselect",[this.elem])},onShareClick:function(){this.reinitScroll()},expandLikes:function(){this.$detail.$likes_summary.hide();this.$detail.$likes_detail.show();this.reinitScroll()},collapseLikes:function(){this.$detail.$likes_summary.show();this.$detail.$likes_detail.hide();this.reinitScroll()},updateLikesSummary:function(){var a=this.$detail.$likes_summary,b=this.$detail.$likes_expand;
b&&this.unbindEvent(b,"click");if(b=Item.Utils.getLikesSummary(this.item.rankings)){a.css({display:"block"});a.html(b);this.$detail.$likes_expand=a.find(".expand");this.bindEvent(this.$detail.$likes_expand,"click",this.expandLikes)}else a.css({display:"none"})},onGetRankings:function(){this.updateLikesSummary();setTimeout(delegate(this,this.reinitScroll),1)},onCommentsChanging:function(){var a=this.$detail.$scroll_container.data("jsp");if(!this.scroll_timeout&&(!a||a.getPercentScrolledY()>=1)){var b=
this;this.scroll_timeout=setTimeout(function(){b.scrollToBottom();b.scroll_timeout=undefined},1)}},onCommentsChanged:function(){this.reinitScroll()},scrollToBottom:function(){this.attached&&this.$detail&&this.$detail.$scroll_container.data("jsp").scrollToBottom(true)}})})();
(function(){Item.Input=Class.create("Item.Input",Controller,{attach:function($super,b){$super(b);this.item=b.getData();if(this.item.item_type=="photo"){this.$badge=this.$elem.find(".badge:first");this.bindEvent(this.$badge,"click",this.onBadgeClick)}this.$thumb=this.$elem.find(".thumb:first");this.bindEvent(this.$elem,"thumb_click",this.onThumbClick);this.bindEvent(this.$thumb,"click",this.onThumbClick);this.bindEvent(this.$elem,"click",this.onClick)},detach:function($super){$super()},onClick:function(){if(!this.$elem.inTransition())if(this.$elem.getState()!=
"selected")if(this.item.item_type!="placeholder"){this.$elem.trigger("item_select",[this.elem]);return false}},onBadgeClick:function(){this.$elem.inTransition()},onThumbClick:function(){if(!this.$elem.inTransition())if(this.$elem.getState()=="selected"){this.$elem.trigger("item_deselect",[this.elem]);return false}}})})();
Item.Utils={userLink:function(a){return'<span class="bold dark">'+Liveshare.fullUserName(a)+"</span>"},getLikesSummary:function(a){var b=a.length(),c="";if(b>0){c=a.getItemAt(0).user;if(b==1)c=Item.Utils.userLink(c)+" likes this";else{a=a.getItemAt(1).user;if(b==2)c=Item.Utils.userLink(c)+" and "+Item.Utils.userLink(a)+" like this";else{c=Item.Utils.userLink(c)+", "+Item.Utils.userLink(a)+" and ";c+='<span class="accent_color link expand">'+(b-2)+" others</span> like this"}}}return c}};
Item.Badge=Class.create("Item.Badge",Controller,{attach:function($super,b){$super(b);this.item=b.getData();this.$inner=b.children(".inner:first");this.$likes=this.$inner.children(".likes:first");this.$comments=this.$inner.children(".comments:first");this.$space=this.$inner.children(".space:first");this.bindProp(this.item,"commentcount",this.updateComments);this.bindProp(this.item,"ranking",this.updateRanking);this.displayAll()},updateComments:function(){this.displayComments();this.displayBadge()},
updateRanking:function(){this.displayRanking();this.displayBadge()},displayAll:function(){this.displayComments();this.displayRanking();this.displayBadge()},displayComments:function(){this.$comments.css({display:this.item.get("commentcount")>0?"inline":"none"})},displayRanking:function(){this.$likes.css({display:this.item.get("ranking")>0?"inline":"none"})},displayBadge:function(){var a=this.item.get("ranking"),b=this.item.get("commentcount");this.$inner.css({display:a>0||b>0?"block":"none"});this.$space.css({display:a>
0&&b>0?"inline":"none"})}});
Item.UserComment=Class.create("Item.UserComment",Controller,{attach:function($super,b){$super(b);this.$flag=this.find(".flag");this.bindEvent(this.$flag,"click",this.onFlagClick);this.$delete=this.find(".delete");this.bindEvent(this.$delete,"click",this.onDeleteClick);this.comment=this.getData();this.updateFlag();this.bindProp(this.comment,"myflag",this.updateFlag);this.bindEvent(this.$elem,"mouseenter",this.onMouseEnter);this.bindEvent(this.$elem,"mouseleave",this.onMouseLeave);this.hideButtons()},
added:function(){this.hideButtons()},hideButtons:function(){this.$delete.hide();this.$flag.hide()},onMouseEnter:function(){this.comment.get("temp")||(this.comment.get("user").userid==Liveshare.MyUser.get("userid")?this.$delete.show():this.$flag.show())},onMouseLeave:function(){this.hideButtons()},formatTimeStamp:function(a){a=(new Date).getTime()-a;var b="";if(a<1E3)b="moments ago";else{a=Math.round(a/1E3);if(a<60)b=a+" seconds ago";else{a=Math.round(a/60);if(a<60)b=a+" minutes ago";else{a=Math.round(a/
60);b=a<24?a+" hours ago":Math.round(a/24)+" days ago"}}}return b},toggleFlag:function(){var a=1;if(this.comment.get("myflag")>0)a=0;this.comment.set("myflag",a)},updateFlag:function(){if(this.comment.get("myflag")>0){this.$flag.addClass("on").attr("title","Unflag this comment").text("Unflag");this.$elem.addClass("flagged")}else{this.$flag.removeClass("on").attr("title","Flag this comment as inappropriate/offensive").text("Flag");this.$elem.removeClass("flagged")}},onFlagClick:function(){this.unbindEvent(this.$flag,
"click");var a=this;(new Item.Tasks.FlagComment(this.comment)).then(function(){a.bindEvent(a.$flag,"click",a.onFlagClick)}).run();return false},onDeleteClick:function(){var a=$("<div class='top_overlay'/>");$("#wrapper").append(a);var b=confirm("Are you sure you want to delete this comment?");a.remove();if(b){this.$elem.hide();this.$elem.trigger("comment_delete",[this.comment]);return false}}});
(function(){Item.CommentInput=Class.create("Item.CommentInput",Controller,{attach:function($super,b){$super(b);this.item=b.getData();this.bindEvent(this.$elem,"submit",this.onSubmit);this.$input=this.$elem.find(".comment_entry:first");this.$input.val("Add a comment...");this.bindEvent(this.$input,"focus",this.onFocus);this.bindEvent(this.$input,"blur",this.onBlur);this.bindEvent(this.$input,"click",this.onClick);this.has_focus=false},onSubmit:function(){if(this.submitting)return false;var a=this.$input.val();
if(a.length==0)return false;this.$input.val("Add a comment...");this.$input[0].blur();this.submitting=true;var b=this;(new Task).delay(1).then(function(c){b.submitting=false;c()}).then(new Item.Tasks.PostComment(this.item,a)).run();return false},onFocus:function(){this.$input.hasClass("error")&&this.$input.removeClass("error").addClass("secondary_color");this.$input.val()=="Add a comment..."&&this.$input.val("");this.set("has_focus",true)},onBlur:function(){this.$input.val()==""&&this.$input.val("Add a comment...");
var a=this;setTimeout(function(){a.set("has_focus",false)},100);return false},onClick:function(){return false}})})();
(function(){Item.Detail=Class.create("Item.Detail",Controller,{initialize:function($super){$super("item-detail")},attach:function($super,b){$super(b);this.set("ranking_users","");this.set("comments_count","");this.set("likes_count","");this.item=b.getData();this.bindProp(this.item,"commentcount",this.updateCommentsCount);this.bindProp(this.item,"ranking",this.updateLikesCount);this.bindEvent(this.item,"comments_refreshed",this.onGetComments);this.bindEvent(this.item,"rankings_refreshed",this.onGetRankings);
Tracker.itemDetail(this.item.get("eventid"),this.item.get("mediaid"));this.updateCommentsCount();this.updateLikesCount()},detach:function($super){$super()},added:function(){this.item.loadComments();this.item.loadRankings()},onGetRankings:function(){this.updateLikesCount();this.updateLikesDetail()},onGetComments:function(){this.updateCommentsCount()},updateCommentsCount:function(){this.set("comments_count",this.item.get("commentcount"))},updateLikesCount:function(){this.set("likes_count",this.item.get("ranking"))},
updateLikesDetail:function(){for(var a="",b=this.item.rankings,c=b.length(),d,e=0;e<c;e++){d=b.getItemAt(e);if(a!="")a+=", ";a+=Liveshare.fullUserName(d.user)}this.set("ranking_users",a)}})})();
Item.OwnerInfo=Class.create("Item.OwnerInfo",Controller,{attach:function($super,b){$super(b);this.item=this.$elem.getData();this.set("formatted_date",(new Date(this.item.get("creationdatetime"))).format(dateFormat.masks.mediumDate));this.set("created_by",Liveshare.shortUserName(this.item.get("user")));this.set("owner_icon",this.item.get("user").imageurl)}});
(function(){Item.Actions=Class.create("Item.Actions",Controller,{initialize:function($super){$super()},attach:function($super,b){$super(b);this.item=this.getData();this.$like=this.find("a.like");this.bindEvent(this.$like,"click",this.onLikeClick);this.bindProp(this.item,"myranking",this.update);this.$flag=this.find("a.flag");this.bindProp(this.item,"myflag",this.update);this.$delete=this.find("a.delete");this.bindProp(Liveshare.MyUser,"authenticated",this.update);this.$flag.remove();this.$delete.remove();
this.update()},update:function(){Liveshare.authenticated()&&this.item.get("myranking")>0?this.$like.addClass("selected").attr("title","Click to reset 'like' status for this item"):this.$like.removeClass("selected").attr("title","Click to 'like' this item");if(Liveshare.MyUser.get("userid")==this.item.get("user").userid){this.removeFlag();this.addDelete()}else{this.removeDelete();this.addFlag();Liveshare.authenticated()&&this.item.get("myflag")>0?this.$flag.addClass("selected").attr("title","Click to unflag this item"):
this.$flag.removeClass("selected").attr("title","Click to flag this item")}},removeFlag:function(){if(this.showing_flag){this.unbindEvent(this.$flag,"click");this.$flag.remove();this.showing_flag=false}},addFlag:function(){if(!this.showing_flag){this.bindEvent(this.$flag,"click",this.onFlagClick);this.$elem.append(this.$flag);this.showing_flag=true}},removeDelete:function(){if(this.showing_delete){this.unbindEvent(this.$delete,"click");this.$delete.remove();this.showing_delete=false}},addDelete:function(){if(!this.showing_delete){this.bindEvent(this.$delete,
"click",this.onDeleteClick);this.$elem.append(this.$delete);this.showing_delete=true}},onFlagClick:function(){this.$elem.trigger("item_flag",[this.item])},onDeleteClick:function(){this.$elem.trigger("item_delete",[this.item])},onLikeClick:function(){this.$elem.trigger("item_like",[this.item])}})})();
(function(){Item.Overlay=Class.create("Item.Overlay",Layout.Controller,{initialize:function($super){$super("item-overlay")},attach:function($super,b){$super(b);this.item=this.$elem.getData();this.set("formatted_date",(new Date(this.item.creationdatetime)).format(dateFormat.masks.mediumDate));this.set("created_by",Liveshare.shortUserName(this.item.user));this.set("owner_icon",this.item.user.imageurl);this.bindEvent(b,"mouseenter",this.onMouseEnter);this.bindEvent(b,"mouseleave",this.onMouseLeave);
this.$overlay=this.$elem.find(".overlay");this.$overlay.css({display:"none"});this.$likes=this.$elem.find(".likes");this.$likers=this.$elem.find(".likers");this.item.rankings?this.onGetRankings():this.$likers.css({display:"none"});this.$comments=this.$elem.find(".comments:first");this.item.comments?this.onGetComments():this.$comments.css({display:"none"});var c=this.$elem.find(".comment_entry:first");this.bindProp(c.parent()[0].controller,"has_focus",{obj:this,property:"always_show_overlay"});this.$comment_entry=
c;this.bindEvent(this.item,"comments_refreshed",this.onGetComments);this.bindEvent(this.item,"rankings_refreshed",this.onGetRankings)},layout:function(a,b){var c=this.$elem.getLayoutProps(true);this.$elem.css({width:c.width,height:c.height});var d=this.$elem.outerHeight();this.$overlay.stop();if(this.showing_overlay){var e=this.$overlay.outerHeight();this.$overlay.css({top:d-e,display:"block"})}else this.$overlay.css({top:d,display:"block"});this.$comment_entry.width(Math.max(c.width-80,40));b&&b()},
onMouseEnter:function(){this.showOverlay();var a=this;setTimeout(function(){a.$elem&&a.attached&&a.bindEvent(a.$elem,"click",a.onClick)},200);return false},onMouseLeave:function(){this.hideOverlay();this.unbindEvent(this.$elem,"click");return false},onClick:function(a){if(this.attached&&this.$elem){if(this.always_show_overlay)return false;if(a.target===this.elem){this.$elem.triggerHandler("item_deselect",[this.elem]);a.stopPropagation()}else this.$elem.trigger("item_detail",[this.item]);return false}},
showOverlay:function(){if(!this.showing_overlay){this.item.comments?this.onGetComments():this.item.loadComments();this.item.rankings?this.onGetRankings():this.item.loadRankings();this.showing_overlay=true;this.animateOverlay()}},hideOverlay:function(){if(!(!this.showing_overlay||this.always_show_overlay)){this.showing_overlay=false;this.$overlay.stop();this.$overlay.animate({top:this.$elem.outerHeight()},250,"swing",function(){})}},animateOverlay:function(){var a=this.$elem.outerHeight(),b=this.$overlay.outerHeight();
this.$overlay.stop();var c=this.$overlay.css("top");if(c=="auto"){c=a;this.$overlay.css({top:c})}this.$overlay.animate({top:a-b},250,"swing")},onGetRankings:function(){var a=Item.Utils.getLikesSummary(this.item.rankings);if(a){this.$likers.css({display:"block"});this.$likers.find(".content").html(a);this.showing_overlay&&this.animateOverlay()}else this.$likers.css({display:"none"})},onGetComments:function(){var a=this.item.comments,b=a.length(),c="";if(b>0){a=a.getItemAt(b-1);c=Item.Utils.userLink(a.user)+
":&nbsp;&quot;"+HtmlUtils.encode(a.text)+"&quot;";this.$comments.find(".content").html(c);this.$comments.css({display:"block"});this.showing_overlay&&this.animateOverlay()}else this.$comments.css({display:"none"})}})})();var Shadow={toString:function(){return"Shadow"}};Shadow.Controller=Class.create("Shadow.Controller",Controller,{attach:function($super,b){$super(b);this.$content=b.find(".innerbox:first").children();this.bindEvent(b,"layout",this.onLayout)},onLayout:function(a,b){this.$content.layout(b)}});
(function(){Stream.Layout=Class.create("Stream.Layout",Layout.Controller,{initialize:function($super,b){$super(b)},attach:function($super,b){$super(b);this.stream=b.getData();this.$overlay=this.find(".overlay:first");this.$viewport=this.$elem.children(".viewport:first");this.$origin=this.$viewport.children(".origin:first");this.$items=this.$origin.children(".items:first");this.$buttons=this.$elem.children(".buttons:first");this.bindEvent(this.$items,"before_insert",this.beforeItemInsert);this.bindEvent(this.$items,
"after_insert",this.afterItemInsert);this.bindEvent(this.$elem,"item_select",this.onItemSelect)},attachInput:function(){this.input&&!this.input.attached&&this.input.attach(this.$elem);this.disable_input=false},detachInput:function(){this.input&&this.input.attached&&this.input.detach();this.disable_input=true},getLayoutItems:function(){return this.$items.children().not(".no-layout")},calcProps:function(){var a=this.$elem.getLayoutProps();this.layout_props=a;this.layout_width=a.width-(a.padding.left+
a.padding.right);this.layout_height=a.height-(a.padding.top+a.padding.bottom);this.half_width=Math.round(this.layout_width/2);this.half_height=Math.round(this.layout_height/2)},firstIndex:function(){return this.stream.items.firstIndex()},lastIndex:function(){return this.stream.items.lastIndex()},setViewport:function(a){var b=this.scrollPosition(),c=this.$viewport.getLayoutProps(true);c.updateLayoutProperties({left:a.viewport.left,top:a.viewport.top,width:a.viewport.width,height:a.viewport.height});
this.$viewport.css({width:c.width,height:c.height});var d=c.transform.translation;d.z=-1;this.$viewport.applyTransform(c.transform,0);var e=this.$buttons.getLayoutProps(true);e.updateLayoutProperties({left:a.viewport.left,top:a.viewport.top,width:a.viewport.width,height:a.viewport.height});this.$buttons.css({width:e.width,height:e.height});e.transform.translation.z=300;this.$buttons.applyTransform(e.transform,0);this.$overlay.css({width:c.width,height:c.height});this.$overlay.applyTranslation({x:d.x,
y:d.y});if(!a.origin)a.origin={z:0,scale:1};d=Math.round(c.width/2);c=Math.round(c.height/2);e=this.$origin.getLayoutProps(true);e.updateLayoutProperties({left:d,top:c,z:a.origin.z,scale:a.origin.scale});this.$origin.applyTransform(e.transform,0);a=this.$items.getLayoutProps(true);a.updateLayoutProperties({left:-d-b.x,top:-c-b.y});this.$items.applyTransform(a.transform,0)},scrollPosition:function(){var a=this.$elem.getProp("scroll_pos");return a?a:{x:0,y:0}},resetScroll:function(){this.scrollPosition();
var a=this.$items.getLayoutProps();center_x=Math.round(this.$viewport.outerWidth()/2);center_y=Math.round(this.$viewport.outerHeight()/2);a.left=-center_x;a.top=-center_y;this.$items.applyTransform(a.transform,0);this.$elem.setProp("scroll_pos",null)},beforeItemInsert:function(a,b){b.item.get("mediaid");var c=$(b.element);this.$elem.inTransition()&&c.hide();var d=this;this.$elem.afterTransition(function(){c.show();d.layoutItem(b.index,b.element,0)})},afterItemInsert:function(a,b){this.$elem.trigger("item_insert",
[b])},onItemSelect:function(a){this.$elem.inTransition()&&a.stopPropagation()},demandItems:function(a){var b=this.$elem.getData();b&&b.items&&b.items.demand({first:a.first,last:a.last})}})})();var Scroller={toString:function(){return"Scroller"}};
(function(){Stream.Controller=Class.create("Stream.Controller",Controller,{initialize:function($super){$super()},attach:function($super,b){$super(b);this.stream=b.getData();this.items=this.stream.items;this.bindEvent(this.$elem,"item_delete",this.onItemDelete);this.bindProp(this.$elem,"state",this.onStateChange);$.browser.msie&&Utils.makeUnselectable(this.elem);this.$items=this.$elem.find(".items:first");this.$viewport=this.$elem.find(".viewport:first");this.bindProp(this.stream,"eventid",this.onEventIdChange);
this.onEventIdChange(this.stream.get("eventid"));this.bindProp(this.stream,"selected_item_elem",this.onSelectedItemChange)},detach:function($super){$super();this.items=this.stream=this.$items=null},chooseTemplate:function(a){a.parent=this.elem;return a.item_type=="stream"?{template:"/src/app/stream/stream.template",data:a,layout:{type:"stack"}}:{template:"/src/app/item/item.template",data:a}},onSelectedItemChange:function(a,b){if(b&&!a){var c=$(b).getData(),d=this.stream.provider.getQuery().method;
if(c.item_type=="stream"&&c.get("subscribed")==false&&d=="mystreams"){var e=this;this.$elem.afterTransition(function(){e.removeItem(c)})}}},onItemDelete:function(a,b){var c=b.get("mediaid");a.stopPropagation();if(b.item_type=="photo"){var d=$("<div class='top_overlay'/>");$("#wrapper").append(d);var e=confirm("Are you sure you want to delete this photo?");d.remove();if(!e)return;b.set("deleted",true);var f=this;$.ajax({url:server_vars.base_url+"/api/delete/"+c+"/true",success:function(g){if(g.error==
401){b.set("deleted",false);Login.prompt()}else if(g.result.returncode!=0)b.set("deleted",false);else{b.set("deleted",true);f.$elem.trigger("item_deselect")}}})}return false},removeItem:function(a,b){var c=this.items.indexOf(a);if(c===undefined)b&&b();else{this.$elem.beginTransition();this.$elem.disableInput();this.stream.provider.removeResultAt(c);this.stream.checkEmpty();var d=this;this.$elem.layout(undefined,1E3,function(){d.$elem.endTransition();d.$elem.enableInput();b&&b()})}},inputDisabled:function(){return this.$elem.inputDisabled()||
this.stream.parent&&$(this.stream.parent).inputDisabled()},onStateChange:function(){},onEventIdChange:function(a,b){b&&this.$elem.removeClass("stream-"+b);a&&this.$elem.addClass("stream-"+a)}})})();
(function(){Stream.Messages=Class.create("Stream.Messages",Controller,{initialize:function($super){$super();this.template_mapper={empty_mystreams:"/src/app/messages/add_streams.template",empty_results:"/src/app/messages/no_results.template",empty:"/src/app/messages/empty_stream.template",error:"/src/app/messages/error.template",need_login:"/src/app/messages/login.template",no_auth:"/src/app/messages/no_access.template",none:""}},attach:function($super,b){$super(b);this.stream=b.getData();this.$viewport=
this.find(".viewport:first");this.$overlay=this.find(".overlay:first");this.$buttons=this.find(".buttons:first");this.bindEvent(Nav,"change",this.onNavChange);this.bindProp(this.stream,"access",this.showMessage);this.bindProp(this.stream,"is_empty",this.showMessage);this.bindProp(this.stream,"layout",this.showMessage);this.bindProp(Liveshare.MyUser,"authenticated",this.showMessage);this.set("message","none");this.bindProp(this,"message",this.updateMessage);this.showMessage()},detach:function($super){$super()},
onNavChange:function(){this.showMessage()},showMessage:function(){var a=this.stream,b=a.provider.getQuery(),c="none";if(b.type=="streams"){if(a.get("is_empty"))c=b.method=="mystreams"?"empty_mystreams":"empty_results";this.set("message",c)}else if(b.type=="items"){if(Nav.getContext().get("id")==a.get("id"))switch(a.get("access")){case Item.Access.VISIBLE:c=a.get("is_empty")?"empty":"none";break;case Item.Access.ERROR:case Item.Access.NEED_LOGIN:case Item.Access.NOT_AUTHORIZED:c=a.get("access")}this.set("message",
c)}},updateMessage:function(a,b){if(a!=b){if(this.$current_message){this.$current_message.remove();this.$current_message=null;if(!a||a=="none"){this.$buttons.show();this.$viewport.show();this.$elem.addClass("c3d").removeClass("no_chrome");this.$elem.enableInput()}}var c=this.template_mapper[a];if(c){this.$current_message=applyTemplate(c,this.stream);this.$overlay.append(this.$current_message);this.$buttons.hide();this.$viewport.hide();this.$elem.removeClass("c3d").addClass("no_chrome");this.$elem.disableInput()}}}})})();
(function(){Stream.Transitions["stack-grid"]=function(a,b,c,d,e){var f=Stream.Config.TRANSITION_ANIM_TIME;b.destroy();c.attach(a.$elem);c.detachInput();a.$elem.layout(d,f,function(){c.attachInput();e()},f)};Stream.Transitions["grid-stack"]=function(a,b,c,d,e){var f=Stream.Config.TRANSITION_ANIM_TIME;b.destroy();c.attach(a.$elem);c.detachInput();c.$title.css({display:"none"});a.$elem.layout(d,f,function(){a.$elem.setState("normal");c.attachInput();c.$title.css({display:"block"});e()})};Stream.Transitions["grid-child_expanded"]=
function(a,b,c,d,e){var f=Stream.Config.TRANSITION_ANIM_TIME;b.detachInput();c.attach(a.$elem);var g=new Batch,k={start:1,end:0},n=c.getLayoutItems();n.each(function(o,u){var s=$(u);if(u===c.selected_item_elem)s.css({opacity:k.start,"z-index":2});else{s.css({"z-index":1,opacity:k.start});g.add(new Layout.Tasks.Animate(s,{opacity:k.end},f))}});(new Task(g)).then(function(o){n.each(function(u,s){s!==c.selected_item_elem&&$(s).css({display:"none"})});o&&o()}).then(e).run()};Stream.Transitions["child_expanded-grid"]=
function(a,b,c,d,e){var f=Stream.Config.TRANSITION_ANIM_TIME;a=b.getLayoutItems();var g=new Batch,k={start:0,end:1};a.each(function(n,o){var u=$(o);u.css({"z-index":1E4,display:"block"});if(o!==b.selected_item_elem){u.css({opacity:k.start});g.add(new Layout.Tasks.Animate(u,{opacity:k.end},f))}});(new Task(g)).delay(1).then(function(n){b.detach();c.attachInput();n&&n()}).then(e).run()};Stream.Transitions["grid-item_selected"]=function(a,b,c,d,e){d=b.camera;d.isAnimating&&d.stop();d=b.$elem.getData().get("selected_item_elem");
var f=$(d);d=f.getProp("map_index");b.setAnchor(d);b.detachInput();c.attach(a.$elem);c.calcProps();c.layoutOverlay();a=f.getLayoutProps();a.selected_props=c.target_props;a.normal_props=c.original_props;f.css({"z-index":c.z_index.item});a.z_index=c.z_index.item;f.applyTranslation({z:5});(new Task(function(g){function k(){f.unbind("state_changed",k);g&&g()}f.bind("state_changed",k);f.setState("selected")})).then(function(g){g&&g()}).complete(e).run()};Stream.Transitions["item_selected-grid"]=function(a,
b,c,d,e){var f=b.$item,g=f.getLayoutProps();a=f[0];f.getData();f.getProp("map_index");a=c.itemLayoutProps(a);d=a.transform.translation;b.original_props=$.extend(b.original_props,{x:d.x,y:d.y,z:d.z,width:c.item_width,height:c.item_height,z_index:a.z_index});g.selected_props=b.target_props;g.normal_props=b.original_props;g.updateLayoutProperties(a);g.transform.translation.z=b.target_props.z;(new Task(function(k){b.detach();k&&k()})).then(function(k){var n=function(){f.unbind("state_changed",n);k&&k()};
f.bind("state_changed",n);f.setState("normal")}).delay(1).then(function(k){f.css({"z-index":b.original_props.z_index});g.z_index=b.original_props.z_index;f.applyTranslation({z:b.original_props.z});c.attachInput();c.layout(0,function(){k&&k()})}).complete(e).run()};Stream.Transitions.toString=function(){return"Stream.Transitions"}})();
(function(){Stream.Tasks.GetNewItems=Class.create("Stream.Tasks.GetNewItems",Task,{initialize:function($super,b,c){this.stream=b;this.provider=this.stream.provider;this.mediaids=c;this.providerFunc=delegate(this,this.onProviderStateChange);this.mainFunc=delegate(this,this.getNewItems);this.reqFunc=delegate(this,this.onRequestComplete);var d=this;$super(function(e){d.callback=e;d.mainFunc()})},onProviderStateChange:function(){this.isProviderReady()&&this.getNewItems()},isProviderReady:function(){var a=
this.provider.getState();return a=="ready"||a=="initial"},getNewItems:function(){if(this.isProviderReady()){$(this.provider).unbind("state",this.providerFunc);this.first_item=this.provider.firstItem();var a={};if(this.mediaids)a.mediaids=this.mediaids.join(",");if(a=this.provider.getNewItems(a)){this.req=a;$(a).bind("complete",this.reqFunc)}}else $(this.provider).bind("state",this.providerFunc)},onRequestComplete:function(a,b){$(this.req).unbind("complete",this.reqFunc);this.req=null;b&&this.first_item!==
this.provider.firstItem()&&$(this.stream).triggerHandler("new_items");this.callback()}});Stream.Tasks.AddFriends=Class.create("Stream.Tasks.AddFriends",Login.AuthTask,{initialize:function($super,b,c){this.stream=b;this.friends=c;$super(delegate(this,this.addFriends))},addFriends:function(){var a=this;LiveshareAPI.AddFriends({eventid:this.stream.get("eventid"),addFriends:this.friends},function(b){a.response=b;a.done()})}});Stream.Tasks.Follow=Class.create("Stream.Tasks.Follow",Login.AuthTask,{initialize:function($super,
b,c){$super(delegate(this,this.followStream));this.stream=b;this.follow=c;this.data.login_title="Please login to follow this stream."},followStream:function(){if(this.follow==this.stream.get("subscribed"))this.done();else{var a=this;$.ajax({url:server_vars.base_url+"/api/favorite/"+this.stream.get("eventid")+"/"+this.follow+"/true",success:function(b){if(b.error==401)a.needLogin();else if(b.hasOwnProperty("subscribed"))b.subscribed=="true"?a.stream.set("subscribed",true):a.stream.set("subscribed",
false);else a.done(b.error);a.done()}})}}})})();(function(){Stream.Input={toString:function(){return"Stream.Input"}};Stream.Input.Controller=Class.create("Stream.Input.Controller",Controller,{inputDisabled:function(){if(!this.attached)return true;var a=this.$elem.getData().parent;return this.$elem.inputDisabled()||a&&$(a).inputDisabled()}})})();Stream.Notices={toString:function(){return"Stream.Notices"}};
(function(){Stream.Input.Grid=Class.create("Stream.Input.Grid",Stream.Input.Controller,{attach:function($super,b){$super(b);if(!this.scroller)this.scroller=new Scroller.InputHandler;this.scroller.attach(this.$elem);this.bindEvent(this.$elem,"scroll_drag_begin",this.onDragBegin);this.bindEvent(this.$elem,"scroll_drag_end",this.onDragEnd);this.bindEvent(b,"item_select",this.onItemSelect);this.$buttons=this.$elem.children(".buttons:first");this.$la=$("<div class='ls_assets stream_scroll_arrow left_arrow chrome'/>");
this.$ra=$("<div class='ls_assets stream_scroll_arrow right_arrow chrome'/>");this.$buttons.append(this.$la);this.$buttons.append(this.$ra);this.$buttons.show();this.bindEvent(this.$la,"mousedown",this.onArrowMouseDown);this.bindEvent(this.$ra,"mousedown",this.onArrowMouseDown);this.$elem.addLayout(this);this.layout()},detach:function($super){if(this.attached){this.$elem.removeLayout(this);this.$buttons.hide();$super();this.scroller.detach();this.$la.remove();this.$ra.remove();this.$buttons=this.$ra=
this.$la=undefined}},removed:function($super){$super();this.scroller=undefined},onDragBegin:function(){this.dragging=true},onDragEnd:function(){this.dragging=false},onItemSelect:function(){if(this.inputDisabled())return false;if(this.dragging)return false},layout:function(a,b){var c=this.$elem.getLayoutProps().viewport;this.viewport_props=c;c=c.height;this.$la.css({top:c*0.5-this.$la.height()});this.$ra.css({top:c*0.5-this.$ra.height()});b&&b()},onArrowMouseDown:function(a){if(this.$elem.inputDisabled())return false;
this.$elem.trigger("scroll_by",[0.35*this.viewport_props.width*(a.currentTarget==this.$la[0]?1:-1)])}})})();
(function(){Stream.Layouts.Grid=Class.create("Stream.Layouts.Grid",Stream.Layout,{initialize:function($super){$super("grid")},attach:function($super,b){$super(b);var c=b.getData();this.stream=c;this.items=c.items;this.provider=c.provider;this.provider.max_results=undefined;this.bindEvent(this.stream,"new_items",this.onNewItems);this.bindEvent(this.provider,"reset",this.onProviderReset);this.bindProp(this.provider,"state",this.onProviderStateChange);this.bindProp(this.stream,"selected_item_elem",this.onSelectedItemChange);
this.bindProp(this.$elem,"input_disabled",this.onInputDisabled);this.bindEvent(this.$elem,"scroll_by",this.onScroll);this.bindEvent(this.$elem,"scroll_to_beginning",this.scrollToBeginning);this.bindEvent(this.$elem,"scroll_drag_begin",this.onDragBegin);this.bindEvent(this.$elem,"scroll_drag_end",this.onDragEnd)},detach:function($super){this.$elem.removeClass("wall");this.$elem.removeClass("loading");this.destroyCamera();this.detachInput();this.hideNewItemsIndicator();$super();this.provider=this.stream=
this.items=null},destroy:function($super){$super();this.index_offset=undefined;if(this.camera){this.camera.reset();this.camera=null}this.input=null},destroyCamera:function(){if(this.camera){this.unbindEvent(this.$camera,"stop",this.onCameraStop);this.camera.stop();this.camera=null}},onProviderReset:function(){this.destroyCamera();this.resetScroll();this.initCamera();this.layout()},beforeItemInsert:function($super,b,c){if(this.provider.lastIndex()-c.index<this.num_rows&&c.index<this.index_offset)if(this.getLayoutItems().length<
this.num_rows){this.index_offset=c.index;var d=this;this.$elem.afterTransition(function(){d.layout()})}$super(b,c)},getVisibleBox:function(){var a=this.$elem.getProp("scroll_pos");a=a?a.x:0;return{left:a-this.layout_width,right:a+this.layout_width}},itemCameraPos:function(a){return-this.cellTranslation(a.get("provider_index"))[0]},newItemCameraPos:function(){return this.itemCameraPos(this.provider.numResults()>this.num_rows?this.provider.firstItem():this.provider.lastItem())+this.cell_padding},onNewItems:function(){var a=
this.newItemCameraPos();this.adjustCameraRange(a);if(a-this.camera.targetX<=this.column_width)if(this.input.attached){this.camera.translateTo(a);return false}this.showNewItemsIndicator()},showNewItemsIndicator:function(){if(this.provider.getQuery().type=="items"){if(!this.new_items){this.new_items=new Stream.Notices.NewItems;this.bindEvent(this.new_items,"show_new_items",this.onShowNewItems)}this.new_items.show()}},hideNewItemsIndicator:function(){this.new_items&&this.new_items.hide()},onShowNewItems:function(){this.$elem.trigger("show_new_items",
[this])},scrollToBeginning:function(){var a=this.newItemCameraPos(),b=a-this.camera.targetX>this.layout_width;this.adjustCameraRange(a);this.camera.translateTo(a,undefined,b)},onScroll:function(a,b){this.camera.translate(Math.round(b));if(!this.scroll_timeout){var c=this;this.scroll_timeout=setTimeout(function(){var d=c.calcBounds();c.demandItems(d);c.adjustCameraRange();c.scroll_timeout=null},100)}return false},ensureVisible:function(a,b,c){var d=this.cellTranslation($(a).getProp("map_index")),e=
this.scrollPosition();if(d[0]>e.x&&d[0]<e.x+this.layout_width)b&&b();else this.scrollToElem(a,b,c)},scrollToElem:function(a,b,c){a=-(this.cellTranslation($(a).getProp("map_index"))[0]+this.half_column-this.half_width);this.adjustCameraRange(a);this.camera.translateTo(a,undefined,c);var d=this,e=function(){d.$camera.unbind("stop",e);b&&b()};this.$camera.bind("stop",e)},onViewportClick:function(){warn("viewport click");this.$elem.trigger("item_deselect")},onSelectedItemChange:function(a){this.selected_item=
(this.selected_item_elem=a)?$(a).getData():null},onProviderStateChange:function(a){a=="loading"&&this.items.length()==0?this.$elem.addClass("loading"):this.$elem.removeClass("loading")},transform:function(a,b,c,d){this.$elem.setProp("scroll_pos",{x:-a,y:-b});a=a-this.half_width;b=this.$items.getLayoutProps();b.updateLayoutProperties({left:a});this.$items.applyTransform(b.transform,0);a=this.$origin.getLayoutProps();a.scale=c;if(d!==undefined)a.transform.rotation.y=d;this.$origin.applyTransform(a.transform,
0)},initCamera:function(){if(!this.input){this.input=new Stream.Input.Grid;this.disable_input||this.attachInput()}if(!this.camera){this.camera=new Scroller.Camera(this.$viewport);this.$camera=$(this.camera);this.bindEvent(this.$camera,"stop",this.onCameraStop);this.camera.setWallTransformCallback(delegate(this,this.transform))}},columnIndex:function(a){a-=this.index_offset;return a>=0?Math.floor(a/this.num_rows):-Math.ceil(Math.abs(a)/this.num_rows)},rowIndex:function(a){a-=this.index_offset;var b=
0;return b=a>=0?a%this.num_rows:this.num_rows-1-Math.abs(a+1)%this.num_rows},cellTranslation:function(a){var b=this.rowIndex(a);a=this.columnIndex(a);a=Math.round(a*this.column_width);b=Math.round(b*this.row_height);var c=this.layout_props;if(c.offset){a+=c.offset.left;b+=c.offset.top}a+=this.cell_padding;b+=this.cell_padding;return[a,b,1]},isVisible:function(a){a=a.translation;var b=-this.$items.position().left;if(a.x<b)return false;if(a.x>b+this.layout_props.width)return false;return true},itemTransform:function(a){a=
this.cellTranslation(a);return new Transform({translation:{x:a[0]+this.item_props.left,y:a[1]+this.item_props.top,z:a[2]}})},itemLayoutProps:function(a){var b=$(a),c=b.getProp("map_index");a=b.getData();b.getLayoutProps(true);b=this.itemTransform(c);return{border:Stream.Config.Grid.ITEM_BORDER,width:this.item_width,height:this.item_height,z_index:1E4,viewport:{left:-this.item_props.left,top:-this.item_props.top,width:this.item_width,height:this.item_height},transform:b,crop_thumb:false,scale_thumb:a.item_type==
"loading_indicator"?false:true,origin:{z:0,scale:1}}},layoutItem:function(a,b,c,d){if(this.index_offset==undefined)this.index_offset=this.firstIndex();var e=$(b),f=e.getData();if(!e.getProp("no_layout")){this.initCamera();if(f.item_type=="loading_indicator"){e.show();c=0}var g=this.itemLayoutProps(b);g.crop_thumb=false;var k=g.transform;this.adjustCameraRange(-(k.translation.x-this.half_column));if(b===this.selected_item_elem){this.anchor_index=a;this.anchor_transform=k;e.setLayoutProps(g);d&&d()}else{a=
new Batch(null,"grid-layout-"+this.stream.get("eventid")+"-item-"+(b.data.item_type=="stream"?b.data.get("eventid"):b.data.get("mediaid")));a.add(function(n){e.layout(g,c,n)});a.add(function(n){e.applyTransform(k,c,n)});a.complete(function(){d&&d()});a.run()}}},setViewport:function($super,b){$super(b)},calcProps:function($super){$super();this.selected_item_elem=this.$elem.getData().get("selected_item_elem");var b=this.layout_props;if(Stream.Config.SCALE_THUMBS){this.num_rows=b.num_rows?b.num_rows:
Stream.Config.Grid.NUM_ROWS;this.row_height=Math.round(this.layout_height/this.num_rows);this.cell_spacing=Math.floor(this.row_height*Stream.Config.Grid.CELL_SPACING);this.item_height=this.row_height-this.cell_spacing}else{this.item_height=Stream.Config.Entry.THUMB_SIZE+2*Stream.Config.Grid.ITEM_BORDER;if(b.stacks)this.item_height=Math.round(this.item_height/Stream.Config.Stack.ITEM_SIZE);this.num_rows=Math.max(Math.floor(this.layout_height/(this.item_height+this.item_height*Stream.Config.Grid.CELL_SPACING)),
Stream.Config.Grid.MIN_ROWS);this.row_height=Math.floor(this.layout_height/this.num_rows);this.cell_spacing=this.row_height-this.item_height}this.item_width=b.stacks?Math.round(this.item_height*Stream.Config.STACK_ASPECT):Math.round(this.item_height*Stream.Config.ITEM_ASPECT);this.cell_padding=Math.round(this.cell_spacing/2);this.column_width=this.item_width+this.cell_spacing;this.half_column=Math.round(this.column_width/2);this.item_props={left:Math.round(this.item_width/2),top:Math.round(this.item_height/
2)};if(this.scroller){b=this.items.length();if(b>0){b=this.itemTransform(b-1);this.camera.setRightBoundary(Math.max(b.translation.x-2*this.column_width,0))}}},layout:function($super,b,c){this.calcProps();if(this.index_offset==undefined)this.index_offset=this.firstIndex();this.calcAnchor();this.setViewport(this.layout_props);var d=this;if(this.stream.get("access")!=Item.Access.VISIBLE)c&&c();else{this.initCamera();this.$elem.addClass("wall");var e=new Batch(null,"grid-layout-"+this.stream.get("eventid"));
d=this;this.getLayoutItems().each(function(f,g){var k=$(g);k.getProp("no_layout")||e.add(function(n){d.layoutItem(k.getProp("map_index"),g,b,n)})});e.complete(function(){var f=d.calcBounds();if(f){d.stream.get("selected_item_elem")&&d.stream.get("selected_item_elem").data.get("provider_index");d.demandItems(f)}c&&c()});this.adjustCameraRange();e.run()}},adjustCameraRange:function(a){if(a===undefined)if(this.stream.items.length()==0){this.camera.setMinX(0);this.camera.setMaxX(0)}else{a=this.itemCameraPos(this.stream.items.firstItem())+
this.cell_padding;this.camera.setMaxX(a);var b=this.itemCameraPos(this.stream.items.lastItem())+(this.layout_width-this.column_width)-this.cell_padding;this.camera.setMinX(Math.min(a,b))}else{b=this.camera.getMinX();var c=this.camera.getMaxX();a<b&&this.camera.setMinX(a);a>c&&this.camera.setMaxX(a)}},setAnchor:function(a){this.anchor_index=a;this.anchor_transform=this.itemTransform(this.anchor_index)},calcAnchor:function(){if(this.selected_item_elem)this.setAnchor($(this.selected_item_elem).getProp("map_index"));
else{var a=this.items.length();if(a>0){var b=this.scrollPosition();a=Math.min(Math.ceil(b.x/this.column_width)*this.num_rows,a-1);a+=this.index_offset;if(a>this.lastIndex())a=this.lastIndex();else if(a<this.firstIndex())a=this.firstIndex();this.setAnchor(a)}else this.anchor_transform=this.anchor_index=undefined}},calcBounds:function(){if(!(this.stream.get("access")!=Item.Access.VISIBLE||this.$error||this.no_calc_bounds)){var a=this.scrollPosition().x/this.column_width,b=a+this.layout_width/this.column_width,
c=Math.max(4,b-a)*this.num_rows;return{first:Math.floor(a*this.num_rows-c),last:Math.ceil(b*this.num_rows+c)}}},onInputDisabled:function(a){this.disableChildInput(a)},disableChildInput:function(a){this.getLayoutItems().each(function(b,c){$(c).setInputDisabled(a)})},onCameraStop:function(){this.transform(Math.round(this.camera.wallX),Math.round(this.camera.wallY),1,0);this.camera.wallX==this.camera.maxXCoord&&this.hideNewItemsIndicator();this.demandItems(this.calcBounds())},onDragBegin:function(){this.disableChildInput(true)},
onDragEnd:function(){this.disableChildInput(false)}})})();
(function(){Stream.Input.Stack=Class.create("Stream.Input.Stack",Stream.Input.Controller,{attach:function($super,b){$super(b);this.bindEvent(b,"click",this.onClick);this.bindEvent(b,"mouseup",this.onMouseUp);this.bindEvent(b,"mousedown",this.onMouseDown);this.bindEvent(b,"mouseenter",this.onMouseEnter);this.bindEvent(b,"mouseleave",this.onMouseLeave);this.bindEvent(b,"mousemove",this.onMouseMove);this.bindEvent(b,"item_select",this.onItemSelect)},cancelHover:function(){if(this.hover_timeout){clearTimeout(this.hover_timeout);
this.hover_timeout=null}this.$elem.getState()=="hover"&&this.$elem.setState("normal")},cancelPressed:function(){if(this.$elem.getState()=="pressed"){this.$elem.triggerHandler("slice_items");this.$elem.setState("normal")}},startHover:function(){if(!(this.hover_timeout||this.$elem.getState()=="hover")){var a=this;this.hover_timeout=setTimeout(function(){a.hover_timeout=null;a.inputDisabled()||a.$elem.getState()!="pressed"&&a.$elem.setState("hover")},Stream.Config.Stack.HOVER_DELAY)}},onClick:function(){if(!this.inputDisabled()){this.$elem.setState("selected");
return false}},onMouseEnter:function(){this.inputDisabled()||this.startHover()},onMouseLeave:function(){if(!this.inputDisabled()){this.cancelHover();this.cancelPressed()}},onMouseMove:function(){this.inputDisabled()||this.startHover()},onItemSelect:function(a,b){if(this.inputDisabled())return false;if(b!==this.elem){this.onClick();return false}},onMouseDown:function(){if(this.inputDisabled())return false;this.$elem.triggerHandler("fetch_items");this.$elem.setState("pressed");this.cancelHover()},onMouseUp:function(){this.inputDisabled()&&
this.cancelPressed()}})})();
(function(){Stream.Layouts.Stack=Class.create(Stream.Layout,{initialize:function($super){$super("stack");this.item_height=this.item_width=50;this.item_size=Stream.Config.Stack.ITEM_SIZE;this.default_spread=Stream.Config.Stack.DEFAULT_SPREAD;this.pressed_spread_factor=Stream.Config.Stack.PRESSED_SPREAD_FACTOR;this.hover_spread_factor=Stream.Config.Stack.HOVER_SPREAD_FACTOR;this.rotation_factor=Stream.Config.Stack.ROTATION_FACTOR;this.animating=false},attach:function($super,b){$super(b);if(!this.input)this.input=
new Stream.Input.Stack;this.input.attach(b);this.stream=b.getData();this.tween_id="stack-"+this.stream.get("eventid")+"-anim";var c=this.stream.provider;c.bounds=new ListBounds({first:-(Liveshare.Config.numPreviewsPerStack-1),last:Liveshare.Config.numPreviewsPerStack-1});c.max_results=Liveshare.Config.numPreviewsPerStack;this.bindEvent(this.stream,"new_items",this.onNewItems);this.$items=this.find(".items:first");this.$title=this.$overlay.children(".title");this.$name=this.$title.find(".name:first");
this.$thumb=this.$title.find(".thumb:first");this.$info=this.$title.find(".info:first");this.bindEvent(this.$elem,"fetch_items",this.fetchItems);this.bindEvent(this.$elem,"slice_items",this.sliceItems);this.bindEvent(this.$elem,"cancel_animation",this.cancelAnimation);this.$elem.setState("normal");this.bindProp(this.$elem,"state",this.onStateChange);this.bindProp(this.$elem,"input_disabled",this.onInputDisabled);var d=this;this.$thumb.bind("thumb_load",function(e,f,g){e=f/g;var k=0,n=0;if(g>f){k=
Stream.Config.Stack.ICON_SIZE;n=k*e}else{n=Stream.Config.Stack.ICON_SIZE;k=n/e}d.$thumb.css({width:n,height:k});n!=Stream.Config.Stack.ICON_SIZE&&d.sizeTitle()});this.$title.css({display:"block"})},detach:function($super){this.$elem.removeClass("stack");this.input.detach();Tween.killTweensOf(this.tween_id);$super()},fetchItems:function(){var a=this.$items[0].mapper,b=a.options.delay;a.options.delay=0;var c=this.stream.provider;c.bounds=new ListBounds({first:c.firstIndex(),last:c.firstIndex()+Liveshare.Config.previewCount-
1});c.clipToBounds();a.options.delay=b},sliceItems:function(){var a=this.stream.provider,b=Liveshare.Config.numPreviewsPerStack;a.slice(a.firstIndex(),b)},sizeTitle:function(){var a=this.$elem.getLayoutProps();a&&this.$title.css({width:a.width,bottom:-5,left:0})},onStateChange:function(a,b){if(a=="selected"){this.cancelAnimation();var c=this.layout_props.transform;c.translation.z=1;this.$elem.applyTransform(c);c=this.$viewport.getLayoutProps().transform;c.scale=1;this.$viewport.applyTransform(c);
b&&this.$elem.removeClass(b);a&&this.$elem.addClass(a);this.$elem.trigger("item_select",[this.elem])}else this.animateStateChange(a,b)},cancelAnimation:function(){Tween.killTweensOf(this.tween_id)},animateStateChange:function(a,b){var c=this.$elem.getLayoutProps(),d=this.$viewport.getLayoutProps(),e=c.transform.translation.z,f=d.transform.scale;if(a=="hover"){this.$elem.css("z-index",10001);f=1.2;e=25}else{this.$elem.css("z-index",c.z_index);e=f=1}this.cancelAnimation();this.$elem.beginTransition();
var g=Stream.Config.Stack.ANIM_TIME,k=new Transition({z:{start:c.transform.translation.z,end:e},scale:{start:d.transform.scale,end:f}}),n=[],o=this,u=this.getLayoutItems();u.each(function(s,h){var m=$(h),r=new Transform(m.getLayoutProps().transform);m=o.itemTransform(m.getProp("map_index"),m);var p=m.subtract(r);n[s]={start:r,end:m,delta:p}});this.tweening=true;Tween.to(null,this.tween_id,g/1E3,function(s,h,m){s=Math.round(k.value("z",h));c.transform.translation.z=s;o.$elem.applyTransform(c.transform);
s=Math.round(k.value("scale",h));d.transform.scale=s;o.$viewport.applyTransform(d.transform);u.each(function(r,p){var l=n[r],j=l.delta.multiply(h);l=l.start.add(j);j=$(p);j.applyTransform(l);j.getLayoutProps().transform=l});if(m){o.tweening=false;b&&o.$elem.removeClass(b);a&&o.$elem.addClass(a);o.$elem.endTransition()}},0,1,"sine")},getSpread:function(){var a=this.default_spread;switch(this.$elem.getState()){case "hover":a*=this.hover_spread_factor;break;case "pressed":a*=this.pressed_spread_factor}return a},
calcRotation:function(a){a=a%3;var b=this.getSpread()*this.rotation_factor*180;switch(a){case 0:return 0;case 1:return b/10;case 2:return-b/10;default:return 0}},calcOffset:function(a){var b=a%3;this.getSpread();var c=-5,d=-10;if(this.$elem.getState()=="hover"){c=10;d=-1}if(a>3)d=-1;a=c+d*a;switch(b){case 0:b=[0,0,a];break;case 1:b=[0,0,a];break;case 2:b=[0,0,a];break;default:b=[0,0,a]}return b},itemTransform:function(a,b){b.getData();var c=b.getLayoutProps(true).transform,d=c.translation,e=c.rotation;
a-=this.firstIndex();var f=this.calcOffset(a),g=Math.round(f[0]),k=Math.round(f[1]);f=Math.round(f[2]);var n=this.$elem.getLayoutProps(true);g+=n.offset.left;k+=n.offset.top;g+=this.center_x;k+=this.center_y;k-=20;d.x=g;d.y=k;d.z=f;e.x=0;e.y=0;e.z=this.calcRotation(a);c.scale=1;return c},layoutItem:function(a,b,c,d){if(this.layout_props){var e=$(b),f=e.getData();if(f.item_type=="loading_indicator")e.hide();else{var g=e.getLayoutProps(true);if(c===undefined)c=0;var k=this.item_width,n=this.item_height,
o=1E4-(a-this.firstIndex()),u=Stream.Config.Stack.ITEM_BORDER;$(b).css({"z-index":o});var s=this.crop_thumbs!==undefined?this.crop_thumbs:f.item_type!="placeholder";b=new Batch(null,"stack-layout-"+this.stream.get("eventid")+"-item-"+f.get("mediaid"));if(g.border!=u||g.width!=k||g.height!=n||g.z_index!=o)b.add(function(h){e.layout({border:u,width:k,height:n,z_index:o,crop_thumb:s},c,h)});g.transform=this.itemTransform(a,e);b.add(function(h){e.applyTransform(g.transform,c,h)});b.complete(function(){d&&
d()});b.run()}}else d&&d()},validSize:function(a){for(var b=0,c=Stream.Config.Entry.SIZES,d,e=0;e<c.length;e++){d=c[e];if(a>d&&d>b)b=d}return b},calcProps:function($super){$super();var b=this.layout_props;this.center_x=Math.round(b.width/2);this.center_y=Math.round(b.height/2);if(b.called_by!="child_expanded"){this.item_width=Math.round(b.width*Stream.Config.Stack.ITEM_SIZE);this.item_height=Math.round(b.height*Stream.Config.Stack.ITEM_SIZE)}},layout:function($super,b,c){this.calcProps();this.setViewport(this.layout_props);
this.$elem.addClass("stack");this.$elem.css({"z-index":this.layout_props.z_index});var d=new Batch(null,"stack-layout-"+this.stream.get("eventid")),e=this;this.getLayoutItems().each(function(f,g){var k=$(g);if(!k.getProp("no_layout")){var n=k.getData();d.add(function(o){e.layoutItem(n.get("provider_index"),g,b,o)})}});this.sizeTitle();d.complete(function(){c&&c()});d.run()},onInputDisabled:function(){},onNewItems:function(){if(this.$elem.inTransition())return false;var a=this.stream.provider,b=Liveshare.Config.numPreviewsPerStack,
c=this;this.$elem.afterLayout(function(){a.slice(a.firstIndex(),b);c.$elem.layout(500)})}})})();
(function(){Stream.Layouts.ChildExpanded=Class.create("Stream.Layouts.ChildExpanded",Stream.Layout,{initialize:function($super){$super("child_expanded")},attach:function($super,b){$super(b);this.$items=this.$elem.find(".items:first");this.selected_item_elem=this.$elem.getData().get("selected_item_elem");this.$elem.addClass("child_expanded")},detach:function($super){this.$elem.removeClass("child_expanded");$super()},selectedItemProps:function(){this.calcProps();var a=$(this.selected_item_elem).getLayoutProps(),
b=this.scrollPosition(),c=this.$elem.getLayoutProps(),d=c.selected_item_margin;d||(d={left:0,top:0,right:0,bottom:0});a=a.transform;a.translation.z=1;return{width:c.width,height:c.height,padding:c.padding,z_index:10003,viewport:{left:b.x-a.translation.x+d.left,top:b.y-a.translation.y+d.top,width:c.viewport.width,height:c.viewport.height},transform:a,origin:{z:-800,scale:1.5}}},layoutItem:function(a,b,c,d){a=$(b);if(this.selected_item_elem===b){a.css({display:"block"});b=this.selectedItemProps();b.called_by=
"child_expanded";a.layout(b,c);b.called_by=undefined;a.applyTransform(b.transform,c,d)}else{a.css({display:"none"});d&&d()}},layout:function(a,b){var c=this,d=new Batch(null,"child_expanded_layout");this.getLayoutItems().each(function(e,f){d.add(function(g){c.layoutItem(e,f,0,g)})});d.complete(b).run()}})})();
(function(){Stream.Layouts.ItemSelected=Class.create("Stream.Layouts.ItemSelected",Stream.Layout,{initialize:function($super){$super("item_selected");this.opacity={start:0.01,end:0.8};this.z_index={overlay:10001,actions:10002,item:10003,info:10004}},attach:function($super,b){$super(b);this.item_elem=this.$elem.getData().get("selected_item_elem");this.$item=$(this.item_elem);this.item=this.$item.getData();this.$overlay=$('<div class="overlay no-layout c3d flat z3"/>');this.$overlay.bind("click",delegate(this,
this.deselectItem));this.$items=this.$elem.find(".items:first");this.$items.append(this.$overlay);this.$elem.addClass("item_selected")},deselectItem:function(){this.$elem.inTransition()||this.$elem.trigger("item_deselect",[this.item_elem])},changeItem:function(a){this.item.set("state","normal");this.item_elem=a;this.item.set("state","selected");this.$item=$(this.item_elem)},calcProps:function(){var a=this.scrollPosition(),b=this.$elem.getLayoutProps(),c=this.$viewport.getLayoutProps(),d=b.offset.left+
a.x;a=b.offset.top+a.y;var e=c.width;c=c.height;this.overlay_props={css:{width:b.width,height:b.height,opacity:this.opacity.end,"z-index":10001},translation:{x:d-b.padding.left,y:a-b.padding.top,z:3}};b=this.$item.getLayoutProps();var f=b.thumb_props;f||(f={aspect:Stream.Config.ITEM_ASPECT});var g=b.transform.translation;this.$item.getLayout();var k=f.aspect,n=Math.min(c*0.9,c-40),o=Math.min(e*0.9,e-100);f=1;if(n*k<o)f=n/c;else if(o/k<n)f=o/e;k=Math.round(c*f);f=Math.round(e*f);this.original_props=
{x:g.x,y:g.y,z:g.z,width:b.width,height:b.height,z_index:b.z_index};this.target_props={x:d+Math.round(e/2),y:a+Math.round(c/2),z:5,width:f,height:k};this.initTransition()},initTransition:function(){this.transition=new Transition({x:{start:this.original_props.x,end:this.target_props.x},y:{start:this.original_props.y,end:this.target_props.y},z:{start:this.original_props.z,end:this.target_props.z},width:{start:this.original_props.width,end:this.target_props.width},height:{start:this.original_props.height,
end:this.target_props.height},opacity:{start:this.opacity.start,end:this.opacity.end}})},layout:function(a,b){var c=this.$elem.getData();this.item_elem!==c.get("selected_item_elem")&&this.changeItem(c.get("selected_item_elem"));this.calcProps();this.layoutOverlay();this.layoutSelectedItem();b&&b()},layoutOverlay:function(){this.$overlay.css(this.overlay_props.css);this.$overlay.applyTranslation(this.overlay_props.translation)},layoutSelectedItem:function(){this.$item.layout({width:this.target_props.width,
height:this.target_props.height,crop_thumb:false,z_index:this.z_index.item,border:Stream.Config.ItemSelected.ITEM_BORDER},0);this.$item.applyTranslation({x:this.target_props.x,y:this.target_props.y,z:this.target_props.z})},detach:function($super){this.$overlay.unbind("click",this.click_handler);this.$overlay.remove();this.$elem.removeClass("item_selected");$super()}})})();
(function(){var a={MSG:"Tip: Click to share this stream with friends.",COOKIE_CLOSED:"share_tip_closed",COOKIE_COUNT:"share_tip_count",MAX_SHARE_DISPLAYS:3},b={direction:"top",initial_delay:5E3,show_time:5E3,fade_in_time:1E3,fade_out_time:2E3},c={};Stream.Actions=Class.create("Stream.Actions",Layout.Controller,{initialize:function($super){$super("stream-actions");this.following_text=""},attach:function($super,e){$super(e);this.stream=this.getData();this.$inner=this.find(".inner:first");this.$members=
this.find(".menu-item.members");this.bindEvent(this.$members,"menu_show",this.onShowMenu);this.$members_menu=this.find(".menu.members");this.$loading=this.find(".loading");this.$loading.hide();this.$follow=this.find("a.follow");this.bindEvent(this.$follow,"mouseenter",this.onFollowingEnter);this.bindEvent(this.$follow,"mouseleave",this.onFollowingLeave);this.bindEvent(this.$follow,"click",this.onFollowClick);this.$upload_photos=this.find("div.upload_photos:first");this.bindProp(this.stream,"subscribed",
this.onFollowingChange);this.onFollowingChange();this.$name=this.find(".name");this.$edit_name=this.find("input[name='edit_name']");this.bindProp(this.stream,"owner",this.onStreamOwnerUpdate);this.onStreamOwnerUpdate();this.bindProp(Liveshare.MyUser,"authenticated",this.onAuthChange);this.bindProp(this.stream,"access",this.onStreamAccessChange);this.onStreamAccessChange()},detach:function($super){this.share_tip_timeout&&clearTimeout(this.share_tip_timeout);this.share_tip&&this.share_tip.hide();this.destroyShareTip();
$super()},added:function(){if(this.stream.get("access")==Item.Access.VISIBLE)if(this.stream.get("is_private")&&this.stream.get("num_members")==0){this.$members.hide();this.$loading.show();this.$elem.trigger("resize");var d=this;(new App.Tasks.RefreshStreamDetails(this.stream)).complete(function(){if(d.attached){d.$loading.hide();d.$members.show();d.$elem.trigger("resize");d.showShareTip()}}).run()}else this.showShareTip()},showShareTip:function(){if(!(Get_Cookie(a.COOKIE_CLOSED)=="true"||this.stream.no_share_tip))if(!(parseInt(Get_Cookie(a.COOKIE_COUNT)||
"0")>=a.MAX_SHARE_DISPLAYS)){var d=this.stream.get("eventid");if(c[d]!==true){c[d]=true;this.share_tip=Form.showError(this.$members_menu,a.MSG,b);this.bindEvent(this.share_tip,"closed",this.onShareTipClosed);this.bindEvent(this.share_tip,"fade_complete",this.onShareTipFadeOut)}}},onShareTipFadeOut:function(){this.destroyShareTip();var d=parseInt(Get_Cookie(a.COOKIE_COUNT)||"0");d+=1;Set_Cookie(a.COOKIE_COUNT,d.toString(),3650)},onShareTipClosed:function(){this.destroyShareTip();Set_Cookie(a.COOKIE_CLOSED,
"true",3650)},destroyShareTip:function(){if(this.share_tip){this.unbindEvent(this.share_tip,"closed");this.unbindEvent(this.share_tip,"fade_complete")}this.share_tip=undefined},onShowMenu:function(){if(this.share_tip){this.share_tip.hide();this.destroyShareTip()}this.share_tip_timeout&&clearTimeout(this.share_tip_timeout)},layout:function(d,e){var f=this.$elem.getLayoutProps();if(f){var g=this.$members.outerWidth(true),k=this.$loading.outerWidth(true),n=this.$follow.outerWidth(true),o=this.$upload_photos.outerWidth(true);
this.$name.css({width:"auto"});n=g+k+n+o+10;g=Math.max(this.$name.width(),200);this.$name.width(g);o=this.$name.outerWidth(true)-this.$name.width();k=n+g+o;if(k>f.width){g=f.width-n-o;this.$name.css({width:g});k=f.width}f=this.$edit_name.outerWidth()-this.$edit_name.width();this.$edit_name.css({width:g-f});this.$inner.css({width:k,left:-Math.round(k/2)})}e&&e()},onStreamAccessChange:function(){this.stream.get("access")==Item.Access.VISIBLE?this.$elem.show():this.$elem.hide()},onAuthChange:function(){this.onStreamOwnerUpdate();
this.onFollowingChange()},showEdit:function(){this.$edit_name[0].value=this.$name.text();this.$name.hide();this.$edit_name.show();this.$edit_name.focus()},onStreamOwnerUpdate:function(){if(this.stream.get("owner")){this.$name.css({cursor:"pointer"});this.bindEvent(this.$name,"click",this.onNameEditClick);this.bindEvent(this.$edit_name,"blur",this.onNameEditDone);this.bindEvent(this.$edit_name,"keypress",this.onNameEditKeyPress)}this.layout()},onFollowingChange:function(){this.set("following_text",
Liveshare.authenticated()&&this.stream.get("subscribed")?"Subscribed":"Subscribe");this.layout()},onFollowingEnter:function(){this.get("following_text")=="Subscribed"&&this.set("following_text","Unsubscribe");this.get("following_text")==UNSUBSCRIBED_TEXT&&this.set("following_text","Subscribe")},onFollowingLeave:function(){this.get("following_text")=="Unsubscribe"&&this.set("following_text","Subscribed")},onFollowClick:function(){var d=this.stream.get("subscribed");if(d)if(!confirm("Are you sure you want to unsubscribe to this stream?\nThis stream will not appear on your home page and you will no longer receive email notifications."))return false;
this.unbindEvent(this.$follow,"click");var e=this;(new Stream.Tasks.Follow(this.stream,!d)).complete(function(){e.bindEvent(e.$follow,"click",e.onFollowClick)}).run();return false},onNameEditClick:function(){this.showEdit()},onNameEditKeyPress:function(d){d.which==13&&this.onNameEditDone();if(d.which==27){d=this.stream.get("name");this.$name.text(d);this.$edit_name[0].value=d;this.$edit_name.hide();this.$name.show()}},onNameEditDone:function(){this.$edit_name.hide();this.$name.show();if(this.$name.text()!=
this.$edit_name[0].value){if(this.$edit_name[0].value!=""){this.$name.text(this.$edit_name[0].value);this.stream.provider.getQuery().method!="local"&&LiveshareAPI.EditEvent({eventid:this.stream.get("eventid"),name:this.$edit_name[0].value},delegate(this,this.onEditEventCallback))}this.$elem.trigger("resize")}},onEditEventCallback:function(d){if(d.result&&d.result.returncode===0)this.stream.set("name",this.$name.text());else{d=this.stream.get("name");this.$name.text(d);this.$edit_name[0].value=d}}})})();
Stream.Header=Class.create("Stream.Header",Layout.Controller,{initialize:function($super){$super("stream-header");this.template_map={stacks:"/src/app/stream/header/stack_title.template",stream:"/src/app/stream/header/stream_actions.template",create:"/src/app/stream/header/stream_create.template"}},chooseTemplate:function(a){return[this.template_map[a],this.stream]},attach:function($super,b){$super(b);this.bindEvent(this.$elem,"add_template",this.onAddTemplate);this.bindProp(this.$elem,"state",this.onElemStateChange);
this.bindProp(this.$elem,"data",this.onDataChange);this.$elem.setState("initial")},onDataChange:function(a){var b=a.stream;b!==this.stream&&this.$elem.setState("initial");this.stream=b;this.$elem.setState(a.state)},onElemStateChange:function(a){this.set("state",a)},onAddTemplate:function(){this.layout()},layout:function(a,b){var c=this.$elem.getLayoutProps();this.$elem.children().each(function(d,e){$(e).layout(c)});b&&b()}});
(function(){var a={INITIAL:"initial",WAITING_ON_AUTH:"waiting_on_auth",REQUEST_PENDING:"request_pending",STREAM_CREATED:"stream_created"};Stream.Create=Class.create("Stream.Create",Layout.Controller,{initialize:function($super){$super("stream-create");this.messages={initial_tip:'<ol class="list"><li>Name your stream.</li><li>Select Public or Private.</li><li>Click Create Stream to finish.</li></ol>',title_error:"Please enter a stream title.",fade_in_time:1500};this.set("state",a.INITIAL)},attach:function($super,
c){$super(c);this.stream=this.getData();this.stream.set("is_private",true);Get_Cookie("create_type")=="public"&&this.stream.set("is_private",false);this.$inner=this.find(".inner:first");this.$edit_name=this.find("input[name='edit_name']");this.$edit_name.val("Enter a name for your new stream");this.bindEvent(this.$edit_name,"focus",this.onEditFocus);this.bindEvent(this.$edit_name,"blur",this.onEditBlur);this.$visibility=this.find(".visibility");this.$public=this.find(".btn.public");this.bindEvent(this.$public,
"click",this.onPublicClick);this.$private=this.find(".btn.private");this.bindEvent(this.$private,"click",this.onPrivateClick);this.$create=this.find(".menu.create");this.bindEvent(this.$create,"click",this.onCreate);this.$login=this.find(".login-container");this.$menu=this.find(".menu-item.create");this.bindEvent(this.$menu,"menu_close",this.onMenuClose);this.menu=this.$menu.getController();this.bindProp(Liveshare.MyUser,"authenticated",this.onAuthChange);this.bindProp(this,"state",this.onStateChange);
this.bindEvent(window,"loginSuccess",this.onLoginSuccess);this.bindProp(this.stream,"orphan_file_count",this.onStreamOrphanCountChange);if(this.stream.get("is_empty")){this.show_create_tip=true;this.createTipTimer()}else this.onShowCreateTip();this.stream.get("is_private")?this.$private.addClass("option_selected"):this.$public.addClass("option_selected")},detach:function($super){this.hideNotice();this.hideTip();this.killTipTimer();$super()},onStateChange:function(b){if(b==a.REQUEST_PENDING){this.unbindEvent(this.$create,
"click");this.$create.addClass("disabled")}},onStreamOrphanCountChange:function(b,c){!c&&b>0&&this.showStreamCreateInstructions()},createTipTimer:function(){this.create_timer=setTimeout(delegate(this,this.showStreamCreateInstructions),7E3)},killTipTimer:function(){if(this.create_timer){clearTimeout(this.create_timer);this.create_timer=undefined}},showStreamCreateInstructions:function(){this.killTipTimer();if(this.show_create_tip){this.show_create_tip=false;this.onShowCreateTip()}},onShowCreateTip:function(){if(Get_Cookie("create_tip_closed")!=
"true"){var b={direction:"top",fade_in_time:this.messages.fade_in_time};this.hideAllErrors();this.tip=Form.showError(this.$edit_name,this.messages.initial_tip,b);this.bindEvent(this.tip,"closed",this.onCreateTipClosed)}},onCreateTipClosed:function(){Set_Cookie("create_tip_closed","true",3650)},hideTip:function(){if(this.tip){this.unbindEvent(this.tip,"closed");this.tip.hide();this.tip=undefined}},layout:function(b,c){this.$elem.getLayoutProps();var d=20+this.$edit_name.outerWidth(true)+this.$visibility.outerWidth(true)+
this.$create.outerWidth(true);this.$inner.css({width:d,left:-Math.round(d/2)});this.tip&&this.tip.layout();c&&c()},validate:function(){this.hideTip();var b=this.$edit_name.val();if(b==""||b=="Enter a name for your new stream"){this.hideAllErrors();this.tip=Form.showError(this.$edit_name,this.messages.title_error,{direction:"top"});return false}return true},onEditFocus:function(){this.hideTip();this.killTipTimer();this.$edit_name.val()=="Enter a name for your new stream"&&this.$edit_name.val("");this.$edit_name.removeClass("accent_color")},
onEditBlur:function(){if(this.$edit_name.val()==""){this.$edit_name.val("Enter a name for your new stream");this.$edit_name.removeClass("valid")}else{this.$edit_name.addClass("valid");this.$elem.find(".menu.option_selected").trigger("click")}},onCreate:function(){this.killTipTimer();if(!this.validate())return false;if(!Liveshare.authenticated()){this.set("state",a.WAITING_ON_AUTH);this.$login.getController().setState("signup");this.menu.toggle();return false}this.createStream();return false},hideNotice:function(){Notices.cancelDisplay("stream_create_text",
"center_top")},showNotice:function(b){this.hideTip();this.hideNotice();var c=$('<div class="stream_create_notice"/>');c.html(b);b=new Notice({$content:c,contenttype:"dom",id:"stream_create_text",priority:3,timeOut:0,slot:"center_top",css_class:"info_block",fade_in_time:500,display_time:7E3,fade_out_time:3E3});Notices.requestDisplay(b)},hideAllErrors:function(){Form.hideError(this.$private);Form.hideError(this.$public);this.hideTip()},onPublicClick:function(){this.stream.set("is_private",false);Set_Cookie("create_type",
"public",3650);this.hideAllErrors();Form.showError(this.$public,"<strong>Public Stream</strong>:&nbsp;Everyone can view, upload, like and comment.",{direction:"top",show_time:"5000"})},onPrivateClick:function(){this.stream.set("is_private",true);Set_Cookie("create_type","private",3650);this.hideAllErrors();Form.showError(this.$private,"<strong>Private Stream</strong>:&nbsp;Only people invited to the stream can view, upload, like and comment.",{direction:"top",show_time:"5000"})},onLoginSuccess:function(){this.menu.close()},
onAuthChange:function(){Liveshare.authenticated()&&this.get("state")==a.WAITING_ON_AUTH&&this.validate()&&this.createStream()},createStream:function(){var b=this.$edit_name.val();this.set("state",a.REQUEST_PENDING);LiveshareAPI.CreateStream({streamTitle:b,event_type:this.stream.get("is_private")?2:1,ls_userid:Liveshare.MyUser.get("userid")},delegate(this,this.afterCreateStream))},afterCreateStream:function(b){b=b.eventid;this.set("state",a.STREAM_CREATED);this.stream.set("eventid",b);this.stream.set("name",
this.$edit_name.val());var c=this;(new Task(function(d){if(c.stream.users){for(var e="",f=0;f<=c.stream.users.length;f++){var g=c.stream.users[f];if(e!="")e+=",";e+=g.email}LiveshareAPI.AddFriends({eventid:c.stream.get("eventid"),addFriends:e},function(){d&&d()})}else d&&d()})).then(function(d){(new App.Tasks.RefreshStreamDetails(c.stream)).complete(d).run()}).complete(function(){$(c.stream).triggerHandler("created")}).run()},onMenuClose:function(){this.$login.triggerHandler("hide_errors")}})})();
Stream.Notices.NewItems=Class.create("Stream.Notices.NewItem",PropertyList,{initialize:function(){this.$new_items=applyTemplate("/src/app/stream/notices/new_items/new_items.template");this.new_items_notice=new Notice({$content:this.$new_items,contenttype:"dom",id:"new_items_notice",priority:2,timeOut:5E3,slot:"center_top"})},onClick:function(){this.hide();$(this).triggerHandler("show_new_items")},onClose:function(){this.hide();return false},show:function(){if(!this.showing){this.showing=true;this.bindEvent(this.$new_items,
"click",this.onClick);Notices.requestDisplay(this.new_items_notice)}},hide:function(){if(this.showing){this.showing=false;this.unbindEvent(this.$new_items,"click");Notices.cancelDisplay("new_items_notice","center_top")}}});
(function(){Scroller.InputHandler=Class.create("Scroller.InputHandler",Controller,{initialize:function($super){$super();this.attached=false;this.enabled=true;this.mouseDragged=false;this.lastMouseDragX=0;this.isMouseDown=false},attach:function($super,b){$super(b);this.attached=true;this.bindEvent(b,"mousemove",this.onMouseMove);this.bindEvent(b,"mousedown",this.onMouseDown);this.bindEvent(b,"mouseup",this.onMouseUp);this.bindEvent(b,"mousewheel",this.onMouseWheel);this.bindEvent(b,"mouseenter",this.onMouseEnter);
this.bindEvent(b,"mouseleave",this.onMouseLeave);this.bindEvent(b,"touchstart",this.onTouchStart);this.bindEvent(b,"touchmove",this.onTouchMove)},detach:function($super){$super();this.attached=false},onClick:function(){if(this.state=="dragging")return false},onMouseEnter:function(){!this.enabled||this.$elem.inputDisabled()},onMouseLeave:function(a){!this.enabled||this.$elem.inputDisabled()||this.onMouseUp(a)},onMouseDown:function(a){if(!(!this.enabled||this.$elem.inputDisabled())){if($(a.target).hasClass("overlay"))return true;
this.mouseDragged=false;this.isMouseDown=true;this.lastMouseDragX=a.pageX;this.$elem.trigger("_mousedown");return false}},onMouseMove:function(a){if(!(!this.enabled||this.$elem.inputDisabled()))if(this.isMouseDown)return this.onDrag(a.pageX)},onTouchStart:function(a){a=a.originalEvent.touches;if(a.length==1)this.lastMouseDragX=a[0].pageX},onTouchMove:function(a){if(!(!this.enabled||this.$elem.inputDisabled())){var b=a.originalEvent.touches;a.preventDefault();b.length==1&&this.onDrag(b[0].pageX)}},
onMouseUp:function(a){if(!(!this.enabled||this.$elem.inputDisabled())){this.isMouseDown=false;$(a.target);if(this.get("state")=="dragging"){var b=this;setTimeout(function(){b.set("state","normal");b.$elem.triggerHandler("scroll_drag_end")},1)}return false}},onMouseWheel:function(a,b,c,d){if(!(!this.enabled||this.$elem.inputDisabled())){a=this.$elem.getLayoutProps().width*0.1;c=c!=0?c:d;c=c<0?-1:1;this.scrollBy(c*a);return false}},onDrag:function(a){var b=a-this.lastMouseDragX;if(!this.mouseDragged&&
Math.abs(b)<1)return false;this.mouseDragged=true;this.scrollBy(b*1.85);this.lastMouseDragX=a;if(this.get("state")!="dragging"){this.set("state","dragging");this.$elem.triggerHandler("scroll_drag_begin");return false}},scrollBy:function(a){this.$elem.triggerHandler("scroll_by",[a])}})})();
(function(){var a=Math.round(1E3/24),b=1/a;Scroller.Camera=Class.create("Scroller.Camera",Dispatcher,{initialize:function(c){this.$viewport=c;this.reset()},reset:function(){if(this.isAnimating){warn("Camera is animating when reset() was called");this.stop()}this.minXCoord=this.maxXCoord=0;this.currentSpeed=1;this.isRotating=this.isZooming=this.isTranslating=false;this.targetY=this.targetX=0;this.targetZoom=1;this.wallY=this.wallX=this.targetRotationY=0;this.wallZoom=1;this.fpsMultiplier=this.lastTime=
this.wallRotationY=0;this.updateTimeout=null;this.defaultZoomLevel=1;this.maxZoomLevel=1.25*this.defaultZoomLevel;this.minZoomLevel=0.33*this.defaultZoomLevel},update:function(){var c=(new Date).getTime(),d=c-this.lastTime;if(this.lastTime!==0)this.fpsMultiplier=Math.min(d*b,4.5);this.lastTime=c;c=false;if(this.isTranslating){c=true;this.updateTranslation()}if(this.isRotating){c=true;this.updateRotation()}if(c&&this.setWallTransformFcn){this.setWallTransformFcn(this.wallX,this.wallY,this.wallZoom,
this.wallRotationY);var e=this;this.updateTimeout=setTimeout(function(){e.update()},Math.max(a-d,1))}else this.stop()},updateTranslation:function(){var c=this.fpsMultiplier*0.18,d=false;if(this.targetX>this.maxXCoord){d=true;var e=this.maxXCoord-this.targetX;if(Math.abs(e)<0.55)this.targetX=this.maxXCoord;else this.targetX+=e*c}else if(this.targetX<this.minXCoord){d=true;e=this.minXCoord-this.targetX;if(Math.abs(e)<0.55)this.targetX=this.minXCoord;else this.targetX+=e*c}c=this.fpsMultiplier*0.21;
e=false;var f=this.targetX-this.wallX;if(Math.abs(f)<0.55)this.wallX=this.targetX;else{this.wallX+=f*c;e=true}f=this.targetY-this.wallY;if(Math.abs(f)<0.55)this.wallY=this.targetY;else{this.wallY+=f*c;e=true}this.isTranslating=d||e},updateZoom:function(){var c=this.targetZoom-this.wallZoom;if(Math.abs(c)<5.0E-4){this.wallZoom=this.targetZoom;this.isZooming=false;if(this.onZoomComplete){this.onZoomComplete();this.onZoomComplete=null}}else this.wallZoom+=0.11*c*this.fpsMultiplier;this.currentSpeed=
this.wallZoom==this.defaultZoomLevel?1:1+(this.maxZoomLevel/this.wallZoom-this.defaultZoomLevel)*1.25},updateRotation:function(){var c=false;if(this.targetRotationY!==0){this.targetRotationY*=0.75;if(Math.abs(this.targetRotationY)<0.01)this.targetRotationY=0;c=true}var d=false,e=this.targetRotationY-this.wallRotationY;if(Math.abs(e)<0.01)this.wallRotationY=this.targetRotationY;else{this.wallRotationY+=0.15*e*this.fpsMultiplier;d=true}this.isRotating=c||d},translate:function(c){this.translateTo(Math.round(this.targetX+
c*this.currentSpeed))},translateTo:function(c,d,e){if(e)this.wallX=this.targetX=Utils.clamp(c,this.minXCoord,this.maxXCoord);else{if(c!==undefined){this.targetX=c;if(!this.overshootAmount)this.overshootAmount=this.$viewport.width()*0.35;this.targetX=Utils.clamp(this.targetX,this.minXCoord-this.overshootAmount,this.maxXCoord+this.overshootAmount)}if(d!==undefined)this.targetY=d;c=this.targetX-this.wallX;this.targetRotationY=(c<0?0.07:-0.07)*Math.min(500,Math.abs(c))}this.translationHasChanged();this.rotationHasChanged()},
zoomTo:function(c){this.targetZoom=Utils.clamp(c,this.minZoomLevel,this.maxZoomLevel);this.zoomHasChanged()},zoomWithWheel:function(c){this.zoomTo(Math.min(this.targetZoom+c*0.12,this.defaultZoomLevel))},zoomToSelectedCellLevel:function(){this.zoomTo(this.maxZoomLevel)},zoomToDefaultLevel:function(){this.zoomTo(this.defaultZoomLevel)},getLeftBoundary:function(){return this.maxXCoord},setLeftBoundary:function(c){this.maxXCoord=c},setRightBoundary:function(c){this.minXCoord=-c},getRightBoundary:function(){return-this.minXCoord},
getMinX:function(){return this.minXCoord},setMinX:function(c){this.minXCoord=c},getMaxX:function(){return this.maxXCoord},setMaxX:function(c){this.maxXCoord=c},setWallTransformCallback:function(c){this.setWallTransformFcn=c},translationHasChanged:function(){this.isTranslating=true;this.start()},rotationHasChanged:function(){this.isRotating=true;this.start()},zoomHasChanged:function(){this.isZooming=true;this.start()},determineZoomLevels:function(c,d,e,f){c=this.targetZoom/this.defaultZoomLevel;this.defaultZoomLevel=
f/this.$viewport.height()*0.82;this.maxZoomLevel=1.25*this.defaultZoomLevel;this.minZoomLevel=0.33*this.defaultZoomLevel;this.targetZoom=c*this.defaultZoomLevel;this.zoomHasChanged()},start:function(){this.isAnimating=true;if(!this.updateTimeout){$(this).triggerHandler("start");this.lastTime=(new Date).getTime();this.update()}},stop:function(){if(this.isAnimating){this.setWallTransformFcn(this.targetX,this.targetY,this.targetZoom,0);this.isAnimating=false;this.lastTime=0;if(this.updateTimeout){clearTimeout(this.updateTimeout);
this.updateTimeout=null;$(this).triggerHandler("stop")}}},getMaxZoomLevel:function(){return this.maxZoomLevel},setZoomCompleteCallback:function(c){this.onZoomComplete=c}})})();
Template.Cache["/src/liveshare/profile/profile.template"]=function(a){var b=a.data,c=a.attach,d=a.text;a=a.invoke;var e=[];e.push("");e.push("  ",c("controller",new Liveshare.ProfileController),"  ",c("data",b),'  <div id="myAccount" class="ls_profile shadow_box">    <div class="inner">      <p class="text_right">        <a class="back">Back</a>      </p>      <h2>My Account</h2>      <div class="clearfix">        <div class="userimage col_lt">          <img class="picture" src="',b.get("image_path"),
'" width="105"/>          ',a("/src/liveshare/profile/picture/change_picture.template",b),'           </div>        <div id="ls_profile" class="col_rt">          <ul class="auth_form clearfix">            <li class="label col_lt" style="margin-top:8px">Name:</li>            <li id="userName" class="col_lt input_name">              <span>',d(b,"first_name"),"</span>&nbsp;              <span>",d(b,"last_name"),'</span> <img src="',server_vars.static_root,'/images/btn_edit.png" id="editName"/>                        </li>            <li id="userNameForm" class="col_lt input_name" style="display:none;">              <form id="usersNameUpdate" action="/account/update" method="post">              <input type="text" name="lsFirstName" id="lsFirstName" value="',
b.get("first_name"),'" /> <input type="text" name="lsLastName" id="lsLastName" value="',b.get("last_name"),'" />              <img src="',server_vars.static_root,'/images/btn_sm_cancel.png" id="nameCancel"/> <input type="image" alt="save" src="',server_vars.static_root,'/images/btn_sm_save.png" name="lsSubmitName" id="lsSubmitName">              <input type="hidden" value="1" name="edit_username">              </form>            </li>          </ul>          <ul class="auth_form clearfix">            <li class="label col_lt">Email:</li>            <li class="col_lt input_val">',
b.get("primary_email"),"</li>          </ul>                    ",c("mapper",new Template.Mapper("/src/liveshare/profile/email/profile_email.template",b.other_emails)),'          <div class="other_emails"/>                    <ul class="auth_form clearfix">            <li class="label col_lt" style="margin-top:8px">Phone:</li>            <li class="col_lt input_name">',b.get("primary_phone"),"</li>          </ul>          ",c("mapper",new Template.Mapper("/src/liveshare/profile/phone/profile_phone.template",
b.other_phones)),'          <div class="other_phones"/>                    <ul id="passwordAction" class="auth_form clearfix">            <li class="label col_lt" style="margin-top:8px;">Password:</li>            <li class="col_lt input_val">              <img src="',server_vars.static_root,'/images/btn_edit.png" id="changePassword"/>            </li>          </ul>          <div id="inputPassword" style="display:none;">            <form id="usersPasswordUpdate" name="usersPasswordUpdate" action="/account/update" method="post">              <input type="hidden" value="1" name="edit_password">              <ul class="auth_form clearfix">                <li id="password" class="label col_lt">Current Password:</li>                <li class="col_lt input_val">                  <input type="password" name="currentPassword" id="currentPassword" value="" />                </li>              </ul>              <ul class="auth_form clearfix">                <li id="password" class="label col_lt">New Password:</li>                <li class="col_lt input_val">                  <input type="password" name="newPassword" id="newPassword" value="" />                </li>              </ul>              <ul class="auth_form clearfix">                <li id="password" class="label col_lt">Verify New Password:</li>                <li class="col_lt input_val">                  <input type="password" name="verifyPassword" id="verifyPassword" value="" />                </li>              </ul>              <ul id="auth_form" class="clearfix">                <li class="submit_btn">                  <img class="col_lt" src="',
server_vars.static_root,'/images/btn_sm_cancel.png" id="passwordCancel"/> <input type="image" alt="save" src="',server_vars.static_root,'/images/btn_sm_save.png" name="lsSubmitPassword" id="lsSubmitPassword" class="col_lt">                  <p class="password error col_lt"></p>                </li>              </ul>            </form>          </div>          <ul class="auth_form clearfix">            <li class="notification col_lt" style="margin-top:-4px;">Email Notifications: <input type="checkbox" id="',
b.get("notifyviaemail")==true?"on_off_on":"on_off",'" ',b.get("notifyviaemail")==true?'checked="checked"':"",' /></li>          </ul>          <ul id="auth_form" class="fb_yes">            <li>              <p>Your account is currently connected with your Facebook account so your friends can find you more easily.</p>            </li>          </ul>        </div>      </div>      <h4 class="status"></h4>        <hr class="fb_no" />      <h3 class="fb_no">Make it easier for friends to find you by connecting your account to Facebook</h3>      <div class="facebook_login fb_no">        ',
a("/src/app/buttons/fb_connect/fb_connect.template",{mode:"connect"}),'        <p class="facebook error"></p>      </div>    </div>  </div>    ');return e.join("")};
Template.Cache["/src/liveshare/profile/email/profile_email.template"]=function(a){var b=a.data;a=a.attach;var c=[];c.push("");c.push("  ",a("controller",new Liveshare.ProfileEmail),"  ",a("data",b),'  <ul class="auth_form clearfix">    <li class="label col_lt">&nbsp;</li>    <li class="col_lt input_val">      ',b.identifier,'&nbsp;<img class="delete vert_align" src="',server_vars.static_root,'/images/btn_delete.png"/>    </li>  </ul>');return c.join("")};
Template.Cache["/src/liveshare/profile/phone/profile_phone.template"]=function(a){a=a.data;var b=[];b.push("");b.push('  <ul class="auth_form clearfix">    <li class="label col_lt">&nbsp;</li>    <li class="col_lt input_val">      ',a.identifier,'&nbsp;<img class="delete vert_align" src="',server_vars.static_root,'/images/btn_delete.png"/>    </li>  </ul>');return b.join("")};
Template.Cache["/src/liveshare/profile/picture/change_picture.template"]=function(a){var b=a.data,c=a.attach;a=a.invoke;var d=[];d.push("");d.push("  ",c("controller",new Liveshare.ChangePicture),"  ",c("settings",{url:"/profile/upload"}),"  ",c("data",b),'  <div class="profile_upload">    ',a("/src/app/buttons/plupload_button/plupload.template",{label:"Choose Picture",css_class:"link accent_color",multi_selection:false}),'    <div class="uploading">    Uploading...    </div>  </div>');return d.join("")};
Template.Cache["/src/app/header/header.template"]=function(a){var b=a.attach;a=a.invoke;var c=[];c.push("",b("layout",new Header.Layout),'  <div id="header" class="header_icons">    <div class="clearfix">      <a id="logo" class="header_icons col_lt" href="',server_vars.base_url,'/#">Liveshare</a>      <div class="header-left">        ');for(b=0;b<Header.Content.left.length;b++)c.push("          ",a(new Template.Instance(Header.Content.left[b])),"        ");c.push('      </div>      <div class="header-center">        ');
for(b=0;b<Header.Content.center.length;b++)c.push("          ",a(new Template.Instance(Header.Content.center[b])),"        ");c.push('      </div>      <div class="header-right">        ');for(b=0;b<Header.Content.right.length;b++)c.push("          ",a(new Template.Instance(Header.Content.right[b])),"        ");c.push("      </div>    </div>  </div>  ");return c.join("")};
Template.Cache["/src/app/footer/footer.template"]=function(){var a=[];a.push('<div id="footer">    <div class="inner">      <p>&copy; 2011 Cooliris, Inc. <a href="/legal">Terms &amp; Privacy</a>.</p>    </div>  </div>');return a.join("")};
Template.Cache["/src/app/wrapper/wrapper.template"]=function(a){var b=a.data,c=a.attach;a=a.invoke;var d=[];d.push("");b=b&&b.page?b.page:undefined;d.push("  ",c("menu",new Menu.Top),"  ",c("layout",new Wrapper.Layout),"  ",c("controller",new Wrapper.Controller),'  <div id="wrapper">    ',a("/src/app/header/header.template"),'    <div id="content">      <div class="notice-area-top">        ',a("/src/app/notices/notice.template",new DataPin(Notices,"center_top_current_notice"),{css_class:"notice-area-center"}),
"      </div>      ",c("template_switcher",new Template.Switcher(b,Wrapper.Pages)),'      <div class="page-container"/>      ',a("/src/app/footer/footer.template"),'      <div class="content-overlay"/>    </div>    <div class="notice-area-top">      <div class="notice-area-right">        ',a("/src/app/notices/notice.template",new DataPin(Notices,"right_top_current_notice")),'      </div>    </div>    <div class="notice-area-bottom">      <div class="notice-area-right">        ',a("/src/app/notices/notice.template",
new DataPin(Notices,"right_bottom_current_notice")),"      </div>    </div>  </div>");return d.join("")};Template.Cache["/src/app/form/error/form_error.template"]=function(a){var b=a.data,c=a.params;a=[];a.push("");(c=c.direction)||(c="right");a.push('  <div class="form_error_message">    <div class="message_bubble blue_bubble">      <div class="inner">      ',b,'      </div>      <div class="arrow ',c,'_arrow ls_assets"/>      <div class="close">x</div>    </div>  </div>');return a.join("")};
Template.Cache["/src/app/upload/drop_overlay.template"]=function(){var a=[];a.push("");var b="to add them to this stream";if(App.isHomePage()&&Liveshare.authenticated())b="to create a new stream";a.push(' <div class="dropoverlay">   <div class="dropoverlay_text">     <br/>     <div class="dropoverlay_text1">',"Drop photos below",'</div>     <div class="dropoverlay_text2">',b,"</div>   </div> </div> ");return a.join("")};
Template.Cache["/src/app/upload/notices/progress/upload_progress.template"]=function(a){a=a.attach;var b=[];b.push("");var c=new Upload.Progress;b.push("  ",a("controller",c),'  <div class="upload_progress_wrapper">    <div class="upload_progress light with_progress_bar">      <span id="upload_progress_text" class="upload_progress_text">Uploading <br/>0 of 0</span>      <div id="upload_progress_bar_bg" class="upload_progress_bar_bg"></div>      <div id="upload_progress_bar" class="upload_progress_bar"></div>    </div>    <div class="upload_error">      <a class="upload_exclaim"></a>      <span class="upload_error_text">One or more of your images <br/> failed to upload</span>    </div>  </div>');
return b.join("")};Template.Cache["/src/app/upload/notices/message/upload_message.template"]=function(){var a=[];a.push('<div class="upload_progress_wrapper">   <div class="upload_progress light without_progress_bar">     <h6 id="upload_progress_text" class="upload_progress_text">Holding 0 file(s) for upload <br/>in your upload queue</h6>   </div> </div>');return a.join("")};
Template.Cache["/src/app/buttons/back_button/back_button.template"]=function(a){var b=a.attach;a=a.text;var c=[];c.push("");var d=new BackButton;c.push(" ",b("controller",d),' <a class="back-button ls_icons back-link">',a(d,"label"),"</a>");return c.join("")};
Template.Cache["/src/app/buttons/create_stream/create_stream.template"]=function(a){var b=a.params;a=a.attach;var c=[];c.push("");(b=b.url)||(b=server_vars.base_url+"/#&tab=create");c.push("  ",a("controller",new Buttons.CreateStream),'  <a class="create_stream btn_short btn_blue active reqlogin col_lt" rel="no-follow" href="',b,'">+ New Stream</a>  ');return c.join("")};
Template.Cache["/src/app/buttons/plupload_button/plupload.template"]=function(a){var b=a.data,c=a.params;a=a.attach;var d=[];d.push("");var e=new Plupload.UploadButton,f=c.label;c=c.css_class;if(b){if(!f)f=b.label;if(!c)c=b.css_class}f||(f="Upload");c||(c="btn_tall btn_blue btn_standard");d.push(" ",a("controller",e)," ",a("data",b),' <div name="pluploader" id="plupload_button_',uuid(),'" class="plupload_btn mk_relative">   <div id="plupload_filepicker_',e.plupload_id,'" class="',c,'">',f,"</div> </div>");
return d.join("")};
Template.Cache["/src/app/buttons/fb_connect/fb_connect.template"]=function(a){var b=a.data,c=a.params;a=a.attach;var d=[];d.push("");(c=c.css_class)||(c="");var e=b.mode;e||(e="login");var f=e=="signup"?"fb_signup_large":"fb_small",g="http://login.cooliris.com/login?x_provider=facebook"+(e=="connect"?"&x_no_create=true":"")+"&redirect_uri="+server_vars.base_url+"/login/popupCB&display=popup&scope=publish_stream%2Cemail";d.push("  ",a("controller",new Buttons.FBConnect),"  ",a("data",b),"  ");e=="connect"?
d.push('  <p>Connect with <a class="provider popup" title="Login using Facebook" href="',g,'">Facebook</a></p>  '):d.push('  <a class="provider popup facebook_connect ',f," ",c,'" title="Login using Facebook" href="',g,'">Login with Facebook</a>  ');d.push("");return d.join("")};
Template.Cache["/src/app/user/user_list.template"]=function(a){var b=a.data,c=a.params;a=a.attach;var d=[];d.push("");c=c.thumb_size;if(c==undefined)c=50;d.push(" ",a("mapper",new Template.Mapper("/src/app/user/user.template",b,{params:{thumb_size:c}})),' <ul class="clearfix hold_users"> </ul>');return d.join("")};
Template.Cache["/src/app/user/user.template"]=function(a){var b=a.data,c=a.params;a=[];a.push("");c=c.thumb_size;if(c==undefined)c=50;a.push(' <li class="user-item">   <div class="clearfix friend dark">     <img src="',b.imageurl,'" width="',c,'" height="',c,'" style="vertical-align: middle"/>     <strong>',Liveshare.fullUserName(b),'</strong>   </div>   <hr class="dotted ls_assets"> </li>');return a.join("")};
Template.Cache["/src/app/search/box/search_box.template"]=function(a){a=a.attach;var b=[];b.push("",a("controller",new Search.Box),' <div class="search-box">   <form>     <input type="text" class="query" value="Search streams"></input>     <input type="submit" class="ls_icons search"> </input>   </form> </div>');return b.join("")};
Template.Cache["/src/app/share/networks/share_networks.template"]=function(a){var b=a.data,c=a.params,d=a.attach;a=a.handle;var e=[];e.push("");(c=c.css_class)||(c="");var f=new Share.Networks;e.push("  ",d("controller",f),"  ",d("data",b),'  <div class="share-networks clearfix ',c,'">    ',a("click",delegate(f,"onFacebookClick")),'    <a class="col_lt facebook icon" title="Share this image on Facebook" href="',b.get("facebook_url"),'" target="_blank"><span>facebook</span></a>    ',a("click",delegate(f,
"onTwitterClick")),'    <a class="col_lt twitter icon" title="Share this image on Twitter" href="',b.get("twitter_url"),'" target="_blank"><span>twitter</span></a>    <div class="col_lt gplus">      <div class="button"/>    </div>  </div>');return e.join("")};Template.Cache["/src/app/manage/email/basic_email_item.template"]=function(a){var b=[];b.push("<li>",a.data.email,"</li>");return b.join("")};
Template.Cache["/src/app/manage/email/editable_email_item.template"]=function(a){var b=a.data,c=a.attach;a=a.text;var d=[];d.push("");var e=new Manage.EditableEmailItem;d.push("  ",c("controller",e),"  ",c("data",b),'  <li class="email_item col_lt round_blue clearfix">  <a title="Click to edit" class="email_address col_lt">',a(b,"email"),'</a>  <input type="text" class="input col_lt" style="display:none"/>  <a title="Remove this email address" class="col_rt remove_email icons"></a>  </li>');return d.join("")};
Template.Cache["/src/app/manage/email/email_list.template"]=function(a){var b=a.data,c=a.params;a=a.attach;var d=[];d.push("");c=c.editable?"/src/app/manage/email/editable_email_item.template":"/src/app/manage/email/basic_email_item.template";d.push("  ",a("controller",new Manage.EmailList),"  ",a("data",b),'  <div class="email_list">  ',a("mapper",new Template.Mapper(c,b)),'  <ul class="clearfix"/>  </div>');return d.join("")};
Template.Cache["/src/app/manage/invite/invite.template"]=function(a){var b=a.data,c=a.attach,d=a.text;a=a.invoke;var e=[];e.push("");var f=new Manage.Invite;e.push("  ",c("controller",f),"  ",c("data",b),'  <div class="invite section">    <form>      <input type="text" value="" class="email_entry inline"/>      <input type="submit" value="Send Invites" class="submit inline btn_tall btn_blue btn_standard"/>    </form>    ',a("/src/app/manage/email/email_list.template",f.emails,{editable:true}),'    <div class="invites small_text">    ',
d(f,"invites_text"),"    </div>  </div>");return e.join("")};
Template.Cache["/src/app/manage/members/members.template"]=function(a){var b=a.data,c=a.attach,d=a.text;a=a.invoke;var e=[];e.push("");var f=server_vars.share_url+"/stream/"+b.get("eventid"),g=new Manage.Members;e.push("  ",c("controller",g),"  ",c("data",b),'  <div class="manage_members clearfix">    <div class="col2">      <div class="public">        <div class="share section clearfix">          <h2 class="col_lt">Share:&nbsp;</h2>          ',a("/src/app/share/networks/share_networks.template",
b,{css_class:"col_lt"}),'        </div>        <h2>Share this link</h2>        <input type="text" class="stream_url accent_color" value="',f,'"></input>        <h2>Invite people to this stream</h2>      </div>      <div class="private">        <h4>Invite people to this stream</h4>      </div>      ',a("/src/app/manage/invite/invite.template",b),'      </div>      <div class="col1">      <div class="owner section clearfix">        <h2>Visibility</h2>        <hr />        <input type="radio" name="visibility" value="public">&nbsp;<strong>Public</strong>&nbsp;<span class="small secondary_text">everyone can view/upload</span></input>        <br/>        <input type="radio" name="visibility" value="private">&nbsp;<strong>Private</strong>&nbsp;<span class="small secondary_text">only specific members can view/upload</span></input>      </div>      <div class="members section private">        <hr />        <h2>',
d(g,"members_text"),'</h2>        <div class="scroll-container">          <div class="scroll-content">            ',a("/src/app/user/user_list.template",g.members,{thumb_size:20}),"          </div>        </div>      </div>    </div>    </div>       ");return e.join("")};
Template.Cache["/src/app/login/login.template"]=function(a){var b=a.data;a=a.attach;var c=[];c.push("");var d=new Login.Controller(b),e=new Template.Switcher(new DataPin(d,"state"),d.state_to_template,Login.Transitions);c.push("  ",a("controller",d),"  ",a("template_switcher",e),"  ",a("data",b),'  <div class="login-container"/>  ');return c.join("")};
Template.Cache["/src/app/login/state/initial/initial_state.template"]=function(a){var b=a.data,c=a.attach;a=a.invoke;var d=[];d.push("");b=b.initial_title?b.initial_title:"Get started.  It&rsquo;s fun and free!";var e=new Login.State.Initial;d.push("  ",c("controller",e),'  <div class="initial mk_relative user_box">    <div class="inner default">      <h4>',b,'</h4>      <span class="menu signup btn_tall btn_blue">Sign up</span>        <div class="mk_relative">        <div class="or_dot ls_assets">or</div>        <hr class="dotted ls_assets" />      </div>      ',
a("/src/app/buttons/fb_connect/fb_connect.template",{mode:"signup"}),'      <div class="facepile">        <iframe src="//www.facebook.com/plugins/facepile.php?size=small&amp;max_rows=1&amp;width=200&amp;colorscheme=light&amp;api_key=396469831227" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:200px;" allowTransparency="true"></iframe>      </div>    </div>  </div>');return d.join("")};
Template.Cache["/src/app/login/state/forgotpassword/forgotpassword.template"]=function(a){var b=a.data;a=a.attach;var c=[];c.push("");var d=new Login.State.ForgotPassword;c.push(" ",a("controller",d)," ",a("data",b),' <div class="user_box mk_relative">   <div class="inner">     <h2>Forgot password</h2>     <p class="twenty_bottom">LiveShare will send instructions for resetting your password to the email address associated with your account.</p>       <input type="text" name="lsEmailPhone" value="Email" class="text_input span_parent idle" />              <div class="clearfix">         <a name="lsSubmit" class="submit_input btn_tall btn_blue btn_flow" href="#">Send Instructions</a>       </div>       <a class="ls_icons back-to-login">Back</a>   </div> </div> ');
return c.join("")};Template.Cache["/src/app/login/state/forgotpassword/acknowledgement.template"]=function(a){a=a.attach;var b=[];b.push("");var c=new Login.State.Controller;b.push(" ",a("controller",c),'  <div class="user_box mk_relative">   <div class="inner">     <h2>Thank You</h2>     <p class="narrow">Instructions have been sent to the email address you just provided.</p>   </div> </div> ');return b.join("")};
Template.Cache["/src/app/login/state/login/login_state.template"]=function(a){var b=a.data,c=a.attach;a=a.invoke;var d=[];d.push("");var e=b.login_title?"<h2>"+b.login_title+"</h2>":"",f=new Login.State.Login;d.push(" ",c("controller",f)," ",c("data",b),'  <div class="user_box mk_relative">   <div class="inner default">     ',e,"     ",a("/src/app/buttons/fb_connect/fb_connect.template",{mode:"login"}),'     <div class="mk_relative">       <div class="or_dot ls_assets">or</div>       <hr class="dotted ls_assets" />     </div>     <form>       <p class="ten_bottom"><strong>Fill in account info:</strong></p>       <input type="text" name="lsEmailPhone" value="Email" class="text_input span_parent idle" />       <div class="login_error"></div>       <input type="text" name="lsFauxPassword" value="Password" class="text_input span_parent idle block" />       <input type="password" name="lsPassword" value="" class="text_input span_parent idle hidden" />       <p class="mk_relative forgot"><a name="request_pword" href="">Forgot?</a></p>       <div class="twenty_top" style="height:65px">         <input name=\'lsSubmit\' type="submit" value="Login" class="submit_input btn_tall btn_blue btn_standard"/>       </div>       <p><strong>New to LiveShare?</strong>&nbsp;&nbsp;<a name="request_signup" href=""><strong>Sign up</strong></a></p>     </form>        </div> </div> ');
return d.join("")};
Template.Cache["/src/app/login/state/signup/signup_state.template"]=function(a){var b=a.data,c=a.attach;a=a.invoke;var d=[];d.push("");var e=b.signup_title?b.signup_title:"Sign up to create your free account.",f=new Login.State.Signup;d.push(" ",c("controller",f)," ",c("data",b),'  <div class="signup user_box mk_relative">   <div class="inner default">     <h2>',e,'</h2>       <form>         <div class="clearfix nameField">           <input type="text" name="lsFirstName" value="First Name" class="text_input user_name col_lt idle" />           <input type="text" name="lsLastName" value="Last Name" class="text_input user_name col_lt idle" />         </div>         <input type="text" name="lsEmail" value="Email" class="text_input span_parent idle" />         <input type="text" name="lsFauxPassword" value="Password" class="text_input span_parent idle block" />         <input type="password" name="lsPassword" value="" class="text_input span_parent idle hidden" />         ');server_vars.captcha&&
d.push('           <div class="captcha"/>         ');d.push('         <p name="tos" class="small_text">By clicking "Sign up" below, you are agreeing to our <a href="legal/terms" target="_blank">Terms of Service</a>           and <a href="legal/privacy" target="_blank">Privacy Policy</a>. </p>         <div style="height:65px">           <input name=\'lsSubmit\' type="submit" value="Sign up" class="submit_input btn_tall btn_blue btn_standard"/>         </div>       </form>       <p name="liveshare_login"><strong>Already a LiveShare user?</strong>&nbsp;&nbsp; <a name="request_login" href="#"><strong>Login</strong></a></p>       <div class="mk_relative">         <div class="or_dot ls_assets">or</div>         <hr class="dotted ls_assets" />       </div>       ',
a("/src/app/buttons/fb_connect/fb_connect.template",{mode:"signup"}),'     <div class="facepile">       <iframe src="//www.facebook.com/plugins/facepile.php?size=small&amp;max_rows=1&amp;width=200&amp;colorscheme=light&amp;api_key=396469831227" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:200px;" allowTransparency="true"></iframe>     </div>   </div> </div> ');return d.join("")};
Template.Cache["/src/app/menu/header_menu.template"]=function(a){a=a.invoke;var b=[];b.push("");var c=Menu.Items.header;b.push('  <ul class="menu-top col_rt">    ');for(var d=0;d<c.length;d++)b.push("      ",a(new Template.Instance(c[d])),"    ");b.push("  </ul>");return b.join("")};
Template.Cache["/src/app/menu/actions/actions.template"]=function(){var a=[];a.push('<li><a onClick="_gaq.push([\'_trackEvent\',\'TopRightMenu\', \'HowItWorks\']);" href="/how-it-works">How it works</a><hr class="dotted ls_assets" /></li>  <li><a class="liveshare-help" onClick="_gaq.push([\'_trackEvent\',\'TopRightMenu\', \'Help\']);" href="/help">Help</a><hr class="dotted ls_assets" /></li>  <li><a onClick="_gaq.push([\'_trackEvent\',\'TopRightMenu\', \'Contact\']);" href="/about/contact">Contact</a><hr class="dotted ls_assets" /></li>  <li><a onClick="_gaq.push([\'_trackEvent\',\'TopRightMenu\', \'Legal\']);" href="/legal">Terms &amp; Privacy</a><hr class="dotted ls_assets" /></li>  <li class="download_liveshare"><a class="ls_assets mobile_download">Go Mobile</a></li>  ');return a.join("")};
Template.Cache["/src/app/menu/actions/actions_menu.template"]=function(a){var b=a.attach;a=a.invoke;var c=[];c.push("",b("controller",new Menu.Actions),'  <li id="ls_user_actions" class="actions menu-item menu-tab col_lt">    <span id="more-options" class="menu link_color">     <span class="ls_icons tiny_arrow">More</span>    </span>    <div class="submenu">      ',b("controller",new Controls.MessageBubble),'      <div class="message_bubble white_bubble box_shadow">        <div class="inner">          <ul id="user-options">            ',
a("/src/app/menu/actions/actions.template"),'          </ul>        </div>        <div class="top_arrow ls_assets"></div>      </div>    </div>   </li>');return c.join("")};
Template.Cache["/src/app/menu/login/login_menu.template"]=function(a){var b=a.attach;a=a.invoke;var c=[];c.push("",b("controller",new Menu.Login),'  <li class="login col_lt menu-item menu-tab">    <span class="menu">Login</span>    <div class="submenu">      ',b("controller",new Controls.MessageBubble),'      <div class="message_bubble white_bubble box_shadow">        <div class="inner">          ',a("/src/app/login/login.template"),'        </div>        <div class="top_arrow ls_assets"></div>      </div>    </div>  </li>');
return c.join("")};
Template.Cache["/src/app/menu/user/user_menu.template"]=function(a){var b=a.attach,c=a.text;a=a.invoke;var d=[];d.push(" ");var e=new Menu.User;d.push("   ",b("controller",e),'   <li class="user menu-item menu-tab col_lt">    <span class="menu link_color">      <span class="username ls_icons tiny_arrow">',c(e,"username"),'</span>    </span>    <div class="submenu">      ',b("controller",new Controls.MessageBubble),'      <div class="message_bubble white_bubble box_shadow">        <div class="inner">          <ul>            <li><a class="profile" href="',server_vars.base_url+
"/#&tab=profile",'">My Account</a><hr class="dotted ls_assets"></li>            <li><a class="logout" href="/login/logout">Log out</a></li>          </ul>          </div>          <hr />          <div class="inner">          <ul>            ',a("/src/app/menu/actions/actions.template"),'          </ul>        </div>        <div class="top_arrow ls_assets"></div>      </div>    </div>   </li>');return d.join("")};
Template.Cache["/src/app/menu/mobile/mobile_menu.template"]=function(a){var b=a.attach;a=a.invoke;var c=[];c.push("",b("controller",new Menu.Mobile),'  <li id="mobile_client" class="menu-item mobile col_lt">    <a class="menu btn_short btn_gray active go_mobile" href="/">      <span class="ls_assets go_mobile">Go mobile</span>    </a>    <div id="mobile_sections" class="submenu">      ',b("controller",new Controls.MessageBubble),'      <div class="message_bubble white_bubble box_shadow">              ',
a("/src/app/menu/mobile/mobile_devices.template"),'                <div class="top_arrow ls_assets"></div>      </div>    </div>  </li>');return c.join("")};
Template.Cache["/src/app/menu/mobile/mobile_devices.template"]=function(){var a=[];a.push('<div class="inner">   <h4 class="twenty_bottom">To download the free app, just visit <strong>liveshare.com</strong> on your phone.</h4>   <div class="clearfix">     <a href="http://itunes.apple.com/us/app/liveshare-by-cooliris/id383848397?mt=8&ls=1" target="_blank" class="col_lt device_icons iphone">Liveshare on iPhone</a>     <a href="http://market.android.com/details?id=com.cooliris.app.liveshare" target="_blank" class="col_lt device_icons android">Liveshare on Android</a>   </div> </div> ');return a.join("")};
Template.Cache["/src/app/menu/members/members_menu.template"]=function(a){var b=a.data,c=a.params,d=a.attach,e=a.text;a=a.invoke;var f=[];f.push("");(c=c.css_class)||(c="");var g=new Menu.Members;f.push("  ",d("controller",g),"  ",d("data",b),'  <div class="menu-item members clearfix ',c,'">  ');b.get("is_private")&&f.push('    <div class="col_lt">      <span class="ls_icons user-silhouette">',e(g,"members_text"),"</span>    </div>  ");f.push('    <a class="menu members btn_short btn_gray active col_lt">      <span class="',
b.get("is_private")?"":"ls_icons public_stream",'"> ',b.get("is_private")?"Invite":"Share",'</span>    </a>    <div class="submenu">      ',d("controller",new Controls.MessageBubble),'      <div class="message_bubble white_bubble box_shadow">          <div class="notice-area">            ',a("/src/app/notices/notice.template",new DataPin(Notices,"create_stream_current_notice"),{css_class:"notice-area-center"}),'          </div>        <div class="inner default">          ',a("/src/app/manage/members/members.template",
b),'        </div>        <div class="top_arrow ls_assets"></div>      </div>    </div>  </div>');return f.join("")};Template.Cache["/src/app/notices/notice.template"]=function(a){var b=a.data,c=a.params;a=a.attach;var d=[];d.push("");(c=c.css_class)||(c="");d.push(" ",a("controller",new Notice.Controller)," ",a("data",b),' <div class="notice wrapper ',c,'">   <div class="container"/>   <a class="ls_icons x-mark close-btn"/> </div>');return d.join("")};
Template.Cache["/src/app/notices/download_app_notice.template"]=function(){var a=[];a.push('<div class="center_notice_wrapper1">   <div class="center_notice_wrapper2">     <div class="download_app">       <span class="download_app_text1">         &nbsp;&nbsp;&nbsp;         Share photos live with our mobile app.        </span>                     <a href="#" class="download_app_link">         <span class="download_app_text2">&nbsp;Free Download</span>         <span>&nbsp;</span>         <span class="download_app_images"><img src="/images/icon_devices.png"/></span>       </a>       <a href="#" class="download_app_close">         <span><img src="/images/close_icon2.png"/></span>       </a>       <span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>     </div>   </div> </div> ');
return a.join("")};
Template.Cache["/src/app/notices/zoom_error_notice.template"]=function(){var a=[];a.push('<div class="center_notice_wrapper1">   <div class="center_notice_wrapper2">     <div class="zoom_error">       <span class="zoom_error_text1">         &nbsp;&nbsp;&nbsp;         Your browser\'s current zoom setting is not fully supported. Please reset to default zoom.        </span>       <a href="#" class="zoom_error_close">         <span><img src="/images/close_icon2.png"/></span>       </a>     </div>   </div> </div>    ');return a.join("")};
Template.Cache["/src/app/notices/signup_notice.template"]=function(a){var b=a.attach;a=a.invoke;var c=[];c.push('<div class="signup_notice clearfix">    ',b("controller",new Menu.SignupNotice),'    <div class="signup menu-item col_lt">      <span class="menu btn_short btn_blue">Sign up</span>      <div class="submenu">        ',b("controller",new Controls.MessageBubble),'        <div class="message_bubble white_bubble box_shadow">          <div class="inner">            ',a("/src/app/login/login.template",
{state:"signup",direction:"left"}),'          </div>          <div class="top_arrow ls_assets"></div>        </div>      </div>    </div>    <span>Sign up for LiveShare to like, comment, and add your photos to this stream.</span>  </div>');return c.join("")};
Template.Cache["/src/app/notices/create_stream_notice.template"]=function(a){var b=a.data;a=[];a.push("");var c;if(b.get("is_private")){b="private";c="Email it to"}else{b="public";c="Share it with"}a.push('  <div class="create_stream_notice">  <h3>Congratulations!</h3>  <span>You have just created a ',b," photo stream.  ",c," your friends so they can like, comment and add photos of their own. Have fun!</span>  </div>");return a.join("")};
Template.Cache["/src/app/local/local_thumb.template"]=function(a){var b=a.data,c=a.attach;a=a.invoke;var d=[];d.push("");d.push("  ",c("layout",new Item.Layout),"  ",c("controller",new Item.Controller),"  ",c("data",b),'  <div class="item item-',b.mediaid,' c3d">    <div class="entry ',b.item_type,'">    ');b.item_type=="photo"&&Item.USE_SHADOW_TEMPLATE?d.push("      ",a("/src/app/item/shadow/shadow.template",{content:new Template.Instance("/src/app/thumb/thumb.template",{url:b.get("thumb_url"),css_class:"thumb"}),
css_class:"content"}),"    "):d.push("        ",a(new Template.Instance("/src/app/thumb/thumb.template",{url:b.get("thumb_url"),css_class:"thumb content"})),"    ");d.push("    ");b.item_type=="photo"&&d.push("    ",a("/src/app/item/badge/item_badge.template",b),"    ");d.push("    </div>  </div>");return d.join("")};
Template.Cache["/src/app/messages/error.template"]=function(){var a=[];a.push('<div class="message site_error">   <div class="inner shadow_box">   <h2>An error has occurred&nbsp;&nbsp;&nbsp;&nbsp;\u0ca0_\u0ca0 </h2>   <p>We may be performing site maintenance.<br/>   Please try again in a moment.</p>    </div> </div>');return a.join("")};
Template.Cache["/src/app/messages/login.template"]=function(a){a=a.attach;var b=[];b.push("",a("controller",new Messages.Login),' <div class="message login">   <div class="inner box_shadow">     <h2>Login to get the full experience</h2>     <ul>       <li>Create groups on the fly for real-time photo sharing.</li>       <li>Upload your own photos to any photo stream.</li>       <li>See and follow your favorite photo streams anytime.</li>     </ul>     <a class="login btn_tall btn_blue" href="#">Login</a>   </div> </div>');return b.join("")};
Template.Cache["/src/app/messages/add_streams.template"]=function(){var a=[];a.push('<div class="message add_streams">   <div class="inner shadow_box">     <h2>Let\'s get started...</h2>     <p>1. <a href="',server_vars.base_url,'/#&tab=create">Create</a> a photo stream now.<br/>       2. Invite friends to add photos to your stream.<br/>       3. See everyone\'s photos all in one place.<br /><br />       <a href="/how-it-works">Learn more</a> about how to use LiveShare       </p>   </div> </div>');
return a.join("")};
Template.Cache["/src/app/messages/empty_stream.template"]=function(a){var b=a.data,c=a.attach;a=a.invoke;var d=[];d.push("");var e=new Stream.Empty;b.css_class=e.showDndTemplate?"accent_color":"btn_tall btn_blue btn_standard ie_plupload";b.label="Select Photos";d.push(" ",c("controller",e)," ",c("data",b),' <div class="message empty_stream">   <div class="inner">     ');if(e.showDndTemplate){d.push('       <div class="headline">         <h3>Drag & drop photos here to start your stream now.</h3>       </div>       <div class="local_files_present none text_center">         <div class="subheadline">Your photos will be uploaded when you click the Create Stream button</div>         <p>Drag and drop more photos</p><p>or</p>       </div>       <div class="local_files_absent">         <div class="mk_relative twentyfive_top" >           <div class="or_dot ls_assets">or</div>           <hr class="dotted ls_assets" />         </div>       </div>              <div class="plupload_container">          <div style="margin-right:6px;" class="col_lt">',a("/src/app/buttons/plupload_button/plupload.template",
b)," </div>          <span>from your computer.</span>       </div>              ");App.isHomePage()&&d.push('       <div class="home_actions">         <a class="video" href="#">Watch Video</a> | <a class="ls_icons arrow" href="',server_vars.base_url,'/how-it-works">Learn More</a>       </div>       ');d.push("     ")}else d.push('       <h2 class="text_center">Add photos to begin this stream.</h2>          <div class="local_files_present none text_center">           <div class="subheadline_ie">Your photos will be uploaded when you click the Create Stream button</div>         </div>         <div class="ie_plupload_container">           ',
a("/src/app/buttons/plupload_button/plupload.template",b),"          </div>     ");d.push("   </div> </div> ");return d.join("")};
Template.Cache["/src/app/messages/no_access.template"]=function(){var a=[];a.push('<div class="message no_access">    <div class="inner box_shadow">      <div class="clearfix">        <div class="half col_lt">          <h1>Hmmm... you don\'t have shared access to this group stream</h1>          <p>Only those explicitly invited to this stream can join it.</p>        </div>        <div class="fortyfive col_rt">          <div class="inner">            <h3>Why not create your own group stream instead?</h3>            <ul>              <li>Upload live from your phone.</li>              <li>Let friends add their photos.</li>              <li>Upload from your phone in realtime.</li>            </ul>            <a href="',server_vars.base_url+
"/#&tab=create",'" class="lg_create_stream">create stream</a>            <a class="ls_icons arrow" href="/how-it-works">Learn More</a>        </div>        </div>      </div>    </div>  </div>');return a.join("")};
Template.Cache["/src/app/messages/no_results.template"]=function(){var a=[];a.push('<div class="no_results message">    <div class="inner shadow_box">      <h2>There are no results for your search.</h2>      <div>Try another term or <a href="',server_vars.base_url+"/#&tab=create",'">start your own stream</a></div>    </div>  </div>');return a.join("")};
Template.Cache["/src/app/notifications/notifications.template"]=function(a){a=a.attach;var b=[];b.push("",a("mapper",new Template.Mapper("/src/app/notifications/notification.template",Notifications.list)),'  <div class="notifications box_shadow">  </div>');return b.join("")};Template.Cache["/src/app/notifications/notification.template"]=function(a){var b=[];b.push("<div>",a.data.toHtml(),"</div>");return b.join("")};
Template.Cache["/src/app/item/item.template"]=function(a){var b=a.data,c=a.attach;a=a.invoke;var d=[];d.push("");var e=b.get("mediaid");d.push(" ");server_vars.debug&&server_vars.debug.item&&d.push(" ",c("debug",new Item.Debug)," ");d.push(" ",c("layout",new Item.Layout)," ",c("controller",new Item.Controller)," ",c("input",new Item.Input)," ",c("data",b),' <div class="item item-',e,' c3d">   <div class="entry ',b.item_type,'">   ');b.item_type=="photo"&&Item.USE_SHADOW_TEMPLATE?d.push("     ",a("/src/app/item/shadow/shadow.template",
{content:new Template.Instance("/src/app/item/item_content.template",b),css_class:"container"}),"   "):d.push("       ",a(new Template.Instance("/src/app/item/item_content.template",b)),"   ");d.push("   ");b.item_type=="photo"&&d.push("   ",a("/src/app/item/badge/item_badge.template",b),"   ");d.push("   </div> </div>");return d.join("")};
Template.Cache["/src/app/item/item_content.template"]=function(a){var b=a.data;a=a.invoke;var c=[];c.push("");c.push('  <div class="content">    ',a("/src/app/thumb/thumb.template",{url:b.get("thumb_url"),css_class:"thumb"}),"  </div>");return c.join("")};
Template.Cache["/src/app/item/badge/item_badge.template"]=function(a){var b=a.data,c=a.attach;a=a.text;var d=[];d.push("",c("controller",new Item.Badge),"  ",c("data",b),'  <div class="badge">    <div class="inner">      <div class="likes"><span class="ls_icons like">',a(b,"ranking"),'</span></div>      <div class="space"><span>&nbsp;</span></div>      <div class="comments"><span class="ls_icons comments">',a(b,"commentcount"),"</span></div>    </div>  </div>");return d.join("")};
Template.Cache["/src/app/item/comments/user_comment.template"]=function(a){var b=a.data;a=a.attach;var c=[];c.push("");var d=b.get("user"),e=new Item.UserComment;c.push("  ",a("controller",e),"  ",a("data",b),'  <div class="user_comment selectable">    <div class="inner clearfix">      <img class="user_thumb col_lt" src="',d.imageurl,'">      <div class="comment_block col_lt">        <span class="user_name dark">',Liveshare.fullUserName(d),':&nbsp;</span>        <span class="comment_text">',b.get("text"),
'</span><br/>        <div class="bottom_row clearfix">          <span class="timestamp">',e.formatTimeStamp(b.get("creationdatetime")),'</span>          <div class="delete x-mark ls_icons col_rt link" title="Delete this comment">Delete</div>          <div class="flag ls_icons col_rt link" title="Flag this comment as inappropriate/offensive">Flag</div>        </div>      </div>    </div>    <hr class="dotted ls_assets">  </div>');return c.join("")};
Template.Cache["/src/app/item/comments/comment_input.template"]=function(a){var b=a.data;a=a.attach;var c=[];c.push("",a("controller",new Item.CommentInput),"  ",a("data",b),'  <form>    <input type="text" name="comment_entry" id="comment_entry" class="comment_entry">  </form>');return c.join("")};
Template.Cache["/src/app/item/detail/item_detail.template"]=function(a){var b=a.data,c=a.attach,d=a.text;a=a.invoke;var e=[];e.push("");b.initComments();var f=b.parentStream(),g=new Item.Detail;e.push("  ",c("controller",g),"  ",c("data",b),'  <div class="col1">    ',a("/src/app/item/owner_info/owner_info.template",b),'  </div>  <div class="col2">    <div class="toolbar clearfix">      ',a("/src/app/item/actions/item_actions.template",b),"      ");f.get("is_private")||e.push("      ",c("controller",
new Menu.Controller),'      <div class="menu-item share col_lt">        <a class="share menu btn_short btn_gray btn_standard col_lt"><span>Share</span></a>            <div class="submenu">          <div class="message_bubble white_bubble box_shadow">            <div class="inner clearfix">              <h4 class="col_lt">Click to share:</h4>',a("/src/app/share/networks/share_networks.template",b),'            </div>            <div class="top_arrow ls_assets"/>          </div>        </div>      </div>      ');
e.push('            <div class="item-counts col_rt">        <span class="like-count">          <span class="ls_icons like">',d(g,"likes_count"),'</span>        </span>        &nbsp;        <span class="comment-count">          <span class="ls_icons comments">',d(g,"comments_count"),'</span>        </span>      </div>    </div>      <div class="likes">      <div class="summary selectable"></div>      <div class="detail selectable">        <div class="ranking_list bold dark">',d(g,"ranking_users"),
'</div>        <div class="accent_color link collapse">Show fewer</div>      </div>    </div>    <div class="comments_area">      <div class="comment_form">        ',a("/src/app/item/comments/comment_input.template",b),'      </div>      <div class="scroll-container">        <div class="scroll-content">          ',c("mapper",new Template.Mapper("/src/app/item/comments/user_comment.template",b.comments,{delay:0})),'          <div class="comment_list"></div>        </div>      </div>    </div>  </div>  <a class="ls_icons close-btn"></a>');
return e.join("")};
Template.Cache["/src/app/item/owner_info/owner_info.template"]=function(a){var b=a.data,c=a.attach;a=a.text;var d=[];d.push("");var e=new Item.OwnerInfo;d.push("  ",c("controller",e),"  ",c("data",b),'  <div class="owner_info">    <img class="owner_thumb" src="',b.get("user").imageurl,'">    <span class="owner_text">      <span class="owner_name">',a(e,"created_by"),"</span><span>&nbsp;&nbsp;|&nbsp;&nbsp;</span>      <span>",a(e,"formatted_date"),"</span>&nbsp;</span>    </span>  </div>");return d.join("")};
Template.Cache["/src/app/item/actions/item_actions.template"]=function(a){var b=a.data;a=a.attach;var c=[];c.push("");var d=new Item.Actions;c.push("  ",a("controller",d),"  ",a("data",b),'  <div class="item_actions btn_bar col_lt clearfix">    <a class="like btn_short btn_gray active col_lt"><span class="ls_icons like"/></a>    <a class="download btn_short btn_gray active col_lt" href="',b.get("download_url"),'" title="Download this image"><span class="ls_icons download"/></a>    <a class="flag btn_short btn_gray active col_lt"><span class="ls_icons flag"/></a>    <a class="delete btn_short btn_gray active col_lt" title="Delete this image"><span class="ls_icons delete"/></a>  </div>');
return c.join("")};Template.Cache["/src/app/item/sidebar/item_sidebar.template"]=function(a){var b=a.invoke,c=[];c.push('<div class="item_sidebar no-layout">    ',b("/src/app/item/actions/item_actions.template",a.data),"  </div>");return c.join("")};
Template.Cache["/src/app/item/overlay/item_overlay.template"]=function(a){var b=a.data,c=a.attach,d=a.text;a=a.invoke;var e=[];e.push("");var f=new Item.Overlay;e.push(" ",c("controller",f)," ",c("data",b),' <div class="item_info no-layout">   <div class="overlay">     <div class="background">     </div>     <div class="content">       ',a("/src/app/item/owner_info/owner_info.template",b),'       <div class="social_info">         <div class="likers">           <span class="icon">             <img src="/images/Thumb_up.png" height="12" width="12" style="vertical-align: middle; margin-right: 4px"/>             <span>',
d(b,"ranking"),'</span>           </span>           <span class="content"></span>         </div>         <div class="comments">           <span class="icon">             <img src="/images/Comment_icon_white.png" height="13" width="11" style="vertical-align: middle; margin-right: 4px"/>             <span>',d(b,"commentcount"),'</span>           </span>           <span class="content"></span>         </div>       </div>       <div class="comment_form">         ',a("/src/app/item/comments/comment_input.template",
b),"       </div>     </div>   </div> </div>");return e.join("")};
Template.Cache["/src/app/item/shadow/shadow.template"]=function(a){var b=a.data,c=a.attach;a=a.invoke;var d=[];d.push("");d.push("  ",c("controller",new Shadow.Controller),'  <div class="outerpair1">    <div class="outerpair2">      <div class="shadowbox">        <div class="shadowr"/>        <div class="shadowb"/>        <div class="shadowc"/>        <div class="innerbox',b.css_class?" "+b.css_class:"",'">          ',a(b.content),"        </div>      </div>    </div>  </div>");return d.join("")};
Template.Cache["/src/app/stream/stream.template"]=function(a){var b=a.data,c=a.params,d=a.attach;a=a.text;var e=[];e.push("");var f=b.get("icon_url"),g=b.get("info"),k=new Stream.Controller,n=delegate(k,k.chooseTemplate);(c=c.layout_type)||(c="stack");e.push(" ");server_vars.debug&&server_vars.debug.stream&&e.push(" ",d("debug",new Stream.Debug)," ");e.push(" ",d("messages",new Stream.Messages)," ",d("layout_switcher",new Layout.Switcher(c,Stream.Layouts,Stream.Transitions))," ",d("controller",k),
" ",d("data",b),' <div class="stream c3d">   <div class="viewport c3d">     <div class="origin c3d">       ',d("mapper",new Template.Mapper(n,b.items,{delay:1})),'       <div class="items c3d">       </div>     </div>   </div>   <div class="overlay">     <div class="title">       <div class="name">           ',d(new Thumb.Controller),'           <img class="thumb" width="',Stream.Config.Stack.ICON_SIZE,'" height="',Stream.Config.Stack.ICON_SIZE,'" src="',f,'">           <span>',a(b,"name",true),'</span>       </div>       <div class="info">         ',
g,'       </div>     </div>   </div>   <div class="buttons hidden"></div> </div>');return e.join("")};Template.Cache["/src/app/stream/header/stream_header.template"]=function(a){var b=a.data;a=a.attach;var c=[];c.push("");var d=new Stream.Header;c.push("  ",a("controller",d),"  ",a("data",b),"  ",a("template_switcher",new Template.Switcher(new DataPin(d,"state"),delegate(d,d.chooseTemplate))),'  <div class="stream-header clearfix">  </div>');return c.join("")};
Template.Cache["/src/app/stream/header/stream_actions.template"]=function(a){var b=a.data,c=a.attach,d=a.text;a=a.invoke;var e=[];e.push("");var f=new Stream.Actions;e.push(" ",c("controller",f)," ",c("data",b),' <div class="stream-actions">   <div class="inner mk_relative clearfix">     <div class="name ellipsis col_lt">',d(b,"name",true),'</div>     <input name="edit_name" type="text" style="display:none" class="edit_name col_lt"/>     ',a("/src/app/menu/members/members_menu.template",b,{css_class:"col_lt"}),
'     <div class="loading loading_graphic_small col_lt"/>     ',a("/src/app/buttons/plupload_button/plupload.template",{label:"Add Photos",css_class:"upload_photos col_lt btn_short btn_gray active"}),'     <a class="follow col_lt small_text">',d(f,"following_text"),"</a>   </div> </div> ");return e.join("")};
Template.Cache["/src/app/stream/header/stack_title.template"]=function(a){var b=a.data;a=a.text;var c=[];c.push("");c.push(' <span class="stack-title">   <span class="name ls_icons">',a(b,"name"),"</span> </span>");return c.join("")};
Template.Cache["/src/app/stream/header/stream_create.template"]=function(a){var b=a.data,c=a.attach;a=a.invoke;var d=[];d.push("");var e=new Stream.Create;d.push("  ",c("controller",e),"  ",c("data",b),'  <div class="stream-create">    <div class="inner mk_relative clearfix">      <input name="edit_name" type="text" class="edit_name col_lt"/>      ',c("button_bar",new ButtonBar),'      <div class="visibility btn_bar col_lt">        <div class="col_lt">          <span class="btn public btn_short btn_gray btn_bar_left">            <span class="ls_icons public_stream">Public</span>          </span>        </div>        <div class="col_lt">          <span class="btn private btn_short btn_gray btn_bar_right">            <span class="ls_icons private_stream">Private</span>          </span>        </div>      </div>      ',
c("controller",new Menu.Controller({no_click:true,show_overlay:true})),'      <div class="menu-item create col_lt">        <a class="create menu btn_short active btn_blue">          <span>Create Stream</span>        </a>        <div class="submenu">          ',c("controller",new Controls.MessageBubble),'          <div class="message_bubble white_bubble box_shadow">            <div class="inner default">              ',a("/src/app/login/login.template",{signup_title:"Almost done! Sign up to finish creating your new stream."}),
'            </div>            <div class="top_arrow ls_assets"/>          </div>        </div>      </div>    </div>  </div>  ');return d.join("")};Template.Cache["/src/app/stream/notices/new_items/new_items.template"]=function(){var a=[];a.push('<div class="new_items_notice">    <a>There are new photos in this stream. Click here to see them now.</a>  </div>  ');return a.join("")};
(function(){App.navContext=function(b,c){var d=Nav.getContext();if(b.tab==undefined)b.tab=d.get("tab");var e=new NavContext(b);c||e.setParent(d);return e};var a=Class.create("Settings",PropertyList,{load:function(){var b=Get_Cookie("liveshare_settings");if(b){b=eval("("+b+")");for(var c in b)switch(c){case "anim_time":var d=parseInt(b[c]);Stream.Config.TRANSITION_ANIM_TIME=d;Stream.Config.Stack.ANIM_TIME=d;break;case "log_console":LogSettings.console=b[c];break;case "log_level":LogSettings.level=
b[c];break;case "multipart_upload":Upload.Config.MULTIPART=b[c]}}},save:function(b){b=Object.toJSON(b);Set_Cookie("liveshare_settings",b)}});Frontend=new (Class.create("Frontend",PropertyList,{initialize:function(){this.model=new PropertyList({top_stream:undefined,selected_item:undefined,selected_item_elem:undefined,selected_stream:undefined,selected_stream_elem:undefined,redirect_on_login:true});this.settings=new a;this.settings.load();Wrapper.Pages={main:{template:["/src/frontend/pages/main/main.template",
this.model],layout:{type:"app"}},profile:{template:"/src/frontend/pages/profile/profile_page.template",layout:{type:"content"}},settings:{template:["/src/frontend/pages/settings/settings_page.template",this.settings],layout:{type:"content"}}};Header.Content={left:["/src/frontend/pages/home/tagline.template",["/src/app/buttons/create_stream/create_stream.template",this.model]],center:["/src/app/stream/header/stream_header.template"],right:["/src/app/menu/mobile/mobile_menu.template","/src/app/search/box/search_box.template",
"/src/app/menu/header_menu.template"]};Menu.Items.header=["/src/app/menu/login/login_menu.template","/src/app/menu/user/user_menu.template","/src/app/menu/actions/actions_menu.template"]},clientInfo:function(b){(new App.Tasks.ClientInfo(this.model)).complete(b).run()},isStreamPage:function(){if(Nav.getContext().get("id"))return true;return false},isCreatePage:function(){if(Nav.getContext().get("tab")=="create")return true;return false},isProfilePage:function(){if(Nav.getContext().get("tab")=="profile")return true;
return false},isSettingsPage:function(){if(Nav.getContext().get("tab")=="settings")return true;return false},newStream:function(){var b=new Liveshare.Stream(undefined,"grid");b.provider.set("query",{type:"items",method:"local"});b.set("is_empty",true);b.set("uploadAllowed",true);b.set("name","Untitled Stream");b.set("is_private",false);b.set("owner",true);b.set("moderator",true);b.set("new",true);return b},findStreamElem:function(b){var c;b=$(".stream-"+b);if(b.length==1)c=b[0];return c},findMediaElem:function(b){var c;
b=$(".item-"+b);if(b.length==1)c=b[0];return c},main:function(){$("#footer").remove();$("#wrapper").children().remove();document.body.style.display="block";$.support.css3D=BrowserDetect.supportsCss3D();$.support.fileDrop=BrowserDetect.supportsFileDrop();$.support.fileRead=BrowserDetect.supportsFileRead();$.support.fileAPI=$.support.fileDrop&&$.support.fileRead;Wrapper.Pages.home=$.support.fileDrop?{template:["/src/frontend/pages/home/html5/home_page.template",this.model],layout:{type:"app",show_footer:true}}:
{template:"/src/frontend/pages/home/legacy/home_page.template",layout:{type:"content"}};if(!$.browser.msie)if(server_vars.css_3d&&$.support.css3D){Layout.enable3D=true;$("<link>",{rel:"stylesheet",type:"text/css",href:server_vars.static_root+"/css/browser/webkit-3d.css",ownerDocument:document}).appendTo("head")}server_vars.debug&&server_vars.debug.css&&$("<link>",{rel:"stylesheet",type:"text/css",href:server_vars.static_root+"/css/debug.css",ownerDocument:document}).appendTo("head");var b=[delegate(this,
this.clientInfo)];if(server_vars.preload_images&&server_vars.images)for(var c=0;c<server_vars.images.length;c++)b.push(new App.Tasks.LoadImage(server_vars.static_root+server_vars.images[c]));var d=this;(new Batch(b,"preload")).complete(function(){$("#wrapper").applyTemplate("/src/frontend/frontend.template",d.model);Nav.setInitialContext();server_vars.notifications&&Notifications.init()}).run()}}))})();
(function(){Frontend.Controller=Class.create("Frontend.Controller",Controller,{attach:function($super,b){$super(b);this.$window=$(window);this.model=this.$elem.getData();this.bindEvent(this.model,"prop_change",this.onModelChange);this.bindEvent(window,"loginSuccess",this.onLoginSuccess);this.bindEvent(Nav,"change",this.onNavChange);this.bindEvent(this.$elem,"nav_back",this.onBackClick);this.bindProp(Liveshare.MyUser,"authenticated",this.onAuthChange);this.bindEvent(this.$elem,"plupload_initialized",
this.onPluploadInitialized);this.bindEvent(this.$elem,"plupload_filesadded",this.onPluploadFilesAdd);this.bindEvent(this.$elem,"plupload_originalfiles",this.doFilePreview);this.bindEvent(this.$elem,"plupload_qchange",this.onPluploadQueueChange);this.$header=this.$elem.find("#header");this.$stream_header=this.$header.find(".stream-header");this.$search=this.$header.find(".search-box");this.$tagline=this.$header.find(".tagline");this.$mobile=this.$header.find(".menu-item.mobile");this.$create=this.$header.find("a.create_stream");
this.$page_container=this.find(".page-container");this.upload_notice_controller=new Upload.NoticeController;this.upload_notice_controller.attach(this.$elem);this.createBackButton()},onModelChange:function(a,b,c,d){switch(b){case "new_stream":if(d){if(d.get("orphan_file_count")>0){UploadManager.killOrphanFiles();d.set("orphan_file_count",0)}this.unbindEvent(d,"created");this.unbindProp(d,"orphan_file_count")}if(c){this.bindEvent(c,"created",this.onStreamCreate);this.bindProp(c,"orphan_file_count",
this.onOrphanFileCountChange);c.get("orphan_file_count")&&this.onOrphanFileCountChange(c.get("orphan_file_count"))}break;case "page":if(c!="main"){this.model.set("top_stream",undefined);this.model.set("selected_stream_elem",undefined)}break;case "selected_stream":this.model.set("deselected_stream",d);(a=this.model.get("top_stream"))&&c!==a&&a.set("selected_item_elem",this.model.get("selected_stream_elem"));if(d){d.set("selected_item_elem",null);this.hideSignupNotice()}c&&c.get("eventid")&&!Liveshare.authenticated()&&
this.showSignupNotice();this.updateStreamHeader();break;case "selected_stream_elem":this.model.set("selected_item_elem",null);this.model.set("deselected_stream_elem",d);this.model.set("selected_stream",c?$(c).getData():null);d&&this.unbindEvent(d,"item_insert");c&&this.bindEvent(c,"item_insert",this.onStreamItemInsert);this.updateTitle();break;case "selected_item_elem":this.model.set("selected_item",c?$(c).getData():null);(d=this.model.get("selected_stream"))&&d.set("selected_item_elem",c);break;
case "top_stream":d&&d.set("selected_item_elem",null);c&&c.get("new")?this.model.set("new_stream",c):this.model.set("new_stream",null);this.updateStreamHeader()}},onStreamItemInsert:function(a,b){var c=this.model.get("selected_stream").provider;if(b.index==c.firstIndex())if(c.get("query").method=="local"){c=this.model.get("selected_stream_elem");$(c).trigger("scroll_to_beginning")}},openShareMenu:function(){var a=Menu.menus.get("stream_members");a.showCreateMessage();a.open()},onStreamCreate:function(){function a(k,
n){for(var o=k.files,u=false,s=0;s<o.length;s++)if(!o[s].eventid){o[s].eventid=n;u=true}u&&UploadManager.startPlupload(k)}function b(k,n){d.unbindEvent(UploadManager,"file_upload_success");if(n===c.get("eventid")){c.no_share_tip=true;(new Task(function(o){var u={};$.extend(u,c.provider.get("query"));u.method="items";u.eventid=n;c.provider.set("query",u);k&&c.set("is_empty",false);o&&o()})).then(function(o){var u=App.navContext({id:n,tab:""}),s=false;if(Nav.getContext().get("tab")=="create"){u.setParent(Nav.prevContext());
s=true}Nav.setContext(u,s);Nav.afterChange(function(){(new Stream.Tasks.GetNewItems(c)).complete(o).run()});o&&o()}).delay(2E3).then(function(o){d.model.get("top_stream")===c&&d.openShareMenu();c.no_share_tip=false;o&&o()}).run()}}var c=this.model.get("new_stream"),d=this;this.updateStreamHeader();c.set("orphan_file_count",0);this.bindEvent(UploadManager,"file_upload_success",b);for(var e=UploadManager.getPluploads(),f=0,g=0;g<e.length;g++){f+=e[g].files.length;a(e[g],c.get("eventid"))}this.model.set("new_stream",
null);c.set("is_empty",!(f>0));c.set("new",false);f==0&&b(null,c.get("eventid"))},updateStreamHeader:function(){var a,b;a=this.model.get("selected_stream");b=this.model.get("top_stream");var c=this.model.get("new_stream");if(c){b=c;a="create"}else if(a){b=a;a="stream"}else if(b){b=b;a=b.get("eventid")?"stream":"stacks"}else{a="initial";b=undefined}this.$stream_header.setData({stream:b,state:a})},updateHeader:function(){if(Liveshare.MyUser.get("authenticated")){this.$tagline.hide();this.$mobile.hide();
if(Frontend.isCreatePage()){this.$create.hide();this.$search.hide()}else{this.$create.show();this.$search.show()}}else{this.$search.hide();this.$create.hide();if(this.model.get("page")=="home"){this.$tagline.show();this.$mobile.show()}else{this.$tagline.hide();this.$mobile.hide()}}this.updateStreamHeader();this.$header.triggerHandler("resize")},updatePage:function(){if(!Liveshare.MyUser.get("authenticated")&&(App.isHomePage()||Frontend.isProfilePage())){this.model.set("page","home");Nav.setContext(Nav.home_context)}else if(Frontend.isProfilePage())this.model.set("page",
"profile");else Frontend.isSettingsPage()?this.model.set("page","settings"):this.model.set("page","main")},onLoginSuccess:function(){this.hideSignupNotice();var a=this;Frontend.clientInfo(function(){a.dataRefresh(function(){a.$window.triggerHandler("loginComplete")})})},dataRefresh:function(a){var b=this.model.get("top_stream"),c=this.model.get("selected_stream");if(b){var d=false;if(c&&c.get("access")!=Item.Access.Visible)d=true;var e=this;(new Frontend.Tasks.LoginRefresh(this.model)).complete(function(){d&&
e.$elem.layout();a&&a()}).run()}else a&&a()},updateTitle:function(){var a=App.DEFAULT_TITLE,b=this.context;if(b){var c=b.get("tab");if(c)if(c==App.TAB_MYSTREAMS)a=App.MYSTREAMS_TITLE;else if(c==App.TAB_PUBLIC)a=App.PUBLIC_TITLE;if(b=b.get("id")){b=$(".stream-"+b);if(b.length>0)if(b=b.getData()){a="'"+b.get("name")+"'";a+=" on Liveshare.com"}}}Nav.setTitle(a)},onNavChange:function(a,b){this.context=b;this.updatePage();this.updateHeader();this.updateTitle()},onAuthChange:function(a){this.model.get("redirect_on_login")&&
this.updatePage();this.model.set("redirect_on_login",true);this.updateHeader();a==false&&this.dataRefresh()},showSignupNotice:function(){var a=applyTemplate("/src/app/notices/signup_notice.template");a=new Notice({$content:a,contenttype:"dom",id:"stream_signup",priority:3,timeOut:0,slot:"center_top",css_class:"info_block"});Notices.requestDisplay(a)},hideSignupNotice:function(){Notices.cancelDisplay("stream_signup","center_top")},getUploadStream:function(){var a;if(App.isHomePage())Liveshare.authenticated()||
(a=this.$elem.find("#splash_page .col1 .stream").getData());else a=this.model.get("new_stream")?this.model.get("new_stream"):this.model.get("selected_stream");return a},onPluploadFilesAdd:function(a,b,c){a=this.getUploadStream();if(App.isHomePage()&&!Liveshare.authenticated()){this.$tagline.hide();this.$mobile.hide();this.model.set("redirect_on_login",false);this.model.set("top_stream",a)}if(a)if(a.get("uploadAllowed")){b=a.get("eventid");for(var d=0;d<c.length;d++)if(b)c[d].eventid=b;else{var e=
a.get("orphan_file_count")||0;a.set("orphan_file_count",e+1)}}},onPluploadQueueChange:function(a,b){var c=b.files;if(!(!c||c.length==0)){for(var d=c.length-1;d>=0;d--)c[d].size>UploadManager.MAX_UPLOAD_SIZE&&b.splice(d,1);if(d=this.getUploadStream())if(d.get("eventid")&&c.length>0){UploadManager.startPlupload(b);d.set("is_empty",false)}}},doFilePreview:function(a,b,c){if(a=this.getUploadStream()){b=!a.get("eventid");if($.support.fileRead&&b){var d=a.provider.firstIndex(),e=a.provider.numResults();
b=c.length;a.provider.bounds=new ListBounds({first:d-b,last:d+e+b});for(d=0;d<b;d++)if(c[d].size<UploadManager.MAX_UPLOAD_SIZE){e=new Local.PhotoItem(c[d]);a.provider.addPhotoItem(e)}c=this.model.get("top_stream_elem");$(c).triggerHandler("scroll_to_beginning");a.checkEmpty()}}else this.createNewStreamFromFiles(c)},onPluploadInitialized:function(a,b){UploadManager.registerPlupload(b)},createNewStreamFromFiles:function(a){function b(){d.unbind("new_stream",b);var e=c.model.get("new_stream"),f=e.provider.firstIndex(),
g=e.provider.numResults(),k=a.length;e.provider.bounds=new ListBounds({first:f-k,last:f+g+k});if($.support.fileRead){for(f=0;f<k;f++){g=new Local.PhotoItem(a[f]);e.provider.addPhotoItem(g)}e.checkEmpty()}e.set("orphan_file_count",a.length)}var c=this,d=$(this.model);d.bind("new_stream",b);Nav.setContext(App.navContext({tab:"create"}))},onOrphanFileCountChange:function(a,b){if($.support.fileAPI)if(a==0&&b>0&&this.new_file_notice)Notices.cancelDisplay(this.new_file_notice.id,this.new_file_notice.slot);
else if(a>0){if(!this.$new_file_notice){this.$new_file_notice=applyTemplate("/src/app/upload/notices/message/upload_message.template",{});this.$new_file_text=this.$new_file_notice.find(".upload_progress_text:first")}if(this.getUploadStream()){var c=a==1?" photo":" photos";this.$new_file_text.html(a+c+" in preview. Your "+c+" will be uploaded when you click the Create Stream button.")}this.new_file_notice=new Notice({$content:this.$new_file_notice,contenttype:"dom",id:"hold_file_notice",priority:1,
timeOut:0,slot:"right_bottom"});Notices.requestDisplay(this.new_file_notice)}},createBackButton:function(){this.back_notice=new Notice({template:new Template.Instance("/src/app/buttons/back_button/back_button.template"),contenttype:"dom",id:"back_button_notice",priority:1,timeOut:0,slot:"center_top",show_close:false});Notices.requestDisplay(this.back_notice)},onBackClick:function(){var a=this.$page_container.children().first();if(a.getController()){var b=this;a.afterTransition(function(){b.handleBackClick()})}else this.handleBackClick()},
handleBackClick:function(){var a=1;if(this.model.get("page")=="main")if(this.$page_container.children().first().getController().getState()=="item_selected"){var b=Nav.getContext();if(b.getParent())if(b.getParent().getParent())a=2}Nav.back(a)||Nav.setContext(App.navContext({tab:""},true))}})})();Frontend.Tasks={toString:function(){return"Frontend.Tasks"}};
Frontend.Tasks.LoginRefresh=Class.create("Frontend.Tasks.LoginRefresh",Task,{initialize:function($super,b){$super(delegate(this,this.mainFunc),"Frontend.Tasks.LoginRefresh");this.model=b},mainFunc:function(a){var b=this.model.get("selected_stream"),c=this.model.get("top_stream");if(b){if(b.get("eventid")){if(c!=b)c.valid=false;c=b;b=new Task(function(e){e&&e()},"App.Tasks.LoginRefresh (inner)");b.then(new App.Tasks.RefreshStreamDetails(c));b.then(function(e){$(window).trigger("loginStreamDetails");
e&&e()});b.then(function(e){e&&e()});b.then(new App.Tasks.RefreshStreamItems(c));b.then(function(e){$(window).trigger("loginStreamItems");e&&e()});b.then(new App.Tasks.RefreshStreamComments(c));b.then(function(e){$(window).trigger("loginStreamComments");e&&e()});this.then(b)}}else{c=c.provider;b=c.results;if(c.getQuery().type=="streams")for(var d=b.firstIndex();d<=b.lastIndex();d++){c=b.getItemAt(d);if(c.item_type=="stream"){this.then(new App.Tasks.RefreshStreamDetails(c));this.then(new App.Tasks.RefreshStreamItems(c));
this.then(new App.Tasks.RefreshStreamComments(c))}}}a&&a()}});var Main={toString:function(){return"Main"}};
(function(){Main.Tasks={toString:function(){return"Main.Tasks"}};Main.Tasks.EnsureVisible=Class.create("Main.Tasks.EnsureVisible",Task,{initialize:function($super,b,c,d,e){$super(delegate(this,this.mainFunc));this.parent_elem=b;this.$parent_elem=$(b);this.child_elem=c;this.layout_props=d;this.immediate=e},mainFunc:function(a){for(var b=this.$parent_elem.getLayouts(),c,d=0;d<b.length;d++)if(b[d].type=="grid"){c=b[d];break}if(c&&this.child_elem){if(this.layout_props){this.$parent_elem.setLayoutProps(this.layout_props);
c.calcProps()}c.ensureVisible(this.child_elem,a,this.immediate)}else a&&a()}});Main.Tasks.ScrollToElem=Class.create("Main.Tasks.ScrollToElem",Task,{initialize:function($super,b,c){$super(delegate(this,this.mainFunc));this.parent_elem=b;this.$parent_elem=$(b);this.child_elem=c},mainFunc:function(a){for(var b=this.$parent_elem.getLayouts(),c,d=0;d<b.length;d++)if(b[d].type=="grid"){c=b[d];break}if(c&&this.child_elem)c.scrollToElem(this.child_elem,a);else a&&a()}})})();
(function(){Main.Controller=Class.create("Main.Controller",Controller,{initialize:function($super){$super();this.enable_polling=true},attach:function($super,b){$super(b);this.$elem.setState("initial");this.model=b.getData();this.$wall_content=this.find(".wall-content:first");this.bindEvent(this.$wall_content,"invoked",this.onWallInvoked);this.bindEvent(this.$elem,"item_select",this.onItemSelect);this.bindEvent(this.$elem,"item_deselect",this.onItemDeselect);this.bindEvent(this.$elem,"item_detail",
this.onItemDetail);this.bindEvent(this.$elem,"show_new_items",this.onShowNewItems);this.bindProp(this.$elem,"state",this.onStateChange);this.bindEvent(this.$elem,"new_media",this.onNewMedia);this.bindEvent(this.$elem,"delete_media",this.onDeleteMedia);this.bindEvent(this.$elem,"refresh_media",this.onRefreshMedia);this.bindEvent(Notifications,"new_media",this.onNewMedia);this.bindEvent(Notifications,"refresh_media",this.onRefreshMedia)},detach:function($super){$super()},onWallInvoked:function(a,b){this.model.set("top_stream_elem",
b[0])},setState:function(a){this.$elem.getState()==a?this.$elem.layout(0):this.$elem.setState(a)},getState:function(){return this.$elem.getState()},streamSelected:function(){return this.model.get("selected_stream")!==null},onStateChange:function(a,b){this.$elem.removeClass(b).addClass(a);this.$elem.beginTransition();var c=Main.StateTransitions[b+"-"+a];if(c){var d=this;c(this,function(){d.afterStateChange(a,b)})}else{this.$elem.layout(0);this.afterStateChange(a,b)}},afterStateChange:function(){this.$elem.endTransition()},
showNearby:function(a){Liveshare.Config.current_position=a;Nav.setContext(App.navContext({tab:"nearby"}))},onItemSelect:function(a,b){var c=this;Nav.afterChange(function(){c.selectItemElem(b)})},selectItemElem:function(a){var b=$(a),c=b.getData();if(c.item_type=="stream")Nav.setContext(App.navContext({id:c.get("eventid")}));else if(c.item_type=="photo")if(c.get("mediaid")){b=b.parents(".stream:first").getData().get("eventid");c=c.get("mediaid");if(this.getState()!="item_selected"){this.model.set("selected_item_elem",
a);Tracker.media(b,c);this.setState("item_selected")}Nav.setContext(App.navContext({id:b,mediaid:c}))}},onItemDeselect:function(){var a=this;Nav.afterChange(function(){a.setState("wall");if(!Nav.back()){var b=Nav.getContext();Nav.setContext(App.navContext({id:b.get("id")},true))}})},onItemDetail:function(){},onShowNewItems:function(a,b){var c=Nav.getContext();Nav.setContext(App.navContext({id:c.get("id")}));var d=this;Nav.afterChange(function(){d.$elem.afterTransition(function(){b.scrollToBeginning()})})},
onNewMedia:function(a,b,c){this.$elem.getState();b.get("eventid");this.$elem.afterTransition(function(){(new Stream.Tasks.GetNewItems(b,[c])).run()})},onRefreshMedia:function(a,b,c,d){this.$elem.getState();var e=[];for(a=0;a<b.length;a++)if(c=Frontend.findMediaElem(b[a])){c=$(c).getData();c.get("deleted")||e.push(c)}if(e.length!=0)if(d=="comments")for(a=0;a<e.length;a++)e[a].loadComments(true);else if(d=="ranking")for(a=0;a<e.length;a++)e[a].loadRankings(true);else{var f=this;this.$elem.afterTransition(function(){(new Item.Tasks.RefreshItems(e)).complete(function(){for(var g=
0;g<e.length;g++){var k=e[g];if(k.get("deleted")==true)f.deleteMedia(k);else if(k===f.model.get("selected_item")){k.loadRankings(true);k.loadComments(true)}}}).run()})}},onDeleteMedia:function(a,b,c){function d(g){return function(k){e.deleteMedia(g,k)}}this.$elem.getState();var e=this;a=new Task;for(b=0;b<c.length;b++){var f=Frontend.findMediaElem(c[b]);if(f){f=$(f).getData();f.set("deleted",true);a.then(d(f))}}a.run()},deleteMedia:function(a,b){var c=a.get("mediaid"),d=a.get("eventid"),e=this.$elem.getState(),
f=this.model.get("selected_item");if(e=="item_selected"&&f.get("mediaid")==c){warn("the currently selected item has been deleted.  It will disappear after item deselect");b&&b()}else{c=Frontend.findStreamElem(d);var g=$(c).getController(),k=this;this.$elem.afterTransition(function(){k.$elem.beginTransition();g.removeItem(a,function(){k.$elem.endTransition();b&&b()})})}}})})();
(function(){Main.Nav=Class.create("Main.Nav",Nav.Controller,{initialize:function($super){$super()},attach:function($super,b){$super(b);this.model=b.getData()},resetState:function(){this.$elem.setState("initial");this.model.set("top_stream",undefined);this.model.set("selected_stream_elem",undefined)},setState:function(a){this.$elem.getState()==a?this.$elem.layout(0):this.$elem.setState(a)},startTask:function(a){this.task=a;a.run()},taskDone:function(){this.task=undefined},cancelTask:function(){this.task.cancel();
this.task=undefined},endNavChange:function(){this.callback();this.task=this.callback=undefined},handleNavChange:function(a,b,c){this.callback=c;b=Nav.getContext();if(a!==b)a=b;if(a===this.context)this.endNavChange();else{this.task&&this.cancelTask();this.context=a;a=this.context.get("tab");if(a=="following"){Nav.setContext(Nav.home_context);this.endNavChange()}else{if(this.context.get("search"))a="search";b=this.context.get("id");if(!b&&!a){if(!Liveshare.authenticated()){this.endNavChange();return}a=
App.TAB_MYSTREAMS}if(b)this.showStream(b);else a?this.showTab(a):this.endNavChange()}}},showStream:function(a){Tracker.stream(a);var b=this.context.get("mediaid"),c=Frontend.findStreamElem(a);if(c){a=this.model.get("selected_stream_elem");if(c===a)this.updateSelectedItem();else if(a||b)this.loadTopStream();else{this.model.set("selected_stream_elem",c);b=this.model.get("selected_stream");a=this.model.get("top_stream");var d=this.model.get("top_stream_elem");if(b!==a){a.set("selected_item_elem",c);
$(c).disableInput();var e=this,f=(new Main.Tasks.EnsureVisible(d,c)).complete(function(){e.taskDone(f);$(c).enableInput();e.setState("wall");e.$elem.afterTransition(function(){e.endNavChange()})});this.startTask(f)}else{this.setState("wall");e=this;this.$elem.afterTransition(function(){e.endNavChange()})}}}else this.loadTopStream()},showTab:function(a){var b=this.model.get("top_stream"),c=b?b.provider.getQuery():undefined,d=this.context;if(a==App.TAB_CREATE){if(!(b&&c.method=="local")){a=Frontend.newStream();
this.model.set("top_stream",a);this.model.set("selected_stream_elem",undefined);this.setState("create")}}else{if(a==App.TAB_SEARCH)if(b&&c.method=="search"&&c.search==d.get("search"))a=b;else{a=new Liveshare.Stream(null,"grid");a.provider.set("query",{method:"search",type:"streams",search:d.get("search"),safe:1});a.set("name","Search Results");a.set("is_empty",false);a.set("url","#&search="+d.get("search"));Tracker.search()}else if(a==App.TAB_MYSTREAMS)if(b&&c.method=="mystreams")a=b;else{a=new Liveshare.Stream(null,
"grid");a.set("name","My Streams");a.provider.set("query",{method:"mystreams",type:"streams",sortby:"updatedatetime"});a.set("url","#");Tracker.myStreams()}else if(a==App.TAB_PUBLIC)if(b&&c.method=="featured")a=b;else{a=new Liveshare.Stream(null,"grid");a.set("name","Featured Public Streams");a.provider.set("query",{method:"featured",type:"streams",sortby:"startdatetime"});Tracker.featuredStreams()}else if(a==App.TAB_NEARBY)if(b&&c.method=="nearby")a=b;else{a=new Liveshare.Stream(null,"grid");a.set("name",
"Live Photostreams Nearby");a.provider.set("query",{method:"nearby",type:"streams"});Tracker.nearbyStreams()}else{this.endNavChange();return}a!==b&&this.model.set("selected_stream_elem",null);this.model.set("top_stream",a);this.setState("stacks")}var e=this;this.$elem.afterTransition(function(){e.endNavChange()})},updateSelectedItem:function(){var a,b=this.context.get("id"),c=this.context.get("mediaid");if(c){a=Frontend.findMediaElem(c);if(!a){this.loadTopStream();return}}if(a===this.model.get("selected_item_elem"))this.endNavChange();
else{var d=this,e=(new Task(function(f){var g=d.model.get("selected_item");if(g&&g.get("mediaid")!=c){d.setState("wall");d.$elem.afterTransition(f)}else f&&f()})).delay(1).then(new Main.Tasks.EnsureVisible(this.model.get("selected_stream_elem"),a)).delay(1).then(function(f){if(a)if(a==d.model.get("selected_item_elem"))f&&f();else{d.model.set("selected_item_elem",a);Tracker.media(b,c);if(d.$elem.getState()=="item_selected")f&&f();else{d.setState("item_selected");d.$elem.afterTransition(f)}}else f&&
f()}).delay(1).then(function(f){d.setState(c?"item_selected":"wall");d.$elem.afterTransition(f)}).delay(1).then(function(f){d.taskDone(e);f&&f()}).complete(function(){d.endNavChange()});this.startTask(e)}},loadTopStream:function(){var a=this.context.get("id"),b=this.context.get("mediaid");this.resetState();var c=new Liveshare.Stream({eventid:a});c.set("layout_type","grid");var d=c.provider,e=false,f=this,g=(new App.Tasks.RefreshStreamDetails(c)).then(function(k){if(b&&!f.task.cancelled){Tracker.media(a,
b);LiveshareAPI.GetActivityStream({eventids:a,mediaids:b},function(n){n=n.result;var o=n.media;if(n.returncode==0&&o.length>0&&o[0].eventid==a){n=o[0];if(n.myflag==1)e=true;else d.updateLastTime(n.creationdatetime+1E3)}else e=true;k()})}else k()}).complete(function(){f.taskDone(g);if(e){Nav.setContext(App.navContext({id:f.context.get("id")},true),true);f.endNavChange()}else{b&&f.bindEvent(f.$elem,"item_insert",f.onItemInsert);f.model.set("top_stream",c);var k=f.model.get("top_stream_elem");f.model.set("selected_stream_elem",
k);f.setState("wall");b||f.$elem.afterTransition(function(){f.endNavChange()})}});this.startTask(g)},onItemInsert:function(a,b){var c=b.item;if(c.item_type=="photo")if((c=c.get("mediaid"))&&c==this.context.get("mediaid")){this.unbindEvent(this.$elem,"item_insert");var d=this.model.get("selected_stream_elem");$(d).disableInput();var e=this,f=(new Main.Tasks.ScrollToElem(d,b.element)).complete(function(){$(d).enableInput();e.taskDone(f);d!==e.model.get("selected_stream_elem")?e.endNavChange():e.updateSelectedItem()});
this.startTask(f)}}})})();
(function(){var a={TOP:30,BOTTOM:20};Main.Layout=Class.create("Main.Layout",Layout.Controller,{initialize:function($super){$super("main")},attach:function($super,c){$super(c);this.model=c.getData();this.$wall_content=this.find(".wall-content:first")},getWallLayoutProps:function(){var b=true,c=this.model.get("selected_stream"),d=this.model.get("top_stream");if(c&&c===d||d&&d.get("new")===true)b=false;c=Stream.Config.Grid.NUM_ROWS;if(b)c=Math.round(this.max_wall_height/300);d={top:a.TOP,left:0,bottom:a.BOTTOM,
right:0};var e=this.$wall_content.width(),f=this.$wall_content.height(),g={left:Math.round(e/2),top:Math.round(f/2)},k=g.left;g=g.top;return new Layout.Properties({num_rows:c,width:e,height:f,padding:d,stacks:b,left:k,top:g,offset:{left:0,top:0},viewport:{left:-k+d.left,top:-g+d.top,width:e-(d.left+d.right),height:f-(d.top+d.bottom)},origin:{z:-800,scale:2}})},resize:function(b){this.layout(0,b)},layout:function(b,c){this.$elem.inTransition();this.elem.debug&&(new Date).getTime();b||(b=0);var d=this.$elem.getLayoutProps();
this.$elem.css({height:d.height,width:d.width});this.$wall_content.width(this.$elem.width());this.$wall_content.height(this.$elem.height());this.max_wall_height=this.$wall_content.height();this.$elem.getState();this.$wall=this.$wall_content.children().first();if(this.$wall.hasClass("stream")){this.rendering=true;d=this.getWallLayoutProps();var e=new Task,f=this;this.$wall.disableInput();var g=this.model.get("top_stream").get("selected_item_elem");g&&e.then(new Main.Tasks.EnsureVisible(this.$wall[0],
g,d,true));g=new Batch(null,"main_layout");g.add(function(k){f.$wall.applyTransform(d.transform,b,k)});g.add(function(k){f.$wall.layout(d,b,k)});e.then(g);e.complete(function(){f.rendering=false;f.$wall.enableInput();c&&c()});e.run()}else c&&c()}})})();
(function(){Main.PubNub=Class.create("Main.PubNub",Controller,{initialize:function($super){$super();this.queue=new Poll.Queue(10,delegate(this,this.onQueue));this.new_media={type:"new_media"};this.delete_media={type:"delete_media"};this.refresh_media={type:"refresh_media",mediaids:[]};this.refresh_comments={type:"refresh_comments",mediaids:[]};this.refresh_ranking={type:"refresh_ranking",mediaids:[]}},attach:function($super,b){$super(b);this.model=b.getData();this.bindProp(this.model,"selected_stream",
this.onStreamChange);this.data=[];this.onStreamChange()},detach:function($super){this.stream&&this.unsubscribe();$super()},onStreamChange:function(){this.stream&&this.unsubscribe();var a=this.model.get("selected_stream");a&&this.subscribe(a)},unsubscribe:function(){var a=this.stream.get("pubnubchannel");PubNub.unsubscribe(a);this.req&&this.req.cancel();this.unbindProp(this.provider,"state");this.queue.stop();this.provider=this.stream=undefined},subscribe:function(a){this.stream=a;this.provider=a.provider;
a=this.stream.get("pubnubchannel");PubNub.subscribe(a,delegate(this,this.onData),delegate(this,this.onError));this.queue.start()},onData:function(a){var b=a.mediaid;switch(a.messagetype){case "mediachanged":a=this.provider.hasCacheResult({mediaid:b});var c=this.provider.firstItem();if((!c||c.get("mediaid")<b)&&!a)this.newMedia(this.stream,b);else a&&this.refreshMedia(b);break;case "commentAdded":case "commentDeleted":this.refreshComments(b);break;case "mediaRankingChanged":this.refreshRanking(b);
break;case "mediaAdded":this.newMedia(this.stream,b);break;case "mediaDeleted":this.deleteMedia(this.stream,b)}},onError:function(){},onQueue:function(a){switch(a.type){case "new_media":this.$elem.triggerHandler(a.type,[a.stream,a.mediaids,"main_pubnub"]);break;case "delete_media":this.$elem.triggerHandler(a.type,[a.stream,a.mediaids,"main_pubnub"]);break;case "refresh_media":this.$elem.triggerHandler(a.type,[a.mediaids,"main_pubnub"]);break;case "refresh_comments":this.$elem.triggerHandler("refresh_media",
[a.mediaids,"main_pubnub","comments"]);break;case "refresh_ranking":this.$elem.triggerHandler("refresh_media",[a.mediaids,"main_pubnub","ranking"])}a.mediaids=[]},refreshMedia:function(a){this.refresh_media.mediaids.push(a);this.queue.has(this.refresh_media)||this.queue.add(this.refresh_media)},refreshComments:function(a){this.refresh_comments.mediaids.push(a);this.queue.has(this.refresh_comments)||this.queue.add(this.refresh_comments)},refreshRanking:function(a){this.refresh_ranking.mediaids.push(a);
this.queue.has(this.refresh_ranking)||this.queue.add(this.refresh_ranking)},newMedia:function(a,b){var c=a.get("eventid"),d=this.new_media[c];if(!d){d={type:"new_media",stream:a,mediaids:[]};this.new_media[c]=d}b&&d.mediaids.push(b);this.queue.has(d)||this.queue.add(d)},deleteMedia:function(a,b){var c=a.get("eventid"),d=this.delete_media[c];if(!d){d={type:"delete_media",stream:a,mediaids:[]};this.delete_media[c]=d}b&&d.mediaids.push(b);this.queue.has(d)||this.queue.add(d)}})})();
(function(){Main.Poller=Class.create("Main.Poller",Controller,{attach:function($super,b){$super(b);this.model=b.getData();this.$window=$(window);this.bindEvent(this.$window,"blur",this.onWindowBlur);this.bindEvent(this.$window,"focus",this.onWindowFocus);this.bindEvent(UploadManager,"file_upload_success",this.onFileUploadSuccess);this.enable_polling=true;this.startPolling()},detach:function($super){this.stopPolling();$super()},startPolling:function(){if(!this.req)if(server_vars.enable_polling&&this.enable_polling){if(this.poll_timeout){clearTimeout(this.poll_timeout);
this.poll_timeout=undefined}var a=this;this.poll_timeout=setTimeout(function(){a.poll_timeout=undefined;a.getNewItems()},server_vars.poll_time*1E3)}},stopPolling:function(){if(this.req){this.unbindEvent(this.req,"complete");this.req=null}if(this.poll_timeout){clearTimeout(this.poll_timeout);this.poll_timeout=undefined}this.enable_polling=false;this.provider&&this.provider_context&&this.provider.cancel(this.provider_context)},onWindowBlur:function(){this.stopPolling()},onWindowFocus:function(){this.enable_polling=
true;this.startPolling()},onFileUploadSuccess:function(){this.stopPolling();this.getNewItems()},getNewItems:function(){var a=this.$elem.getState(),b=this.model.get("selected_stream"),c=this.model.get("top_stream");this.stream=this.provider=this.first_item=null;var d;if(c&&c!==b&&!c.get("eventid")&&!c.get("new"))d=c;b=false;if(d){b=!this.$elem.inTransition()&&a=="stacks";if(d.get("is_private")&&!Liveshare.authenticated())b=false}b&&this.$elem.triggerHandler("new_media",[d,undefined,"main_poller"]);
this.startPolling()},onRequestComplete:function(){this.unbindEvent(this.req,"complete");this.req=null;this.startPolling()}})})();
(function(){Main.StateTransitions={toString:function(){return"Main.StateTransitions"}};Main.StateTransitions["stacks-wall"]=function(a,b){var c=a.model.get("selected_stream_elem"),d=$(c),e=d.getData();d.disableInput();e.provider.allowUpdatesFromParent(false);e.provider.removePlaceholder();if(e=e.parent){var f=$(e),g=f.getProp("layout_switcher"),k=g.getCurrentLayout();k.camera&&k.camera.stop();var n=d.getProp("layout_switcher");n.getCurrentLayout();var o=n.getLayout("grid");(new Task(function(u){f.getLayoutProps().selected_item_margin=
{left:0,top:0,right:0,bottom:0};var s=d.getLayoutProps(),h=g.getLayout("child_expanded");h.attach(f);s.updateLayoutProperties(h.selectedItemProps());var m=k.scrollPosition();s.offset={left:-Math.round(s.width/2)+(s.left-m.x),top:-Math.round(s.height/2)+(s.top-m.y)};d.find(".title:first").css({display:"none"});h.layoutItem(undefined,c,0);h.detach();u&&u()})).delay(1).then(new Batch([function(u){g.switchLayout("child_expanded",{},function(){u&&u()})},function(u){n.switchLayout("grid",{offset:{left:0,
top:0}},u)}])).then(function(u){o.no_calc_bounds=false;var s=o.calcBounds();o.demandItems(s);d.enableInput();u&&u()}).then(b).run()}else{a.$elem.layout();b&&b()}};Main.StateTransitions["wall-stacks"]=function(a,b){function c(y){var z=k.find(".items:first").getProp("mapper"),B=z.options.delay;z.options.delay=0;o.syncCache(o.firstIndex(),o.firstIndex()+Liveshare.Config.numPreviewsPerStack);z.options.delay=B;y&&y()}function d(y){a.$elem.layout(y)}function e(y){k.setProp("no_layout",false);o.numResults()==
0?o.addPlaceholder():o.slice(o.firstIndex(),Liveshare.Config.numPreviewsPerStack);n.provider.allowUpdatesFromParent(true);f.set("selected_stream_elem",null);y&&y()}var f=a.model,g=f.get("selected_stream_elem");if(g){var k=$(g);k.setProp("no_layout",true);k.getProp("layout_switcher").getCurrentLayout().detachInput();var n=k.getData(),o=n.provider,u=n.parent,s=$(u);if(!u||s.getData()!==f.get("top_stream"))(new Task(c)).then(d).then(e).then(b).run();else{var h=s.getProp("layout_switcher");u=h.getLayout("grid");
var m=k.getProp("layout_switcher"),r=m.getCurrentLayout(),p=k.getLayoutProps(),l=u.itemLayoutProps(g),j=l.width,w=l.height,v=Math.round(j/2),q=Math.round(w/2);g=h.getCurrentLayout().scrollPosition();var t=-(p.left-g.x-v),x=-(p.top-g.y-q);if(s=s.getLayoutProps().selected_item_margin){t+=s.left;x+=s.top}(new Task(function(y){r.camera&&r.camera.stop();var z=r.scrollPosition();r.resetScroll();t+=-Math.round(z.x);x+=-Math.round(z.y);p.updateLayoutProperties({offset:{left:t,top:x},viewport:{left:-v,top:-q,
width:j,height:w},origin:l.origin});r.no_calc_bounds=true;k.layout(0);r.no_calc_bounds=false;y&&y()})).delay(1).then(c).delay(1).then(new Batch([function(y){m.switchLayout("stack",{width:j,height:w,offset:{left:0,top:0},padding:{left:0,top:0,bottom:0,right:0}},y)},function(y){h.switchLayout("grid",{},function(){y&&y()})}])).delay(1).then(e).then(b).run()}}else a.$elem.afterLayout(function(){a.$elem.layout();b&&b()})};Main.StateTransitions["wall-item_selected"]=function(a,b){var c=a.model.get("selected_stream_elem");
$(c).getProp("layout_switcher").switchLayout("item_selected",{},function(){b&&b()})};Main.StateTransitions["item_selected-wall"]=function(a,b){var c=a.model,d=c.get("selected_stream_elem");if(d){var e=c.get("selected_item"),f=e.get("deleted")?e:null;c.set("selected_item_elem",null);var g=$(d),k=g.getProp("layout_switcher");(function(n){k.switchLayout("grid",{},function(){if(f)g.getController().removeItem(f,n);else n&&n()})})(b)}else{a.$elem.layout();b&&b()}};Main.StateTransitions["item_selected-stacks"]=
function(a,b){Main.StateTransitions["item_selected-wall"](a,function(){Main.StateTransitions["wall-stacks"](a,b)})}})();
(function(){Page.Html5Home=Class.create("Page.Html5Home",Layout.Controller,{initialize:function($super){$super("home-page")},attach:function($super,b){$super(b);this.$col1=this.$elem.find(".col1:first");this.$col2=this.$elem.find(".col2:first");this.$new_stream=this.$elem.find(".stream:first");this.$wrapper=$("#wrapper");this.bindEvent(this.$wrapper,"plupload_filesadded",this.onFilesDropped)},added:function(){this.$elem.getData().set("top_stream_elem",this.$new_stream)},detach:function($super){$super()},
onFilesDropped:function(){Nav.setContext(new NavContext({tab:"create"}))},layout:function(a,b){var c=this.$elem.getLayoutProps();this.$elem.css({width:c.width,height:c.height});this.$col1.css({width:600,height:c.height,marginLeft:Math.round((c.width-1E3)/2)+"px"});this.$col2.css({width:400,height:c.height});c=this.$col1.width();var d=this.$col1.height(),e=Math.round(c/2),f=Math.round(d/2);this.$new_stream.css({left:e,top:f});this.$new_stream.layout({height:d,width:c,viewport:{left:-e,top:-f,width:c,
height:d}},0,null);b&&b()}})})();
(function(){Page.LegacyHome=Class.create("Page.LegacyHome",Controller,{attach:function($super,b){$super(b);this.$message=this.$elem.find(".messaging:first");this.$login=this.$message.children().first();this.slide_interval=setInterval(delegate(this,this.slideSwitch),3E3)},added:function(){},detach:function($super){$super();clearInterval(this.slide_interval)},slideSwitch:function(){var a=$("#slideshow IMG.active");if(a.length==0)a=$("#slideshow IMG:last");var b=a.next().length?a.next():$("#slideshow IMG:first");
a.addClass("last-active");b.css({opacity:0}).addClass("active").animate({opacity:1},1E3,function(){a.removeClass("active last-active")})}})})();Page.UserProfile=Class.create("Page.UserProfile",Controller,{attach:function($super,b){$super(b);var c=new Liveshare.ProfileData,d=this;c.load(function(){d.set("profile",c)})}});
Page.Settings=Class.create("Page.Settings",Controller,{attach:function($super,b){$super(b);this.settings=this.getData();this.$form=this.find("form");this.bindEvent(this.$form,"submit",this.onSubmit)},onSubmit:function(){this.settings.save({anim_time:this.find(".anim_time").val(),log_console:this.find(".log_console").is(":checked"),log_level:this.find(".log_level").val(),multipart_upload:this.find(".multipart_upload").is(":checked")});this.settings.load();return false}});
Template.Cache["/src/frontend/frontend.template"]=function(a){var b=a.data,c=a.attach;a=a.invoke;var d=[];d.push("");var e=$.support.fileDrop;if(e)var f=new Upload.DragListener;d.push("  ");e&&d.push("    ",c("upload_drag_listener",f),"  ");d.push("  ",c("frontend",new Frontend.Controller),"  ",c("data",b),"  ",a("/src/app/wrapper/wrapper.template",{page:new DataPin(b,"page")}),"  ");e&&d.push("    ",a("/src/app/upload/drop_overlay.template",new DataPin(f,"dragging"),{}),"  ");d.push("  ");server_vars.notifications&&
d.push("  ",a("/src/app/notifications/notifications.template"),"  ");d.push("");return d.join("")};
Template.Cache["/src/frontend/pages/main/main.template"]=function(a){var b=a.data,c=a.attach;a=a.invoke;var d=[];d.push("");var e=new Main.Controller;d.push(" ");server_vars.debug&&server_vars.debug.main&&d.push(" ",c("debug",new Main.Debug)," ");d.push(" ");server_vars.enable_polling&&d.push(" ",c("poller",new Main.Poller)," ");d.push(" ",c("pubnub",new Main.PubNub)," ",c("layout",new Main.Layout)," ",c("nav",new Main.Nav)," ",c("controller",e)," ",c("data",b),' <div id="main"> ');server_vars.debug&&
d.push('   <div id="debug-area" style="position: absolute; z-index: 20; left: 300px; top: 0px;"></div> ');d.push('   <div class="wall-content z1">     ',a("/src/app/stream/stream.template",new DataPin(b,"top_stream"),{layout_type:"grid"}),"   </div> </div>");return d.join("")};Template.Cache["/src/frontend/pages/home/tagline.template"]=function(){var a=[];a.push('<h4 class="tagline dark col_lt">Photo sharing made simple</h4>');return a.join("")};
Template.Cache["/src/frontend/pages/home/html5/home_page.template"]=function(a){var b=a.data,c=a.attach;a=a.invoke;var d=[];d.push("");var e=new Page.Html5Home;d.push("  ",c("controller",e),"  ",c("data",b),'  <div id="splash_page" class="clearfix">    <div class="col1 mk_relative col_lt">      ',a("/src/app/stream/stream.template",Frontend.newStream(),{layout_type:"grid"}),'    </div>    <div class="col2 mk_relative col_lt">      <div class="inner">        ',a("/src/app/login/login.template",{state:"initial"}),
"      </div>    </div>  </div>");return d.join("")};
Template.Cache["/src/frontend/pages/home/legacy/home_page.template"]=function(a){var b=a.attach;a=a.invoke;var c=[];c.push("");var d=new Page.LegacyHome;c.push("  ",b("controller",d),'  <div id="splash_page">    <div class="clearfix splash_page">      <div id="slideshow" class="col_lt">        <img src=\'',server_vars.static_root,'/images/splash_fade3.jpg\' class="active" width="568" height="325" />        <img src=\'',server_vars.static_root,'/images/splash_fade2.jpg\' width="568" height="325" />        <img src=\'',server_vars.static_root,
'/images/splash_fade1.jpg\' width="568" height="325" />      </div>      <div class="col_lt messaging">      ',a("/src/app/login/login.template",{state:"initial"}),"      </div>    </div>  </div>");return c.join("")};
Template.Cache["/src/frontend/pages/profile/profile_page.template"]=function(a){var b=a.attach;a=a.invoke;var c=[];c.push("");var d=new Page.UserProfile;c.push("  ",b("controller",d),'  <div class="profile page">  ',a("/src/liveshare/profile/profile.template",new DataPin(d,"profile")),"  </div>");return c.join("")};
Template.Cache["/src/frontend/pages/settings/settings_page.template"]=function(a){var b=a.data;a=a.attach;var c=[];c.push("");var d=Upload.Config.MULTIPART?'checked="true"':"",e=LogSettings.console?'checked="true"':"";c.push("  ",a("controller",new Page.Settings),"  ",a("data",b),'  <div class="settings-page">    <div class="inner shadow_box clearfix">      <form>        <input type="submit" value="Save" class="submit_btn btn_tall btn_blue btn_standard col_rt"/>        <h1>Settings</h1>        <hr/>        <div class="section">          <h3>Visuals</h3>          <hr/>          <dl class="clearfix">            <dt>Animation Duration (milliseconds)</dt><dd><input class="anim_time" type="text" value="',
Stream.Config.TRANSITION_ANIM_TIME,'"/></dd>          </dl>        </div>        <div class="section">          <h3>Logging</h3>          <hr/>          <dl class="clearfix">            <dt>Log to Console</dt><dd><input class="log_console" type="checkbox" ',e,'/></dd>            <dt>Log Level (lower value logs more)</dt><dd><input class="log_level" type="text" value="',LogSettings.level,'"/></dd>          </dl>        </div>        <div class="upload">          <h3>Upload</h3>          <hr/>          <dl class="clearfix">            <dt>Multi-Part Upload</dt><dd><input class="multipart_upload" type="checkbox" ',
d,"/></dd>          </dl>        </div>      </form>    </div>  </div>");return c.join("")};

