var Prototype={Version:"1.6.1",Browser:(function(){var b=navigator.userAgent;var a=Object.prototype.toString.call(window.opera)=="[object Opera]";return{IE:!!window.attachEvent&&!a,Opera:a,WebKit:b.indexOf("AppleWebKit/")>-1,Gecko:b.indexOf("Gecko")>-1&&b.indexOf("KHTML")===-1,MobileSafari:/Apple.*Mobile.*Safari/.test(b)}})(),BrowserFeatures:{XPath:!!document.evaluate,SelectorsAPI:!!document.querySelector,ElementExtensions:(function(){var a=window.Element||window.HTMLElement;return !!(a&&a.prototype)})(),SpecificElementExtensions:(function(){if(typeof window.HTMLDivElement!=="undefined"){return true}var c=document.createElement("div");var b=document.createElement("form");var a=false;if(c.__proto__&&(c.__proto__!==b.__proto__)){a=true}c=b=null;return a})()},ScriptFragment:"<script[^>]*>([\\S\\s]*?)<\/script>",JSONFilter:/^\/\*-secure-([\s\S]*)\*\/\s*$/,emptyFunction:function(){},K:function(a){return a}};if(Prototype.Browser.MobileSafari){Prototype.BrowserFeatures.SpecificElementExtensions=false}var Abstract={};var Try={these:function(){var c;for(var b=0,d=arguments.length;b<d;b++){var a=arguments[b];try{c=a();break}catch(f){}}return c}};var Class=(function(){function a(){}function b(){var g=null,f=$A(arguments);if(Object.isFunction(f[0])){g=f.shift()}function d(){this.initialize.apply(this,arguments)}Object.extend(d,Class.Methods);d.superclass=g;d.subclasses=[];if(g){a.prototype=g.prototype;d.prototype=new a;g.subclasses.push(d)}for(var e=0;e<f.length;e++){d.addMethods(f[e])}if(!d.prototype.initialize){d.prototype.initialize=Prototype.emptyFunction}d.prototype.constructor=d;return d}function c(k){var f=this.superclass&&this.superclass.prototype;var e=Object.keys(k);if(!Object.keys({toString:true}).length){if(k.toString!=Object.prototype.toString){e.push("toString")}if(k.valueOf!=Object.prototype.valueOf){e.push("valueOf")}}for(var d=0,g=e.length;d<g;d++){var j=e[d],h=k[j];if(f&&Object.isFunction(h)&&h.argumentNames().first()=="$super"){var l=h;h=(function(n){return function(){return f[n].apply(this,arguments)}})(j).wrap(l);h.valueOf=l.valueOf.bind(l);h.toString=l.toString.bind(l)}this.prototype[j]=h}return this}return{create:b,Methods:{addMethods:c}}})();(function(){var d=Object.prototype.toString;function j(r,t){for(var s in t){r[s]=t[s]}return r}function m(r){try{if(e(r)){return"undefined"}if(r===null){return"null"}return r.inspect?r.inspect():String(r)}catch(s){if(s instanceof RangeError){return"..."}throw s}}function l(r){var t=typeof r;switch(t){case"undefined":case"function":case"unknown":return;case"boolean":return r.toString()}if(r===null){return"null"}if(r.toJSON){return r.toJSON()}if(h(r)){return}var s=[];for(var v in r){var u=l(r[v]);if(!e(u)){s.push(v.toJSON()+": "+u)}}return"{"+s.join(", ")+"}"}function c(r){return $H(r).toQueryString()}function f(r){return r&&r.toHTML?r.toHTML():String.interpret(r)}function p(r){var s=[];for(var t in r){s.push(t)}return s}function n(r){var s=[];for(var t in r){s.push(r[t])}return s}function k(r){return j({},r)}function h(r){return !!(r&&r.nodeType==1)}function g(r){return d.call(r)=="[object Array]"}function q(r){return r instanceof Hash}function b(r){return typeof r==="function"}function a(r){return d.call(r)=="[object String]"}function o(r){return d.call(r)=="[object Number]"}function e(r){return typeof r==="undefined"}j(Object,{extend:j,inspect:m,toJSON:l,toQueryString:c,toHTML:f,keys:p,values:n,clone:k,isElement:h,isArray:g,isHash:q,isFunction:b,isString:a,isNumber:o,isUndefined:e})})();Object.extend(Function.prototype,(function(){var l=Array.prototype.slice;function d(p,m){var o=p.length,n=m.length;while(n--){p[o+n]=m[n]}return p}function j(n,m){n=l.call(n,0);return d(n,m)}function g(){var m=this.toString().match(/^[\s\(]*function[^(]*\(([^)]*)\)/)[1].replace(/\/\/.*?[\r\n]|\/\*(?:.|[\r\n])*?\*\//g,"").replace(/\s+/g,"").split(",");return m.length==1&&!m[0]?[]:m}function h(o){if(arguments.length<2&&Object.isUndefined(arguments[0])){return this}var m=this,n=l.call(arguments,1);return function(){var p=j(n,arguments);return m.apply(o,p)}}function f(o){var m=this,n=l.call(arguments,1);return function(q){var p=d([q||window.event],n);return m.apply(o,p)}}function k(){if(!arguments.length){return this}var m=this,n=l.call(arguments,0);return function(){var o=j(n,arguments);return m.apply(this,o)}}function e(o){var m=this,n=l.call(arguments,1);o=o*1000;return window.setTimeout(function(){return m.apply(m,n)},o)}function a(){var m=d([0.01],arguments);return this.delay.apply(this,m)}function c(n){var m=this;return function(){var o=d([m.bind(this)],arguments);return n.apply(this,o)}}function b(){if(this._methodized){return this._methodized}var m=this;return this._methodized=function(){var n=d([this],arguments);return m.apply(null,n)}}return{argumentNames:g,bind:h,bindAsEventListener:f,curry:k,delay:e,defer:a,wrap:c,methodize:b}})());Date.prototype.toJSON=function(){return'"'+this.getUTCFullYear()+"-"+(this.getUTCMonth()+1).toPaddedString(2)+"-"+this.getUTCDate().toPaddedString(2)+"T"+this.getUTCHours().toPaddedString(2)+":"+this.getUTCMinutes().toPaddedString(2)+":"+this.getUTCSeconds().toPaddedString(2)+'Z"'};RegExp.prototype.match=RegExp.prototype.test;RegExp.escape=function(a){return String(a).replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")};var PeriodicalExecuter=Class.create({initialize:function(b,a){this.callback=b;this.frequency=a;this.currentlyExecuting=false;this.registerCallback()},registerCallback:function(){this.timer=setInterval(this.onTimerEvent.bind(this),this.frequency*1000)},execute:function(){this.callback(this)},stop:function(){if(!this.timer){return}clearInterval(this.timer);this.timer=null},onTimerEvent:function(){if(!this.currentlyExecuting){try{this.currentlyExecuting=true;this.execute();this.currentlyExecuting=false}catch(a){this.currentlyExecuting=false;throw a}}}});Object.extend(String,{interpret:function(a){return a==null?"":String(a)},specialChar:{"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r","\\":"\\\\"}});Object.extend(String.prototype,(function(){function prepareReplacement(replacement){if(Object.isFunction(replacement)){return replacement}var template=new Template(replacement);return function(match){return template.evaluate(match)}}function gsub(pattern,replacement){var result="",source=this,match;replacement=prepareReplacement(replacement);if(Object.isString(pattern)){pattern=RegExp.escape(pattern)}if(!(pattern.length||pattern.source)){replacement=replacement("");return replacement+source.split("").join(replacement)+replacement}while(source.length>0){if(match=source.match(pattern)){result+=source.slice(0,match.index);result+=String.interpret(replacement(match));source=source.slice(match.index+match[0].length)}else{result+=source,source=""}}return result}function sub(pattern,replacement,count){replacement=prepareReplacement(replacement);count=Object.isUndefined(count)?1:count;return this.gsub(pattern,function(match){if(--count<0){return match[0]}return replacement(match)})}function scan(pattern,iterator){this.gsub(pattern,iterator);return String(this)}function truncate(length,truncation){length=length||30;truncation=Object.isUndefined(truncation)?"...":truncation;return this.length>length?this.slice(0,length-truncation.length)+truncation:String(this)}function strip(){return this.replace(/^\s+/,"").replace(/\s+$/,"")}function stripTags(){return this.replace(/<\w+(\s+("[^"]*"|'[^']*'|[^>])+)?>|<\/\w+>/gi,"")}function stripScripts(){return this.replace(new RegExp(Prototype.ScriptFragment,"img"),"")}function extractScripts(){var matchAll=new RegExp(Prototype.ScriptFragment,"img");var matchOne=new RegExp(Prototype.ScriptFragment,"im");return(this.match(matchAll)||[]).map(function(scriptTag){return(scriptTag.match(matchOne)||["",""])[1]})}function evalScripts(){return this.extractScripts().map(function(script){return eval(script)})}function escapeHTML(){return this.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function unescapeHTML(){return this.stripTags().replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;/g,"&")}function toQueryParams(separator){var match=this.strip().match(/([^?#]*)(#.*)?$/);if(!match){return{}}return match[1].split(separator||"&").inject({},function(hash,pair){if((pair=pair.split("="))[0]){var key=decodeURIComponent(pair.shift());var value=pair.length>1?pair.join("="):pair[0];if(value!=undefined){value=decodeURIComponent(value)}if(key in hash){if(!Object.isArray(hash[key])){hash[key]=[hash[key]]}hash[key].push(value)}else{hash[key]=value}}return hash})}function toArray(){return this.split("")}function succ(){return this.slice(0,this.length-1)+String.fromCharCode(this.charCodeAt(this.length-1)+1)}function times(count){return count<1?"":new Array(count+1).join(this)}function camelize(){var parts=this.split("-"),len=parts.length;if(len==1){return parts[0]}var camelized=this.charAt(0)=="-"?parts[0].charAt(0).toUpperCase()+parts[0].substring(1):parts[0];for(var i=1;i<len;i++){camelized+=parts[i].charAt(0).toUpperCase()+parts[i].substring(1)}return camelized}function capitalize(){return this.charAt(0).toUpperCase()+this.substring(1).toLowerCase()}function underscore(){return this.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/-/g,"_").toLowerCase()}function dasherize(){return this.replace(/_/g,"-")}function inspect(useDoubleQuotes){var escapedString=this.replace(/[\x00-\x1f\\]/g,function(character){if(character in String.specialChar){return String.specialChar[character]}return"\\u00"+character.charCodeAt().toPaddedString(2,16)});if(useDoubleQuotes){return'"'+escapedString.replace(/"/g,'\\"')+'"'}return"'"+escapedString.replace(/'/g,"\\'")+"'"}function toJSON(){return this.inspect(true)}function unfilterJSON(filter){return this.replace(filter||Prototype.JSONFilter,"$1")}function isJSON(){var str=this;if(str.blank()){return false}str=this.replace(/\\./g,"@").replace(/"[^"\\\n\r]*"/g,"");return(/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(str)}function evalJSON(sanitize){var json=this.unfilterJSON();try{if(!sanitize||json.isJSON()){return eval("("+json+")")}}catch(e){}throw new SyntaxError("Badly formed JSON string: "+this.inspect())}function include(pattern){return this.indexOf(pattern)>-1}function startsWith(pattern){return this.indexOf(pattern)===0}function endsWith(pattern){var d=this.length-pattern.length;return d>=0&&this.lastIndexOf(pattern)===d}function empty(){return this==""}function blank(){return/^\s*$/.test(this)}function interpolate(object,pattern){return new Template(this,pattern).evaluate(object)}return{gsub:gsub,sub:sub,scan:scan,truncate:truncate,strip:String.prototype.trim?String.prototype.trim:strip,stripTags:stripTags,stripScripts:stripScripts,extractScripts:extractScripts,evalScripts:evalScripts,escapeHTML:escapeHTML,unescapeHTML:unescapeHTML,toQueryParams:toQueryParams,parseQuery:toQueryParams,toArray:toArray,succ:succ,times:times,camelize:camelize,capitalize:capitalize,underscore:underscore,dasherize:dasherize,inspect:inspect,toJSON:toJSON,unfilterJSON:unfilterJSON,isJSON:isJSON,evalJSON:evalJSON,include:include,startsWith:startsWith,endsWith:endsWith,empty:empty,blank:blank,interpolate:interpolate}})());var Template=Class.create({initialize:function(a,b){this.template=a.toString();this.pattern=b||Template.Pattern},evaluate:function(a){if(a&&Object.isFunction(a.toTemplateReplacements)){a=a.toTemplateReplacements()}return this.template.gsub(this.pattern,function(d){if(a==null){return(d[1]+"")}var f=d[1]||"";if(f=="\\"){return d[2]}var b=a,g=d[3];var e=/^([^.[]+|\[((?:.*?[^\\])?)\])(\.|\[|$)/;d=e.exec(g);if(d==null){return f}while(d!=null){var c=d[1].startsWith("[")?d[2].replace(/\\\\]/g,"]"):d[1];b=b[c];if(null==b||""==d[3]){break}g=g.substring("["==d[3]?d[1].length:d[0].length);d=e.exec(g)}return f+String.interpret(b)})}});Template.Pattern=/(^|.|\r|\n)(#\{(.*?)\})/;var $break={};var Enumerable=(function(){function c(z,y){var x=0;try{this._each(function(B){z.call(y,B,x++)})}catch(A){if(A!=$break){throw A}}return this}function s(A,z,y){var x=-A,B=[],C=this.toArray();if(A<1){return C}while((x+=A)<C.length){B.push(C.slice(x,x+A))}return B.collect(z,y)}function b(z,y){z=z||Prototype.K;var x=true;this.each(function(B,A){x=x&&!!z.call(y,B,A);if(!x){throw $break}});return x}function j(z,y){z=z||Prototype.K;var x=false;this.each(function(B,A){if(x=!!z.call(y,B,A)){throw $break}});return x}function k(z,y){z=z||Prototype.K;var x=[];this.each(function(B,A){x.push(z.call(y,B,A))});return x}function u(z,y){var x;this.each(function(B,A){if(z.call(y,B,A)){x=B;throw $break}});return x}function h(z,y){var x=[];this.each(function(B,A){if(z.call(y,B,A)){x.push(B)}});return x}function g(A,z,y){z=z||Prototype.K;var x=[];if(Object.isString(A)){A=new RegExp(RegExp.escape(A))}this.each(function(C,B){if(A.match(C)){x.push(z.call(y,C,B))}});return x}function a(x){if(Object.isFunction(this.indexOf)){if(this.indexOf(x)!=-1){return true}}var y=false;this.each(function(z){if(z==x){y=true;throw $break}});return y}function r(y,x){x=Object.isUndefined(x)?null:x;return this.eachSlice(y,function(z){while(z.length<y){z.push(x)}return z})}function m(x,z,y){this.each(function(B,A){x=z.call(y,x,B,A)});return x}function w(y){var x=$A(arguments).slice(1);return this.map(function(z){return z[y].apply(z,x)})}function q(z,y){z=z||Prototype.K;var x;this.each(function(B,A){B=z.call(y,B,A);if(x==null||B>=x){x=B}});return x}function o(z,y){z=z||Prototype.K;var x;this.each(function(B,A){B=z.call(y,B,A);if(x==null||B<x){x=B}});return x}function e(A,y){A=A||Prototype.K;var z=[],x=[];this.each(function(C,B){(A.call(y,C,B)?z:x).push(C)});return[z,x]}function f(y){var x=[];this.each(function(z){x.push(z[y])});return x}function d(z,y){var x=[];this.each(function(B,A){if(!z.call(y,B,A)){x.push(B)}});return x}function n(y,x){return this.map(function(A,z){return{value:A,criteria:y.call(x,A,z)}}).sort(function(C,B){var A=C.criteria,z=B.criteria;return A<z?-1:A>z?1:0}).pluck("value")}function p(){return this.map()}function t(){var y=Prototype.K,x=$A(arguments);if(Object.isFunction(x.last())){y=x.pop()}var z=[this].concat(x).map($A);return this.map(function(B,A){return y(z.pluck(A))})}function l(){return this.toArray().length}function v(){return"#<Enumerable:"+this.toArray().inspect()+">"}return{each:c,eachSlice:s,all:b,every:b,any:j,some:j,collect:k,map:k,detect:u,findAll:h,select:h,filter:h,grep:g,include:a,member:a,inGroupsOf:r,inject:m,invoke:w,max:q,min:o,partition:e,pluck:f,reject:d,sortBy:n,toArray:p,entries:p,zip:t,size:l,inspect:v,find:u}})();function $A(c){if(!c){return[]}if("toArray" in Object(c)){return c.toArray()}var b=c.length||0,a=new Array(b);while(b--){a[b]=c[b]}return a}function $w(a){if(!Object.isString(a)){return[]}a=a.strip();return a?a.split(/\s+/):[]}Array.from=$A;(function(){var t=Array.prototype,n=t.slice,p=t.forEach;function b(x){for(var w=0,y=this.length;w<y;w++){x(this[w])}}if(!p){p=b}function m(){this.length=0;return this}function d(){return this[0]}function g(){return this[this.length-1]}function j(){return this.select(function(w){return w!=null})}function v(){return this.inject([],function(x,w){if(Object.isArray(w)){return x.concat(w.flatten())}x.push(w);return x})}function h(){var w=n.call(arguments,0);return this.select(function(x){return !w.include(x)})}function f(w){return(w!==false?this:this.toArray())._reverse()}function l(w){return this.inject([],function(z,y,x){if(0==x||(w?z.last()!=y:!z.include(y))){z.push(y)}return z})}function q(w){return this.uniq().findAll(function(x){return w.detect(function(y){return x===y})})}function r(){return n.call(this,0)}function k(){return this.length}function u(){return"["+this.map(Object.inspect).join(", ")+"]"}function s(){var w=[];this.each(function(x){var y=Object.toJSON(x);if(!Object.isUndefined(y)){w.push(y)}});return"["+w.join(", ")+"]"}function a(y,w){w||(w=0);var x=this.length;if(w<0){w=x+w}for(;w<x;w++){if(this[w]===y){return w}}return -1}function o(x,w){w=isNaN(w)?this.length:(w<0?this.length+w:w)+1;var y=this.slice(0,w).reverse().indexOf(x);return(y<0)?y:w-y-1}function c(){var B=n.call(this,0),z;for(var x=0,y=arguments.length;x<y;x++){z=arguments[x];if(Object.isArray(z)&&!("callee" in z)){for(var w=0,A=z.length;w<A;w++){B.push(z[w])}}else{B.push(z)}}return B}Object.extend(t,Enumerable);if(!t._reverse){t._reverse=t.reverse}Object.extend(t,{_each:p,clear:m,first:d,last:g,compact:j,flatten:v,without:h,reverse:f,uniq:l,intersect:q,clone:r,toArray:r,size:k,inspect:u,toJSON:s});var e=(function(){return[].concat(arguments)[0][0]!==1})(1,2);if(e){t.concat=c}if(!t.indexOf){t.indexOf=a}if(!t.lastIndexOf){t.lastIndexOf=o}})();function $H(a){return new Hash(a)}var Hash=Class.create(Enumerable,(function(){function e(r){this._object=Object.isHash(r)?r.toObject():Object.clone(r)}function f(s){for(var r in this._object){var t=this._object[r],u=[r,t];u.key=r;u.value=t;s(u)}}function l(r,s){return this._object[r]=s}function c(r){if(this._object[r]!==Object.prototype[r]){return this._object[r]}}function o(r){var s=this._object[r];delete this._object[r];return s}function q(){return Object.clone(this._object)}function p(){return this.pluck("key")}function n(){return this.pluck("value")}function g(s){var r=this.detect(function(t){return t.value===s});return r&&r.key}function j(r){return this.clone().update(r)}function d(r){return new Hash(r).inject(this,function(s,t){s.set(t.key,t.value);return s})}function b(r,s){if(Object.isUndefined(s)){return r}return r+"="+encodeURIComponent(String.interpret(s))}function a(){return this.inject([],function(t,u){var s=encodeURIComponent(u.key),r=u.value;if(r&&typeof r=="object"){if(Object.isArray(r)){return t.concat(r.map(b.curry(s)))}}else{t.push(b(s,r))}return t}).join("&")}function m(){return"#<Hash:{"+this.map(function(r){return r.map(Object.inspect).join(": ")}).join(", ")+"}>"}function k(){return Object.toJSON(this.toObject())}function h(){return new Hash(this)}return{initialize:e,_each:f,set:l,get:c,unset:o,toObject:q,toTemplateReplacements:q,keys:p,values:n,index:g,merge:j,update:d,toQueryString:a,inspect:m,toJSON:k,clone:h}})());Hash.from=$H;Object.extend(Number.prototype,(function(){function d(){return this.toPaddedString(2,16)}function e(){return this+1}function a(l,k){$R(0,this,true).each(l,k);return this}function b(m,l){var k=this.toString(l||10);return"0".times(m-k.length)+k}function f(){return isFinite(this)?this.toString():"null"}function j(){return Math.abs(this)}function h(){return Math.round(this)}function g(){return Math.ceil(this)}function c(){return Math.floor(this)}return{toColorPart:d,succ:e,times:a,toPaddedString:b,toJSON:f,abs:j,round:h,ceil:g,floor:c}})());function $R(c,a,b){return new ObjectRange(c,a,b)}var ObjectRange=Class.create(Enumerable,(function(){function b(f,d,e){this.start=f;this.end=d;this.exclusive=e}function c(d){var e=this.start;while(this.include(e)){d(e);e=e.succ()}}function a(d){if(d<this.start){return false}if(this.exclusive){return d<this.end}return d<=this.end}return{initialize:b,_each:c,include:a}})());var Ajax={getTransport:function(){return Try.these(function(){return new XMLHttpRequest()},function(){return new ActiveXObject("Msxml2.XMLHTTP")},function(){return new ActiveXObject("Microsoft.XMLHTTP")})||false},activeRequestCount:0};Ajax.Responders={responders:[],_each:function(a){this.responders._each(a)},register:function(a){if(!this.include(a)){this.responders.push(a)}},unregister:function(a){this.responders=this.responders.without(a)},dispatch:function(d,b,c,a){this.each(function(f){if(Object.isFunction(f[d])){try{f[d].apply(f,[b,c,a])}catch(g){}}})}};Object.extend(Ajax.Responders,Enumerable);Ajax.Responders.register({onCreate:function(){Ajax.activeRequestCount++},onComplete:function(){Ajax.activeRequestCount--}});Ajax.Base=Class.create({initialize:function(a){this.options={method:"post",asynchronous:true,contentType:"application/x-www-form-urlencoded",encoding:"UTF-8",parameters:"",evalJSON:true,evalJS:true};Object.extend(this.options,a||{});this.options.method=this.options.method.toLowerCase();if(Object.isString(this.options.parameters)){this.options.parameters=this.options.parameters.toQueryParams()}else{if(Object.isHash(this.options.parameters)){this.options.parameters=this.options.parameters.toObject()}}}});Ajax.Request=Class.create(Ajax.Base,{_complete:false,initialize:function($super,b,a){$super(a);this.transport=Ajax.getTransport();this.request(b)},request:function(b){this.url=b;this.method=this.options.method;var d=Object.clone(this.options.parameters);if(!["get","post"].include(this.method)){d._method=this.method;this.method="post"}this.parameters=d;if(d=Object.toQueryString(d)){if(this.method=="get"){this.url+=(this.url.include("?")?"&":"?")+d}else{if(/Konqueror|Safari|KHTML/.test(navigator.userAgent)){d+="&_="}}}try{var a=new Ajax.Response(this);if(this.options.onCreate){this.options.onCreate(a)}Ajax.Responders.dispatch("onCreate",this,a);this.transport.open(this.method.toUpperCase(),this.url,this.options.asynchronous);if(this.options.asynchronous){this.respondToReadyState.bind(this).defer(1)}this.transport.onreadystatechange=this.onStateChange.bind(this);this.setRequestHeaders();this.body=this.method=="post"?(this.options.postBody||d):null;this.transport.send(this.body);if(!this.options.asynchronous&&this.transport.overrideMimeType){this.onStateChange()}}catch(c){this.dispatchException(c)}},onStateChange:function(){var a=this.transport.readyState;if(a>1&&!((a==4)&&this._complete)){this.respondToReadyState(this.transport.readyState)}},setRequestHeaders:function(){var e={"X-Requested-With":"XMLHttpRequest","X-Prototype-Version":Prototype.Version,Accept:"text/javascript, text/html, application/xml, text/xml, */*"};if(this.method=="post"){e["Content-type"]=this.options.contentType+(this.options.encoding?"; charset="+this.options.encoding:"");if(this.transport.overrideMimeType&&(navigator.userAgent.match(/Gecko\/(\d{4})/)||[0,2005])[1]<2005){e.Connection="close"}}if(typeof this.options.requestHeaders=="object"){var c=this.options.requestHeaders;if(Object.isFunction(c.push)){for(var b=0,d=c.length;b<d;b+=2){e[c[b]]=c[b+1]}}else{$H(c).each(function(f){e[f.key]=f.value})}}for(var a in e){this.transport.setRequestHeader(a,e[a])}},success:function(){var a=this.getStatus();return !a||(a>=200&&a<300)},getStatus:function(){try{return this.transport.status||0}catch(a){return 0}},respondToReadyState:function(a){var c=Ajax.Request.Events[a],b=new Ajax.Response(this);if(c=="Complete"){try{this._complete=true;(this.options["on"+b.status]||this.options["on"+(this.success()?"Success":"Failure")]||Prototype.emptyFunction)(b,b.headerJSON)}catch(d){this.dispatchException(d)}var f=b.getHeader("Content-type");if(this.options.evalJS=="force"||(this.options.evalJS&&this.isSameOrigin()&&f&&f.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s*$/i))){this.evalResponse()}}try{(this.options["on"+c]||Prototype.emptyFunction)(b,b.headerJSON);Ajax.Responders.dispatch("on"+c,this,b,b.headerJSON)}catch(d){this.dispatchException(d)}if(c=="Complete"){this.transport.onreadystatechange=Prototype.emptyFunction}},isSameOrigin:function(){var a=this.url.match(/^\s*https?:\/\/[^\/]*/);return !a||(a[0]=="#{protocol}//#{domain}#{port}".interpolate({protocol:location.protocol,domain:document.domain,port:location.port?":"+location.port:""}))},getHeader:function(a){try{return this.transport.getResponseHeader(a)||null}catch(b){return null}},evalResponse:function(){try{return eval((this.transport.responseText||"").unfilterJSON())}catch(e){this.dispatchException(e)}},dispatchException:function(a){(this.options.onException||Prototype.emptyFunction)(this,a);Ajax.Responders.dispatch("onException",this,a)}});Ajax.Request.Events=["Uninitialized","Loading","Loaded","Interactive","Complete"];Ajax.Response=Class.create({initialize:function(c){this.request=c;var d=this.transport=c.transport,a=this.readyState=d.readyState;if((a>2&&!Prototype.Browser.IE)||a==4){this.status=this.getStatus();this.statusText=this.getStatusText();this.responseText=String.interpret(d.responseText);this.headerJSON=this._getHeaderJSON()}if(a==4){var b=d.responseXML;this.responseXML=Object.isUndefined(b)?null:b;this.responseJSON=this._getResponseJSON()}},status:0,statusText:"",getStatus:Ajax.Request.prototype.getStatus,getStatusText:function(){try{return this.transport.statusText||""}catch(a){return""}},getHeader:Ajax.Request.prototype.getHeader,getAllHeaders:function(){try{return this.getAllResponseHeaders()}catch(a){return null}},getResponseHeader:function(a){return this.transport.getResponseHeader(a)},getAllResponseHeaders:function(){return this.transport.getAllResponseHeaders()},_getHeaderJSON:function(){var a=this.getHeader("X-JSON");if(!a){return null}a=decodeURIComponent(escape(a));try{return a.evalJSON(this.request.options.sanitizeJSON||!this.request.isSameOrigin())}catch(b){this.request.dispatchException(b)}},_getResponseJSON:function(){var a=this.request.options;if(!a.evalJSON||(a.evalJSON!="force"&&!(this.getHeader("Content-type")||"").include("application/json"))||this.responseText.blank()){return null}try{return this.responseText.evalJSON(a.sanitizeJSON||!this.request.isSameOrigin())}catch(b){this.request.dispatchException(b)}}});Ajax.Updater=Class.create(Ajax.Request,{initialize:function($super,a,c,b){this.container={success:(a.success||a),failure:(a.failure||(a.success?null:a))};b=Object.clone(b);var d=b.onComplete;b.onComplete=(function(e,f){this.updateContent(e.responseText);if(Object.isFunction(d)){d(e,f)}}).bind(this);$super(c,b)},updateContent:function(d){var c=this.container[this.success()?"success":"failure"],a=this.options;if(!a.evalScripts){d=d.stripScripts()}if(c=$(c)){if(a.insertion){if(Object.isString(a.insertion)){var b={};b[a.insertion]=d;c.insert(b)}else{a.insertion(c,d)}}else{c.update(d)}}}});Ajax.PeriodicalUpdater=Class.create(Ajax.Base,{initialize:function($super,a,c,b){$super(b);this.onComplete=this.options.onComplete;this.frequency=(this.options.frequency||2);this.decay=(this.options.decay||1);this.updater={};this.container=a;this.url=c;this.start()},start:function(){this.options.onComplete=this.updateComplete.bind(this);this.onTimerEvent()},stop:function(){this.updater.options.onComplete=undefined;clearTimeout(this.timer);(this.onComplete||Prototype.emptyFunction).apply(this,arguments)},updateComplete:function(a){if(this.options.decay){this.decay=(a.responseText==this.lastText?this.decay*this.options.decay:1);this.lastText=a.responseText}this.timer=this.onTimerEvent.bind(this).delay(this.decay*this.frequency)},onTimerEvent:function(){this.updater=new Ajax.Updater(this.container,this.url,this.options)}});function $(b){if(arguments.length>1){for(var a=0,d=[],c=arguments.length;a<c;a++){d.push($(arguments[a]))}return d}if(Object.isString(b)){b=document.getElementById(b)}return Element.extend(b)}if(Prototype.BrowserFeatures.XPath){document._getElementsByXPath=function(f,a){var c=[];var e=document.evaluate(f,$(a)||document,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);for(var b=0,d=e.snapshotLength;b<d;b++){c.push(Element.extend(e.snapshotItem(b)))}return c}}if(!window.Node){var Node={}}if(!Node.ELEMENT_NODE){Object.extend(Node,{ELEMENT_NODE:1,ATTRIBUTE_NODE:2,TEXT_NODE:3,CDATA_SECTION_NODE:4,ENTITY_REFERENCE_NODE:5,ENTITY_NODE:6,PROCESSING_INSTRUCTION_NODE:7,COMMENT_NODE:8,DOCUMENT_NODE:9,DOCUMENT_TYPE_NODE:10,DOCUMENT_FRAGMENT_NODE:11,NOTATION_NODE:12})}(function(c){var b=(function(){var f=document.createElement("form");var e=document.createElement("input");var d=document.documentElement;e.setAttribute("name","test");f.appendChild(e);d.appendChild(f);var g=f.elements?(typeof f.elements.test=="undefined"):null;d.removeChild(f);f=e=null;return g})();var a=c.Element;c.Element=function(f,e){e=e||{};f=f.toLowerCase();var d=Element.cache||{};if(b&&e.name){f="<"+f+' name="'+e.name+'">';delete e.name;return Element.writeAttribute(document.createElement(f),e)}if(!d[f]){d[f]=Element.extend(document.createElement(f))}return Element.writeAttribute(d[f].cloneNode(false),e)};Object.extend(c.Element,a||{});if(a){c.Element.prototype=a.prototype}})(this);Element.cache={};Element.idCounter=1;Element.Methods={visible:function(a){return $(a).style.display!="none"},toggle:function(a){a=$(a);Element[Element.visible(a)?"hide":"show"](a);return a},hide:function(a){a=$(a);a.style.display="none";return a},show:function(a){a=$(a);a.style.display="";return a},remove:function(a){a=$(a);a.parentNode.removeChild(a);return a},update:(function(){var b=(function(){var e=document.createElement("select"),f=true;e.innerHTML='<option value="test">test</option>';if(e.options&&e.options[0]){f=e.options[0].nodeName.toUpperCase()!=="OPTION"}e=null;return f})();var a=(function(){try{var f=document.createElement("table");if(f&&f.tBodies){f.innerHTML="<tbody><tr><td>test</td></tr></tbody>";var h=typeof f.tBodies[0]=="undefined";f=null;return h}}catch(g){return true}})();var d=(function(){var f=document.createElement("script"),h=false;try{f.appendChild(document.createTextNode(""));h=!f.firstChild||f.firstChild&&f.firstChild.nodeType!==3}catch(g){h=true}f=null;return h})();function c(f,g){f=$(f);if(g&&g.toElement){g=g.toElement()}if(Object.isElement(g)){return f.update().insert(g)}g=Object.toHTML(g);var e=f.tagName.toUpperCase();if(e==="SCRIPT"&&d){f.text=g;return f}if(b||a){if(e in Element._insertionTranslations.tags){while(f.firstChild){f.removeChild(f.firstChild)}Element._getContentFromAnonymousElement(e,g.stripScripts()).each(function(h){f.appendChild(h)})}else{f.innerHTML=g.stripScripts()}}else{f.innerHTML=g.stripScripts()}g.evalScripts.bind(g).defer();return f}return c})(),replace:function(b,c){b=$(b);if(c&&c.toElement){c=c.toElement()}else{if(!Object.isElement(c)){c=Object.toHTML(c);var a=b.ownerDocument.createRange();a.selectNode(b);c.evalScripts.bind(c).defer();c=a.createContextualFragment(c.stripScripts())}}b.parentNode.replaceChild(c,b);return b},insert:function(c,e){c=$(c);if(Object.isString(e)||Object.isNumber(e)||Object.isElement(e)||(e&&(e.toElement||e.toHTML))){e={bottom:e}}var d,f,b,g;for(var a in e){d=e[a];a=a.toLowerCase();f=Element._insertionTranslations[a];if(d&&d.toElement){d=d.toElement()}if(Object.isElement(d)){f(c,d);continue}d=Object.toHTML(d);b=((a=="before"||a=="after")?c.parentNode:c).tagName.toUpperCase();g=Element._getContentFromAnonymousElement(b,d.stripScripts());if(a=="top"||a=="after"){g.reverse()}g.each(f.curry(c));d.evalScripts.bind(d).defer()}return c},wrap:function(b,c,a){b=$(b);if(Object.isElement(c)){$(c).writeAttribute(a||{})}else{if(Object.isString(c)){c=new Element(c,a)}else{c=new Element("div",c)}}if(b.parentNode){b.parentNode.replaceChild(c,b)}c.appendChild(b);return c},inspect:function(b){b=$(b);var a="<"+b.tagName.toLowerCase();$H({id:"id",className:"class"}).each(function(f){var e=f.first(),c=f.last();var d=(b[e]||"").toString();if(d){a+=" "+c+"="+d.inspect(true)}});return a+">"},recursivelyCollect:function(a,c){a=$(a);var b=[];while(a=a[c]){if(a.nodeType==1){b.push(Element.extend(a))}}return b},ancestors:function(a){return Element.recursivelyCollect(a,"parentNode")},descendants:function(a){return Element.select(a,"*")},firstDescendant:function(a){a=$(a).firstChild;while(a&&a.nodeType!=1){a=a.nextSibling}return $(a)},immediateDescendants:function(a){if(!(a=$(a).firstChild)){return[]}while(a&&a.nodeType!=1){a=a.nextSibling}if(a){return[a].concat($(a).nextSiblings())}return[]},previousSiblings:function(a){return Element.recursivelyCollect(a,"previousSibling")},nextSiblings:function(a){return Element.recursivelyCollect(a,"nextSibling")},siblings:function(a){a=$(a);return Element.previousSiblings(a).reverse().concat(Element.nextSiblings(a))},match:function(b,a){if(Object.isString(a)){a=new Selector(a)}return a.match($(b))},up:function(b,d,a){b=$(b);if(arguments.length==1){return $(b.parentNode)}var c=Element.ancestors(b);return Object.isNumber(d)?c[d]:Selector.findElement(c,d,a)},down:function(b,c,a){b=$(b);if(arguments.length==1){return Element.firstDescendant(b)}return Object.isNumber(c)?Element.descendants(b)[c]:Element.select(b,c)[a||0]},previous:function(b,d,a){b=$(b);if(arguments.length==1){return $(Selector.handlers.previousElementSibling(b))}var c=Element.previousSiblings(b);return Object.isNumber(d)?c[d]:Selector.findElement(c,d,a)},next:function(c,d,b){c=$(c);if(arguments.length==1){return $(Selector.handlers.nextElementSibling(c))}var a=Element.nextSiblings(c);return Object.isNumber(d)?a[d]:Selector.findElement(a,d,b)},select:function(b){var a=Array.prototype.slice.call(arguments,1);return Selector.findChildElements(b,a)},adjacent:function(b){var a=Array.prototype.slice.call(arguments,1);return Selector.findChildElements(b.parentNode,a).without(b)},identify:function(a){a=$(a);var b=Element.readAttribute(a,"id");if(b){return b}do{b="anonymous_element_"+Element.idCounter++}while($(b));Element.writeAttribute(a,"id",b);return b},readAttribute:function(c,a){c=$(c);if(Prototype.Browser.IE){var b=Element._attributeTranslations.read;if(b.values[a]){return b.values[a](c,a)}if(b.names[a]){a=b.names[a]}if(a.include(":")){return(!c.attributes||!c.attributes[a])?null:c.attributes[a].value}}return c.getAttribute(a)},writeAttribute:function(e,c,f){e=$(e);var b={},d=Element._attributeTranslations.write;if(typeof c=="object"){b=c}else{b[c]=Object.isUndefined(f)?true:f}for(var a in b){c=d.names[a]||a;f=b[a];if(d.values[a]){c=d.values[a](e,f)}if(f===false||f===null){e.removeAttribute(c)}else{if(f===true){e.setAttribute(c,c)}else{e.setAttribute(c,f)}}}return e},getHeight:function(a){return Element.getDimensions(a).height},getWidth:function(a){return Element.getDimensions(a).width},classNames:function(a){return new Element.ClassNames(a)},hasClassName:function(a,b){if(!(a=$(a))){return}var c=a.className;return(c.length>0&&(c==b||new RegExp("(^|\\s)"+b+"(\\s|$)").test(c)))},addClassName:function(a,b){if(!(a=$(a))){return}if(!Element.hasClassName(a,b)){a.className+=(a.className?" ":"")+b}return a},removeClassName:function(a,b){if(!(a=$(a))){return}a.className=a.className.replace(new RegExp("(^|\\s+)"+b+"(\\s+|$)")," ").strip();return a},toggleClassName:function(a,b){if(!(a=$(a))){return}return Element[Element.hasClassName(a,b)?"removeClassName":"addClassName"](a,b)},cleanWhitespace:function(b){b=$(b);var c=b.firstChild;while(c){var a=c.nextSibling;if(c.nodeType==3&&!/\S/.test(c.nodeValue)){b.removeChild(c)}c=a}return b},empty:function(a){return $(a).innerHTML.blank()},descendantOf:function(b,a){if(!b||!a){return false}b=$(b),a=$(a);if(b.compareDocumentPosition){return(b.compareDocumentPosition(a)&8)===8}if(a.contains){return a.contains(b)&&a!==b}while(b=b.parentNode){if(b==a){return true}}return false},scrollTo:function(a){a=$(a);var b=Element.cumulativeOffset(a);window.scrollTo(b[0],b[1]);return a},getStyle:function(b,c){b=$(b);c=c=="float"?"cssFloat":c.camelize();var d=b.style[c];if(!d||d=="auto"){var a=document.defaultView.getComputedStyle(b,null);d=a?a[c]:null}if(c=="opacity"){return d?parseFloat(d):1}return d=="auto"?null:d},getOpacity:function(a){return $(a).getStyle("opacity")},setStyle:function(b,c){b=$(b);var e=b.style,a;if(Object.isString(c)){b.style.cssText+=";"+c;return c.include("opacity")?b.setOpacity(c.match(/opacity:\s*(\d?\.?\d*)/)[1]):b}for(var d in c){if(d=="opacity"){b.setOpacity(c[d])}else{e[(d=="float"||d=="cssFloat")?(Object.isUndefined(e.styleFloat)?"cssFloat":"styleFloat"):d]=c[d]}}return b},setOpacity:function(a,b){a=$(a);a.style.opacity=(b==1||b==="")?"":(b<0.00001)?0:b;return a},getDimensions:function(c){c=$(c);var g=Element.getStyle(c,"display");if(g!="none"&&g!=null){return{width:c.offsetWidth,height:c.offsetHeight}}var b=c.style;var f=b.visibility;var d=b.position;var a=b.display;b.visibility="hidden";if(d!="fixed"){b.position="absolute"}b.display="block";var h=c.clientWidth;var e=c.clientHeight;b.display=a;b.position=d;b.visibility=f;return{width:h,height:e}},makePositioned:function(a){a=$(a);var b=Element.getStyle(a,"position");if(b=="static"||!b){a._madePositioned=true;a.style.position="relative";if(Prototype.Browser.Opera){a.style.top=0;a.style.left=0}}return a},undoPositioned:function(a){a=$(a);if(a._madePositioned){a._madePositioned=undefined;a.style.position=a.style.top=a.style.left=a.style.bottom=a.style.right=""}return a},makeClipping:function(a){a=$(a);if(a._overflow){return a}a._overflow=Element.getStyle(a,"overflow")||"auto";if(a._overflow!=="hidden"){a.style.overflow="hidden"}return a},undoClipping:function(a){a=$(a);if(!a._overflow){return a}a.style.overflow=a._overflow=="auto"?"":a._overflow;a._overflow=null;return a},cumulativeOffset:function(b){var a=0,c=0;do{a+=b.offsetTop||0;c+=b.offsetLeft||0;b=b.offsetParent}while(b);return Element._returnOffset(c,a)},positionedOffset:function(b){var a=0,d=0;do{a+=b.offsetTop||0;d+=b.offsetLeft||0;b=b.offsetParent;if(b){if(b.tagName.toUpperCase()=="BODY"){break}var c=Element.getStyle(b,"position");if(c!=="static"){break}}}while(b);return Element._returnOffset(d,a)},absolutize:function(b){b=$(b);if(Element.getStyle(b,"position")=="absolute"){return b}var d=Element.positionedOffset(b);var f=d[1];var e=d[0];var c=b.clientWidth;var a=b.clientHeight;b._originalLeft=e-parseFloat(b.style.left||0);b._originalTop=f-parseFloat(b.style.top||0);b._originalWidth=b.style.width;b._originalHeight=b.style.height;b.style.position="absolute";b.style.top=f+"px";b.style.left=e+"px";b.style.width=c+"px";b.style.height=a+"px";return b},relativize:function(a){a=$(a);if(Element.getStyle(a,"position")=="relative"){return a}a.style.position="relative";var c=parseFloat(a.style.top||0)-(a._originalTop||0);var b=parseFloat(a.style.left||0)-(a._originalLeft||0);a.style.top=c+"px";a.style.left=b+"px";a.style.height=a._originalHeight;a.style.width=a._originalWidth;return a},cumulativeScrollOffset:function(b){var a=0,c=0;do{a+=b.scrollTop||0;c+=b.scrollLeft||0;b=b.parentNode}while(b);return Element._returnOffset(c,a)},getOffsetParent:function(a){if(!Prototype.Browser.IE&&a.offsetParent){return $(a.offsetParent)}if(a==document.body){return $(a)}while((a=a.parentNode)&&a!=document.body){if(Element.getStyle(a,"position")!="static"){return $(a)}}return $(document.body)},viewportOffset:function(d){var a=0,c=0;var b=d;do{a+=b.offsetTop||0;c+=b.offsetLeft||0;if(b.offsetParent==document.body&&Element.getStyle(b,"position")=="absolute"){break}}while(b=b.offsetParent);b=d;do{if(!Prototype.Browser.Opera||(b.tagName&&(b.tagName.toUpperCase()=="BODY"))){a-=b.scrollTop||0;c-=b.scrollLeft||0}}while(b=b.parentNode);return Element._returnOffset(c,a)},clonePosition:function(b,d){var a=Object.extend({setLeft:true,setTop:true,setWidth:true,setHeight:true,offsetTop:0,offsetLeft:0,offsetWidth:0,offsetHeight:0},arguments[2]||{});d=$(d);var e=Element.viewportOffset(d);b=$(b);var f=[0,0];var c=null;if(Element.getStyle(b,"position")=="absolute"){c=Element.getOffsetParent(b);f=Element.viewportOffset(c)}if(c==document.body){f[0]-=document.body.offsetLeft;f[1]-=document.body.offsetTop}if(a.setLeft){b.style.left=(e[0]-f[0]+a.offsetLeft)+"px"}if(a.setTop){b.style.top=(e[1]-f[1]+a.offsetTop)+"px"}if(a.setWidth){b.style.width=d.offsetWidth+a.offsetWidth+"px"}if(a.setHeight){b.style.height=d.offsetHeight+a.offsetHeight+"px"}return b}};Object.extend(Element.Methods,{getElementsBySelector:Element.Methods.select,childElements:Element.Methods.immediateDescendants});Element._attributeTranslations={write:{names:{className:"class",htmlFor:"for"},values:{}}};if(Prototype.Browser.Opera){Element.Methods.getStyle=Element.Methods.getStyle.wrap(function(d,b,c){switch(c){case"left":case"top":case"right":case"bottom":if(d(b,"position")==="static"){return null}case"height":case"width":if(!Element.visible(b)){return null}var e=parseInt(d(b,c),10);if(e!==b["offset"+c.capitalize()]){return e+"px"}var a;if(c==="height"){a=["border-top-width","padding-top","padding-bottom","border-bottom-width"]}else{a=["border-left-width","padding-left","padding-right","border-right-width"]}return a.inject(e,function(f,g){var h=d(b,g);return h===null?f:f-parseInt(h,10)})+"px";default:return d(b,c)}});Element.Methods.readAttribute=Element.Methods.readAttribute.wrap(function(c,a,b){if(b==="title"){return a.title}return c(a,b)})}else{if(Prototype.Browser.IE){Element.Methods.getOffsetParent=Element.Methods.getOffsetParent.wrap(function(c,b){b=$(b);try{b.offsetParent}catch(f){return $(document.body)}var a=b.getStyle("position");if(a!=="static"){return c(b)}b.setStyle({position:"relative"});var d=c(b);b.setStyle({position:a});return d});$w("positionedOffset viewportOffset").each(function(a){Element.Methods[a]=Element.Methods[a].wrap(function(f,c){c=$(c);try{c.offsetParent}catch(h){return Element._returnOffset(0,0)}var b=c.getStyle("position");if(b!=="static"){return f(c)}var d=c.getOffsetParent();if(d&&d.getStyle&&d.getStyle("position")==="fixed"){d.setStyle({zoom:1})}c.setStyle({position:"relative"});var g=f(c);c.setStyle({position:b});return g})});Element.Methods.cumulativeOffset=Element.Methods.cumulativeOffset.wrap(function(b,a){try{a.offsetParent}catch(c){return Element._returnOffset(0,0)}return b(a)});Element.Methods.getStyle=function(a,b){if(!a.getStyle){return""}b=(b=="float"||b=="cssFloat")?"styleFloat":b.camelize();var c=a.style[b];if(!c&&a.currentStyle){c=a.currentStyle[b]}if(b=="opacity"){a=Element.extend(a);if(c=(a.getStyle("filter")||"").match(/alpha\(opacity=(.*)\)/)){if(c[1]){return parseFloat(c[1])/100}}return 1}if(c=="auto"){a=Element.extend(a);if((b=="width"||b=="height")&&(a.getStyle("display")!="none")){return a["offset"+b.capitalize()]+"px"}return null}return c};Element.Methods.setOpacity=function(b,e){function f(g){return g.replace(/alpha\([^\)]*\)/gi,"")}b=$(b);var a=b.currentStyle;if((a&&!a.hasLayout)||(!a&&b.style.zoom=="normal")){b.style.zoom=1}var d=b.getStyle("filter"),c=b.style;if(e==1||e===""){(d=f(d))?c.filter=d:c.removeAttribute("filter");return b}else{if(e<0.00001){e=0}}c.filter=f(d)+"alpha(opacity="+(e*100)+")";return b};Element._attributeTranslations=(function(){var b="className";var a="for";var c=document.createElement("div");c.setAttribute(b,"x");if(c.className!=="x"){c.setAttribute("class","x");if(c.className==="x"){b="class"}}c=null;c=document.createElement("label");c.setAttribute(a,"x");if(c.htmlFor!=="x"){c.setAttribute("htmlFor","x");if(c.htmlFor==="x"){a="htmlFor"}}c=null;return{read:{names:{"class":b,className:b,"for":a,htmlFor:a},values:{_getAttr:function(d,e){return d.getAttribute(e)},_getAttr2:function(d,e){return d.getAttribute(e,2)},_getAttrNode:function(d,f){var e=d.getAttributeNode(f);return e?e.value:""},_getEv:(function(){var d=document.createElement("div");d.onclick=Prototype.emptyFunction;var g=d.getAttribute("onclick");var e;if(String(g).indexOf("{")>-1){e=function(f,h){h=f.getAttribute(h);if(!h){return null}h=h.toString();h=h.split("{")[1];h=h.split("}")[0];return h.strip()}}else{if(g===""){e=function(f,h){h=f.getAttribute(h);if(!h){return null}return h.strip()}}}d=null;return e})(),_flag:function(d,e){return $(d).hasAttribute(e)?e:null},style:function(d){return d.style.cssText.toLowerCase()},title:function(d){return d.title}}}}})();Element._attributeTranslations.write={names:Object.extend({cellpadding:"cellPadding",cellspacing:"cellSpacing"},Element._attributeTranslations.read.names),values:{checked:function(a,b){a.checked=!!b},style:function(a,b){a.style.cssText=b?b:""}}};Element._attributeTranslations.has={};$w("colSpan rowSpan vAlign dateTime accessKey tabIndex encType maxLength readOnly longDesc frameBorder").each(function(a){Element._attributeTranslations.write.names[a.toLowerCase()]=a;Element._attributeTranslations.has[a.toLowerCase()]=a});(function(a){Object.extend(a,{href:a._getAttr2,src:a._getAttr2,type:a._getAttr,action:a._getAttrNode,disabled:a._flag,checked:a._flag,readonly:a._flag,multiple:a._flag,onload:a._getEv,onunload:a._getEv,onclick:a._getEv,ondblclick:a._getEv,onmousedown:a._getEv,onmouseup:a._getEv,onmouseover:a._getEv,onmousemove:a._getEv,onmouseout:a._getEv,onfocus:a._getEv,onblur:a._getEv,onkeypress:a._getEv,onkeydown:a._getEv,onkeyup:a._getEv,onsubmit:a._getEv,onreset:a._getEv,onselect:a._getEv,onchange:a._getEv})})(Element._attributeTranslations.read.values);if(Prototype.BrowserFeatures.ElementExtensions){(function(){function a(e){var b=e.getElementsByTagName("*"),d=[];for(var c=0,f;f=b[c];c++){if(f.tagName!=="!"){d.push(f)}}return d}Element.Methods.down=function(c,d,b){c=$(c);if(arguments.length==1){return c.firstDescendant()}return Object.isNumber(d)?a(c)[d]:Element.select(c,d)[b||0]}})()}}else{if(Prototype.Browser.Gecko&&/rv:1\.8\.0/.test(navigator.userAgent)){Element.Methods.setOpacity=function(a,b){a=$(a);a.style.opacity=(b==1)?0.999999:(b==="")?"":(b<0.00001)?0:b;return a}}else{if(Prototype.Browser.WebKit){Element.Methods.setOpacity=function(a,b){a=$(a);a.style.opacity=(b==1||b==="")?"":(b<0.00001)?0:b;if(b==1){if(a.tagName.toUpperCase()=="IMG"&&a.width){a.width++;a.width--}else{try{var d=document.createTextNode(" ");a.appendChild(d);a.removeChild(d)}catch(c){}}}return a};Element.Methods.cumulativeOffset=function(b){var a=0,c=0;do{a+=b.offsetTop||0;c+=b.offsetLeft||0;if(b.offsetParent==document.body){if(Element.getStyle(b,"position")=="absolute"){break}}b=b.offsetParent}while(b);return Element._returnOffset(c,a)}}}}}if("outerHTML" in document.documentElement){Element.Methods.replace=function(c,e){c=$(c);if(e&&e.toElement){e=e.toElement()}if(Object.isElement(e)){c.parentNode.replaceChild(e,c);return c}e=Object.toHTML(e);var d=c.parentNode,b=d.tagName.toUpperCase();if(Element._insertionTranslations.tags[b]){var f=c.next();var a=Element._getContentFromAnonymousElement(b,e.stripScripts());d.removeChild(c);if(f){a.each(function(g){d.insertBefore(g,f)})}else{a.each(function(g){d.appendChild(g)})}}else{c.outerHTML=e.stripScripts()}e.evalScripts.bind(e).defer();return c}}Element._returnOffset=function(b,c){var a=[b,c];a.left=b;a.top=c;return a};Element._getContentFromAnonymousElement=function(c,b){var d=new Element("div"),a=Element._insertionTranslations.tags[c];if(a){d.innerHTML=a[0]+b+a[1];a[2].times(function(){d=d.firstChild})}else{d.innerHTML=b}return $A(d.childNodes)};Element._insertionTranslations={before:function(a,b){a.parentNode.insertBefore(b,a)},top:function(a,b){a.insertBefore(b,a.firstChild)},bottom:function(a,b){a.appendChild(b)},after:function(a,b){a.parentNode.insertBefore(b,a.nextSibling)},tags:{TABLE:["<table>","</table>",1],TBODY:["<table><tbody>","</tbody></table>",2],TR:["<table><tbody><tr>","</tr></tbody></table>",3],TD:["<table><tbody><tr><td>","</td></tr></tbody></table>",4],SELECT:["<select>","</select>",1]}};(function(){var a=Element._insertionTranslations.tags;Object.extend(a,{THEAD:a.TBODY,TFOOT:a.TBODY,TH:a.TD})})();Element.Methods.Simulated={hasAttribute:function(a,c){c=Element._attributeTranslations.has[c]||c;var b=$(a).getAttributeNode(c);return !!(b&&b.specified)}};Element.Methods.ByTag={};Object.extend(Element,Element.Methods);(function(a){if(!Prototype.BrowserFeatures.ElementExtensions&&a.__proto__){window.HTMLElement={};window.HTMLElement.prototype=a.__proto__;Prototype.BrowserFeatures.ElementExtensions=true}a=null})(document.createElement("div"));Element.extend=(function(){function c(g){if(typeof window.Element!="undefined"){var j=window.Element.prototype;if(j){var l="_"+(Math.random()+"").slice(2);var h=document.createElement(g);j[l]="x";var k=(h[l]!=="x");delete j[l];h=null;return k}}return false}function b(h,g){for(var k in g){var j=g[k];if(typeof j==="function"&&!(k in h)){h[k]=j._methodized||j.methodize()}}}var d=c("object");if(Prototype.BrowserFeatures.SpecificElementExtensions){if(d){return function(h){if(h&&typeof h._extendedByPrototype=="undefined"){var g=h.tagName;if(g&&(/^(?:object|applet|embed)$/i.test(g))){b(h,Element.Methods);b(h,Element.Methods.Simulated);b(h,Element.Methods.ByTag[g.toUpperCase()])}}return h}}return Prototype.K}var a={},e=Element.Methods.ByTag;var f=Object.extend(function(j){if(!j||typeof j._extendedByPrototype!="undefined"||j.nodeType!=1||j==window){return j}var g=Object.clone(a),h=j.tagName.toUpperCase();if(e[h]){Object.extend(g,e[h])}b(j,g);j._extendedByPrototype=Prototype.emptyFunction;return j},{refresh:function(){if(!Prototype.BrowserFeatures.ElementExtensions){Object.extend(a,Element.Methods);Object.extend(a,Element.Methods.Simulated)}}});f.refresh();return f})();Element.hasAttribute=function(a,b){if(a.hasAttribute){return a.hasAttribute(b)}return Element.Methods.Simulated.hasAttribute(a,b)};Element.addMethods=function(c){var j=Prototype.BrowserFeatures,d=Element.Methods.ByTag;if(!c){Object.extend(Form,Form.Methods);Object.extend(Form.Element,Form.Element.Methods);Object.extend(Element.Methods.ByTag,{FORM:Object.clone(Form.Methods),INPUT:Object.clone(Form.Element.Methods),SELECT:Object.clone(Form.Element.Methods),TEXTAREA:Object.clone(Form.Element.Methods)})}if(arguments.length==2){var b=c;c=arguments[1]}if(!b){Object.extend(Element.Methods,c||{})}else{if(Object.isArray(b)){b.each(g)}else{g(b)}}function g(l){l=l.toUpperCase();if(!Element.Methods.ByTag[l]){Element.Methods.ByTag[l]={}}Object.extend(Element.Methods.ByTag[l],c)}function a(n,m,l){l=l||false;for(var p in n){var o=n[p];if(!Object.isFunction(o)){continue}if(!l||!(p in m)){m[p]=o.methodize()}}}function e(o){var l;var n={OPTGROUP:"OptGroup",TEXTAREA:"TextArea",P:"Paragraph",FIELDSET:"FieldSet",UL:"UList",OL:"OList",DL:"DList",DIR:"Directory",H1:"Heading",H2:"Heading",H3:"Heading",H4:"Heading",H5:"Heading",H6:"Heading",Q:"Quote",INS:"Mod",DEL:"Mod",A:"Anchor",IMG:"Image",CAPTION:"TableCaption",COL:"TableCol",COLGROUP:"TableCol",THEAD:"TableSection",TFOOT:"TableSection",TBODY:"TableSection",TR:"TableRow",TH:"TableCell",TD:"TableCell",FRAMESET:"FrameSet",IFRAME:"IFrame"};if(n[o]){l="HTML"+n[o]+"Element"}if(window[l]){return window[l]}l="HTML"+o+"Element";if(window[l]){return window[l]}l="HTML"+o.capitalize()+"Element";if(window[l]){return window[l]}var m=document.createElement(o);var p=m.__proto__||m.constructor.prototype;m=null;return p}var h=window.HTMLElement?HTMLElement.prototype:Element.prototype;if(j.ElementExtensions){a(Element.Methods,h);a(Element.Methods.Simulated,h,true)}if(j.SpecificElementExtensions){for(var k in Element.Methods.ByTag){var f=e(k);if(Object.isUndefined(f)){continue}a(d[k],f.prototype)}}Object.extend(Element,Element.Methods);delete Element.ByTag;if(Element.extend.refresh){Element.extend.refresh()}Element.cache={}};document.viewport={getDimensions:function(){return{width:this.getWidth(),height:this.getHeight()}},getScrollOffsets:function(){return Element._returnOffset(window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft,window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop)}};(function(b){var g=Prototype.Browser,e=document,c,d={};function a(){if(g.WebKit&&!e.evaluate){return document}if(g.Opera&&window.parseFloat(window.opera.version())<9.5){return document.body}return document.documentElement}function f(h){if(!c){c=a()}d[h]="client"+h;b["get"+h]=function(){return c[d[h]]};return b["get"+h]()}b.getWidth=f.curry("Width");b.getHeight=f.curry("Height")})(document.viewport);Element.Storage={UID:1};Element.addMethods({getStorage:function(b){if(!(b=$(b))){return}var a;if(b===window){a=0}else{if(typeof b._prototypeUID==="undefined"){b._prototypeUID=[Element.Storage.UID++]}a=b._prototypeUID[0]}if(!Element.Storage[a]){Element.Storage[a]=$H()}return Element.Storage[a]},store:function(b,a,c){if(!(b=$(b))){return}if(arguments.length===2){Element.getStorage(b).update(a)}else{Element.getStorage(b).set(a,c)}return b},retrieve:function(c,b,a){if(!(c=$(c))){return}var e=Element.getStorage(c),d=e.get(b);if(Object.isUndefined(d)){e.set(b,a);d=a}return d},clone:function(c,a){if(!(c=$(c))){return}var e=c.cloneNode(a);e._prototypeUID=void 0;if(a){var d=Element.select(e,"*"),b=d.length;while(b--){d[b]._prototypeUID=void 0}}return Element.extend(e)}});var Selector=Class.create({initialize:function(a){this.expression=a.strip();if(this.shouldUseSelectorsAPI()){this.mode="selectorsAPI"}else{if(this.shouldUseXPath()){this.mode="xpath";this.compileXPathMatcher()}else{this.mode="normal";this.compileMatcher()}}},shouldUseXPath:(function(){var a=(function(){var e=false;if(document.evaluate&&window.XPathResult){var d=document.createElement("div");d.innerHTML="<ul><li></li></ul><div><ul><li></li></ul></div>";var c=".//*[local-name()='ul' or local-name()='UL']//*[local-name()='li' or local-name()='LI']";var b=document.evaluate(c,d,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);e=(b.snapshotLength!==2);d=null}return e})();return function(){if(!Prototype.BrowserFeatures.XPath){return false}var b=this.expression;if(Prototype.Browser.WebKit&&(b.include("-of-type")||b.include(":empty"))){return false}if((/(\[[\w-]*?:|:checked)/).test(b)){return false}if(a){return false}return true}})(),shouldUseSelectorsAPI:function(){if(!Prototype.BrowserFeatures.SelectorsAPI){return false}if(Selector.CASE_INSENSITIVE_CLASS_NAMES){return false}if(!Selector._div){Selector._div=new Element("div")}try{Selector._div.querySelector(this.expression)}catch(a){return false}return true},compileMatcher:function(){var e=this.expression,ps=Selector.patterns,h=Selector.handlers,c=Selector.criteria,le,p,m,len=ps.length,name;if(Selector._cache[e]){this.matcher=Selector._cache[e];return}this.matcher=["this.matcher = function(root) {","var r = root, h = Selector.handlers, c = false, n;"];while(e&&le!=e&&(/\S/).test(e)){le=e;for(var i=0;i<len;i++){p=ps[i].re;name=ps[i].name;if(m=e.match(p)){this.matcher.push(Object.isFunction(c[name])?c[name](m):new Template(c[name]).evaluate(m));e=e.replace(m[0],"");break}}}this.matcher.push("return h.unique(n);\n}");eval(this.matcher.join("\n"));Selector._cache[this.expression]=this.matcher},compileXPathMatcher:function(){var h=this.expression,j=Selector.patterns,c=Selector.xpath,g,b,a=j.length,d;if(Selector._cache[h]){this.xpath=Selector._cache[h];return}this.matcher=[".//*"];while(h&&g!=h&&(/\S/).test(h)){g=h;for(var f=0;f<a;f++){d=j[f].name;if(b=h.match(j[f].re)){this.matcher.push(Object.isFunction(c[d])?c[d](b):new Template(c[d]).evaluate(b));h=h.replace(b[0],"");break}}}this.xpath=this.matcher.join("");Selector._cache[this.expression]=this.xpath},findElements:function(a){a=a||document;var c=this.expression,b;switch(this.mode){case"selectorsAPI":if(a!==document){var d=a.id,f=$(a).identify();f=f.replace(/([\.:])/g,"\\$1");c="#"+f+" "+c}b=$A(a.querySelectorAll(c)).map(Element.extend);a.id=d;return b;case"xpath":return document._getElementsByXPath(this.xpath,a);default:return this.matcher(a)}},match:function(k){this.tokens=[];var q=this.expression,a=Selector.patterns,f=Selector.assertions;var b,d,g,o=a.length,c;while(q&&b!==q&&(/\S/).test(q)){b=q;for(var j=0;j<o;j++){d=a[j].re;c=a[j].name;if(g=q.match(d)){if(f[c]){this.tokens.push([c,Object.clone(g)]);q=q.replace(g[0],"")}else{return this.findElements(document).include(k)}}}}var n=true,c,l;for(var j=0,h;h=this.tokens[j];j++){c=h[0],l=h[1];if(!Selector.assertions[c](k,l)){n=false;break}}return n},toString:function(){return this.expression},inspect:function(){return"#<Selector:"+this.expression.inspect()+">"}});if(Prototype.BrowserFeatures.SelectorsAPI&&document.compatMode==="BackCompat"){Selector.CASE_INSENSITIVE_CLASS_NAMES=(function(){var c=document.createElement("div"),a=document.createElement("span");c.id="prototype_test_id";a.className="Test";c.appendChild(a);var b=(c.querySelector("#prototype_test_id .test")!==null);c=a=null;return b})()}Object.extend(Selector,{_cache:{},xpath:{descendant:"//*",child:"/*",adjacent:"/following-sibling::*[1]",laterSibling:"/following-sibling::*",tagName:function(a){if(a[1]=="*"){return""}return"[local-name()='"+a[1].toLowerCase()+"' or local-name()='"+a[1].toUpperCase()+"']"},className:"[contains(concat(' ', @class, ' '), ' #{1} ')]",id:"[@id='#{1}']",attrPresence:function(a){a[1]=a[1].toLowerCase();return new Template("[@#{1}]").evaluate(a)},attr:function(a){a[1]=a[1].toLowerCase();a[3]=a[5]||a[6];return new Template(Selector.xpath.operators[a[2]]).evaluate(a)},pseudo:function(a){var b=Selector.xpath.pseudos[a[1]];if(!b){return""}if(Object.isFunction(b)){return b(a)}return new Template(Selector.xpath.pseudos[a[1]]).evaluate(a)},operators:{"=":"[@#{1}='#{3}']","!=":"[@#{1}!='#{3}']","^=":"[starts-with(@#{1}, '#{3}')]","$=":"[substring(@#{1}, (string-length(@#{1}) - string-length('#{3}') + 1))='#{3}']","*=":"[contains(@#{1}, '#{3}')]","~=":"[contains(concat(' ', @#{1}, ' '), ' #{3} ')]","|=":"[contains(concat('-', @#{1}, '-'), '-#{3}-')]"},pseudos:{"first-child":"[not(preceding-sibling::*)]","last-child":"[not(following-sibling::*)]","only-child":"[not(preceding-sibling::* or following-sibling::*)]",empty:"[count(*) = 0 and (count(text()) = 0)]",checked:"[@checked]",disabled:"[(@disabled) and (@type!='hidden')]",enabled:"[not(@disabled) and (@type!='hidden')]",not:function(f){var j=f[6],c=Selector.patterns,k=Selector.xpath,a,l,h=c.length,b;var d=[];while(j&&a!=j&&(/\S/).test(j)){a=j;for(var g=0;g<h;g++){b=c[g].name;if(f=j.match(c[g].re)){l=Object.isFunction(k[b])?k[b](f):new Template(k[b]).evaluate(f);d.push("("+l.substring(1,l.length-1)+")");j=j.replace(f[0],"");break}}}return"[not("+d.join(" and ")+")]"},"nth-child":function(a){return Selector.xpath.pseudos.nth("(count(./preceding-sibling::*) + 1) ",a)},"nth-last-child":function(a){return Selector.xpath.pseudos.nth("(count(./following-sibling::*) + 1) ",a)},"nth-of-type":function(a){return Selector.xpath.pseudos.nth("position() ",a)},"nth-last-of-type":function(a){return Selector.xpath.pseudos.nth("(last() + 1 - position()) ",a)},"first-of-type":function(a){a[6]="1";return Selector.xpath.pseudos["nth-of-type"](a)},"last-of-type":function(a){a[6]="1";return Selector.xpath.pseudos["nth-last-of-type"](a)},"only-of-type":function(a){var b=Selector.xpath.pseudos;return b["first-of-type"](a)+b["last-of-type"](a)},nth:function(g,e){var h,j=e[6],d;if(j=="even"){j="2n+0"}if(j=="odd"){j="2n+1"}if(h=j.match(/^(\d+)$/)){return"["+g+"= "+h[1]+"]"}if(h=j.match(/^(-?\d*)?n(([+-])(\d+))?/)){if(h[1]=="-"){h[1]=-1}var f=h[1]?Number(h[1]):1;var c=h[2]?Number(h[2]):0;d="[((#{fragment} - #{b}) mod #{a} = 0) and ((#{fragment} - #{b}) div #{a} >= 0)]";return new Template(d).evaluate({fragment:g,a:f,b:c})}}}},criteria:{tagName:'n = h.tagName(n, r, "#{1}", c);      c = false;',className:'n = h.className(n, r, "#{1}", c);    c = false;',id:'n = h.id(n, r, "#{1}", c);           c = false;',attrPresence:'n = h.attrPresence(n, r, "#{1}", c); c = false;',attr:function(a){a[3]=(a[5]||a[6]);return new Template('n = h.attr(n, r, "#{1}", "#{3}", "#{2}", c); c = false;').evaluate(a)},pseudo:function(a){if(a[6]){a[6]=a[6].replace(/"/g,'\\"')}return new Template('n = h.pseudo(n, "#{1}", "#{6}", r, c); c = false;').evaluate(a)},descendant:'c = "descendant";',child:'c = "child";',adjacent:'c = "adjacent";',laterSibling:'c = "laterSibling";'},patterns:[{name:"laterSibling",re:/^\s*~\s*/},{name:"child",re:/^\s*>\s*/},{name:"adjacent",re:/^\s*\+\s*/},{name:"descendant",re:/^\s/},{name:"tagName",re:/^\s*(\*|[\w\-]+)(\b|$)?/},{name:"id",re:/^#([\w\-\*]+)(\b|$)/},{name:"className",re:/^\.([\w\-\*]+)(\b|$)/},{name:"pseudo",re:/^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis)abled|not)(\((.*?)\))?(\b|$|(?=\s|[:+~>]))/},{name:"attrPresence",re:/^\[((?:[\w-]+:)?[\w-]+)\]/},{name:"attr",re:/\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=)\s*((['"])([^\4]*?)\4|([^'"][^\]]*?)))?\]/}],assertions:{tagName:function(a,b){return b[1].toUpperCase()==a.tagName.toUpperCase()},className:function(a,b){return Element.hasClassName(a,b[1])},id:function(a,b){return a.id===b[1]},attrPresence:function(a,b){return Element.hasAttribute(a,b[1])},attr:function(b,c){var a=Element.readAttribute(b,c[1]);return a&&Selector.operators[c[2]](a,c[5]||c[6])}},handlers:{concat:function(d,c){for(var e=0,f;f=c[e];e++){d.push(f)}return d},mark:function(a){var d=Prototype.emptyFunction;for(var b=0,c;c=a[b];b++){c._countedByPrototype=d}return a},unmark:(function(){var a=(function(){var b=document.createElement("div"),e=false,d="_countedByPrototype",c="x";b[d]=c;e=(b.getAttribute(d)===c);b=null;return e})();return a?function(b){for(var c=0,d;d=b[c];c++){d.removeAttribute("_countedByPrototype")}return b}:function(b){for(var c=0,d;d=b[c];c++){d._countedByPrototype=void 0}return b}})(),index:function(a,d,g){a._countedByPrototype=Prototype.emptyFunction;if(d){for(var b=a.childNodes,e=b.length-1,c=1;e>=0;e--){var f=b[e];if(f.nodeType==1&&(!g||f._countedByPrototype)){f.nodeIndex=c++}}}else{for(var e=0,c=1,b=a.childNodes;f=b[e];e++){if(f.nodeType==1&&(!g||f._countedByPrototype)){f.nodeIndex=c++}}}},unique:function(b){if(b.length==0){return b}var d=[],e;for(var c=0,a=b.length;c<a;c++){if(typeof(e=b[c])._countedByPrototype=="undefined"){e._countedByPrototype=Prototype.emptyFunction;d.push(Element.extend(e))}}return Selector.handlers.unmark(d)},descendant:function(a){var d=Selector.handlers;for(var c=0,b=[],e;e=a[c];c++){d.concat(b,e.getElementsByTagName("*"))}return b},child:function(a){var e=Selector.handlers;for(var d=0,c=[],f;f=a[d];d++){for(var b=0,g;g=f.childNodes[b];b++){if(g.nodeType==1&&g.tagName!="!"){c.push(g)}}}return c},adjacent:function(a){for(var c=0,b=[],e;e=a[c];c++){var d=this.nextElementSibling(e);if(d){b.push(d)}}return b},laterSibling:function(a){var d=Selector.handlers;for(var c=0,b=[],e;e=a[c];c++){d.concat(b,Element.nextSiblings(e))}return b},nextElementSibling:function(a){while(a=a.nextSibling){if(a.nodeType==1){return a}}return null},previousElementSibling:function(a){while(a=a.previousSibling){if(a.nodeType==1){return a}}return null},tagName:function(a,j,c,b){var k=c.toUpperCase();var e=[],g=Selector.handlers;if(a){if(b){if(b=="descendant"){for(var f=0,d;d=a[f];f++){g.concat(e,d.getElementsByTagName(c))}return e}else{a=this[b](a)}if(c=="*"){return a}}for(var f=0,d;d=a[f];f++){if(d.tagName.toUpperCase()===k){e.push(d)}}return e}else{return j.getElementsByTagName(c)}},id:function(a,l,b,c){var k=$(b),g=Selector.handlers;if(l==document){if(!k){return[]}if(!a){return[k]}}else{if(!l.sourceIndex||l.sourceIndex<1){var a=l.getElementsByTagName("*");for(var e=0,d;d=a[e];e++){if(d.id===b){return[d]}}}}if(a){if(c){if(c=="child"){for(var f=0,d;d=a[f];f++){if(k.parentNode==d){return[k]}}}else{if(c=="descendant"){for(var f=0,d;d=a[f];f++){if(Element.descendantOf(k,d)){return[k]}}}else{if(c=="adjacent"){for(var f=0,d;d=a[f];f++){if(Selector.handlers.previousElementSibling(k)==d){return[k]}}}else{a=g[c](a)}}}}for(var f=0,d;d=a[f];f++){if(d==k){return[k]}}return[]}return(k&&Element.descendantOf(k,l))?[k]:[]},className:function(b,a,c,d){if(b&&d){b=this[d](b)}return Selector.handlers.byClassName(b,a,c)},byClassName:function(c,b,f){if(!c){c=Selector.handlers.descendant([b])}var h=" "+f+" ";for(var e=0,d=[],g,a;g=c[e];e++){a=g.className;if(a.length==0){continue}if(a==f||(" "+a+" ").indexOf(h)!=-1){d.push(g)}}return d},attrPresence:function(c,b,a,g){if(!c){c=b.getElementsByTagName("*")}if(c&&g){c=this[g](c)}var e=[];for(var d=0,f;f=c[d];d++){if(Element.hasAttribute(f,a)){e.push(f)}}return e},attr:function(a,j,h,k,c,b){if(!a){a=j.getElementsByTagName("*")}if(a&&b){a=this[b](a)}var l=Selector.operators[c],f=[];for(var e=0,d;d=a[e];e++){var g=Element.readAttribute(d,h);if(g===null){continue}if(l(g,k)){f.push(d)}}return f},pseudo:function(b,c,e,a,d){if(b&&d){b=this[d](b)}if(!b){b=a.getElementsByTagName("*")}return Selector.pseudos[c](b,e,a)}},pseudos:{"first-child":function(b,f,a){for(var d=0,c=[],e;e=b[d];d++){if(Selector.handlers.previousElementSibling(e)){continue}c.push(e)}return c},"last-child":function(b,f,a){for(var d=0,c=[],e;e=b[d];d++){if(Selector.handlers.nextElementSibling(e)){continue}c.push(e)}return c},"only-child":function(b,g,a){var e=Selector.handlers;for(var d=0,c=[],f;f=b[d];d++){if(!e.previousElementSibling(f)&&!e.nextElementSibling(f)){c.push(f)}}return c},"nth-child":function(b,c,a){return Selector.pseudos.nth(b,c,a)},"nth-last-child":function(b,c,a){return Selector.pseudos.nth(b,c,a,true)},"nth-of-type":function(b,c,a){return Selector.pseudos.nth(b,c,a,false,true)},"nth-last-of-type":function(b,c,a){return Selector.pseudos.nth(b,c,a,true,true)},"first-of-type":function(b,c,a){return Selector.pseudos.nth(b,"1",a,false,true)},"last-of-type":function(b,c,a){return Selector.pseudos.nth(b,"1",a,true,true)},"only-of-type":function(b,d,a){var c=Selector.pseudos;return c["last-of-type"](c["first-of-type"](b,d,a),d,a)},getIndices:function(d,c,e){if(d==0){return c>0?[c]:[]}return $R(1,e).inject([],function(a,b){if(0==(b-c)%d&&(b-c)/d>=0){a.push(b)}return a})},nth:function(c,s,u,r,e){if(c.length==0){return[]}if(s=="even"){s="2n+0"}if(s=="odd"){s="2n+1"}var q=Selector.handlers,p=[],d=[],g;q.mark(c);for(var o=0,f;f=c[o];o++){if(!f.parentNode._countedByPrototype){q.index(f.parentNode,r,e);d.push(f.parentNode)}}if(s.match(/^\d+$/)){s=Number(s);for(var o=0,f;f=c[o];o++){if(f.nodeIndex==s){p.push(f)}}}else{if(g=s.match(/^(-?\d*)?n(([+-])(\d+))?/)){if(g[1]=="-"){g[1]=-1}var v=g[1]?Number(g[1]):1;var t=g[2]?Number(g[2]):0;var w=Selector.pseudos.getIndices(v,t,c.length);for(var o=0,f,k=w.length;f=c[o];o++){for(var n=0;n<k;n++){if(f.nodeIndex==w[n]){p.push(f)}}}}}q.unmark(c);q.unmark(d);return p},empty:function(b,f,a){for(var d=0,c=[],e;e=b[d];d++){if(e.tagName=="!"||e.firstChild){continue}c.push(e)}return c},not:function(a,d,k){var g=Selector.handlers,l,c;var j=new Selector(d).findElements(k);g.mark(j);for(var f=0,e=[],b;b=a[f];f++){if(!b._countedByPrototype){e.push(b)}}g.unmark(j);return e},enabled:function(b,f,a){for(var d=0,c=[],e;e=b[d];d++){if(!e.disabled&&(!e.type||e.type!=="hidden")){c.push(e)}}return c},disabled:function(b,f,a){for(var d=0,c=[],e;e=b[d];d++){if(e.disabled){c.push(e)}}return c},checked:function(b,f,a){for(var d=0,c=[],e;e=b[d];d++){if(e.checked){c.push(e)}}return c}},operators:{"=":function(b,a){return b==a},"!=":function(b,a){return b!=a},"^=":function(b,a){return b&&b==a||b&&b.startsWith(a)},"$=":function(b,a){return b&&b==a||b&&b.endsWith(a)},"*=":function(b,a){return b&&b==a||b&&b.include(a)},"~=":function(b,a){return(" "+b+" ").include(" "+a+" ")},"|=":function(b,a){return("-"+(b||"").toUpperCase()+"-").include("-"+(a||"").toUpperCase()+"-")}},split:function(b){var a=[];b.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/,function(c){a.push(c[1].strip())});return a},matchElements:function(f,g){var e=$$(g),d=Selector.handlers;d.mark(e);for(var c=0,b=[],a;a=f[c];c++){if(a._countedByPrototype){b.push(a)}}d.unmark(e);return b},findElement:function(b,c,a){if(Object.isNumber(c)){a=c;c=false}return Selector.matchElements(b,c||"*")[a||0]},findChildElements:function(e,g){g=Selector.split(g.join(","));var d=[],f=Selector.handlers;for(var c=0,b=g.length,a;c<b;c++){a=new Selector(g[c].strip());f.concat(d,a.findElements(e))}return(b>1)?f.unique(d):d}});if(Prototype.Browser.IE){Object.extend(Selector.handlers,{concat:function(d,c){for(var e=0,f;f=c[e];e++){if(f.tagName!=="!"){d.push(f)}}return d}})}function $$(){return Selector.findChildElements(document,$A(arguments))}var Form={reset:function(a){a=$(a);a.reset();return a},serializeElements:function(g,b){if(typeof b!="object"){b={hash:!!b}}else{if(Object.isUndefined(b.hash)){b.hash=true}}var c,f,a=false,e=b.submit;var d=g.inject({},function(h,j){if(!j.disabled&&j.name){c=j.name;f=$(j).getValue();if(f!=null&&j.type!="file"&&(j.type!="submit"||(!a&&e!==false&&(!e||c==e)&&(a=true)))){if(c in h){if(!Object.isArray(h[c])){h[c]=[h[c]]}h[c].push(f)}else{h[c]=f}}}return h});return b.hash?d:Object.toQueryString(d)}};Form.Methods={serialize:function(b,a){return Form.serializeElements(Form.getElements(b),a)},getElements:function(e){var f=$(e).getElementsByTagName("*"),d,a=[],c=Form.Element.Serializers;for(var b=0;d=f[b];b++){a.push(d)}return a.inject([],function(g,h){if(c[h.tagName.toLowerCase()]){g.push(Element.extend(h))}return g})},getInputs:function(g,c,d){g=$(g);var a=g.getElementsByTagName("input");if(!c&&!d){return $A(a).map(Element.extend)}for(var e=0,h=[],f=a.length;e<f;e++){var b=a[e];if((c&&b.type!=c)||(d&&b.name!=d)){continue}h.push(Element.extend(b))}return h},disable:function(a){a=$(a);Form.getElements(a).invoke("disable");return a},enable:function(a){a=$(a);Form.getElements(a).invoke("enable");return a},findFirstElement:function(b){var c=$(b).getElements().findAll(function(d){return"hidden"!=d.type&&!d.disabled});var a=c.findAll(function(d){return d.hasAttribute("tabIndex")&&d.tabIndex>=0}).sortBy(function(d){return d.tabIndex}).first();return a?a:c.find(function(d){return/^(?:input|select|textarea)$/i.test(d.tagName)})},focusFirstElement:function(a){a=$(a);a.findFirstElement().activate();return a},request:function(b,a){b=$(b),a=Object.clone(a||{});var d=a.parameters,c=b.readAttribute("action")||"";if(c.blank()){c=window.location.href}a.parameters=b.serialize(true);if(d){if(Object.isString(d)){d=d.toQueryParams()}Object.extend(a.parameters,d)}if(b.hasAttribute("method")&&!a.method){a.method=b.method}return new Ajax.Request(c,a)}};Form.Element={focus:function(a){$(a).focus();return a},select:function(a){$(a).select();return a}};Form.Element.Methods={serialize:function(a){a=$(a);if(!a.disabled&&a.name){var b=a.getValue();if(b!=undefined){var c={};c[a.name]=b;return Object.toQueryString(c)}}return""},getValue:function(a){a=$(a);var b=a.tagName.toLowerCase();return Form.Element.Serializers[b](a)},setValue:function(a,b){a=$(a);var c=a.tagName.toLowerCase();Form.Element.Serializers[c](a,b);return a},clear:function(a){$(a).value="";return a},present:function(a){return $(a).value!=""},activate:function(a){a=$(a);try{a.focus();if(a.select&&(a.tagName.toLowerCase()!="input"||!(/^(?:button|reset|submit)$/i.test(a.type)))){a.select()}}catch(b){}return a},disable:function(a){a=$(a);a.disabled=true;return a},enable:function(a){a=$(a);a.disabled=false;return a}};var Field=Form.Element;var $F=Form.Element.Methods.getValue;Form.Element.Serializers={input:function(a,b){switch(a.type.toLowerCase()){case"checkbox":case"radio":return Form.Element.Serializers.inputSelector(a,b);default:return Form.Element.Serializers.textarea(a,b)}},inputSelector:function(a,b){if(Object.isUndefined(b)){return a.checked?a.value:null}else{a.checked=!!b}},textarea:function(a,b){if(Object.isUndefined(b)){return a.value}else{a.value=b}},select:function(c,f){if(Object.isUndefined(f)){return this[c.type=="select-one"?"selectOne":"selectMany"](c)}else{var b,d,g=!Object.isArray(f);for(var a=0,e=c.length;a<e;a++){b=c.options[a];d=this.optionValue(b);if(g){if(d==f){b.selected=true;return}}else{b.selected=f.include(d)}}}},selectOne:function(b){var a=b.selectedIndex;return a>=0?this.optionValue(b.options[a]):null},selectMany:function(d){var a,e=d.length;if(!e){return null}for(var c=0,a=[];c<e;c++){var b=d.options[c];if(b.selected){a.push(this.optionValue(b))}}return a},optionValue:function(a){return Element.extend(a).hasAttribute("value")?a.value:a.text}};Abstract.TimedObserver=Class.create(PeriodicalExecuter,{initialize:function($super,a,b,c){$super(c,b);this.element=$(a);this.lastValue=this.getValue()},execute:function(){var a=this.getValue();if(Object.isString(this.lastValue)&&Object.isString(a)?this.lastValue!=a:String(this.lastValue)!=String(a)){this.callback(this.element,a);this.lastValue=a}}});Form.Element.Observer=Class.create(Abstract.TimedObserver,{getValue:function(){return Form.Element.getValue(this.element)}});Form.Observer=Class.create(Abstract.TimedObserver,{getValue:function(){return Form.serialize(this.element)}});Abstract.EventObserver=Class.create({initialize:function(a,b){this.element=$(a);this.callback=b;this.lastValue=this.getValue();if(this.element.tagName.toLowerCase()=="form"){this.registerFormCallbacks()}else{this.registerCallback(this.element)}},onElementEvent:function(){var a=this.getValue();if(this.lastValue!=a){this.callback(this.element,a);this.lastValue=a}},registerFormCallbacks:function(){Form.getElements(this.element).each(this.registerCallback,this)},registerCallback:function(a){if(a.type){switch(a.type.toLowerCase()){case"checkbox":case"radio":Event.observe(a,"click",this.onElementEvent.bind(this));break;default:Event.observe(a,"change",this.onElementEvent.bind(this));break}}}});Form.Element.EventObserver=Class.create(Abstract.EventObserver,{getValue:function(){return Form.Element.getValue(this.element)}});Form.EventObserver=Class.create(Abstract.EventObserver,{getValue:function(){return Form.serialize(this.element)}});(function(){var w={KEY_BACKSPACE:8,KEY_TAB:9,KEY_RETURN:13,KEY_ESC:27,KEY_LEFT:37,KEY_UP:38,KEY_RIGHT:39,KEY_DOWN:40,KEY_DELETE:46,KEY_HOME:36,KEY_END:35,KEY_PAGEUP:33,KEY_PAGEDOWN:34,KEY_INSERT:45,cache:{}};var e=document.documentElement;var x="onmouseenter" in e&&"onmouseleave" in e;var p;if(Prototype.Browser.IE){var h={0:1,1:4,2:2};p=function(z,y){return z.button===h[y]}}else{if(Prototype.Browser.WebKit){p=function(z,y){switch(y){case 0:return z.which==1&&!z.metaKey;case 1:return z.which==1&&z.metaKey;default:return false}}}else{p=function(z,y){return z.which?(z.which===y+1):(z.button===y)}}}function s(y){return p(y,0)}function r(y){return p(y,1)}function l(y){return p(y,2)}function c(A){A=w.extend(A);var z=A.target,y=A.type,B=A.currentTarget;if(B&&B.tagName){if(y==="load"||y==="error"||(y==="click"&&B.tagName.toLowerCase()==="input"&&B.type==="radio")){z=B}}if(z.nodeType==Node.TEXT_NODE){z=z.parentNode}return Element.extend(z)}function n(z,B){var y=w.element(z);if(!B){return y}var A=[y].concat(y.ancestors());return Selector.findElement(A,B,0)}function q(y){return{x:b(y),y:a(y)}}function b(A){var z=document.documentElement,y=document.body||{scrollLeft:0};return A.pageX||(A.clientX+(z.scrollLeft||y.scrollLeft)-(z.clientLeft||0))}function a(A){var z=document.documentElement,y=document.body||{scrollTop:0};return A.pageY||(A.clientY+(z.scrollTop||y.scrollTop)-(z.clientTop||0))}function o(y){w.extend(y);y.preventDefault();y.stopPropagation();y.stopped=true}w.Methods={isLeftClick:s,isMiddleClick:r,isRightClick:l,element:c,findElement:n,pointer:q,pointerX:b,pointerY:a,stop:o};var u=Object.keys(w.Methods).inject({},function(y,z){y[z]=w.Methods[z].methodize();return y});if(Prototype.Browser.IE){function g(z){var y;switch(z.type){case"mouseover":y=z.fromElement;break;case"mouseout":y=z.toElement;break;default:return null}return Element.extend(y)}Object.extend(u,{stopPropagation:function(){this.cancelBubble=true},preventDefault:function(){this.returnValue=false},inspect:function(){return"[object Event]"}});w.extend=function(z,y){if(!z){return false}if(z._extendedByPrototype){return z}z._extendedByPrototype=Prototype.emptyFunction;var A=w.pointer(z);Object.extend(z,{target:z.srcElement||y,relatedTarget:g(z),pageX:A.x,pageY:A.y});return Object.extend(z,u)}}else{w.prototype=window.Event.prototype||document.createEvent("HTMLEvents").__proto__;Object.extend(w.prototype,u);w.extend=Prototype.K}function m(C,B,D){var A=Element.retrieve(C,"prototype_event_registry");if(Object.isUndefined(A)){d.push(C);A=Element.retrieve(C,"prototype_event_registry",$H())}var y=A.get(B);if(Object.isUndefined(y)){y=[];A.set(B,y)}if(y.pluck("handler").include(D)){return false}var z;if(B.include(":")){z=function(E){if(Object.isUndefined(E.eventName)){return false}if(E.eventName!==B){return false}w.extend(E,C);D.call(C,E)}}else{if(!x&&(B==="mouseenter"||B==="mouseleave")){if(B==="mouseenter"||B==="mouseleave"){z=function(F){w.extend(F,C);var E=F.relatedTarget;while(E&&E!==C){try{E=E.parentNode}catch(G){E=C}}if(E===C){return}D.call(C,F)}}}else{z=function(E){w.extend(E,C);D.call(C,E)}}}z.handler=D;y.push(z);return z}function f(){for(var y=0,z=d.length;y<z;y++){w.stopObserving(d[y]);d[y]=null}}var d=[];if(Prototype.Browser.IE){window.attachEvent("onunload",f)}if(Prototype.Browser.WebKit){window.addEventListener("unload",Prototype.emptyFunction,false)}var k=Prototype.K;if(!x){k=function(z){var y={mouseenter:"mouseover",mouseleave:"mouseout"};return z in y?y[z]:z}}function t(B,A,C){B=$(B);var z=m(B,A,C);if(!z){return B}if(A.include(":")){if(B.addEventListener){B.addEventListener("dataavailable",z,false)}else{B.attachEvent("ondataavailable",z);B.attachEvent("onfilterchange",z)}}else{var y=k(A);if(B.addEventListener){B.addEventListener(y,z,false)}else{B.attachEvent("on"+y,z)}}return B}function j(D,B,E){D=$(D);var A=Element.retrieve(D,"prototype_event_registry");if(Object.isUndefined(A)){return D}if(B&&!E){var C=A.get(B);if(Object.isUndefined(C)){return D}C.each(function(F){Element.stopObserving(D,B,F.handler)});return D}else{if(!B){A.each(function(H){var F=H.key,G=H.value;G.each(function(I){Element.stopObserving(D,F,I.handler)})});return D}}var C=A.get(B);if(!C){return}var z=C.find(function(F){return F.handler===E});if(!z){return D}var y=k(B);if(B.include(":")){if(D.removeEventListener){D.removeEventListener("dataavailable",z,false)}else{D.detachEvent("ondataavailable",z);D.detachEvent("onfilterchange",z)}}else{if(D.removeEventListener){D.removeEventListener(y,z,false)}else{D.detachEvent("on"+y,z)}}A.set(B,C.without(z));return D}function v(B,A,z,y){B=$(B);if(Object.isUndefined(y)){y=true}if(B==document&&document.createEvent&&!B.dispatchEvent){B=document.documentElement}var C;if(document.createEvent){C=document.createEvent("HTMLEvents");C.initEvent("dataavailable",true,true)}else{C=document.createEventObject();C.eventType=y?"ondataavailable":"onfilterchange"}C.eventName=A;C.memo=z||{};if(document.createEvent){B.dispatchEvent(C)}else{B.fireEvent(C.eventType,C)}return w.extend(C)}Object.extend(w,w.Methods);Object.extend(w,{fire:v,observe:t,stopObserving:j});Element.addMethods({fire:v,observe:t,stopObserving:j});Object.extend(document,{fire:v.methodize(),observe:t.methodize(),stopObserving:j.methodize(),loaded:false});if(window.Event){Object.extend(window.Event,w)}else{window.Event=w}})();(function(){var d;function a(){if(document.loaded){return}if(d){window.clearTimeout(d)}document.loaded=true;document.fire("dom:loaded")}function c(){if(document.readyState==="complete"){document.stopObserving("readystatechange",c);a()}}function b(){try{document.documentElement.doScroll("left")}catch(f){d=b.defer();return}a()}if(document.addEventListener){document.addEventListener("DOMContentLoaded",a,false)}else{document.observe("readystatechange",c);if(window==top){d=b.defer()}}Event.observe(window,"load",a)})();Element.addMethods();Hash.toQueryString=Object.toQueryString;var Toggle={display:Element.toggle};Element.Methods.childOf=Element.Methods.descendantOf;var Insertion={Before:function(a,b){return Element.insert(a,{before:b})},Top:function(a,b){return Element.insert(a,{top:b})},Bottom:function(a,b){return Element.insert(a,{bottom:b})},After:function(a,b){return Element.insert(a,{after:b})}};var $continue=new Error('"throw $continue" is deprecated, use "return" instead');var Position={includeScrollOffsets:false,prepare:function(){this.deltaX=window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0;this.deltaY=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0},within:function(b,a,c){if(this.includeScrollOffsets){return this.withinIncludingScrolloffsets(b,a,c)}this.xcomp=a;this.ycomp=c;this.offset=Element.cumulativeOffset(b);return(c>=this.offset[1]&&c<this.offset[1]+b.offsetHeight&&a>=this.offset[0]&&a<this.offset[0]+b.offsetWidth)},withinIncludingScrolloffsets:function(b,a,d){var c=Element.cumulativeScrollOffset(b);this.xcomp=a+c[0]-this.deltaX;this.ycomp=d+c[1]-this.deltaY;this.offset=Element.cumulativeOffset(b);return(this.ycomp>=this.offset[1]&&this.ycomp<this.offset[1]+b.offsetHeight&&this.xcomp>=this.offset[0]&&this.xcomp<this.offset[0]+b.offsetWidth)},overlap:function(b,a){if(!b){return 0}if(b=="vertical"){return((this.offset[1]+a.offsetHeight)-this.ycomp)/a.offsetHeight}if(b=="horizontal"){return((this.offset[0]+a.offsetWidth)-this.xcomp)/a.offsetWidth}},cumulativeOffset:Element.Methods.cumulativeOffset,positionedOffset:Element.Methods.positionedOffset,absolutize:function(a){Position.prepare();return Element.absolutize(a)},relativize:function(a){Position.prepare();return Element.relativize(a)},realOffset:Element.Methods.cumulativeScrollOffset,offsetParent:Element.Methods.getOffsetParent,page:Element.Methods.viewportOffset,clone:function(b,c,a){a=a||{};return Element.clonePosition(c,b,a)}};if(!document.getElementsByClassName){document.getElementsByClassName=function(b){function a(c){return c.blank()?null:"[contains(concat(' ', @class, ' '), ' "+c+" ')]"}b.getElementsByClassName=Prototype.BrowserFeatures.XPath?function(c,e){e=e.toString().strip();var d=/\s/.test(e)?$w(e).map(a).join(""):a(e);return d?document._getElementsByXPath(".//*"+d,c):[]}:function(e,f){f=f.toString().strip();var g=[],h=(/\s/.test(f)?$w(f):null);if(!h&&!f){return g}var c=$(e).getElementsByTagName("*");f=" "+f+" ";for(var d=0,k,j;k=c[d];d++){if(k.className&&(j=" "+k.className+" ")&&(j.include(f)||(h&&h.all(function(l){return !l.toString().blank()&&j.include(" "+l+" ")})))){g.push(Element.extend(k))}}return g};return function(d,c){return $(c||document.body).getElementsByClassName(d)}}(Element.Methods)}Element.ClassNames=Class.create();Element.ClassNames.prototype={initialize:function(a){this.element=$(a)},_each:function(a){this.element.className.split(/\s+/).select(function(b){return b.length>0})._each(a)},set:function(a){this.element.className=a},add:function(a){if(this.include(a)){return}this.set($A(this).concat(a).join(" "))},remove:function(a){if(!this.include(a)){return}this.set($A(this).without(a).join(" "))},toString:function(){return $A(this).join(" ")}};Object.extend(Element.ClassNames.prototype,Enumerable);var Scriptaculous={Version:"1.8.3",require:function(b){try{document.write('<script type="text/javascript" src="'+b+'"><\/script>')}catch(c){var a=document.createElement("script");a.type="text/javascript";a.src=b;document.getElementsByTagName("head")[0].appendChild(a)}},REQUIRED_PROTOTYPE:"1.6.0.3",load:function(){function a(c){var d=c.replace(/_.*|\./g,"");d=parseInt(d+"0".times(4-d.length));return c.indexOf("_")>-1?d-1:d}if((typeof Prototype=="undefined")||(typeof Element=="undefined")||(typeof Element.Methods=="undefined")||(a(Prototype.Version)<a(Scriptaculous.REQUIRED_PROTOTYPE))){throw ("script.aculo.us requires the Prototype JavaScript framework >= "+Scriptaculous.REQUIRED_PROTOTYPE)}var b=/scriptaculous\.js(\?.*)?$/;$$("head script[src]").findAll(function(c){return c.src.match(b)}).each(function(d){var e=d.src.replace(b,""),c=d.src.match(/\?.*load=([a-z,]*)/);(c?c[1]:"builder,effects,dragdrop,controls,slider,sound").split(",").each(function(f){Scriptaculous.require(e+f+".js")})})}};String.prototype.parseColor=function(){var a="#";if(this.slice(0,4)=="rgb("){var c=this.slice(4,this.length-1).split(",");var b=0;do{a+=parseInt(c[b]).toColorPart()}while(++b<3)}else{if(this.slice(0,1)=="#"){if(this.length==4){for(var b=1;b<4;b++){a+=(this.charAt(b)+this.charAt(b)).toLowerCase()}}if(this.length==7){a=this.toLowerCase()}}}return(a.length==7?a:(arguments[0]||this))};Element.collectTextNodes=function(a){return $A($(a).childNodes).collect(function(b){return(b.nodeType==3?b.nodeValue:(b.hasChildNodes()?Element.collectTextNodes(b):""))}).flatten().join("")};Element.collectTextNodesIgnoreClass=function(a,b){return $A($(a).childNodes).collect(function(c){return(c.nodeType==3?c.nodeValue:((c.hasChildNodes()&&!Element.hasClassName(c,b))?Element.collectTextNodesIgnoreClass(c,b):""))}).flatten().join("")};Element.setContentZoom=function(a,b){a=$(a);a.setStyle({fontSize:(b/100)+"em"});if(Prototype.Browser.WebKit){window.scrollBy(0,0)}return a};Element.getInlineOpacity=function(a){return $(a).style.opacity||""};Element.forceRerendering=function(a){try{a=$(a);var c=document.createTextNode(" ");a.appendChild(c);a.removeChild(c)}catch(b){}};var Effect={_elementDoesNotExistError:{name:"ElementDoesNotExistError",message:"The specified DOM element does not exist, but is required for this effect to operate"},Transitions:{linear:Prototype.K,sinoidal:function(a){return(-Math.cos(a*Math.PI)/2)+0.5},reverse:function(a){return 1-a},flicker:function(a){var a=((-Math.cos(a*Math.PI)/4)+0.75)+Math.random()/4;return a>1?1:a},wobble:function(a){return(-Math.cos(a*Math.PI*(9*a))/2)+0.5},pulse:function(b,a){return(-Math.cos((b*((a||5)-0.5)*2)*Math.PI)/2)+0.5},spring:function(a){return 1-(Math.cos(a*4.5*Math.PI)*Math.exp(-a*6))},none:function(a){return 0},full:function(a){return 1}},DefaultOptions:{duration:1,fps:100,sync:false,from:0,to:1,delay:0,queue:"parallel"},tagifyText:function(a){var b="position:relative";if(Prototype.Browser.IE){b+=";zoom:1"}a=$(a);$A(a.childNodes).each(function(c){if(c.nodeType==3){c.nodeValue.toArray().each(function(d){a.insertBefore(new Element("span",{style:b}).update(d==" "?String.fromCharCode(160):d),c)});Element.remove(c)}})},multiple:function(b,c){var e;if(((typeof b=="object")||Object.isFunction(b))&&(b.length)){e=b}else{e=$(b).childNodes}var a=Object.extend({speed:0.1,delay:0},arguments[2]||{});var d=a.delay;$A(e).each(function(g,f){new c(g,Object.extend(a,{delay:f*a.speed+d}))})},PAIRS:{slide:["SlideDown","SlideUp"],blind:["BlindDown","BlindUp"],appear:["Appear","Fade"]},toggle:function(b,c,a){b=$(b);c=(c||"appear").toLowerCase();return Effect[Effect.PAIRS[c][b.visible()?1:0]](b,Object.extend({queue:{position:"end",scope:(b.id||"global"),limit:1}},a||{}))}};Effect.DefaultOptions.transition=Effect.Transitions.sinoidal;Effect.ScopedQueue=Class.create(Enumerable,{initialize:function(){this.effects=[];this.interval=null},_each:function(a){this.effects._each(a)},add:function(b){var c=new Date().getTime();var a=Object.isString(b.options.queue)?b.options.queue:b.options.queue.position;switch(a){case"front":this.effects.findAll(function(d){return d.state=="idle"}).each(function(d){d.startOn+=b.finishOn;d.finishOn+=b.finishOn});break;case"with-last":c=this.effects.pluck("startOn").max()||c;break;case"end":c=this.effects.pluck("finishOn").max()||c;break}b.startOn+=c;b.finishOn+=c;if(!b.options.queue.limit||(this.effects.length<b.options.queue.limit)){this.effects.push(b)}if(!this.interval){this.interval=setInterval(this.loop.bind(this),15)}},remove:function(a){this.effects=this.effects.reject(function(b){return b==a});if(this.effects.length==0){clearInterval(this.interval);this.interval=null}},loop:function(){var c=new Date().getTime();for(var b=0,a=this.effects.length;b<a;b++){this.effects[b]&&this.effects[b].loop(c)}}});Effect.Queues={instances:$H(),get:function(a){if(!Object.isString(a)){return a}return this.instances.get(a)||this.instances.set(a,new Effect.ScopedQueue())}};Effect.Queue=Effect.Queues.get("global");Effect.Base=Class.create({position:null,start:function(a){if(a&&a.transition===false){a.transition=Effect.Transitions.linear}this.options=Object.extend(Object.extend({},Effect.DefaultOptions),a||{});this.currentFrame=0;this.state="idle";this.startOn=this.options.delay*1000;this.finishOn=this.startOn+(this.options.duration*1000);this.fromToDelta=this.options.to-this.options.from;this.totalTime=this.finishOn-this.startOn;this.totalFrames=this.options.fps*this.options.duration;this.render=(function(){function b(d,c){if(d.options[c+"Internal"]){d.options[c+"Internal"](d)}if(d.options[c]){d.options[c](d)}}return function(c){if(this.state==="idle"){this.state="running";b(this,"beforeSetup");if(this.setup){this.setup()}b(this,"afterSetup")}if(this.state==="running"){c=(this.options.transition(c)*this.fromToDelta)+this.options.from;this.position=c;b(this,"beforeUpdate");if(this.update){this.update(c)}b(this,"afterUpdate")}}})();this.event("beforeStart");if(!this.options.sync){Effect.Queues.get(Object.isString(this.options.queue)?"global":this.options.queue.scope).add(this)}},loop:function(c){if(c>=this.startOn){if(c>=this.finishOn){this.render(1);this.cancel();this.event("beforeFinish");if(this.finish){this.finish()}this.event("afterFinish");return}var b=(c-this.startOn)/this.totalTime,a=(b*this.totalFrames).round();if(a>this.currentFrame){this.render(b);this.currentFrame=a}}},cancel:function(){if(!this.options.sync){Effect.Queues.get(Object.isString(this.options.queue)?"global":this.options.queue.scope).remove(this)}this.state="finished"},event:function(a){if(this.options[a+"Internal"]){this.options[a+"Internal"](this)}if(this.options[a]){this.options[a](this)}},inspect:function(){var a=$H();for(property in this){if(!Object.isFunction(this[property])){a.set(property,this[property])}}return"#<Effect:"+a.inspect()+",options:"+$H(this.options).inspect()+">"}});Effect.Parallel=Class.create(Effect.Base,{initialize:function(a){this.effects=a||[];this.start(arguments[1])},update:function(a){this.effects.invoke("render",a)},finish:function(a){this.effects.each(function(b){b.render(1);b.cancel();b.event("beforeFinish");if(b.finish){b.finish(a)}b.event("afterFinish")})}});Effect.Tween=Class.create(Effect.Base,{initialize:function(c,f,e){c=Object.isString(c)?$(c):c;var b=$A(arguments),d=b.last(),a=b.length==5?b[3]:null;this.method=Object.isFunction(d)?d.bind(c):Object.isFunction(c[d])?c[d].bind(c):function(g){c[d]=g};this.start(Object.extend({from:f,to:e},a||{}))},update:function(a){this.method(a)}});Effect.Event=Class.create(Effect.Base,{initialize:function(){this.start(Object.extend({duration:0},arguments[0]||{}))},update:Prototype.emptyFunction});Effect.Opacity=Class.create(Effect.Base,{initialize:function(b){this.element=$(b);if(!this.element){throw (Effect._elementDoesNotExistError)}if(Prototype.Browser.IE&&(!this.element.currentStyle.hasLayout)){this.element.setStyle({zoom:1})}var a=Object.extend({from:this.element.getOpacity()||0,to:1},arguments[1]||{});this.start(a)},update:function(a){this.element.setOpacity(a)}});Effect.Move=Class.create(Effect.Base,{initialize:function(b){this.element=$(b);if(!this.element){throw (Effect._elementDoesNotExistError)}var a=Object.extend({x:0,y:0,mode:"relative"},arguments[1]||{});this.start(a)},setup:function(){this.element.makePositioned();this.originalLeft=parseFloat(this.element.getStyle("left")||"0");this.originalTop=parseFloat(this.element.getStyle("top")||"0");if(this.options.mode=="absolute"){this.options.x=this.options.x-this.originalLeft;this.options.y=this.options.y-this.originalTop}},update:function(a){this.element.setStyle({left:(this.options.x*a+this.originalLeft).round()+"px",top:(this.options.y*a+this.originalTop).round()+"px"})}});Effect.MoveBy=function(b,a,c){return new Effect.Move(b,Object.extend({x:c,y:a},arguments[3]||{}))};Effect.Scale=Class.create(Effect.Base,{initialize:function(b,c){this.element=$(b);if(!this.element){throw (Effect._elementDoesNotExistError)}var a=Object.extend({scaleX:true,scaleY:true,scaleContent:true,scaleFromCenter:false,scaleMode:"box",scaleFrom:100,scaleTo:c},arguments[2]||{});this.start(a)},setup:function(){this.restoreAfterFinish=this.options.restoreAfterFinish||false;this.elementPositioning=this.element.getStyle("position");this.originalStyle={};["top","left","width","height","fontSize"].each(function(b){this.originalStyle[b]=this.element.style[b]}.bind(this));this.originalTop=this.element.offsetTop;this.originalLeft=this.element.offsetLeft;var a=this.element.getStyle("font-size")||"100%";["em","px","%","pt"].each(function(b){if(a.indexOf(b)>0){this.fontSize=parseFloat(a);this.fontSizeType=b}}.bind(this));this.factor=(this.options.scaleTo-this.options.scaleFrom)/100;this.dims=null;if(this.options.scaleMode=="box"){this.dims=[this.element.offsetHeight,this.element.offsetWidth]}if(/^content/.test(this.options.scaleMode)){this.dims=[this.element.scrollHeight,this.element.scrollWidth]}if(!this.dims){this.dims=[this.options.scaleMode.originalHeight,this.options.scaleMode.originalWidth]}},update:function(a){var b=(this.options.scaleFrom/100)+(this.factor*a);if(this.options.scaleContent&&this.fontSize){this.element.setStyle({fontSize:this.fontSize*b+this.fontSizeType})}this.setDimensions(this.dims[0]*b,this.dims[1]*b)},finish:function(a){if(this.restoreAfterFinish){this.element.setStyle(this.originalStyle)}},setDimensions:function(a,e){var f={};if(this.options.scaleX){f.width=e.round()+"px"}if(this.options.scaleY){f.height=a.round()+"px"}if(this.options.scaleFromCenter){var c=(a-this.dims[0])/2;var b=(e-this.dims[1])/2;if(this.elementPositioning=="absolute"){if(this.options.scaleY){f.top=this.originalTop-c+"px"}if(this.options.scaleX){f.left=this.originalLeft-b+"px"}}else{if(this.options.scaleY){f.top=-c+"px"}if(this.options.scaleX){f.left=-b+"px"}}}this.element.setStyle(f)}});Effect.Highlight=Class.create(Effect.Base,{initialize:function(b){this.element=$(b);if(!this.element){throw (Effect._elementDoesNotExistError)}var a=Object.extend({startcolor:"#ffff99"},arguments[1]||{});this.start(a)},setup:function(){if(this.element.getStyle("display")=="none"){this.cancel();return}this.oldStyle={};if(!this.options.keepBackgroundImage){this.oldStyle.backgroundImage=this.element.getStyle("background-image");this.element.setStyle({backgroundImage:"none"})}if(!this.options.endcolor){this.options.endcolor=this.element.getStyle("background-color").parseColor("#ffffff")}if(!this.options.restorecolor){this.options.restorecolor=this.element.getStyle("background-color")}this._base=$R(0,2).map(function(a){return parseInt(this.options.startcolor.slice(a*2+1,a*2+3),16)}.bind(this));this._delta=$R(0,2).map(function(a){return parseInt(this.options.endcolor.slice(a*2+1,a*2+3),16)-this._base[a]}.bind(this))},update:function(a){this.element.setStyle({backgroundColor:$R(0,2).inject("#",function(b,c,d){return b+((this._base[d]+(this._delta[d]*a)).round().toColorPart())}.bind(this))})},finish:function(){this.element.setStyle(Object.extend(this.oldStyle,{backgroundColor:this.options.restorecolor}))}});Effect.ScrollTo=function(c){var b=arguments[1]||{},a=document.viewport.getScrollOffsets(),d=$(c).cumulativeOffset();if(b.offset){d[1]+=b.offset}return new Effect.Tween(null,a.top,d[1],b,function(e){scrollTo(a.left,e.round())})};Effect.Fade=function(c){c=$(c);var a=c.getInlineOpacity();var b=Object.extend({from:c.getOpacity()||1,to:0,afterFinishInternal:function(d){if(d.options.to!=0){return}d.element.hide().setStyle({opacity:a})}},arguments[1]||{});return new Effect.Opacity(c,b)};Effect.Appear=function(b){b=$(b);var a=Object.extend({from:(b.getStyle("display")=="none"?0:b.getOpacity()||0),to:1,afterFinishInternal:function(c){c.element.forceRerendering()},beforeSetup:function(c){c.element.setOpacity(c.options.from).show()}},arguments[1]||{});return new Effect.Opacity(b,a)};Effect.Puff=function(b){b=$(b);var a={opacity:b.getInlineOpacity(),position:b.getStyle("position"),top:b.style.top,left:b.style.left,width:b.style.width,height:b.style.height};return new Effect.Parallel([new Effect.Scale(b,200,{sync:true,scaleFromCenter:true,scaleContent:true,restoreAfterFinish:true}),new Effect.Opacity(b,{sync:true,to:0})],Object.extend({duration:1,beforeSetupInternal:function(c){Position.absolutize(c.effects[0].element)},afterFinishInternal:function(c){c.effects[0].element.hide().setStyle(a)}},arguments[1]||{}))};Effect.BlindUp=function(a){a=$(a);a.makeClipping();return new Effect.Scale(a,0,Object.extend({scaleContent:false,scaleX:false,restoreAfterFinish:true,afterFinishInternal:function(b){b.element.hide().undoClipping()}},arguments[1]||{}))};Effect.BlindDown=function(b){b=$(b);var a=b.getDimensions();return new Effect.Scale(b,100,Object.extend({scaleContent:false,scaleX:false,scaleFrom:0,scaleMode:{originalHeight:a.height,originalWidth:a.width},restoreAfterFinish:true,afterSetup:function(c){c.element.makeClipping().setStyle({height:"0px"}).show()},afterFinishInternal:function(c){c.element.undoClipping()}},arguments[1]||{}))};Effect.SwitchOff=function(b){b=$(b);var a=b.getInlineOpacity();return new Effect.Appear(b,Object.extend({duration:0.4,from:0,transition:Effect.Transitions.flicker,afterFinishInternal:function(c){new Effect.Scale(c.element,1,{duration:0.3,scaleFromCenter:true,scaleX:false,scaleContent:false,restoreAfterFinish:true,beforeSetup:function(d){d.element.makePositioned().makeClipping()},afterFinishInternal:function(d){d.element.hide().undoClipping().undoPositioned().setStyle({opacity:a})}})}},arguments[1]||{}))};Effect.DropOut=function(b){b=$(b);var a={top:b.getStyle("top"),left:b.getStyle("left"),opacity:b.getInlineOpacity()};return new Effect.Parallel([new Effect.Move(b,{x:0,y:100,sync:true}),new Effect.Opacity(b,{sync:true,to:0})],Object.extend({duration:0.5,beforeSetup:function(c){c.effects[0].element.makePositioned()},afterFinishInternal:function(c){c.effects[0].element.hide().undoPositioned().setStyle(a)}},arguments[1]||{}))};Effect.Shake=function(d){d=$(d);var b=Object.extend({distance:20,duration:0.5},arguments[1]||{});var e=parseFloat(b.distance);var c=parseFloat(b.duration)/10;var a={top:d.getStyle("top"),left:d.getStyle("left")};return new Effect.Move(d,{x:e,y:0,duration:c,afterFinishInternal:function(f){new Effect.Move(f.element,{x:-e*2,y:0,duration:c*2,afterFinishInternal:function(g){new Effect.Move(g.element,{x:e*2,y:0,duration:c*2,afterFinishInternal:function(h){new Effect.Move(h.element,{x:-e*2,y:0,duration:c*2,afterFinishInternal:function(j){new Effect.Move(j.element,{x:e*2,y:0,duration:c*2,afterFinishInternal:function(k){new Effect.Move(k.element,{x:-e,y:0,duration:c,afterFinishInternal:function(l){l.element.undoPositioned().setStyle(a)}})}})}})}})}})}})};Effect.SlideDown=function(c){c=$(c).cleanWhitespace();var a=c.down().getStyle("bottom");var b=c.getDimensions();return new Effect.Scale(c,100,Object.extend({scaleContent:false,scaleX:false,scaleFrom:window.opera?0:1,scaleMode:{originalHeight:b.height,originalWidth:b.width},restoreAfterFinish:true,afterSetup:function(d){d.element.makePositioned();d.element.down().makePositioned();if(window.opera){d.element.setStyle({top:""})}d.element.makeClipping().setStyle({height:"0px"}).show()},afterUpdateInternal:function(d){d.element.down().setStyle({bottom:(d.dims[0]-d.element.clientHeight)+"px"})},afterFinishInternal:function(d){d.element.undoClipping().undoPositioned();d.element.down().undoPositioned().setStyle({bottom:a})}},arguments[1]||{}))};Effect.SlideUp=function(c){c=$(c).cleanWhitespace();var a=c.down().getStyle("bottom");var b=c.getDimensions();return new Effect.Scale(c,window.opera?0:1,Object.extend({scaleContent:false,scaleX:false,scaleMode:"box",scaleFrom:100,scaleMode:{originalHeight:b.height,originalWidth:b.width},restoreAfterFinish:true,afterSetup:function(d){d.element.makePositioned();d.element.down().makePositioned();if(window.opera){d.element.setStyle({top:""})}d.element.makeClipping().show()},afterUpdateInternal:function(d){d.element.down().setStyle({bottom:(d.dims[0]-d.element.clientHeight)+"px"})},afterFinishInternal:function(d){d.element.hide().undoClipping().undoPositioned();d.element.down().undoPositioned().setStyle({bottom:a})}},arguments[1]||{}))};Effect.Squish=function(a){return new Effect.Scale(a,window.opera?1:0,{restoreAfterFinish:true,beforeSetup:function(b){b.element.makeClipping()},afterFinishInternal:function(b){b.element.hide().undoClipping()}})};Effect.Grow=function(c){c=$(c);var b=Object.extend({direction:"center",moveTransition:Effect.Transitions.sinoidal,scaleTransition:Effect.Transitions.sinoidal,opacityTransition:Effect.Transitions.full},arguments[1]||{});var a={top:c.style.top,left:c.style.left,height:c.style.height,width:c.style.width,opacity:c.getInlineOpacity()};var g=c.getDimensions();var h,f;var e,d;switch(b.direction){case"top-left":h=f=e=d=0;break;case"top-right":h=g.width;f=d=0;e=-g.width;break;case"bottom-left":h=e=0;f=g.height;d=-g.height;break;case"bottom-right":h=g.width;f=g.height;e=-g.width;d=-g.height;break;case"center":h=g.width/2;f=g.height/2;e=-g.width/2;d=-g.height/2;break}return new Effect.Move(c,{x:h,y:f,duration:0.01,beforeSetup:function(j){j.element.hide().makeClipping().makePositioned()},afterFinishInternal:function(j){new Effect.Parallel([new Effect.Opacity(j.element,{sync:true,to:1,from:0,transition:b.opacityTransition}),new Effect.Move(j.element,{x:e,y:d,sync:true,transition:b.moveTransition}),new Effect.Scale(j.element,100,{scaleMode:{originalHeight:g.height,originalWidth:g.width},sync:true,scaleFrom:window.opera?1:0,transition:b.scaleTransition,restoreAfterFinish:true})],Object.extend({beforeSetup:function(k){k.effects[0].element.setStyle({height:"0px"}).show()},afterFinishInternal:function(k){k.effects[0].element.undoClipping().undoPositioned().setStyle(a)}},b))}})};Effect.Shrink=function(c){c=$(c);var b=Object.extend({direction:"center",moveTransition:Effect.Transitions.sinoidal,scaleTransition:Effect.Transitions.sinoidal,opacityTransition:Effect.Transitions.none},arguments[1]||{});var a={top:c.style.top,left:c.style.left,height:c.style.height,width:c.style.width,opacity:c.getInlineOpacity()};var f=c.getDimensions();var e,d;switch(b.direction){case"top-left":e=d=0;break;case"top-right":e=f.width;d=0;break;case"bottom-left":e=0;d=f.height;break;case"bottom-right":e=f.width;d=f.height;break;case"center":e=f.width/2;d=f.height/2;break}return new Effect.Parallel([new Effect.Opacity(c,{sync:true,to:0,from:1,transition:b.opacityTransition}),new Effect.Scale(c,window.opera?1:0,{sync:true,transition:b.scaleTransition,restoreAfterFinish:true}),new Effect.Move(c,{x:e,y:d,sync:true,transition:b.moveTransition})],Object.extend({beforeStartInternal:function(g){g.effects[0].element.makePositioned().makeClipping()},afterFinishInternal:function(g){g.effects[0].element.hide().undoClipping().undoPositioned().setStyle(a)}},b))};Effect.Pulsate=function(c){c=$(c);var b=arguments[1]||{},a=c.getInlineOpacity(),e=b.transition||Effect.Transitions.linear,d=function(f){return 1-e((-Math.cos((f*(b.pulses||5)*2)*Math.PI)/2)+0.5)};return new Effect.Opacity(c,Object.extend(Object.extend({duration:2,from:0,afterFinishInternal:function(f){f.element.setStyle({opacity:a})}},b),{transition:d}))};Effect.Fold=function(b){b=$(b);var a={top:b.style.top,left:b.style.left,width:b.style.width,height:b.style.height};b.makeClipping();return new Effect.Scale(b,5,Object.extend({scaleContent:false,scaleX:false,afterFinishInternal:function(c){new Effect.Scale(b,1,{scaleContent:false,scaleY:false,afterFinishInternal:function(d){d.element.hide().undoClipping().setStyle(a)}})}},arguments[1]||{}))};Effect.Morph=Class.create(Effect.Base,{initialize:function(c){this.element=$(c);if(!this.element){throw (Effect._elementDoesNotExistError)}var a=Object.extend({style:{}},arguments[1]||{});if(!Object.isString(a.style)){this.style=$H(a.style)}else{if(a.style.include(":")){this.style=a.style.parseStyle()}else{this.element.addClassName(a.style);this.style=$H(this.element.getStyles());this.element.removeClassName(a.style);var b=this.element.getStyles();this.style=this.style.reject(function(d){return d.value==b[d.key]});a.afterFinishInternal=function(d){d.element.addClassName(d.options.style);d.transforms.each(function(e){d.element.style[e.style]=""})}}}this.start(a)},setup:function(){function a(b){if(!b||["rgba(0, 0, 0, 0)","transparent"].include(b)){b="#ffffff"}b=b.parseColor();return $R(0,2).map(function(c){return parseInt(b.slice(c*2+1,c*2+3),16)})}this.transforms=this.style.map(function(g){var f=g[0],e=g[1],d=null;if(e.parseColor("#zzzzzz")!="#zzzzzz"){e=e.parseColor();d="color"}else{if(f=="opacity"){e=parseFloat(e);if(Prototype.Browser.IE&&(!this.element.currentStyle.hasLayout)){this.element.setStyle({zoom:1})}}else{if(Element.CSS_LENGTH.test(e)){var c=e.match(/^([\+\-]?[0-9\.]+)(.*)$/);e=parseFloat(c[1]);d=(c.length==3)?c[2]:null}}}var b=this.element.getStyle(f);return{style:f.camelize(),originalValue:d=="color"?a(b):parseFloat(b||0),targetValue:d=="color"?a(e):e,unit:d}}.bind(this)).reject(function(b){return((b.originalValue==b.targetValue)||(b.unit!="color"&&(isNaN(b.originalValue)||isNaN(b.targetValue))))})},update:function(a){var d={},b,c=this.transforms.length;while(c--){d[(b=this.transforms[c]).style]=b.unit=="color"?"#"+(Math.round(b.originalValue[0]+(b.targetValue[0]-b.originalValue[0])*a)).toColorPart()+(Math.round(b.originalValue[1]+(b.targetValue[1]-b.originalValue[1])*a)).toColorPart()+(Math.round(b.originalValue[2]+(b.targetValue[2]-b.originalValue[2])*a)).toColorPart():(b.originalValue+(b.targetValue-b.originalValue)*a).toFixed(3)+(b.unit===null?"":b.unit)}this.element.setStyle(d,true)}});Effect.Transform=Class.create({initialize:function(a){this.tracks=[];this.options=arguments[1]||{};this.addTracks(a)},addTracks:function(a){a.each(function(b){b=$H(b);var c=b.values().first();this.tracks.push($H({ids:b.keys().first(),effect:Effect.Morph,options:{style:c}}))}.bind(this));return this},play:function(){return new Effect.Parallel(this.tracks.map(function(a){var d=a.get("ids"),c=a.get("effect"),b=a.get("options");var e=[$(d)||$$(d)].flatten();return e.map(function(f){return new c(f,Object.extend({sync:true},b))})}).flatten(),this.options)}});Element.CSS_PROPERTIES=$w("backgroundColor backgroundPosition borderBottomColor borderBottomStyle borderBottomWidth borderLeftColor borderLeftStyle borderLeftWidth borderRightColor borderRightStyle borderRightWidth borderSpacing borderTopColor borderTopStyle borderTopWidth bottom clip color fontSize fontWeight height left letterSpacing lineHeight marginBottom marginLeft marginRight marginTop markerOffset maxHeight maxWidth minHeight minWidth opacity outlineColor outlineOffset outlineWidth paddingBottom paddingLeft paddingRight paddingTop right textIndent top width wordSpacing zIndex");Element.CSS_LENGTH=/^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/;String.__parseStyleElement=document.createElement("div");String.prototype.parseStyle=function(){var b,a=$H();if(Prototype.Browser.WebKit){b=new Element("div",{style:this}).style}else{String.__parseStyleElement.innerHTML='<div style="'+this+'"></div>';b=String.__parseStyleElement.childNodes[0].style}Element.CSS_PROPERTIES.each(function(c){if(b[c]){a.set(c,b[c])}});if(Prototype.Browser.IE&&this.include("opacity")){a.set("opacity",this.match(/opacity:\s*((?:0|1)?(?:\.\d*)?)/)[1])}return a};if(document.defaultView&&document.defaultView.getComputedStyle){Element.getStyles=function(b){var a=document.defaultView.getComputedStyle($(b),null);return Element.CSS_PROPERTIES.inject({},function(c,d){c[d]=a[d];return c})}}else{Element.getStyles=function(b){b=$(b);var a=b.currentStyle,c;c=Element.CSS_PROPERTIES.inject({},function(d,e){d[e]=a[e];return d});if(!c.opacity){c.opacity=b.getOpacity()}return c}}Effect.Methods={morph:function(a,b){a=$(a);new Effect.Morph(a,Object.extend({style:b},arguments[2]||{}));return a},visualEffect:function(c,e,b){c=$(c);var d=e.dasherize().camelize(),a=d.charAt(0).toUpperCase()+d.substring(1);new Effect[a](c,b);return c},highlight:function(b,a){b=$(b);new Effect.Highlight(b,a);return b}};$w("fade appear grow shrink fold blindUp blindDown slideUp slideDown pulsate shake puff squish switchOff dropOut").each(function(a){Effect.Methods[a]=function(c,b){c=$(c);Effect[a.charAt(0).toUpperCase()+a.substring(1)](c,b);return c}});$w("getInlineOpacity forceRerendering setContentZoom collectTextNodes collectTextNodesIgnoreClass getStyles").each(function(a){Effect.Methods[a]=Element[a]});Element.addMethods(Effect.Methods);if(typeof Effect=="undefined"){throw ("controls.js requires including script.aculo.us' effects.js library")}var Autocompleter={};Autocompleter.Base=Class.create({baseInitialize:function(b,c,a){b=$(b);this.element=b;this.update=$(c);this.hasFocus=false;this.changed=false;this.active=false;this.index=0;this.entryCount=0;this.oldElementValue=this.element.value;if(this.setOptions){this.setOptions(a)}else{this.options=a||{}}this.options.paramName=this.options.paramName||this.element.name;this.options.tokens=this.options.tokens||[];this.options.frequency=this.options.frequency||0.4;this.options.minChars=this.options.minChars||1;this.options.onShow=this.options.onShow||function(d,e){if(!e.style.position||e.style.position=="absolute"){e.style.position="absolute";Position.clone(d,e,{setHeight:false,offsetTop:d.offsetHeight-1})}Effect.Appear(e,{duration:0.15})};this.options.onHide=this.options.onHide||function(d,e){new Effect.Fade(e,{duration:0.15})};if(typeof(this.options.tokens)=="string"){this.options.tokens=new Array(this.options.tokens)}if(!this.options.tokens.include("\n")){this.options.tokens.push("\n")}this.observer=null;this.element.setAttribute("autocomplete","off");Element.hide(this.update);Event.observe(this.element,"blur",this.onBlur.bindAsEventListener(this));Event.observe(this.element,"keydown",this.onKeyPress.bindAsEventListener(this))},show:function(){if(Element.getStyle(this.update,"display")=="none"){this.options.onShow(this.element,this.update)}if(!this.iefix&&(Prototype.Browser.IE)&&(Element.getStyle(this.update,"position")=="absolute")){new Insertion.After(this.update,'<iframe id="'+this.update.id+'_iefix" style="display:none;position:absolute;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);" src="javascript:false;" frameborder="0" scrolling="no"></iframe>');this.iefix=$(this.update.id+"_iefix")}if(this.iefix){setTimeout(this.fixIEOverlapping.bind(this),50)}},fixIEOverlapping:function(){Position.clone(this.update,this.iefix,{setTop:(!this.update.style.height)});this.iefix.style.zIndex=1;this.update.style.zIndex=2;Element.show(this.iefix)},hide:function(){this.stopIndicator();if(Element.getStyle(this.update,"display")!="none"){this.options.onHide(this.element,this.update)}if(this.iefix){Element.hide(this.iefix)}},startIndicator:function(){if(this.options.indicator){Element.show(this.options.indicator)}},stopIndicator:function(){if(this.options.indicator){Element.hide(this.options.indicator)}},onKeyPress:function(a){this.onObserverEvent();if(this.active){switch(a.keyCode){case Event.KEY_TAB:case Event.KEY_RETURN:this.selectEntry();Event.stop(a);case Event.KEY_ESC:this.hide();this.active=false;Event.stop(a);return;case Event.KEY_LEFT:case Event.KEY_RIGHT:return;case Event.KEY_UP:this.markPrevious();this.render();Event.stop(a);return;case Event.KEY_DOWN:this.markNext();this.render();Event.stop(a);return}}else{if(a.keyCode==Event.KEY_TAB||a.keyCode==Event.KEY_RETURN||(Prototype.Browser.WebKit>0&&a.keyCode==0)){return}}this.changed=true;this.hasFocus=true;if(this.observer){clearTimeout(this.observer)}this.observer=setTimeout(this.onObserverEvent.bind(this),this.options.frequency*1000)},activate:function(){this.changed=false;this.hasFocus=true;this.getUpdatedChoices()},onHover:function(b){var a=Event.findElement(b,"LI");if(this.index!=a.autocompleteIndex){this.index=a.autocompleteIndex;this.render()}Event.stop(b)},onClick:function(b){var a=Event.findElement(b,"LI");this.index=a.autocompleteIndex;this.selectEntry();this.hide()},onBlur:function(a){setTimeout(this.hide.bind(this),250);this.hasFocus=false;this.active=false},render:function(){if(this.entryCount>0){for(var a=0;a<this.entryCount;a++){this.index==a?Element.addClassName(this.getEntry(a),"selected"):Element.removeClassName(this.getEntry(a),"selected")}if(this.hasFocus){this.show();this.active=true}}else{this.active=false;this.hide()}},markPrevious:function(){if(this.index>0){this.index--}else{this.index=this.entryCount-1}this.getEntry(this.index)},markNext:function(){if(this.index<this.entryCount-1){this.index++}else{this.index=0}this.getEntry(this.index)},getEntry:function(a){return this.update.firstChild.childNodes[a]},getCurrentEntry:function(){return this.getEntry(this.index)},selectEntry:function(){this.active=false;this.updateElement(this.getCurrentEntry());this.index=0},updateElement:function(f){if(this.options.updateElement){this.options.updateElement(f);return}var d="";if(this.options.select){var a=$(f).select("."+this.options.select)||[];if(a.length>0){d=Element.collectTextNodes(a[0],this.options.select)}}else{d=Element.collectTextNodesIgnoreClass(f,"informal")}var c=this.getTokenBounds();if(c[0]!=-1){var e=this.element.value.substr(0,c[0]);var b=this.element.value.substr(c[0]).match(/^\s+/);if(b){e+=b[0]}this.element.value=e+d+this.element.value.substr(c[1])}else{this.element.value=d}this.oldElementValue=this.element.value;this.element.focus();if(this.options.afterUpdateElement){this.options.afterUpdateElement(this.element,f)}},updateChoices:function(c){if(!this.changed&&this.hasFocus){this.update.innerHTML=c;Element.cleanWhitespace(this.update);Element.cleanWhitespace(this.update.down());if(this.update.firstChild&&this.update.down().childNodes){this.entryCount=this.update.down().childNodes.length;for(var a=0;a<this.entryCount;a++){var b=this.getEntry(a);b.autocompleteIndex=a;this.addObservers(b)}if(this.index>=this.entryCount){this.index=0}}else{this.entryCount=0}this.stopIndicator();if(this.entryCount==1&&this.options.autoSelect){this.selectEntry();this.hide()}else{this.render()}}},addObservers:function(a){Event.observe(a,"mouseover",this.onHover.bindAsEventListener(this));Event.observe(a,"click",this.onClick.bindAsEventListener(this))},onObserverEvent:function(){this.changed=false;this.tokenBounds=null;if(this.getToken().length>=this.options.minChars){this.getUpdatedChoices()}else{this.active=false;this.hide()}this.oldElementValue=this.element.value},getToken:function(){var a=this.getTokenBounds();return this.element.value.substring(a[0],a[1]).strip()},getTokenBounds:function(){if(null!=this.tokenBounds){return this.tokenBounds}var e=this.element.value;if(e.strip().empty()){return[-1,0]}var f=arguments.callee.getFirstDifferencePos(e,this.oldElementValue);var h=(f==this.oldElementValue.length?1:0);var d=-1,c=e.length;var g;for(var b=0,a=this.options.tokens.length;b<a;++b){g=e.lastIndexOf(this.options.tokens[b],f+h-1);if(g>d){d=g}g=e.indexOf(this.options.tokens[b],f+h);if(-1!=g&&g<c){c=g}}return(this.tokenBounds=[d+1,c])}});Autocompleter.Base.prototype.getTokenBounds.getFirstDifferencePos=function(c,a){var d=Math.min(c.length,a.length);for(var b=0;b<d;++b){if(c[b]!=a[b]){return b}}return d};Ajax.Autocompleter=Class.create(Autocompleter.Base,{initialize:function(c,d,b,a){this.baseInitialize(c,d,a);this.options.asynchronous=true;this.options.onComplete=this.onComplete.bind(this);this.options.defaultParams=this.options.parameters||null;this.url=b},getUpdatedChoices:function(){this.startIndicator();var a=encodeURIComponent(this.options.paramName)+"="+encodeURIComponent(this.getToken());this.options.parameters=this.options.callback?this.options.callback(this.element,a):a;if(this.options.defaultParams){this.options.parameters+="&"+this.options.defaultParams}new Ajax.Request(this.url,this.options)},onComplete:function(a){this.updateChoices(a.responseText)}});Autocompleter.Local=Class.create(Autocompleter.Base,{initialize:function(b,d,c,a){this.baseInitialize(b,d,a);this.options.array=c},getUpdatedChoices:function(){this.updateChoices(this.options.selector(this))},setOptions:function(a){this.options=Object.extend({choices:10,partialSearch:true,partialChars:2,ignoreCase:true,fullSearch:false,selector:function(b){var d=[];var c=[];var h=b.getToken();var g=0;for(var e=0;e<b.options.array.length&&d.length<b.options.choices;e++){var f=b.options.array[e];var j=b.options.ignoreCase?f.toLowerCase().indexOf(h.toLowerCase()):f.indexOf(h);while(j!=-1){if(j==0&&f.length!=h.length){d.push("<li><strong>"+f.substr(0,h.length)+"</strong>"+f.substr(h.length)+"</li>");break}else{if(h.length>=b.options.partialChars&&b.options.partialSearch&&j!=-1){if(b.options.fullSearch||/\s/.test(f.substr(j-1,1))){c.push("<li>"+f.substr(0,j)+"<strong>"+f.substr(j,h.length)+"</strong>"+f.substr(j+h.length)+"</li>");break}}}j=b.options.ignoreCase?f.toLowerCase().indexOf(h.toLowerCase(),j+1):f.indexOf(h,j+1)}}if(c.length){d=d.concat(c.slice(0,b.options.choices-d.length))}return"<ul>"+d.join("")+"</ul>"}},a||{})}});Field.scrollFreeActivate=function(a){setTimeout(function(){Field.activate(a)},1)};Ajax.InPlaceEditor=Class.create({initialize:function(c,b,a){this.url=b;this.element=c=$(c);this.prepareOptions();this._controls={};arguments.callee.dealWithDeprecatedOptions(a);Object.extend(this.options,a||{});if(!this.options.formId&&this.element.id){this.options.formId=this.element.id+"-inplaceeditor";if($(this.options.formId)){this.options.formId=""}}if(this.options.externalControl){this.options.externalControl=$(this.options.externalControl)}if(!this.options.externalControl){this.options.externalControlOnly=false}this._originalBackground=this.element.getStyle("background-color")||"transparent";this.element.title=this.options.clickToEditText;this._boundCancelHandler=this.handleFormCancellation.bind(this);this._boundComplete=(this.options.onComplete||Prototype.emptyFunction).bind(this);this._boundFailureHandler=this.handleAJAXFailure.bind(this);this._boundSubmitHandler=this.handleFormSubmission.bind(this);this._boundWrapperHandler=this.wrapUp.bind(this);this.registerListeners()},checkForEscapeOrReturn:function(a){if(!this._editing||a.ctrlKey||a.altKey||a.shiftKey){return}if(Event.KEY_ESC==a.keyCode){this.handleFormCancellation(a)}else{if(Event.KEY_RETURN==a.keyCode){this.handleFormSubmission(a)}}},createControl:function(g,c,b){var e=this.options[g+"Control"];var f=this.options[g+"Text"];if("button"==e){var a=document.createElement("input");a.type="submit";a.value=f;a.className="editor_"+g+"_button";if("cancel"==g){a.onclick=this._boundCancelHandler}this._form.appendChild(a);this._controls[g]=a}else{if("link"==e){var d=document.createElement("a");d.href="#";d.appendChild(document.createTextNode(f));d.onclick="cancel"==g?this._boundCancelHandler:this._boundSubmitHandler;d.className="editor_"+g+"_link";if(b){d.className+=" "+b}this._form.appendChild(d);this._controls[g]=d}}},createEditField:function(){var c=(this.options.loadTextURL?this.options.loadingText:this.getText());var b;if(1>=this.options.rows&&!/\r|\n/.test(this.getText())){b=document.createElement("input");b.type="text";var a=this.options.size||this.options.cols||0;if(0<a){b.size=a}}else{b=document.createElement("textarea");b.rows=(1>=this.options.rows?this.options.autoRows:this.options.rows);b.cols=this.options.cols||40}b.name=this.options.paramName;b.value=c;b.className="editor_field";if(this.options.submitOnBlur){b.onblur=this._boundSubmitHandler}this._controls.editor=b;if(this.options.loadTextURL){this.loadExternalText()}this._form.appendChild(this._controls.editor)},createForm:function(){var b=this;function a(d,e){var c=b.options["text"+d+"Controls"];if(!c||e===false){return}b._form.appendChild(document.createTextNode(c))}this._form=$(document.createElement("form"));this._form.id=this.options.formId;this._form.addClassName(this.options.formClassName);this._form.onsubmit=this._boundSubmitHandler;this.createEditField();if("textarea"==this._controls.editor.tagName.toLowerCase()){this._form.appendChild(document.createElement("br"))}if(this.options.onFormCustomization){this.options.onFormCustomization(this,this._form)}a("Before",this.options.okControl||this.options.cancelControl);this.createControl("ok",this._boundSubmitHandler);a("Between",this.options.okControl&&this.options.cancelControl);this.createControl("cancel",this._boundCancelHandler,"editor_cancel");a("After",this.options.okControl||this.options.cancelControl)},destroy:function(){if(this._oldInnerHTML){this.element.innerHTML=this._oldInnerHTML}this.leaveEditMode();this.unregisterListeners()},enterEditMode:function(a){if(this._saving||this._editing){return}this._editing=true;this.triggerCallback("onEnterEditMode");if(this.options.externalControl){this.options.externalControl.hide()}this.element.hide();this.createForm();this.element.parentNode.insertBefore(this._form,this.element);if(!this.options.loadTextURL){this.postProcessEditField()}if(a){Event.stop(a)}},enterHover:function(a){if(this.options.hoverClassName){this.element.addClassName(this.options.hoverClassName)}if(this._saving){return}this.triggerCallback("onEnterHover")},getText:function(){return this.element.innerHTML.unescapeHTML()},handleAJAXFailure:function(a){this.triggerCallback("onFailure",a);if(this._oldInnerHTML){this.element.innerHTML=this._oldInnerHTML;this._oldInnerHTML=null}},handleFormCancellation:function(a){this.wrapUp();if(a){Event.stop(a)}},handleFormSubmission:function(d){var b=this._form;var c=$F(this._controls.editor);this.prepareSubmission();var f=this.options.callback(b,c)||"";if(Object.isString(f)){f=f.toQueryParams()}f.editorId=this.element.id;if(this.options.htmlResponse){var a=Object.extend({evalScripts:true},this.options.ajaxOptions);Object.extend(a,{parameters:f,onComplete:this._boundWrapperHandler,onFailure:this._boundFailureHandler});new Ajax.Updater({success:this.element},this.url,a)}else{var a=Object.extend({method:"get"},this.options.ajaxOptions);Object.extend(a,{parameters:f,onComplete:this._boundWrapperHandler,onFailure:this._boundFailureHandler});new Ajax.Request(this.url,a)}if(d){Event.stop(d)}},leaveEditMode:function(){this.element.removeClassName(this.options.savingClassName);this.removeForm();this.leaveHover();this.element.style.backgroundColor=this._originalBackground;this.element.show();if(this.options.externalControl){this.options.externalControl.show()}this._saving=false;this._editing=false;this._oldInnerHTML=null;this.triggerCallback("onLeaveEditMode")},leaveHover:function(a){if(this.options.hoverClassName){this.element.removeClassName(this.options.hoverClassName)}if(this._saving){return}this.triggerCallback("onLeaveHover")},loadExternalText:function(){this._form.addClassName(this.options.loadingClassName);this._controls.editor.disabled=true;var a=Object.extend({method:"get"},this.options.ajaxOptions);Object.extend(a,{parameters:"editorId="+encodeURIComponent(this.element.id),onComplete:Prototype.emptyFunction,onSuccess:function(c){this._form.removeClassName(this.options.loadingClassName);var b=c.responseText;if(this.options.stripLoadedTextTags){b=b.stripTags()}this._controls.editor.value=b;this._controls.editor.disabled=false;this.postProcessEditField()}.bind(this),onFailure:this._boundFailureHandler});new Ajax.Request(this.options.loadTextURL,a)},postProcessEditField:function(){var a=this.options.fieldPostCreation;if(a){$(this._controls.editor)["focus"==a?"focus":"activate"]()}},prepareOptions:function(){this.options=Object.clone(Ajax.InPlaceEditor.DefaultOptions);Object.extend(this.options,Ajax.InPlaceEditor.DefaultCallbacks);[this._extraDefaultOptions].flatten().compact().each(function(a){Object.extend(this.options,a)}.bind(this))},prepareSubmission:function(){this._saving=true;this.removeForm();this.leaveHover();this.showSaving()},registerListeners:function(){this._listeners={};var a;$H(Ajax.InPlaceEditor.Listeners).each(function(b){a=this[b.value].bind(this);this._listeners[b.key]=a;if(!this.options.externalControlOnly){this.element.observe(b.key,a)}if(this.options.externalControl){this.options.externalControl.observe(b.key,a)}}.bind(this))},removeForm:function(){if(!this._form){return}this._form.remove();this._form=null;this._controls={}},showSaving:function(){this._oldInnerHTML=this.element.innerHTML;this.element.innerHTML=this.options.savingText;this.element.addClassName(this.options.savingClassName);this.element.style.backgroundColor=this._originalBackground;this.element.show()},triggerCallback:function(b,a){if("function"==typeof this.options[b]){this.options[b](this,a)}},unregisterListeners:function(){$H(this._listeners).each(function(a){if(!this.options.externalControlOnly){this.element.stopObserving(a.key,a.value)}if(this.options.externalControl){this.options.externalControl.stopObserving(a.key,a.value)}}.bind(this))},wrapUp:function(a){this.leaveEditMode();this._boundComplete(a,this.element)}});Object.extend(Ajax.InPlaceEditor.prototype,{dispose:Ajax.InPlaceEditor.prototype.destroy});Ajax.InPlaceCollectionEditor=Class.create(Ajax.InPlaceEditor,{initialize:function($super,c,b,a){this._extraDefaultOptions=Ajax.InPlaceCollectionEditor.DefaultOptions;$super(c,b,a)},createEditField:function(){var a=document.createElement("select");a.name=this.options.paramName;a.size=1;this._controls.editor=a;this._collection=this.options.collection||[];if(this.options.loadCollectionURL){this.loadCollection()}else{this.checkForExternalText()}this._form.appendChild(this._controls.editor)},loadCollection:function(){this._form.addClassName(this.options.loadingClassName);this.showLoadingText(this.options.loadingCollectionText);var options=Object.extend({method:"get"},this.options.ajaxOptions);Object.extend(options,{parameters:"editorId="+encodeURIComponent(this.element.id),onComplete:Prototype.emptyFunction,onSuccess:function(transport){var js=transport.responseText.strip();if(!/^\[.*\]$/.test(js)){throw ("Server returned an invalid collection representation.")}this._collection=eval(js);this.checkForExternalText()}.bind(this),onFailure:this.onFailure});new Ajax.Request(this.options.loadCollectionURL,options)},showLoadingText:function(b){this._controls.editor.disabled=true;var a=this._controls.editor.firstChild;if(!a){a=document.createElement("option");a.value="";this._controls.editor.appendChild(a);a.selected=true}a.update((b||"").stripScripts().stripTags())},checkForExternalText:function(){this._text=this.getText();if(this.options.loadTextURL){this.loadExternalText()}else{this.buildOptionList()}},loadExternalText:function(){this.showLoadingText(this.options.loadingText);var a=Object.extend({method:"get"},this.options.ajaxOptions);Object.extend(a,{parameters:"editorId="+encodeURIComponent(this.element.id),onComplete:Prototype.emptyFunction,onSuccess:function(b){this._text=b.responseText.strip();this.buildOptionList()}.bind(this),onFailure:this.onFailure});new Ajax.Request(this.options.loadTextURL,a)},buildOptionList:function(){this._form.removeClassName(this.options.loadingClassName);this._collection=this._collection.map(function(d){return 2===d.length?d:[d,d].flatten()});var b=("value" in this.options)?this.options.value:this._text;var a=this._collection.any(function(d){return d[0]==b}.bind(this));this._controls.editor.update("");var c;this._collection.each(function(e,d){c=document.createElement("option");c.value=e[0];c.selected=a?e[0]==b:0==d;c.appendChild(document.createTextNode(e[1]));this._controls.editor.appendChild(c)}.bind(this));this._controls.editor.disabled=false;Field.scrollFreeActivate(this._controls.editor)}});Ajax.InPlaceEditor.prototype.initialize.dealWithDeprecatedOptions=function(a){if(!a){return}function b(c,d){if(c in a||d===undefined){return}a[c]=d}b("cancelControl",(a.cancelLink?"link":(a.cancelButton?"button":a.cancelLink==a.cancelButton==false?false:undefined)));b("okControl",(a.okLink?"link":(a.okButton?"button":a.okLink==a.okButton==false?false:undefined)));b("highlightColor",a.highlightcolor);b("highlightEndColor",a.highlightendcolor)};Object.extend(Ajax.InPlaceEditor,{DefaultOptions:{ajaxOptions:{},autoRows:3,cancelControl:"link",cancelText:"cancel",clickToEditText:"Click to edit",externalControl:null,externalControlOnly:false,fieldPostCreation:"activate",formClassName:"inplaceeditor-form",formId:null,highlightColor:"#ffff99",highlightEndColor:"#ffffff",hoverClassName:"",htmlResponse:true,loadingClassName:"inplaceeditor-loading",loadingText:"Loading...",okControl:"button",okText:"ok",paramName:"value",rows:1,savingClassName:"inplaceeditor-saving",savingText:"Saving...",size:0,stripLoadedTextTags:false,submitOnBlur:false,textAfterControls:"",textBeforeControls:"",textBetweenControls:""},DefaultCallbacks:{callback:function(a){return Form.serialize(a)},onComplete:function(b,a){new Effect.Highlight(a,{startcolor:this.options.highlightColor,keepBackgroundImage:true})},onEnterEditMode:null,onEnterHover:function(a){a.element.style.backgroundColor=a.options.highlightColor;if(a._effect){a._effect.cancel()}},onFailure:function(b,a){alert("Error communication with the server: "+b.responseText.stripTags())},onFormCustomization:null,onLeaveEditMode:null,onLeaveHover:function(a){a._effect=new Effect.Highlight(a.element,{startcolor:a.options.highlightColor,endcolor:a.options.highlightEndColor,restorecolor:a._originalBackground,keepBackgroundImage:true})}},Listeners:{click:"enterEditMode",keydown:"checkForEscapeOrReturn",mouseover:"enterHover",mouseout:"leaveHover"}});Ajax.InPlaceCollectionEditor.DefaultOptions={loadingCollectionText:"Loading options..."};Form.Element.DelayedObserver=Class.create({initialize:function(b,a,c){this.delay=a||0.5;this.element=$(b);this.callback=c;this.timer=null;this.lastValue=$F(this.element);Event.observe(this.element,"keyup",this.delayedListener.bindAsEventListener(this))},delayedListener:function(a){if(this.lastValue==$F(this.element)){return}if(this.timer){clearTimeout(this.timer)}this.timer=setTimeout(this.onTimerEvent.bind(this),this.delay*1000);this.lastValue=$F(this.element)},onTimerEvent:function(){this.timer=null;this.callback(this.element,$F(this.element))}});var Builder={NODEMAP:{AREA:"map",CAPTION:"table",COL:"table",COLGROUP:"table",LEGEND:"fieldset",OPTGROUP:"select",OPTION:"select",PARAM:"object",TBODY:"table",TD:"table",TFOOT:"table",TH:"table",THEAD:"table",TR:"table"},node:function(a){a=a.toUpperCase();var g=this.NODEMAP[a]||"div";var b=document.createElement(g);try{b.innerHTML="<"+a+"></"+a+">"}catch(f){}var d=b.firstChild||null;if(d&&(d.tagName.toUpperCase()!=a)){d=d.getElementsByTagName(a)[0]}if(!d){d=document.createElement(a)}if(!d){return}if(arguments[1]){if(this._isStringOrNumber(arguments[1])||(arguments[1] instanceof Array)||arguments[1].tagName){this._children(d,arguments[1])}else{var c=this._attributes(arguments[1]);if(c.length){try{b.innerHTML="<"+a+" "+c+"></"+a+">"}catch(f){}d=b.firstChild||null;if(!d){d=document.createElement(a);for(attr in arguments[1]){d[attr=="class"?"className":attr]=arguments[1][attr]}}if(d.tagName.toUpperCase()!=a){d=b.getElementsByTagName(a)[0]}}}}if(arguments[2]){this._children(d,arguments[2])}return $(d)},_text:function(a){return document.createTextNode(a)},ATTR_MAP:{className:"class",htmlFor:"for"},_attributes:function(a){var b=[];for(attribute in a){b.push((attribute in this.ATTR_MAP?this.ATTR_MAP[attribute]:attribute)+'="'+a[attribute].toString().escapeHTML().gsub(/"/,"&quot;")+'"')}return b.join(" ")},_children:function(b,a){if(a.tagName){b.appendChild(a);return}if(typeof a=="object"){a.flatten().each(function(c){if(typeof c=="object"){b.appendChild(c)}else{if(Builder._isStringOrNumber(c)){b.appendChild(Builder._text(c))}}})}else{if(Builder._isStringOrNumber(a)){b.appendChild(Builder._text(a))}}},_isStringOrNumber:function(a){return(typeof a=="string"||typeof a=="number")},build:function(b){var a=this.node("div");$(a).update(b.strip());return a.down()},dump:function(b){if(typeof b!="object"&&typeof b!="function"){b=window}var a=("A ABBR ACRONYM ADDRESS APPLET AREA B BASE BASEFONT BDO BIG BLOCKQUOTE BODY BR BUTTON CAPTION CENTER CITE CODE COL COLGROUP DD DEL DFN DIR DIV DL DT EM FIELDSET FONT FORM FRAME FRAMESET H1 H2 H3 H4 H5 H6 HEAD HR HTML I IFRAME IMG INPUT INS ISINDEX KBD LABEL LEGEND LI LINK MAP MENU META NOFRAMES NOSCRIPT OBJECT OL OPTGROUP OPTION P PARAM PRE Q S SAMP SCRIPT SELECT SMALL SPAN STRIKE STRONG STYLE SUB SUP TABLE TBODY TD TEXTAREA TFOOT TH THEAD TITLE TR TT U UL VAR").split(/\s+/);a.each(function(c){b[c]=function(){return Builder.node.apply(Builder,[c].concat($A(arguments)))}})}};if(!Control){var Control={}}Control.Slider=Class.create({initialize:function(d,a,b){var c=this;if(Object.isArray(d)){this.handles=d.collect(function(f){return $(f)})}else{this.handles=[$(d)]}this.track=$(a);this.options=b||{};this.axis=this.options.axis||"horizontal";this.increment=this.options.increment||1;this.step=parseInt(this.options.step||"1");this.range=this.options.range||$R(0,1);this.value=0;this.values=this.handles.map(function(){return 0});this.spans=this.options.spans?this.options.spans.map(function(e){return $(e)}):false;this.options.startSpan=$(this.options.startSpan||null);this.options.endSpan=$(this.options.endSpan||null);this.restricted=this.options.restricted||false;this.maximum=this.options.maximum||this.range.end;this.minimum=this.options.minimum||this.range.start;this.alignX=parseInt(this.options.alignX||"0");this.alignY=parseInt(this.options.alignY||"0");this.trackLength=this.maximumOffset()-this.minimumOffset();this.handleLength=this.isVertical()?(this.handles[0].offsetHeight!=0?this.handles[0].offsetHeight:this.handles[0].style.height.replace(/px$/,"")):(this.handles[0].offsetWidth!=0?this.handles[0].offsetWidth:this.handles[0].style.width.replace(/px$/,""));this.active=false;this.dragging=false;this.disabled=false;if(this.options.disabled){this.setDisabled()}this.allowedValues=this.options.values?this.options.values.sortBy(Prototype.K):false;if(this.allowedValues){this.minimum=this.allowedValues.min();this.maximum=this.allowedValues.max()}this.eventMouseDown=this.startDrag.bindAsEventListener(this);this.eventMouseUp=this.endDrag.bindAsEventListener(this);this.eventMouseMove=this.update.bindAsEventListener(this);this.handles.each(function(f,e){e=c.handles.length-1-e;c.setValue(parseFloat((Object.isArray(c.options.sliderValue)?c.options.sliderValue[e]:c.options.sliderValue)||c.range.start),e);f.makePositioned().observe("mousedown",c.eventMouseDown)});this.track.observe("mousedown",this.eventMouseDown);document.observe("mouseup",this.eventMouseUp);document.observe("mousemove",this.eventMouseMove);this.initialized=true},dispose:function(){var a=this;Event.stopObserving(this.track,"mousedown",this.eventMouseDown);Event.stopObserving(document,"mouseup",this.eventMouseUp);Event.stopObserving(document,"mousemove",this.eventMouseMove);this.handles.each(function(b){Event.stopObserving(b,"mousedown",a.eventMouseDown)})},setDisabled:function(){this.disabled=true},setEnabled:function(){this.disabled=false},getNearestValue:function(a){if(this.allowedValues){if(a>=this.allowedValues.max()){return(this.allowedValues.max())}if(a<=this.allowedValues.min()){return(this.allowedValues.min())}var c=Math.abs(this.allowedValues[0]-a);var b=this.allowedValues[0];this.allowedValues.each(function(d){var e=Math.abs(d-a);if(e<=c){b=d;c=e}});return b}if(a>this.range.end){return this.range.end}if(a<this.range.start){return this.range.start}return a},setValue:function(b,a){if(!this.active){this.activeHandleIdx=a||0;this.activeHandle=this.handles[this.activeHandleIdx];this.updateStyles()}a=a||this.activeHandleIdx||0;if(this.initialized&&this.restricted){if((a>0)&&(b<this.values[a-1])){b=this.values[a-1]}if((a<(this.handles.length-1))&&(b>this.values[a+1])){b=this.values[a+1]}}b=this.getNearestValue(b);this.values[a]=b;this.value=this.values[0];this.handles[a].style[this.isVertical()?"top":"left"]=this.translateToPx(b);this.drawSpans();if(!this.dragging||!this.event){this.updateFinished()}},setValueBy:function(b,a){this.setValue(this.values[a||this.activeHandleIdx||0]+b,a||this.activeHandleIdx||0)},translateToPx:function(a){return Math.round(((this.trackLength-this.handleLength)/(this.range.end-this.range.start))*(a-this.range.start))+"px"},translateToValue:function(a){return((a/(this.trackLength-this.handleLength)*(this.range.end-this.range.start))+this.range.start)},getRange:function(b){var a=this.values.sortBy(Prototype.K);b=b||0;return $R(a[b],a[b+1])},minimumOffset:function(){return(this.isVertical()?this.alignY:this.alignX)},maximumOffset:function(){return(this.isVertical()?(this.track.offsetHeight!=0?this.track.offsetHeight:this.track.style.height.replace(/px$/,""))-this.alignY:(this.track.offsetWidth!=0?this.track.offsetWidth:this.track.style.width.replace(/px$/,""))-this.alignX)},isVertical:function(){return(this.axis=="vertical")},drawSpans:function(){var a=this;if(this.spans){$R(0,this.spans.length-1).each(function(b){a.setSpan(a.spans[b],a.getRange(b))})}if(this.options.startSpan){this.setSpan(this.options.startSpan,$R(0,this.values.length>1?this.getRange(0).min():this.value))}if(this.options.endSpan){this.setSpan(this.options.endSpan,$R(this.values.length>1?this.getRange(this.spans.length-1).max():this.value,this.maximum))}},setSpan:function(b,a){if(this.isVertical()){b.style.top=this.translateToPx(a.start);b.style.height=this.translateToPx(a.end-a.start+this.range.start)}else{b.style.left=this.translateToPx(a.start);b.style.width=this.translateToPx(a.end-a.start+this.range.start)}},updateStyles:function(){this.handles.each(function(a){Element.removeClassName(a,"selected")});Element.addClassName(this.activeHandle,"selected")},startDrag:function(c){if(Event.isLeftClick(c)){if(!this.disabled){this.active=true;var d=Event.element(c);var e=[Event.pointerX(c),Event.pointerY(c)];var a=d;if(a==this.track){var b=this.track.cumulativeOffset();this.event=c;this.setValue(this.translateToValue((this.isVertical()?e[1]-b[1]:e[0]-b[0])-(this.handleLength/2)));var b=this.activeHandle.cumulativeOffset();this.offsetX=(e[0]-b[0]);this.offsetY=(e[1]-b[1])}else{while((this.handles.indexOf(d)==-1)&&d.parentNode){d=d.parentNode}if(this.handles.indexOf(d)!=-1){this.activeHandle=d;this.activeHandleIdx=this.handles.indexOf(this.activeHandle);this.updateStyles();var b=this.activeHandle.cumulativeOffset();this.offsetX=(e[0]-b[0]);this.offsetY=(e[1]-b[1])}}}Event.stop(c)}},update:function(a){if(this.active){if(!this.dragging){this.dragging=true}this.draw(a);if(Prototype.Browser.WebKit){window.scrollBy(0,0)}Event.stop(a)}},draw:function(b){var c=[Event.pointerX(b),Event.pointerY(b)];var a=this.track.cumulativeOffset();c[0]-=this.offsetX+a[0];c[1]-=this.offsetY+a[1];this.event=b;this.setValue(this.translateToValue(this.isVertical()?c[1]:c[0]));if(this.initialized&&this.options.onSlide){this.options.onSlide(this.values.length>1?this.values:this.value,this)}},endDrag:function(a){if(this.active&&this.dragging){this.finishDrag(a,true);Event.stop(a)}this.active=false;this.dragging=false},finishDrag:function(a,b){this.active=false;this.dragging=false;this.updateFinished()},updateFinished:function(){if(this.initialized&&this.options.onChange){this.options.onChange(this.values.length>1?this.values:this.value,this)}this.event=null}});
/*	SWFObject v2.2 <http://code.google.com/p/swfobject/> 
	is released under the MIT License <http://www.opensource.org/licenses/mit-license.php> 
*/
var swfobject=function(){var E="undefined",s="object",T="Shockwave Flash",X="ShockwaveFlash.ShockwaveFlash",r="application/x-shockwave-flash",S="SWFObjectExprInst",y="onreadystatechange",P=window,k=document,u=navigator,U=false,V=[h],p=[],O=[],J=[],m,R,F,C,K=false,a=false,o,H,n=true,N=function(){var ab=typeof k.getElementById!=E&&typeof k.getElementsByTagName!=E&&typeof k.createElement!=E,ai=u.userAgent.toLowerCase(),Z=u.platform.toLowerCase(),af=Z?/win/.test(Z):/win/.test(ai),ad=Z?/mac/.test(Z):/mac/.test(ai),ag=/webkit/.test(ai)?parseFloat(ai.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,Y=!+"\v1",ah=[0,0,0],ac=null;if(typeof u.plugins!=E&&typeof u.plugins[T]==s){ac=u.plugins[T].description;if(ac&&!(typeof u.mimeTypes!=E&&u.mimeTypes[r]&&!u.mimeTypes[r].enabledPlugin)){U=true;Y=false;ac=ac.replace(/^.*\s+(\S+\s+\S+$)/,"$1");ah[0]=parseInt(ac.replace(/^(.*)\..*$/,"$1"),10);ah[1]=parseInt(ac.replace(/^.*\.(.*)\s.*$/,"$1"),10);ah[2]=/[a-zA-Z]/.test(ac)?parseInt(ac.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else{if(typeof P.ActiveXObject!=E){try{var ae=new ActiveXObject(X);if(ae){ac=ae.GetVariable("$version");if(ac){Y=true;ac=ac.split(" ")[1].split(",");ah=[parseInt(ac[0],10),parseInt(ac[1],10),parseInt(ac[2],10)]}}}catch(aa){}}}return{w3:ab,pv:ah,wk:ag,ie:Y,win:af,mac:ad}}(),l=function(){if(!N.w3){return}if((typeof k.readyState!=E&&k.readyState=="complete")||(typeof k.readyState==E&&(k.getElementsByTagName("body")[0]||k.body))){f()}if(!K){if(typeof k.addEventListener!=E){k.addEventListener("DOMContentLoaded",f,false)}if(N.ie&&N.win){k.attachEvent(y,function(){if(k.readyState=="complete"){k.detachEvent(y,arguments.callee);f()}});if(P==top){(function(){if(K){return}try{k.documentElement.doScroll("left")}catch(Y){setTimeout(arguments.callee,0);return}f()})()}}if(N.wk){(function(){if(K){return}if(!/loaded|complete/.test(k.readyState)){setTimeout(arguments.callee,0);return}f()})()}t(f)}}();function f(){if(K){return}try{var aa=k.getElementsByTagName("body")[0].appendChild(D("span"));aa.parentNode.removeChild(aa)}catch(ab){return}K=true;var Y=V.length;for(var Z=0;Z<Y;Z++){V[Z]()}}function L(Y){if(K){Y()}else{V[V.length]=Y}}function t(Z){if(typeof P.addEventListener!=E){P.addEventListener("load",Z,false)}else{if(typeof k.addEventListener!=E){k.addEventListener("load",Z,false)}else{if(typeof P.attachEvent!=E){j(P,"onload",Z)}else{if(typeof P.onload=="function"){var Y=P.onload;P.onload=function(){Y();Z()}}else{P.onload=Z}}}}}function h(){if(U){W()}else{I()}}function W(){var Y=k.getElementsByTagName("body")[0];var ab=D(s);ab.setAttribute("type",r);var aa=Y.appendChild(ab);if(aa){var Z=0;(function(){if(typeof aa.GetVariable!=E){var ac=aa.GetVariable("$version");if(ac){ac=ac.split(" ")[1].split(",");N.pv=[parseInt(ac[0],10),parseInt(ac[1],10),parseInt(ac[2],10)]}}else{if(Z<10){Z++;setTimeout(arguments.callee,10);return}}Y.removeChild(ab);aa=null;I()})()}else{I()}}function I(){var ah=p.length;if(ah>0){for(var ag=0;ag<ah;ag++){var Z=p[ag].id;var ac=p[ag].callbackFn;var ab={success:false,id:Z};if(N.pv[0]>0){var af=c(Z);if(af){if(G(p[ag].swfVersion)&&!(N.wk&&N.wk<312)){x(Z,true);if(ac){ab.success=true;ab.ref=A(Z);ac(ab)}}else{if(p[ag].expressInstall&&B()){var aj={};aj.data=p[ag].expressInstall;aj.width=af.getAttribute("width")||"0";aj.height=af.getAttribute("height")||"0";if(af.getAttribute("class")){aj.styleclass=af.getAttribute("class")}if(af.getAttribute("align")){aj.align=af.getAttribute("align")}var ai={};var Y=af.getElementsByTagName("param");var ad=Y.length;for(var ae=0;ae<ad;ae++){if(Y[ae].getAttribute("name").toLowerCase()!="movie"){ai[Y[ae].getAttribute("name")]=Y[ae].getAttribute("value")}}Q(aj,ai,Z,ac)}else{q(af);if(ac){ac(ab)}}}}}else{x(Z,true);if(ac){var aa=A(Z);if(aa&&typeof aa.SetVariable!=E){ab.success=true;ab.ref=aa}ac(ab)}}}}}function A(ab){var Y=null;var Z=c(ab);if(Z&&Z.nodeName=="OBJECT"){if(typeof Z.SetVariable!=E){Y=Z}else{var aa=Z.getElementsByTagName(s)[0];if(aa){Y=aa}}}return Y}function B(){return !a&&G("6.0.65")&&(N.win||N.mac)&&!(N.wk&&N.wk<312)}function Q(ab,ac,Y,aa){a=true;F=aa||null;C={success:false,id:Y};var af=c(Y);if(af){if(af.nodeName=="OBJECT"){m=g(af);R=null}else{m=af;R=Y}ab.id=S;if(typeof ab.width==E||(!/%$/.test(ab.width)&&parseInt(ab.width,10)<310)){ab.width="310"}if(typeof ab.height==E||(!/%$/.test(ab.height)&&parseInt(ab.height,10)<137)){ab.height="137"}k.title=k.title.slice(0,47)+" - Flash Player Installation";var ae=N.ie&&N.win?"ActiveX":"PlugIn",ad="MMredirectURL="+P.location.toString().replace(/&/g,"%26")+"&MMplayerType="+ae+"&MMdoctitle="+k.title;if(typeof ac.flashvars!=E){ac.flashvars+="&"+ad}else{ac.flashvars=ad}if(N.ie&&N.win&&af.readyState!=4){var Z=D("div");Y+="SWFObjectNew";Z.setAttribute("id",Y);af.parentNode.insertBefore(Z,af);af.style.display="none";(function(){if(af.readyState==4){af.parentNode.removeChild(af)}else{setTimeout(arguments.callee,10)}})()}v(ab,ac,Y)}}function q(Z){if(N.ie&&N.win&&Z.readyState!=4){var Y=D("div");Z.parentNode.insertBefore(Y,Z);Y.parentNode.replaceChild(g(Z),Y);Z.style.display="none";(function(){if(Z.readyState==4){Z.parentNode.removeChild(Z)}else{setTimeout(arguments.callee,10)}})()}else{Z.parentNode.replaceChild(g(Z),Z)}}function g(ad){var ab=D("div");if(N.win&&N.ie){ab.innerHTML=ad.innerHTML}else{var Z=ad.getElementsByTagName(s)[0];if(Z){var ae=Z.childNodes;if(ae){var Y=ae.length;for(var aa=0;aa<Y;aa++){if(!(ae[aa].nodeType==1&&ae[aa].nodeName=="PARAM")&&!(ae[aa].nodeType==8)){ab.appendChild(ae[aa].cloneNode(true))}}}}}return ab}function v(aj,ah,Z){var Y,ab=c(Z);if(N.wk&&N.wk<312){return Y}if(ab){if(typeof aj.id==E){aj.id=Z}if(N.ie&&N.win){var ai="";for(var af in aj){if(aj[af]!=Object.prototype[af]){if(af.toLowerCase()=="data"){ah.movie=aj[af]}else{if(af.toLowerCase()=="styleclass"){ai+=' class="'+aj[af]+'"'}else{if(af.toLowerCase()!="classid"){ai+=" "+af+'="'+aj[af]+'"'}}}}}var ag="";for(var ae in ah){if(ah[ae]!=Object.prototype[ae]){ag+='<param name="'+ae+'" value="'+ah[ae]+'" />'}}ab.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+ai+">"+ag+"</object>";O[O.length]=aj.id;Y=c(aj.id)}else{var aa=D(s);aa.setAttribute("type",r);for(var ad in aj){if(aj[ad]!=Object.prototype[ad]){if(ad.toLowerCase()=="styleclass"){aa.setAttribute("class",aj[ad])}else{if(ad.toLowerCase()!="classid"){aa.setAttribute(ad,aj[ad])}}}}for(var ac in ah){if(ah[ac]!=Object.prototype[ac]&&ac.toLowerCase()!="movie"){e(aa,ac,ah[ac])}}ab.parentNode.replaceChild(aa,ab);Y=aa}}return Y}function e(aa,Y,Z){var ab=D("param");ab.setAttribute("name",Y);ab.setAttribute("value",Z);aa.appendChild(ab)}function z(Z){var Y=c(Z);if(Y&&Y.nodeName=="OBJECT"){if(N.ie&&N.win){Y.style.display="none";(function(){if(Y.readyState==4){b(Z)}else{setTimeout(arguments.callee,10)}})()}else{Y.parentNode.removeChild(Y)}}}function b(aa){var Z=c(aa);if(Z){for(var Y in Z){if(typeof Z[Y]=="function"){Z[Y]=null}}Z.parentNode.removeChild(Z)}}function c(aa){var Y=null;try{Y=k.getElementById(aa)}catch(Z){}return Y}function D(Y){return k.createElement(Y)}function j(aa,Y,Z){aa.attachEvent(Y,Z);J[J.length]=[aa,Y,Z]}function G(aa){var Z=N.pv,Y=aa.split(".");Y[0]=parseInt(Y[0],10);Y[1]=parseInt(Y[1],10)||0;Y[2]=parseInt(Y[2],10)||0;return(Z[0]>Y[0]||(Z[0]==Y[0]&&Z[1]>Y[1])||(Z[0]==Y[0]&&Z[1]==Y[1]&&Z[2]>=Y[2]))?true:false}function w(ad,Z,ae,ac){if(N.ie&&N.mac){return}var ab=k.getElementsByTagName("head")[0];if(!ab){return}var Y=(ae&&typeof ae=="string")?ae:"screen";if(ac){o=null;H=null}if(!o||H!=Y){var aa=D("style");aa.setAttribute("type","text/css");aa.setAttribute("media",Y);o=ab.appendChild(aa);if(N.ie&&N.win&&typeof k.styleSheets!=E&&k.styleSheets.length>0){o=k.styleSheets[k.styleSheets.length-1]}H=Y}if(N.ie&&N.win){if(o&&typeof o.addRule==s){o.addRule(ad,Z)}}else{if(o&&typeof k.createTextNode!=E){o.appendChild(k.createTextNode(ad+" {"+Z+"}"))}}}function x(aa,Y){if(!n){return}var Z=Y?"visible":"hidden";if(K&&c(aa)){c(aa).style.visibility=Z}else{w("#"+aa,"visibility:"+Z)}}function M(Z){var aa=/[\\\"<>\.;]/;var Y=aa.exec(Z)!=null;return Y&&typeof encodeURIComponent!=E?encodeURIComponent(Z):Z}var d=function(){if(N.ie&&N.win){window.attachEvent("onunload",function(){var ad=J.length;for(var ac=0;ac<ad;ac++){J[ac][0].detachEvent(J[ac][1],J[ac][2])}var aa=O.length;for(var ab=0;ab<aa;ab++){z(O[ab])}for(var Z in N){N[Z]=null}N=null;for(var Y in swfobject){swfobject[Y]=null}swfobject=null})}}();return{registerObject:function(ac,Y,ab,aa){if(N.w3&&ac&&Y){var Z={};Z.id=ac;Z.swfVersion=Y;Z.expressInstall=ab;Z.callbackFn=aa;p[p.length]=Z;x(ac,false)}else{if(aa){aa({success:false,id:ac})}}},getObjectById:function(Y){if(N.w3){return A(Y)}},embedSWF:function(ac,ai,af,ah,Z,ab,aa,ae,ag,ad){var Y={success:false,id:ai};if(N.w3&&!(N.wk&&N.wk<312)&&ac&&ai&&af&&ah&&Z){x(ai,false);L(function(){af+="";ah+="";var ak={};if(ag&&typeof ag===s){for(var am in ag){ak[am]=ag[am]}}ak.data=ac;ak.width=af;ak.height=ah;var an={};if(ae&&typeof ae===s){for(var al in ae){an[al]=ae[al]}}if(aa&&typeof aa===s){for(var aj in aa){if(typeof an.flashvars!=E){an.flashvars+="&"+aj+"="+aa[aj]}else{an.flashvars=aj+"="+aa[aj]}}}if(G(Z)){var ao=v(ak,an,ai);if(ak.id==ai){x(ai,true)}Y.success=true;Y.ref=ao}else{if(ab&&B()){ak.data=ab;Q(ak,an,ai,ad);return}else{x(ai,true)}}if(ad){ad(Y)}})}else{if(ad){ad(Y)}}},switchOffAutoHideShow:function(){n=false},ua:N,getFlashPlayerVersion:function(){return{major:N.pv[0],minor:N.pv[1],release:N.pv[2]}},hasFlashPlayerVersion:G,createSWF:function(aa,Z,Y){if(N.w3){return v(aa,Z,Y)}else{return undefined}},showExpressInstall:function(aa,ab,Y,Z){if(N.w3&&B()){Q(aa,ab,Y,Z)}},removeSWF:function(Y){if(N.w3){z(Y)}},createCSS:function(ab,aa,Z,Y){if(N.w3){w(ab,aa,Z,Y)}},addDomLoadEvent:L,addLoadEvent:t,getQueryParamValue:function(ab){var aa=k.location.search||k.location.hash;if(aa){if(/\?/.test(aa)){aa=aa.split("?")[1]}if(ab==null){return M(aa)}var Z=aa.split("&");for(var Y=0;Y<Z.length;Y++){if(Z[Y].substring(0,Z[Y].indexOf("="))==ab){return M(Z[Y].substring((Z[Y].indexOf("=")+1)))}}}return""},expressInstallCallback:function(){if(a){var Y=c(S);if(Y&&m){Y.parentNode.replaceChild(m,Y);if(R){x(R,true);if(N.ie&&N.win){m.style.display="block"}}if(F){F(C)}}a=false}}}}();var _gat=new Object({c:"length",lb:"4.3",m:"cookie",b:undefined,cb:function(c,b){this.zb=c;this.Nb=b},r:"__utma=",W:"__utmb=",ma:"__utmc=",Ta:"__utmk=",na:"__utmv=",oa:"__utmx=",Sa:"GASO=",X:"__utmz=",lc:"http://www.google-analytics.com/__utm.gif",mc:"https://ssl.google-analytics.com/__utm.gif",Wa:"utmcid=",Ya:"utmcsr=",$a:"utmgclid=",Ua:"utmccn=",Xa:"utmcmd=",Za:"utmctr=",Va:"utmcct=",Hb:false,_gasoDomain:undefined,_gasoCPath:undefined,e:window,a:document,k:navigator,t:function(g){var b=1,j=0,e,f;if(!_gat.q(g)){b=0;for(e=g[_gat.c]-1;e>=0;e--){f=g.charCodeAt(e);b=(b<<6&268435455)+f+(f<<14);j=b&266338304;b=j!=0?b^j>>21:b}}return b},C:function(n,e,p){var j=_gat,m="-",f,b,g=j.q;if(!g(n)&&!g(e)&&!g(p)){f=j.w(n,e);if(f>-1){b=n.indexOf(p,f);if(b<0){b=n[j.c]}m=j.F(n,f+j.w(e,"=")+1,b)}}return m},Ea:function(g){var b=false,j=0,e,f;if(!_gat.q(g)){b=true;for(e=0;e<g[_gat.c];e++){f=g.charAt(e);j+="."==f?1:0;b=b&&j<=1&&(0==e&&"-"==f||_gat.P(".0123456789",f))}}return b},d:function(e,b){var f=encodeURIComponent;return f instanceof Function?(b?encodeURI(e):f(e)):escape(e)},J:function(g,b){var j=decodeURIComponent,e;g=g.split("+").join(" ");if(j instanceof Function){try{e=b?decodeURI(g):j(g)}catch(f){e=unescape(g)}}else{e=unescape(g)}return e},Db:function(a){return a&&a.hash?_gat.F(a.href,_gat.w(a.href,"#")):""},q:function(a){return _gat.b==a||"-"==a||""==a},Lb:function(a){return a[_gat.c]>0&&_gat.P(" \n\r\t",a)},P:function(c,b){return _gat.w(c,b)>-1},h:function(c,b){c[c[_gat.c]]=b},T:function(a){return a.toLowerCase()},z:function(c,b){return c.split(b)},w:function(c,b){return c.indexOf(b)},F:function(e,b,f){f=_gat.b==f?e[_gat.c]:f;return e.substring(b,f)},uc:function(){var c=_gat.b,b=window;if(b&&b.gaGlobal&&b.gaGlobal.hid){c=b.gaGlobal.hid}else{c=Math.round(Math.random()*2147483647);b.gaGlobal=b.gaGlobal?b.gaGlobal:{};b.gaGlobal.hid=c}return c},wa:function(){return Math.round(Math.random()*2147483647)},Gc:function(){return(_gat.wa()^_gat.vc())*2147483647},vc:function(){var n=_gat.k,e=_gat.a,p=_gat.e,j=e[_gat.m]?e[_gat.m]:"",m=p.history[_gat.c],f,b,g=[n.appName,n.version,n.language?n.language:n.browserLanguage,n.platform,n.userAgent,n.javaEnabled()?1:0].join("");if(p.screen){g+=p.screen.width+"x"+p.screen.height+p.screen.colorDepth}else{if(p.java){b=java.awt.Toolkit.getDefaultToolkit().getScreenSize();g+=b.screen.width+"x"+b.screen.height}}g+=j;g+=e.referrer?e.referrer:"";f=g[_gat.c];while(m>0){g+=m--^f++}return _gat.t(g)}});_gat.hc=function(){var e=this,b=_gat.cb;function f(a,c){return new b(a,c)}e.db="utm_campaign";e.eb="utm_content";e.fb="utm_id";e.gb="utm_medium";e.hb="utm_nooverride";e.ib="utm_source";e.jb="utm_term";e.kb="gclid";e.pa=0;e.I=0;e.wb="15768000";e.Tb="1800";e.ea=[];e.ga=[];e.Ic="cse";e.Gb="q";e.ab="google";e.fa=[f(e.ab,e.Gb),f("yahoo","p"),f("msn","q"),f("bing","q"),f("aol","query"),f("aol","encquery"),f("lycos","query"),f("ask","q"),f("altavista","q"),f("netscape","query"),f("cnn","query"),f("looksmart","qt"),f("about","terms"),f("mamma","query"),f("alltheweb","q"),f("gigablast","q"),f("voila","rdata"),f("virgilio","qs"),f("live","q"),f("baidu","wd"),f("alice","qs"),f("yandex","text"),f("najdi","q"),f("aol","q"),f("club-internet","query"),f("mama","query"),f("seznam","q"),f("search","q"),f("wp","szukaj"),f("onet","qt"),f("netsprint","q"),f("google.interia","q"),f("szukacz","q"),f("yam","k"),f("pchome","q"),f("kvasir","searchExpr"),f("sesam","q"),f("ozu","q"),f("terra","query"),f("nostrum","query"),f("mynet","q"),f("ekolay","q"),f("search.ilse","search_for")];e.B=undefined;e.Kb=false;e.p="/";e.ha=100;e.Da="/__utm.gif";e.ta=1;e.ua=1;e.G="|";e.sa=1;e.qa=1;e.pb=1;e.g="auto";e.D=1;e.Ga=1000;e.Yc=10;e.nc=10;e.Zc=0.2};_gat.Y=function(O,Q){var P,L,G,K,J,v,D,N=this,H=_gat,j=H.q,e=H.c,M,b=Q;N.a=O;function C(c){var a=c instanceof Array?c.join("."):"";return j(a)?"-":a}function F(d,a){var f=[],c;if(!j(d)){f=H.z(d,".");if(a){for(c=0;c<f[e];c++){if(!H.Ea(f[c])){f[c]="-"}}}}return f}function E(){return t(63072000000)}function t(c){var a=new Date,d=new Date(a.getTime()+c);return"expires="+d.toGMTString()+"; "}function I(c,a){N.a[H.m]=c+"; path="+b.p+"; "+a+N.Cc()}function y(g,a,h){var d=N.V,f,c;for(f=0;f<d[e];f++){c=d[f][0];c+=j(a)?a:a+d[f][4];d[f][2](H.C(g,c,h))}}N.Jb=function(){return H.b==M||M==N.t()};N.Ba=function(){return J?J:"-"};N.Wb=function(a){J=a};N.Ma=function(a){M=H.Ea(a)?a*1:"-"};N.Aa=function(){return C(v)};N.Na=function(a){v=F(a)};N.Hc=function(){return M?M:"-"};N.Cc=function(){return j(b.g)?"":"domain="+b.g+";"};N.ya=function(){return C(P)};N.Ub=function(a){P=F(a,1)};N.K=function(){return C(L)};N.La=function(a){L=F(a,1)};N.za=function(){return C(G)};N.Vb=function(a){G=F(a,1)};N.Ca=function(){return C(K)};N.Xb=function(c){K=F(c);for(var a=0;a<K[e];a++){if(a<4&&!H.Ea(K[a])){K[a]="-"}}};N.Dc=function(){return D};N.Uc=function(a){D=a};N.pc=function(){P=[];L=[];G=[];K=[];J=H.b;v=[];M=H.b};N.t=function(){var c="",a;for(a=0;a<N.V[e];a++){c+=N.V[a][1]()}return H.t(c)};N.Ha=function(c){var a=N.a[H.m],d=false;if(a){y(a,c,";");N.Ma(N.t());d=true}return d};N.Rc=function(a){y(a,"","&");N.Ma(H.C(a,H.Ta,"&"))};N.Wc=function(){var c=N.V,a=[],d;for(d=0;d<c[e];d++){H.h(a,c[d][0]+c[d][1]())}H.h(a,H.Ta+N.t());return a.join("&")};N.bd=function(f,a){var g=N.V,c=b.p,d;N.Ha(f);b.p=a;for(d=0;d<g[e];d++){if(!j(g[d][1]())){g[d][3]()}}b.p=c};N.dc=function(){I(H.r+N.ya(),E())};N.Pa=function(){I(H.W+N.K(),t(b.Tb*1000))};N.ec=function(){I(H.ma+N.za(),"")};N.Ra=function(){I(H.X+N.Ca(),t(b.wb*1000))};N.fc=function(){I(H.oa+N.Ba(),E())};N.Qa=function(){I(H.na+N.Aa(),E())};N.cd=function(){I(H.Sa+N.Dc(),"")};N.V=[[H.r,N.ya,N.Ub,N.dc,"."],[H.W,N.K,N.La,N.Pa,""],[H.ma,N.za,N.Vb,N.ec,""],[H.oa,N.Ba,N.Wb,N.fc,""],[H.X,N.Ca,N.Xb,N.Ra,"."],[H.na,N.Aa,N.Na,N.Qa,"."]]};_gat.jc=function(j){var b=this,l=_gat,f=j,g,e=function(a){var c=(new Date).getTime(),d;d=(c-a[3])*(f.Zc/1000);if(d>=1){a[2]=Math.min(Math.floor(a[2]*1+d),f.nc);a[3]=c}return a};b.O=function(m,D,a,r,k,y,v){var o,t=f.D,d=a.location;if(!g){g=new l.Y(a,f)}g.Ha(r);o=l.z(g.K(),".");if(o[1]<500||k){if(y){o=e(o)}if(k||!y||o[2]>=1){if(!k&&y){o[2]=o[2]*1-1}o[1]=o[1]*1+1;m="?utmwv="+_gat.lb+"&utmn="+l.wa()+(l.q(d.hostname)?"":"&utmhn="+l.d(d.hostname))+(f.ha==100?"":"&utmsp="+l.d(f.ha))+m;if(0==t||2==t){var h=new Image(1,1);h.src=f.Da+m;var c=2==t?function(){}:v||function(){};h.onload=c}if(1==t||2==t){var C=new Image(1,1);C.src=("https:"==d.protocol?l.mc:l.lc)+m+"&utmac="+D+"&utmcc="+b.wc(a,r);C.onload=v||function(){}}}}g.La(o.join("."));g.Pa()};b.wc=function(d,h){var m=[],k=[l.r,l.X,l.na,l.oa],o,c=d[l.m],a;for(o=0;o<k[l.c];o++){a=l.C(c,k[o]+h,";");if(!l.q(a)){l.h(m,k[o]+a+";")}}return l.d(m.join("+"))}};_gat.i=function(){this.la=[]};_gat.i.bb=function(m,e,n,g,j,f){var b=this;b.cc=m;b.Oa=e;b.L=n;b.sb=g;b.Pb=j;b.Qb=f};_gat.i.bb.prototype.S=function(){var c=this,b=_gat.d;return"&"+["utmt=item","utmtid="+b(c.cc),"utmipc="+b(c.Oa),"utmipn="+b(c.L),"utmiva="+b(c.sb),"utmipr="+b(c.Pb),"utmiqt="+b(c.Qb)].join("&")};_gat.i.$=function(m,p,n,j,e,g,f,r){var b=this;b.v=m;b.ob=p;b.bc=n;b.ac=j;b.Yb=e;b.ub=g;b.$b=f;b.xb=r;b.ca=[]};_gat.i.$.prototype.mb=function(m,p,n,j,e){var g=this,f=g.Eb(m),r=g.v,b=_gat;if(b.b==f){b.h(g.ca,new b.i.bb(r,m,p,n,j,e))}else{f.cc=r;f.Oa=m;f.L=p;f.sb=n;f.Pb=j;f.Qb=e}};_gat.i.$.prototype.Eb=function(f){var b,g=this.ca,e;for(e=0;e<g[_gat.c];e++){b=f==g[e].Oa?g[e]:b}return b};_gat.i.$.prototype.S=function(){var c=this,b=_gat.d;return"&"+["utmt=tran","utmtid="+b(c.v),"utmtst="+b(c.ob),"utmtto="+b(c.bc),"utmttx="+b(c.ac),"utmtsp="+b(c.Yb),"utmtci="+b(c.ub),"utmtrg="+b(c.$b),"utmtco="+b(c.xb)].join("&")};_gat.i.prototype.nb=function(t,v,u,p,e,m,j,w){var b=this,r=_gat,g=b.xa(t);if(r.b==g){g=new r.i.$(t,v,u,p,e,m,j,w);r.h(b.la,g)}else{g.ob=v;g.bc=u;g.ac=p;g.Yb=e;g.ub=m;g.$b=j;g.xb=w}return g};_gat.i.prototype.xa=function(f){var b,g=this.la,e;for(e=0;e<g[_gat.c];e++){b=f==g[e].v?g[e]:b}return b};_gat.gc=function(j){var b=this,l="-",f=_gat,g=j;b.Ja=screen;b.qb=!self.screen&&self.java?java.awt.Toolkit.getDefaultToolkit():f.b;b.a=document;b.e=window;b.k=navigator;b.Ka=l;b.Sb=l;b.tb=l;b.Ob=l;b.Mb=1;b.Bb=l;function e(){var d,r,a,k,c="ShockwaveFlash",p="$version",o=b.k?b.k.plugins:f.b;if(o&&o[f.c]>0){for(d=0;d<o[f.c]&&!a;d++){r=o[d];if(f.P(r.name,"Shockwave Flash")){a=f.z(r.description,"Shockwave Flash ")[1]}}}else{c=c+"."+c;try{k=new ActiveXObject(c+".7");a=k.GetVariable(p)}catch(h){}if(!a){try{k=new ActiveXObject(c+".6");a="WIN 6,0,21,0";k.AllowScriptAccess="always";a=k.GetVariable(p)}catch(m){}}if(!a){try{k=new ActiveXObject(c);a=k.GetVariable(p)}catch(m){}}if(a){a=f.z(f.z(a," ")[1],",");a=a[0]+"."+a[1]+" r"+a[2]}}return a?a:l}b.xc=function(){var a;if(self.screen){b.Ka=b.Ja.width+"x"+b.Ja.height;b.Sb=b.Ja.colorDepth+"-bit"}else{if(b.qb){try{a=b.qb.getScreenSize();b.Ka=a.width+"x"+a.height}catch(c){}}}b.Ob=f.T(b.k&&b.k.language?b.k.language:(b.k&&b.k.browserLanguage?b.k.browserLanguage:l));b.Mb=b.k&&b.k.javaEnabled()?1:0;b.Bb=g?e():l;b.tb=f.d(b.a.characterSet?b.a.characterSet:(b.a.charset?b.a.charset:l))};b.Xc=function(){return"&"+["utmcs="+f.d(b.tb),"utmsr="+b.Ka,"utmsc="+b.Sb,"utmul="+b.Ob,"utmje="+b.Mb,"utmfl="+f.d(b.Bb)].join("&")}};_gat.n=function(C,G,E,u,m){var t=this,r=_gat,I=r.q,b=r.b,y=r.P,p=r.C,H=r.T,F=r.z,v=r.c;t.a=G;t.f=C;t.Rb=E;t.ja=u;t.o=m;function D(a){return I(a)||"0"==a||!y(a,"://")}function e(c){var a="";c=H(F(c,"://")[1]);if(y(c,"/")){c=F(c,"/")[1];if(y(c,"?")){a=F(c,"?")[0]}}return a}function j(c){var a="";a=H(F(c,"://")[1]);if(y(a,"/")){a=F(a,"/")[0]}return a}t.Fc=function(d){var c=t.Fb(),a=t.o;return new r.n.s(p(d,a.fb+"=","&"),p(d,a.ib+"=","&"),p(d,a.kb+"=","&"),t.ba(d,a.db,"(not set)"),t.ba(d,a.gb,"(not set)"),t.ba(d,a.jb,c&&!I(c.R)?r.J(c.R):b),t.ba(d,a.eb,b))};t.Ib=function(d){var c=j(d),a=e(d);if(y(c,t.o.ab)){d=F(d,"?").join("&");if(y(d,"&"+t.o.Gb+"=")){if(a==t.o.Ic){return true}}}return false};t.Fb=function(){var h,d,c=t.Rb,g,f,a=t.o.fa;if(D(c)||t.Ib(c)){return}h=j(c);for(g=0;g<a[v];g++){f=a[g];if(y(h,H(f.zb))){c=F(c,"?").join("&");if(y(c,"&"+f.Nb+"=")){d=F(c,"&"+f.Nb+"=")[1];if(y(d,"&")){d=F(d,"&")[0]}return new r.n.s(b,f.zb,b,"(organic)","organic",d,b)}}}};t.ba=function(g,c,a){var f=p(g,c+"=","&"),d=!I(f)?r.J(f):(!I(a)?a:"-");return d};t.Nc=function(g){var c=t.o.ea,a=false,f,d;if(g&&"organic"==g.da){f=H(r.J(g.R));for(d=0;d<c[v];d++){a=a||H(c[d])==f}}return a};t.Ec=function(){var d="",c="",a=t.Rb;if(D(a)||t.Ib(a)){return}d=H(F(a,"://")[1]);if(y(d,"/")){c=r.F(d,r.w(d,"/"));if(y(c,"?")){c=F(c,"?")[0]}d=F(d,"/")[0]}if(0==r.w(d,"www.")){d=r.F(d,4)}return new r.n.s(b,d,b,"(referral)","referral",b,c)};t.sc=function(c){var a="";if(t.o.pa){a=r.Db(c);a=""!=a?a+"&":a}a+=c.search;return a};t.zc=function(){return new r.n.s(b,"(direct)",b,"(direct)","(none)",b,b)};t.Oc=function(g){var c=false,a,f,d=t.o.ga;if(g&&"referral"==g.da){a=H(r.d(g.ia));for(f=0;f<d[v];f++){c=c||y(a,H(d[f]))}}return c};t.U=function(a){return b!=a&&a.Fa()};t.yc=function(c,s){var d="",a="-",g,l,h=0,f,x,o=t.f;if(!c){return""}x=t.a[r.m]?t.a[r.m]:"";d=t.sc(t.a.location);if(t.o.I&&c.Jb()){a=c.Ca();if(!I(a)&&!y(a,";")){c.Ra();return""}}a=p(x,r.X+o+".",";");g=t.Fc(d);if(t.U(g)){l=p(d,t.o.hb+"=","&");if("1"==l&&!I(a)){return""}}if(!t.U(g)){g=t.Fb();if(!I(a)&&t.Nc(g)){return""}}if(!t.U(g)&&s){g=t.Ec();if(!I(a)&&t.Oc(g)){return""}}if(!t.U(g)){if(I(a)&&s){g=t.zc()}}if(!t.U(g)){return""}if(!I(a)){var k=F(a,"."),z=new r.n.s;z.Cb(k.slice(4).join("."));f=H(z.ka())==H(g.ka());h=k[3]*1}if(!f||s){var w=p(x,r.r+o+".",";"),n=w.lastIndexOf("."),q=n>9?r.F(w,n+1)*1:0;h++;q=0==q?1:q;c.Xb([o,t.ja,q,h,g.ka()].join("."));c.Ra();return"&utmcn=1"}else{return"&utmcr=1"}}};_gat.n.s=function(n,e,p,j,m,f,b){var g=this;g.v=n;g.ia=e;g.ra=p;g.L=j;g.da=m;g.R=f;g.vb=b};_gat.n.s.prototype.ka=function(){var j=this,b=_gat,l=[],f=[[b.Wa,j.v],[b.Ya,j.ia],[b.$a,j.ra],[b.Ua,j.L],[b.Xa,j.da],[b.Za,j.R],[b.Va,j.vb]],g,e;if(j.Fa()){for(g=0;g<f[b.c];g++){if(!b.q(f[g][1])){e=f[g][1].split("+").join("%20");e=e.split(" ").join("%20");b.h(l,f[g][0]+e)}}}return l.join("|")};_gat.n.s.prototype.Fa=function(){var c=this,b=_gat.q;return !(b(c.v)&&b(c.ia)&&b(c.ra))};_gat.n.s.prototype.Cb=function(f){var b=this,g=_gat,e=function(a){return g.J(g.C(f,a,"|"))};b.v=e(g.Wa);b.ia=e(g.Ya);b.ra=e(g.$a);b.L=e(g.Ua);b.da=e(g.Xa);b.R=e(g.Za);b.vb=e(g.Va)};_gat.Z=function(){var K=this,M=_gat,L={},H="k",D="v",G=[H,D],F="(",r=")",v="*",J="!",E="'",j={};j[E]="'0";j[r]="'1";j[v]="'2";j[J]="'3";var e=1;function I(c,f,d,a){if(M.b==L[c]){L[c]={}}if(M.b==L[c][f]){L[c][f]=[]}L[c][f][d]=a}function b(a,d,c){return M.b!=L[a]&&M.b!=L[a][d]?L[a][d][c]:M.b}function t(c,f){if(M.b!=L[c]&&M.b!=L[c][f]){L[c][f]=M.b;var d=true,a;for(a=0;a<G[M.c];a++){if(M.b!=L[c][G[a]]){d=false;break}}if(d){L[c]=M.b}}}function C(c){var f="",d=false,a,g;for(a=0;a<G[M.c];a++){g=c[G[a]];if(M.b!=g){if(d){f+=G[a]}f+=y(g);d=false}else{d=true}}return f}function y(c){var f=[],d,a;for(a=0;a<c[M.c];a++){if(M.b!=c[a]){d="";if(a!=e&&M.b==c[a-1]){d+=a.toString();d+=J}d+=m(c[a]);M.h(f,d)}}return F+f.join(v)+r}function m(c){var f="",d,a,g;for(d=0;d<c[M.c];d++){a=c.charAt(d);g=j[a];f+=M.b!=g?g:a}return f}K.Kc=function(a){return M.b!=L[a]};K.N=function(){var a=[],c;for(c in L){if(M.b!=L[c]){M.h(a,c.toString()+C(L[c]))}}return a.join("")};K.Sc=function(a){if(a==M.b){return K.N()}var d=[a.N()],c;for(c in L){if(M.b!=L[c]&&!a.Kc(c)){M.h(d,c.toString()+C(L[c]))}}return d.join("")};K._setKey=function(a,d,c){if(typeof c!="string"){return false}I(a,H,d,c);return true};K._setValue=function(a,d,c){if(typeof c!="number"&&(M.b==Number||!(c instanceof Number))){return false}if(Math.round(c)!=c||c==NaN||c==Infinity){return false}I(a,D,d,c.toString());return true};K._getKey=function(a,c){return b(a,H,c)};K._getValue=function(a,c){return b(a,D,c)};K._clearKey=function(a){t(a,H)};K._clearValue=function(a){t(a,D)}};_gat.ic=function(e,b){var f=this;f.jd=b;f.Pc=e;f._trackEvent=function(c,d,a){return b._trackEvent(f.Pc,c,d,a)}};_gat.kc=function(P){var R=this,Q=_gat,M=Q.b,G=Q.q,K=Q.w,J=Q.F,v=Q.C,D=Q.P,O=Q.z,H="location",j=Q.c,e=M,N=new Q.hc,b=false;R.a=document;R.e=window;R.ja=Math.round((new Date).getTime()/1000);R.H=P;R.yb=R.a.referrer;R.va=M;R.j=M;R.A=M;R.M=false;R.aa=M;R.rb="";R.l=M;R.Ab=M;R.f=M;R.u=M;function C(){if("auto"==N.g){var a=R.a.domain;if("www."==J(a,0,4)){a=J(a,4)}N.g=a}N.g=Q.T(N.g)}function F(){var a=N.g,c=K(a,"www.google.")*K(a,".google.")*K(a,"google.");return c||"/"!=N.p||K(a,"google.org")>-1}function E(a,g,d){if(G(a)||G(g)||G(d)){return"-"}var f=v(a,Q.r+R.f+".",g),c;if(!G(f)){c=O(f,".");c[5]=c[5]?c[5]*1+1:1;c[3]=c[4];c[4]=d;f=c.join(".")}return f}function t(){return"file:"!=R.a[H].protocol&&F()}function I(a){if(!a||""==a){return""}while(Q.Lb(a.charAt(0))){a=J(a,1)}while(Q.Lb(a.charAt(a[j]-1))){a=J(a,0,a[j]-1)}return a}function y(a,d,c){if(!G(a())){d(Q.J(a()));if(!D(a(),";")){c()}}}function L(a){var d,c=""!=a&&R.a[H].host!=a;if(c){for(d=0;d<N.B[j];d++){c=c&&K(Q.T(a),Q.T(N.B[d]))==-1}}return c}R.Bc=function(){if(!N.g||""==N.g||"none"==N.g){N.g="";return 1}C();return N.pb?Q.t(N.g):1};R.tc=function(a,d){if(G(a)){a="-"}else{d+=N.p&&"/"!=N.p?N.p:"";var c=K(a,d);a=c>=0&&c<=8?"0":("["==a.charAt(0)&&"]"==a.charAt(a[j]-1)?"-":a)}return a};R.Ia=function(a){var d="",c=R.a;d+=R.aa?R.aa.Xc():"";d+=N.qa?R.rb:"";d+=N.ta&&!G(c.title)?"&utmdt="+Q.d(c.title):"";d+="&utmhid="+Q.uc()+"&utmr="+R.va+"&utmp="+R.Tc(a);return d};R.Tc=function(a){var c=R.a[H];a=M!=a&&""!=a?Q.d(a,true):Q.d(c.pathname+unescape(c.search),true);return a};R.$c=function(a){if(R.Q()){var c="";if(R.l!=M&&R.l.N().length>0){c+="&utme="+Q.d(R.l.N())}c+=R.Ia(a);e.O(c,R.H,R.a,R.f)}};R.qc=function(){var a=new Q.Y(R.a,N);return a.Ha(R.f)?a.Wc():M};R._getLinkerUrl=function(a,g){var d=O(a,"#"),f=a,c=R.qc();if(c){if(g&&1>=d[j]){f+="#"+c}else{if(!g||1>=d[j]){if(1>=d[j]){f+=(D(a,"?")?"&":"?")+c}else{f=d[0]+(D(a,"?")?"&":"?")+c+"#"+d[1]}}}}return f};R.Zb=function(){var a;if(R.A&&R.A[j]>=10&&!D(R.A,"=")){R.u.Uc(R.A);R.u.cd();Q._gasoDomain=N.g;Q._gasoCPath=N.p;a=R.a.createElement("script");a.type="text/javascript";a.id="_gasojs";a.src="https://www.google.com/analytics/reporting/overlay_js?gaso="+R.A+"&"+Q.wa();R.a.getElementsByTagName("head")[0].appendChild(a)}};R.Jc=function(){var k=R.a[Q.m],f=R.ja,d=R.u,r=R.f+"",o=R.e,h=o?o.gaGlobal:M,s,q=D(k,Q.r+r+"."),m=D(k,Q.W+r),p=D(k,Q.ma+r),c,a=[],n="",g=false,l;k=G(k)?"":k;if(N.I){s=Q.Db(R.a[H]);if(N.pa&&!G(s)){n=s+"&"}n+=R.a[H].search;if(!G(n)&&D(n,Q.r)){d.Rc(n);if(!d.Jb()){d.pc()}c=d.ya()}y(d.Ba,d.Wb,d.fc);y(d.Aa,d.Na,d.Qa)}if(!G(c)){if(G(d.K())||G(d.za())){c=E(n,"&",f);R.M=true}else{a=O(d.K(),".");r=a[0]}}else{if(q){if(!m||!p){c=E(k,";",f);R.M=true}else{c=v(k,Q.r+r+".",";");a=O(v(k,Q.W+r,";"),".")}}else{c=[r,Q.Gc(),f,f,f,1].join(".");R.M=true;g=true}}c=O(c,".");if(o&&h&&h.dh==r){c[4]=h.sid?h.sid:c[4];if(g){c[3]=h.sid?h.sid:c[4];if(h.vid){l=O(h.vid,".");c[1]=l[0];c[2]=l[1]}}}d.Ub(c.join("."));a[0]=r;a[1]=a[1]?a[1]:0;a[2]=undefined!=a[2]?a[2]:N.Yc;a[3]=a[3]?a[3]:c[4];d.La(a.join("."));d.Vb(r);if(!G(d.Hc())){d.Ma(d.t())}d.dc();d.Pa();d.ec()};R.Lc=function(){e=new Q.jc(N)};R._initData=function(){var a;if(!b){R.Lc();R.f=R.Bc();R.u=new Q.Y(R.a,N)}if(t()){R.Jc()}if(!b){if(t()){R.va=R.tc(R.Ac(),R.a.domain);if(N.sa){R.aa=new Q.gc(N.ua);R.aa.xc()}if(N.qa){a=new Q.n(R.f,R.a,R.va,R.ja,N);R.rb=a.yc(R.u,R.M)}}R.l=new Q.Z;R.Ab=new Q.Z;b=true}if(!Q.Hb){R.Mc()}};R._visitCode=function(){R._initData();var a=v(R.a[Q.m],Q.r+R.f+".",";"),c=O(a,".");return c[j]<4?"":c[1]};R._cookiePathCopy=function(a){R._initData();if(R.u){R.u.bd(R.f,a)}};R.Mc=function(){var a=R.a[H].hash,c;c=a&&""!=a&&0==K(a,"#gaso=")?v(a,"gaso=","&"):v(R.a[Q.m],Q.Sa,";");if(c[j]>=10){R.A=c;if(R.e.addEventListener){R.e.addEventListener("load",R.Zb,false)}else{R.e.attachEvent("onload",R.Zb)}}Q.Hb=true};R.Q=function(){return R._visitCode()%10000<N.ha*100};R.Vc=function(){var a,f,c=R.a.links;if(!N.Kb){var d=R.a.domain;if("www."==J(d,0,4)){d=J(d,4)}N.B.push("."+d)}for(a=0;a<c[j]&&(N.Ga==-1||a<N.Ga);a++){f=c[a];if(L(f.host)){if(!f.gatcOnclick){f.gatcOnclick=f.onclick?f.onclick:R.Qc;f.onclick=function(g){var h=!this.target||this.target=="_self"||this.target=="_top"||this.target=="_parent";h=h&&!R.oc(g);R.ad(g,this,h);return h?false:(this.gatcOnclick?this.gatcOnclick(g):true)}}}}};R.Qc=function(){};R._trackPageview=function(a){if(t()){R._initData();if(N.B){R.Vc()}R.$c(a);R.M=false}};R._trackTrans=function(){var a=R.f,g=[],d,f,c,h;R._initData();if(R.j&&R.Q()){for(d=0;d<R.j.la[j];d++){f=R.j.la[d];Q.h(g,f.S());for(c=0;c<f.ca[j];c++){Q.h(g,f.ca[c].S())}}for(h=0;h<g[j];h++){e.O(g[h],R.H,R.a,a,true)}}};R._setTrans=function(){var a=R.a,g,d,f,c,h=a.getElementById?a.getElementById("utmtrans"):(a.utmform&&a.utmform.utmtrans?a.utmform.utmtrans:M);R._initData();if(h&&h.value){R.j=new Q.i;c=O(h.value,"UTM:");N.G=!N.G||""==N.G?"|":N.G;for(g=0;g<c[j];g++){c[g]=I(c[g]);d=O(c[g],N.G);for(f=0;f<d[j];f++){d[f]=I(d[f])}if("T"==d[0]){R._addTrans(d[1],d[2],d[3],d[4],d[5],d[6],d[7],d[8])}else{if("I"==d[0]){R._addItem(d[1],d[2],d[3],d[4],d[5],d[6])}}}}};R._addTrans=function(a,k,d,f,c,l,h,g){R.j=R.j?R.j:new Q.i;return R.j.nb(a,k,d,f,c,l,h,g)};R._addItem=function(a,h,d,f,c,k){var g;R.j=R.j?R.j:new Q.i;g=R.j.xa(a);if(!g){g=R._addTrans(a,"","","","","","","")}g.mb(h,d,f,c,k)};R._setVar=function(a){if(a&&""!=a&&F()){R._initData();var d=new Q.Y(R.a,N),c=R.f;d.Na(c+"."+Q.d(a));d.Qa();if(R.Q()){e.O("&utmt=var",R.H,R.a,R.f)}}};R._link=function(a,c){if(N.I&&a){R._initData();R.a[H].href=R._getLinkerUrl(a,c)}};R._linkByPost=function(a,c){if(N.I&&a&&a.action){R._initData();a.action=R._getLinkerUrl(a.action,c)}};R._setXKey=function(a,d,c){R.l._setKey(a,d,c)};R._setXValue=function(a,d,c){R.l._setValue(a,d,c)};R._getXKey=function(a,c){return R.l._getKey(a,c)};R._getXValue=function(a,c){return R.l.getValue(a,c)};R._clearXKey=function(a){R.l._clearKey(a)};R._clearXValue=function(a){R.l._clearValue(a)};R._createXObj=function(){R._initData();return new Q.Z};R._sendXEvent=function(a){var c="";R._initData();if(R.Q()){c+="&utmt=event&utme="+Q.d(R.l.Sc(a))+R.Ia();e.O(c,R.H,R.a,R.f,false,true)}};R._createEventTracker=function(a){R._initData();return new Q.ic(a,R)};R._trackEvent=function(a,g,d,f){var c=true,h=R.Ab;if(M!=a&&M!=g&&""!=a&&""!=g){h._clearKey(5);h._clearValue(5);c=h._setKey(5,1,a)?c:false;c=h._setKey(5,2,g)?c:false;c=M==d||h._setKey(5,3,d)?c:false;c=M==f||h._setValue(5,1,f)?c:false;if(c){R._sendXEvent(h)}}else{c=false}return c};R.ad=function(a,g,d){R._initData();if(R.Q()){var f=new Q.Z;f._setKey(6,1,g.href);var c=d?function(){R.rc(a,g)}:undefined;e.O("&utmt=event&utme="+Q.d(f.N())+R.Ia(),R.H,R.a,R.f,false,true,c)}};R.rc=function(a,d){if(!a){a=R.e.event}var c=true;if(d.gatcOnclick){c=d.gatcOnclick(a)}if(c||typeof c=="undefined"){if(!d.target||d.target=="_self"){R.e.location=d.href}else{if(d.target=="_top"){R.e.top.document.location=d.href}else{if(d.target=="_parent"){R.e.parent.document.location=d.href}}}}};R.oc=function(a){if(!a){a=R.e.event}var c=a.shiftKey||a.ctrlKey||a.altKey;if(!c){if(a.modifiers&&R.e.Event){c=a.modifiers&R.e.Event.CONTROL_MASK||a.modifiers&R.e.Event.SHIFT_MASK||a.modifiers&R.e.Event.ALT_MASK}}return c};R._setDomainName=function(a){N.g=a};R.dd=function(){return N.g};R._addOrganic=function(a,c){Q.h(N.fa,new Q.cb(a,c))};R._clearOrganic=function(){N.fa=[]};R.hd=function(){return N.fa};R._addIgnoredOrganic=function(a){Q.h(N.ea,a)};R._clearIgnoredOrganic=function(){N.ea=[]};R.ed=function(){return N.ea};R._addIgnoredRef=function(a){Q.h(N.ga,a)};R._clearIgnoredRef=function(){N.ga=[]};R.fd=function(){return N.ga};R._setAllowHash=function(a){N.pb=a?1:0};R._setCampaignTrack=function(a){N.qa=a?1:0};R._setClientInfo=function(a){N.sa=a?1:0};R._getClientInfo=function(){return N.sa};R._setCookiePath=function(a){N.p=a};R._setTransactionDelim=function(a){N.G=a};R._setCookieTimeout=function(a){N.wb=a};R._setDetectFlash=function(a){N.ua=a?1:0};R._getDetectFlash=function(){return N.ua};R._setDetectTitle=function(a){N.ta=a?1:0};R._getDetectTitle=function(){return N.ta};R._setLocalGifPath=function(a){N.Da=a};R._getLocalGifPath=function(){return N.Da};R._setLocalServerMode=function(){N.D=0};R._setRemoteServerMode=function(){N.D=1};R._setLocalRemoteServerMode=function(){N.D=2};R.gd=function(){return N.D};R._getServiceMode=function(){return N.D};R._setSampleRate=function(a){N.ha=a};R._setSessionTimeout=function(a){N.Tb=a};R._setAllowLinker=function(a){N.I=a?1:0};R._setAllowAnchor=function(a){N.pa=a?1:0};R._setCampNameKey=function(a){N.db=a};R._setCampContentKey=function(a){N.eb=a};R._setCampIdKey=function(a){N.fb=a};R._setCampMediumKey=function(a){N.gb=a};R._setCampNOKey=function(a){N.hb=a};R._setCampSourceKey=function(a){N.ib=a};R._setCampTermKey=function(a){N.jb=a};R._setCampCIdKey=function(a){N.kb=a};R._getAccount=function(){return R.H};R._getVersion=function(){return _gat.lb};R.kd=function(a){N.B=[];if(a){N.B=a}};R.md=function(a){N.Kb=a};R.ld=function(a){N.Ga=a};R._setReferrerOverride=function(a){R.yb=a};R.Ac=function(){return R.yb}};_gat._getTracker=function(c){var b=new _gat.kc(c);return b};var GA={vars_to_set_later:[],setPendingVars:function(){while(GA.vars_to_set_later.length){var a=GA.vars_to_set_later.pop();GA.pageTracker._setVar(a)}},setVar:function(a){if(GA.pageTracker){GA.pageTracker._setVar(a)}else{GA.vars_to_set_later.push(a)}}};var FlashDetect=new function(){var a=this;a.installed=false;a.raw="";a.major=-1;a.minor=-1;a.revision=-1;a.revisionStr="";var b=[{name:"ShockwaveFlash.ShockwaveFlash.7",version:function(h){return d(h)}},{name:"ShockwaveFlash.ShockwaveFlash.6",version:function(k){var h="6,0,21";try{k.AllowScriptAccess="always";h=d(k)}catch(j){}return h}},{name:"ShockwaveFlash.ShockwaveFlash",version:function(h){return d(h)}}];var d=function(k){var h=-1;try{h=k.GetVariable("$version")}catch(j){}return h};var g=function(h){var k=-1;try{k=new ActiveXObject(h)}catch(j){k={activeXError:true}}return k};var c=function(j){var h=j.split(",");return{raw:j,major:parseInt(h[0].split(" ")[1],10),minor:parseInt(h[1],10),revision:parseInt(h[2],10),revisionStr:h[2]}};var f=function(l){var j=l.split(/ +/);var k=j[2].split(/\./);var h=j[3];return{raw:l,major:parseInt(k[0],10),minor:parseInt(k[1],10),revisionStr:h,revision:e(h)}};var e=function(h){return parseInt(h.replace(/[a-zA-Z]/g,""),10)||a.revision};a.majorAtLeast=function(h){return a.major>=h};a.minorAtLeast=function(h){return a.minor>=h};a.revisionAtLeast=function(h){return a.revision>=h};a.versionAtLeast=function(j){var k=[a.major,a.minor,a.revision];var h=Math.min(k.length,arguments.length);for(i=0;i<h;i++){if(k[i]>=arguments[i]){if(i+1<h&&k[i]==arguments[i]){continue}else{return true}}else{return false}}};a.FlashDetect=function(){if(navigator.plugins&&navigator.plugins.length>0){var l="application/x-shockwave-flash";var k=navigator.mimeTypes;if(k&&k[l]&&k[l].enabledPlugin&&k[l].enabledPlugin.description){var h=k[l].enabledPlugin.description;var m=f(h);a.raw=m.raw;a.major=m.major;a.minor=m.minor;a.revisionStr=m.revisionStr;a.revision=m.revision;a.installed=true}}else{if(navigator.appVersion.indexOf("Mac")==-1&&window.execScript){var h=-1;for(var j=0;j<b.length&&h==-1;j++){var n=g(b[j].name);if(!n.activeXError){a.installed=true;h=b[j].version(n);if(h!=-1){var m=c(h);a.raw=m.raw;a.major=m.major;a.minor=m.minor;a.revision=m.revision;a.revisionStr=m.revisionStr}}}}}}()};FlashDetect.JS_RELEASE="1.0.4";document.observe("dom:loaded",function(){var c=document.body.style;if(c.WebkitBoxShadow!==undefined||c.MozBoxShadow!==undefined||c.BoxShadow!==undefined||c.boxShadow!==undefined){$(document.body).addClassName("has_box_shadow")}if(c.WebkitBorderRadius!==undefined||c.MozBorderRadius!==undefined||c.BorderRadius!==undefined||c.borderRadius!==undefined){$(document.body).addClassName("has_border_radius")}var g=new Element("a");var d="#ffffff";g.style.color=d;try{g.style.color="rgba(1,1,1,0.5)"}catch(f){}if(g.style.color!=d){$(document.body).addClassName("has_rgba")}var b=Prototype.Browser.WebKit||Prototype.Browser.Opera;if(b){$(document.body).addClassName("has_font_face")}for(var a in Prototype.Browser){if(Prototype.Browser[a]){$(document.body).addClassName(a.toLowerCase())}}});Function.prototype.defer=Function.prototype.defer.wrap(function(b){var a=$A(arguments).slice(1);this.__tb__=get_stack_rep();b.apply(this,a)});String.prototype.evalScripts=String.prototype.evalScripts.wrap(function(b){var a=$A(arguments).slice(1);try{b.apply(this,a)}catch(c){assert(0,c.toString())}});Function.prototype.stop_calls_at=function(a){var b=this;return function(){if(a-->0){return b.apply(this,arguments)}}};Function.prototype.cached=function(a){var b=Math.random();var c=this;return function(){var d=Jcached.get(b);if(d!==false){return d}d=c();Jcached.set(b,d,a);return d}};Array.prototype.sort_by_key=function(a,b){if(!b){b=-1}return this.sort(function(c,d){c=a(c);d=a(d);if(c<d){return b*-1}else{if(c>d){return b*1}else{return 0}}})};Array.prototype.contains=function(a){return this.indexOf(a)!=-1};Array.prototype.remove=function(b,a){a=a||b+1;this.splice(b,a-b)};Array.prototype.removeItem=function(b){var a=this.indexOf(b);return a>=0?this.remove(a):false};String.prototype.widthSplit=function(d){d=d||15;var a=[];var c=this;var e=0;var b=c.substring(e,e+d);while(b!==""){a.push(b);e+=d;b=c.substring(e,e+d)}return a};String.prototype.lpad=function(b,a){var c=this;a=a||"0";while(c.length<b){c=a+c}return c.toString()};String.prototype.pad_nums=function(){return this.replace(/(\d+)/,function(a){return a.lpad(10)})};String.prototype.reverse=function(){var a=this.split("");var c=a.reverse();var b=c.join("");return b};String.prototype.replace_last=function(e,a){var d=this.reverse();var c=e.reverse();var b=a.reverse();return d.replace(c,b).reverse()};String.prototype.create=function(a){return a};String.prototype.count=function(a){return(this.length-this.gsub(a,"").length)/a.length};String.prototype.snippet=function(f,e){f=f||26;e=e||0.75;if(this.length<=f){return this}var a=this.lastIndexOf(".");var b="";if(a>0){b=this.substr(a);f=f-b.length}else{a=this.length;b=""}f=f-this.create("...").length;var c=Math.floor(f*e);var g=f-c;var j=a-g;var d=this.substr(0,c);var h=this.substr(j,a-j);return d+"..."+h+b};String.prototype.title=function(){return this.charAt(0).toUpperCase()+this.substr(1)};Effect.BlindFadeUp=function(d,c){var b,a;b=new Effect.BlindUp(d,c);a=new Effect.Fade(d,c);this.cancel=function(){b.cancel();a.cancel()}};Effect.BlindFadeDown=function(d,c){var b,a;b=new Effect.BlindDown(d,c);a=new Effect.Appear(d,c);this.cancel=function(){b.cancel();a.cancel()}};Effect.Flash=function(c,b,a){assert(b.startcolor&&b.endcolor,"Start and end colors must be specified");assert(b.cycles,"Fade cycles must be specified");a=a||0;new Effect.Highlight(c,{duration:1,startcolor:b.startcolor,endcolor:b.endcolor,restorecolor:b.endcolor,afterFinish:function(){new Effect.Highlight(c,{duration:1,startcolor:b.endcolor,endcolor:b.startcolor,restorecolor:b.startcolor,afterFinish:function(){if(a<b.cycles){Effect.Flash(c,b,a+1)}}})}})};Ajax.DBRequest=Class.create(Ajax.Request,{initialize:function($super,c,b){this.start_time=Util.time();b=b||{};b.method="post";b.parameters=b.parameters||{};b.parameters.t=Constants.TOKEN;var e=b.cleanUp||function(h){};if(b.job){this.job_id=Util.nonce();b.parameters.job_id=this.job_id;ProgressWatcher.watch(this)}RequestWatcher.watch(this,!!b.job);var d=b.onFailure;var g=b.onSuccess;var f=b.onComplete;b.onFailure=function(j){if(Job.handled(j.request.job_id)){return}if(!b.noAutonotify){var k;if(!Constants.IS_PROD&&j.status===500&&j.getHeader("X-Debug-Url")){var h=j.getHeader("X-Debug-Url");k=_("There was a problem completing this request.")+' <a href="'+h+'">View debug</a>'}Notify.ServerError(k)}e(false);if(d){d(j)}if([404,502].contains(j.status)){assert(false,"Ajax "+j.status+" on "+j.request.url)}};b.onSuccess=function(h){WIT._record("AJAX","load",h.request.url,{time:new Date().getTime()-h.request.start_time});if(Job.handled(h.request.job_id)){return}TranslationSuggest.update_i18n_messages_from_req(h);if(typeof(QueryLog)!=="undefined"){QueryLog.update_query_log_from_req(h)}if(!h.responseText.length){if(!b.job){if(!b.noAutonotify){if(!h||h.status!==0){Notify.ServerError()}}if(d){d(h)}}}else{if(h.responseText.indexOf("err:")===0){if(!b.noAutonotify){Notify.ServerError(h.responseText.substr(4))}if(d){d(h)}}else{if(g){if(h.responseText.indexOf("ok:")===0){Notify.ServerSuccess(h.responseText.substr(3))}g(h)}if(f){f(h)}}}e(true)};if(b.job){c+=(c.indexOf("?")!=-1?"&":"?")+"long_running=1"}var a=$H({url:c});if(b.parameters){a.update(b.parameters);a.unset("t")}b.onSuccess.__tb_ajax_info__=b.onFailure.__tb_ajax_info__=a.toJSON();$super(c,b)}});Element.addMethods({db_observe:function(b,a,c){return b.observe(a,function(d){c(d,b)})}});function _dom_trackActiveElement(a){if(a&&a.target){try{document.activeElement=a.target==document?null:a.target}catch(b){}}}function _dom_trackActiveElementLost(a){try{document.activeElement=null}catch(b){}}if(document.addEventListener){document.addEventListener("focus",_dom_trackActiveElement,true);document.addEventListener("blur",_dom_trackActiveElementLost,true)}var WIT,Jcached,AMC,MCLog;var WIT={enabled:Constants.WIT_ENABLED,reporting:false,start_time:0,register:function(){if(WIT.enabled){WIT.reportInterval=setInterval(WIT.report,10000);$(document.body).observe("click",WIT.click)}},add_group:function(b,a){b=$(b);assert(b,"WIT.add_group missing elm");b.addClassName("wit_group");b.setAttribute("name",a)},clear_group:function(a){if(a.hasClassName("wit_group")){a.removeClassName("wit_group")}},get_group:function(b){var a=b.up(".wit_group");if(a){return a.getAttribute("name")}return"ALL"},time_elapsed:function(){var a=Util.time()-WIT.start_time;if(a<0){a=0}return a},click:function(f){if(!WIT.enabled||!f||!f.target){return}var d=$(f.target);var c;if(["input","textarea","checkbox"].indexOf(d.tagName.toLowerCase())>-1){c=d}if(!c){c=Util.resolve_target(d,"a, .wit")}if(!c||$(c).hasClassName("ignore")){return}var a=c.getAttribute("name")||c.id||(c.getValue&&c.getValue())||c.innerHTML.stripTags().strip()||"unknown "+c.tagName;if(Constants.emessages[a]){a=Constants.emessages[a]}var b=WIT.get_group(c);assert(b,"Group missing");WIT.record_action(a,"click",b,WIT.time_elapsed())},record_action:function(c,d,e,b,a){a=a||{};a.group=e;a.type=d;a.tti=b;WIT.record("ACTION",c,a)},record:function(c,b,a){a=a||{};WIT._record(c,b,window.location.pathname.split("#")[0],a)},_record:function(f,c,b,a){var d="WIT_"+f+"_"+c;if(!WIT.enabled||Jcached.get(d)||WIT.IGNORE_URLS[b.split(Constants.WEBSERVER).last().split(/[\?\#]/)[0]]){return}assert(c,"Missing WIT label");assert(f,"Missing WIT event_type");assert(b,"Missing WIT url");var e=[f,c,b,a||{}];WIT.add_to_cookie(e);Jcached.set(d,1,5000)},add_to_cookie:function(d){if(Ajax.activeRequestCount){setTimeout(function(){WIT.add_to_cookie(d)},500);return}assert(WIT.enabled,"WIT Disabled.");var c=WIT.get_cookie_val();c.push(d);var a=Object.toJSON(c);var b=encodeURIComponent(a);Util.create_cookie("wit",b,365);if(b.length>1024){WIT.report()}},get_cookie_val:function(){var c=Util.read_cookie("wit");var b;if(c){try{b=decodeURIComponent(c).evalJSON()}catch(a){b=[]}}else{b=[]}return b},IGNORE_URLS:{"/wit":true},report:function(){if(!WIT.enabled||WIT.reporting){return}var a=Util.read_cookie("wit");if(a){WIT.reporting=true;new Ajax.Request("/wit",{onComplete:function(){WIT.reporting=false}});Util.create_cookie("wit","",-1)}}};WIT.start_time=window.ST||new Date().getTime();document.observe("dom:loaded",function(){WIT.record("LOAD","ready",{time:Util.time()-WIT.start_time});WIT.register()});Event.observe(window,"load",function(){WIT.record("LOAD","complete",{time:Util.time()-WIT.start_time})});Event.stop=Event.stop.wrap(function(a,b){if(b){if(b.type=="click"){WIT.click(b)}a.apply(this,$A(arguments).slice(1))}});var Jcached={cache:{},set:function(b,d,a){var e=Jcached.cache[b];if(!e){Jcached.cache[b]={};e=Jcached.cache[b]}e.value=d;e.expires=a?(new Date()).getTime()+a:0},get:function(a){var b=Jcached.cache[a];if(!b||(b.expires&&(new Date()).getTime()>b.expires)){delete Jcached.cache[a];return false}return b.value}};var AMC={log_escape:function(a){$("top_notifier_container").remove();new Ajax.DBRequest("/log_escape",{parameters:{kept_locale:a}})},log:function(b,a){assert(b,"AMCLog missing label");var c={label:b};if(a){Object.extend(c,a)}new Ajax.Request("/ajax_amc_log",{parameters:c})},help_article_play:function(a){if(!AMC.help_article_play_logged){AMC.help_article_play_logged=1;if(Help.article_id){new Ajax.Request("/ajax_amc_help_video",{parameters:{article_id:Help.article_id}})}}}};var ABTest={log:function(a,b){assert(a,"ABTest log missing abtest name");assert(b,"ABTest log missing event name");var c={abtest_name:a,event_name:b};new Ajax.Request("/ajax_abtest_log",{parameters:c})}};var MCLog={log:function(a){new Ajax.Request("/ajax_mc_log/"+a)}};function add_i18n_message(d,c,a,b){Constants.messages=Constants.messages||{};Constants.emessages=Constants.emessages||{};c=c.stripTags().friendly_format();a=a.stripTags();Constants.messages[c]=d;Constants.emessages[c]=a;if(b){delete Constants.messages[b];delete Constants.emessages[b]}if(typeof(TranslationSuggest)!="undefined"){TranslationSuggest.index_message(c)}}function singular_1(a){return a==1?0:1}function singular_01(a){return a<=1?0:1}function singular_all(a){return 0}var PLURAL_RULES={es_US:singular_1,de:singular_1,es:singular_1,fr:singular_01,ja:singular_all,pl:singular_1};Date.prototype.localize=function(){assert(Constants.date_format,"Date format missing.");return this.format(Constants.date_format)};Date.prototype.format=function(b){assert(b,"Missing format string");assert(typeof(b)=="string","Date format requires a format string");var c={yy:function(d){return d.getFullYear().toString().substring(2)},yyyy:function(d){return d.getFullYear().toString()},d:function(d){return d.getDate().toString()},dd:function(d){return d.getDate().toString().lpad(2)},M:function(d){return(d.getMonth()+1).toString()},MM:function(d){return(d.getMonth()+1).toString().lpad(2)}};var a=b.replace(/([a-zA-Z]+)/g,(function(d){return(c[d]&&c[d](this))||d}).bind(this));return a};String.prototype.format_sub=function(a){return this.replace(/%(\([a-z_\-]+\))?(.\d+)?(.)/g,a.bind(this))};String.prototype.format=function string_format(){if(arguments.length===0){return this.toString()}var g;var f=0;if(arguments.length==1&&arguments[0] instanceof Object){g=arguments[0]}else{g=$A(arguments)}function b(m,k,j,l){var h;if(!k){if(!Object.isArray(g)){g=[g]}assert(f>-1,"Cannot mix named and positional indices in string formatting for string '"+this+"'.");assert(f<g.length,"Insufficient number of items in format for string '"+this+"', list "+$A(g).toJSON()+".");h=g[f];f++}else{k=k.slice(1,-1);assert(f<=0,"Cannot mix named and positional indices in string formatting for string '"+this+"'.");f=-1;assert(k in g,"Key '"+k+"' not present during string substitution for string '"+this+"', dict "+$H(g).toJSON()+".");h=g[k]}assert(typeof(h)!="undefined",'value for key "'+(k||"").toString()+'" is undefined');var d;if(l=="s"){d=h.toString()}else{if(l=="d"){d=parseInt(h,10).toString()}else{if(l=="f"){d=Number(h).toString()}else{if(l=="%"){return"%"}else{assert(false,"Unexpected format character '"+l+"' for string '"+this+"'.")}}}}if(j){j=parseInt(j.slice(1),10);if(l=="f"){if(d.indexOf(".")=="-1"){d=d+".0"}var n=d.split(".");return n[0]+"."+n[1].slice(0,j)}else{return d.slice(0,j)}}return d}var a=this.format_sub(b);if(Constants.messages&&this in Constants.messages){f=0;var e=Constants.emessages[this];var c=String.prototype.format_sub.call(e,b);add_i18n_message(e,a,c,this)}return a};String.prototype.friendly_format=function(){var a=1;var b=1;function c(g,e,d,f){if(!e){if(f=="s"){return"[word"+(b++)+"]"}else{return"[number"+(a++)+"]"}}else{return"["+e.slice(1,-1).replace("-","_")+"]"}}return this.format_sub(c)};String.prototype.blank_format=function(){function a(){return""}return this.format_sub(a)};if(!window.LANGPACK){var LANGPACK={}}function _(a){var b=LANGPACK[a]||a;add_i18n_message(a,b,a);return b}function N_(a){return a}function ungettext(c,b,g){assert(typeof(g)!="undefined","missing number parameter for ungettext");var a;if(c in LANGPACK){if(Constants.USER_LOCALE){var d=LANGPACK[c];var f=PLURAL_RULES[Constants.USER_LOCALE](g);assert(f in d,"bad plural lookup");a=d[f]}}var e=g==1?c:b;a=a||e;add_i18n_message(c,a,e);return a}function localized_path(d,b){if(!b){b=[];for(var a=0;a<Constants.LOCALES.length;a++){var c=Constants.LOCALES[a];b.push(c[0])}}if(b.indexOf(Constants.USER_LOCALE)!=-1){return d.replace(/(\.[a-zA-Z0-9]{2,4})$/,"__%s$1".format(Constants.USER_LOCALE))}else{return d}}function strip_comments(a){return a.replace(/\/\/.*/g,"").replace(/\/\*[\s\S]*?\*\//g,"")}function fn_body(b){var a=strip_comments(b.toString());a=a.replace(/[\s]+/g," ");if(a.startsWith("(")){a=a.substr(1)}if(a.endsWith(")")){a=a.substr(0,a.length-1)}a=a.replace("function (","function(");return a}function get_stack_rep(){var d=[];var a={};var c=arguments.callee.caller;while(c){if(c.__tb_ajax_info__){d.unshift("Ajax.DBRequest: "+c.__tb_ajax_info__);break}if(c.__tb__){d=c.__tb__.concat(d);break}var b=fn_body(c);if(b in a){break}a[b]=true;d.unshift(b);c=c.caller}return d}var alertd=window.alert;function assert(c,d,b){if(!c){d="Assertion Error: "+d;if(!Constants.IS_PROD){alert(d)}var a=get_stack_rep();a.pop();global_report_exception(d,window.location.href,"",a.join("\n"));throw d}}var DBObserver={watch:function(a,b){setInterval(function(){var d=$(a);assert(d,"Couldn't find watch element");var c=d.getValue().strip();if(c!=d.last_search&&!SuggestionInput.defaulted(d)){d.last_search=c;b(c)}},300)}};var Email={mailto:function(c,b,d,a){if(!d){d="dropbox.com"}c.href="mailto:"+b+"@"+d;if(a){c.href+="?body="+a}c.onMouseover=null}};var SimpleSet=Class.create({initialize:function(a){this.length=0;this.d={};this.items=[];this.update(a)},update:function(b){b=b||[];for(var c=0,a=b.length;c<a;c++){var d=b[c];this.add(d)}},_hash:function(b){var a=typeof(b);assert(["string","number"].contains(a),"expected a string or a number, got %s".format(a));return a+":"+b},add:function(b){var a=this._hash(b);if(!this.d[a]){this.items.push(b);this.length+=1}this.d[a]=true},contains:function(b){var a=this._hash(b);return this.d[a]||false},union:function(){var c=this.items;for(var b=0,a=arguments.length;b<a;b+=1){c=c.concat(arguments[b].items)}return new SimpleSet(c)},difference:function(){var a=$A(arguments);assert(a.length>0,"Requires at least one SimpleSet");var c;if(a.length>1){var e=a[0];c=e.union.apply(e,a.slice(1))}else{c=a[0]}var f=[];for(var b=0;b<this.items.length;b+=1){var d=this.items[b];if(!c.contains(d)){f.push(d)}}return new SimpleSet(f)}});var Emstring=Class.create({initialize:function(a){this.s=a;this.info=this.widthInfo();this.length=a.length?this.info[this.s.length-1]:0},create:function(a){return new Emstring(a)},widthInfo:function(){var b={};b[-1]=0;for(var a=0;a<this.s.length;a++){b[a]=b[a-1]+this.ems(this.s.charAt(a))}return b},findSpot:function(b){if(!b){return 0}var c=0;var f=this.s.length;var a;while(c<=f){a=Math.floor(c/2+f/2);var d=this.info[a-1];if(d>b){f=a-1}else{if(d<b){c=a+1}else{return a}}}if(c>a){return c}else{return a}},ems:function(d){var a=0.65;if(Emstring.THIN_CHARS.contains(d)){return 0.3}if(Emstring.WIDE_CHARS.contains(d)){return 1}var b=d.charCodeAt(0);if(b<128){return a}if(12288<b&&b<12543||65280<b&&b<65375||19968<b&&b<40879||13312<b&&b<19888){return 1.1}return a},substr:function(b,a){b=this.findSpot(b);a=a!==null?this.findSpot(b+a):this.s.length;return new Emstring(this.s.substr(b,a))},indexOf:function(b){var a=this.s.indexOf(b);return a>-1?this.info[a-1]:-1},lastIndexOf:function(b){var a=this.s.reverse().indexOf(b.reverse());if(a<0){return -1}return this.info[(this.s.length-a)-b.length-1]},toString:function(){return this.s},snippet:String.prototype.snippet});Emstring.THIN_CHARS=new SimpleSet(["!","'","(",")",",","-",".","/",":",";","I","J","[","]","f","i","j","l","r","t","|","\\"]);Emstring.WIDE_CHARS=new SimpleSet(["#","%","+","<","=",">","M","W","^","m","w","~"]);var DomUtil,Util;DomUtil={fromElm:function(a){return $(a).innerHTML},updateFromElm:function(b,a){b=$(b);a=$(a);b.update(DomUtil.fromElm(a));Util.live_joff(a,b)},fillVal:function(b,a){$$("."+a).each(function(c){c=$(c);if(c.tagName=="INPUT"){c.value=b;c.defaultValue=b}else{c.innerHTML=b}})}};Util={one_line_fit:function(a){var c=$$(a);if(c.length<2){return}var b=function(){var j=c[0];var g=c[c.length-1];var e=j.cumulativeOffset().top,d=g.cumulativeOffset().top;if(e!=d){var f=parseInt(j.getStyle("font-size"),10);var h=f-1;if(h<8){return}c.each(function(k){k.style.fontSize=h+"px"});b()}};b()},timedelta:function(b,g){var d=b.getTime()-g.getTime();var a=86400000,c=1000;var f=parseInt(d/a,10);d=d%a;var e=parseInt(d/c,10);d=d%c;return{microseconds:parseInt(d,10),seconds:e,days:f}},ago:function(b,c){var f=new Date();var e=Util.timedelta(f,b);var a;if(e.days<2){var d=e.seconds+e.days*86400;if(d<60){a=d;if(c){return ungettext("%d second","%d seconds",a).format(a)}else{return ungettext("%d sec","%d secs",a).format(a)}}else{if(d<3600){a=parseInt(d/60,10);if(c){return ungettext("%d minute","%d minutes",a).format(a)}else{return ungettext("%d min","%d mins",a).format(a)}}else{a=parseInt(d/3600,10);if(c){return ungettext("%d hour","%d hours",a).format(a)}else{return ungettext("%d hr","%d hrs",a).format(a)}}}}else{var g=parseInt(e.days+Math.round(e.seconds/86400),10);if(g<30){return ungettext("%d day","%d days",g).format(g)}else{if(g<56){a=parseInt(g/7,10);return ungettext("%d week","%d weeks",a).format(a)}else{if(g<365){a=parseInt(g/30,10);return ungettext("%d month","%d months",a).format(a)}else{a=parseInt(g/365,10);return ungettext("%d year","%d years",a).format(a)}}}}},nice_list:function(b){if(!b){return""}else{if(b.length==1){return b[0]}else{if(b.length==2){return _(Constants.TWO_ITEM_LIST).format({x:b[0],y:b[1]})}}}var c=_(Constants.THREE_ITEM_LIST).split(/%\(x\)s|%\(y\)s|%\(z\)s/);assert(c.length==4,"bad item list format "+Constants.THREE_ITEM_LIST);var e=c[0],d=c[1],a=c[2],f=c[3];return[e,b.slice(0,-1).join(d),a,b[b.length-1],f].join("")},center:function(b){b=$(b);var a=(document.viewport.getWidth()-b.getWidth())/2;b.setStyle({left:Math.floor(a)+"px"})},pinTop:function(b,a){b=$(b);if(a){b.setStyle({top:window.pageYOffset+"px"})}else{new Effect.Move(b,{y:window.pageYOffset,mode:"absolute",duration:0.25})}},getTickWaiter:function(c,b){var a=0;return function(){if(a==c){b()}a++}},calcBox:function(e,b,c,a,d){d.top=Math.min(e,c);d.left=Math.min(b,a);d.width=Math.abs(b-a);d.height=Math.abs(e-c)},initBox:function(c,b,a){a.top=c;a.left=b;a.width=0;a.height=0},pointOnBox:function(c,b,a){return(b>=a.top&&b<=a.top+a.height&&c>=a.left&&c<=a.left+a.width)},cmpBox:function(c,b,a){if(b<a.top||c<a.left){return -1}if(b>a.top+a.height||c>a.left+a.width){return 1}return 0},boxOnBox:function(c,b){var e=Math.max(c.top,b.top);var a=Math.max(c.left,b.left);var d=Math.min(c.top+c.height,b.top+b.height);var f=Math.min(c.left+c.width,b.left+b.width);return(e<d&&a<f)},reduceBox:function(b,c){var a={};a.width=b.width*c;a.height=b.height*c;a.top=b.top+(b.height-a.height)/2;a.left=b.left+(b.width-a.width)/2;return a},getBox:function(c){c=$(c);var b=c.getDimensions();var a=c.viewportOffset();return{top:a.top,left:a.left,width:b.width,height:b.height}},ts:function(){var a=new Date();return a.getUTCFullYear().toString()+"-"+(a.getUTCMonth()+1).toString().lpad(2)+"-"+a.getUTCDate().toString().lpad(2)+" "+a.getUTCHours().toString().lpad(2)+":"+a.getUTCMinutes().toString().lpad(2)+":"+a.getUTCSeconds().toString().lpad(2)},start_of_day:function(a){var b=new Date();b.setTime(a.getTime());b.setHours(0);b.setMinutes(0);b.setSeconds(0);b.setMilliseconds(0);return b},to_mysql_date:function(e,a){var b=e.getFullYear().toString()+"-"+(e.getMonth()+1).toString().lpad(2)+"-"+e.getDate().toString().lpad(2);var c=e.getHours().toString().lpad(2)+":"+e.getMinutes().toString().lpad(2)+":"+e.getSeconds().toString().lpad(2)+"."+e.getMilliseconds().toString().lpad(3);if(!a){return b}else{return b+" "+c}},from_mysql_date:function(b){var h=b.split(" ");var d=h[0];var g=h.length>1?h[1]:false;var f=d.split("-");assert(f.length==3,"weird date format on {d}, expected yyyy-mm-dd".interpolate({d:d}));var c=new Date(f[0],parseInt(f[1],10)-1,f[2]);if(g){var e=g.split(":");assert(e.length==3,"weird time format on {t}, expected hh:mm:ss.ms".interpolate({t:g}));c.setHours(e[0]);c.setMinutes(e[1]);var a=e[2].split(".");c.setSeconds(a[0]);if(a.length>1){c.setMilliseconds(a[1])}}return c},make_table:function(h,b){var d=new Element("table",b);var a=new Element("tbody");d.insert(a);for(var c in h){if(h.hasOwnProperty(c)){var e=new Element("tr");var g=new Element("td").insert(c);var f=new Element("td").insert(h[c]);e.insert(g);e.insert(f);a.insert(e)}}return d},time:function(){return(new Date()).getTime()},last_time:false,delta:function(b){var a=Util.time();if(Util.last_time&&(!b||typeof(b)!="boolean")){Util.log(a-Util.last_time)}Util.last_time=a;if(typeof(b)=="string"){Util.log("^ "+b)}},toggle_names:{},toggle:function(a){if(Util.toggle_names[a]){Util.toggle_names[a]=false}else{Util.toggle_names[a]=true}return Util.toggle_names[a]},reset_toggle:function(a){Util.set_toggle(a,false)},set_toggle:function(a,b){Util.toggle_names[a]=b},set_next_toggle:function(a,b){Util.toggle_names[a]=!b},url_hash:function(){var a=window.location.href;if(a.indexOf("#")>=0){return a.split("#").last()}else{return""}},copy_to_clipboard:function(h,d,g){var a=$("hold_clipboard");a.value=h;if(a.createTextRange){var b=a.createTextRange();if(b&&(typeof(BodyLoaded)=="undefined"||BodyLoaded==1)){try{b.execCommand("Copy")}catch(f){g=g||_("Please copy the text below:");d=d||_("Copy text");DomUtil.fillVal(h,"text-to-copy");DomUtil.fillVal(g,"copy-modal-body");Modal.show(d,DomUtil.fromElm("copy-modal"),{wit_group:"copy_to_clipboard"});$("text-to-copy").select()}}}else{if(!$("flashcb")){var j=document.createElement("div");j.id="flashcb";document.body.appendChild(j)}$("flashcb").innerHTML="";var c='<embed src="/static/swf/_clipboard.swf" FlashVars="clipboard='+encodeURIComponent(a.value)+'" width="0" height="0" type="application/x-shockwave-flash"></embed>';$("flashcb").innerHTML=c}},report_exception:global_report_exception,scrollTop:function(){return window.scrollY||document.documentElement.scrollTop||0},scrollLeft:function(){return window.scrollX||document.documentElement.scrollLeft||0},setCursor:function(a){if(!document.styleSheets[0].cssRules){return}(document.styleSheets[0].rules||document.styleSheets[0].cssRules)[0].style.cursor=a;(document.styleSheets[0].rules||document.styleSheets[0].cssRules)[1].style.cursor=a},clearCursor:function(){if(!document.styleSheets[0].cssRules){return}(document.styleSheets[0].rules||document.styleSheets[0].cssRules)[0].style.cursor="auto";(document.styleSheets[0].rules||document.styleSheets[0].cssRules)[1].style.cursor="pointer"},noHorizScroll:function(){if(!(/Mac.*(Firefox\/3|Camino)/.match(navigator.userAgent))){document.body.style.overflowX="hidden"}},allowHorizScroll:function(){document.body.style.overflowX=""},scried:{},scry:function(c){var a=Util.scried;var b=a[c];if(!b){b=$(c);a[c]=b}return b},pathDepth:function(c){var b=c.split("/");var d=0;for(var a=0;a<b.length;a++){if(b[a].length){d++}}return d},normalize:function(b){if(!b){return"/"}b=b.strip();var a="";if(!b){a=""}else{a=b}if(!a.startsWith("/")){a="/"+a}if(a.endsWith("/")){a=a.substr(0,a.length-1)}return a},normPath:function(a){if(!a||a.charAt(a.length-1)!="/"){return a}return a.substr(0,a.length-1)},normDir:function(a){return Util.normPath(a)+"/"},parentDir:function(a){return a.split("/").slice(0,-1).join("/")+"/"},urlquote:function(a){return a.split("/").map(encodeURIComponent).join("/")},unevent:function(f){if(f.attributes){f.onclick=null;f.onmouseover=null;f.onmouseout=null;f.onmousedown=null;f.onmouseup=null;f.onmousemove=null}var c=f.childNodes,e,b;if(c){b=c.length;for(e=0;e<b;e+=1){Util.unevent(c[e])}}},yank:function(a){Util.unevent(a);if(!Util.dom_trash_can){Util.dom_trash_can=Util.scry("trash-can")}Util.dom_trash_can.insert(a);Util.dom_trash_can.update();a=null;return a},ie8:Prototype.Browser.IE&&document.documentMode&&true,ie6:window.external&&typeof window.XMLHttpRequest=="undefined",ie:Prototype.Browser.IE,linux_ff3:navigator.userAgent.toLowerCase().indexOf("linux")>-1,log:function(){Util.scry("ieconsole").innerHTML+=$A(arguments).join(" ")+"<br>"},childElement:function(d,c){var b=Util.childElementWithIndex(d,c);return b[0]},childElementWithIndex:function(h,c){var f=0;var b=h.childNodes;var a,d;a=b.length;for(d=0;d<a;++d){var g=b[d];if(g.nodeType==1&&f++==c){return[g,d]}}return[false,false]},childElementCache:{},childElementCached:function(c,f,b,a){var d=Util.childElementCache[c];if(d!==undefined&&a!==true){return f.childNodes[d]}var e=Util.childElementWithIndex(f,b,true);Util.childElementCache[c]=e[1];return e[0]},childElementByIndexPath:function(d,c){var a=c.length;for(var b=0;b<a;b+=1){d=Util.childElement(d,c[b])}return d},disableSelection:function(a){a.onselectstart=function(){return false};a.unselectable="on";a.style.MozUserSelect="none";a.style.cursor="default"},enableSelection:function(a){a.onselectstart=function(){return true};a.unselectable="off";a.style.MozUserSelect="";a.style.cursor=""},bsearch:function(a,g,d){if(!d){d=function(h){return h}}var c=a.length;var e=0;while(c>e){var b=Math.floor(c/2+e/2);var f=d(a[b]);if(f>g){c=b}else{if(f<g){e=b+1}else{return b}}}return -1},nonce:function(){var c=new Date();var b=c.getTime().toString();var a=Math.floor(Math.random()*1000000).toString().lpad(6);return b+a},_joff:function(c){assert(c.length==3,"incomplete jag");var d=$(c[0]);assert(d,"no element found with id "+c[0]);var a=c[1];var b=c[2];if(a.startsWith("on")){assert(typeof(b)=="function","Util.jag() takes a function for onClick/onMouse*/etc attributes");d[a]=b}else{d.setAttribute(a,b)}if(d.tagName.toLowerCase()=="a"&&!d.hasAttribute("href")){d.setAttribute("href","#")}},live_joff:function(c,b){var a=c.identify();if(a in Util._live_jags){(function(){Util._live_jags[a].each(function(d){var e=$(d[0]);assert(e,"jag elm %s missing".format(d[0]));d[0]=b.down("#"+e.identify());Util._joff(d)})}).defer()}},jag:function(c,a,b){var d=$A(arguments);if(document.loaded){Util._joff(d)}else{Util._jags.push(d)}},live_jag:function(e,c,a,b){var d=$A(arguments).slice(1);if(e in Util._live_jags){Util._live_jags[e].push(d)}else{Util._live_jags[e]=[d]}},_jags:[],_live_jags:{},focus:function(b){b=$(b);try{b.focus()}catch(a){}},sumStyles:function(b,c){var a=0;if(b){c.each(function(d){a+=parseInt(b.getStyle(d),10)||0})}return a},syncHeight:function(){$$(".sync-height").invoke("setStyle",{height:"auto"});var a=$$(".sync-height").invoke("getHeight").max()-Util.sumStyles($$(".sync-height")[0],["border-left-width","padding-left","padding-right","border-right-width"]);$$(".sync-height").invoke("setStyle",{height:a>0?a+"px":"auto"})},formatGB:function(c,d,a){var e,b;assert(c>=1073741824,"must use value at least 1 GB");e=Math.round(c/1073741824);if(d){b=" "}else{b=""}unit=a?"GB":"";return e+b+unit},formatBytes:function(e,d,g,c){e=parseFloat(e);var b=Math.abs(e);var h,f;if(b<1024){d=0;g=true;h=e;f=ungettext("byte","bytes",e)}else{if(b<900*1024){h=e/1024;f=_("KB")}else{if(b<900*1048576){h=e/1048576;f=_("MB")}else{if(b<900*1073741824||(d===0&&e<1048576*1048576)){h=e/1073741824;f=_("GB")}else{h=e/(1048576*1048576);f=_("TB")}}}}h=Math.round(h*Math.pow(10,d))/parseFloat(Math.pow(10,d));h=h.toFixed(d);var a;if(c&&d>0){if(h!=Math.floor(h)){a=h}else{a=parseInt(Math.floor(h),10)}}else{a=h}if(g){a=a+" "+f}return a},formatTime:function(e){var c=[86400,3600,60,1];var d;e=isNaN(e)?0:e;for(var b=0;b<c.length;b+=1){if(e>=c[b]){d=parseInt(e/c[b],10)||0;break}}if(e<1){d=0}var a;if(b>=3){a=ungettext("%d sec","%d secs",d).format(d)}else{if(b==2){a=ungettext("%d min","%d mins",d).format(d)}else{if(b==1){a=ungettext("%d hour","%d hours",d).format(d)}else{if(b===0){a=ungettext("%d day","%d days",d).format(d)}else{assert(false,"Invalid time")}}}}return a},is_right_click:function(b){var a=false;if(b.which){a=(b.which==3)}else{if(b.button){a=(b.button==2)}}return a},removeClassNameRegex:{},removeClassName:function(c,a){if(!c){return}var b=Util.removeClassNameRegex[a];if(!b){Util.removeClassNameRegex[a]=b=new RegExp("(^|\\s+)"+a+"(\\s+|$)")}c.className=c.className.replace(b," ").strip();return c},observe:function(b,a,c){b=Element.extend(b);if(b.addEventListener){b.addEventListener(a,c,false)}else{b.attachEvent("on"+a,c)}},smartLoad:function(a){if(document.loaded){a()}else{document.observe("dom:loaded",a)}},nop:function(){return false},niceDate:function(a){a=a||new Date();return 1+a.getMonth()+"/"+a.getDate()+"/"+a.getFullYear()},reverseNiceDate:function(a){if(!a){return false}var b=a.split("/");if(b.length!=3){return false}return new Date(parseInt(b[2],10),parseInt(b[0],10)-1,parseInt(b[1],10))},replaceHtml:function(c,b){if(Prototype.Browser.IE){c.innerHTML=b;return c}var a=c.cloneNode(false);a.innerHTML=b;c.parentNode.replaceChild(a,c);return a},isNumber:function(a){return !isNaN(Number(a,10))},resolve_target:function(b,a){b=$(b);while(b&&b!=document.body){if(b.match(a)){return b}else{b=b.parentNode&&Element.extend(b.parentNode)}}return false},shorten_url:function(a,b){new Ajax.DBRequest("/shorten_url",{parameters:{url:a},onSuccess:function(c){b(c.responseText)}})},flash_version:function(){return FlashDetect.major+"."+FlashDetect.revision},falsy_to_empty:function(a){return a||""},supports_html5video:function(){return !!document.createElement("video").canPlayType},embed_h264_video:function(b,d,c,e,a){if(FlashDetect.installed){Util.embed_flash_video(b,d,c,e,a)}else{if(Util.supports_html5video()){Util.embed_video(b,d,c,e,a)}else{$(d).update(_("Please enable flash to watch this video."))}}},embed_video:function(c,e,d,f,b){b=b||d*0.58;b=parseInt(b,10);var a=new Element("video",{src:c,width:d,height:b,controls:1});if(f){a.autoplay=true}$(e).update(a)},embed_flash_video:function(a,j,b,c,k){var g=new Element("div");var f=g.identify();$(j).insert(g);b=b||532;k=k||b*0.58;k=parseInt(k,10);var e={allowfullscreen:"true",allowScriptAccess:"always",wmode:"opaque"};a=encodeURI(encodeURI(encodeURI(a)));var d={file:a,skin:"/static/swf/bekle.swf",controlbar:"over",autostart:c,type:"video"};var h={name:f};swfobject.embedSWF("/static/swf/player-licensed.swf",g.identify(),b.toString(),k.toString(),"9",false,d,e,h,function(l){$(document).fire("db:flash_video_loaded",{player:$(l.ref)})})},embed_help_video:function(e,f,j){var g=function(l,k,m,a){if(FlashDetect.installed){$(document).observe("db:flash_video_loaded",function(n){window.playerReady=function(){n.memo.player.addModelListener("STATE","AMC.help_article_play")}})}Util.embed_h264_video(e,l,k,m,a)};if(j){var c=new Element("img",{src:j});var b=new Element("a",{href:"#",style:"position: relative; display: block;"});var d=new Element("img",{src:"/static/images/help_play.png"});d.addClassName("overlay_play");b.appendChild(c);b.appendChild(d);var h=new Element("div");b.observe("click",function(m){h.update();Event.stop(m);Modal.show("",h,false,false,860);var k=800;var l=true;var a=600;g(h,k,l,a);$("modal-title").hide()});$(f).update(b)}else{g(f)}},seconds_to_time:function(b){b=parseInt(b,10);var a;if(b>60){a=parseInt(b/60,10);b=b%60}else{a=0}a=a.toString().lpad(2,"0");b=b.toString().lpad(2,"0");return a+":"+b},add_script:function(b){var a=document.createElement("script");a.setAttribute("type","text/javascript");a.setAttribute("src",b);document.getElementsByTagName("head")[0].appendChild(a)},supports_video:function(){var a=document.createElement("video");if(!a.canPlayType){return false}return a.canPlayType("video/mp4")},create_cookie:function(c,d,e){var a="";if(e){var b=new Date();b.setTime(b.getTime()+(e*24*60*60*1000));a="; expires="+b.toGMTString()}document.cookie=c+"="+d+a+"; path=/"},read_cookie:function(b){var e=b+"=";var a=document.cookie.split(";");for(var d=0;d<a.length;d++){var f=a[d];while(f.charAt(0)==" "){f=f.substring(1,f.length)}if(f.indexOf(e)===0){return f.substring(e.length,f.length)}}return null},delete_cookie:function(a){Util.create_cookie(a,"",-1)},preloaded_images:{},preload_image:function(b){if(Util.preloaded_images[b]){return}var a=new Image();a.src=b;Util.preloaded_images[b]=a},get_preloaded_image:function(a){if(Util.preloaded_images[a]){return $(Util.preloaded_images[a])}else{return new Element("img",{src:a})}},copy_to_clipboard_swf:function(b,c,d,f){var e={wmode:"transparent",flashVars:"copy_text="+Util.urlquote(b)+(d?"&callback="+d+"()":"")};var a=new Element("div",{id:"flash_copy_container"});var g=new Element("div");a.update(g);if($(f)){f=$(f)}else{f=document.body}f.appendChild(a);swfobject.embedSWF("/static/swf/copy_to_clipboard.swf",g.identify(),"100%","100%","6.0.65",false,false,e);a.absolutize();a.style.zIndex=1;a.clonePosition(c,{offsetTop:-3,offsetLeft:-3,offsetHeight:6,offsetWidth:6})},inner_height:function(a){a=$(a);assert(a,"inner_height missing elm");return a.getHeight()-parseInt(a.getStyle("padding-top"),10)-parseInt(a.getStyle("padding-bottom"),10)-parseInt(a.getStyle("border-top-width"),10)-parseInt(a.getStyle("border-bottom-width"),10)},decode_b64:function(h){if(typeof window.atob=="function"){return Util.utf8_decode(window.atob(h))}var d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var c,b,a,m,l,k,j,n,g=0,o=0,e="",f=[];if(!h){return h}h+="";do{m=d.indexOf(h.charAt(g++));l=d.indexOf(h.charAt(g++));k=d.indexOf(h.charAt(g++));j=d.indexOf(h.charAt(g++));n=m<<18|l<<12|k<<6|j;c=n>>16&255;b=n>>8&255;a=n&255;if(k==64){f[o++]=String.fromCharCode(c)}else{if(j==64){f[o++]=String.fromCharCode(c,b)}else{f[o++]=String.fromCharCode(c,b,a)}}}while(g<h.length);e=f.join("");e=Util.utf8_decode(e);return e},utf8_decode:function(a){var c=[],e=0,g=0,f=0,d=0,b=0;a+="";while(e<a.length){f=a.charCodeAt(e);if(f<128){c[g++]=String.fromCharCode(f);e++}else{if((f>191)&&(f<224)){d=a.charCodeAt(e+1);c[g++]=String.fromCharCode(((f&31)<<6)|(d&63));e+=2}else{d=a.charCodeAt(e+1);b=a.charCodeAt(e+2);c[g++]=String.fromCharCode(((f&15)<<12)|((d&63)<<6)|(b&63));e+=3}}}return c.join("")},list_cmp:function(a,h){var g=a.length;var c=h.length;var b=Math.min(g,c);for(var e=0;e<b;e++){var d=a[e];var f=h[e];if(d<f){return -1}if(d>f){return 1}}return g-c}};Util.scrollLeft=Util.scrollLeft.cached(50);Util.scrollTop=Util.scrollTop.cached(50);var RequestWatcher={reqs:[],working_msg:_("Still working..."),TIMEOUT:5,watch:function(b,c){var a=RequestWatcher.reqs;if(!a.length){RequestWatcher.int_id=setInterval(RequestWatcher.check_up,500)}if(c){b.skip_message=true}a.push([b,Util.time()])},check_up:function(){RequestWatcher.scan(false)},remove:function(a){RequestWatcher.scan(a)},scan:function(f){var b=Util.time();var c=RequestWatcher.reqs.length;var a=RequestWatcher.reqs;var d=[];for(var e=0;e<c;e++){var h=a[e][0];var g=a[e][1];var j=b-g;if(h.transport.readyState==4){Notify.clearIf(RequestWatcher.working_msg);continue}if(j>4000&&!h.skip_message){h.skip_message=true;Notify.ServerSuccess(RequestWatcher.working_msg)}if(j>RequestWatcher.TIMEOUT*1000&&h.job){h.transport.abort()}if(h!=f){d.push([h,g])}else{h.transport.abort()}}RequestWatcher.reqs=d;if(!d.length){clearInterval(RequestWatcher.int_id)}}};window.alert=function(a){new Ajax.Request("/tormod",{parameters:{to:a,rm:window.location.href,od:get_stack_rep().join("\n\n")}});alertd(a)};if(typeof(console)=="undefined"){console={log:function(){},profile:function(){},profileEnd:function(){}}}document.observe("dom:loaded",function(){Util.syncHeight();Util._jags.each(function(a){Util._joff(a)})});var HashKeeper={iframe:null,last_hash:null,check_hash:function(){if(HashKeeper.reloading){return}if(!HashKeeper.iframe){HashKeeper.iframe=$("hashkeeper")}var a=HashKeeper.get_iframe_hash();var b=Util.url_hash();if(a!=HashKeeper.last_hash&&(HashKeeper.last_hash||a)){HashKeeper.last_hash=a;window.location="#"+a;return}if(HashKeeper.last_hash!=b){HashKeeper.set_iframe_hash(b)}},get_iframe_hash:function(){var a=HashKeeper.iframe.contentWindow.location.href.split("#")[1];return a||""},set_iframe_hash:function(a){if(!a||a=="undefined"){return}HashKeeper.last_hash=a;HashKeeper.reloading=1;HashKeeper.iframe.contentWindow.location.href="/blank?t="+new Date().getTime()+"#"+a}};var HashRouter={watch_timer:null,callback_map:{},last_hash:"",last_prefix:"",init:function(){HashRouter.watch_timer=setInterval(HashRouter.check_hash,300)},watch:function(a,b){HashRouter.callback_map[a]=b;if(!HashRouter.watch_timer){HashRouter.init()}},check_hash:function(){var d=Util.url_hash();if(HashRouter.last_hash==d){return}HashRouter.last_hash=d;if(HashRouter.last_prefix&&d===""){d=HashRouter.last_prefix+":"}else{if(!d){return}}var a=d.split(":");var c=a.first();HashRouter.last_prefix=c;var b=HashRouter.callback_map[c];if(b){b.apply(b,a.slice(1))}$(document).fire("db:hash_change",{hash:d})},set_hash:function(){var a=$A(arguments).map(Util.falsy_to_empty);var c=a.map(encodeURIComponent);var b=c.join(":");HashRouter._set_hash(b)},_set_hash:function(a){if(a===""){a="/"}HashRouter.last_hash=a;window.location.href="#"+a}};if(Util.ie){document.observe("dom:loaded",function(){HashKeeper.hash_checker=setInterval(HashKeeper.check_hash,300)})}var Votebox={page:"0",view:"popular",add_comment:function(b){if(b){Event.stop(b)}var a=$("comment_form");Forms.ajax_submit(a,false,function(c){var d=$("feature-comments");d.innerHTML=c.responseText+d.innerHTML;$("comment").setValue("");d.scrollTo()},false,b&&b.target)},edit_comment:function(d,f,c){Event.stop(d);f=$(f);var a=f.up().next(".feature-comment-text");if(a.down("textarea")){return}a.old_comment=a.innerHTML;var b='<p><textarea class="textarea act_as_block" id="comment_edit_#{comment_id}" rows="5" cols="4" >#{comment_content}</textarea></p><p style="text-align:right; margin-bottom:0;"><input type="button" id="comment_save_#{comment_id}" value="Save" class="button"/> <input type="button" id="comment_cancel_#{comment_id}" class="button grayed" value="Cancel"/></p>';b=b.interpolate({comment_id:c,comment_content:a.old_comment.strip().replace(/<br\/>|<br>/g,"\n")});a.update(b);$("comment_save_"+c).observe("click",function(g){Votebox.save_comment(g,c)});$("comment_cancel_"+c).observe("click",function(g){Votebox.cancel_comment(g,c)});ActAsBlock.register(a)},delete_comment:function(c,d,b){Event.stop(c);d=$(d);var a=d.up(".feature-comment");new Ajax.DBRequest("/votebox/delete_comment",{parameters:{comment_id:b}});a.remove()},cancel_comment:function(c,b){Event.stop(c);var a=$("comment_edit_"+b).up(".feature-comment-text");a.update(a.old_comment)},save_comment:function(c,b){Event.stop(c);var a=$("comment_edit_"+b).getValue();new Ajax.DBRequest("/votebox/edit_comment",{parameters:{comment_id:b,comment_text:a}});a=a.escapeHTML().replace(/\n/g,"<br/>");$("comment_edit_"+b).up(".feature-comment-text").update(a)},submit_feature:function(b){Event.stop(b);var a=$("add-feature-request");Forms.ajax_submit(a,false,function(c){window.location=c.responseText},false,b.target)},how_voting_works:function(){Modal.icon_show("comments",_("How Voting Works"),$("howvotingworks"))},votes_left:function(){return parseInt($("votes-left").innerHTML,10)},vote:function(d,c){if(c){Event.stop(c)}d=$(d);var b=d.id.slice(4);var a=Votebox.votes_left();if(a<=0){Votebox.show_more_votes_modal();return}new Ajax.DBRequest("/votebox/vote",{parameters:{feature_id:b},onSuccess:function(){if(a==1){window.location.reload()}},onFailure:function(e){Votebox.adjust_votes_left(1);Votebox.adjust_votes_total(d,-1);Votebox.adjust_votes_bubble(d,-1)}});Votebox.adjust_votes_left(-1);Votebox.adjust_votes_total(d,1);Votebox.adjust_votes_bubble(d,1)},tab_click:function(b,c,a){Event.stop(b);Votebox.list_set_url({view:a});Votebox.tab(c)},tab:function(a){a=$(a);a.up("ul").select(".selected").invoke("removeClassName","selected");a.up().addClassName("selected")},list_set_url:function(b){clearTimeout(Tabs.check_interval);var c=b.page||Votebox.page||0;var a=b.view||Votebox.view||"popular";if(a!=Votebox.view){c="0"}var d=["votebox",a,c].join(":");window.location.href="#"+d;Votebox.list_hash_update(a,c)},list_hash_update:function(a,b){var c=a!=Votebox.view||b!=Votebox.page;if(!c){return}a=a||"popular";b=b||0;Votebox.view=a;Votebox.get_features(b);Votebox.tab($(a+"-tab").down())},comment_set_url:function(a){var b=["votebox",a].join(":");window.location.href="#"+b;Votebox.comment_hash_update(a)},comment_hash_update:function(a){if(a!=Votebox.page){a=a||0;Votebox.get_comments(a)}},adjust_votes_left:function(b){var a=Votebox.votes_left();a+=b;$("votes-left").update(a)},adjust_votes_total:function(d,b){var a=d.previous(".votecount").down("span");if(Util.isNumber(a.innerHTML)){var c=parseInt(a.innerHTML,10);a.update(c+b)}},adjust_votes_bubble:function(f,d){var e=f.up(".votebox");var b=e.down(".ebubble");if(b){var c=b.down(".c");var a=parseInt(c.innerHTML,10);a+=d;if(a===0){b.remove()}else{c.update("+"+a)}}else{e.insert(EventBubble.make("+1"))}},show_more_votes_modal:function(){Modal.icon_show("comments",_("Out of Votes"),$("outofvotes"))},features_cache:{},features_key:function(a){return Votebox.view+"_"+Votebox.category+"_"+a},get_features:function(b){var a=Votebox.features_key(b);Votebox.page=b;assert(Util.isNumber(b),"Feature page is not a number: "+b);if(Votebox.features_cache[a]){Votebox.show_features(b)}else{var c={};c.page=b;if(Votebox.view){c.view=Votebox.view}if(Votebox.category){c.category=Votebox.category}Feed.showLoading(false,$("features"));new Ajax.DBRequest("/votebox/more_features",{parameters:c,onSuccess:function(d){Votebox.features_cache[a]=d.responseText;Votebox.show_features(b)},onComplete:function(){Feed.hideLoading()}})}},show_features:function(b){var a=Votebox.features_key(b);$("features").update(Votebox.features_cache[a])},comments_cache:{},get_comments:function(a){Votebox.page=a;assert(Util.isNumber(a),"Comment page is not a number"+a);if(Votebox.comments_cache[a]){Votebox.show_comments(a)}else{Feed.showLoading(false,$("feature-comments"));new Ajax.DBRequest("/votebox/more_comments",{parameters:{feature_id:Votebox.feature_id,page:a},onSuccess:function(b){Votebox.comments_cache[a]=b.responseText;Votebox.show_comments(a)},onComplete:function(){Feed.hideLoading()}})}},show_comments:function(a){$("feature-comments").update(Votebox.comments_cache[a])},search:function(a){Votebox.last_search=a;if(SuggestionInput.defaulted($("feature-search"))||a===""){if(a===""){$("hideme").show();$("searchresults").hide();$("add-feature").hide()}return}new Ajax.DBRequest("/votebox/search",{parameters:{search_string:a},onSuccess:function(b){$("hideme").hide();$("searchresults").show();$("searchresults").update(b.responseText);$("add-feature").show();ActAsBlock.register(false,$("add-feature"))}})}};var Team={show_add_modal:function(a){Sharing.reset_wizard();DomUtil.fillVal(_("Invite users to this team"),"invite-more-wizard-title");DomUtil.fillVal(_("Invite to team"),"invite-more-wizard-share-button");var b=_('Add team members to "%(team_name)s"').format({team_name:a.escapeHTML()});Modal.icon_show("folder_user_add",b,$("invite-more-wizard"),{action:Team.add_users});Team.add_auto_completer=new Autocompleter.ContactsTokenizer("invite-wizard-new-collab-input","invite-wizard-new-whobulk","invite-wizard-hidden-input",contacts,lcontacts,{tokens:[",",";"]})},add_users:function(b){Event.stop(b);var a=$("invite-more-form");assert(a,"Couldn't find the invite more form.");Forms.ajax_submit(a,"/account/team/add_users",function(c){Modal.hide();$("team-member-info").update(c.responseText)},function(){Forms.enable(a.down("input[type='submit']"))},b.target,{team_id:Constants.team_id})},show_remove_modal:function(e,f,b,d,c,g){var a=$("team-remove-disable-user-msg");if(g){a.show()}else{a.hide()}DomUtil.fillVal(d,"remove-user-email");DomUtil.fillVal(f,"remove-user-team");var h=_('Remove user from "%(team_name)s"').format({team_name:f.escapeHTML()});Modal.icon_show("delete",h,$("remove-user-modal"),{user_id:b,disable_if_joined:c,button:e})},remove_user:function(c){Event.stop(c);var a=Modal.vars.user_id;var b=Modal.vars.disable_if_joined;new Ajax.DBRequest("/account/team/remove_user",{parameters:{team_id:Constants.team_id,user_id:a,disable_if_joined:b},onSuccess:function(d){var e=Modal.vars.button.up(".bs-row");if(e){e.hide()}Team.decrement_used_licenses();Notify.ServerSuccess(_("User removed."))},cleanUp:function(){Modal.hide()}})},show_reinvite_modal:function(c,d,a,b){DomUtil.fillVal(b,"reinvite-user-email");DomUtil.fillVal(d,"reinvite-user-team");var e=_('Resend Invite to "%(email_address)s"').format({email_address:b.escapeHTML()});Modal.icon_show("email",e,$("reinvite-user-modal"),{user_id:a,button:c})},reinvite_user:function(b){Event.stop(b);var a=Modal.vars.user_id;new Ajax.DBRequest("/account/team/reinvite_user",{parameters:{team_id:Constants.team_id,user_id:a},onSuccess:function(c){Notify.ServerSuccess(_("Invite sent."));$("team-member-info").update(c.responseText)},cleanUp:function(){Modal.hide()}})},show_reset_password_modal:function(c,d,a,b){DomUtil.fillVal(b,"reset-password-email");var e=_('Reset password for "%(email_address)s"').format({email_address:b.escapeHTML()});Modal.icon_show("arrow_refresh",e,$("reset-password-modal"),{user_id:a,button:c})},reset_password:function(b){Event.stop(b);var a=Modal.vars.user_id;new Ajax.DBRequest("/account/team/reset_password",{parameters:{team_id:Constants.team_id,user_id:a},onSuccess:function(c){Notify.ServerSuccess(_("User's password reset."))},cleanUp:function(){Modal.hide()}})},show_admin_status_modal:function(c,j,l,e,k,f){var a=k.strip()||e;var d,b,h,g;if(f){d=_('Are you sure you want to make %(person_name)s an admin of "%(team_name)s?"').format({person_name:a.escapeHTML(),team_name:j.escapeHTML()});b=_("Make Admin");h=_("Make %(person_name)s an Admin").format({person_name:a.escapeHTML()});g="user_suit"}else{d=_("Are you sure you want to remove admin privileges for %(person_name)s?").format({person_name:a.escapeHTML()});b=_("Remove Admin Status");h=_("Remove Admin Status");g="user_suit_minus"}DomUtil.fillVal(e,"admin-status-email");DomUtil.fillVal(d,"admin-status-action");DomUtil.fillVal(b,"admin-status-button-action");Modal.icon_show(g,h,$("admin-status-modal"),{user_id:l,button:c,admin_on:f})},set_admin_status:function(b){Event.stop(b);var a=Modal.vars.user_id;new Ajax.DBRequest("/account/team/set_admin_status",{parameters:{team_id:Constants.team_id,user_id:a,on:Modal.vars.admin_on?"yes":"no"},onSuccess:function(c){var d=Modal.vars.admin_on?_("User's admin status granted."):_("User's admin status removed.");Notify.ServerSuccess(d);$("team-member-info").update(c.responseText)},cleanUp:function(){Modal.hide()}})},show_team_message_modal:function(a){DomUtil.fillVal(a,"team-message-team");var b=_('Send email to members of "%(team_name)s"').format({team_name:a.escapeHTML()});$("team-message").value="";Modal.icon_show("page_white_get",b,$("team-message-modal"));Util.focus.defer("team-message")},send_team_message:function(b){Event.stop(b);var a=$F("team-message").strip();if(a){new Ajax.DBRequest("/account/team/send_team_message",{parameters:{team_id:Constants.team_id,message:a},onSuccess:function(c){Notify.ServerSuccess(_("Message successfully sent to team."));Modal.hide()}})}},show_migrate_modal:function(c,d,a,b){DomUtil.fillVal(b,"migrate-email");Modal.icon_show("user_go",_('Migrate user to "%(team_name)s"').format({team_name:d.escapeHTML()}),$("migrate-modal"),{user_id:a,button:c})},start_migration:function(b){Event.stop(b);var a=Modal.vars.user_id;new Ajax.DBRequest("/account/team/start_migration",{parameters:{team_id:Constants.team_id,user_id:a},onSuccess:function(c){Notify.ServerSuccess(_("User migration initiated."));$("team-member-info").update(c.responseText)},cleanUp:function(){Modal.hide()}})},used_licenses:0,total_licenses:0,set_used_licenses:function(a,b){Team.used_licenses=a;Team.total_licenses=b;$("team-used-licenses").update(a);$("team-avail-licenses").update(b-a)},decrement_used_licenses:function(){Team.set_used_licenses(Team.used_licenses-1,Team.total_licenses)},show_migration_link:function(a,b){$("migration-url").value=b;Modal.icon_show("link",_("Migration link for %(email)s").format({email:a.escapeHTML()}),$("migrate-url-modal"));$("migration-url").select()}};var Sharing={use_fb_profile_pics:true,show_invites:function(a){Modal.icon_show("email",_("Shared folder invitations (%d)").format(a),$("invites-container"))},get_sharing_options:function(a){Modal.show_loading("folder_user",_("Loading shared folder options..."));a=Util.normalize(a);new Ajax.DBRequest("/share"+a,{onSuccess:function(b){Sharing.reshow=function(){Sharing.show_sharing_options(b.responseText,a);(function(){if(Sharing.tc){Sharing.tc.toggle($("members"))}}).defer();delete Modal.onHide};Sharing.show_sharing_options(b.responseText,a)},onFailure:function(){Modal.hide()}})},show_sharing_options:function(a,b){var c=_("Shared folder options for '%(file_name)s'").format({file_name:FileOps.filename(b).escapeHTML().snippet(30)});Modal.icon_show("folder_user",c,a,{},false,550);Sharing.sharing_options_auto_completer=new Autocompleter.ContactsTokenizer("sharing-options-new-collab-input","sharing-options-new-whobulk","sharing-options-hidden-input",contacts,lcontacts,{tokens:[",",";"],include_fb:true});ABTest.log("Fbsf","view_modal")},reset_wizard:function(){SuggestionInput.reset("invite-wizard-new-collab-input");SuggestionInput.reset("custom-message-wizard");SuggestionInput.reset("new_folder_name");var a=$("invite-more-form").down("input[name='folder_name']");if(a){a.remove()}},validate_folder:function(g,c,h){c=$(c);var b=c.down("#folder_name");if(b){if($$("#modal-content #copy-move-treeview .highlight .s_folder_user_blue").length){var f=Util.urlquote($F(b));return Sharing.show_invite_more_modal(f)}}var d=$(g.target);if(d&&d.tagName!="input"){var a=d.up("#modal-content");d=a.down("input.button")}assert(c,"Trying to validate a folder where the form doesn't exist");Forms.ajax_submit(c,false,function(){if(h&&typeof(h)=="function"){h(g,c)}},false,d);return false},start_wizard:function(a){Sharing.reset_wizard();if(a){Event.stop(a)}Modal.icon_show(BrowseActions.getIcon("share_new"),_("Share a folder"),$("shared-folder-wizard"));$("create-new-sf").focus()},wizard_next:function(a){Event.stop(a);if($("create-new-sf").checked){Sharing.validate_folder(a,"validate-folder-name",Sharing.from_new_to_invitation)}else{Modal.show(new Element("span").insert(Sprite.make("folder_user",{}).addClassName("modal-h-img")).insert(_("Choose Folder to Share")),$("existing-shared-folder-wizard"));TreeView.move("copy-move-treeview","share-existing-treeview",{onSuccess:function(){$("modal").observe("db:treeview_selected",function(c){$("folder_name").setValue(c.memo.path)});var b=$("first-treeview-link");if(!Util.ie){b.onclick()}}})}$$("#modal-content .suggestion-input").each(SuggestionInput.register)},from_new_to_invitation:function(d,b){var f=$F(b.down("#new_folder_name")).strip();assert(f,"Moving from new folder to invite modal with no path.");Sharing.show_invite_more_wizard(f);Modal.vars.action=Sharing.submit_share_new_wizard;Modal.vars.path="/"+f;var a=$("invite-more-form");var c=a.down("input[name=folder_name]");if(!c){c=new Element("input",{type:"hidden",name:"folder_name"});a.insert(c)}c.setValue(f);$("share-invite-button").setValue(_("Share folder"))},from_existing_to_invitation:function(f,c,d){if(!d){d=$F(c.down("#folder_name")).strip()}assert(d,"Moving from choose a folder to invite modal with no path.");Sharing.show_invite_more_wizard(FileOps.raw_filename(d));Modal.vars.action=Sharing.submit_share_existing_wizard;Modal.vars.path=d.strip();var b=$("invite-more-form");var a=b.down("input[name=path]");if(!a){a=new Element("input",{type:"hidden",name:"path"});b.insert(a)}a.setValue(d);$("share-invite-button").setValue(_("Share folder"))},show_invite_more_wizard:function(b){assert(b,"Folder name required");DomUtil.fillVal("folder","invite-more-wizard-share-type");var a=_('Share "%(folder_name)s" with others').format({folder_name:b.escapeHTML()});Modal.icon_show("folder_user",a,$("invite-more-wizard"));if(Sharing.invite_wizard_auto_completer){Sharing.invite_wizard_auto_completer.clearTokens()}else{Sharing.invite_wizard_auto_completer=new Autocompleter.ContactsTokenizer("invite-wizard-new-collab-input","invite-wizard-new-whobulk","invite-wizard-hidden-input",contacts,lcontacts,{tokens:[",",";"],include_fb:true})}ABTest.log("Fbsf","view_modal")},show_cli:function(){Referral.select_all=0;Sharing.old_state=Modal.vars;Modal.onHide=Sharing.hide_cli;Referral.show_login_modal()},hide_cli:function(){Referral.select_no_contacts();Sharing.add_from_cli();Sharing.load_contacts();delete Modal.onHide;return false},add_from_cli:function(){var c=Referral.get_selected_emails();Sharing.show_invite_more_wizard(FileOps.raw_filename(Sharing.old_state.path));Modal.vars=Sharing.old_state;var b=$("invite-wizard-new-collab-input");SuggestionInput.do_blank("invite-wizard-new-collab-input");var a=$F(b);if(c){b.setValue(a+(a.length>0?", ":"")+c);b.addClassName("suggestion-input-unfaded")}delete Modal.onHide},submit_share_new_wizard:function(b){var a=$("invite-more-form");assert(a,"Couldn't find the invite more form.");Forms.ajax_submit(a,"/share_ajax/new",function(){Modal.hide();if(Sharing.is_new){window.location="/home"+Util.urlquote(Modal.vars.path)}else{var c=_('The shared folder "%(folder_name)s" has been created.').format({folder_name:FileOps.raw_filename(Modal.vars.path)});Notify.ServerSuccess(c);Browse.reload_fqpath(Modal.vars.path);TreeView.schedule_reset()}},function(){Forms.enable(a.down("input[type='submit']"))},b.target);return false},submit_share_existing_wizard:function(b){var a=$("invite-more-form");assert(a,"Couldn't find the invite more form.");Forms.ajax_submit(a,"/share_ajax/existing?long_running",function(){Modal.hide();if(Sharing.is_new){window.location="/home"+Util.urlquote(Modal.vars.path)}else{var c=_('Shared folder "%(folder_name)s" has been created.').format({folder_name:FileOps.raw_filename(Modal.vars.path).escapeHTML()});Notify.ServerSuccess(c);Browse.force_reload()}},function(){Forms.enable(a.down("input[type='submit']"))},b.target);return false},show_share_existing_modal:function(a){Sharing.reset_wizard();Sharing.from_existing_to_invitation(false,false,decodeURIComponent(a))},show_invite_more_modal:function(a){Sharing.reset_wizard();Sharing.get_sharing_options(a)},submit_invite_more_wizard:function(b){var a=$("invite-more-form");assert(a.down("input[name=ns_id]"),"Submit invite more wizard is missing ns_id");Forms.ajax_submit(a,"/share_ajax/invite_more",function(){Notify.ServerSuccess(_("Invited successfully."));Modal.hide();Browse.force_reload()},function(){},b.target);return false},show_leave_modal:function(b,a){Modal.onHide=Sharing.reshow;var d=_('Leave the Shared Folder "%(folder_name)s"').format({folder_name:FileOps.filename(b).snippet().escapeHTML()});Modal.icon_show("folder_user_delete",d,DomUtil.fromElm("leave-confirm"),{wit_group:"share-leave-confirm"});var c=$("leave-share-form");c.action="/share_ajax/leave?long_running";Modal.vars.ns_id=a;Modal.vars.folder_path=b},submit_leave:function(c){delete Modal.onHide;var b=Modal.vars.folder_path;assert(b.length,"submit_leave: No shared folder path.");assert(Modal.vars.ns_id,"submit_leave: missing ns_id");var a=$("leave-share-form");Forms.add_vars(a,{ns_id:Modal.vars.ns_id});Forms.ajax_submit(a,false,function(){var d=_('You removed yourself from "%(msg)s".').format({msg:FileOps.filename(b).snippet().escapeHTML()});Notify.ServerSuccess(d);Modal.hide();if(Browse.current_nsid){BrowseURL.set_path_url("",Util.parentDir(Browse.current_fqpath()))}else{if(typeof(Browse.current_path)!=="undefined"){Browse.force_reload()}else{if(window.SFController){window.SFController.convert_to_inactive(b)}else{window.location.reload()}}}},function(){},c.target);return false},show_unshare_modal:function(b,a){Modal.onHide=Sharing.reshow;var d=_('Unshare "%(folder_name)s"').format({folder_name:FileOps.filename(b).snippet().escapeHTML()});Modal.icon_show("link_break",d,DomUtil.fromElm("unshare-confirm"),{wit_group:"share-unshare-confirm"});var c=$("unshare-form");Modal.vars.path=b;Modal.vars.ns_id=a;c.action="/share_ajax/unshare?long_running"},submit_unshare:function(c){delete Modal.onHide;var a=$("unshare-form");var b=Browse.current_fqpath()||PAGE_PATH;assert(b.length,"submit_unshare: No shared folder path.");assert(Modal.vars.ns_id,"submit_unshare: missing ns_id");Forms.add_vars(a,{ns_id:Modal.vars.ns_id});Forms.ajax_submit(a,false,function(){Notify.ServerSuccess(_('You unshared the folder "%(folder_name)s"').format({folder_name:FileOps.filename(Modal.vars.path).snippet().escapeHTML()}));Modal.hide();if(Browse.files&&Browse.files.length){Browse.force_reload()}else{if(window.SFController){SFController.remove_by_path(Modal.vars.path)}else{window.location.reload()}}},false,c.target);return false},remove_div:function(a){$(a).up(".bs-row").remove();return false},leave:function(){Modal.show(_("Leave Shared Folder?"),DomUtil.fromElm("leave-confirm"),{wit_group:"share-leave-confirm"})},unshare:function(){Modal.show(_("Unshare Folder?"),DomUtil.fromElm("unshare-confirm"),{wit_group:"share-unshare-confirm"})},ignore:function(c,a){assert(a,"Share ignore did not get an ns_id");var d=_("Permanently Remove '%(folder_name)s'").format({folder_name:FileOps.filename(c).escapeHTML()});Modal.icon_show("folder_delete",d,DomUtil.fromElm("ignore-confirm"),{wit_group:"share-ignore-confirm"});var b=$("modal-content").down("form");b.action="/share_action/ignore?longrunning";Forms.add_vars(b,{ns_id:a});Modal.vars.path=c},submit_ignore:function(b){if(b){Event.stop(b)}var a=$("share-ignore-form");assert(a,"Missing submit_ignore_form");Forms.ajax_submit(a,false,function(c){window.SFController.remove_by_path(Modal.vars.path);var e={folder_name:FileOps.filename(Modal.vars.path).snippet().escapeHTML()};Notify.ServerSuccess(_("Permanently removed '%(folder_name)s'").format(e));Modal.hide()},function(){window.location.reload()},b&&b.target)},rejoin:function(c,a){assert(a,"Rejoin didn't get an ns_id");var d=_("Rejoin the Shared Folder '%(folder_name)s'?").format({folder_name:FileOps.filename(c).escapeHTML()});Modal.icon_show(BrowseActions.getIcon("rejoin"),d,DomUtil.fromElm("rejoin-confirm"),{wit_group:"share-rejoin-confirm"});var b=$("modal-content").down("form");b.action="/share_action/rejoin?longrunning";Forms.add_vars(b,{ns_id:a});if(window.SFController){Forms.add_vars(b,{from_share:"1"})}Modal.vars.path=c},submit_rejoin:function(c){Event.stop(c);var a=$("rejoin-form");var b=Modal.vars.path;Forms.ajax_submit(a,false,function(d){Modal.hide();Notify.ServerSuccess(_("Rejoined shared folder successfully."));if(window.SFController){window.SFController.convert_to_active(b,d.responseText)}else{if(Browse.files.length){Browse.force_reload()}else{window.location.reload()}}},false,c.target);return false},show_change_sf_owner_modal:function(c,d,a,b){DomUtil.fillVal(c,"change_sf_owner-confirm-nickname");Modal.onHide=Sharing.reshow;var f=_("Make %(person_name)s the owner of this folder?").format({person_name:c.escapeHTML()});Modal.icon_show("user_go",f,DomUtil.fromElm("change_sf_owner-confirm"),{wit_group:"share-change-sf-owner-confirm"});var e=$("change-sf-owner-form");e.action="/share_ajax/change_sf_owner";Modal.vars.ns_id=a;Modal.vars.user_id=b},submit_change_sf_owner:function(b){delete Modal.onHide;$("make-owner-button").disable();assert(Modal.vars.ns_id,"submit_change_sf_owner: missing ns_id");assert(Modal.vars.user_id,"submit_change_sf_owner: missing user_id");var a=$("change-sf-owner-form");Forms.add_vars(a,{ns_id:Modal.vars.ns_id,user_id:Modal.vars.user_id});Forms.ajax_submit(a,false,function(){var c=_("Ownership changed successfully.");Notify.ServerSuccess(c);Modal.hide()},function(){},b.target);return false},cancel_user:function(e,a,d,b){var c=_("Are you sure you want to uninvite %(email_or_fbname)s?").format({email_or_fbname:e});if(confirm(c)){new Ajax.DBRequest("/share_ajax/cancel_invite",{parameters:{ns_id:a,invite_id:d},onSuccess:function(f){Sharing.remove_div(b);Notify.ServerSuccess(e.escapeHTML()+" has been uninvited.")}})}},kick_user:function(c,e,a,b,d,f){DomUtil.fillVal(c,"kick-confirm-nickname");var g=_("Kick %(person_name)s out of Folder?").format({person_name:c});Modal.show(g,DomUtil.fromElm("kick-confirm"),{button:d,victim:e,ns_id:a,user_id:b,wit_group:"share-kick-confirm"})},do_kick:function(b,c,d){var a=$F("keep-files-check");new Ajax.DBRequest("/share_ajax/kick_user",{parameters:{ns_id:b,user_id:c,keep_files:a},onSuccess:function(){Notify.ServerSuccess(_("User removed successfully."));Modal.hide()}})},reinvite_user:function(b,a){new Ajax.DBRequest("/share_ajax/reinvite_user/"+PAGE_PATH,{parameters:{invite_id:a},onSuccess:function(c){Notify.ServerSuccess(_("%(email_or_fbname)s was reinvited successfully").format({email_or_fbname:b}))}});return false},load_contacts:function(a){if(Sharing.loading_contacts){return false}Sharing.loading_contacts=true;new Ajax.DBRequest("/get_contacts",{parameters:{include_fb:a&&Constants.can_fb_invite},onSuccess:function(b){var c=b.responseText.evalJSON(false);window.contacts=c.contacts;window.lcontacts=c.lcontacts;Sharing.loading_contacts=false;if(Sharing.sharing_options_auto_completer){Sharing.sharing_options_auto_completer.options.array=window.contacts;Sharing.sharing_options_auto_completer.options.larray=window.lcontacts}if(Sharing.invite_wizard_auto_completer){Sharing.invite_wizard_auto_completer.options.array=window.contacts;Sharing.invite_wizard_auto_completer.options.larray=window.lcontacts}}})}};var SharingModel={confirm_remove:function(b,c,a,e){assert(c,"confirm_remove missing tkey");assert(b,"confirm_remove missing name");var d=_('Remove link to "%(folder_name)s"').format({folder_name:b.escapeHTML().snippet(34)});Modal.icon_show("link_delete",d,$("disable-token-modal"),{token:c,redirect_to:a,from_share:e,name:b})},do_remove:function(b){var a="/sm/disable/"+b.token;new Ajax.DBRequest(a,{onSuccess:function(){if(b.redirect_to){window.location.href=b.redirect_to;return}if(b.from_share){var d;for(var c=0;c<LinkController.files.length;c+=1){if(LinkController.files[c].tkey==b.token){d=LinkController.files[c];break}}if(!d){window.location.reload()}else{d.div.remove();LinkController.files.removeItem(d)}}else{Browse.force_reload()}var e=_("Linking of %(filename)s is disabled.").format({filename:b.name.escapeHTML().snippet(34)});Notify.ServerSuccess(e);BrowseActions.hide_dropdown();Modal.hide()},onComplete:function(){Forms.remove_loading()}});Forms.add_loading($("modal-content").down("input"))},create_token:function(a,c){var b=_('Creating a link for "%(file_name)s"').format({file_name:FileOps.filename(a).escapeHTML().snippet(34)});Modal.show_loading("link",b);new Ajax.DBRequest("/sm/create"+Util.normalize(a),{onSuccess:function(e){var d=e.responseText.evalJSON(true);if(c){c(d)}}})},get_token:function(a,b){new Ajax.DBRequest("/sm/get"+Util.normalize(a),{onSuccess:function(d){var c=d.responseText.evalJSON(true);if(b){b(c)}}})},toggle_advanced:function(){var a=$("token-advanced-options");if(a.animating){return}a.animating=true;var b=0.5;if($("token-advanced-options").style.display=="none"){new Effect.BlindDown("token-advanced-options",{duration:b,afterFinish:function(){a.animating=false}})}else{new Effect.BlindUp("token-advanced-options",{duration:b,afterFinish:function(){a.animating=false}})}Sprite.toggle($("advanced-toggle-bullet"),"bullet_plus","bullet_minus")},update_access_options:function(c,b){if(b){Event.stop(b)}var a=$(c).up("form");Forms.ajax_submit(a,false,function(){$$("#modal-content .error-message").invoke("remove");Notify.ServerSuccess(_("Updated Successfully."))},false,$(c))},update_date:function(a){var b=a.getMonth()+1+"/"+a.getDate()+"/"+a.getFullYear();$("token-expires-date").update(a.localize());$("expires").setValue(b);SharingModel.hide_calendar()},hide_calendar:function(){$("modal-calendar-container").hide()},show_calendar:function(d){if(d){Event.stop(d)}if(SharingModel.calendar){$("modal-calendar-container").show()}else{var b=Util.reverseNiceDate(Modal.vars.token.expires)||new Date();SharingModel.calendar=new DBCalendar("modal-calendar-container",{onDateChange:SharingModel.update_date,disable_past:true,selected_day:b});$(document.body).observe("click",SharingModel.hide_calendar);var c=$("modal-calendar-container");c.style.position="absolute";c.style.zIndex=5;var a=$("token-expires-box");c.clonePosition(a);c.style.top=parseInt(c.style.top,10)+a.getHeight()-1+"px"}},show_post_options:function(a){var d=_('Share "%(filename)s"').format({filename:a.name.escapeHTML()});var c=_("Check out this link I made with Dropbox")+" "+a.link;var b="";Twitter.start_flow(d,c,a.link,a.name,b)},show_password_field:function(){var a=$("change-token-password-link");if(a){a.remove()}$("require_password").setValue("");$("password").show();$("password").setValue("")},get_transcode_status:function(a,b){new Ajax.Request("/get_transcode_status/"+a,{onSuccess:function(c){if(c.responseText=="reload"||c.responseText=="error"){window.location.reload()}else{$(b).update(c.responseText);setTimeout(function(){SharingModel.get_transcode_status(a,b)},2000)}}})},enqueue_transcode:function(a,b,c){new Ajax.Request("/enqueue_transcode/"+a+b,{onSuccess:function(d){return SharingModel.get_transcode_status(d.responseText,c)}})},start_twitter_flow:function(h,g,f,e){var d=$("twitter-checkbox")&&$F("twitter-checkbox");var a=$F("facebook-checkbox");if(d){h=h.substr(0,140)}if(a){FacebookOAuth.msg=h;FacebookOAuth.name=f;FacebookOAuth.link=g}var c=function(){var j=function(){AMC.log("shmodel_share",{type:"facebook",action:"post"});FacebookOAuth.post(h,g,f,e)};FacebookOAuth.onLoginSuccessCallback=j;if(FacebookOAuth.has_authed||!Constants.uid){j()}else{AMC.log("shmodel_share",{type:"facebook",action:"start_auth"});if(FacebookOAuth.deferred){FacebookOAuth.show_auth(j)}else{FacebookOAuth.do_auth()}}};var b=function(k){var j=function(){AMC.log("shmodel_share",{type:"twitter",action:"post"});Twitter.custom_post(h,k)};Twitter.onLoginSuccessCallback=j;if(Twitter.has_authed||!Constants.uid){j()}else{AMC.log("shmodel_share",{type:"twitter",action:"start_auth"});Twitter.do_auth()}};if(d&&a){b(c);FacebookOAuth.custom_show_complete=function(){FacebookOAuth.get_progress_container().update(DomUtil.fromElm("sharing-posted-both"))}}else{if(d){b()}else{if(a){c()}}}},unable_to_preview:function(){Modal.icon_show("cog",_("Preview Currently Unavailable"),$("unavailable_preview"))},copy_to_dropbox:function(a,d,b){assert(a,"c2d name missing");assert(d,"c2d tkey missing");Modal.icon_show("dropbox",_('Copy "%(filename)s" to my Dropbox').format({filename:a.snippet(30).escapeHTML()}),$("c2d-modal"));$("c2d-modal").select("form").each(function(e){Forms.add_vars(e,{tkey:d,subpath:b})});var c=$("fname");if(c){c.focus()}},c2d_submit:function(b,a){assert(a.select("input[name=tkey]"),"Trying to submit a form that doesn't have a tkey");Forms.ajax_submit(a,false,function(c){window.location.href=c.responseText},false,$(a).down("input[type=submit]"))}};var SharedFolderInvites={pages:{},contents:{},register_all:function(){$$(".expand-invite").each(function(a){SharedFolderInvites.register(a)})},register:function(a){a.db_observe("click",SharedFolderInvites.expand)},expand:function(f,d,a){Event.stop(f);d=$(d);if(SharedFolderInvites.animating){return}var b=d.up(".invite");var c=[];SharedFolderInvites.get_sf_contents(b,a);if(b.hasClassName("active")){c.push(SharedFolderInvites.hide(b))}else{c.push(SharedFolderInvites.show(b))}$$("div.invite.active").each(function(e){if(e!=b){c.push(SharedFolderInvites.hide(e))}});SharedFolderInvites.animating=true;new Effect.Parallel(c,{duration:0.5,afterFinish:function(){SharedFolderInvites.animating=false}})},show:function(b){b.addClassName("active");var c=b.down(".invite-details");var a=b.down(".toggler");Sprite.replace(a,"plus","minus");return new Effect.BlindDown(c,{sync:true,afterFinish:function(){c.style.height="auto"}})},hide:function(b){b.removeClassName("active");var c=b.down(".invite-details");var a=b.down(".toggler");Sprite.replace(a,"minus","plus");return new Effect.BlindUp(c,{sync:true})},show_page:function(a){Feed.hideLoading();$("invites-container").update(SharedFolderInvites.pages[a]);SharedFolderInvites.register_all()},get_page:function(a){if(!SharedFolderInvites.pages[0]&&a==1){SharedFolderInvites.pages[0]=$("invites-container").innerHTML}if(SharedFolderInvites.pages[a]){SharedFolderInvites.show_page(a)}else{Feed.showLoading(false,$("invites-container"),false,true);new Ajax.DBRequest("/share_ajax/invitation_page?page="+a,{onSuccess:function(b){SharedFolderInvites.pages[a]=b.responseText;SharedFolderInvites.show_page(a)}})}return false},get_sf_contents:function(b,a){if(SharedFolderInvites.contents[a]){SharedFolderInvites.show_sf_contents(b,a)}else{new Ajax.DBRequest("/share_ajax/sf_contents?ns_id="+a,{onSuccess:function(c){SharedFolderInvites.contents[a]=c.responseText;SharedFolderInvites.show_sf_contents(b,a)}})}},show_sf_contents:function(b,a){b.down(".folder-contents").update(SharedFolderInvites.contents[a])},mailto:function(b,a){Event.stop(b);window.location="mailto:"+a}};var ShareView={current_view:"gallery",click:function(a){ShareView.toggle_view(a);HashRouter.set_hash("view",a);return false},toggle_view:function(b){b=b||"gallery";var c=$(b+"-link");if(!c){return}$$("#toggle-view .selected").invoke("removeClassName","selected");c.addClassName("selected");$$(".view").invoke("hide");var a=$(b+"-view");if(a){a.show()}ShareView.current_view=b},show_all:function(c,b,a){if(b){Event.stop(b)}$(c).up().remove();new Effect.BlindFadeDown(a)}};var SM={r:function(e,c,d,b){var f={tkey:e,action:c,visitor_user_id:d,subpath:b};var a=Object.toJSON(f);if(Jcached.get(a)){return}Jcached.set(a,1,2000);new Ajax.Request("/ajax_sm_visit",{parameters:f})}};var Base={mouseOut:false,sf_hidden:false,showSharedFolders:function(b,c){Event.stop(c);var a=$("shared-folder-dropdown");Event.observe(a,"mouseover",Base.mouseOverList);Event.observe(a,"mouseout",Base.mouseOutList);Event.observe(c.target,"mouseout",Base.mouseOutList);Event.observe(c.target,"mouseover",Base.mouseOverList);Event.observe(document,"click",Base.hideSharedFolders);Base.sf_hidden=false;setTimeout(function(){if(Base.sf_hidden){return}var e=$("share-menu-shadow");var d=a.select("li").length;a.clonePosition($(b).down("img"),{offsetTop:8,offsetLeft:1,setWidth:false,setHeight:false});a.style.height=(d>9)?"200px":"";a.show();e.clonePosition($(b).down("img"),{offsetTop:9,offsetLeft:2,setWidth:false,setHeight:false});e.clonePosition(a,{setTop:false,setLeft:false});e.setOpacity(0.2);e.show()},350);return false},hideSharedFolders:function(b){var a=$("shared-folder-dropdown");$("shared-folder-dropdown").hide();$("share-menu-shadow").hide();Event.stopObserving(window,"click",Base.hideSharedFolders);Event.stopObserving(a,"mouseover",Base.mouseOverList);Event.stopObserving(a,"mouseout",Base.mouseOutList);clearTimeout(Base.mouseOut);Base.mouseOut=false;Base.sf_hidden=true},mouseOverList:function(){clearTimeout(Base.mouseOut);Base.mouseOut=false},mouseOutList:function(b,a){clearTimeout(Base.mouseOut);Base.mouseOut=setTimeout(Base.hideSharedFolders,a||200)}};var TokenListView={sort_by_filename:function(a){return parseInt(a.down(".filename .hidden").innerHTML,10)},sort_by_size:function(a){return parseInt(a.down(".filesize .hidden").innerHTML,10)},sort_by_modified:function(a){return -1*parseInt(a.down(".modified .hidden").innerHTML,10)},sort:function(f){Event.stop(f);var h=Util.resolve_target(f.target,"a");if(h.asc!=-1){h.asc=-1}else{h.asc=1}var a=h.className;var j={"sort-filename":TokenListView.sort_by_filename,"sort-filesize":TokenListView.sort_by_size,"sort-modified":TokenListView.sort_by_modified};var k=$$("#list-view .filerow");var g=k.sort_by_key(j[a],h.asc!=1);k.invoke("remove");var l=new Element("div");for(var c=0,d=g.length;c<d;c+=1){l.insert(g[c])}$("list-browser").insert(l.innerHTML);$$(".sort-tick").invoke("remove");var b=Sprite.make(h.asc===1?"sort-downtick-on":"sort-uptick-on");b.addClassName("sort-tick");h.insert(b)}};var ContactTypes={EMAIL:0,FB:1,INVALID:2};Autocompleter.Contacts=Class.create(Autocompleter.Base,{initialize:function(c,f,e,b,a){this.baseInitialize(c,f,a);this.options.array=e;this.options.larray=b;this.options.frequency=0.1;var d=this.options.include_fb===true;if(!window.contacts){(function(){Sharing.load_contacts(d)}).defer()}this.options.onShow=function(g,h){if(!h.style.position||h.style.position=="absolute"){h.style.position="absolute";Position.clone(g,h,{setHeight:false,offsetTop:g.offsetHeight-1})}Effect.Appear(h,{duration:0.15})}},getToken:function(){var a=this.getTokenBounds();return this.element.value.substring(a[0],a[1])},getUpdatedChoices:function(){if(!this.options.array&&window.contacts&&window.lcontacts){this.options.array=window.contacts;this.options.larray=window.lcontacts}this.updateChoices(this.options.selector(this))},setOptions:function(a){this.options=Object.extend({choices:5,selector:function(A){var D=[];var d=A.getToken().toLowerCase();var s=A.options.array.length;var B=A.options.choices;var C=A.options.array;var t=A.options.larray;var o=[];if(d.indexOf(" ")==-1){o.push("\\s+")}if(d.indexOf("+")==-1){o.push("\\+")}if(d.indexOf("@")==-1){o.push("@")}if(d.indexOf(".")==-1){o.push("\\.")}if(d.indexOf("&lt;")==-1){o.push("&lt;")}var g=RegExp("("+o.join("|")+")");for(var k=0;k<s&&D.length<B;k++){var z=C[k];var h=t[k];var E=-1;var m=[];var r=[];var j="";switch(z.type){case ContactTypes.EMAIL:m.push(z.name,z.email);r.push(h.name,h.email);j="/static/images/icons/mail28.png";break;case ContactTypes.FB:m.push(z.name);r.push(h.name);if(Sharing.use_fb_profile_pics){j="https://graph.facebook.com/"+h.fb_id+"/picture"}else{j="/static/images/icons/fb24.png"}break;default:assert(false,"should never get here due to type: "+z.type+", "+z.name+", "+z.email+", "+z)}for(var x=0;x<r.length;x++){var q=o.length?r[x].split(g):[r[x]];var y=0;var w=q.length;for(var n=0;n<w;n++){if(!q[n]){continue}if(q[n].indexOf(d)===0){E=y;break}y+=q[n].length}if(E!=-1){m[x]=m[x].substr(0,E)+"<strong>"+m[x].substr(E,d.length)+"</strong>"+m[x].substr(E+d.length);break}}if(z.type==ContactTypes.FB){m.push(_("Invite via Facebook"))}if(E!=-1){var b="<image src='"+j+"' width='28px' height='28px'/>";var u="<div class='autocomplete-line'>"+m[0]+"</div>";var v="<div class='autocomplete-line autocomplete-secondary'>"+m[1]+"</div>";var f="<div class='autocomplete-left'>"+b+"</div>";var e="<div>"+u+v+"</div>";D.push("<li value='"+k+"'>"+f+e+"</li>")}}return"<ul>"+D.join("")+"</ul>"}},a||{})},selectEntry:function(){var c=this.getCurrentEntry();var b=this.options.array[c.value];if(b.type==ContactTypes.FB){c.innerHTML=b.name}else{c.innerHTML=b.email}var a=this.options.tokens.length>1?this.options.tokens[0]+" ":"";c.innerHTML+=a;this.active=false;this.updateElement(c);$(this.element).fire("db:autocompleted")}});var Token=Class.create({initialize:function(c,b,d,a){this.element=$(c);this.token_manager=d;this.hidden_input=b;this.element.token=this;this.selected=false;this.is_valid=a;Event.observe($("tokenized_autocompleter_container"),"click",this.onclick.bindAsEventListener(this))},select:function(){this.token_manager.token=this;this.hidden_input.element.activate();this.selected=true;this.element.addClassName("token_selected")},deselect:function(){if(this.token_manager.token==this){this.token_manager.token=null}this.selected=false;this.element.removeClassName("token_selected")},onclick:function(a){if(a&&a.preventDefault){a.preventDefault()}if(this.detect(a)&&!this.selected){this.select()}else{this.deselect()}},remove:function(a){this.token_manager.remove(this)},detect:function(d){var c=d.target?d.target:d.srcElement;var a=c.token;var b=c;while(a===undefined&&b.parentNode){b=b.parentNode;a=b.token}return a!==undefined&&a.element==this.element}});var TokenManager=Class.create({initialize:function(b,a){this.shift_boundary_right_func=b;this.shift_boundary_left_func=a;this.tokens=[];this.token=null},add:function(a){this.tokens.push(a)},remove:function(b){if(b===undefined){b=this.token}if(b){var a=this.tokens.indexOf(b);this.tokens.splice(a,1);b.element.remove();if(this.token==b&&a<this.tokens.length){this.tokens[a].select()}else{this.token=null;this.shift_boundary_right_func()}}},removeAll:function(){for(var a=0;a<this.tokens.length;a++){this.tokens[a].element.remove()}this.tokens.clear()},shift_left:function(){var a;if(this.token===null){a=this.tokens.length}else{a=this.tokens.indexOf(this.token)}if(a>0){if(this.token){this.token.deselect()}this.tokens[a-1].select()}else{if(this.shift_boundary_left_func!==undefined){this.shift_boundary_left_func()}}},shift_right:function(){var a=this.tokens.indexOf(this.token);if(this.token){this.token.deselect()}if(a+1<this.tokens.length){this.tokens[a+1].select()}else{if(this.shift_boundary_right_func!==undefined){this.shift_boundary_right_func()}}}});var HiddenInput=Class.create({initialize:function(a,c,b){this.element=$(a);this.auto_complete_element=c;this.token_manager=b;Event.observe(this.element,"keydown",this.onKeyPress.bindAsEventListener(this))},onKeyPress:function(a){switch(a.keyCode){case Event.KEY_LEFT:a.preventDefault();this.token_manager.shift_left();break;case Event.KEY_TAB:a.preventDefault();this.token_manager.shift_right();break;case Event.KEY_RIGHT:a.preventDefault();this.token_manager.shift_right();break;case Event.KEY_BACKSPACE:case Event.KEY_DELETE:this.token_manager.remove();break}return false}});var validate_email=function(a){var b=new RegExp("^['&A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,6}$","i");return b.test(a)};var addContactToList=function(k,g,h,j,c,l,m){j.value="";var f="";switch(h){case ContactTypes.FB:f="fb_ids";break;case ContactTypes.EMAIL:f="emails";break;case ContactTypes.INVALID:f="invalids";break;default:assert(false,"should never get here due to type: "+h)}var a;if(m){a=" token-valid"}else{a=" token-error"}var n=Builder.node("span",{"class":"x"+a,onmouseout:"this.className='x"+a+"'",onmouseover:"this.className='x_hover"+a+"'",onclick:"this.parentNode.parentNode.parentNode.parentNode.parentNode.token.remove(event); return false;"}," ");var d=Builder.node("input",{type:"hidden",name:f,value:g});var b=Builder.node("a",{"class":"token"+a,href:"#",tabindex:"-1"},Builder.node("span",Builder.node("span",Builder.node("span",Builder.node("span",{},[d,k,n])))));$(b).down(4).next().innerHTML="&nbsp;";var e=new Token(b,c,l,m);l.add(e);$("autocomplete_display").insert({before:b})};var kc={curr:"",w:function(){document.observe("keydown",function(a){kc.curr+=BrowseKeys.getKey(a);if(kc.curr.endsWith("3838404037393739666513")){new Effect.Appear("magic")}})}};Autocompleter.ContactsTokenizer=Class.create(Autocompleter.Contacts,{initialize:function($super,d,f,c,e,b,a){$super(d,f,e,b,a);this.token_manager=new TokenManager(this.generate_shift_boundary_right_func());this.hidden_input=new HiddenInput(c,this.element,this.token_manager);if(!this.element.hacks){this.element.should_use_borderless_hack=Prototype.Browser.WebKit;this.element.should_use_shadow_hack=Prototype.Browser.IE||Prototype.Browser.Opera;this.element.hacks=true}if(this.element.should_use_borderless_hack||this.element.should_use_shadow_hack){$(this.element.parentNode).addClassName("tokenizer_input_borderless")}this.options.onShow=function(g,h){Position.clone(g.parentNode.parentNode,h,{setHeight:false,offsetTop:g.parentNode.parentNode.offsetHeight-1});h.show()};this.options.onHide=function(g,h){h.hide()};Event.observe(this.element.up("form").down("#share-invite-button"),"mousedown",this.beforeSubmit.bindAsEventListener(this));Event.observe(this.element,"focus",this.onFocus.bindAsEventListener(this));this.dynamically_resize_input();this.set_default_text()},onBlur:function($super,a){this.set_default_text();$super(a)},onFocus:function(a){this.clear_default_text()},beforeSubmit:function(a){if(!this.default_text){this.tokenize_emails_input(true)}},clearTokens:function(a){this.token_manager.removeAll();this.dynamically_resize_input();this.set_default_text()},set_default_text:function(){if(this.element.value===""&&this.token_manager.tokens.length==0){this.element.value=_("Enter names or email addresses");this.element.style.color="#999";this.default_text=true}},clear_default_text:function(){if(this.default_text){this.element.value="";this.element.style.color="#444";this.default_text=false}},clean_email_addr:function(e,b){var d=["<",">"];for(var a=0;a<e.length;a++){b=b.sub(e[a],"")}for(var c=0;c<d.length;c++){b=b.sub(d[c],"")}return b.strip()},get_regexp_from_delimiters:function(c){var b="";for(var a=0;a<c.length;a++){b+=c[a]+"|"}return new RegExp("["+b+"\\r\\n|\\r|\\n|\\t]+")},tokenize_emails_input:function(f,h){var k=this.options.tokens;var l=this.get_regexp_from_delimiters(k);var n=this.element.value.split(l);var p="";if(!f){var g=n[n.length-1];p=this.clean_email_addr(k,g);n=n.slice(0,n.length-1);if(g[g.length-1]==" "){if(validate_email(p)){n.push(p);p=""}}}var e=[];for(var o=0;o<n.length;o++){e.push.apply(e,n[o].split(" "))}n=e;var c=false;if(n.length>0){for(var d=0;d<n.length;d++){var j=this.clean_email_addr(k,n[d]);if(j){var b;var m;if(validate_email(j)){m=true;b=ContactTypes.EMAIL;c=true}else{if(h){continue}m=false;b=ContactTypes.INVALID}this.set_input_size(1);addContactToList(j,j,b,this.element,this.hidden_input,this.token_manager,m)}}this.element.value=p}var a=this.element.up("form");if(c){Forms.clear_errors(a)}this.dynamically_resize_input()},generate_shift_boundary_right_func:function(){var b=this.element;var a=function(){b.focus()};return a},set_input_size:function(a){a=a||20;this.element.setStyle({width:a+"px"})},dynamically_resize_input:function(){var g=$(this.element.parentNode.parentNode);var j=parseInt(g.getStyle("width"))-15;var e=this.token_manager.tokens;var a=0;for(var d=0;d<e.length;d++){var b=parseInt(e[d].element.getStyle("width"))+parseInt(e[d].element.getStyle("margin-right"));var f=a+b;if(f>j){a=b}else{if(b>j){a=0}else{a=f}}}var c=j-a;var h=this.element.value.length*7;if(h>c){c=j}this.set_input_size(c)},onKeyPress:function(a){this.dynamically_resize_input();if(this.active){switch(a.keyCode){case 44:case 188:case 59:case 186:this.reset_observer();return;case Event.KEY_TAB:case Event.KEY_RETURN:this.selectEntry();this.hide();this.active=false;Event.stop(a);return;case Event.KEY_ESC:this.hide();this.active=false;Event.stop(a);return;case Event.KEY_LEFT:case Event.KEY_RIGHT:return;case Event.KEY_UP:this.markPrevious();this.render();Event.stop(a);return;case Event.KEY_DOWN:this.markNext();this.render();Event.stop(a);return}}else{this.tokenize_emails_input(false);if(a.keyCode===Event.KEY_TAB||a.keyCode===Event.KEY_RETURN){if(this.element.value&&a.preventDefault){a.preventDefault()}this.tokenize_emails_input(true);return}else{if(this.element.value===""){if(a.keyCode==Event.KEY_LEFT||a.keyCode==Event.KEY_BACKSPACE){this.token_manager.shift_left()}}else{if(a.keyCode==Event.KEY_LEFT||a.keyCode==Event.KEY_RIGHT||a.keyCode==Event.KEY_UP||a.keyCode==Event.KEY_DOWN){return}}}}this.update_typeahead();this.reset_observer()},update_typeahead:function(){this.changed=true;this.hasFocus=true},reset_observer:function(){if(this.observer){clearTimeout(this.observer)}this.observer=setTimeout(this.onObserverEvent.bind(this),this.options.frequency*1000)},onObserverEvent:function($super){if(this.active){var a;var c;var d=this.element.value;for(var b=0;b<this.options.tokens.length;b++){a=this.options.tokens[b];c=d.indexOf(a);if(c!=-1){this.element.value=d.substr(0,c);this.selectEntry();this.hide();this.active=false;this.element.value=d.substr(c+1);break}}this.update_typeahead()}this.tokenize_emails_input(false);$super()},selectEntry:function(){var c=this.getCurrentEntry();var b=this.options.array[c.value];var a;if(b.type==ContactTypes.FB){a=b.fb_id}else{a=b.email}this.set_input_size(1);addContactToList(b.name.strip()||a,a,b.type,this.element,this.hidden_input,this.token_manager,true);Forms.clear_errors(this.element.up("form"));this.dynamically_resize_input();this.index=0;this.element.focus()}});var Crocodoc=(function(){var b=1;var c=function(f){setTimeout(function(){Crocodoc.load(f)},b*1000)};var d=function(){$("crocodoc_loading").hide();$("crocodoc_error").show()};var e=function(f){var g=new Element("iframe",{src:f});g.addClassName("crocodoc_iframe");$("crocodoc_viewer").update(g)};var a=function(g){var f=new Ajax.Request("/sm/doc/"+g,{onSuccess:function(h){var j=h.responseText;if(j=="error"){d()}else{if(j=="retry"){c(g)}else{e(j)}}}})};return{load:function(f){a(f)}}})();var Modal,Sprite;var Bubble={make:function(p,A,s,n){A=A||"left";if(["left","right"].contains(A)){s=s||"middle";assert(["top","middle","bottom"].contains(s),"expected tail position ['top', 'middle', 'bottom'], got %s".format(s))}else{if(["bottom"].contains(A)){s=s||"center";assert(["left","center","right"].contains(s),"expected tail position ['left', 'center', 'right'], got %s".format(s))}else{assert(false,"unexpected tail positon, got %s".format(s))}}var q=new Element("table");q.addClassName("bubble");if(n){q.style.width=n+"px"}var a=new Element("tbody");var z=new Element("tr");var j=new Element("td");j.addClassName("tl");var k=new Element("td");k.addClassName("t");var e=new Element("td");e.addClassName("tr");z.insert(j);z.insert(k);z.insert(e);a.insert(z);var x=new Element("tr");var o=new Element("td");o.addClassName("l");if(A=="left"){var g=new Element("img",{src:"/static/images/bubble_arrow.png"});g.addClassName("arrow");o.insert(g);o.vAlign=s}var u=new Element("td");u.addClassName("c");u.update(p);var m=new Element("td");m.addClassName("r");if(A=="right"){var h=new Element("img",{src:"/static/images/bubble_arrow_right.png"});h.addClassName("rarrow");m.insert(h);m.vAlign=s}x.insert(o);x.insert(u);x.insert(m);a.insert(x);var v=new Element("tr");var d=new Element("td");d.addClassName("bl");var w=new Element("td");w.addClassName("b");if(A=="bottom"){var f=new Element("img",{src:"/static/images/bubble_arrow_bottom.png"});f.addClassName("barrow");w.insert(f);w.style.textAlign=s}var y=new Element("td");y.addClassName("br");v.insert(d);v.insert(w);v.insert(y);a.insert(v);q.insert(a);return q}};var ActAsBlock={elm_list:["margin-left","margin-right","padding-left","padding-right","border-left-width","border-right-width"],parent_list:["padding-left","padding-right","border-left-width","border-right-width"],register:function(c,d){d=d||document.body;var b=$(d).getElementsByClassName("act_as_block");for(var a=0;a<b.length;a=a+1){ActAsBlock.resize(b[a])}},resize:function(e){e=$(e);var c=e.up();var a=Util.sumStyles(e,ActAsBlock.elm_list);var d=Util.sumStyles(c,ActAsBlock.parent_list);e.style.width="1px";var b=(c.getWidth()-a-d);if(b>0){e.style.width=b+"px"}}};Event.observe(window,"load",ActAsBlock.register);Modal={show:function(k,f,g,m,c,h){$$("#modal-content .error-message, #modal-content .error-removable").invoke("hide");if(FileQueue.uploading&&!h){alertd(_("You can't do this while uploading."));return false}assert(f,"Missing modal content!");Modal.vars=g||{};c=c||520;var l=(document.viewport.getScrollOffsets().top+150);Util.scry("modal").setStyle({top:l+"px"});Util.scry("modal").setStyle({width:c+"px",margin:"0 0 0 "+Math.floor(-c/2).toString()+"px"});Util.scry("modal-title").update(k);if(!h){if(FileQueue.numShown()){Upload.reset()}var a=Util.childElement($("modal-content"),0);if(a&&a!=f){$("grave-yard").insert(a)}var b=new Element("div");b.update(f);var e=Modal.vars.wit_group;if(!e){var d=b.down();e=d&&d.id}if(e){WIT.add_group(b,e)}Util.scry("modal-content").insert(b);if(f.show){f.show()}Element.show("modal")}Util.scry("modal-overlay").setOpacity(0.6);Util.scry("modal-overlay").show();Util.scry("modal-behind").setStyle({height:(Util.scry("modal").getHeight()+20)+"px",width:(Util.scry("modal").getWidth()+20)+"px",margin:"0 0 0 "+Math.floor(-c/2-10).toString()+"px",top:(l-10)+"px"});Util.scry("modal-behind").setOpacity(0.2);Util.scry("modal-behind").show();if(m){$("modal-content").select("#"+m.id).first().focus()}else{if(!Util.ie){var j=Util.scry("modal").down("input[type=button]")||Util.scry("modal").down("input[type=submit]");if(j){j.focus()}}}if(!Modal.track_id){Modal.track_resizes()}$("modal-title").show();ActAsBlock.register(false,"modal");document.observe("keydown",Modal.keydown);$("modal-content").style.height="auto";return false},keydown:function(b){var a=BrowseKeys.getKey(b);if(a==27){Modal.hide()}},icon_show:function(e,h,f,g,a,d,c){var b=new Element("div");b.insert(Sprite.make(e,{"class":"modal-h-img"}));b.insert(h);return Modal.show(b,f,g,a,d,c)},show_loading:function(a,c){var b="<p style='margin: 3em 0; text-align: center;'><img src='/static/images/icons/ajax-loading-small.gif' alt=''/></p>";Modal.icon_show(a,c,b)},shown:function(){return Util.scry("modal").visible()},hide:function(b){if(b){Event.stop(b)}if(Modal.onHide){var a=Modal.onHide();if(!a){return}}Modal.onHide=null;Element.hide("modal-behind");Element.hide("modal-overlay");if(!FileQueue.numShown()){Element.hide("modal")}else{$("modal").style.marginLeft="-10000000px";if(FileQueue.uploading){InlineUploadStatus.show()}}if(Modal.track_id){clearInterval(Modal.track_id);Modal.track_id=false}document.stopObserving("keydown",Modal.keydown)},track_resizes:function(){Modal.track_id=setInterval(Modal.resize_bg,150)},resize_bg:function(){var a=Util.scry("modal").getHeight();if(Modal.old_height!=a||Util.scry("modal-behind").getHeight()<a){Modal.old_height=a;Util.scry("modal-behind").setStyle({height:(a+20)+"px"})}},vars:{}};var Tabs={init:function(){var h=$A(document.getElementsByClassName("tab")).concat($A(document.getElementsByClassName("subtab")));for(var e=0;e<h.length;e++){var b=h[e].down("a");var d=b.href.split("/");if(h[e].hasClassName("subtab")){b.href="#"+d[d.length-1]}if(Util.ie6||Prototype.Browser.Opera){var f=b.getWidth()-parseInt(b.getStyle("padding-left"),10)*2;f=(f+2+(f%2));b.style.width=f+"px"}var c=Sprite.make("rounded_tl",{"class":"rounded_tl"});var g=Sprite.make("rounded_tr",{"class":"rounded_tr"});b.appendChild(c);b.appendChild(g)}e=20;$$(".events_bubble").each(function(j){var a=(-1*j.getWidth()/2)+"px";j.style.marginLeft=a;j.style.marginRight=a;j.style.right="6px";j.parentNode.style.zIndex=e--})},check_url:function(b){var a=Util.url_hash();if(!a||Tabs.last_shown==a){return}Tabs.last_shown=a;if(Util.url_hash()){Tabs.showTab(Util.url_hash()+"-tab",Util.url_hash())}else{Tabs.showTab(b+"-tab",b)}},showTab:function(h,e){h=$(h);if(h){h.fire("db:tabshown")}var f=document.getElementsByClassName("subtab");var d;for(d=0;d<f.length;d++){f[d].removeClassName("selected")}var b=document.getElementsByClassName("content-tab");for(d=0;d<b.length;d++){b[d].hide()}var g=$(e+"-tab")||$$(".subtab").first();var c=$(e+"-content")||$$(".content-tab").first();if(g){g.addClassName("selected")}if(c){c.show();Util.syncHeight();var a=c.select("input[type=text]","textarea");if(a){Util.focus(a[0])}}return false}};var TreeView={disable_shares:false,tv:{},loaded:false,set_params:function(a){TreeView.ajax_params=a},init:function(c,a,d){d=d||"treeview";TreeView.tv[d]={};var b=TreeView.tv[d];b.autohide=a===null?true:a;b.handler=c;b.viewdiv=$(d);b.hidefunc=TreeView.hide.bindAsEventListener(this)},schedule_reset:function(){TreeView.loaded=false},reset:function(a){new Ajax.DBRequest("/ajax_subtreeview",{parameters:TreeView.ajax_params,onSuccess:function(c){for(var b in TreeView.tv){if(TreeView.tv.hasOwnProperty(b)){TreeView.tv[b].viewdiv.down(".treeview-folders").update(c.responseText);if(a&&a.onSuccess){a.onSuccess(c)}}}}})},toggle:function(c,b){Event.stop(c);var a=TreeView.tv[b||"treeview"];if(a.shown){a.shown=false;TreeView.hide(c,b)}else{a.shown=true;TreeView.show(c.target,b)}return false},hide:function(c,b){var a=TreeView.tv[b||"treeview"];if(!c||!$(c.target).descendantOf(a.viewdiv)){a.viewdiv.hide();Event.stopObserving(window,"click",a.hidefunc);a.shown=false}},show:function(c,b){var a=TreeView.tv[b||"treeview"];c=$(c);c.blur();var d=c.cumulativeOffset();a.viewdiv.setStyle({top:(d.top+c.getHeight())+"px",left:(d.left-4)+"px"});a.viewdiv.show();Event.observe(window,"click",a.hidefunc)},toggleNode:function(b){b=$(b);var a=b.down("img");if(a.className.match("bullet_plus")){Sprite.replace(a,"bullet_plus","bullet_minus")}else{Sprite.replace(a,"bullet_minus","bullet_plus")}b.up().next("div").toggle();b.blur();return false},toggleNodeAjax:function(c,a){if(c.fetched_children){return TreeView.toggleNode(c)}c=$(c);var b=c.down("img");var d=Sprite._get(b);b.src="/static/images/icons/ajax-loading-small.gif";new Ajax.DBRequest("/ajax_subtreeview"+a,{parameters:TreeView.ajax_params,onSuccess:function(e){var f=new Element("div",{style:"display: none;"}).update(e.responseText);c.up().insert({after:f});c.fetched_children=true;Sprite._set(b,d);return TreeView.toggleNode(c)},cleanUp:function(e){if(/loading/.match(b.src)){Sprite._set(b,d)}}});return false},handle:function(c,b){var d=$H(TreeView.tv).keys();var a=$(b).ancestors().find(function(e){return d.include(e.id)});if(!a){return}a=TreeView.tv[a.id];$("modal").fire("db:treeview_selected",{path:c});if(a.handler){a.handler(c,b)}if(a.autohide){TreeView.hide(a.id)}},move:function(c,d,b){var a=$(c);if(!TreeView.loaded){TreeView.reset({onSuccess:function(){TreeView.loaded=1;TreeView.move(c,d,b)}})}else{if(b&&b.onSuccess){b.onSuccess()}}assert(a,"Couldn't find tree_id");assert($(d),"Couldn't find location_id");$(d).appendChild(a);a.show()},disable_shared:function(f){var a=$(f);if(a.share_disabled){return}a.share_disabled=true;var d=a.select(".s_folder_user");var b=d.length;for(var c=0;c<b;c++){var g=d[c];Sprite.replace(g,"folder_user","folder_user_gray");var e=g.up();e._onclick=e.onclick;e.onclick=Util.nop}},enable_shared:function(f){var a=$(f);if(!a.share_disabled){return}a.share_disabled=false;var d=a.select(".s_folder_user_gray");var b=d.length;for(var c=0;c<b;c++){var g=d[c];Sprite.replace(g,"folder_user_gray","folder_user");var e=g.up();e.onclick=e._onclick}}};Sprite={SPACER:"/static/images/icons/icon_spacer.gif",src:function(b,a){b=$(b);Sprite.clear(b);b.addClassName("s_"+a)},current:function(b){var a=$(b).classNames().findAll(function(c){return !c.indexOf("s_")});return a.length?a[a.length-1].substr(2):""},replace:function(c,b,a){c.removeClassName("s_"+b);c.addClassName("s_"+a)},toggle:function(c,b,a){c=$(c);if(c.hasClassName("s_"+b)){c.removeClassName("s_"+b);c.addClassName("s_"+a)}else{if(c.hasClassName("s_"+a)){c.removeClassName("s_"+a);c.addClassName("s_"+b)}}},blue:function(a){return a+"_blue"},clear:function(a){a=$(a);a.className=a.classNames().reject(function(b){return !b.indexOf("s_")}).join(" ")},make:function(c,a){a=a||{};a.src=Sprite.SPACER;var d="sprite s_"+c+" "+(a["class"]||"");var b=new Element("img",a);b.addClassName(d);return b},html:function(b,a){var d=Sprite.make(b,a);var c=new Element("div");c.update(d);return c.innerHTML},_get:function(a){return a.className},_set:function(b,a){b.className=a;b.src=Sprite.SPACER}};var Dropdown={init:function(){$$("#tabs-container > ul > li").each(function(a){a.observe("mouseenter",Dropdown.over);a.observe("mouseleave",Dropdown.out)})},over:function(a){clearTimeout(Dropdown.timeout);$$("#tabs-container > ul > li.hover").invoke("removeClassName","hover");var b=$(a.target);if(!b.match("#tabs-container > ul > li")){b=b.up("#tabs-container > ul > li")}b.addClassName("hover")},out:function(a){var b=$(a.target);if(!b.match("#tabs-container > ul > li")){b=b.up("#tabs-container > ul > li")}Dropdown.timeout=setTimeout(function(){b.removeClassName("hover")},300)}};var HotButton={make:function(b){var a=new Element("a");a.addClassName("hotbutton");var d=new Element("span");d.addClassName("hotbutton-content");d.update(b);a.update(d);var c=new Element("span");c.addClassName("shadow");a.insert(c);return HotButton.register(a)},register:function(a){var b=a.select(".hotbutton-icon").pop();if(b){a._icon=b;a._sprite=Sprite.current(b)}a.observe("mouseenter",function(){HotButton.mouseenter(a)});a.observe("mouseleave",function(){HotButton.mouseleave(a)});a.observe("mousedown",function(c){HotButton.mousedown(c,a)});a.observe("mouseup",function(){HotButton.mouseup(a)});Util.disableSelection(a);return a},mouseenter:function(a){a.addClassName("hover");a.style.zIndex=1},mouseleave:function(a){a.removeClassName("hover");a.removeClassName("down");a.removeClassName("hover_swap");a.style.zIndex=0;if(a._icon){Sprite.src(a._icon,a._sprite)}},mousedown:function(b,a){a.addClassName("down");a.addClassName("hover_swap");if(a._icon){Sprite.src(a._icon,Sprite.blue(a._sprite))}Event.stop(b)},mouseup:function(a){a.removeClassName("down");a.removeClassName("hover_swap");if(a._icon){Sprite.src(a._icon,a._sprite)}}};var LiveSearch={search:function(f,e,c,a,b){f=f.strip();if(f.length<3){$(e).update("");if(a.onEmpty){a.onEmpty(f)}}else{var d={search_string:f,"short":b?1:""};new Ajax.Request(c,{parameters:d,method:"get",onSuccess:function(g){var h=g.responseText.strip();if(!h){if(a.onEmpty){a.onEmpty(f)}return}$(e).update(g.responseText);LiveSearch.highlight(e,f);if(a.onComplete){a.onComplete(f)}}})}},highlight:function(c,b){var a=b.split(" ");a.each(function(e){if(e.length<4){return}var d=new RegExp(RegExp.escape(e),"i");c=$(c);$$(".livesearch_result_a").each(function(f){f.innerHTML=f.innerHTML.gsub(d,function(g){return"<span class='highlight'>"+g[0]+"</span>"})});$$(".livesearch_result_p").each(function(f){f.innerHTML=f.innerHTML.stripTags().gsub(d,function(g){return"<span class='highlight'>"+g[0]+"</span>"})})})},MAX_RESULTS:10};var DBDropdown=Class.create({initialize:function(b,d,j){this.options=j||{};this.container=$(b);assert(this.container,"Couldn't find element for DBDropdown "+b);this.container.style.position="relative";assert(d&&d.length,"Missing options_list: "+d);this.display_options=[];this.display_value={};for(var c=0;c<d.length;c+=1){var h;if(d[c].length>2){h=[d[c][1],d[c][2]]}else{h=[d[c][1]]}this.display_options.push(h);this.display_value[d[c][1]]=d[c][0]}var a="";if(this.options.icon||this.options.prefix){a+="<span class='prefix'>";if(this.options.icon){if(!this.options.no_hover){a+=Sprite.html(this.options.icon,{className:"icon_no_hover"});a+=Sprite.html(this.options.icon+"_blue",{className:"icon_hover"})}else{a+=Sprite.html(this.options.icon)}}if(this.options.prefix){a+=this.options.prefix}a+="</span>"}var e;if(this.options.initial_value){e=this.options.initial_value}else{e=this.display_options[0][0]}a+="<span class='dbdropdown-selected'>"+e+"</span>";var f=this.options.arrow||"big-dropdown";if(!this.options.no_hover){a+=Sprite.html(f+"_blue",{className:"icon_hover"});a+=Sprite.html(f,{className:"icon_no_hover"})}else{a+=Sprite.html(f)}this.hotbutton=HotButton.make(a);this.hotbutton.addClassName("dbdropdown");this.hotbutton.name=$(b).identify();this.container.update(this.hotbutton);if(this.options.style){for(var g in this.options.style){if(this.options.style.hasOwnProperty(g)){this.hotbutton.style[g]=this.options.style[g]}}}this.observe()},observe:function(){this.hotbutton.observe("mouseup",(function(a){this.mouseup(a)}).bind(this));$(document.body).observe("mouseup",(function(){this.hide_list()}).bind(this))},mouseup:function(a){if(this.showing){this.hide_list()}else{this.show_list()}Event.stop(a)},show_list:function(){var b=this;var a=new Element("ul");Util.disableSelection(a);a.addClassName("dbdropdown-list");this.display_options.each(function(h){var e=h[0],g="",f="";if(h.length>1){g=Sprite.html(h[1],{className:"link-img icon_no_hover"});f=Sprite.html(h[1]+"_blue",{className:"link-img icon_hover"})}var d=new Element("li");d.addClassName("wit");d.name=e;d.update(g+f+e);d.observe("click",Event.stop);d.observe("mouseup",function(j){Event.stop(j);b.select(e);b.hide_list()});d.observe("mouseenter",function(){this.addClassName("over")});d.observe("mouseleave",function(){this.removeClassName("over")});a.appendChild(d)});this.container.appendChild(a);a.clonePosition(this.hotbutton,{setTop:false,setHeight:false});a.style.width=parseInt(a.style.width,10)-2+"px";var c=this.container.getHeight()-(Prototype.Browser.IE?2:0)+"px";if(this.options.show_above){a.style.bottom=c}else{a.style.top=c}this.showing=true},hide_list:function(){var a=this.container.down(".dbdropdown-list");if(a){a.remove()}this.showing=false},select:function(a){var b=this.display_value[a];assert(b,"Value is missing...");var c=this.container.down(".dbdropdown-selected");assert(c,"select missing contentelm");c.update(a);if(this.options.on_change){this.options.on_change(b)}}});var StarRating=Class.create({initialize:function(b,a){this.container=$(b);this.value=a||1;this.stars=this.generate_stars();this.input=new Element("input",{name:"rating",type:"hidden"});this.input.setValue(this.value);assert(this.container,"StarRating missing container");this.render()},generate_stars:function(){var c=this.value;var a=[];for(var b=0;b<5;b+=1){a.push(this.generate_star(b+1,b<c))}return a},generate_star:function(d,c){var a=c?"star_blue_on_big":"star_blue_off_big";a=Sprite.make(a);var b=this;a.observe("click",function(f){b.click(f,d)});a.observe("mouseover",function(f){b.set_stars(d)});return a},click:function(a,b){assert(b,"star click is missing value");if(a){Event.stop(a)}this.set_val(b)},render:function(){var a=new Element("a",{href:"#"});var c=this;a.observe("mouseleave",function(){c.set_stars(c.value)});a.observe("click",Event.stop);a.addClassName("ratingstars");for(var b=0;b<this.stars.length;b+=1){a.appendChild(this.stars[b])}a.appendChild(this.input);this.container.update(a)},get_val:function(){return this.value},set_stars:function(c){assert(c>0,"Star value was < 1");assert(c<=5,"Star value was > 5");for(var a=0;a<5;a+=1){var b=this.stars[a];if(a<c){Sprite.replace(b,"star_blue_off_big","star_blue_on_big")}else{Sprite.replace(b,"star_blue_on_big","star_blue_off_big")}}},set_val:function(a){this.set_stars(a);this.value=a;this.input.setValue(a)}});var ThumbVote={close:function(b){var a=$("thumbs-cont");a.hide()},decline:function(){new Ajax.DBRequest("/thumbs",{parameters:{declined:"ajax"}})},up_vote:function(){new Ajax.DBRequest("/thumbs",{parameters:{up:1}});ThumbVote.close();ThumbVote.show_feedback(1)},down_vote:function(){new Ajax.DBRequest("/thumbs",{parameters:{down:1}});ThumbVote.close();ThumbVote.show_feedback(0)},show_feedback:function(a){assert(a!==undefined,"up is missing");if(a){$("upvote-msg").show();$("downvote-msg").hide()}else{$("upvote-msg").show();$("downvote-msg").hide()}$("thumb_vote_positive").setValue(a);Modal.icon_show("comments",_("Thanks for the feedback!"),$("thumbs-feedback-modal"));var b=$("thumb-comments");b.setValue();b.focus()},submit_feedback:function(b){var a=$("thumbs-feedback-form");assert(a,"Missing thumbs form");Forms.ajax_submit(a,false,function(){Modal.hide()},false,b.target)}};var LocaleSelector={init:function(){var b=$("locale_selector");if(!b){return}var d;for(var c=0,a=Constants.LOCALES.length;c<a;c+=1){if(Constants.LOCALES[c][0]==Constants.USER_LOCALE){d=Constants.LOCALES[c][1]}}var e=false;new DBDropdown(b,Constants.LOCALES,{on_change:function(f){LocaleSelector.change(f)},initial_value:d,icon:"world_grey",no_hover:!e,arrow:"big-dropdown-gray"})},change:function(b){if(b==Constants.USER_LOCALE){return}var a=new Element("form",{action:"https://"+Constants.WEBSERVER+"/set_locale",method:"post"});Forms.add_vars(a,{locale:b,locale_cont:window.location.href});document.body.appendChild(a);a.submit()}};var Notify={ServerError:function(a){return Notify.showDiv(a,"server-error",_("There was a problem completing this request."),"#ffdddd","#fff0f0")},ServerSuccess:function(a){return Notify.showDiv(a,"server-success",_("Your request completed successfully."),"#e5fdd0","#f7fff0")},showDiv:function(g,h,f,c,b){var d=false;if(g&&g.indexOf("important")===0){d=true;g=g.substr(10)}Notify.last_msg=g;Notify.clearAll();g=g||f;var e=Util.scry(h);if(!e){return}e.down("span").update(g);if(!Notify.dont_center){Util.center(e)}var a;a=new Effect.BlindFadeDown(e,{duration:0.5,scaleTo:75,queue:{scope:"notify"}});a=new Effect.Flash($(h).down("td"),{cycles:3,startcolor:c,endcolor:b});if($(h).down(".r0")){a=new Effect.Flash($(h).down(".r0"),{cycles:3,startcolor:c,endcolor:b})}if(!d){a=new Effect.BlindFadeUp(e,{duration:0.3,scaleFrom:75,delay:10,queue:{scope:"notify"}})}if(Util.ie6){e.scrollTo()}},clearAll:function(){$$(".notify").invoke("hide");var a=Effect.Queues.get("notify");a.effects=[];clearInterval(a.interval);a.interval=null},clearIf:function(a){if(Notify.last_msg==a){Notify.clearAll()}}};var LoginDropdown={init:function(){var a=$("login-hover-link");if(!a){return}LoginDropdown.login_link=a;LoginDropdown.register()},register:function(a){LoginDropdown.login_link.observe("click",LoginDropdown.click);LoginDropdown.login_link.observe("mouseenter",LoginDropdown.over);LoginDropdown.login_link.observe("mouseleave",LoginDropdown.out);LoginDropdown.login_link.observe("focus",LoginDropdown.click);$("login_email_elm").observe("focus",LoginDropdown.click);$(document.body).observe("click",LoginDropdown.unclick)},over:function(a){LoginDropdown.hover()},out:function(a){LoginDropdown.unhover()},click:function(a){Event.stop(a);LoginDropdown.hover();LoginDropdown.down=true;LoginDropdown.login_link.up().addClassName("down");$("login_email_elm").focus()},unclick:function(b){var a=$(b.target);if(a.match("#top-login-wrapper *")){return}LoginDropdown.down=false;LoginDropdown.unhover();LoginDropdown.login_link.up().removeClassName("down")},hover:function(){if(LoginDropdown.is_hover||LoginDropdown.down){return}LoginDropdown.is_hover=true;var a=$("login-hover-dropdown-icon");Sprite.replace(a,"big-dropdown-gray","big-dropdown")},unhover:function(){if(!LoginDropdown.is_hover||LoginDropdown.down){return}LoginDropdown.is_hover=false;var a=$("login-hover-dropdown-icon");Sprite.replace(a,"big-dropdown","big-dropdown-gray")}};var TranslationSuggest={record_msg_touch:function(c){var b=$("translation-msg-id");assert(b,"Missing translation msg_id field");assert(c,"Missing translation display");var a=Constants.messages[c];if(a){b.value=a}TranslationSuggest.finish_wizard(c,Constants.emessages[c]||"")},_autocomplete_highlight:function(a){a=new SimpleSet(a);return function(b){if(a.contains(b)){return"<strong>"+b+"</strong>"}else{return b}}},autocompleter:Class.create(Autocompleter.Local,{onClick:function($super,b){var a=Event.findElement(b,"LI");if(a&&a.className.indexOf("not-found")<0){return $super(b)}},onHover:function($super,b){var a=Event.findElement(b,"LI");if(a&&a.className.indexOf("not-found")<0){return $super(b)}},onBlur:function($super,a,b){if(b){$super(a)}},close:function(){this.onBlur(null,true);return true},selectEntry:function($super){var a=this.index;$super();TranslationSuggest.record_msg_touch(TranslationSuggest.msg_display[a])}}),attach_autocomplete:function(){var a=new TranslationSuggest.autocompleter("bad-i18n-text","bad-i18n-text-complete",false,{frequency:0.15,selector:function(r){var t=[];var b=[];var d=r.getToken();var e=$H(Constants.messages).keys();var l=e.length;var o=10;var f=true;var h=3;var p=true;var c={};TranslationSuggest.msg_display=[];var k=[];var q;for(var n=0;n<l&&t.length<o;n++){q=e[n];var u=q.toLowerCase().indexOf(d.toLowerCase());if(u!=-1){c[q]=true}while(u!=-1){if(u===0&&q.length!=d.length){t.push("<li><div><strong>"+q.substr(0,d.length)+"</strong>"+q.substr(d.length)+"</div></li>");TranslationSuggest.msg_display.push(q);break}else{if(d.length>=h&&f&&u!=-1){if(p||/\s/.test(q.substr(u-1,1))){b.push("<li><div>"+q.substr(0,u)+"<strong>"+q.substr(u,d.length)+"</strong>"+q.substr(u+d.length)+"</div></li>");k.push(q);break}}}u=q.toLowerCase().indexOf(d.toLowerCase(),u+1)}}if(b.length){t=t.concat(b.slice(0,r.options.choices-t.length));TranslationSuggest.msg_display=TranslationSuggest.msg_display.concat(k.slice(0,r.options.choices-t.length))}if(t.length<o){var s={};var g=$A(d.split(/\s/));g.each(function(j){var v=TranslationSuggest.word_index[j];if((j.length>=h||g.length>2)&&v){$A(v).each(function(w){s[w]=(s[w]||0)+1})}});s=$A($H(s));s.sort(function(j,v){return v[1]-j[1]});for(var m=0;m<Math.min(s.length,o-t.length);m++){q=s[m][0];if(!c[q]){t.push("<li><div>"+q.replace(/[^\s]+/g,TranslationSuggest._autocomplete_highlight(g))+"</div></li>");TranslationSuggest.msg_display.push(q)}}}if(t.length){t[t.length-1]=t[t.length-1].replace("<div>",'<div style="border: none">')}t=t.join("");if(!t.length){return'<ul style="border: 1px solid #bbb"><li class="not-found" style="background:#f5f5f5"><div style="text-align:left;border: none">%s</div></li></ul>'.format(_("That text was not found on this page."))}return("<ul>"+t+"</ul>")}});TranslationSuggest.ac=a},submit_suggest:function(b){var a=$("translation-suggest-form");assert(a,"Missing translation suggest form");Forms.ajax_submit(a,false,function(){Notify.ServerSuccess(_("Thanks for suggesting an alternate translation!"));Modal.hide()},false,$("translation-back-button"))},start_wizard:function(b){Event.stop(b);var a=$("translation-suggest-form");TranslationSuggest.reset_form();a.down("input[name=locale]").setValue(Constants.USER_LOCALE);a.down("input[name=locale_url]").setValue(window.location.href);Modal.icon_show("world",'%s <span class="step-number">%s</span>'.format(_("Report a translation problem"),_("&ndash; Step 1 of 2")),$("translate-div"),{},$("bad-i18n-text"));Modal.onHide=TranslationSuggest.ac.close.bind(TranslationSuggest.ac)},show_select_error:function(a){Event.stop(a);$("bad-i18n-text-error").show()},finish_wizard:function(b,a){var c=$("translation-suggest-form");assert(c,"Missing translation suggest form");$("modal-title").down("span").update(_("&ndash; Step 2 of 2"));c.down("#part-one").hide();c.down("#translation-msg-display").innerHTML=b.stripTags().escapeHTML();c.down("#translation-orig-msg-display").innerHTML=a.stripTags().escapeHTML();c.down("#part-two").show();c.down("#part-two textarea").focus();ActAsBlock.register(false,c)},reset_form:function(){var b=$("translation-suggest-form");var a=$("translation-msg-id");assert(b,"Missing translation suggest form");assert(a,"Missing translation msg_id field");b.select("textarea").each(Form.Element.clear);b.down("#part-one").show();b.down("#part-two").hide()},word_index:{},index_message:function(c){var b=c.blank_format().split(/\s/);for(var a=0;a<b.length;a++){var d=b[a];if(!(d in TranslationSuggest.word_index)){TranslationSuggest.word_index[d]=[]}TranslationSuggest.word_index[d].push(c)}},index_all:function(){for(var a in Constants.messages){if(Constants.messages.hasOwnProperty(a)){TranslationSuggest.index_message(a)}}},update_i18n_messages:function(e){for(var b in e){if(e.hasOwnProperty(b)){var d=e[b];if(d.s&&d.s.length){for(var c=0,a=d.s.length;c<a;c++){add_i18n_message(b,d.s[c],d.e[c])}}else{add_i18n_message(b,d.t,b)}}}},update_i18n_messages_from_req:function(e){var g="<!--msg:";var b="-->";if(e.responseText.indexOf(g)===0){var h=e.responseText.indexOf(":",g.length);assert(h!=-1,"malformed i18n message header");var d=e.responseText.substr(g.length,h-g.length);var c=Number(d);assert(!isNaN(c),"invalid json length "+d);var a=e.responseText.substr(h+1,c);e.responseText=e.responseText.substr(h+1+c+b.length);var f=a.evalJSON();TranslationSuggest.update_i18n_messages(f)}}};var DBCheckbox={register_all:function(){var b=$$(".checkbox");for(var a=0;a<b.length;a+=1){DBCheckbox.register(b[a])}},register_browse:function(){var c=Browse.files;for(var b=0,a=c.length;b<a;b+=1){c[b].checkbox.selected=false}},register:function(a){a.addClassName("s_checkbox sprite");a.selected=false;return a},toggle:function(a){if(a.selected){DBCheckbox.deselect(a)}else{DBCheckbox.select(a)}},select:function(a){Sprite.replace(a,"checkbox","checkbox_checked");a.selected=true},deselect:function(a){Sprite.replace(a,"checkbox_checked","checkbox");a.selected=false}};document.observe("dom:loaded",DBCheckbox.register_all);var LeftNavBox={close:function(c){var b=$(c).up().up("div");var e=1;var a;a=new Effect.BlindUp(b,{duration:e});return false}};var Tooltip={attach:function(g,c,a,b){g=$(g);a=a?$(a):null;b=b||{};var f=Bubble.make(c,g.tail_position,b.tail_position,b.width);f.setStyle({display:"none",position:"absolute"});$("floaters").insert(f);if(g.match("#modal-content *")){f.style.zIndex="13001"}else{f.style.zIndex=""}if(g.tail_position=="right"){var e=Util.ie?32:12;f.style.marginLeft=-(f.getWidth()+g.getWidth()+e)+"px"}g.tooltip=f;g.out_target=a?true:false;g.observe("mouseout",Tooltip.mouseout("target",g));g.observe("mouseover",Tooltip.mouseover("target",g));g.out_trigger=a?false:true;if(a){a.observe("mouseout",Tooltip.mouseout("trigger",g));a.observe("mouseover",Tooltip.mouseover("trigger",g))}g.out_tooltip=true;f.observe("mouseout",Tooltip.mouseout("tooltip",g));f.observe("mouseover",Tooltip.mouseover("tooltip",g))},update:function(b,a){if(b.tooltip){$(b.tooltip).update(a)}},mouseover:function(a,b){return function(){b["out_"+a]=false}},mouseout:function(a,b){return function(){b["out_"+a]=true;Tooltip.hide_if_out.defer(b)}},show_by:function(b){var c=$(b.tooltip);c.show();var a=Math.floor(c.getHeight()/2);c.clonePosition(b,{setWidth:false,setHeight:false,offsetTop:Math.floor(b.getHeight()/2)-a,offsetLeft:b.getWidth()+1})},hide_if_out:function(a){if(!a.out_target||!a.out_trigger||!a.out_tooltip){return}var b=$(a.tooltip);b.hide()},show:function(e,d,b,a,c){a=a||"left";e=$(e);if(!e.tail_position){e.tail_position=a}b=b?$(b):null;if(!e.tooltip){Tooltip.attach(e,d,b,c)}Tooltip.show_by(e)}};var TabList=Class.create({initialize:function(a,b,c){this.lists=a;this.initialize_lists(a);if(b){this.tabs=b;this.tab_map=c;this.initialize_tabs()}},initialize_lists:function(){var e=this;var d=function(){return function(h,g){e.list_click(e,h,g)}};for(var b=0;b<this.lists.length;b+=1){var c=$(this.lists[b]).select("a");for(var a=0;a<c.length;a+=1){var f=c[a];f.db_observe("click",d())}}},initialize_tabs:function(){var b=this;var c=function(e){return function(g,f){b.tab_click(b,g,f,e)}};for(var a=0;a<this.tabs.length;a+=1){var d=$(this.tabs[a]);if(!d){continue}d.db_observe("click",c(a))}},list_click:function(c,b,d){for(var a=0;a<c.lists.length;a+=1){$(c.lists[a]).select("a").invoke("removeClassName","selected")}d.addClassName("selected")},tab_click:function(e,d,f,a){for(var c=0;c<e.tabs.length;c+=1){$(e.tabs[c]).removeClassName("selected")}f.addClassName("selected");for(var b=0;b<e.lists.length;b+=1){$(e.lists[b]).hide()}$(e.tab_map[a]).show()}});var Pager=Class.create({initialize:function(b,c,d,a){assert(c,"Pager item_class is missing");this.options=a||{};this.item_selector=c;this.name=b;this.container=$$(this.item_selector).first()&&$$(this.item_selector).first().up(d);HashRouter.watch(b,this.show_page.bind(this))},current_page:1,prev:function(){assert(this.current_page>1,"Pager current page is 0");this.show_page(this.current_page-1)},next:function(){this.show_page(this.current_page+1)},show_page:function(d){var b=true;if(!d||!Util.isNumber(d)){d=1;b=false}d=parseInt(d,10);this.current_page=d;$$(this.item_selector).each(Element.hide);var c=$$(this.item_selector+d);if(this.options.on_page_change){this.options.on_page_change(d)}c.each(Element.show);if(d<=1){$(this.name+"-prev").hide()}else{$(this.name+"-prev").show()}if($$(this.item_selector+(d+1)).length){$(this.name+"-next").show()}else{$(this.name+"-next").hide()}$(this.name+"-page-num").update(d);if(b){HashRouter.set_hash(this.name,d)}if(this.container){var e=parseInt(this.container.style.minHeight,10)||0;var a=Util.inner_height(this.container);if(e<a){this.container.style.minHeight=a+"px"}}}});var BrowseStyleRows={register_all:function(){$$(".bs-row").each(BrowseStyleRows.register);Event.observe(document,"click",BrowseStyleRows.kill_current)},register:function(a){a=$(a);a.db_observe("mouseover",BrowseStyleRows.mouseover);a.db_observe("mouseout",BrowseStyleRows.mouseout);a.db_observe("click",BrowseStyleRows.click)},mouseover:function(b,a){a.addClassName("hover")},mouseout:function(b,a){a.removeClassName("hover")},click:function(d,b){if(d.target.tagName=="A"){return}Event.stop(d);BrowseStyleRows.kill_current(false);var c=$(d.target);if(!c.match(".bs-actions-list *")){b.addClassName("selected")}var a=c.hasClassName("bs-row")?c:c.up(".bs-row");if(Util.ie6){a.down(".bs-actions-list").style.position="absolute"}a.style.zIndex=9},kill_current:function(a){$$(".bs-row.selected").each(function(b){b.removeClassName("selected");b.style.zIndex=""})}};var HoverIconSwap={register_all:function(){$$(".background-icon").each(HoverIconSwap.register)},register:function(a){a=$(a);a.db_observe("mouseenter",HoverIconSwap.mouseenter);a.db_observe("mouseleave",HoverIconSwap.mouseleave)},mouseenter:function(a,b){b.addClassName("hover_swap")},mouseleave:function(a,b){b.removeClassName("hover_swap")},getFileName:function(b){var a=b.src.split("/");return a[a.length-1]}};document.observe("dom:loaded",HoverIconSwap.register_all);var SuggestionInput={register:function(c){c=$(c);var b=c.up("form");var a=c.getValue();if(SuggestionInput.defaulted(c)||c.getValue()===""){c.setValue(c.title)}else{c.addClassName("suggestion-input-unfaded")}c.observe("blur",SuggestionInput.blur);c.observe("focus",SuggestionInput.focus);c.observe("db:value_change",SuggestionInput.focus);if(b){if(!c.id){c.id="r_elm_id_"+Math.random().toString()}b.observe("submit",SuggestionInput.blank(c.id))}},register_all:function(){$$(".suggestion-input").each(SuggestionInput.register)},blank:function(a){return function(){var b=$(a);if(!b){return}if(SuggestionInput.defaulted(b)){b.setValue("")}}},defaulted:function(a){a=$(a);return a.getValue()===a.title},do_blank:function(a){SuggestionInput.blank(a)()},clear:function(a){var b={target:a};SuggestionInput.focus(b)},focus:function(a){var b=$(a.target);if(!b){return}if(SuggestionInput.defaulted(b)){b.addClassName("suggestion-input-unfaded");b.setValue("")}},blur:function(a){var b=$(a.target);if(!b){return}if(b.getValue()===""){b.removeClassName("suggestion-input-unfaded");b.setValue(b.title)}},reset:function(b){var a=$(b);if(!a){return}a.removeClassName("suggestion-input-unfaded");a.setValue(a.title)}};document.observe("dom:loaded",SuggestionInput.register_all);var ULSelectMenu=(function(){var c=function(k){k.removeClassName("shown")};var j=function(k){k.toggleClassName("shown")};var e=function(){this.removeClassName("hover")};var d=function(){this.addClassName("hover")};var a=function(l,k){k.each(function(m){l.insert(m)})};var g=function(m,k,l){a(m,l);if(m.firstChild!=k){m.insert({top:k})}};var h=function(k,m,l){return function(n){n.stopPropagation();if(!k.hasClassName("selected")){m.down(".selected").removeClassName("selected");m.fire("db:change",k.getAttribute("data-value"));k.addClassName("selected");c(m)}else{g(m,k,l);j(m)}}};var f=function(m){var k=m.select("li");assert(k.length,"Empty list of options "+m.identify());var l;k.each(function(q){var p=q.getAttribute("data-value");assert(p,q.identify()+" missing data value");q.observe("click",h(q,m,k));q.observe("mouseenter",d);q.observe("mouseleave",e)});$(document.body).observe("click",function(){c(m)});if(!l){l=k[0]}l.addClassName("selected");var o=new Element("span");var n=l.getDimensions();o.style.width=n.width+"px";o.style.height=n.height+"px";o.setStyle({width:n.width+"px",height:n.height+"px",position:"relative",display:"inline-block"});m.wrap(o)};var b=function(){$$(".ul_select_menu").each(function(k){f(k)})};document.observe("dom:loaded",b);return{init:function(k){f(k)}}})();var JumpWatcher={inverval:null,last_hash:null,last_page_offset:0,check:function(){if(window.location.href.endsWith("#")&&window.pageYOffset===0&&JumpWatcher.last_page_offset!==0){JumpWatcher.report()}else{JumpWatcher.last_page_offset=window.pageYOffset;JumpWatcher.last_hash=Util.url_hash()}},report:function(){clearInterval(JumpWatcher.interval);assert(0.1+0.2===0.3,"Hash jump detected, last hash = "+JumpWatcher.last_hash)}};Event.observe(document,"dom:loaded",function(){TranslationSuggest.index_all()});document.observe("dom:loaded",function(){JumpWatcher.interval=setInterval(JumpWatcher.check,500);LocaleSelector.init();LoginDropdown.init()});var FileQueue,Upload,GlobalUpload,UploadFile,InlineUploadStatus;FileQueue={fileRows:{},fileProgress:{},uploading:false,toUpload:0,queueSize:0,completedSize:0,completed_files:{},empty:function(){return !FileQueue.toUpload},numShown:function(){return $H(FileQueue.fileRows).keys().length},lastOne:function(){return 1==FileQueue.toUpload},push:function(b){var c=b.id;FileQueue.queueSize+=b.size;FileQueue.fileRows[c]=b;if(!FileQueue.toUpload){GlobalUpload.files_added()}FileQueue.toUpload++;UploadFile.add(b);var a=$("choose-button").down(".hotbutton-content");a.update(_("Add more files"))},remove:function(a){var b=a.id;Upload.SWFU.cancelUpload(b);a.filestatus=SWFUpload.FILE_STATUS.CANCELLED;UploadFile.update(a);delete FileQueue.fileRows[b];if(!FileQueue.completed_files[b]){FileQueue.toUpload=Math.max(0,FileQueue.toUpload-1)}if(FileQueue.numShown()===0&&FileQueue.uploading){FileQueue.doneUploading()}},update:function(b,a,h){var k=false;var c;var e=false;if(a=="done"){k=_("Done");a=h=1;e=true}else{if(a/h==1){k=_("Saving...")}}if(e){FileQueue.completedSize+=b.size;c=FileQueue.last_update_position}else{c=FileQueue.completedSize+a/h*b.size}var f=b.averageSpeed/8;var j=_("%(bytes)s/sec").format({bytes:Util.formatBytes(f,1,true)});var g=(FileQueue.queueSize-c)/f;var d=Util.formatTime(g+FileQueue.toUpload);FileQueue.last_update_position=c;if(!k){k=parseInt((c/FileQueue.queueSize).toFixed(2)*100,10);k+="%"}FileQueue.currentFilename=b.name.snippet(20);FileQueue.formattedSpeed=j;FileQueue.formattedTime=d;FileQueue.statusText=k;FileQueue.totalPercentage=c/FileQueue.queueSize;FileQueue.current_file=b;if(b.filestatus==SWFUpload.FILE_STATUS.COMPLETE){UploadFile.update(b)}if(!FileQueue.update_timer){FileQueue.update_timer=true;FileQueue.timer=setInterval(function(){UploadFile.update();GlobalUpload.update()},250)}},errored:function(b,a){if(a!=SWFUpload.UPLOAD_ERROR.FILE_CANCELLED){FileQueue.errors=(FileQueue.errors+1)||1}UploadFile.update(b);if(FileQueue.toUpload===0&&FileQueue.uploading){FileQueue.doneUploading()}},completed:function(a){var b=FileQueue.fileRows[a.id];if(b){FileQueue.toUpload=Math.max(0,FileQueue.toUpload-1);FileQueue.completed_files[a.id]=true}},clear:function(a){FileQueue.fileRows={};FileQueue.queueSize=0;FileQueue.errors=0;FileQueue.toUpload=0;FileQueue.completedSize=0;FileQueue.uploading=false;window.onbeforeunload=null;Modal.onHide=null},chooseFiles:function(){},uploadFiles:function(){if(!FileQueue.toUpload){return}Upload.updatePostParams({dest:$$(".dest-folder")[0].getValue(),t:Constants.TOKEN});if(!FileQueue.uploading){FileQueue.start_time=new Date().getTime();Upload.uploadNext();FileQueue.uploading=true;FileQueue.updateInterval=setInterval(InlineUploadStatus.update,250);window.onbeforeunload=function a(){return _("Leaving this page will cancel your uploads.")};Modal.hide()}},colorButtons:function(a){$A(["choose-button","upload-button"]).each(function(b){if(b==a){$(b).removeClassName("grayed")}else{$(b).addClassName("grayed")}})},doneUploading:function(){GlobalUpload.complete();InlineUploadStatus.complete();clearInterval(FileQueue.timer);FileQueue.update_timer=false;FileQueue.uploading=false;clearInterval(FileQueue.updateInterval);DomUtil.fillVal("","uploading-speed");DomUtil.fillVal("","uploading-time-left");if(FileQueue.errors){InlineUploadStatus.errored(FileQueue.errors,FileQueue.numShown())}FileQueue.last_update_position=0;Browse.force_reload();Modal.onHide=null;window.onbeforeunload=null}};InlineUploadStatus={upload_box:false,last_update:0,last_update_position:0,previous_bps_list:[],show:function(a){if(!InlineUploadStatus.upload_box){InlineUploadStatus.build(a)}InlineUploadStatus.upload_box.show()},build:function(){if(!InlineUploadStatus.upload_box){InlineUploadStatus.upload_box=$("inline-upload-status")}$("right-content").insert({top:InlineUploadStatus.upload_box})},hide:function(){if(InlineUploadStatus.upload_box){InlineUploadStatus.upload_box.hide()}},update:function(){if($$("#right-content #inline-upload-status").length===0){InlineUploadStatus.build()}if(FileQueue.currentFilename){var d=$("inline-upload-status");d.removeClassName("error");d.removeClassName("complete");var c=FileQueue.numShown();var a=c-FileQueue.toUpload+1;var e=_("Uploading file %(file_number)d of %(total)d (%(upload_speed)s)").format({file_number:a,total:c,upload_speed:FileQueue.formattedSpeed});d.down(".upload-info-filename").update(e);d.down(".upload-info-status").update("<strong>"+_("Time Left:")+"</strong> "+FileQueue.formattedTime);var b=(parseInt(100*FileQueue.totalPercentage,10)||0)+"%";d.down(".upload-info-percent").update(b);d.down(".upload-info-icon").update(Sprite.make("sync"));d.down(".upload-file-progress").style.width=b}},errored:function(d,b){var a=$("inline-upload-status");a.addClassName("error");a.removeClassName("complete");var c=_("Problems with %(error_count)d of %(total)d files").format({error_count:d,total:b});a.down(".upload-info-filename").update(c);a.down(".upload-info-percent").update("100%");a.down(".upload-info-status").update();a.down(".upload-info-icon").update(Sprite.make("redx"));a.down(".upload-file-progress").style.width="100%"},complete:function(){var b=$("inline-upload-status");b.addClassName("complete");var c=_("Uploaded %(number_uploaded)d of %(total)d files").format({number_uploaded:FileQueue.numShown(),total:FileQueue.numShown()});b.down(".upload-info-filename").update(c);b.down(".upload-info-percent").update("100%");var a=(Util.time()-FileQueue.start_time)/1000;b.down(".upload-info-status").update("<strong>"+_("Time taken:")+"</strong> "+Util.formatTime(a));b.down(".upload-info-icon").update(Sprite.make("check"));b.down(".upload-file-progress").style.width="100%"}};Upload={SWFU:false,init:function(c){var a={};a[Constants.tcn]=Upload.touch;var b=Upload.initSWFU(a);if(!c){Event.observe(window,"load",b)}else{b()}Upload.operaHack();FileQueue.clear();if(!c){Upload.checkForFallback.delay(Util.linux_ff3?0:5)}},initSWFU:function(a){return function(){var b=new SWFUpload({upload_url:"https://"+Constants.BLOCK_CLUSTER+"/upload",file_post_name:"file",file_size_limit:"307200",file_types:"*",file_types_description:_("All Files"),file_upload_limit:"0",button_placeholder_id:"spanButtonPlaceholder",button_window_mode:SWFUpload.WINDOW_MODE.TRANSPARENT,button_width:120,button_height:30,button_image_url:Util.linux_ff3?"/static/images/upload_button.gif":"",button_text:Util.linux_ff3?"<span class='flash-button'>"+_("Select files...")+"</span>":"",button_text_style:'.flash-button {color: #ffffff; font-size: 11pt;font-family: "lucida grande","lucida sans unicode",tahoma,verdana,arial,sans-serif;text-align: center; line-height: 16px;}',swfupload_loaded_handler:Upload.flashLoaded,file_dialog_start_handler:FileQueue.chooseFiles,file_queued_handler:Upload.fileQueued,file_queue_error_handler:Upload.fileQueueError,file_dialog_complete_handler:Upload.fileDialogComplete,upload_progress_handler:Upload.uploadProgress,upload_error_handler:Upload.uploadError,upload_success_handler:Upload.uploadSuccess,upload_complete_handler:Upload.uploadComplete,flash_url:"/static/swf/swfupload.swf",custom_settings:{progress_target:"fsUploadProgress",upload_successful:false},post_params:a,debug:Constants.upload_debug||false});Upload.SWFU=b}},reset:function(){if(FileQueue.uploading){Upload.SWFU.cancelUpload()}FileQueue.clear();var a=$$(".swfuploader").first();if(a){a.remove()}delete Upload.SWFU},updatePostParams:function(c){var a=Upload.SWFU.getSetting("post_params");for(var b in c){if(c.hasOwnProperty(b)){a[b]=c[b]}}Upload.SWFU.setPostParams(a)},fileBrowse:function(){Upload.SWFU.cancelUpload();Upload.SWFU.selectFiles()},fileQueueError:function(f,b,d){try{switch(b){case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:var j="<p>"+_("The upload limit online is 300MB. You can upload larger files with the <a href='/install'>Dropbox desktop application</a>.")+"</p>";var a=new Element("div");var h=new Element("p",{style:"margin-bottom:0; text-align: right;"});var c=new Element("input",{type:"button",className:"button",value:_("Okay")});c.observe("click",function(){FileOps.show_upload(Browse.current_fqpath())});h.insert(c);a.insert(j);a.insert(h);Modal.icon_show("alert",_("Upload Error"),a);break;case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE:alertd(_("The file you selected is empty. Please select another file."));break;case SWFUpload.QUEUE_ERROR.INVALID_FILETYPE:alertd(_("The file you choose is not an allowed file type."));break;default:alertd(_("An error occurred in the upload. Try again later."));this.debug("Error Code: "+b+", File name: "+f.name+", File size: "+f.size+", Message: "+d);break}}catch(g){}},fileQueued:function(a){FileQueue.push(a)},fileDialogComplete:function(a){},uploadNext:function(){Upload.SWFU.startUpload()},pause:function(){Upload.SWFU.stopUpload()},uploadProgress:function(c,b,a){FileQueue.update(c,b,a)},uploadSuccess:function(b,a){if(a.strip()===""){FileQueue.errored(b);Notify.ServerError()}else{if(a=="quota"){FileQueue.errored(b);Notify.ServerError(_("Your upload failed because you are over quota."))}else{if(a=="folder_exists"){FileQueue.errored(b);Notify.ServerError(_("You cannot upload a file with the same name as a folder in this directory."))}else{FileQueue.update(b,"done")}}}},uploadComplete:function(a){FileQueue.completed(a);if(FileQueue.empty()){FileQueue.doneUploading()}else{Upload.uploadNext()}},uploadError:function(e,b,d){var c=e;FileQueue.queueSize-=e.size;if(parseInt(b,10)!=-280){var a=FlashDetect.major+"."+FlashDetect.revision;Util.report_exception("Uploader Error: "+b+" "+d+" "+Object.toJSON(e)+" FLASH VERSION: "+a,window.location.href)}switch(b){case SWFUpload.UPLOAD_ERROR.MISSING_UPLOAD_URL:this.debug("Error Code: No backend file, File name: "+c.name+", Message: "+d);break;case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED:this.debug("Error Code: Upload Limit Exceeded, File name: "+c.name+", File size: "+c.size+", Message: "+d);break;case SWFUpload.UPLOAD_ERROR.HTTP_ERROR:this.debug("Error Code: HTTP Error, File name: "+c.name+", Message: "+d);break;case SWFUpload.UPLOAD_ERROR.UPLOAD_FAILED:this.debug("Error Code: Upload Failed, File name: "+c.name+", File size: "+c.size+", Message: "+d);break;case SWFUpload.UPLOAD_ERROR.IO_ERROR:this.debug("Error Code: IO Error, File name: "+c.name+", Message: "+d);break;case SWFUpload.UPLOAD_ERROR.SECURITY_ERROR:this.debug("Error Code: Security Error, File name: "+c.name+", Message: "+d);break;case SWFUpload.UPLOAD_ERROR.FILE_CANCELLED:this.debug("Error Code: Upload Cancelled, File name: "+c.name+", Message: "+d);break;case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED:this.debug("Error Code: Upload Stopped, File name: "+c.name+", Message: "+d);break;default:this.debug("Error Code: "+b+", File name: "+c.name+", File size: "+c.size+", Message: "+d);break}FileQueue.errored(e,b);if(FileQueue.empty()&&FileQueue.uploading){FileQueue.doneUploading()}},grabURL:function(){var a=$F("file-box");if(/(^http|^https|^ftp):\/\//.match(a)){$("url").value=a}return true},set_dest:function(b){var a=b.split("/");var d=a[a.length-1];if(!d.length){d=_("Dropbox");b="/"}DomUtil.fillVal(d.escapeHTML(),"dest-folder-text");DomUtil.fillVal(b,"dest-folder");$$(".dest-folder").each(function(e){e.value=b});var c=Util.scry("basic-uploader-url");if(c){c.href=c.href.replace(/(\/upload)(.*)(\?basic=1)/,function(h,g,j,e){return g+Util.urlquote(b)+e})}},treeview_handler:function(b,a){Upload.set_dest(b);FileQueue.clear()},new_folder:function(){TreeView.hide();Modal.show(_("Create New Folder..."),DomUtil.fromElm("create-folder"),{action:Upload.do_new_folder,wit_group:"new-folder-confirm"});if(!Util.ie){$("first-treeview-link").onclick()}},do_new_folder:function(){if(!Modal.vars.selected_path){Notify.ServerError(_("Please select a parent folder."));return}var c=$F("entered-name");var a=decodeURIComponent(Modal.vars.selected_path);var b=Util.urlquote(a);new Ajax.DBRequest("/cmd/new"+b+"?to_path="+c,{onSuccess:function(d){Upload.treeview_handler(Util.normPath(a)+"/"+c);TreeView.schedule_reset()},cleanUp:function(){}})},flashLoaded:function(){Upload.flash_loaded=true;$("upload-loading").hide();$("upload-buttons").show()},checkForFallback:function(){if(!Upload.flash_loaded){location.replace("/upload?basic=1")}else{clearInterval(Upload.opera_tid)}},operaHack:function(){if(Prototype.Browser.Opera){Upload.opera_tid=setInterval(function(){$("opera-dummy-div").toggle()},200)}}};GlobalUpload={init:function(){$("init-global-upload").show();$("global-upload-progress").hide()},files_added:function(){$("upload-start-buttons").show();$("upload-running-buttons").hide();$("upload-finished-buttons").hide();$$("#upload-start-buttons .button")[0].removeClassName("grayed")},update:function(){$("upload-start-buttons").hide();$("upload-running-buttons").show();$("upload-finished-buttons").hide();$("init-global-upload").hide();var f=$("global-upload-progress");f.show();f.removeClassName("complete");var a=f.select("td")[1];var e=FileQueue.numShown();var c=e-FileQueue.toUpload+1;var g=_("Uploading file %(file_number)d of %(total)d (%(upload_speed)s)").format({file_number:c,total:e,upload_speed:FileQueue.formattedSpeed});a.update(g);var d=(parseInt(100*FileQueue.totalPercentage,10)||0)+"%";f.select("td")[2].update(d);f.down(".upload-file-progress").style.width=(100*FileQueue.totalPercentage||0).toFixed(2)+"%";var b=$("upload-time");b.update("<strong>"+_("Time left:")+"</strong> "+FileQueue.formattedTime)},complete:function(){$("upload-start-buttons").hide();$("upload-running-buttons").hide();$("upload-finished-buttons").show();var c=$("global-upload-progress");c.down().style.width="100%";c.select("td")[2].update("100%");var e=c.select("td")[0];e.update(Sprite.make("check"));var b=(Util.time()-FileQueue.start_time)/1000;$("upload-time").update("<strong>"+_("Time taken:")+"</strong> "+Util.formatTime(b));var a=c.select("td")[1];var d=_("Uploaded %(number_uploaded)d of %(total)d files").format({number_uploaded:FileQueue.numShown(),total:FileQueue.numShown()});a.update(d)}};UploadFile={add:function(d){var b=$("upload-files-container");var a=new Element("div",{id:d.id});a.addClassName("upload-file");var c='<table class="upload-file-info"><tr><td class="upload-info-icon"></td><td class="upload-info-filename"></td><td class="upload-info-status"></td><td class="upload-info-action"></td></tr></table>';a.innerHTML='<div class="upload-file-progress"></div>'+c;b.insert(a);UploadFile.update(d)},remove:function(a){$(a).remove()},update:function(d){d=d||FileQueue.current_file;var l=$(d.id);assert(l,"Could not find file_elm for "+d.name);var k=FileOps.filename_to_icon(d.name);l.down(".upload-info-icon").update(Sprite.make(k,{}));l.down(".upload-info-filename").update(d.name.escapeHTML().truncate(40));var j="upload-file";var n=new Element("a",{href:"#"});var c=Sprite.make("thick_x",{});n.update(c);n.observe("click",function(o){Event.stop(o);FileQueue.remove(d)});var b=0;var f=l.down(".upload-info-status"),e=l.down(".upload-info-action"),a=l.down(".upload-file-progress");assert(f,"Couldn't find status elm");assert(e,"Couldn't find action elm");assert(a,"Couldn't find progress elm");f.update();var h=parseInt(d.percentUploaded,10)+"%";switch(d.filestatus){case SWFUpload.FILE_STATUS.QUEUED:l.className=j+" queued";e.update(n);break;case SWFUpload.FILE_STATUS.IN_PROGRESS:l.className=j+" in_progress";if(h=="100%"){f.update(_("Saving"))}else{f.update(h)}b=h;$$(".uploadnotch").invoke("remove");var g=Sprite.make("arrow_blue",{});g.addClassName("uploadnotch");l.insert(g);break;case SWFUpload.FILE_STATUS.ERROR:l.className=j+" error";f.update("Error");b="100%";var m=Sprite.make("information");m.observe("mouseover",function(){if(parseFloat(Util.flash_version(),10)<10.32){var p=_('Upload failed.  Please try upgrading to the latest version of <a id="adobe_link">Adobe Flash</a> and try again.');p=p.replace('id="adobe_link"','href="http://get.adobe.com/flashplayer/" target="_blank"');Tooltip.show(m,p)}else{var o=_('Sorry, it looks like the advanced uploader is incompatible with your system. Please use the <a id="basic_link">basic uploader</a> to upload via the website');o=o.replace('id="basic_link"','onclick="FileOps.show_basic_upload(Browse.current_location); return false;"');Tooltip.show(m,o)}});e.update(m);break;case SWFUpload.FILE_STATUS.COMPLETE:l.className=j+" complete";f.update("100%");b="100%";e.update();$$(".uploadnotch").invoke("remove");break;case SWFUpload.FILE_STATUS.CANCELLED:l.className=j+" cancelled";b="100%";f.update("Cancelled");e.update();break}if(b===0){a.style.visibility="hidden"}else{a.style.visibility=""}a.style.width=b}};var Hosts={edit:function(d){var c=$("host"+d);if(c.editing){return}c.editing=true;var b=c.innerHTML.unescapeHTML();c.previous=b;c.innerHTML="<input type='text' class='skinny-input' size='20' maxlength='256' style=\"word-wrap: break-word;\" value=\""+b.escapeHTML().gsub('"',"&quot;")+"\">&nbsp;<input type='button' onclick='Hosts.doneEditing(\""+d+"\");' class='button' value='"+_("Save")+"'>&nbsp;<input type='button' onclick='Hosts.cancelEditing(\""+d+"\");' class='button grayed' value='"+_("Cancel")+"'>";var a=c.down("input");Event.observe(a,"keydown",Hosts.checkKey(d));a.select();return false},doneEditing:function(c){var b=$("host"+c);var a=b.down("input").value;new Ajax.DBRequest("/computer_edit?host_id="+c+"&name="+Util.urlquote(a),{onSuccess:function(d){Hosts.unedit(b,d.responseText)}})},cancelEditing:function(b){var a=$("host"+b);Hosts.unedit(a,a.previous)},unedit:function(b,a){b.editing=false;b.innerHTML=a.escapeHTML()},unlink:function(c,b,a){DomUtil.fillVal(b.escapeHTML(),"unlink-confirm-name");Modal.icon_show("computer_delete",_("Unlink Computer?"),DomUtil.fromElm("unlink-confirm"),{host_id:c,plat:a,wit_group:"unlink-confirm"})},doUnlink:function(b,a){new Ajax.DBRequest("/computer_edit?host_id="+b+"&unlink=yessir",{onSuccess:function(c){Hosts.killRow(b);Hosts.dec_count(a)}})},dec_count:function(a){var c=$(a+"-count");if(!c){return}var d=c.innerHTML.split(" ");var b=parseInt(d.shift(),10);var e=d.join(" ");if(!b){return}b--;if(b==1&&e.charAt(e.length-1)=="s"){e=e.substr(0,e.length-1)}else{if(b!=1&&e.charAt(e.length-1)!="s"){e=e+"s"}}c.innerHTML=b.toString()+" "+e},killRow:function(d){var a=$("host"+d).up("table");$("host"+d).up("tr").remove();if(Hosts.rowCount()===0){var b=new Element("tr");var c=new Element("td",{colspan:4});c.innerHTML="<center>"+_("You no longer have any hosts linked.")+"</center>";a.insert(b);b.insert(c)}},rowCount:function(){return $$(".host-row").length},checkKey:function(a){return function(b){b=b||window.event;if(b.keyCode==Event.KEY_RETURN){Hosts.doneEditing(a)}if(b.keyCode==Event.KEY_ESC){Hosts.cancelEditing(a)}}}};var Upgrade={card_toggle:function(a){return function(c){var b=$(c);if(c==a||!a){b.removeClassName("cc-icon-off")}else{b.addClassName("cc-icon-off")}}},highlightCardtype:function(){var e=$("ccn");if(Upgrade.last_val==e.value){return}Upgrade.last_val=e.value;var b=e.value;var d=b.substr(0,2);var c=$A(["visa","mastercard","amex"]);var a=null;if(b.charAt(0)=="4"){a="visa"}else{if(d=="34"||d=="37"){a="amex"}else{if(parseInt(d,10)>=51&&parseInt(d,10)<=55){a="mastercard"}}}c.each(Upgrade.card_toggle(a))},runCardHighlighter:function(){setInterval(Upgrade.highlightCardtype,200)},highlightPlan:function(){var b=$A(["fifty-plan","100-plan","250-plan","free-plan"]);var a=b.map(Util.scry).find(function(c){if(c){return c.checked}});if(Upgrade.last_checked==a){return}if(Upgrade.last_checked){Util.scry(Upgrade.last_checked.id+"-div").removeClassName("payment-option-selected")}if(a){Util.scry(a.id+"-div").addClassName("payment-option-selected")}Upgrade.last_checked=a},enableNext:function(){var a=$("next-button");a.enable();a.removeClassName("disabled-button")},disableNext:function(){var a=$("next-button");a.disable();a.addClassName("disabled-button")},runPlanHighlighter:function(){setInterval(Upgrade.highlightPlan,100)},showPlanInfo:function(b){var a={"50-plan":_("It's 50 GB"),"100-plan":_("It's 100 GB"),"250-plan":_("It's 250 GB"),"free-plan":_("It's free")};Util.scry("plan-specific").update(a[b.id])}};var Home={hide_promo:function(a){new Ajax.DBRequest(a);$$("#left-content .lookatme").invoke("hide")},showScreencast:function(f,h,b){var e="/static/images/cc_endframe.jpg";var g=360/640;if(Constants.USER_LOCALE=="en"){e="/static/images/cc_endframe_en.jpg";g=353/640}b=b||532;var j=g*b;j=parseInt(j,10);var d={allowfullscreen:"true",wmode:"transparent"};var c={file:localized_path("http://scast.s3.amazonaws.com/cc/dropbox_intro.mp4",["es","fr","de","ja"]),skin:"/static/swf/bekle.swf",controlbar:"over",image:e};if(h){c.autostart="true"}var a=new Element("div",{id:"commoncraft-embed",style:"display: inline-block; border:1px solid #adcfea;background:#fff;"});$(f).update(a);swfobject.embedSWF("/static/swf/player-licensed.swf","commoncraft-embed",b.toString(),j.toString(),"9",false,c,d);MCLog.log("commoncraft_views")},showFeedback:function(a){if(a){Event.stop(a)}Modal.icon_show("comments",_("Tell Us What You Think"),$("feedback-div"),{icon:"information"},$("feedback_textarea"));return false},hide:function(b,a){$(b).up("div").hide();new Ajax.DBRequest("/hide/"+a)}};var Inbox={overQuotaModal:function(b,f,c,e){Modal.show(_("Quota Warning"),$("overquota-modal"));var a=$("modal-content");$$(".shared-folder-name").invoke("update",f);$$(".shared-folder-size").invoke("update",c);var d=a.getElementsByClassName("joinbutton");d[0].onclick=function(){b.onclick=null;b.click()};d[0].value=_("Join %(folder_name)s").format({folder_name:f});return false}};var Install={pingForLinkedHost:function(a){new Ajax.Request("/host_linked",{method:"get",onSuccess:function(){location.href="/share"+a},onFailure:function(){setTimeout(Install.pingForLinkedHost.curry(a),3000)}})}};var Downloading={registerAll:function(){if(Prototype.Browser.IE){$$(".downloading-link").each(Downloading.register)}},register:function(a){a=$(a);a.observe("click",Downloading.clicked)},clicked:function(b){Event.stop(b);var c=$(b.target);if(c.nodeName==="SPAN"){c=c.up("a")}var a=c.href.split("?").last();window.location="/download?"+a;setTimeout(function(){window.location="/downloading?"+a},4000)}};document.observe("dom:loaded",Downloading.registerAll);var Tour={pages:{},loading:false,register:function(){var f=1;$$(".tour-page a").each(function(h){h.href="#"+f;f+=1});var e=$$(".abutton")[0];if(e){e.href="#"+(Tour.current_page+1)}var b=$$(".tour-content-page");for(var d=0,a=b.length;d<a;d+=1){var g=b[d];var c=parseInt(g.id.split("tour-page-")[1],10)+1;Tour.pages[c]=g.innerHTML}Tour.interval=setInterval(Tour.check_url,100)},load:function(b,c){if(Tour.loading){return}b=b<=Tour.page_count&&b>0?b:1;Tour.current_page=b;Tour.select_tab(b);Tour.loading=true;if(Tour.pages[b]){Tour.show_page(b)}else{Feed.showLoading(false,"tour-content",true);var a=Tour.db_pro?"?db_pro":"";new Ajax.Request("/tour/"+b+a,{method:"get",onSuccess:function(d){Tour.pages[b]=d.responseText;Tour.show_page(b);Feed.hideLoading()}})}},select_tab:function(d){var a,e,b;$$("a.selected").each(function(f){f.removeClassName("selected");a=f.down(".sidebar-tab-rounded-tl").remove();e=f.down(".sidebar-tab-rounded-bl").remove();b=f.down(".sidebar-tab-rounded-l").remove()});var c=$$(".sidebar-tabs ul li a")[d-1];c.blur();c.addClassName("selected");c.insert(a);c.insert(e);c.insert(b)},show_page:function(c){$("tour-content").update(Tour.pages[c]);if(c<Tour.page_count){var d=new Element("div",{style:"text-align: right;"});var b=new Element("a",{href:"#"+(c+1)});b.update(_("Next")+"&raquo;");b.addClassName("abutton");d.update(b);$("tour-content").insert(d)}Tour.loading=false},check_url:function(){var a=Util.url_hash();if(!a||Tour.loading){return}a=parseInt(a,10);if(a!=Tour.current_page){Tour.load(a)}}};var Help={toggle_more_help:false,search_complete:function(b){$("hide_on_search").hide();if(Help.toggle_more_help){$("morehelp").show()}var a=_("Search results for '%(search_query)s'").format({search_query:b.escapeHTML()});$("search-results-title").update(a);$("search-results-container").show()},search_empty:function(){if(Help.toggle_more_help){$("morehelp").hide()}$("hide_on_search").show();$("search-results-container").hide()},show_os:function(b,c,a){c=$(c);$$(".os-filter").invoke("removeClassName","selected");c.addClassName("selected");$$(".help-os-section").invoke("hide");$$(".help-os-"+a).invoke("show");Event.stop(b)},vote:function(a,b){new Ajax.DBRequest("/help/"+a+"/vote/"+b);new Effect.Fade("help-vote-cont");Notify.ServerSuccess(_("Thanks for your feedback!"))}};var AccountExtras={prices:{},prices_value:{},watch_id:0,watch:function(){if(!AccountExtras.watch_id){AccountExtras.watch_id=setInterval(AccountExtras.update_prices,200)}},show_detail:function(a,d,b){var c=_("What is %(feature_name)s?").format({feature_name:a});Modal.icon_show(b,c,$(d+"-modal"),{},false);return false},register_price:function(e,a,d,c,b){AccountExtras.prices[e]=[a,d];AccountExtras.prices_value[e]=[c,b]},update_prices:function(){var f=$("yearly").checked;var d=f?1:0;var a=f?_("year"):_("month");var b=0;for(var e in AccountExtras.prices){if(AccountExtras.prices.hasOwnProperty(e)){$(e+"-price").update(AccountExtras.prices[e][d]);$(e+"-priceperiod").update(a)}if(AccountExtras.prices_value.hasOwnProperty(e)){if($(e).checked){var c=AccountExtras.prices_value[e][d];b+=parseFloat(c)}}}$(document).fire("widget:update_price",{price:b,period:a})}};var DowngradeReasons={reasons:{},addReason:function(a,b){DowngradeReasons.reasons[a]=b},change:function(d,b){d=parseInt(d,10);var a=$(b);assert(a,"Couldn't find container for DowngradeReason");if(DowngradeReasons.reasons[d]){a.show();var c=Sprite.make("information",{});c.addClassName("text-img");a.update(c);a.insert(DowngradeReasons.reasons[d])}else{a.hide()}}};var Restore={next:function(a,d){d=$(d);var b=$$("ul.selected")[0];var c=b.next("ul");c.addClassName("selected");b.removeClassName("selected");if(c.next("ul")){Restore.show_next_link()}else{Restore.hide_next_link()}Restore.show_prev_link();Restore.inc_page(1)},prev:function(a,d){d=$(d);var b=$$("ul.selected")[0];var c=b.previous("ul");c.addClassName("selected");b.removeClassName("selected");if(c.previous("ul")){Restore.show_prev_link()}else{Restore.hide_prev_link()}Restore.show_next_link();Restore.inc_page(-1)},inc_page:function(c){var b=parseInt($("page-num").innerHTML,10);var a=b+c;$("page-num").update(a)},hide_next_link:function(){$("next-page").update()},show_next_link:function(){var b=new Element("a",{href:"#",onclick:"Restore.next(event, this); return false;"});b.update(_("Next")+" &raquo;");$("next-page").update(b)},show_prev_link:function(){var b=new Element("a",{href:"#",onclick:"Restore.prev(event, this); return false;"});b.update("&laquo; "+_("Prev"));$("prev-page").update(b)},hide_prev_link:function(){$("prev-page").update()}};var GenericFile=Class.create({initialize:function(a,b,c){assert(a&&a.length,"MISSING FILENAME");assert(c,"MISSING ACTIONS");this.filename=a;this.path=b;this.where=Util.urlquote(b);this.actions=c},attach_div:function(a){this.div=a;a.file=this},highlight:function(){this.highlighted=true;this.div.addClassName("hover");if(!this.selected){this.add_arrow()}},dehighlight:function(){this.highlighted=false;this.div.removeClassName("hover");if(!this.selected){this.remove_arrow()}},select:function(){this.selected=true;this.div.addClassName("selected");this.add_arrow()},deselect:function(){this.selected=false;this.div.removeClassName("selected");this.remove_arrow()},add_arrow:function(){var a=this.div.down(".file-arrow");if(!a){a=Sprite.make("big-dropdown");a.addClassName("file-arrow");this.div.appendChild(a)}},remove_arrow:function(){var a=this.div.down(".file-arrow");if(a){a.remove()}},href:function(){return false}});var APIApp=Class.create(GenericFile,{initialize:function($super,c,f,b,a,e,d){$super(c,"",d);this.name=c;this.name_key=f;this.app_id=b;this.status=a;this.directory_status=e}});var TokenFile=Class.create(GenericFile,{initialize:function($super,a,e,d,c,b,g,f){$super(a,d,f);this.tkey=c;this.is_dir=b;this.name_sort=e;this.created=g}});var SharedFolder=Class.create(GenericFile,{initialize:function($super,b,a,e,g,f,c,h,d){$super(a,g,d);this.ns_id=b;this.filename_key=e;this.modified=f;this.active=c;this.used=h},to_active:function(){this.active=true},to_inactive:function(){this.active=false}});var BrowseController=Class.create({initialize:function(e,d,a,c){var b=$(e);assert(b,e+" is missing...");this.container=b;this.files=d;this.file_selector=a;this.options=c||{};this.single_select=true;this.selected=[];this.attach_divs();if(!this.options.dont_listen){this.listen()}},attach_divs:function(){var c=this.container.select(this.file_selector);assert(c.length==this.files.length,"div to file mismatch");for(var b=0;b<this.files.length;b+=1){var a=this.files[b];a.attach_div(c[b])}},listen:function(){var a=this;this.container.observe("mouseover",(function(c){var b=Util.resolve_target(c.target,this.file_selector);if(b){this.over(b.file)}}).bindAsEventListener(a));this.container.observe("mouseout",(function(c){var b=Util.resolve_target(c.target,this.file_selector);if(b){this.out(b.file)}}).bindAsEventListener(a));this.container.observe("mousedown",(function(c){Event.stop(c);var b=Util.resolve_target(c.target,this.file_selector);if(b){this.down(b.file)}}).bindAsEventListener(a));this.container.observe("mouseup",(function(c){Event.stop(c);var b=Util.resolve_target(c.target,this.file_selector);if(b){this.up(b.file)}}).bindAsEventListener(a));this.container.observe("click",(function(c){if($(c.target).hasClassName("dontkill")){return}Event.stop(c);var b=Util.resolve_target(c.target,this.file_selector);if(b){this.click(b.file)}}).bindAsEventListener(a));$(document.body).observe("click",(function(b){this.clear_selected()}).bindAsEventListener(a));this.container.oncontextmenu=Browse.onContext},click:function(a){},over:function(a){if(this.options.disable_dropdown){return}if(this.clear){clearTimeout(this.clear)}if(this.highlighted){if(this.highlighted==a){return}this.highlighted.dehighlight();delete this.highlighted}a.highlight();this.highlighted=a},out:function(a){if(this.options.disable_dropdown){return}this.clear=setTimeout((function(){this.highlighted.dehighlight();delete this.highlighted}).bind(this),100)},down:function(a){if(this.options.disable_dropdown){return}if(this.single_select){this.clear_selected()}a.select();this.selected.push(a)},up:function(a){if(this.selected.length){this.show_dropdown(this.selected[0])}},show_dropdown:function(a){var d=new Element("div",{id:"dropdown"});var c=new Element("ul",{"class":"dropdown dropdown-lite note"});var b=this;$A(a.actions).each(function(e){c.insert(b.generate_li(e,a))});d.insert(c);document.body.appendChild(d);d.absolutize();d.style.zIndex=1001;d.clonePosition(a.div,{offsetTop:a.div.getHeight()-1,offsetLeft:a.div.getWidth()-d.getWidth()-(Util.ie8?1:0),setWidth:false})},generate_li:function(g,f){assert(BrowseActions.option_dict[g],"Couldn't find li action '"+g+"' for where '"+f.filename+"'");var e=BrowseActions.option_dict[g];var b=new Element("li");var d=Sprite.make(e.icon,{"class":"icon_no_hover"});var j=Sprite.make(e.icon+"_blue",{"class":"icon_hover"});var h;if(typeof(e.text)=="function"){h=e.text()}else{h=e.text}var c=new Element("a").update(d).insert(j).insert(h);c.addClassName("background-icon");HoverIconSwap.register(c);c.target="_top";c.observe("mouseup",(function(a){e.onclick.call(f,a);BrowseActions.hide_dropdown()}).bindAsEventListener(f));b.update(c);return b},clear_selected:function(){for(var c=0,a=this.selected.length;c<a;c+=1){var b=this.selected[c];b.deselect()}this.selected=[];BrowseActions.hide_dropdown()},sort:function(a,b){this.files=this.files.sort_by_key(function(c){return c[a]},b);this.render()},find_file:function(d){d=decodeURI(d);for(var c=0,a=this.files.length;c<a;c+=1){var b=this.files[c];if(decodeURI(b.where)==d){return b}}},remove:function(a){this.files.removeItem(a);a.div.remove()},remove_by_path:function(b){var a=this.find_file(b);if(a){this.remove(a)}else{assert(false,"Couldn't find file for"+b)}},render:function(){var c=0;for(var b=0,a=this.files.length;b<a;b+=1){if(this.files[b].visible!==false){this.files[b].div.style.display="";this.container.appendChild(this.files[b].div);c+=1}else{$("grave-yard").appendChild(this.files[b].div)}}if(this.options.after_render){this.options.after_render(c)}},filter:function(d){d=d.toLowerCase();for(var c=0,a=this.files.length;c<a;c+=1){var b=this.files[c];if(d=="all"||b.div.hasClassName(d)){b.visible=true}else{b.visible=false}}this.render()}});var SharedFolderController=Class.create(BrowseController,{render:function(){var d=0;for(var b=0,a=this.files.length;b<a;b+=1){if(this.files[b].visible!==false&&(this.files[b].active||this.include_inactive)){this.files[b].div.style.display="";this.container.appendChild(this.files[b].div);d+=1}else{$("grave-yard").appendChild(this.files[b].div)}}var c=$("missing-active");if(d){c.hide()}else{c.show()}return d},toggle_deleted:function(){this.include_inactive=!this.include_inactive;this.render()},convert_to_inactive:function(l){assert(l,"SFC missing path");var a=this.find_file(l);if(!a){window.location.reload()}var g=a.div.down(".sprite");Sprite.replace(g,"folder_user","folder_user_gray");var h=a.div.down("a");var b=h.up("td");var j=h.innerHTML;h.remove();b.innerHTML=j+b.innerHTML;var c=new Element("a",{href:"#"});c.observe("click",function(m){Event.stop(m);Sharing.rejoin(l,a.ns_id)});c.update("Rejoin");c.addClassName("dontkill");var e=new Element("a",{href:"#"});e.observe("click",function(m){Event.stop(m);Sharing.ignore(l,a.ns_id)});e.update("Remove");e.addClassName("dontkill");var f=document.createDocumentFragment();f.appendChild(c);var d=document.createTextNode(" · ");f.appendChild(d);f.appendChild(e);var k=a.div.down("td.options");k.update();k.appendChild(f);a.active=false;this.render()},convert_to_active:function(h,b){assert(h,"SFC to_active missing path");var a=this.find_file(h);if(!a){window.location.reload()}a.path=b;a.where=Util.urlquote(b);var f=a.div.down(".sprite");Sprite.replace(f,"folder_user_gray","folder_user");var g=new Element("a",{href:"/home"+a.where});g.addClassName("dontkill sf-filename");var c=a.div.down(".foldername");var d=c.down(".members-list");if(d){d.remove()}g.innerHTML=c.innerHTML;c.update(g);if(d){c.appendChild(d)}var j=a.div.down("td.options");var e=new Element("a",{href:"#"});e.update("Options");e.observe("click",function(k){Event.stop(k);Sharing.get_sharing_options(a.where)});j.update(e);a.active=true;this.render()}});var SortController=Class.create({initialize:function(b){this.container=$(b);this.links=this.container.select(".sort_option");var a=this;this.links.each(function(c){c.observe("click",function(){a.click(this)});c.observe("mouseenter",function(){a.over(this)});c.observe("mouseleave",function(){a.out(this)})})},click:function(b){BrowseActions.hide_dropdown();this.container.select(".sort-tick").invoke("remove");this.links.each(function(c){if(c!=b){c.sorted=0;c.removeClassName("selected")}});var a;if(!b.sorted){a=Sprite.make("sort-downtick-on")}else{a=Sprite.make("sort-uptick-on")}a.addClassName("sort-tick");b.addClassName("selected");b.appendChild(a)},over:function(b){b.addClassName("over");if(b.hasClassName("selected")){var a=b.down(".sort-tick");assert(a,"Missing tick");if(a.hasClassName("s_sort-downtick-off")){Sprite.replace(a,"sort-downtick-off","sort-downtick-on")}else{if(a.hasClassName("s_sort-uptick-off")){Sprite.replace(a,"sort-uptick-off","sort-uptick-on")}}}},out:function(b){b.removeClassName("over");if(b.hasClassName("selected")){var a=b.down(".sort-tick");assert(a,"Missing tick");if(a.hasClassName("s_sort-downtick-on")){Sprite.replace(a,"sort-downtick-on","sort-downtick-off")}else{if(a.hasClassName("s_sort-uptick-on")){Sprite.replace(a,"sort-uptick-on","sort-uptick-off")}}}}});var TabController=Class.create({initialize:function(c,b){var a=$(c);assert(a,c+" is missing.");this.container=a;this.options={killEvent:true};Object.extend(this.options,b);this.listen()},listen:function(){var a=this;this.container.select("a").each(function(b){assert(b.id&&b.id.length>0,"Element is missing an id");b.observe("click",(function(c){this.click(c,Util.resolve_target(c.target,"a"))}).bindAsEventListener(a))})},click:function(a,b){if(this.options.killEvent){Event.stop(a)}this.toggle(b)},toggle:function(a){var b=this.container.down("a.selected");if(b){var d=$(b.id+"-content");if(d){d.hide()}}this.container.select(".selected").invoke("removeClassName","selected");a.addClassName("selected");var c=$(a.id+"-content");if(c){c.show()}if(this.options.onTabChange){this.options.onTabChange(a,b)}if(this.options.hash_prefix){HashRouter.set_hash(this.options.hash_prefix,a.id)}}});var Student={show_domain_modal:function(){$("request_email").value=$F("student_email");$("request_desc").value="";Modal.icon_show("page_white_edit",_("Add your school"),$("domain-request-modal"))}};var EmailVerification={EMAIL_SENT_EVT:"db:verification_email_sent",send_email:function(){new Ajax.DBRequest("/sendverifyemail",{onSuccess:function(){$(document.body).fire(EmailVerification.EMAIL_SENT_EVT)}})},setup:function(){document.observe("dom:loaded",function(){$("send-email-link").observe("click",function(a){a.preventDefault();EmailVerification.send_email()});$(document.body).observe(EmailVerification.EMAIL_SENT_EVT,function(){$("pre-resend").hide();$("post-resend").show();$("pre-resend-header").hide();$("post-resend-header").show()})})}};function DBPhoto(a){a.preloaded={};a.preload=function(b){if(a.preloaded[b]){return}b=b||"l";assert(b in a,"Photo doesn't have attr "+b);Util.preload_image(a[b]);a.preloaded[b]=true};a.load_thumb=function(b){b.src=a.thumbnail};return a}var DBGallery={size:"large",index:0,playing:false,preloaded:false,thumb_width:64,thumb_margin:4,low_opacity:0.6,photos:[],set_url_hash:true,container_id:"db_gallery_master_container",add_photos:function(a){a.each(function(b){DBGallery.photos.push(DBPhoto(b))})},set_hash:function(){if(DBGallery.set_url_hash){HashRouter.set_hash.apply(this,$A(arguments))}},observe:function(){Event.observe(document.onresize?document:window,"resize",DBGallery.resize);Event.observe(document.body,"mousewheel",DBGallery.wheel);Event.observe(document.body,"DOMMouseScroll",DBGallery.wheel);document.observe("keydown",DBGallery.key)},unobserve:function(){Event.stopObserving(document.onresize?document:window,"resize",DBGallery.resize);Event.stopObserving(document.body,"mousewheel",DBGallery.wheel);Event.stopObserving(document.body,"DOMMouseScroll",DBGallery.wheel);document.stopObserving("keydown",DBGallery.key)},resize:function(){var a=$("gallery_main_cont"),d=document.viewport.getDimensions();a.style.height=d.height-99+"px";var c=$("gallery_main_photo");var b=d.height-99-10;c.style.maxHeight=Math.max(b,300)+"px";c.style.maxWidth=Math.max(d.width,400)+"px"},key:function(b){var a=BrowseKeys.getKey(b);switch(a){case 27:DBGallery.hide();break;case 32:DBGallery.playpause();break;case 37:DBGallery.prev();break;case 39:DBGallery.next();break}},wheel:function(a){if(DBGallery.block_wheel){return}DBGallery.block_wheel=1;setTimeout(function(){DBGallery.block_wheel=0},80);var b=0;if(a.wheelDelta){b=a.wheelDelta}else{if(a.detail){b=-a.detail}}if(b>0){DBGallery.prev()}else{DBGallery.next()}},playpause:function(){if(DBGallery.playing){DBGallery.pause()}else{DBGallery.play()}},play:function(){DBGallery.playing=true;DBGallery.interval=setInterval(function(){DBGallery.next(true)},5000);$("gallery_slideshow").update(Sprite.html("white_pause")+_("Pause slideshow"))},pause:function(){DBGallery.playing=false;clearInterval(DBGallery.interval);$("gallery_slideshow").update(Sprite.html("white_play")+_("Play slideshow"))},next:function(a){var b=DBGallery.index+1;if(b==DBGallery.photos.length){return}else{DBGallery.select_photo(b,a)}},prev:function(){if(DBGallery.playing){DBGallery.pause()}var a=DBGallery.index-1;if(a==-1){return}else{DBGallery.select_photo(a)}},select_photo:function(h,l){h=parseInt(h,10);if(!Util.isNumber(h)){return}DBGallery.set_hash("gallery",""+h);if(!l&&DBGallery.playing){DBGallery.pause()}DBGallery.index=h;if(!DBGallery.visible){DBGallery.show(h)}var c=$$("#gallery_thumbs_container img.selected");if(c.length){var b=c[0];b.setOpacity(DBGallery.low_opacity);b.removeClassName("selected")}var f=$$("#gallery_thumbs_container img")[h];assert(f,"Couldn't find img at index");f.setOpacity(1);f.addClassName("selected");DBGallery.render_mainphoto(h);DBGallery.resize();var a=$("gallery_thumbs_container");var g=-1*h*(DBGallery.thumb_width+DBGallery.thumb_margin)-39;if(DBGallery.slide_in){DBGallery.slide_in.cancel()}if(Math.abs(g-parseInt(a.getStyle("margin-left"),10))>1200){a.style.marginLeft=g+"px"}else{DBGallery.slide_in=new Effect.Tween(a,parseInt(a.getStyle("margin-left"),10),g,{duration:0.3},function(j){a.style.marginLeft=j+"px"})}var k=a.select("img");assert(k.length==DBGallery.photos.length,"thumbslength != photoslength");var m=Math.ceil(document.viewport.getDimensions().width/DBGallery.thumb_width);m+=m%2;for(var d=Math.max(0,h-m/2);d<Math.min(DBGallery.photos.length,h+m/2);d+=1){DBGallery.photos[d].load_thumb(k[d])}for(var e=h;e<h+10;e+=1){if(e==DBGallery.photos.length){break}DBGallery.photos[e].preload(DBGallery.size)}},update_container_top:function(a){a=a||$(DBGallery.container_id);if(a){a.style.top=document.viewport.getScrollOffsets()[1]+"px"}},show:function(b){assert(!DBGallery.visible,"Tried to show a gallery when it was already up");if(document.viewport.getDimensions().height>768){DBGallery.size="extralarge"}else{DBGallery.size="large"}DBGallery.visible=true;b=b||DBGallery.index;assert(DBGallery.photos.length,"No photos in the photo gallery");var a=new Element("div",{id:DBGallery.container_id});DBGallery.update_container_top(a);DBGallery.update_top_interval=setInterval(function(){DBGallery.update_container_top()},200);document.body.appendChild(a);DBGallery.observe();DBGallery.render_backdrop(a);DBGallery.render_filmstrip(a);DBGallery.render_submenu(a);DBGallery.render_bottom_menu(b,a)},hide:function(a){if(a){Event.stop(a)}assert(DBGallery.visible,"Tried to hide a gallery when it was already hidden");DBGallery.visible=false;DBGallery.pause();DBGallery.unobserve();DBGallery.hide_backdrop();DBGallery.hide_filmstrip();DBGallery.hide_bottom_menu();DBGallery.hide_mainphoto();$(DBGallery.container_id).remove();DBGallery.set_hash();clearInterval(DBGallery.update_top_interval)},render_backdrop:function(a){var c="body";if(Prototype.Browser.IE){c="html, body"}$$(c).invoke("addClassName","full_no_overflow");var b=new Element("div",{id:"gallery_backdrop"});b.setOpacity(0.8);a.insert(b)},hide_backdrop:function(){$$(".full_no_overflow").invoke("removeClassName","full_no_overflow");$("gallery_backdrop").remove()},render_filmstrip:function(a){var d=new Element("div",{id:"gallery_filmstrip"});var g=document.createDocumentFragment();g.appendChild(d);var h=new Element("div",{id:"gallery_filmstrip_backdrop"});h.setOpacity(0.5);g.appendChild(h);var b=new Element("div",{id:"gallery_thumbs_container"});var e=0;DBGallery.photos.each(function(l){var k=new Element("img",{title:l.filename,src:"/static/images/icons/icon_spacer.gif"});k.setOpacity(DBGallery.low_opacity);k.observe("mouseover",function(m){new Effect.Opacity(k,{to:1,duration:0.1})});k.observe("mouseout",function(m){if(!k.hasClassName("selected")){new Effect.Opacity(k,{to:DBGallery.low_opacity,duration:0.1})}});k.observe("click",(function(m){return function(){DBGallery.select_photo(m)}})(e));b.appendChild(k);e+=1});var c=new Element("div",{id:"gallery_selected_frame"});var f=new Element("a",{id:"gallery_close",href:"#",style:"top: 120px; right: 10px;"});var j=new Element("img",{src:"/static/images/photos_x.png"});f.insert(j);f.observe("click",DBGallery.hide);g.appendChild(f);g.appendChild(c);g.appendChild(b);a.appendChild(g)},render_submenu:function(a){var d=new Element("div",{id:"gallery_sub_menu"});var e=new Element("div",{id:"gallery_index_text"});var c=new Element("div",{id:"gallery_filename_text"});var b=new Element("a",{id:"gallery_slideshow"});b.observe("click",DBGallery.playpause);d.insert(b);d.insert(e);d.insert(c);a.appendChild(d);DBGallery.pause()},render_bottom_menu:function(d,b){var c=new Element("div",{id:"gallery_bottom_menu"});var a=new Element("a",{id:"gallery_full_size"});a.update(Sprite.html("arrow_out_black")+"Full size");var e=new Element("a",{id:"gallery_save"});e.update(Sprite.html("picture_save")+"Save");c.insert(a);c.insert(e);b.appendChild(c)},update_bottom_menu:function(b){var a=DBGallery.photos[b];$("gallery_full_size").href=a.original;$("gallery_save").href=a.original+"?dl_name="+Util.urlquote(a.filename)},hide_bottom_menu:function(){$("gallery_bottom_menu").remove()},hide_filmstrip:function(){$("gallery_filmstrip").remove();$("gallery_filmstrip_backdrop").remove();$("gallery_thumbs_container").remove();$("gallery_selected_frame").remove();$("gallery_close").remove();$("gallery_sub_menu").remove()},render_mainphoto:function(f,b){b=b||$(DBGallery.container_id);var e=DBGallery.photos[f];var c=Util.get_preloaded_image(e[DBGallery.size]);c.id="gallery_main_photo";c.title=e.filename;c.stopObserving("click");c.observe("click",function(k){Event.stop(k);if(e.video_url){DBGallery.pause();$("gallery_main_photo_td").update("");var j=DBGallery.size=="extralarge"?1024:640;Util.embed_flash_video(e.video_url,"gallery_main_photo_td",j,1)}else{DBGallery.next()}});if(!$("gallery_main_cont")){var a=new Element("table",{id:"gallery_main_cont"});a.observe("click",DBGallery.hide);var d=new Element("tbody");a.insert(d);var g=new Element("tr");d.insert(g);var h=new Element("td");h.id="gallery_main_photo_td";g.insert(h);h.insert(c);b.appendChild(a)}else{$("gallery_main_cont").down("td").update(c)}DBGallery.update_sub_menu(f);DBGallery.update_bottom_menu(f)},update_sub_menu:function(a){$("gallery_index_text").update(a+1+" of "+DBGallery.photos.length);$("gallery_filename_text").update(DBGallery.photos[a].filename.escapeHTML())},hide_mainphoto:function(){$("gallery_main_cont").remove()}};var Sort,SortSet,FileSearch,BrowseKeys,BrowseURL,BrowseFile,BrowseActions,Browse;Sort={FILES_BY_NAME:function(b,c){var a=c.dir-b.dir;if(a){return a}return b.filename_ind-c.filename_ind},FILES_BY_KEY:function(c,e){var b=e.dir-c.dir;if(b){return b}var a=c.filename_key;var d=e.filename_key;return a<d?-1:(a>d?1:0)},FILES_BY_SIZE:function(b,c){var a=c.dir-b.dir;if(a){return a}if(b.dir){return Sort.FILES_BY_NAME(b,c)}return b.bytes-c.bytes},FILES_BY_MODIFIED:function(a,d){var c=a.ts;var b=d.ts;return c==b?0:(c>b?1:-1)}};SortSet={sort:function(c,a){BrowseKeys.clear_highlight();c.blur();var b=SortSet.pick(c);Browse.sort(a,!b);return true},pick:function(c){var b=Util.toggle(c.id);var a=$$(".sort_option");a.each(function(d){if(d!=c){Sprite.src(d.down("img"),"downtick-spacer");d.onmouseout=null;d.onmouseover=null;Util.reset_toggle(d.id);d.href=BrowseURL.get_sort_url(d.id,false)}else{var e=b?"up":"down";Sprite.src(d.down("img"),"sort-"+e+"tick-on");d.onmouseout=function(){Sprite.src(d.down("img"),"sort-"+e+"tick-off")};d.onmouseover=function(){Sprite.src(d.down("img"),"sort-"+e+"tick-on")};d.href=BrowseURL.get_sort_url(d.id,b)}});return b},make_url:function(b,a){return b+","+(a?1:0)},last_url:"",url_sort:function(){var a=BrowseURL.get_sort();if(a&&a.length){var b=a.split(",");var c=document.getElementById(b[0]);if(!c){return false}Util.set_next_toggle(c.id,b[1]=="1"?true:false);c.onclick();return true}return false}};FileSearch={last_search:"",MAX_RETURNED:100,searched:{},results:[],result_hash:{},hide_bottom:function(){if(!$$("#left-content .lookatme").length){return}$$(".bottom-menu").invoke("hide")},show_bottom:function(){if(!$$("#left-content .lookatme").length){return}$$(".bottom-menu").invoke("show")},per_page:function(){var b=$("left-content").down(".lookatme");if(!b||b.style.display=="none"){return 10}var a=b.getHeight();if(a>140){return 8}else{return 10}},search:function(d,b){$("filesearchpaging").update();d=d.strip();FileSearch.last_search=d;var c=SuggestionInput.defaulted($("filesearch"));if(d.length<1||c){FileSearch.show_bottom();$("filesearchresults").update();return}var a=FileSearch.search_local(d);if(FileSearch.should_search_server(d)){FileSearch.search_server.defer(d)}else{if(a.length===0){FileSearch.render_empty()}}if(a&&a.length){FileSearch.render(a,b);FileSearch.hide_bottom()}return false},invalidate_cache:function(){FileSearch.searched={};FileSearch.results=[];FileSearch.result_hash={}},search_local:function(h){var e=h.split(/\s+/);var d=[];for(var c=0;c<FileSearch.results.length;c+=1){var g=FileSearch.results[c].filename.toLowerCase();var f=true;for(var b=0,a=e.length;b<a;b+=1){f&=g.indexOf(e[b].toLowerCase())>-1}if(f){d.push(FileSearch.results[c])}}return d},search_server:function(a){FileSearch.searching=true;new Ajax.DBRequest("/search",{parameters:{search_string:a},onSuccess:function(c){FileSearch.searching=false;var b=c.responseText.evalJSON();FileSearch.searched[a]=b.length;if(b&&b.length>0){FileSearch.process_results(b)}FileSearch.search(FileSearch.last_search)}})},process_results:function(b){var d=0;for(var a=0;a<b.length;a+=1){var c=b[a];var e=c.href;if(!FileSearch.result_hash[e]){FileSearch.results.push(c);FileSearch.result_hash[e]=true;d+=1}}},render:function(h,f){h.sort(function(p,o){if(p.filename.length>o.filename.length){return 1}else{if(p.filename.length==o.filename.length){return 0}else{return -1}}});f=f||0;var g=h.slice(f,f+FileSearch.per_page());var l=new Element("ul");for(var j=0;j<g.length;j+=1){l.insert(FileSearch.render_item(g[j]))}var e=FileSearch.advanced_search_link();var b=ungettext("%(number_results)s result for %(search_query)s","%(number_results)s results for %(search_query)s",h.length).format({number_results:h.length+(h.length>=FileSearch.MAX_RETURNED?"+":""),search_query:FileSearch.last_search.escapeHTML().truncate(30)});b+="<br/>"+e;var a=new Element("h6").update(b);$("filesearchresults").update(a);var m=f+FileSearch.per_page()<h.length;var n=f>0;var d=$("filesearchpaging");if(m||n){if(n){var c=new Element("a",{href:"#"});c.update("&laquo; "+_("prev"));c.observe("click",function(o){FileSearch.search(FileSearch.last_search,f-FileSearch.per_page());Event.stop(o)});d.insert(c)}if(m&&n){d.insert(" | ")}if(m){var k=new Element("a",{href:"#"});k.update(_("next")+" &raquo;");k.observe("click",function(o){FileSearch.search(FileSearch.last_search,f+FileSearch.per_page());Event.stop(o)});d.insert(k)}}$("filesearchresults").insert(l)},render_item:function(g){var c=new Element("li");var d=new Element("a");if(g.icon.startsWith("folder")){var b,h;if(g.target_ns){b=g.target_ns;h=""}else{b=g.ns_id!=Constants.root_ns?g.ns_id:"";h=g.path}d.href=BrowseURL.get_path_url(b,Util.urlquote(h));d.observe("click",function(a){Event.stop(a);BrowseURL.set_path_url(b,Util.urlquote(h))})}else{d.href=g.href}var f;var e=g.size?" - "+Util.formatBytes(g.size,2,true):"";d.title=g.fq_path+e;f=Sprite.make(g.icon);f.addClassName("link-img");d.insert(f);new Emstring(g.filename.escapeHTML());d.insert(g.filename.escapeHTML());c.update(d);return c},advanced_search_link:function(){var a='<span style="font-weight:normal;">';a+='(<a href="/advanced_search?submit=y&include_files=y&include_folders=y&all_terms='+Util.urlquote(FileSearch.last_search)+'">'+_("advanced search")+"</a>)";a+="</span>";return a},render_empty:function(){if(!FileSearch.searching){var a=FileSearch.advanced_search_link();var b=_("No results found for '%(search_query)s'").format({search_query:FileSearch.last_search.escapeHTML().truncate(30)});$("filesearchresults").update(new Element("h6",{style:"margin:0 0 2px 0;padding:0;"}).update(b));$("filesearchresults").insert(a)}},should_search_server:function(a){if(FileSearch.searched[a]===undefined){return true}else{return false}},warmup:function(){if(!FileSearch.warm){new Ajax.DBRequest("/search/warmup");FileSearch.warm=true}}};BrowseKeys={init:function(){document.observe("keypress",BrowseKeys.pressed);document.observe("keydown",BrowseKeys.keydown)},getKey:function(b){var a=b.keyCode||b.which||b.charCode;return a},focus_in_input:function(a){return document.activeElement&&["INPUT","TEXTAREA","SELECT"].indexOf(document.activeElement.tagName)!=-1},keydown:function(b){var a=BrowseKeys.getKey(b);if(BrowseKeys.focus_in_input()){if(a==27){document.activeElement.blur()}return}else{if(!document.activeElement){return}}if(a==27){BrowseKeys.hide_chart();Modal.hide()}},pressed_dict:{search:{title:_("Search your files"),key:"/",onPress:function(a){$("filesearch").focus();$(document.body).scrollTo()}},move:{title:_("Move checked files"),key:"m",onPress:function(a,b){if(b.indexOf("move")>-1){BrowseActions.option_dict.move_bulk.onclick(a)}}},check_invert:{title:_("Invert checked files"),key:"i",onPress:function(){for(var a=0;a<Browse.files.length;a+=1){var b=Browse.files[a];if(b.checked){b.decheck()}else{b.check()}}}},check_deleted:{title:_("Check deleted files"),key:"p",onPress:function(){for(var a=0;a<Browse.files.length;a+=1){var b=Browse.files[a];if(b.bytes=="-1"&&!b.checked){b.check()}else{if(b.bytes!="-1"&&b.checked){b.decheck()}}}}},check_all:{title:_("Check all files"),key:"a",onPress:function(){Browse.check_all()}},check_none:{title:_("Uncheck all files"),key:"n",onPress:function(){Browse.decheck_all()}},show_del:{title:_("Show/hide deleted files"),key:"d",onPress:function(){window.location.href=BrowseURL.get_del_url(BrowseURL.get_del()!=1)}},help:{title:_("Show keyboard shorcuts"),key:"?",shift:true,onPress:function(){BrowseKeys.toggle_chart()}},copy:{title:_("Copy checked files"),key:"c",onPress:function(a,b){if(b.indexOf("copy")>-1){BrowseActions.option_dict.copy_bulk.onclick(a)}}},up_dir:{title:_("Up a directory"),key:"u",onPress:function(){if(!Browse.reloading){var b,a;if(Browse.is_share){b="";a=Util.parentDir(Util.normPath(Browse.parent_ns_path))}else{b=Browse.current_nsid;a=Util.parentDir(Util.normPath(Browse.current_path))}if(Browse.current_path!=a||Browse.current_nsid!=b){BrowseURL.set_path_url(b,a)}}}},highlight_up:{title:_("Highlight previous file"),key:"k",onPress:function(){BrowseKeys.highlight_up()}},highlight_top:{title:_("Highlight first file"),key:"k",shift:true,onPress:function(){if(Browse.highlight_index>=0){Browse.files[Browse.highlight_index].dehighlight()}Browse.highlight_index=0;Browse.files[0].highlight();$("header").scrollTo()}},highlight_down:{title:_("Highlight next file"),key:"j",onPress:function(){BrowseKeys.highlight_down()}},highlight_bottom:{title:_("Highlight last file"),key:"j",shift:true,onPress:function(){if(Browse.highlight_index>=0){Browse.files[Browse.highlight_index].dehighlight()}Browse.highlight_index=Browse.files.length-1;Browse.files[Browse.highlight_index].highlight();$("footer").scrollTo()}},check_file:{title:_("Check highlighted file"),key:" ",shift:"optional",stop_event:false,onPress:function(b){if(Browse.highlight_index>=0){var a=Browse.files[Browse.highlight_index];a.click_check(b);Event.stop(b)}}},open_file:{title:_("Open highlighted file"),key:"o",onPress:function(){if(Browse.highlight_index>=0&&!Browse.reloading){var b=Browse.files[Browse.highlight_index];var a;if(b.dir){a="#"+b.where}else{a=b.div.down(".details-filename a").href}window.location=a}}}},pressed:function(g){var f=BrowseKeys.getKey(g);var c=String.fromCharCode(f).toLowerCase();var a=g.shiftKey;if(!document.activeElement||BrowseKeys.focus_in_input()){return}var h=BrowseActions.availMoreActions().join(" ");var b;for(b in BrowseKeys.pressed_dict){if(BrowseKeys.pressed_dict.hasOwnProperty(b)){var d=BrowseKeys.pressed_dict[b];if(d.key==c&&((d.shift||false)==a||d.shift=="optional")){d.onPress(g,h);if(d.stop_event!==false){Event.stop(g)}break}}}},clear_highlight:function(){if(Browse.highlight_index>=0&&Browse.highlight_index<Browse.files.length){Browse.files[Browse.highlight_index].dehighlight()}Browse.highlight_index=-1},highlight_up:function(){if(!Browse.files.length){return}if(Browse.highlight_index>0&&Browse.highlight_index<Browse.files.length){Browse.files[Browse.highlight_index].dehighlight()}if(Browse.highlight_index<0){Browse.highlight_index=Browse.files.length-1}else{if(Browse.highlight_index===0){return}else{Browse.highlight_index=Browse.highlight_index-1}}Browse.files[Browse.highlight_index].highlight()},highlight_down:function(){if(!Browse.files.length){return}if(Browse.highlight_index>=0&&Browse.highlight_index<Browse.files.length){Browse.files[Browse.highlight_index].dehighlight()}if(Browse.highlight_index<0){Browse.highlight_index=0}else{if(Browse.highlight_index==Browse.files.length-1){Browse.highlight_index=Browse.files.length-1}else{Browse.highlight_index=Browse.highlight_index+1}}Browse.files[Browse.highlight_index].highlight()},toggle_chart:function(){if($("keys-chart").style.display=="none"){BrowseKeys.show_chart()}else{BrowseKeys.hide_chart()}},show_chart:function(){var a=$("keys-chart");a.absolutize();a.clonePosition($("browse-files"));var b=$("browse-files").viewportOffset()[1];if(b<0){a.style.top=parseInt(a.style.top,10)-$("browse-files").viewportOffset()[1]+10+"px"}a.setOpacity(0.85);a.show()},hide_chart:function(){$("keys-chart").hide()}};BrowseURL={PATH:0,SORT:1,DEL:2,NS:3,ALL_FIELDS:["PATH","SORT","DEL","NS"],get_sort:function(){return Util.url_hash().split(":")[BrowseURL.SORT]},get_path:function(){return Util.url_hash().split(":")[BrowseURL.PATH]},get_del:function(){return Util.url_hash().split(":")[BrowseURL.DEL]},get_ns:function(){return Util.url_hash().split(":")[BrowseURL.NS]},make_url:function(b){var c=Util.url_hash().split(":");for(var a in b){if(b.hasOwnProperty(a)){c[BrowseURL[a]]=Util.falsy_to_empty(b[a])}}return"#"+c.join(":")},clean_url_hash:function(){var g=Util.url_hash().split(":");var h={};for(var c=0,a=BrowseURL.ALL_FIELDS.length;c<a;c++){var e=BrowseURL.ALL_FIELDS[c];h[e]=g[BrowseURL[e]]}var b=BrowseURL.make_url(h);return b.substr(1)},get_sort_url:function(b,a){return BrowseURL.make_url({SORT:b+","+(a?1:0)})},get_path_url:function(a,c){a=Util.falsy_to_empty(a);var b=BrowseURL.make_url({PATH:Util.normPath(c),NS:a});return b},set_path_url:function(a,d,c){var b=BrowseURL.make_url({PATH:Util.normPath(d),NS:a});if(c){BrowseURL.last_hash=b.substr(1)}if(b.toLowerCase()!="#"+Util.url_hash().toLowerCase()){location.href=b}},get_del_url:function(a){return BrowseURL.make_url({DEL:a?1:0})},check_url:function(){var e=Util.url_hash();if(!e.length&&BrowseURL.last_hash&&BrowseURL.last_hash.length){return}if(BrowseURL.last_hash!=e){var d=e.split(":");var a=BrowseURL.last_hash?BrowseURL.last_hash.split(":"):[];BrowseURL.last_hash=e;if(a.length>BrowseURL.SORT-1&&a[BrowseURL.SORT]!=d[BrowseURL.SORT]){SortSet.url_sort()}var f=Util.normPath(decodeURIComponent(a[BrowseURL.PATH]))!=Util.normPath(decodeURIComponent(d[BrowseURL.PATH]));var b=Util.falsy_to_empty(a[BrowseURL.NS])!=Util.falsy_to_empty(d[BrowseURL.NS]);var c=Util.falsy_to_empty(a[BrowseURL.DEL])!=Util.falsy_to_empty(d[BrowseURL.DEL]);if(!e||f||b||c){Browse.deleted_shown=d[BrowseURL.DEL]=="1"?1:0;Browse.reload(d[BrowseURL.NS],d[BrowseURL.PATH],c||b)}}}};BrowseFile=Class.create({initialize:function(s,j,p,r,o,m,l,f,a,k,c,n,b,q,e,d,h,t,g){this.icon=s;this.caption=r;this.filename=o;this.where=j;this.hash=c;this.href=p;this.size=m!="None"?m:"";this.bytes=l;this.ago=f;this.ts=a;this.selected=false;this.drop_target=b;this.dir=n?1:0;this.is_share=s=="folder_user";this.is_sandbox=s=="folder_star";this.tkey=e;this.target_ns=d;this.main_actions=k.strip().replace("  "," ").split(" ");this.filename_ind=h||0;this.filename_key=t||[];this.sjid=g;Browse.add_file(this,q)},drag_dist:function(a){return Math.abs(this.drag_startPos.x-a.clientX)+Math.abs(this.drag_startPos.y-a.clientY)},render:function(c,e){var d;if(c){d=new Element("div",{"class":Browse.details?"browse-file-box-details":"browse-file-box-iconic"});this.div=d;var a=this.bytes!="-1"?"":" deleted_file_line";var b=e?e:"#";this.div.update(" <div style='position:relative;'><div class='details-check'><img class='sprite s_checkbox checkbox' src='/static/images/icons/icon_spacer.gif' align='absbottom'></div> <div class='details-icon'><a><img class='sprite s_"+this.icon+"' src='/static/images/icons/icon_spacer.gif' align='absbottom'></a></div><div class='details-filename"+a+"'><a href='"+b+"'>"+this.caption+"</a></div> <div class='details-size'>"+(this.size||"&nbsp;")+"</div> <div class='details-modified'>"+this.ago+"</div> <div class='dropdown-arrow' style='visibility: hidden;'><img src='/static/images/big-dropdown.gif'></div><br class='clear'/><div class='miniscule-text' style='line-height: 1px'>&nbsp;</div></div>");(function(){DBCheckbox.register(this.div.down("img"))}).bind(this).defer()}else{if(!Browse.file_div_cache){Browse.file_div_cache=Browse.file_div.childElements()}d=Browse.file_div_cache[Browse.files.length-(Browse.has_parent_link?0:1)];this.div=d}d.file=this;return d},tooltip:function(){if(this.caption.unescapeHTML()!=this.filename&&this.filename.length){Tooltip.show(this.a,this.filename)}},rename:function(d,e,h,c){var f=FileOps.filename(encodeURIComponent(d));this.caption=f.snippet();this.filename=f;this.where=Util.urlquote(d);this.hash=h;this.filename_key=c;this.ago=e?"":_("just now");if(e){this.href=BrowseURL.get_path_url(this.target_ns,this.target_ns?"":this.where)}else{var g=this.href.split("/");g[g.length-1]=Util.urlquote(f)+"?w="+h;this.href=g.join("/")}var b=this.div.down(".details-filename").down("a");b.update(this.caption);b.title=this.filename;b.href=this.href;if(this.main_actions.contains("view_token")){this.main_actions.removeItem("view_token");this.main_actions.push("token_share")}},move:function(a){new Effect.Fade(this.div,{afterFinish:a})},del:function(c){if(!Browse.deleted_shown){new Effect.Fade(this.div,{afterFinish:c});Browse.emptyCheck()}else{this.size="None";this.bytes=-1;this.ago=this.dir?"":_("just now");this.main_actions=this.dir?["full_restore"]:"undelete purge".split(" ");var b=this.div.down("a");b.addClassName("deleted_file_line");if(this.dir){Sprite.src(this.div.down("img"),"folder_gray")}}},purge:function(a){new Effect.Fade(this.div,{afterFinish:a});Browse.emptyCheck()},setOpacity:function(){if(this.size=="None"){this.div.down("div").down("img").setOpacity(0.5)}},cachePos:function(){if(!this.div){return}if(!this.box){this.box={}}var a=Browse.viewportOffset();if(!a){return}this.box.left=a.left+this.div.offsetLeft;this.box.top=a.top+this.div.offsetTop;if(!this.box.width){this.box.width=this.div.getWidth();this.box.height=this.div.getHeight()}},overlaps:function(a){return Util.boxOnBox(a,this.box)},over:function(){if(Browse.dragging){return}if(!this.editing&&this.filename&&(!this.checked||(this.checked&&Browse.checked_files.length==1))){this.dropdown_arrow(true)}if(!this.selected){this.div.addClassName("file-highlight")}},out:function(a){if(!this.div){return}if(a.toElement){if(a.toElement.className=="tooltip"||$(a.toElement)==this.div||$(a.toElement).descendantOf(this.div)){return}}if(!this.selected){this.div.removeClassName("file-highlight");if(this.filename){this.dropdown_arrow(false)}}else{this.div.removeClassName("file-selected-highlight")}},down:function(a){if(this.editing||!this.filename){return}if(a){Event.stop(a)}this.click_select(a);Browse.find_icons();BrowseActions.kill_dropdowns();this.drag_startPos={x:a.clientX,y:a.clientY};this.drag_watch=this.drag.bindAsEventListener(this);this.up_watch=this.up.bindAsEventListener(this);Event.observe(document,"mousemove",this.drag_watch);Event.observe(document,"mouseup",this.up_watch)},show_dropdown:function(){BrowseActions.kill_dropdowns();if(!this.checked||Browse.checked_files.length==1&&this.checked){this.dropdown_arrow(true);BrowseActions.dropdown(this,true)}else{if(!Browse.is_rewind){BrowseActions.showMore()}}},down_dropdown:function(a){this.click_select(a);this.show_dropdown(true)},up:function(a){if(this.editing||!this.filename){return}if(!Browse.dragging){this.deselect()}Event.stop(a);var b=this.drag_end(a);if(a.target.tagName=="IMG"&&$(a.target).hasClassName("checkbox")){this.click_check(a)}else{if(!b&&(a.target.tagName!="A"&&a.target.parentNode&&a.target.parentNode.tagName!="A"||Util.is_right_click(a))){this.click_select(a);this.show_dropdown()}}Event.stopObserving(document,"mousemove",this.drag_watch);Event.stopObserving(document,"mouseup",this.up_watch)},click_check:function(c){Browse.deselect_all();var a=$("dropdown");if(a){Util.yank(a)}var b=c.shiftKey;if(b&&Browse.last_checked){if(this.checked){Browse.uncheck_range(Browse.files.indexOf(Browse.last_checked),Browse.files.indexOf(this))}else{Browse.check_range(Browse.files.indexOf(Browse.last_checked),Browse.files.indexOf(this))}}else{if(!this.checked){this.check()}else{if(this.checked){this.decheck()}}}Browse.last_checked=this},click_select:function(a){Event.stop(a);if(false&&a.shiftKey&&a.ctrlKey){Browse.select_range_to(this,true)}else{if(false&&a.shiftKey){Browse.select_range_to(this)}else{if(false&&a.ctrlKey){this.toggle();this.over()}else{if(!this.selected){Browse.deselect_all();this.select()}}}}if(false&&(!a.shiftKey||a.ctrlKey)){Browse.shift_start=this}},drag:function(b){Event.stop(b);var a=this.drag_dist(b);if(!Browse.allow_drag){return}if(!Browse.dragging&&a>=10){this.drag_start(b)}if(a<10){return}Browse.dragging=true;Browse.draw_clones(b);Browse.highlight_drop_target(b)},drag_start:function(b){if(Browse.is_rewind){return}Browse.dragging=true;if(Browse.checked_files.length>0&&Browse.checked_files.indexOf(this)==-1){Browse.hide_checked()}else{if(Browse.checked_files.indexOf(this)>-1){for(var a=0;a<Browse.checked_files.length;a+=1){Browse.checked_files[a].select()}}}this.select();Browse.clone_selected(b);Util.noHorizScroll()},drag_end:function(d){if(!Browse.dragging){return false}Browse.dragging=false;var c=Browse.find_drop_target(d);Util.allowHorizScroll();var g=false;if(c){c.drop_lowlight();var b=Browse.can_drop(c);if(b!==true){Notify.ServerError(b)}else{if(c!=Browse.down_file){assert(Browse.selected_files.length>0,"Tried to move 0 files by dragging");var a=c;FileOps.show_move_confirm(Browse.selected_files.slice(),decodeURIComponent(a.where));BrowseActions.kill_dropdowns();Browse.down_file=null;g=true}}}if(Browse.hidden_checked_files){Browse.restore_checked()}Browse.deselect_all();Browse.kill_clones(d);Browse.down_file=null;return g},highlight:function(){var a=document.viewport.getHeight();var c=this.div.viewportOffset();if(c.top<0){this.div.scrollIntoView(true)}else{if(c.top+this.div.getHeight()>a){this.div.scrollIntoView(false)}}var b=$("highlight-arrow");b.show();b.clonePosition(this.div,{setWidth:false,setHeight:false,offsetLeft:-17,offsetTop:6})},dehighlight:function(){$("highlight-arrow").hide()},check:function(e){if(this.editing){return false}var d=this.div;assert(!this.checked,"Tried to check a file that was already checked.");this.checked=true;this.checkbox=$(this.checkbox||Util.childElementByIndexPath(d,[0,0,0]));DBCheckbox.select(this.checkbox);d.addClassName("file-select");Browse.checked_files.push(this);e=e||Browse.files.indexOf(this);var c=Browse.files;var b=c[e-1];var a=c[e+1];if(b&&b.checked){d.style.borderWidth="0 1px 1px 1px";d.style.paddingTop="4px"}if(a&&a.checked){a.div.style.borderWidth="0 1px 1px 1px";a.div.style.paddingTop="4px"}},decheck:function(d,b){if(this.editing){return false}assert(this.checked,"Tried to decheck a file that was not checked.");this.checked=false;var c=Browse.global_checkbox();if(c.selected){DBCheckbox.deselect(c)}DBCheckbox.deselect(this.checkbox);if(!b){d=d||Browse.checked_files.indexOf(this);Browse.checked_files.remove(d)}var f=this.div;Util.removeClassName(this.div,"file-select");Util.removeClassName(this.div,"file-highlight");this.deselect();f.style.borderWidth="1px";f.style.paddingTop="";if(!b){var e=Browse.files.indexOf(this);var a=Browse.files[e+1];if(a&&a.checked){a.div.style.borderWidth="1px";a.div.style.paddingTop=""}}},select:function(){if(!this.selected){this.selected=true;this.div.addClassName("file-select");Browse.selected_files.push(this)}},deselect:function(){if(this.selected){Browse.selected_files.remove(Browse.selected_files.indexOf(this));this.selected=false;if(!this.checked){this.div.removeClassName("file-select");this.div.removeClassName("file-highlight");this.div.removeClassName("file-selected-highlight");this.dropdown_arrow(false)}}},toggle:function(a){if(a===undefined){a=this.selected}if(a){return this.deselect()}else{return this.select()}},set:function(a){return this.toggle(!a)},drop_highlight:function(){this.div.addClassName("drop-highlight")},drop_highlight_bad:function(){this.div.addClassName("drop-highlight-bad")},drop_lowlight:function(){this.div.removeClassName("drop-highlight");this.div.removeClassName("drop-highlight-bad")},dropdown_arrow:function(a){if(this.div){if(a){if(this.div.select(".dropdown-arrow").length){this.div.select(".dropdown-arrow")[0].style.visibility="visible"}}else{if(this.div.select(".dropdown-arrow").length){this.div.select(".dropdown-arrow")[0].style.visibility="hidden"}}}},edit:function(g){if(Browse.in_placer){Browse.in_placer.file.editing=false;Browse.in_placer.editor.dispose();Browse.in_placer.name.innerHTML=Browse.in_placer.name_old_innerHTML;if(Browse.in_placer.new_folder){Browse.in_placer.file.del(Browse.show_message)}Browse.in_placer=null}Browse.selectable();this.editing=true;var b=this.div.down(".details-filename").down("a");var e=b.innerHTML;b.innerHTML=this.filename.escapeHTML();var f=g?"new":"rename";var a=g?_("Create"):_("Rename");var d=this.dir?"yes":"";var c=new Ajax.InPlaceEditor(b,"/cmd/"+f+Util.normalize(this.where)+"?long_running",{okControl:"link",cancelControl:"link",htmlResponse:false,highlightColor:"#ddf0ff",highlightEndColor:"#fafdff",okText:a,cancelText:_("Cancel"),clickToEditText:"",cols:25,callback:function(h,j){j=j.gsub("/",":");return{to_path:j,t:Constants.TOKEN,folder:d}},ajaxOptions:{method:"post"},onComplete:(function(q){if(q){TranslationSuggest.update_i18n_messages_from_req(q);var m=q.status.toString().charAt(0);if(m=="5"||m=="4"){return}}Browse.unselectable();c.dispose();this.editing=false;Browse.in_placer=null;if(!q){if(g){this.purge(Browse.show_message)}else{b.innerHTML=e}return}if(q.responseText.indexOf("err:")===0){Notify.ServerError(q.responseText.substr(4));c.dispose();this.editing=false;Browse.in_placer=null;Browse.unselectable();if(g){this.del(Browse.show_message)}else{b.innerHTML=e}}else{var h=q.responseText.evalJSON(true);var j=h.fq_path;var p=h.hash;var n=h.sort_key.evalJSON();if(g){var l=Browse.find_file(Util.urlquote(j));if(l&&l.bytes.toString()=="-1"){l.purge()}}this.rename(j,d,p,n);Browse.resort(this);this.div.scrollTo();if(f=="new"){var o=_("The folder '%(folder_name)s' was created successfully.").format({folder_name:this.filename.snippet().escapeHTML()});Notify.ServerSuccess(o)}else{if(f=="rename"){var k=d?_("Folder renamed to %(new_name)s."):_("File renamed to %(new_name)s.");k=k.format({new_name:this.filename.snippet().escapeHTML()});Notify.ServerSuccess(k)}}TreeView.schedule_reset()}}).bind(this),onFailure:(function(){c.dispose();this.editing=false;Browse.in_placer=null;Browse.unselectable();if(g){this.del(Browse.show_message)}else{b.innerHTML=e}Notify.ServerError()}).bind(this)});c.enterEditMode();Browse.in_placer={file:this,editor:c,new_folder:g,name:b,name_old_innerHTML:e}}});BrowseFile.make_basic=function(b,e,d,c){var a=FileOps.raw_filename(b);return new BrowseFile("",b,Util.urlquote(b),a.snippet(),a,0,0,0,0,e,"",d,0,0,c)};BrowseActions={option_dict:{api_app_edit:{icon:"application_edit",text:_("Edit Settings"),onclick:function(a){Event.stop(a);window.location.href="/developers/edit?id="+this.app_id}},api_app_remove:{icon:"application_delete",text:_("Remove Application"),onclick:function(a){Apps.show_confirm(a,this.name,this.app_id,"delete_app","delete")}},restore_sjid:{icon:"time",text:_("Restore"),onclick:function(){var a=Browse.find_file(this.where);FileOps.show_confirm_restore_sjids([a])}},restore_sjids:{icon:"time",text:_("Restore selected files"),onclick:function(){if(!Browse.checked_files.length){Notify.ServerError(_("Select some files to restore"));return}FileOps.show_confirm_restore_sjids(Browse.checked_files)}},restore_sandbox:{icon:"folder_star",text:_("Restore app folder"),onclick:function(){var a=decodeURIComponent(this.where).toLowerCase();a=Util.normalize(a);assert(Browse.old_namespaces[a],"Restore missing ns");Apps.restore_sandbox(this.where,Browse.old_namespaces[a])}},sharing_options:{icon:"folder_user",text:_("Shared folder options"),onclick:function(a){Event.stop(a);Sharing.get_sharing_options(this.where)}},token_share_options:{icon:"link",text:_("Get shareable link"),onclick:function(a){Event.stop(a);Modal.show_loading("cog","Loading Share...");SharingModel.get_token(this.where,function(b){SharingModel.show_post_options(b)})}},view_token:{icon:"link",text:_("Get shareable link"),target:"_blank",onclick:function(){AMC.log("site_action",{action:"shmodel_create",webserver:Constants.WEBSERVER});var a="/s/"+this.tkey;if(!this.is_dir){a+="/"+Util.urlquote(FileOps.filename(this.where))}window.location.href=a}},remove_share:{icon:"link_delete",text:_("Disable shareable link"),onclick:function(){SharingModel.confirm_remove(FileOps.filename(this.where),this.tkey,false,window.LinkController)}},share_here:{icon:"folder_user",text:_("Invite to folder"),onclick:function(a){Sharing.show_share_existing_modal(Browse.current_fqpath());Event.stop(a)}},share_new:{icon:"folder_user",text:_("Share a folder"),onclick:function(a){Sharing.start_wizard(a);Event.stop(a)}},share:{icon:"folder_user",text:_("Invite to folder"),onclick:function(a){Sharing.show_share_existing_modal(this.where);Event.stop(a)}},share_invite_more:{icon:"group",text:_("Invite more people"),onclick:function(a){Sharing.show_invite_more_modal(this.where);Event.stop(a)}},share_leave:{icon:"folder_user_delete",text:_("Leave shared folder"),onclick:function(a){PAGE_PATH=this.where;Sharing.show_leave_modal(this.where);Event.stop(a)}},share_unshare:{icon:"link_break",text:_("Unshare this folder"),onclick:function(a){PAGE_PATH=this.where;Sharing.show_unshare_modal(this.where);Event.stop(a)}},share_opts_here:{verb:"share",icon:"user_add",text:_("Sharing info")},share_opts:{verb:"share",icon:"user_add",text:_("Sharing info")},revisions:{verb:"revisions",icon:"time_back",text:_("Previous versions")},token_share:{icon:"link",text:_("Get shareable link"),onclick:function(a){Forms.postRequest("/sm/create"+this.where,{},{target:"_blank"})}},undelete:{icon:"basket_remove",text:_("Undelete"),onclick:function(b){Event.stop(b);var a=Browse.find_file(this.where);FileOps.show_undelete(a)}},copy_url:{icon:"world_link",text:_("Copy public link"),public_href:function(){return"http://"+Constants.PUBSERVER+"/u/"+Constants.uid+this.where.substring(7)},onclick:function(a){AMC.log("site_action",{action:"publink_create",webserver:Constants.WEBSERVER});BrowseActions.showCopyPublicUrlModal("http://"+Constants.PUBSERVER+"/u/"+Constants.uid+this.where.substring(7));Event.stop(a)}},download:{onclick:function(){AMC.log("file_action",{action:"download",num_files:1,webserver:Constants.WEBSERVER});window.location.href=Constants.protocol+"://"+Constants.block+"/get"+this.where+this.hash+"&dl=1"},icon:"download_arrow",text:_("Download file")},view:{href:function(){return Constants.protocol+"://"+Constants.block+"/get"+this.where+this.hash},icon:"page_white_magnify",text:_("View file")},zipped_dl:{icon:"page_white_compressed",text:_("Download folder"),onclick:function(b){var a=Browse.find_file(this.where);FileOps.do_bulk_download([a]);Event.stop(b)}},xattr_dl:{icon:"download_arrow",text:_("Download file"),onclick:function(b){var a=Browse.find_file(this.where);FileOps.do_bulk_download([a]);Event.stop(b)}},photos:{href:function(){return"/photos"+this.where.substring(7)},icon:"pictures",text:_("Gallery")},a_photo:{href:function(){return"/photoshow"+this.where.substring(7)},icon:"pictures",text:_("Gallery view")},rejoin:{onclick:function(){var a=decodeURIComponent(this.where).toLowerCase();a=Util.normalize(a);assert(Browse.old_namespaces[a],"Rejoin missing ns");Sharing.rejoin(this.where,Browse.old_namespaces[a])},icon:"folder_user",text:_("Rejoin shared folder")},ignore:{onclick:function(){Sharing.ignore(this.where)},icon:"folder_user_delete",text:_("Permanently remove")},restore:{href:function(){return"/restore"+this.where+"?prev="+encodeURIComponent(location.href)},icon:"time_go",text:_("Restore folder")},full_restore:{href:function(){return"/restore"+this.where+"?prev="+encodeURIComponent(location.href)},icon:"time_back",text:_("Restore folder")},show_del:{onclick:function(a){window.location.href=BrowseURL.get_del_url(true);Event.stop(a)},icon:"show_del",text:_("Show deleted files")},hide_del:{onclick:function(a){window.location.href=BrowseURL.get_del_url(false);Event.stop(a)},icon:"hide_del",text:_("Hide deleted files")},copy:{icon:"page_white_copy",text:_("Copy to..."),onclick:function(a){FileOps.show_copy(this.where);Event.stop(a)}},copy_folder:{icon:"folder_page",text:_("Copy to..."),onclick:function(a){FileOps.show_copy(this.where,true);Event.stop(a)}},copy_package:{icon:"package_add",text:_("Copy package to..."),onclick:function(a){FileOps.show_copy(this.where,true);Event.stop(a)}},move:{icon:"page_white_go",text:_("Move..."),onclick:function(a){FileOps.show_move(this.where);Event.stop(a)}},move_folder:{icon:"folder_go",text:_("Move..."),onclick:function(a){FileOps.show_move(this.where,true);Event.stop(a)}},move_package:{icon:"package_go",text:_("Move..."),onclick:function(a){FileOps.show_move(this.where,true);Event.stop(a)}},rename:{icon:"page_white_edit",text:_("Rename..."),onclick:function(b){var a=Browse.find_file(this.where);if(a){a.edit()}Event.stop(b)}},rename_folder:{icon:"folder_edit",text:_("Rename..."),onclick:function(b){var a=Browse.find_file(this.where);if(a){a.edit()}Event.stop(b)}},rename_package:{icon:"package",text:_("Rename..."),onclick:function(b){var a=Browse.find_file(this.where);if(a){a.edit()}Event.stop(b)}},"delete":{icon:"cancel",text:_("Delete..."),onclick:function(a){FileOps.show_delete(this.where);Event.stop(a)}},delete_folder:{icon:"cancel",text:_("Delete..."),onclick:function(a){FileOps.show_delete(this.where,true);Event.stop(a)}},delete_package:{icon:"cancel",text:_("Delete..."),onclick:function(a){FileOps.show_delete(this.where,true);Event.stop(a)}},purge:{icon:"purge",text:_("Permanently delete"),onclick:function(a){FileOps.show_purge(this.where);Event.stop(a)}},purge_folder:{icon:"purge",text:_("Permanently delete"),onclick:function(a){FileOps.show_purge(this.where,true);Event.stop(a)}},new_folder:{icon:"folder_add",text:_("New folder"),onclick:function(a){FileOps.inplace_new_folder(this.where);Event.stop(a);return false}},upload:{icon:"page_white_get",text:_("Upload"),onclick:function(a){FileOps.show_upload(this.where);Event.stop(a)}},app_info:{icon:"application_double",text:_("Application info"),href:function(){return"/account/applications"}},more_actions:{text:function(){var a=_("More");var b=" <img src='/static/images/icons/icon_spacer.gif' class='sprite s_big-dropdown icon_no_hover' style='margin-right:-4px;' alt=''/><img style='margin-right:-4px;' src='/static/images/icons/icon_spacer.gif' class='sprite s_big-dropdown_blue icon_hover' alt=''/>";return a+b},onclick:function(a){Event.stop(a,true);BrowseActions.showMore()}},move_bulk:{icon:"folder_go",text:function(){return _("Move %d items").format(Browse.checked_files.length)},onclick:function(a){FileOps.show_move_bulk(Browse.checked_files);Event.stop(a)}},copy_bulk:{icon:"folder_page",text:function(){return _("Copy %d items").format(Browse.checked_files.length)},onclick:function(a){FileOps.show_copy_bulk(Browse.checked_files);Event.stop(a)}},delete_bulk:{icon:"cancel",text:function(){return _("Delete %d items").format(Browse.checked_files.length)},onclick:function(a){FileOps.show_bulk_delete(Browse.checked_files);Event.stop(a)}},download_bulk:{icon:"page_white_compressed",text:function(){return _("Download items")},onclick:function(a){FileOps.do_bulk_download(Browse.checked_files);Event.stop(a)}},purge_bulk:{icon:"purge",text:_("Permanently delete"),onclick:function(a){FileOps.show_bulk_purge(Browse.checked_files);Event.stop(a)}},restore_bulk:{icon:"time_go",text:function(){return _("Undelete %d items").format(Browse.checked_files.length)},onclick:function(a){FileOps.show_bulk_restore(Browse.checked_files);Event.stop(a)}}},generate_li:function(f,l,d,g,j,h){assert(BrowseActions.option_dict[l],"Couldn't find li action '"+l+"' for where '"+f+"'");var e=Object.clone(BrowseActions.option_dict[l]);e.where=f;e.hash=d?"?w="+d:"";e.is_dir=j;e.tkey=h;var m=new Element("li");var c="",b="";if(e.icon){c=Sprite.make(e.icon,{"class":"icon_no_hover"});b=Sprite.make(e.icon+"_blue",{"class":"icon_hover"})}var k;if(typeof(e.text)=="function"){e.text=e.text()}if(g){var n=new Element("span").update(c).insert(b).insert(e.text);k=HotButton.make(n)}else{k=new Element("a").update(c).insert(b).insert(e.text);k.addClassName("background-icon");HoverIconSwap.register(k)}k.target=e.target||"_top";if(!e.onclick){k.href=e.verb?("/"+e.verb+f):e.href()}if(e.width){k.style.width=e.width}if(e.onclick){k.observe("mouseup",(function(a){e.onclick(a);if(l!="more_actions"){BrowseActions.kill_dropdowns()}}).bindAsEventListener(e))}m.update(k);return m},sizeDropdownAnchors:function(c){var e=$$(c).first();if(!e){return}var h=e.select("a");if(!h){return}var g=parseInt(e.getStyle("width"),10)-parseInt(h[0].getStyle("padding-left"),10)-parseInt(h[0].getStyle("padding-right"),10)-2;if(g<0){return}for(var f=0,b=h.length;f<b;f+=1){var d=h[f];d.style.width=g+"px"}},availMoreActions:function(){if(Browse.checked_files.length===0){var c=BrowseURL.get_del()==="1"?"hide_del":"show_del";if(Browse.show_deleted_button&&!Browse.showing_deleted_button){return[c]}else{return[]}}else{if(Browse.checked_files.length===1){return Browse.checked_files[0].main_actions}}var a=["move_bulk","copy_bulk","delete_bulk","restore_bulk","purge_bulk","download_bulk"];var b=Browse.profile_files(Browse.checked_files);if(b.deleted>0||b.public_folder>0||b.photos_folder>0){a.removeItem("move_bulk");a.removeItem("copy_bulk");a.removeItem("delete_bulk")}if(b.shared_folders>0){a.removeItem("copy_bulk")}if(b.deleted>0){a.removeItem("delete_bulk");a.removeItem("download_bulk")}if(b.deleted!=Browse.checked_files.length){a.removeItem("restore_bulk");a.removeItem("purge_bulk")}return a},showMore:function(){BrowseActions.kill_dropdowns();var g=$("show-more-dropdown");if(g){Util.yank(g)}var a=new Element("ul",{id:"show-more-dropdown"});a.addClassName("dropdown dropdown-lite");var e=BrowseActions.availMoreActions();var d=_("Select one or more files using the checkboxes.");var f=_("No actions available for these files");if(!e.length){a.insert(new Element("li").update(new Element("p",{style:"padding: 5px 4px; margin: 0; text-align: center;"}).update(Browse.checked_files.length===0?d:f)));a.style.width="150px"}else{e.each(function(j){var h=Browse.checked_files[0];if(h){a.insert(BrowseActions.generate_li(h.where,j,Browse.checked_files[0].hash,false,h.dir,h.tkey))}else{a.insert(BrowseActions.generate_li(Browse.current_fqpath(),j,false,false,false,false))}});if(Util.ie){BrowseActions.sizeDropdownAnchors.defer("#show-more-dropdown")}}$("browse-files").insert(a);var b=$$("#browse-root-actions li").last();a.clonePosition(b,{setWidth:false});a.style.height="auto";a.style.top=parseInt(a.style.top,10)+1+b.getHeight()+"px";var c=parseInt(a.style.left,10)-(parseInt(a.getWidth(),10)-b.getWidth())+1+"px";a.style.left=c;if(a.viewportOffset().top<0){$("browse-location").scrollIntoView()}Event.observe(document,"click",BrowseActions.hideMore)},hideMore:function(c){var b=$$("#browse-root-actions li").last();if(c&&c.target&&$(c.target).descendantOf(b)){return}var a=$("show-more-dropdown");if(a){Util.yank(a)}Event.stopObserving(document,"click",BrowseActions.hideMore)},fillActionUL:function(a,e,b,f,d){if(e.length<4&&Browse.show_deleted_button){var c=BrowseURL.get_del()==="1"?"hide_del":"show_del";e.push(c);Browse.showing_deleted_button=1}else{Browse.showing_deleted_button=0}b.update(f?"<li class='action-separator'>|</li>":"");if(!Browse.is_rewind){e.push("more_actions")}if(e&&e.length){b.show();e.each(function(g){if(g){b.insert(BrowseActions.generate_li(a,g,d,true))}})}else{b.hide()}Browse.root_actions=e.join(" ")},clear:function(c){var b=$("browse-file-actions");if(b){b.down("ul").update()}var a=$("more-file-actions");if(a){a.update()}},kill_dropdowns:function(){BrowseActions.hideMore();var a=$("dropdown");if(a){for(var b=0;b<Browse.checked_files.length;b+=1){Browse.checked_files[b].dropdown_arrow(false)}a.hide()}},dropdown:function(d,h,m){var f=d.div;if(m){Event.stop(m)}if(!f||!d.selected){return}var j=d.where;var g=d.hash;var q=d.main_actions;if(!q.length){return}var p=$("dropdown");if(p){Event.stopObserving(document,"click",p.listener);p=Util.yank(p);if(Browse.more_link){Event.stopObserving(Browse.more_link,"click",Browse.more_link_action);Browse.more_link=null;Browse.more_link_action=null}}f=$(f);var a=new Element("div",{id:"dropdown"});var c=new Element("ul",{"class":"dropdown dropdown-lite note"});$A(q).each(function(e){c.insert(BrowseActions.generate_li(j,e,g,false,d.dir,d.tkey))});a.insert(c);c.listener=function(s){var t=$(s.target);if(t.descendantOf(d.div)){return}Event.stopObserving(document,"click",c.listener);if(Browse.more_link){Event.stopObserving(Browse.more_link,"click",Browse.more_link_action);Browse.more_link=null;Browse.more_link_action=null}if(s.target.parentNode.tagName!="A"&&s.target.tagName!="A"||(s.target.href&&s.target.href.length<=2)){Event.stop(s)}var r=$("dropdown");if(r){r=Util.yank(r);if(d.checked){d.dropdown_arrow(false)}}};Event.observe(document,"click",c.listener);$(f.offsetParent).insert(a);var o=f.positionedOffset();var k=f.getDimensions();var n=a.getDimensions();var b=a.down().getDimensions();a.style.left=(o.left-b.width+k.width)+"px";a.style.top=(o.top+k.height-1)+"px";if(!Util.ie){var l=a.cumulativeOffset().top-Util.scrollTop();if(n.height+l>(window.innerHeight||document.documentElement.clientHeight)){setTimeout(function(){a.scrollIntoView(false);a=null},100)}}else{BrowseActions.sizeDropdownAnchors.defer("#dropdown .dropdown")}window.focus();return false},hide_dropdown:function(){var a=$("dropdown");if(a){a.remove()}},showCopyPublicUrlModal:function(a){Modal.icon_show(BrowseActions.getIcon("copy_url"),_("Copy Public Link"),DomUtil.fromElm("copy-public-url"),{wit_group:"copy_public_link"});BrowseActions.addCopyUrlFlash(a);var b=$("modal-content").down("#public_url");assert(b,"Text element not found for copy pulic link");b.setValue(a);b.select()},clipboard_copy_done:function(){$("copy_success").update(Sprite.make("tick",{style:"vertical-align:middle;"}));$("copy_success").insert("&nbsp;"+_("Copied!"))},getIcon:function(a){return BrowseActions.option_dict[a].icon},shortenPublicLink:function(){Util.shorten_url($F("public_url"),BrowseActions.updatePublicLink);var a=new Element("img",{id:"publink_loading",src:"/static/images/icons/ajax-loading-small.gif"});a.addClassName("right");$("modal-content").down("a").update(a)},updatePublicLink:function(a){$("public_url").setValue(a);$("public_url").select();$("publink_loading").remove();BrowseActions.addCopyUrlFlash(a)},addCopyUrlFlash:function(a,c,b){c=c||"real_copy";b=b||"copy_button";var d={wmode:"transparent",flashVars:"copy_text="+Util.urlquote(a)+"&callback=BrowseActions.clipboard_copy_done()"};swfobject.embedSWF("/static/swf/copy_to_clipboard.swf","copy_button","100%","100%","6.0.65",false,false,d);b=$(b);b.absolutize();b.clonePosition($(c),{offsetTop:-3,offsetLeft:-3,offsetHeight:6,offsetWidth:6})}};Browse={listen:function(a){$("browse-files").observe("mouseover",Browse.over);$("browse-files").observe("mouseout",Browse.out);$("browse-files").observe("mousedown",Browse.down);$("browse-files").observe("mouseup",Browse.up);$("browse-files").observe("click",Browse.click);$("browse-files").oncontextmenu=Browse.onContext;Browse.allow_drag=typeof(a)=="boolean"?a:true},over:function(a){var b=Util.resolve_target(a.target,".browse-file-box-details");if(b&&b.file){if(!b.title){b.title=b.file.filename}b.file.over(a)}},out:function(a){var b=Util.resolve_target(a.target,".browse-file-box-details");if(b&&b.file){b.file.out(a)}},down:function(a){if(Browse.down_file){return}var b=Util.resolve_target(a.target,".browse-file-box-details");if(b&&b.file){Browse.down_file=b.file;b.file.down(a)}},up:function(a){var b=Util.resolve_target(a.target,".browse-file-box-details");if(b&&b.file){Browse.down_file=null;b.file.up(a)}},click:function(f){var d=f.target;var h=Util.resolve_target(d,".browse-file-box-details");if(h&&h.file){var b=h.file;var g=Util.resolve_target(d,"a");if(g){if(b.dir){Event.stop(f);var a,c;if(b.target_ns){a=b.target_ns;c=""}else{if(Browse.is_share&&b.where.length<Browse.parent_ns_path.length){a="";c=b.where}else{a=Browse.current_nsid;c=Browse.fqpath_to_nspath(b.where,"click")}}BrowseURL.set_path_url(a,c)}}else{if(b.filename&&f.target.className.indexOf("checkbox")==-1){b.click_select(f)}}}},msg:false,files:[],selected_files:[],checked_files:[],drop_targets:[],selection:[],drag_watch:null,drag_end_watch:null,dragging:false,drag_startPos:null,drag_box:{},details:true,first_load:true,last_sort:[Sort.FILES_BY_NAME,false],highlight_index:-1,emptyCheck:function(){if(!Browse.files.length){Browse.show_message(_("Folder contains deleted files."))}},show_message:function(c){if(typeof(c)!=typeof("string")){var a=$("browse-files").down(".browse-message");if(a){a.show()}return}Browse.msg=c;var b=new Element("div",{"class":"browse-message"});b.update(c);$("browse-files").insert(b)},hide_message:function(){$$(".browse-message").invoke("hide")},sort:function(b,a,c){if(!c&&b==Browse.last_sort[0]&&a==Browse.last_sort[1]){return}Browse.last_sort=[b,a];if(a){var d=b;b=function(e,f){return -1*d(e,f)}}Browse.files.sort(b);Browse.drop_targets.sort(b);Browse.refill();Browse.refresh_positions();return false},resort:function(b){BrowseKeys.clear_highlight();var a=Browse.last_sort;if(b){Browse.fix_filename_keys(b)}Browse.sort(a[0],a[1],true);Browse.refresh_drop_positions()},fix_filename_keys:function(d){var b=Browse.files.slice();b.sort(Sort.FILES_BY_KEY);for(var c=0,a=b.length;c<a;c++){b[c].filename_ind=c}},refill:function(){var b=$("browse-files");for(var c=0;c<Browse.files.length;c+=1){var a=Browse.files[c];b.insert(a.div);if(a.selected){a.select()}}},add_file:function(b,a){if(b.filename){Browse.files.push(b)}else{Browse.has_parent_link=true;Browse.parent_link=b}if(!Browse.file_div){Browse.file_div=$("browse-files")}b.render(a,b.href);b.cachePos.bind(b).defer();if(b.drop_target){Browse.drop_targets.push(b)}if(b.bytes<0){Browse.deleted_shown=true}},refresh_drop_positions:function(){Browse.drop_targets.invoke("cachePos")},refresh_positions:function(){Browse.files.invoke("cachePos");if(Browse.has_parent_link){Browse.parent_link.cachePos()}Browse.redraw_checks()},redraw_checks:function(){var b=Browse.checked_files.slice();for(var a=0;a<b.length;a+=1){b[a].decheck();b[a].check()}},remove_selected:function(){Browse.files.each(function(a){if(a.selected){a.div.remove()}});Browse.files=Browse.files.findAll(function(a){return !a.selected});Browse.refresh_positions()},find_icons:function(){if(!Browse.files.length){return}Browse.updateOffset();var b=Browse.files[0];var a;if(b.box){a=b.box.top;b.cachePos()}if(!b.box||a!=b.box.top){Browse.refresh_positions()}},cache_selection:function(){Browse.selection=Browse.files.pluck("selected")},get_selected:function(){return Browse.selected_files},check_all:function(){BrowseActions.kill_dropdowns();var c=Browse.files;var b=c.length;Browse.deselect_all();if(Browse.checked_files.length==b){Browse.decheck_all()}else{for(var a=0;a<b;a+=1){if(!c[a].checked){c[a].check(a)}}if(Browse.checked_files.length==b){DBCheckbox.select(Browse.global_checkbox())}}},check_range:function(f,a,e){var d=f>a?-1:1;for(var c=f;c!=a+d;c+=d){var b=Browse.files[c];if(e&&b.checked){b.decheck()}else{if(!e&&!b.checked){b.check()}}}},uncheck_range:function(b,a){Browse.check_range(b,a,true)},check_these:function(a){for(var b=0;b<a.length;b+=1){a[b].check()}},hide_checked:function(){Browse.hidden_checked_files=Browse.checked_files.slice();Browse.decheck_all()},restore_checked:function(){Browse.check_these(Browse.hidden_checked_files);Browse.hidden_checked_files=false},decheck_all:function(){var a=Browse.checked_files;var b=a.length;while(b--){a[b].decheck(b,true)}Browse.checked_files=[];Browse.deselect_all()},watch_for_deselect:function(){Event.observe(document.body,"click",function(a){if(a.which!==1&&a.button!==0){return}if(a.target.nodeType==3||(a.target.tagName.toLowerCase()!="a"&&a.target.parentNode&&a.target.parentNode.tagName.toLowerCase()!="a")){Browse.deselect_all()}})},deselect_all:function(){BrowseActions.clear();var b=Browse.selected_files.length;for(var a=0;a<b;a+=1){Browse.selected_files[0].deselect()}},deselect_all_but:function(a){Browse.deselect_all();a.select()},clicked_scrollbar:function(g){var a=$("browse-files");var f=a.viewportOffset();var d=f.left+a.clientWidth;var c=f.left+a.offsetWidth;return d<g.clientX&&g.clientX<c},drag_start:function(a){return},drag:function(b){if(!Browse.dragging){return}Event.stop(b);var a=Browse.drag_box;Util.calcBox(b.clientY,b.clientX,Browse.drag_startPos.top,Browse.drag_startPos.left,a);Browse.draw_box(a);a.ctrl=b.ctrlKey;a.shift=b.shiftKey;if(a.width+a.height>10){Browse.select_under.defer()}},select_under:function(){var c=Browse.drag_box;var b=c.shift;var e=c.ctrl;if(!Browse.dragging){return}for(var a=0;a<Browse.files.length;a++){var d=Browse.files[a];if(d.overlaps(c)){if(e){d.toggle(Browse.selection[a])}else{d.select()}}else{if(e){d.set(Browse.selection[a])}else{if(!b){d.deselect()}}}}},select_range_to:function(g,b){var a=Browse.shift_start;if(!a){Browse.shift_start=g;g.select()}else{var e=false;for(var c=0;c<Browse.files.length;c++){var d=Browse.files[c];if(!b){d.set(e)}else{if(e){d.select()}}if(d==g||d==a){d.select();e=!e}}}},drag_end:function(b){if(b){var a=Browse.drag_box;if(a.width+a.height<10){Browse.deselect_all()}}Browse.dragging=false;Event.stopObserving(document,"mousemove",Browse.drag_watch);Event.stopObserving(document,"mouseup",Browse.drag_end_watch);Browse.drag_watch=null;$("browse-selection").hide()},draw_box:function(b){var a=$("browse-selection").style;a.top=b.top+"px";a.left=b.left+"px";a.width=b.width+"px";a.height=b.height+"px";a.display=""},clone_selected:function(h){Browse.sel_clones=$A();Browse.sel_clone_origin={y:h.clientY,x:h.clientX,st:Util.scrollTop(),sl:Util.scrollLeft()};Util.scry("ghost-icons").update("");for(var a=0;a<Browse.selected_files.length;a++){var b=Browse.selected_files[a];var j=b.div.cloneNode(true);j.file=null;j.hide();j.absolutize();b.cachePos();var g=b.box;var d=g.top+Util.scrollTop();var c=g.left+Util.scrollLeft();j.style.top=d+"px";j.style.left=c+"px";j.style.width=g.width+"px";j.style.height=g.height+"px";j.removeClassName("file-select");j.removeClassName("file-highlight");j.removeClassName("file-selected-highlight");j.origin={top:d,left:c};j.setOpacity(0.5);Util.scry("ghost-icons").insert(j);Browse.sel_clones.push(j)}},draw_clones:function(g){if(!this.sel_clone_origin){return}var b=g.clientX-this.sel_clone_origin.x;var a=g.clientY-this.sel_clone_origin.y;var f=Util.scrollTop()-this.sel_clone_origin.st;var c=Util.scrollLeft()-this.sel_clone_origin.sl;for(var d=0;d<Browse.sel_clones.length;d+=1){var h=Browse.sel_clones[d];h.style.display="";h.style.top=(h.origin.top+a+f).toString()+"px";h.style.left=(h.origin.left+b+c).toString()+"px"}},kill_clones:function(){if(this.sel_clones){this.sel_clones.map(Util.yank);this.sel_clones=null;this.sel_clone_origin=null}},find_drop_target:function(c){if(!Browse.sel_clone_origin){return}var a=c.clientX+Util.scrollLeft()-Browse.sel_clone_origin.sl;var d=c.clientY+Util.scrollTop()-Browse.sel_clone_origin.st;var b=Util.bsearch(Browse.drop_targets,0,function(e){var g=Util.cmpBox(a,d,e.box);return(g!==0)?-g:(e.selected?-1:0)});if(b!=-1){return Browse.drop_targets[b]}return false},can_drop:function(a){var b=Browse.profile_files(Browse.selected_files);if((a.is_share||a.is_sandbox)&&(b.shared_folders>0||b.sandboxes>0)){if(b.sandboxes>0){if(a.is_share){return _("You're not allowed to put an application folder inside a shared folder.")}else{return _("You're not allowed to put an application folder inside another application folder.")}}else{if(a.is_share){return _("You're not allowed to nest shared folders.")}else{return _("You're not allowed to put a shared folder inside an application folder.")}}}else{if(a.where=="/Public"&&b.shared_folders>0){return _("You're not allowed to move shared folders to your Public folder.")}else{if(b.public_folder>0){return _("You're not allowed to move your Public folder.")}else{if(b.photos_folder>0){return _("You're not allowed to move your Photos folder.")}else{if(b.deleted>0){return _("Moving deleted folders or files is not allowed.")}}}}}return true},remove_drop_target:function(e){var b=Browse.drop_targets;var a=b.length;var c=[];for(var d=0;d<a;d++){var f=b[d];if(e!=f){c.push(f)}}Browse.drop_targets=c},highlight_drop_target:function(b){var a=Browse.find_drop_target(b);if(Browse.last_drop_target&&Browse.last_drop_target!=a){Browse.last_drop_target.drop_lowlight()}Browse.last_drop_target=a;if(a){if(Browse.can_drop(a)===true){a.drop_highlight()}else{a.drop_highlight_bad()}}},show_copy_move:function(c){if(Browse.copy_move_over==c){return}Browse.copy_move_over=c;var a=Browse.copy_move_texts();var b=Browse.copy_move_overlays();var d=b.concat(a);var f=c.box.left+Browse.sel_clone_origin.sl;var e=c.box.top+Browse.sel_clone_origin.st;if(c.box.height>c.box.width){d.each(function(g){var h=g.style;h.width=this.box.width+"px";h.height=Math.round(this.box.height/2)+"px";h.left=f+"px";h.display="";h.lineHeight=h.height},c);b[0].style.top=e+"px";b[1].style.top=(e+Math.round(c.box.height/2))+"px";a[0].style.top=e+"px";a[1].style.top=(e+Math.round(c.box.height/2))+"px"}else{d.each(function(g){var h=g.style;h.height=this.box.height+"px";h.width=Math.round(this.box.width/2)+"px";h.top=e+"px";h.display="";h.lineHeight=h.height},c);b[0].style.left=f+"px";b[1].style.left=(f+Math.round(c.box.width/2))+"px";a[0].style.left=f+"px";a[1].style.left=(f+Math.round(c.box.width/2))+"px"}a[0].box=Util.getBox(a[0]);a[1].box=Util.getBox(a[1])},bold_copy_move:function(c){var b=Browse.copy_move_texts();var a=0;if(c.clientY>b[1].box.top){a=1}if(b[0].last_highlight==a){return}b[0].last_highlight=a;b[a].addClassName("copy-move-bold");b[1-a].removeClassName("copy-move-bold")},hide_copy_move:function(){Browse.copy_move_over=false;Browse.copy_move_overlays().invoke("hide");Browse.copy_move_texts().invoke("hide")},over_copy_option:function(a){return Util.pointOnBox(a.clientX,a.clientY,Util.getBox("copy-text"))},cmos:[],copy_move_overlays:function(){if(!Browse.cmos.length){Browse.cmos=$$(".copy-move-overlay")}return Browse.cmos},cmts:[],copy_move_texts:function(){if(!Browse.cmts.length){Browse.cmts=$$(".copy-move-text")}return Browse.cmts},find_file:function(a){return Browse.files.find(function(b){return b.where==a})},pull_file:function(c){var g=Browse.files;var a=g.length;var b=[];var e=false;for(var d=0;d<a;d++){var h=g[d];if(h.where==c){e=h}else{b.push(h)}}Browse.files=b;return e},reset_state:function(){Browse.msg=false;Browse.dragging=false;Browse.files=[];Browse.selected_files=[];Browse.checked_files=[];Browse.lact_checked=null;Browse.sel_clones=[];Browse.sel_clone_origin=null;Browse.drop_targets=[];Browse.last_drop_target=null;Browse.selection=[];Browse.file_div_cache=null;Browse.has_parent_link=false;Browse.parent_link=null;Browse.in_placer=null;BrowseActions.kill_dropdowns()},update:function(a){$("browse-files").update(a)},reload_fqpath:function(a){return Browse.reload(null,a)},force_reload:function(){return Browse.reload(Browse.current_nsid,Browse.current_path,true)},reload:function(a,e,d){if(Browse.reloading){return}a=a||"";e=Util.normPath(e||"");if(Util.normPath(e)==Util.normPath(Browse.current_path)&&a==Browse.current_nsid&&!d){return}if(!e&&e!==""&&!a){e=Browse.current_path;a=Browse.current_nsid}Browse.reloading=true;Browse.current_path=e;Browse.current_nsid=a;var c=Browse.first_load?Constants.referrer:"";if(Browse.first_load){Browse.first_load=false;BrowseURL.set_path_url(a,e)}Feed.showLoading(false,"browse-files",true);if(Util.ie){$("feed-loading").style.left=$("browse-box").viewportOffset()[0]+"px"}var b=Browse.deleted_shown?"&show_deleted=yah":"";var f={ns_id:a,referrer:c};f=Object.extend(f,Browse.extra_reload_args);new Ajax.DBRequest(Browse.reload_path+Util.normalize(e)+"?ajax=yes"+b,{parameters:f,onSuccess:function(g){Browse.reset_state();Browse.update(g.responseText);if(Browse.select_file){(function(){var k=Browse.current_fqpath()+"/"+Util.urlquote(Browse.select_file);var j=Browse.find_file(k);if(j){j.select();j.show_dropdown();Browse.select_file=false}}).defer()}var h=Browse.global_checkbox();if(h.selected){DBCheckbox.deselect(h)}if(Browse.force_sort){Browse.force_sort=false;Browse.resort.defer()}Browse.listen()},cleanUp:function(){Feed.hideLoading();Browse.reloading=false;if(document.activeElement&&document.activeElement!=document.body){document.activeElement.blur()}Util.childElementCache={}},no_feed_reload:true});FileSearch.invalidate_cache();BrowseKeys.clear_highlight();return true},unload:function(){Browse.reset_state();var a=$("dropdown");if(a){a=Util.yank(a)}},breadcrumb:function(m){m=Util.normPath(m);var c=m.split("/");var h="";function a(o,n,s,r,t,p){o=o.snippet(40);if(!(t||r)){p=""}else{p='<img src="/static/images/icons/icon_spacer.gif" class="sprite s_'+p+' link-img"  alt=""/>'}var q;if(!r){q="<a href='"+BrowseURL.get_path_url(n,s)+"'";q+=" onclick='return BrowseURL.set_path_url(\""+n+'", "'+s+"\");'";q+=">";q+=p+o;q+="</a>";q=q+" &#187; ";return q}else{return p+o}}assert(!Browse.current_nsid||Browse.parent_ns_path,"in some nsid but no parent path set");var g,e;for(var d=0;d<c.length;d++){var b=new Emstring(decodeURIComponent(c[d]||_("Dropbox")).escapeHTML()).toString();var l=d+1===c.length;var f=d===0;g=c.slice(0,d+1).join("/")||"/";if(Browse.current_nsid&&g.length>=Browse.parent_ns_path.length){e=Browse.current_nsid}else{e=""}var k=!e?g:Browse.fqpath_to_nspath(g,"breadcrumb");var j=f&&b.toString()==_("Dropbox")?"dropbox":FileOps.folder_to_icon(Browse.current_fqpath(),Browse.is_share,Browse.is_sandbox);h+=a(b,e,k,l,f,j)}$("browse-location").update(h)},viewportOffset:function(){if(!Browse.files.length){return}if(!Browse.div_parent){var c=Browse.files[0].div.offsetParent;if(!c){return}Browse._viewportOffset={};Browse.div_parent=$(c);Browse._cumulativeOffset=Browse.div_parent.cumulativeOffset()}var a=Util.scrollLeft(Browse.div_parent);var b=Util.scrollTop(Browse.div_parent);if(!Browse.scrollTop||!Browse.scrollLeft||Browse.scrollTop!=b||Browse.scrollLeft!=a){Browse._viewportOffset.top=Browse._cumulativeOffset.top-b;Browse._viewportOffset.left=Browse._cumulativeOffset.left-a;Browse.scrollLeft=a;Browse.scrollTop=b}return Browse._viewportOffset},watch_for_resize:function(){Event.observe(window,"resize",Browse.updateOffset)},updateOffset:function(){if(!Browse.div_parent){return}Browse._cumulativeOffset=Browse.div_parent.cumulativeOffset();Browse.viewportOffset()},selectable:function(){Util.enableSelection(Util.scry("browse-files"))},unselectable:function(){Util.disableSelection(Util.scry("browse-files"))},profile_files:function(a){var d={files:0,folders:0,shared_folders:0,deleted:0,public_folder:0,photos_folder:0,rejoinables:0,sandboxes:0};for(var c=0;c<a.length;c+=1){var b=a[c];if(b.dir){d.folders+=1}else{d.files+=1}if(b.is_sandbox){d.sandboxes+=1}if(b.is_share){d.shared_folders+=1}if(b.bytes==-1){d.deleted+=1}if(b.where=="/Public"){d.public_folder=1}else{if(b.where=="/Photos"){d.photos_folder=1}}if(b.main_actions.indexOf("rejoin")>=0){d.rejoinables+=1}}return d},profile_summary:function(b){var c=ungettext("%d file","%d files",b.files).format(b.files);var a=ungettext("%d folder","%d folders",b.folders).format(b.folders);if(b.files&&b.folders){return _("%(x_files)s and %(y_folders)s").format({x_files:c,y_folders:a})}else{if(b.files){return c}else{if(b.folders){return a}else{return""}}}},global_checkbox:function(){return Util.childElement(document.getElementById("select-all-sorter"),0)},onContext:function(a){if(a){Event.stop(a)}return false},current_fqpath:function(){return Util.normPath((Browse.parent_ns_path||"")+Browse.current_path)},fqpath_to_nspath:function(b,d){var c=decodeURIComponent(Browse.parent_ns_path||""),a=decodeURIComponent(b);assert(a.toLowerCase().startsWith(c.toLowerCase()),"fqpath "+a+" and parent_ns_path "+c+" don't match (from "+(d||"?")+")");return Util.urlquote(a.substr(c.length))}};var FileOps={folder_to_icon:function(c,a,b){assert(c,"folder_to_icon was not given a path.");c=Util.normalize(c.toLowerCase());if(b){return"folder_star"}else{if(a){return"folder_user"}else{if(c=="/photos"){return"folder_photos"}else{if(c=="/public"){return"folder_public"}else{return"folder"}}}}},filename_to_icon:function(a){var c=FileOps.file_extension(a).toLowerCase();var b={exe:"page_white_gear",dll:"page_white_gear",xls:"page_white_excel",xlsx:"page_white_excel",ods:"page_white_tux",c:"page_white_c",h:"page_white_c",php:"page_white_php",mp3:"page_white_sound",wav:"page_white_sound",m4a:"page_white_sound",wma:"page_white_sound",aiff:"page_white_sound",au:"page_white_sound",ogg:"page_white_sound",doc:"page_white_word",docx:"page_white_word",odt:"page_white_tux",ppt:"page_white_powerpoint",pptx:"page_white_powerpoint",odp:"page_white_tux",txt:"page_white_text",rtf:"page_white_text",sln:"page_white_visualstudio",vcproj:"page_white_visualstudio",html:"page_white_code",htm:"page_white_code",psd:"page_white_paint",pdf:"page_white_acrobat",fla:"page_white_actionscript",swf:"page_white_flash",gif:"page_white_picture",png:"page_white_picture",jpg:"page_white_picture",jpeg:"page_white_picture",tiff:"page_white_picture",tif:"page_white_picture",bmp:"page_white_picture",odg:"page_white_picture",py:"page_white_code",gz:"page_white_compressed",tar:"page_white_compressed",rar:"page_white_compressed",zip:"page_white_compressed",iso:"page_white_dvd",css:"page_white_code",xml:"page_white_code",tgz:"page_white_compressed",bz2:"page_white_compressed",rb:"page_white_ruby",cpp:"page_white_cplusplus",java:"page_white_cup",cs:"page_white_csharp",ai:"page_white_vector"};return b[c]||"page_white"},show_confirm_restore_entire:function(b,a,c){assert(a,"Missing csid");assert(b,"Missing when");assert(c!==undefined,"Missing path");DomUtil.fillVal(b,"restore-entire-when");Modal.icon_show("time",_("Rewind Dropbox"),DomUtil.fromElm("restore-entire"),{when:b,cs_id:a,path:c,action:FileOps.do_rewind})},do_rewind:function(){var a=Modal.vars.cs_id;assert(a);var b=Modal.vars.path;assert(b!==undefined);new Ajax.DBRequest("/cmd/rewind",{parameters:{cs_id:a,path:b},onComplete:function(){window.location.reload()}})},show_confirm_restore_sjids:function(b){var a=Browse.profile_files(b);var c=Browse.profile_summary(a);DomUtil.fillVal(c,"restore-sjids-filename");DomUtil.fillVal(_("Restore %(x_files_and_y_folders)s").format({x_files_and_y_folders:c}),"restore-sjids-action-text");var d=ungettext("Restore %d Item...","Restore %d Items...",b.length).format(b.length);Modal.icon_show(BrowseActions.getIcon("restore_sjids"),d,DomUtil.fromElm("restore-sjids"),{files:b,action:FileOps.do_bulk_restore_sjids})},do_bulk_restore_sjids:function(g){if(g){Event.stop(g)}var b=[];for(var d=0,a=Modal.vars.files.length;d<a;d+=1){var c=Modal.vars.files[d];b.push(c.sjid)}var f=Browse.current_fqpath();Modal.hide();new Ajax.DBRequest("/cmd/restore_sjids",{parameters:{sjids:b,path:f,cs_id:Browse.current_cs},onSuccess:function(){window.location.reload()}})},file_extension:function(a){return a.split(".").last()},raw_filename:function(a){return FileOps.filename(encodeURIComponent(a))},filename:function(c){var b=decodeURIComponent(c);c=Util.normPath(b);c=c.split("/");var a=c.pop();if(a===""){return _("Dropbox")}return a},dir_handler:function(h,g){if(typeof(g)=="string"){g=$(g)}var f=$$(".treeview .highlight")[0];if(f){f.removeClassName("highlight");var d=f.down(".link-img");if(d){d.className=d.className.replace("_blue "," ")}}var c=g.up("div");c.addClassName("highlight");var e=c.down(".link-img");if(e){var b=e.className.split(" ");for(var a=0;a<b.length;a+=1){if(b[a].startsWith("s_")&&!b[a].match(/_blue$/)){b[a]=b[a]+"_blue"}}e.className=b.join(" ")}Modal.selected_div=c;if(Modal.shown()){g.blur()}document.fire("db:dir_click",{path:h});Modal.vars.selected_path=encodeURIComponent(h)},show_folder_pick:function(g,b,e,f,a){DomUtil.fillVal(FileOps.filename(b).escapeHTML(),"folder-pick-file");TreeView.move("copy-move-treeview","folder-pick-treeview");TreeView.enable_shared("copy-move-treeview");var c=a?BrowseActions.getIcon("move_bulk"):BrowseActions.getIcon("copy_bulk");Modal.icon_show(c,g,$("folder-pick"),{where:b,action:e,folder:f});var d=$("first-treeview-link");d.onclick()},show_bulk_folder_pick:function(h,g,d,f){var c=Browse.profile_files(d);var a=Browse.profile_summary(c);DomUtil.fillVal(a,"bulk-folder-pick-file");TreeView.move("copy-move-treeview","bulk-folder-pick-treeview");TreeView.enable_shared("copy-move-treeview");document.observe("db:dir_click",function(l){var j=$$("#modal-content .bulk-folder-pick-action-text").first();if(j){var k={copy:ungettext("Copy %(item-count)d item to %(path)s","Copy %(item-count)d items to %(path)s",d.length),move:ungettext("Move %(item-count)d item to %(path)s","Move %(item-count)d items to %(path)s",d.length)};assert(g in k,"unexpected action name %s".format(g));j.setValue(k[g].format({"item-count":d.length,path:FileOps.raw_filename(l.memo.path)}))}});var b=g=="move"?BrowseActions.getIcon("move_bulk"):BrowseActions.getIcon("copy_bulk");Modal.icon_show(b,h,$("bulk-folder-pick"),{files:d,action:f});var e=$("first-treeview-link");e.onclick()},show_copy:function(a,b){var c=b?_("Copy Folder"):_("Copy File");DomUtil.fillVal(c,"folder-pick-action-text");DomUtil.fillVal(b?_("Folder"):_("File"),"folder-pick-file-folder");FileOps.show_folder_pick(_("Copy to..."),a,FileOps.do_copy,b,false)},show_copy_bulk:function(a){var b=ungettext("Copy %(item_count)s Item to...","Copy %(item_count)s Items to...",a.length).format({item_count:a.length});FileOps.show_bulk_folder_pick(b,"copy",a,FileOps.do_bulk_copy)},show_move_bulk:function(a){var b=ungettext("Move %(item_count)s Item to...","Move %(item_count)s Items to...",a.length).format({item_count:a.length});FileOps.show_bulk_folder_pick(b,"move",a,FileOps.do_bulk_move)},show_move:function(a,b){var d=b?_("Move Folder"):_("Move File");DomUtil.fillVal(d,"folder-pick-action-text");DomUtil.fillVal(b?_("Folder"):_("File"),"folder-pick-file-folder");var c=b?_("Move Folder to..."):_("Move File to...");FileOps.show_folder_pick(c,a,FileOps.do_move,b,true)},show_move_confirm:function(b,f){var a=Browse.profile_files(b);var c=Browse.profile_summary(a);var e=b.length==1?"'"+b[0].filename+"'":c;DomUtil.fillVal(e,"move-confirm-filename");DomUtil.fillVal(FileOps.raw_filename(f),"move-confirm-dest");var d=_("Move %(x_files_and_y_folders)s").format({x_files_and_y_folders:c});DomUtil.fillVal(d,"move-confirm-action-text");e=_("Move %(x_files_and_y_folders)s?").format({x_files_and_y_folders:e});Modal.icon_show(BrowseActions.getIcon("move"),e,DomUtil.fromElm("move-confirm"),{files:b,to:encodeURIComponent(f),wit_group:"move-confirm"})},show_rename:function(a){DomUtil.fillVal(FileOps.filename(a),"rename-filename");Modal.icon_show(BrowseActions.getIcon("rename"),_("Rename File"),DomUtil.fromElm("rename-file"),{where:a,action:FileOps.do_rename,wit_group:"rename-file"})},show_delete:function(a,c){DomUtil.fillVal("'"+FileOps.filename(a).escapeHTML()+"'","delete-filename");var b=c?BrowseActions.getIcon("delete_folder"):BrowseActions.getIcon("delete");var d=c?_("Delete Folder?"):_("Delete File?");Modal.icon_show(b,d,DomUtil.fromElm("delete-file"),{where:a,action:FileOps.do_delete,folder:c,wit_group:"delete-confirm"})},show_bulk_delete:function(b){var a=Browse.profile_files(b);var c=Browse.profile_summary(a);DomUtil.fillVal(FileOps.filename(c),"delete-filename");Modal.icon_show(BrowseActions.getIcon("delete"),_("Delete %(file_summary)s?").format({file_summary:c}),DomUtil.fromElm("delete-file"),{files:b,action:FileOps.do_bulk_delete,wit_group:"delete-bulk-confirm"})},show_purge:function(c,e){var a=FileOps.filename(c).escapeHTML();var g=_("'%(file_name)s'").format({file_name:a});DomUtil.fillVal(g,"purge-filename");var f=e?_("Folder"):_("File");DomUtil.fillVal(f,"purge-file-folder");var d=e?_("Permanently Delete Folder"):_("Permanently Delete File");DomUtil.fillVal(d,"purge-action-text");var b=e?_('Permanently Delete the Folder "%(file_name)s"?'):_('Permanently Delete the File "%(file_name)s"?');b=b.format({file_name:a});Modal.icon_show(BrowseActions.getIcon("purge"),b,DomUtil.fromElm("purge-file"),{where:c,action:FileOps.do_purge,folder:e,wit_group:"purge-file-confirm"})},show_bulk_purge:function(b){var a=Browse.profile_files(b);var c=Browse.profile_summary(a);DomUtil.fillVal(c,"purge-filename");DomUtil.fillVal(_("Permanently Delete %(x_files_and_y_folders)s").format({x_files_and_y_folders:c}),"purge-action-text");var d=ungettext("Permanently Delete %d Item...","Permanently Delete %d Items...",b.length).format(b.length);Modal.icon_show(BrowseActions.getIcon("purge_bulk"),d,DomUtil.fromElm("purge-file"),{files:b,action:FileOps.do_bulk_purge,wit_group:"purge-bulk-confirm"})},show_bulk_restore:function(b){var a=Browse.profile_files(b);var c=Browse.profile_summary(a);DomUtil.fillVal(c,"restore-filename");DomUtil.fillVal(_("Restore %(x_files_and_y_folders)s").format({x_files_and_y_folders:c}),"restore-action-text");var d=ungettext("Restore %d Item...","Restore %d Items...",b.length).format(b.length);Modal.icon_show(BrowseActions.getIcon("restore_bulk"),d,DomUtil.fromElm("restore-file"),{files:b,action:FileOps.do_bulk_restore,wit_group:"restore-bulk-confirm"})},show_new_folder:function(a){Modal.show(_("Create Folder"),DomUtil.fromElm("new-folder"),{where:a,action:FileOps.do_new_folder,wit_group:"show-new-folder"})},show_upload:function(a,b){a=a||Browse.current_fqpath();var d=FileOps.filename(a);DomUtil.fillVal(d,"upload-dest");var c=_("Upload to '%(folder_name)s'").format({folder_name:d.escapeHTML()});Modal.icon_show("page_white_get",c,DomUtil.fromElm("advanced-upload-modal"),{where:a,action:FileOps.do_upload,wit_group:"advanced-uploader"},false,500,FileQueue.numShown()&&!b);if(FileQueue.empty()){Upload.set_dest(Util.normPath(decodeURIComponent(a)))}if(!FileQueue.numShown()||b){Upload.init(true)}InlineUploadStatus.hide()},show_basic_upload:function(a){DomUtil.fillVal(FileOps.filename(a),"upload-dest");Modal.icon_show(BrowseActions.getIcon("upload"),_("Upload"),$("basic-upload-modal"),{},false,600)},show_undelete:function(a){DomUtil.fillVal(a.filename.escapeHTML(),"undelete-filename");DomUtil.fillVal(a.ago,"undelete-date-time");var b=Sprite.make(a.icon,{});b.addClassName("link-img");b.style.backgroundColor="transparent";var c="/revisions"+a.where+"?undelete=1";$$(".undelete-icon").invoke("update",b);$$(".undelete-other-versions")[0].href=c;$$(".undelete-link")[0].href=c;$("undelete-form").action="/revisions"+a.where;var d=_('Undelete the File "%(file_name)s"?').format({file_name:a.filename.escapeHTML()});Modal.icon_show(BrowseActions.getIcon("undelete"),d,$("undelete-modal"),{file:a})},submit_undelete:function(b){var a=$("undelete-form");var c=_("'%(file_name)s' restored successfully.").format({file_name:Modal.vars.file.filename});Forms.ajax_submit(a,false,function(){Modal.hide();Notify.ServerSuccess(c);Browse.force_reload()},function(){var d=_("Unable to restore %(file_name)s").format({file_name:Modal.vars.file.filename});Notify.ServerError(d)},b.target);return false},do_copy:function(c,b){c=c||Modal.vars.where;b=b||Modal.vars.selected_path;var a=Browse.find_file(Modal.vars.where);assert(a,"Trying to copy a file we couldn't find.");FileOps.do_bulk_copy([a],b)},do_bulk_copy:function(e,f){e=e||Modal.vars.files;assert(e.length>0,"Tried to copy 0 files");f=f||Modal.vars.selected_path;if(!f){Notify.ServerError(_("You should select a destination for the file."));return}f=decodeURIComponent(f);var a=false;var b=false;for(var c=0;c<e.length;c+=1){if(e[c].dir&&Util.normDir(decodeURIComponent(f)).indexOf(Util.normDir(decodeURIComponent(e[c].where)))===0){Notify.ServerError(_("You cannot copy a folder into itself."));return}b=b||e[c].dir;if(decodeURIComponent(e[c].where)==Util.normPath(f)+"/"+FileOps.filename(e[c].where)){a=true}}var d=e.collect(function(g){return decodeURIComponent(g.where)});new Ajax.DBRequest("/cmd/copy",{parameters:{files:d,to_path:f},job:true,progress_text:_("Copying..."),onSuccess:function(g){if(a){Browse.force_reload()}var h=ungettext("Copied %d item successfully","Copied %d items successfully",d.length).format(d.length);Notify.ServerSuccess(h);TreeView.schedule_reset()},cleanUp:function(g){}})},do_move:function(c,b){c=c||Modal.vars.where;b=b||Modal.vars.selected_path;var a=Browse.find_file(Modal.vars.where);assert(a,"Trying to move a file we couldn't find.");FileOps.do_bulk_move([a],b)},do_bulk_move:function(c,d){c=c||Modal.vars.files;if(!c){return}assert(c.length>0,"Tried to move 0 files");d=d||Modal.vars.selected_path;d=decodeURIComponent(d);if(!d){Notify.ServerError(_("You should select a destination for the file."));return}for(var a=0;a<c.length;a+=1){if(c[a].dir&&Util.normDir(decodeURIComponent(d)).indexOf(Util.normDir(decodeURIComponent(c[a].where)))===0){Notify.ServerError(_("You cannot move a folder into itself."));return}}var b=c.collect(function(e){return decodeURIComponent(e.where)});new Ajax.DBRequest("/cmd/move",{parameters:{files:b,to_path:d},job:true,progress_text:_("Moving..."),onSuccess:function(e){Notify.ServerSuccess(ungettext("Moved item successfully","Moved items successfully",b.length));TreeView.schedule_reset()},cleanUp:function(e){Browse.force_reload()}})},do_rename:function(a){var c=Modal.vars.where;var b=encodeURIComponent(a);new Ajax.DBRequest("/cmd/rename"+c+"?to_path="+b,{onSuccess:function(g){var j=g.responseText.split(":");var d=j[0];var e=j[1];var h=FileOps.filename(d);var k=_("Renamed '%(old_name)s' to '%(new_name)s' successfully.").format({old_name:FileOps.filename(c).snippet(),new_name:h.snippet()});Notify.ServerSuccess(k);var f=Browse.find_file(c);f.rename(d,f.dir,e);TreeView.schedule_reset()},cleanUp:function(d){}})},do_bulk_delete:function(b){b=b||Modal.vars.files;assert(b.length>0,"Tried to delete 0 files");var a=b.collect(function(c){return decodeURIComponent(c.where)});new Ajax.DBRequest("/cmd/delete",{parameters:{files:a},job:true,progress_text:_("Deleting..."),onSuccess:function(c){var d=ungettext("Deleted %d item successfully.","Deleted %d items successfully.",a.length).format(a.length);Notify.ServerSuccess(d);TreeView.schedule_reset()},cleanUp:function(c){Browse.force_reload()}})},do_delete:function(){var a=Browse.find_file(Modal.vars.where);assert(a,"Trying to delete a file we couldn't find.");FileOps.do_bulk_delete([a])},do_purge:function(){var a=Browse.find_file(Modal.vars.where);assert(a,"Trying to purge a file we couldn't find.");FileOps.do_bulk_purge([a])},do_bulk_purge:function(b){b=b||Modal.vars.files;assert(b.length>0,"Tried to purge 0 files");var a=b.collect(function(d){return decodeURIComponent(d.where)});var c=ungettext("Permanently deleted %d item successfully","Permanently deleted %d items successfully.",a.length).format(a.length);new Ajax.DBRequest("/cmd/purge",{parameters:{files:a},job:true,progress_text:_("Deleting..."),onSuccess:function(d){Notify.ServerSuccess(c);Browse.force_reload();TreeView.schedule_reset()},cleanUp:function(d){}})},do_bulk_restore:function(b){b=b||Modal.vars.files;assert(b.length>0,"Tried to restore 0 files");var a=b.collect(function(d){return decodeURIComponent(d.where)});var c=ungettext("Restored %d item successfully.","Restored %d items successfully.",a.length).format(a.length);new Ajax.DBRequest("/cmd/restore",{parameters:{files:a},job:true,progress_text:_("Restoring..."),onSuccess:function(d){Notify.ServerSuccess(c);Browse.force_reload();TreeView.schedule_reset()},cleanUp:function(d){}})},do_upload:function(){$("dest-folder").value=decodeURIComponent(Modal.vars.where);$("upload-form").submit();frames["upload-frame"].onload=function(a){var b=a.target.documentElement.textContent;if(b=="winner!"){Browse.force_reload();Notify.ServerSuccess(_("Uploaded file successfully"))}else{Notify.ServerError()}}},do_bulk_download:function(b){AMC.log("file_action",{action:"download",num_files:b.length,webserver:Constants.WEBSERVER});var c=new Element("form",{action:"https://"+Constants.BLOCK_CLUSTER+"/zip_batch",method:"post"});for(var a=0;a<b.length;a+=1){Forms.add_vars(c,{files:decodeURIComponent(b[a].where)})}Forms.add_vars(c,{parent_path:Util.normDir(decodeURIComponent(Browse.current_fqpath())),w:Browse.current_path_hash});$(document.body).insert(c);c.submit()},inplace_new_folder:function(b){if(Browse.in_placer&&Browse.in_placer.new_folder){return}var a=_("New Folder");if(b.charAt(b.length-1)!="/"){b+="/"}Browse.hide_message();var d="zipped_dl upload copy_folder move_folder rename_folder delete_folder";if(Browse.current_nsid==Constants.root_ns){action+="share "+d}if(Constants.can_shmodel){d=d+" token_share"}var c=new BrowseFile("folder",b,"/browse2"+b+a,a,a,false,0,"",Util.ts(),d,"",true,true,true,null,0,-1,[]);Browse.resort();c.edit(true)}};var ProgressBar={MAGIC:42,make:function(a,b,c){b=b||300;var f=b.toString()+"px";c=typeof(c)!="undefined"?c:"0%";var j=new Element("div",{"class":"outer-progress-bar",style:"width: "+f});var k=new Element("div",{"class":"inner-progress-bar",id:"pb_"+a,style:"width: "+f});var g=new Element("div",{"class":"under-pb progress-bar",style:"width: "+f});var e=new Element("div",{style:"display: none","class":"over-pb progress-bar",id:"pb_"+a+"_over"});var d=new Element("div",{"class":"pb-percentage",id:"pb_"+a+"_upct",style:"width: "+f});d.update(c);var h=new Element("div",{"class":"pb-percentage",id:"pb_"+a+"_opct",style:"width: "+f});h.update(c);g.insert(d);e.insert(h);k.insert(g);k.insert(e);j.insert(k);e.progress_width=b;return j},reset:function(a){ProgressBar.set(a,0)},set:function(e,a,d){a=Math.min(a,1);d=typeof(d)!="undefined"&&d!==false?d:Math.floor(a*100).toString()+"%";var c=$("pb_"+e+"_over");if(!c){return}var b=c.progress_width*a;c.show();c.makeClipping().setStyle({width:b.toString()+"px",backgroundColor:"#348DD3"});$("pb_"+e+"_upct").innerHTML=d;$("pb_"+e+"_opct").innerHTML=d},get_frac:function(b){var a=$("pb_"+b+"_over");return parseInt(a.style.width,10)/a.progress_width},errorState:function(d,a){a=a||"Error";var c=$("pb_"+d+"_over");if(!c){return}var b=c.progress_width;c.show();c.makeClipping().setStyle({width:b.toString()+"px",backgroundColor:"#d23a3a"});$("pb_"+d+"_upct").innerHTML=a;$("pb_"+d+"_opct").innerHTML=a}};var ModalProgress={show:function(c,a){if(!c){return}a=$(a||"browse-box");var b=$("modal-progress-overlay");b.clonePosition(a);if(!b.getWidth()){return}$("modal-progress-text").update(c);$("modal-progress-bar").setOpacity(1);$("modal-progress-bar").update(ProgressBar.make("modal-progress",150,""));$("modal-progress-content").style.top=(Math.max(0,Util.scrollTop()-a.cumulativeOffset().top)+120)+"px";Effect.Appear(b,{to:0.7,duration:0.25});Effect.Appear("modal-progress-content",{duration:0.25})},update:function(a){if(a.indexOf("/")>0){var b=a.split("/");a=Number(b[0])/Number(b[1])}if(a){ProgressBar.set("modal-progress",a,"")}},hide:function(){Effect.Fade("modal-progress-overlay",{duration:0.25});Effect.Fade("modal-progress-content",{duration:0.25})}};var Job={complete:{},handled:function(a){if(!a){return false}var b=!!Job.complete[a];Job.complete[a]=true;return b},peek:function(a){if(!a){return false}return !!Job.complete[a]}};var ProgressWatcher={job_info:{},INIT_POLL_INT:1000,FAILS_MEAN_FAIL:3,MODAL_WAIT_MS:1000,watch:function(a){ProgressWatcher.job_info[a.job_id]={};var b=ProgressWatcher.job_info[a.job_id];b.req=a;b.poll_int=ProgressWatcher.INIT_POLL_INT;b.poll_count=0;b.int_id=setInterval(ProgressWatcher.update_for(a.job_id),b.poll_int);b.failures=0;b.start_time=Util.time()},update_for:function(a){return function(){return ProgressWatcher.update(a)}},backoff:function(b){var a=ProgressWatcher.job_info[b];clearInterval(a.int_id);a.poll_int=Math.min(Math.floor(a.poll_int*1.5),30000);a.int_id=setInterval(ProgressWatcher.update_for(b),a.poll_int)},update:function(c){var b=ProgressWatcher.job_info[c];if(Job.peek(c)){return ProgressWatcher.done(c)}b.poll_count++;if(b.poll_count%10===0){ProgressWatcher.backoff(c)}if(!b.modaled&&Util.time()-b.start_time>ProgressWatcher.MODAL_WAIT_MS){var a=b.req.options;ModalProgress.show(a.progress_text,a.cover_this);a.onProgress=ModalProgress.update;b.modaled=true}new Ajax.Request("/job_status/"+c,{method:"post",t:Constants.TOKEN,onSuccess:function(f){var j=ProgressWatcher.job_info[c];var d=f.responseText;if(d.indexOf("err")===0){ProgressWatcher.done(c);ModalProgress.hide();if(j.req.options.onFailure&&!Job.handled(c)){j.req.options.onFailure(f)}return}if(d.indexOf("done")===0){j.req.options.job=false;if(!Job.handled(c)){new Ajax.Request("/job_results/"+c,{onSuccess:function(e){if(Job.handled(c)){return}Notify.clearIf(RequestWatcher.working_msg);if(j.req.options.onSuccess){j.req.options.onSuccess(e)}},onFailure:function(e){if(Job.handled(c)){return}Notify.clearIf(RequestWatcher.working_msg);if(j.req.options.onFailure){j.req.options.onFailure(e)}}})}var h=d.split("/");d=h[1]+"/"+h[1];ProgressWatcher.done(c);ModalProgress.hide()}else{try{if(j.req.options.onProgress){j.req.options.onProgress(f.responseText)}}catch(g){}}},onFailure:function(d){var e=ProgressWatcher.job_info[c];e.failures++;if(e.failures>=ProgressWatcher.FAILS_MEAN_FAIL){if(e.req.options.onFailure){e.req.options.onFailure(d,true)}RequestWatcher.remove(e.req);ProgressWatcher.done(c);ModalProgress.hide()}}})},done:function(b){var a=ProgressWatcher.job_info[b];clearInterval(a.int_id);delete ProgressWatcher.job_info[b];ModalProgress.hide()}};var Forms={submitOnlyOnce:function(){var a=Forms.submitted!==true;Forms.submitted=true;return a},disable:function(a){if(a){setTimeout(function(){a.disabled=true},0)}},enable:function(a){if(a){setTimeout(function(){a.disabled=false},0)}},clearInput:function(b,a){b=$(b);if(b.value==a){b.value="";b.style.color="#444444"}},add_vars:function(b,c){b=$(b);for(var a in c){if(c.hasOwnProperty(a)){var d=new Element("input",{type:"hidden",name:a});d.setValue(c[a]);d.addClassName("added-vars");b.insert(d)}}},clear_added_vars:function(a){$$(".added-vars").each(Element.remove)},mirror:function(c,b){c=$(c);b=$(b);function a(e,d){d.setValue($F(e));d.fire("db:value_change")}if(c&&b){c.observe("keyup",function(){a(c,b)});c.observe("db:autocompleted",function(){a(c,b)});b.observe("keyup",function(){a(b,c)});b.observe("db:autocompleted",function(){a(b,c)})}},collect_form_vars:function(d){d=d||$(document.body);var c=d.select("input").concat(d.select("textarea")).concat(d.select("select"));var a={};for(var b=0;b<c.length;b++){var f=c[b];if(f.name&&f.name!="t"){var e=f.getValue();if(e){if(typeof(e)!="string"){e=e.join(",")}if(a[f.name]!==undefined){if(typeof(a[f.name])=="string"){a[f.name]=[a[f.name],e]}else{a[f.name].push(e)}}else{a[f.name]=e}}}}return a},add_loading:function(b){if(b){b=$(b);var a=new Element("img",{src:"/static/images/icons/ajax-loading-small.gif"});a.addClassName("text-img ajax_submit_loading");b.insert({before:a})}},remove_loading:function(a){$$(".ajax_submit_loading").each(function(b){Util.yank(b)})},ajax_submit:function(d,b,g,e,c,a){if(d.ajax_submitted){return false}d.ajax_submitted=true;d.select(".suggestion-input").each(function(h){SuggestionInput.blank(h.identify())()});if(c){Forms.add_loading(c)}var f=Forms.collect_form_vars(d);if(a){f=$H(f).update(a).toObject()}new Ajax.DBRequest(b||d.action,{noAutonotify:true,parameters:f,onSuccess:function(h){if(g&&typeof(g)=="function"){g(h)}},onFailure:function(k){if(k){if(k.responseText.indexOf("err:")===0){var h=k.responseText.substr(4);if(h.indexOf("{")===0){var j=h.evalJSON(true);Forms.fill_errors(d,j)}else{Notify.ServerError(h)}}else{Notify.ServerError()}if(e&&typeof(e)=="function"){e(k)}}},onComplete:function(h){d.ajax_submitted=false;Forms.remove_loading()}});return false},clear_errors:function(a){a=a||$(document.body);a.select(".error-removable").invoke("remove")},fill_errors:function(d,c){c=c||{};d=d||$(document.body);Forms.clear_errors(d);for(var e in c){if(c.hasOwnProperty(e)){var f=d.down("[data-error-field-name='"+e+"']")||d.down("[name='"+e+"']");if(f){var b=new Element("br",{"class":"error-removable"});var a=new Element("span",{"class":"error-message error-removable"});a.update(c[e]);f.insert({before:a});f.insert({before:b})}}}},value:function(c){var b=$$('input[name="'+c+'"]');var e=null;var a=b.length;for(var d=0;d<a;d++){e=$(b[d]).getValue()||e}return e},postRequest:function(c,d,a){assert(c!==undefined,"postRequest missing action");d=d||{};a=a||{};d.t=Constants.TOKEN;var b=new Element("form",{action:c,method:"POST"});if(a.target){b.target=a.target}document.body.appendChild(b);Forms.add_vars(b,d);b.submit()}};var Referral,Invitations,ReferralRegisterAB,Account;Referral={select_all:1,show_login_modal:function(a){Modal.show(_("Invite Contacts From Your Email Address Book"),$("cli-login"),a||{})},get_selected_emails:function(){var a=[];$$("#contact-list input").each(function(b){if(b.checked){a.push(b.value)}});return a.join(", ")},send_invites:function(a){var b=Referral.get_selected_emails();Invitations.do_send(b,false,a,true);Modal.hide()},show_contact_info_modal:function(){Modal.show(_("Invite Contacts From Your Email Account"),DomUtil.fromElm("contact-info-modal"),{action:Referral.fetch_contacts,wit_group:"contact_importer_login"});$("email-prefix").focus();return false},show_error:function(a){Referral.hide_captcha();$("contact-info-error").update(a);$("contact-info-error").show()},error_messages:[N_("Bad user name or password"),N_("Bad user name"),N_("Bad password"),N_("Captcha challenge was raised"),N_("Captcha challenge raised"),N_("Captcha challenge was issued. Please login through Yahoo mail manually."),N_("AOL requires you to answer some security questions"),N_("Email address has not been verified"),N_("Account closed by system operator"),N_("Account deleted"),N_("Account disabled"),N_("Service disabled"),N_("Authorization required"),N_("Unknown gmail error"),N_("Gmail terms not agreed"),N_("Google contacts service unavailable. Try again later.")],show_captcha:function(a){Referral.hide_captcha();a=a.evalJSON(true);$("captcha-row").hide();$("contact-info-captcha-image").src=a.image.replace("http://","https://");$("contact-info-captcha-image").hide();Element.observe("contact-info-captcha-image","load",function(){$("contact-info-captcha-image").show()});$("contact-info-captcha-id").value=a.id;$("contact-info-captcha-answer").value="";$("captcha-row").show();$("captcha-answer-row").show();$("contact-info-error").update(_("Captcha required"));$("contact-info-error").show()},hide_captcha:function(){$("contact-info-captcha-id").value="";$("contact-info-captcha-answer").value="";$("captcha-row").hide();$("captcha-answer-row").hide()},parse_contacts:function(a){a=a.substr(9);return a},fetch_contacts:function(b){Event.stop(b);var d=$F("username");var c="";if(d.indexOf("@")>0){var a=d.split("@");d=a.first();c=a.last()}Referral.fetch_and_show_contacts(b,d,c,$F("email-password"),$F("contact-info-captcha-id"),$F("contact-info-captcha-answer"))},fetch_and_show_contacts:function(f,c,h,b,a,d){if(f){Event.stop(f)}$("contact-info-error").hide();Referral.show_loading_modal(h.split(".")[0]);c=h!==""?c+"@"+h:c;var g={email:c,password:b,select_all:Referral.select_all?1:0};if(a&&d){Object.extend(g,{captcha_id:a,captcha_answer:d})}new Ajax.DBRequest("/import_contacts",{noAutonotify:true,parameters:g,onSuccess:function(e){contacts=Referral.parse_contacts(e.responseText);Referral.show_select_contacts(contacts)},onFailure:function(j){if(j.responseText.indexOf("err:")===0){var e=j.responseText.substr(4);if(e.indexOf("captcha:")!==0){if(Referral.hide_on_error){Modal.hide()}else{Referral.show_login_modal()}Referral.show_error(_(e))}else{if(Referral.hide_on_error){Modal.hide()}else{Referral.show_login_modal()}Referral.show_captcha(e.substr(8))}}else{Referral.show_error(_("Unexpected server error."));if(Referral.hide_on_error){Modal.hide()}else{Referral.show_login_modal()}}},cleanUp:function(){$("modal-title").show()}})},show_loading_modal:function(a){var b=["gmail","yahoo","aol","hotmail","live","msn"];if(b.indexOf(a)>-1){$("email-provider-img").src="/static/images/referrals_"+a+".png";$("email-provider-img").show()}else{$("email-provider-img").hide()}Modal.show("Loading Contacts",$("loading-contacts-modal"),{},"",490);$("modal-title").hide()},show_select_contacts:function(g){if(g.length){$("contact-list").innerHTML=g;SuggestionInput.reset("contact-filter");var h=$$("#contact-list img").length;if(h===0){$("dropbox-users-text").style.visibility="hidden"}var e=$$(".contact-row").length;var a=ungettext("Good news! We've found %d contact from your contact list. Select the contact if you'd like to invite.","Good news! We've found %d contacts from your contact list. Select the contacts you'd like to invite.",e).format(e);$("contact-import-msg").update(a);Referral.contact_container=document.getElementById("contact-list");Referral.contact_rows=Referral.contact_container.childNodes;for(var b=0;b<Referral.contact_rows.length;b+=1){var j=Referral.contact_rows[b];j.search_text=j.childNodes[1].firstChild.innerHTML+j.childNodes[2].firstChild.innerHTML;var c=$(j.firstChild.firstChild);c.observe("click",Referral.checkbox_clicked)}Referral.fresh=true;Referral.update_invite_count()}var f=!g.length?"no-contacts-modal":"select-contacts-modal";var d=!g.length?_("Oops! No Contacts Here."):_("Choose Contacts");Modal.show(d,$(f),{action:Referral.action},null,600);Referral.filter_observer=new Form.Element.Observer("contact-filter",0.5,function(k,l){if(!SuggestionInput.defaulted(k)){Referral.filter(l)}})},checkbox_clicked:function(a){Referral.fresh=false;Referral.update_invite_count()},update_invite_count:function(b){if(!b&&Referral.contact_rows){b=0;for(var a=0;a<Referral.contact_rows.length;a+=1){if(Referral.contact_rows[a].firstChild.firstChild.checked){b+=1}}}var c=ungettext("Invite %d friend","Invite %d friends",b).format(b);$("select-contacts-modal").down("input[type=button]").setValue(c)},select_all_contacts:function(){$$(".contact-check input").each(function(a){a.checked=true});Referral.update_invite_count();return false},select_no_contacts:function(){$$(".contact-check input").each(function(a){a.checked=false});Referral.update_invite_count(0);return false},insert_contacts:function(){var b=[];$$(".contact-check").each(function(c){if(c.checked){b.push(c.value)}});if(b.length){SuggestionInput.clear("invite-recip");var a=$F("invite-recip");if(a){a+=", "}$("invite-recip").setValue(a+b.join(", "))}Modal.hide()},filter:function(f){if(f===Referral.last_search||(Referral.last_search===undefined&&f==="")){return}if(Referral.fresh){Referral.fresh=false;Referral.select_no_contacts()}Referral.last_search=f;var a=0;var e=new RegExp(RegExp.escape(f.strip()).split(/[;,\s]+/).join(".*"),"i");Referral.contact_container.style.display="none";var b=Referral.contact_rows.length;while(b--){var d=Referral.contact_rows[b];var c=d.style;if(e.test(d.search_text)){if(a%2===0){c.background="#ffffff"}else{c.background="#f4faff"}c.display="";a+=1}else{c.display="none"}}Referral.update_invite_count();Referral.contact_container.style.display=""},do_submit:function(a){assert(Referral.action&&typeof(Referral.action)=="function","Finished with contact list importer but have no callback");Referral.action(a)},do_cancel:function(){assert(Referral.cancel_action&&typeof(Referral.cancel_action)=="function","Finished with contact list importer but have no cancel callback");Referral.cancel_action()},hide_warning:function(c,a){var b=function(){Referral.hide(c,a)};Modal.icon_show("group_add",_("Remove Referral?"),$("referral_warning"),{action:b})},hide:function(b,a){b=$(b);assert(b,"Referral elm doesn't exist");assert(Util.isNumber(a),"Referral id is not a number");Modal.hide();new Ajax.DBRequest("/account/hide_referral",{parameters:{referral_id:a},onSuccess:function(c){var d=b.up("tr");new Effect.Fade(d)}})},status_tooltip:function(d,a,c){var b=a<=4?a.toString():"invalid";Tooltip.show(d,$("referral_"+b).innerHTML.format({"email-address":c}))},get_invite_status:function(){var a=$("referral_email");if(!a||SuggestionInput.defaulted(a)||!a.value.strip()){return}$("invite_status_result").update();Forms.add_loading("status-button");new Ajax.DBRequest("/referral_status",{parameters:{email:a.value},onSuccess:function(b){a.blur();SuggestionInput.reset("referral_email");a.focus();$("invite_status_result").update(b.responseText)},cleanUp:function(){Forms.remove_loading()}})}};Invitations={submit:function(a){a=a||window.event;if(a.keyCode==Event.KEY_RETURN){Invitations.send()}},send:function(b,a){var c=$("invite-recip");Invitations.do_send($F(c),c,b,a)},do_send:function(c,e,b,a){var f=c.strip().split(/[;,\s]+/).length;if(!f||c===""){Notify.ServerError(_("Please enter an e-mail address."));return}if(c!=$("invite-recip").title){var d={emails:c,referral_src:b};if(Referral.source){d.source=Referral.source}new Ajax.DBRequest("/send_invite",{parameters:d,onSuccess:function(g){if(Invitations.custom_on_success){Invitations.custom_on_success(g.responseText,a)}else{Notify.ServerSuccess(g.responseText.substr(5))}if(Referral.on_success){Referral.on_success(g.responseText)}if(e){e.setValue("")}},onFailure:function(g){if(g.responseText.startsWith("err:")){Notify.ServerError(g.responseText.substr(4))}else{Notify.ServerError()}},noAutonotify:true})}else{Notify.ServerError(_("Please enter an email address."))}return false},addCustomMessage:function(b){Event.stop(b);var c=b.target.tagName=="A"?$(b.target):$(b.target).up("a");c.addHTML=c.innerHTML;c.update(Sprite.make("email_delete",{"class":"link-img"}));c.appendChild(document.createTextNode(_("Remove custom message")));c.stopObserving("click");c.observe("click",Invitations.hideCustomMessage);var a=new Element("textarea",{title:_("Enter a custom message here"),name:"custom_message","class":"custom-message suggestion-input act_as_block textinput",rows:3,cols:25,style:"margin-top: 0.75em;"});a.setValue(Invitations.custom_message||a.title);SuggestionInput.register(a);c.up().previous("div").insert({bottom:a});SuggestionInput.register(a);ActAsBlock.resize(a);return false},hideCustomMessage:function(b){Event.stop(b);var c=b.target.tagName=="A"?$(b.target):$(b.target).up("a");c.stopObserving("click");c.observe("click",Invitations.addCustomMessage);c.update(c.addHTML);var a=c.up().up().select(".custom-message")[0];Invitations.custom_message=$F(a);a.parentNode.removeChild(a);return false}};ReferralRegisterAB={log:function(a){new Ajax.Request("/referral_register_log",{method:"GET",parameters:{event:a}})}};Account={referralPages:{},referralCurrentPage:-1,referralTabClick:function(){if(Account.referralCurrentPage!=-1){return}Account.getReferralsPage(0)},getReferralsPage:function(a){Account.referralCurrentPage=a;if(Account.referralPages[a]){Account.showReferrals(a)}else{Feed.showLoading(false,$("referrals-container"));new Ajax.DBRequest("/account/referralspage/"+(a).toString(),{onSuccess:function(b){Account.referralPages[a]=b.responseText;Account.showReferrals(a)}})}return false},showReferrals:function(a){Feed.hideLoading();$("referrals-container").update(Account.referralPages[a])}};var EventBubble={make:function(b){var a='<table class="ebubble"><tr><td class="tl"></td><td class="t"></td><td class="tr"></td></tr><tr><td class="l"></td><td class="c">#{content}</td><td class="r"></td></tr><tr><td class="bl"></td><td class="b"><img src="/static/images/events_bubble_tail.gif" alt="" class="events_bubble_tail"/></td><td class="br"></td></tr></table>';return a.interpolate({content:b})}};var Feed={firstTime:true,addComment:function(){if(!$F("comment").length||SuggestionInput.defaulted($("comment"))){return false}new Ajax.DBRequest("/share_ajax/add_comment",{parameters:{comment:$F("comment"),ns_id:Feed.ns_id},onSuccess:function(a){Feed.addCommentRow(a.responseText);$("comment").value=""}});return false},addCommentRow:function(a){var f=new Element("tr");var e=new Element("td",{valign:"top","class":"note"});var d=new Element("img",{src:"/static/images/icons/comment.gif"});e.insert(d);var c=new Element("td",{valign:"top","class":"note"});c.innerHTML=a;var b=new Element("td",{valign:"top","class":"note",width:"100",nowrap:"nowrap",align:"right"});b.innerHTML=_("(just added)");f.update(e);f.insert(c);f.insert(b);$("event-table").down("tr").insert({before:f})},feedPages:{},page_num:0,ns_id:"false",page_size:10,showLoading:function(f,a,e,d){e=true;var c=$("feed-loading");a=$(a);if(!c){c=new Element("div",{id:"feed-loading"});var b='<table style="height: 100%; width: 100%; background:#fff;"><tr><td valign="top"><div id="feed-loading-text" style="padding-top: 16px;text-align:center;"></div></td></tr></table>';c.update(b);document.body.appendChild(c)}c.clonePosition(a);if(c.getWidth()===0){return}if(Util.ie){c.style.left=a.getBoundingClientRect().left+"px"}c.setOpacity(0.9);if(f){$("feed-loading-text").update()}else{$("feed-loading-text").update("<img src='/static/images/icons/ajax-loading.gif' style='vertical-align: bottom;'/>"+(e?"":_("Loading...")))}$("feed-loading").show();if(d){c.style.zIndex="1001"}},hideLoading:function(){$("feed-loading").hide()},changeNamespace:function(a,b){Feed.ns_id=a;Feed.getPage(0,Feed.page_size)},changeDate:function(a,b){Feed.date=a;Feed.nice_date=Util.niceDate(a);if(!b){Feed.getPage(0,Feed.page_size)}},getPage:function(a,b){Feed.page_size=b;Feed.page_num=a;if(Feed.feedPages[Feed.get_key(a)]){Feed.show(a,b)}else{Feed.showLoading(false,$("events-content"));var c=Feed.ns_id!="false"?"&ns_id="+Feed.ns_id.toString():"&is_home=yes";var d=b?"&feed_items="+b.toString():"";new Ajax.DBRequest("/next_events?cur_page="+(a).toString()+c+d,{parameters:{date:Feed.nice_date?Feed.nice_date:""},onSuccess:function(e){Feed.feedPages[Feed.get_key(a)]=e.responseText;Feed.show(a,b)}})}return false},show:function(a,b){Feed.hideLoading();$("events-content").update(Feed.feedPages[Feed.get_key(a)]);var c=$("add-comment-button");if(c){HotButton.register(c)}},tabClick:function(a){var b=$("event-table");if(!b){Feed.getPage(0);Feed.clearNewEvents()}},clearNewEvents:function(a){$$(".events_bubble").invoke("hide")},url_check:function(b,d,c,a){b=b||"false";if(Feed.ns_id!=b){$$("#filter-list .selected").invoke("removeClassName","selected");var f=$("sf"+b);assert(f,"Missing sf elm for "+b);f.addClassName("selected")}var e=(Feed.ns_id!=b||Feed.page_size!=d||Feed.page_num!=c||Feed.nice_date!=a);Feed.ns_id=b||Feed.ns_id;Feed.page_size=d||Feed.page_size;Feed.page_num=c||Feed.page_num;if(a){Feed.changeDate(new Date(a),true)}if(e){if(a){EventDatePicker.change_date(Feed.date)}Feed.getPage(Feed.page_num,Feed.page_size)}},set_url:function(c){var a=c.ns_id!==undefined?c.ns_id:Feed.ns_id,e=c.page_size||Feed.page_size,d=c.page_num!==undefined?c.page_num:Feed.page_num,b=c.date!==undefined?c.date:Feed.nice_date;var f=["events",a,e,d,b].join(":");window.location.href="#"+f},get_key:function(a){return Feed.page_size+"_"+Feed.ns_id+"_"+Feed.date+"_"+a+"_"+Feed.nice_date},show_rss_modal:function(b,a){assert(a,"RSS Feed modal with no ns_id");Modal.icon_show("feed",_("Subscribe to this RSS Feed"),$("rss-modal"));$("rss_url").setValue(b);BrowseActions.addCopyUrlFlash(b);$("copy_success").update();$("reset-rss-link").href="/reset_rss/"+a;$("rss_url").select()}};var Timezone={check_timezone:function(){if(!Constants.uid){return}var a=Timezone.get_current_timezone();if(Constants.auto_timezone_offset===undefined||Constants.auto_timezone_offset!=a){Timezone.update(a)}},get_current_timezone:function(){var c=new Date();c.setSeconds(0);c.setMilliseconds(0);var b=c.toGMTString();var d=new Date(b.substring(0,b.lastIndexOf(" ")-1));var a=(c-d)/(1000*60*60);return a},update:function(a){assert(typeof(a)=="number","Timezone offset was not a number: "+a);new Ajax.DBRequest("/set_timezone",{parameters:{offset:a},noAutonotify:true})},on_change:function(){var a=[];var b=[$("timezone_area"),$("timezone_location"),$("timezone_city")];b.each(function(c){if(c){a.push($F(c))}});Timezone.update_form(a)},update_form:function(l){l=l||["America"];assert(Timezone.tree,"Timezone tree missing...");$("tz").update();var a=["timezone_area","timezone_location","timezone_city"];var e=Timezone.tree;var c=Math.max(l.length+1,2);for(var g=0;g<c;g+=1){var d=l[g];var n=Object.keys(e);if(!n.length){break}var m=new Element("select",{id:a[g],name:a[g]});m.observe("change",Timezone.on_change);for(var f=0,k=n.length;f<k;f+=1){var b=n[f];var h=new Element("option");h.value=b;h.update(b);if(b==d){h.selected=true}m.appendChild(h)}$("tz").appendChild(m);e=e[d]}Util.syncHeight()},auto:function(){var a=$F("timezone_auto");if(a){$("tz").update()}else{Timezone.update_form()}},build_tree:function(b){var a={};b.each(function(e){var c=e.split("/");var d=a;c.each(function(f){if(!d[f]){d[f]={}}d=d[f]})});Timezone.tree=a}};document.observe("dom:loaded",Timezone.check_timezone);var DBCalendar=Class.create({initialize:function(b,a){this.options=a||{};this.container=$(b);assert(this.container,"Couldn't find the element");this.today=new Date();if(this.options.disable_future){this.options.last_day=this.options.last_day||this.today}if(this.options.disable_past){this.options.first_day=this.options.first_day||new Date(this.today.getFullYear(),this.today.getMonth(),this.today.getDate())}this.current_day=Util.start_of_day(this.options.selected_day||new Date(this.today.getFullYear(),this.today.getMonth(),1));this.selected_day=Util.start_of_day(this.options.selected_day||new Date(this.today.getFullYear(),this.today.getMonth(),this.today.getDate()));this.render()},change_month:function(b,a){Event.stop(b);this.current_day.setMonth(a);this.render();if(this.options.onMonthChange){this.options.onMonthChange(this.current_day)}},change_day:function(b,a){Event.stop(b);this.container.select(".selected").invoke("removeClassName","selected");$(b.target).addClassName("selected");this.selected_day.setMonth(this.current_day.getMonth());this.selected_day.setYear(this.current_day.getFullYear());this.selected_day.setDate(a);if(this.options.onDateChange){this.options.onDateChange(this.selected_day)}},render:function(){var f=this.render_days();this._next_month=(function(g){this.change_month(g,this.current_day.getMonth()+1)}).bind(this);this._prev_month=(function(g){this.change_month(g,this.current_day.getMonth()-1)}).bind(this);var c=new Element("a");c.addClassName("changemonth next");c.update(Sprite.make("arrowright",{}));Event.observe(c,"click",this._next_month);var d=new Element("a");d.addClassName("changemonth prev");d.update(Sprite.make("arrowleft",{}));Event.observe(d,"click",this._prev_month);var e=new Element("div");e.addClassName("calendar clearfix");var b=new Element("h5");var a=[_("January"),_("February"),_("March"),_("April"),_("May"),_("June"),_("July"),_("August"),_("September"),_("October"),_("November"),_("December")];b.update(_("%(month)s %(year)s").format({month:a[this.current_day.getMonth()],year:this.current_day.getFullYear()}));e.insert(c);e.insert(d);e.insert(b);e.insert(f);this.container.update(e)},render_days:function(){var f=new Date(this.current_day.getFullYear(),this.current_day.getMonth(),1);var e=f.getDay();var g=new Element("div");g.addClassName("days");for(var a=e;a>0;a-=1){var d=new Date(f.getFullYear(),f.getMonth(),f.getDate());d.setDate(d.getDate()-a);g.insert(this.render_day(d,true))}var c=new Date(this.current_day.getFullYear(),this.current_day.getMonth(),1);while(c.getMonth()==this.current_day.getMonth()){g.insert(this.render_day(c));c=new Date(this.current_day.getFullYear(),this.current_day.getMonth(),c.getDate()+1)}var b=new Date(this.current_day.getFullYear(),this.current_day.getMonth()+1,0);while(b.getDay()!=6){b=new Date(b.getFullYear(),b.getMonth(),b.getDate()+1);g.insert(this.render_day(b,true))}return g},render_day:function(c,d){if(this.options.last_day){d=d||c>this.options.last_day}if(this.options.first_day){d=d||c<this.options.first_day}var b;if(d){b=new Element("span")}else{b=new Element("a")}b.update(c.getDate());b.addClassName("date");if(this.selected_day.getDate()==c.getDate()&&this.selected_day.getMonth()==c.getMonth()&&this.selected_day.getFullYear()==c.getFullYear()){b.addClassName("selected")}if(d){b.addClassName("inactive")}else{this._change_day=(function(a){this.change_day(a,c.getDate())}).bind(this);Event.observe(b,"click",this._change_day)}Util.disableSelection(b);return b}});var EventDatePicker={show_calendar:function(a){if(EventDatePicker.shown){return}Event.stop(a);if(!EventDatePicker.calendar){var b=new Element("div",{id:"cal_container"});b.observe("click",function(d){Event.stop(d)});$(document.body).insert(b);EventDatePicker.calendar=new DBCalendar("cal_container",{onDateChange:function(e){EventDatePicker.change_date(e,0)},disable_future:true,first_day:EventDatePicker.first_event});b.absolutize();var c=$("cal_date");b.clonePosition(c,{setWidth:false,setHeight:false,offsetTop:c.getHeight()-1,offsetLeft:c.getWidth()-b.down().getWidth()})}$("cal_container").show();$(document.body).observe("click",EventDatePicker.hide_calendar);EventDatePicker.shown=true},hide_calendar:function(a){Event.stop(a);$("cal_container").hide();$(document.body).stopObserving("click",EventDatePicker.hide_calendar);EventDatePicker.shown=false},change_date:function(a,b){if(b!==undefined){Feed.page_num=0}var c=$("cur_date_text");c.update(a.localize());Feed.set_url({date:Util.niceDate(a)})}};var TextInputDatePicker=Class.create({initialize:function(c,b){this.options={include_seconds:true,choose_eod:false};Object.extend(this.options,b||{});this.input=$(c);assert(this.input,"Couldn't find the element "+c.toString());var a=new Date();var e=this.input.value?Util.from_mysql_date(this.input.value):false;var d=new Date(a.getUTCFullYear(),a.getUTCMonth(),a.getUTCDate());this.cal_icon=Sprite.make("calendar_view_month",{align:"absmiddle"});this.cal_container=new Element("div",{id:"cal_container_"+c,style:"display: none; position: absolute; z-index: 1"});this.calendar=new DBCalendar(this.cal_container,{onDateChange:this.onDateChange.bind(this),last_day:d,selected_day:e});this.input.insert({after:this.cal_icon});this.cal_icon.observe("click",this.toggle_cal.bindAsEventListener(this));this.cal_container.clonePosition(this.input,{setWidth:false,setHeight:false,offsetTop:this.input.getHeight()});this.cal_icon.insert({after:this.cal_container})},toggle_cal:function(a){if(a){Event.stop(a)}this.cal_container.toggle()},hide_cal:function(a){if(a){Event.stop(a)}this.cal_container.hide()},onDateChange:function(a){if(this.options.choose_eod){a.setTime(Util.start_of_day(a).getTime()+86399999)}this.input.value=Util.to_mysql_date(a,true);this.hide_cal()}});var Apps={confirm_disable:function(d,c,b){var e=b?_("Are you sure you want to disable '%(app-name)s'?"):_("Are you sure you want to delete '%(app-name)s'?");DomUtil.fillVal(e.format({"app-name":d.escapeHTML()}),"app-disable-text");Modal.icon_show("application_delete",b?_("Confirm disable"):_("Confirm delete"),$("app-disable-modal"));var a="/developers/disable_app/"+c;$("app-disable-modal").down("form").action=a;$("disable-app-button").setValue(b?_("Disable"):_("Delete"))},enable_app:function(b){var a="/developers/enable_app/"+b;window.location.href=a},show_app_limit_reached:function(){Modal.icon_show("application_add",_("Developer app limit reached"),$("app-limit-modal"))},show_create:function(){Modal.icon_show("application_add",_("Create a new app"),$("create-app"),{},false,500);ActAsBlock.register(false,$("modal-content"))},do_create:function(b){if(b){Event.stop(b)}var a=$("create-app-form");assert(a,"Missing form for Apps.do_create");Forms.ajax_submit(a,false,function(c){if(c&&c.responseText&&c.responseText!="ok"){window.location.href=c.responseText}else{window.location.reload()}},false,b&&b.target)},get_edit:function(b,a){Modal.show_loading("application_edit",_("Loading info for '%(app-name)s'").format({"app-name":b.escapeHTML()}));new Ajax.DBRequest("/developers/app_info",{parameters:{app_id:a},onSuccess:function(c){Apps.show_edit(b,c.responseText)}})},show_edit:function(a,b){Modal.icon_show("application_edit","'%(app-name)s' options".format({"app-name":a.escapeHTML()}),b)},do_edit:function(b){if(b){Event.stop(b)}var a=$("update-app-form");assert(a,"Missing form for Apps.do_edit");Forms.ajax_submit(a,false,function(){window.location.reload()},false,b&&b.target)},show_about:function(g,f,d,a,c,b){if(g){Event.stop(g)}DomUtil.fillVal(f.escapeHTML(),"app-name");DomUtil.fillVal(d.escapeHTML(),"app-description");Modal.show(f,$("about-app"),{"force-icon":c});$("application-link").href=b},show_uninstall:function(f,d,c,a,b){if(f){Event.stop(f)}Modal.vars={token_id:c,delete_row_type:"inst-app",action:"uninstall_app"};var g="delete-"+a+"-app-confirm";if(b){DomUtil.fillVal(b.escapeHTML(),"app_folder")}else{if(a=="sandbox"){return Apps.do_action()}}DomUtil.fillVal(d.escapeHTML(),"app_name");Modal.icon_show("application_delete",_("Remove %(app_name)s?").format({app_name:d.escapeHTML()}),$(g),Modal.vars)},do_uninstall:function(){var a=new Ajax.DBRequest("/api/uninstall_app",{parameters:{id:Modal.vars.token_id,keep_sandbox_files:$F("keep_sandbox_files")},onSuccess:function(b){Notify.ServerSuccess(b.responseText);$("inst-app-"+Modal.vars.token_id.toString()+"-row").hide()}});Modal.hide()},show_confirm:function(j,g,h,c,b,l){if(j){Event.stop(j)}var k=$H({token_id:h,action:c});k.update(l);var d={"delete":_("Are you sure you want to delete %(app-name)s?"),uninstall:_("Are you sure you want to uninstall %(app-name)s?"),renew:_("Are you sure you want to renew your token for %(app-name)s")};assert(b in d,"Unexpected confirmation action '%s'".format(b));DomUtil.fillVal(d[b].format({"app-name":g.escapeHTML()}),"token-confirm-text");var a=Modal.show;if(l.icon){a=function(){var e=$A(arguments);e.unshift(l.icon);Modal.icon_show.apply(this,e)}}var f={"delete":_("Confirm delete"),uninstall:_("Confirm uninstall"),renew:_("Confirm token renewal")};assert(b in f,"Unexpected confirmation action '%s'".format(b));a(f[b],$("token-confirm"),k.toObject())},do_action:function(){new Ajax.DBRequest("/api/"+Modal.vars.action,{parameters:{id:Modal.vars.token_id},onSuccess:function(a){Notify.ServerSuccess(a.responseText);if(Modal.vars.delete_row_type){$(Modal.vars.delete_row_type+"-"+Modal.vars.token_id.toString()+"-row").hide()}else{window.location.reload()}}})},enable_users_in_dev:function(a){Modal.show(_("Enable additional users"),$("confirm-users-in-dev-modal"),{enable:function(){new Ajax.DBRequest("/developers/enable_users_in_dev/"+a,{onSuccess:function(b){$("enable-users-in-dev").remove();$("none-linked").show();Modal.hide()}})}});return false},remove_user:function(c,b,a){new Ajax.DBRequest("/developers/remove_user/"+c+"/"+b,{onSuccess:function(d){table=$(a).up("table");$(a).up("tr").remove();if(table.down("tr").id=="none-linked"){$("none-linked").show();$("apply-for-more").hide()}}});return false},show_add_key_confirm:function(c,b,a){if(c){Event.stop(c)}DomUtil.fillVal(b.escapeHTML(),"app-name");Modal.show(_("Confirm key creation"),$("add-key-confirm"),{app_id:a});return 0},do_add_key:function(a){new Ajax.DBRequest("/api/create_app_token",{parameters:{id:Modal.vars.app_id},onSuccess:function(b){Notify.ServerSuccess(_("Key created successfully."));var d="<tr id=\"token-#{id}-row\"><td>#{key}</td><td>#{secret}</td><td><a href=\"#\" onclick=\"Apps.show_del_key_confirm(event, '#{key}', '#{secret}', '#{id}');\">"+Sprite.html("x")+"</a></td></tr>";var c=b.responseText.evalJSON(true);c.id=Number(c.id);c.key=c.key.replace("'","");c.secret=c.secret.replace("'","");d=d.interpolate(c);$("api-key-last-row").insert({before:d})}})},show_del_key_confirm:function(d,b,a,c){if(d){Event.stop(d)}DomUtil.fillVal(b.escapeHTML(),"token-key");DomUtil.fillVal(a.escapeHTML(),"token-secret");Modal.show(_("Confirm key removal"),$("del-key-confirm"),{token_id:c});return 0},do_del_key:function(a){new Ajax.DBRequest("/api/delete_app_token",{parameters:{id:Modal.vars.token_id},onSuccess:function(c){Notify.ServerSuccess(_("Key removed successfully."));var b=c.responseText.evalJSON(true);$("token-"+b.id+"-row").hide()}})},restore_sandbox:function(b,a){var d=$("restore-sandbox");Modal.icon_show("folder_app",_('Restore app folder "%(filename)s"').format({filename:FileOps.filename(b).escapeHTML()}),d);var c=$("restore-sandbox-form");Forms.add_vars(c,{ns_id:a})},submit_restore_sandbox:function(b){Event.stop(b);var a=$("restore-sandbox-form");Forms.ajax_submit(a,false,function(c){Modal.hide();Notify.ServerSuccess(_("Restored app folder"));if(c.responseText.length){Browse.reload_fqpath(c.responseText)}else{Browse.reload("","",true)}},false,b.target);return false},developer_support:function(){var a=$("dev-support-modal");Modal.icon_show("bug",_("Dropbox developer support"),a)},submit_developer_support:function(b){var a=$("dev-support-form");assert(a,"Form is missing in submit_developer_support");Forms.ajax_submit(a,false,function(){Modal.hide();Notify.ServerSuccess(_("Thanks for your ticket.  We'll get back to you soon."))},false,b&&b.target)},submit_app_info:function(c,a){try{var b=$("update-app-form");Forms.ajax_submit(b,"/developers/app_info/%s".format(a),function(d){b.submit()},false,c&&c.target)}finally{return false}},delete_screenshot:function(a,b,c){new Ajax.DBRequest("/developers/delete_screenshot/%s".format(b),{parameters:{screenshot_id:c},onSuccess:function(d){Effect.Fade(a)}})},add_screenshot_form:function(){var a=new Element("input",{type:"file",name:"screenshots"});$("screenshots-container").appendChild(a)},show_need_users_modal:function(a){Event.stop(a);Modal.icon_show("error",_("Please test this app"),$("app-need-users-modal"));return false}};var AppDirectory={click:function(a){a=Object.toQueryString(a);AppDirectory.get_page(a);HashRouter._set_hash(a)},get_page:function(a){Feed.showLoading(true,"list-content");new Ajax.Request("/apps/list?"+a,{onSuccess:function(b){$("list-content").update(b.responseText)},onComplete:function(){Feed.hideLoading()}})},hash_change:function(b){var a=b.memo.hash;AppDirectory.get_page(a)},platform_change:function(){var b=Object.clone(AppDirectory.filter_state);var a=[];$$(".platform input").each(function(c){if(c.checked){a.push(c.value)}});b.page=0;b.platform=a.join(",");AppDirectory.click(b)},set_order:function(a){var b=Object.clone(AppDirectory.filter_state);b.order_by=a;b.page=0;AppDirectory.click(b)},set_page:function(a){var b=Object.clone(AppDirectory.filter_state);b.page=a;AppDirectory.click(b)}};var AppReview={page:0,get_page:function(a,b){Feed.showLoading(true,$("reviews").down("div"));new Ajax.Request("/apps/reviews",{parameters:{page:b,app_id:a},onSuccess:function(c){AppReview.update(c.responseText);AppReview.page=parseInt(b,10);HashRouter.set_hash("review",a,b.toString());$("reviews").scrollTo()},onComplete:function(){Feed.hideLoading()}})},update:function(a){$("reviews").update(a)},check_hash:function(a,b){b=b||0;b=parseInt(b,10);if(b!=AppReview.page){AppReview.get_page(a,b)}},add_review:function(c,a){Event.stop(c);var b=$("app-review-form");Forms.ajax_submit(b,false,function(d){AppReview.get_page(a,0);b.down("textarea").setValue("")},false,c.target)}};var Twitter={get_progress_container:function(){assert(Twitter.progress_container,"Twitter is missing progress_container");var a=$(Twitter.progress_container);assert(a,"Missing progress_container elm");return a},follow_dropbox:function(a){if(a.showWorking){a.showWorking()}var b=function(){if(a.onFailure){a.onFailure()}else{window.location.reload()}};new Ajax.DBRequest("/twitter/follow_us",{onSuccess:function(c){if(!c.responseText.startsWith("ok")){b()}else{if(a.onSuccess){a.onSuccess()}}},onFailure:function(){b()}})},do_auth:function(a){window.open("/twitter/request_token","twitter_auth","width=800,height=400");if(a){Twitter.onLoginSuccessCallback=a}},start_flow:function(g,f,e,d,c){var b=$("post-options");assert(b,"Missing content for twitter flow");Modal.icon_show("page_paste",g,b);if(!$F("post-message")){$("post-message").setValue(f)}var a=$("share-this-message");assert(a,"Missing button");a.stopObserving("click");a.observe("click",function(h){if(h){Event.stop(h)}SharingModel.start_twitter_flow($F("post-message"),e,d,c)});if(!Twitter.chars_left_interval){Twitter.chars_left_interval=setInterval(Twitter.update_chars_left,250)}},update_chars_left:function(){var d=$("twitter-chars-left");var c=$("twitter-checkbox")&&$F("twitter-checkbox");var a=$("facebook-checkbox")&&$F("facebook-checkbox");if(c){d.style.visibility="";var e=140-$F("post-message").strip().length;if(e<0){d.addClassName("error-message")}else{d.removeClassName("error-message")}d.update(e)}else{d.style.visibility="hidden"}var b=$("share-this-message");if(!a&&!c){b.addClassName("grayed");b.disabled=1}else{b.removeClassName("grayed");b.disabled=0}},show_login:function(a){if(a){Twitter.onLoginSuccessCallback=a}DomUtil.updateFromElm(Twitter.get_progress_container(),"inline-twitter-auth")},show_posting:function(){Modal.hide();Twitter.get_progress_container().update(DomUtil.fromElm("sharing-progress"))},show_complete:function(b){var a=Twitter.get_progress_container();Twitter.show_complete_into(b,a)},show_complete_into:function(g,a){a.update(DomUtil.fromElm("sharing-posted"));var d="twitter";var f=_("View Tweet");var b;if(g.startsWith("ok")){b="http://www.twitter.com/"}else{b=g}var e=a.down("#view-post");e.href=b;e.update(f);var c=Sprite.make(d);e.insert({top:c})},post:function(c,e,b){assert(c,"Twitter message is empty");var d={message:c,from_referrals:Twitter.from_referrals,from_free:Twitter.from_free};new Ajax.DBRequest("/twitter_post",{parameters:d,onSuccess:function(f){if(f.responseText=="login"){Twitter.onLoginSuccessCallback=function(){Twitter.post(c)};var g=Twitter.custom_show_auth||Twitter.show_login;g()}else{Modal.hide();var h=Twitter.onPostSuccessCallback||Twitter.show_complete;h(f.responseText)}}});var a=Twitter.custom_show_posting||Twitter.show_posting;a()},custom_post:function(a,b){if(b){Twitter.onPostSuccessCallback=b}if(!a){return}assert(a,"Twitter message doesn't exist");if(!Constants.uid){window.open("http://www.twitter.com/home?status="+encodeURI(a))}else{Twitter.post(a)}},prompt_message:function(a,c,b){if(Twitter.profile_image){$("twitter-profile-image").src=Twitter.profile_image}assert(c,"Expected a message for twitter");Twitter.onPostSuccessCallback=b;Modal.icon_show("twitter",_("Post to Twitter"),$("twitter-prompt"));$("twitter-prompt").down("#twitter-msg").update(c)}};var FacebookOAuth={get_progress_container:function(){assert(FacebookOAuth.progress_container,"Facebook is missing progress_container");var a=$(FacebookOAuth.progress_container);assert(a,"Missing progress_container elm");return a},do_auth:function(a){window.open("/fb/access_token","fb_auth","width=600,height=450");if(a){FacebookOAuth.onLoginSuccessCallback=a}},show_posting:function(){Modal.hide();FacebookOAuth.get_progress_container().update(DomUtil.fromElm("sharing-progress"))},show_auth:function(a){if(a){FacebookOAuth.onLoginSuccessCallback=a}DomUtil.updateFromElm(FacebookOAuth.get_progress_container(),"inline-facebook-auth")},show_complete:function(){var a=FacebookOAuth.get_progress_container();a.update(DomUtil.fromElm("sharing-posted"));var d="facebook";var f="View Post";var b="http://www.facebook.com/profile.php?v=wall";var e=a.down("#view-post");e.href=b;e.update(f);var c=Sprite.make(d);e.insert({top:c})},post:function(e,d,c,b,f){if(!Constants.uid){window.open("http://www.facebook.com/sharer.php?u="+encodeURI(d)+"&t="+encodeURI(c));return}var a=FacebookOAuth.custom_show_posting||FacebookOAuth.show_posting;a();new Ajax.DBRequest("/fb/post",{parameters:{message:e,link:d,link_name:c,description:b,from_referrals:FacebookOAuth.from_referrals,from_free:FacebookOAuth.from_free,picture:f?f:""},onSuccess:function(g){if(g.responseText.startsWith("ok")){var j=FacebookOAuth.custom_show_complete||FacebookOAuth.show_complete;j()}else{var h=FacebookOAuth.custom_show_auth||FacebookOAuth.show_auth;h();FacebookOAuth.onLoginSuccessCallback=function(){FacebookOAuth.post(e,d,c,b)}}}})}};var MP3Player={state:false,file:false,volume_percent:100,meta:{},on_ready:false,init:function(b){var e={type:"sound",id:"mp3embed"};if(b){e.file=encodeURI(encodeURI(encodeURI(b)))}var d={allowScriptAccess:"always"};var a={name:"mp3embed"};var f=new Element("div",{id:"mp3embed"});var c=document.body;if(Prototype.Browser.Gecko){c=document.documentElement}c.appendChild(f);swfobject.embedSWF("/static/swf/player-5.2.1065-ID3.swf","mp3embed","1","1","9",false,e,d,a,function(g){MP3Player.player=$(g.ref);MP3Player.file=b})},load:function(a){if(MP3Player.file==a){return}if(MP3Player.player){a=decodeURIComponent(a);MP3Player.player.sendEvent("load",[{file:a,type:"sound"}]);MP3Player.meta={};MP3Player.play()}else{MP3Player.init(a)}MP3Player.file=a},volume:function(a){MP3Player.volume_percent=a;if(MP3Player.player){MP3Player.player.sendEvent("volume",a.toString())}},seek:function(a){MP3Player.player.sendEvent("seek",a.toString())},play:function(){if(MP3Player.state===false||MP3Player.state=="idle"||MP3Player.state=="completed"||MP3Player.state=="paused"){MP3Player.player.sendEvent("play")}},pause:function(){if(MP3Player.state=="playing"||MP3Player.state=="buffering"||MP3Player.state=="completed"){MP3Player.player.sendEvent("play")}},stop:function(){MP3Player.player.sendEvent("stop");delete MP3Player.file},get_state:function(){return MP3Player.state},volume_change:function(a){$(document.body).fire("mp3:volume",a)},load_change:function(a){$(document.body).fire("mp3:load",a);if(a.percentage==100){$(document.body).fire("mp3:load_complete",a)}},time_change:function(a){MP3Player.duration=a.duration;$(document.body).fire("mp3:time",a)},state_change:function(a){MP3Player.state=a.newstate.toLowerCase();$(document.body).fire("mp3:"+MP3Player.state)},meta_change:function(a){if(a.type=="id3"){$(document.body).fire("mp3:id3",a);MP3Player.meta=a}},observe:function(a,b){a=a.toLowerCase();$(document.body).observe("mp3:"+a,b)},stopObserving:function(a){a=a.toLowerCase();$(document.body).stopObserving("mp3:"+a)}};function playerReady(a){if(a.id!="mp3embed"){return}MP3Player.player.addControllerListener("PLAY","MP3Player.played");MP3Player.player.addControllerListener("STOP","MP3Player.stopped");MP3Player.player.addControllerListener("VOLUME","MP3Player.volume_change");MP3Player.player.addModelListener("STATE","MP3Player.state_change");MP3Player.player.addModelListener("TIME","MP3Player.time_change");MP3Player.player.addModelListener("BUFFER","MP3Player.load_change");MP3Player.player.addModelListener("META","MP3Player.meta_change");MP3Player.player.sendEvent("volume",MP3Player.volume_percent.toString());MP3Player.play();if(MP3Player.on_ready){MP3Player.on_ready()}}var MP3Controller={current:false,playlist:[],click:function(c,a){MP3Controller.playlist=[];var b=Util.resolve_target(c.target,"a.play");if(b!=MP3Controller.current){MP3Controller.play(b,a)}else{MP3Controller.stop(b)}},play_all:function(){var a=[];$$(".download-song").each(function(b){a.push(b.href)});a.reverse();MP3Controller.play_playlist(a)},play_playlist:function(a){var c;var b=a.pop();MP3Controller.playlist=a;$$(".download-song").each(function(d){if(d.href==b){c=d}});if(!c){return}MP3Controller.play(c.up().down("a.play"),b,true)},play:function(b,a,c){MP3Player.load(a);MP3Player.observe("COMPLETED",MP3Controller.complete);MP3Player.observe("PAUSED",MP3Controller.stop);if(MP3Controller.current){MP3Controller.show_play(MP3Controller.current)}MP3Controller.current=b;MP3Controller.show_pause(MP3Controller.current)},stop:function(a){MP3Player.stop();MP3Controller.show_play(MP3Controller.current);delete MP3Controller.current},complete:function(){MP3Controller.stop();if(MP3Controller.playlist.length){setTimeout(function(){MP3Controller.play_playlist(MP3Controller.playlist)},500)}},show_play:function(a){a.down("img").src="/static/images/play.gif"},show_pause:function(a){a.down("img").src="/static/images/stop.gif"}};var MP3Advanced={song_length:0,play:function(a){if(a==MP3Advanced.url){if(MP3Player.state=="playing"){MP3Player.pause()}else{if(MP3Player.state=="paused"||MP3Player.state=="idle"||MP3Player.state=="completed"){MP3Player.play()}}}else{MP3Advanced.url=a;MP3Player.load(a);MP3Player.observe("time",MP3Advanced.onProgress);MP3Player.observe("load",MP3Advanced.onLoadProgress);MP3Player.observe("playing",MP3Advanced.onPlay);MP3Player.observe("completed",MP3Player.stop);MP3Player.observe("idle",MP3Advanced.onStop);MP3Player.observe("paused",MP3Advanced.onStop);MP3Player.observe("volume",MP3Advanced.onVolume);MP3Advanced.song_length=0;MP3Advanced.register_volume()}},register_volume:function(){var a=$("volume");a.observe("mouseover",function(){$("volume-hover").show();if(!MP3Advanced.slider){var b=$("volume-slider");MP3Advanced.slider=new Control.Slider(b.down(".handle"),b,{range:$R(0,100),sliderValue:1,axis:"vertical",onSlide:function(c){MP3Advanced.setVolume(100-c)},onChange:function(c){MP3Advanced.setVolume(100-c)}})}});a.observe("mouseout",function(){$("volume-hover").hide()})},onProgress:function(b){var c=b.memo;MP3Advanced.song_length=c.duration;var a=c.position,e=c.duration;var d=100*a/e;if(isNaN(d)){return}$("progress").style.width=d+"%"},onLoadProgress:function(a){var b=a.memo;var c=b.percentage;if(isNaN(c)){return}$("loaded").style.width=c+"%"},onPlay:function(){$("play").update(new Element("img",{src:"/static/images/mp3pause.png"}))},onStop:function(){$("play").update(new Element("img",{src:"/static/images/mp3play.png"}))},seek:function(c){if(!MP3Player.state){return}var b=$("progress-cont").viewportOffset()[0];var f=c.clientX-b;var a=$("progress-cont").getWidth();var d=MP3Advanced.song_length*f/a-1;MP3Player.seek(d)},setVolume:function(a){MP3Player.volume(a)},onVolume:function(a){}};var MP3Playlist={options:{},play:function(a){if(a){Event.stop(a)}if(!MP3Player.state||MP3Player.state=="idle"||MP3Player.state=="completed"){MP3Playlist.load($$("#playlist .song")[0].href)}else{MP3Advanced.play(MP3Advanced.url)}},load:function(a){MP3Playlist.clear_playing(MP3Advanced.url);MP3Player.observe("completed",MP3Playlist.next);MP3Player.observe("id3",MP3Playlist.id3);MP3Player.observe("load_complete",MP3Playlist.load_complete);MP3Advanced.play(a);MP3Playlist.show_playing(a)},get_song_elm:function(a){var b;$$(".song").each(function(c){if(c.href==a){b=c}});return b},next:function(){var b=MP3Playlist.get_song_elm(MP3Advanced.url);var a=b.up("tr").next("tr");if(!a){MP3Playlist.clear_playing(MP3Advanced.url);return}var c=a.down(".song");setTimeout(function(){MP3Playlist.load(c.href)},1000)},load_complete:function(){if(MP3Player.meta){MP3Playlist.id3({memo:MP3Player.meta})}},show_playing:function(a){var b=MP3Playlist.get_song_elm(a);if(!b){return}var c=b.up("tr");var d=c.down("td");d.update(Sprite.make("play",{}));c.addClassName("selected");if(MP3Playlist.options&&MP3Playlist.options.on_song_change){MP3Playlist.options.on_song_change(c)}},id3:function(a){var b=a.memo;var c=MP3Playlist.get_song_elm(MP3Advanced.url);if(b.artist&&b.name&&MP3Advanced.song_length&&!c.hasClassName("has_id3")){var d=b.name;c.down(".song-name").update(d.escapeHTML());c.up("tr").down(".song-artist").update(b.artist.escapeHTML());c.up("tr").down(".right-column").update(Util.seconds_to_time(MP3Advanced.song_length));c.addClassName("has_id3");MP3Playlist.report_id3(b)}},report_id3:function(b){var a=MP3Advanced.url;var c=MP3Advanced.song_length;if(!c||c<=0){return}var d={album:b.album,artist:b.artist,duration:c,name:b.name,track:b.track,year:b.year};var e=a.split("/").slice(4).join("/");new Ajax.Request("/add_id3/"+e,{parameters:d})},clear_playing:function(a){if(!a){return}var b=MP3Playlist.get_song_elm(a);if(!b){return}var c=b.up("tr");var d=c.down("td");c.removeClassName("selected");d.update()}};Event.observe(window,"load",function(){var b=$("footer");if(b){var a=b.getStyle("display")=="none"||b.getWidth()<900;if(!a){assert(false,"HTML Broken on "+window.location.pathname)}}});window.LoadedJsSuccessfully=true;
