window.debug=(function(){var window=this,aps=Array.prototype.slice,con=window.console,that={},callback_func,callback_force,log_level=9,log_methods=['error','warn','info','debug','log'],pass_methods='assert clear count dir dirxml exception group groupCollapsed groupEnd profile profileEnd table time timeEnd trace'.split(' '),idx=pass_methods.length,logs=[];while(--idx>=0){(function(method){that[method]=function(){log_level!==0&&con&&con[method]&&con[method].apply(con,arguments);}})(pass_methods[idx]);}
idx=log_methods.length;while(--idx>=0){(function(idx,level){that[level]=function(){var args=aps.call(arguments),log_arr=[level].concat(args);logs.push(log_arr);exec_callback(log_arr);if(!con||!is_level(idx)){return;}
con.firebug?con[level].apply(window,args):con[level]?con[level](args):con.log(args);};})(idx,log_methods[idx]);}
function exec_callback(args){if(callback_func&&(callback_force||!con||!con.log)){callback_func.apply(window,args);}};that.setLevel=function(level){log_level=typeof level==='number'?level:9;};function is_level(level){return log_level>0?log_level>level:log_methods.length+log_level<=level;};that.setCallback=function(){var args=aps.call(arguments),max=logs.length,i=max;callback_func=args.shift()||null;callback_force=typeof args[0]==='boolean'?args.shift():false;i-=typeof args[0]==='number'?args.shift():max;while(i<max){exec_callback(logs[i++]);}};return that;})();(function(){function g(o){console.log("$f.fireEvent",[].slice.call(o))}function k(q){if(!q||typeof q!="object"){return q}var o=new q.constructor();for(var p in q){if(q.hasOwnProperty(p)){o[p]=k(q[p])}}return o}function m(t,q){if(!t){return}var o,p=0,r=t.length;if(r===undefined){for(o in t){if(q.call(t[o],o,t[o])===false){break}}}else{for(var s=t[0];p<r&&q.call(s,p,s)!==false;s=t[++p]){}}return t}function c(o){return document.getElementById(o)}function i(q,p,o){if(typeof p!="object"){return q}if(q&&p){m(p,function(r,s){if(!o||typeof s!="function"){q[r]=s}})}return q}function n(s){var q=s.indexOf(".");if(q!=-1){var p=s.slice(0,q)||"*";var o=s.slice(q+1,s.length);var r=[];m(document.getElementsByTagName(p),function(){if(this.className&&this.className.indexOf(o)!=-1){r.push(this)}});return r}}function f(o){o=o||window.event;if(o.preventDefault){o.stopPropagation();o.preventDefault()}else{o.returnValue=false;o.cancelBubble=true}return false}function j(q,o,p){q[o]=q[o]||[];q[o].push(p)}function e(){return"_"+(""+Math.random()).slice(2,10)}var h=function(t,r,s){var q=this,p={},u={};q.index=r;if(typeof t=="string"){t={url:t}}i(this,t,true);m(("Begin*,Start,Pause*,Resume*,Seek*,Stop*,Finish*,LastSecond,Update,BufferFull,BufferEmpty,BufferStop").split(","),function(){var v="on"+this;if(v.indexOf("*")!=-1){v=v.slice(0,v.length-1);var w="onBefore"+v.slice(2);q[w]=function(x){j(u,w,x);return q}}q[v]=function(x){j(u,v,x);return q};if(r==-1){if(q[w]){s[w]=q[w]}if(q[v]){s[v]=q[v]}}});i(this,{onCuepoint:function(x,w){if(arguments.length==1){p.embedded=[null,x];return q}if(typeof x=="number"){x=[x]}var v=e();p[v]=[x,w];if(s.isLoaded()){s._api().fp_addCuepoints(x,r,v)}return q},update:function(w){i(q,w);if(s.isLoaded()){s._api().fp_updateClip(w,r)}var v=s.getConfig();var x=(r==-1)?v.clip:v.playlist[r];i(x,w,true)},_fireEvent:function(v,y,w,A){if(v=="onLoad"){m(p,function(B,C){if(C[0]){s._api().fp_addCuepoints(C[0],r,B)}});return false}A=A||q;if(v=="onCuepoint"){var z=p[y];if(z){return z[1].call(s,A,w)}}if(y&&"onBeforeBegin,onMetaData,onStart,onUpdate,onResume".indexOf(v)!=-1){i(A,y);if(y.metaData){if(!A.duration){A.duration=y.metaData.duration}else{A.fullDuration=y.metaData.duration}}}var x=true;m(u[v],function(){x=this.call(s,A,y,w)});return x}});if(t.onCuepoint){var o=t.onCuepoint;q.onCuepoint.apply(q,typeof o=="function"?[o]:o);delete t.onCuepoint}m(t,function(v,w){if(typeof w=="function"){j(u,v,w);delete t[v]}});if(r==-1){s.onCuepoint=this.onCuepoint}};var l=function(p,r,q,t){var o=this,s={},u=false;if(t){i(s,t)}m(r,function(v,w){if(typeof w=="function"){s[v]=w;delete r[v]}});i(this,{animate:function(y,z,x){if(!y){return o}if(typeof z=="function"){x=z;z=500}if(typeof y=="string"){var w=y;y={};y[w]=z;z=500}if(x){var v=e();s[v]=x}if(z===undefined){z=500}r=q._api().fp_animate(p,y,z,v);return o},css:function(w,x){if(x!==undefined){var v={};v[w]=x;w=v}r=q._api().fp_css(p,w);i(o,r);return o},show:function(){this.display="block";q._api().fp_showPlugin(p);return o},hide:function(){this.display="none";q._api().fp_hidePlugin(p);return o},toggle:function(){this.display=q._api().fp_togglePlugin(p);return o},fadeTo:function(y,x,w){if(typeof x=="function"){w=x;x=500}if(w){var v=e();s[v]=w}this.display=q._api().fp_fadeTo(p,y,x,v);this.opacity=y;return o},fadeIn:function(w,v){return o.fadeTo(1,w,v)},fadeOut:function(w,v){return o.fadeTo(0,w,v)},getName:function(){return p},getPlayer:function(){return q},_fireEvent:function(w,v,x){if(w=="onUpdate"){var z=q._api().fp_getPlugin(p);if(!z){return}i(o,z);delete o.methods;if(!u){m(z.methods,function(){var B=""+this;o[B]=function(){var C=[].slice.call(arguments);var D=q._api().fp_invoke(p,B,C);return D==="undefined"||D===undefined?o:D}});u=true}}var A=s[w];if(A){var y=A.apply(o,v);if(w.slice(0,1)=="_"){delete s[w]}return y}return o}})};function b(q,G,t){var w=this,v=null,D=false,u,s,F=[],y={},x={},E,r,p,C,o,A;i(w,{id:function(){return E},isLoaded:function(){return(v!==null&&v.fp_play!==undefined&&!D)},getParent:function(){return q},hide:function(H){if(H){q.style.height="0px"}if(w.isLoaded()){v.style.height="0px"}return w},show:function(){q.style.height=A+"px";if(w.isLoaded()){v.style.height=o+"px"}return w},isHidden:function(){return w.isLoaded()&&parseInt(v.style.height,10)===0},load:function(J){if(!w.isLoaded()&&w._fireEvent("onBeforeLoad")!==false){var H=function(){u=q.innerHTML;if(u&&!flashembed.isSupported(G.version)){q.innerHTML=""}if(J){J.cached=true;j(x,"onLoad",J)}flashembed(q,G,{config:t})};var I=0;m(a,function(){this.unload(function(K){if(++I==a.length){H()}})})}return w},unload:function(J){if(this.isFullscreen()&&/WebKit/i.test(navigator.userAgent)){if(J){J(false)}return w}if(u.replace(/\s/g,"")!==""){if(w._fireEvent("onBeforeUnload")===false){if(J){J(false)}return w}D=true;try{if(v){v.fp_close();w._fireEvent("onUnload")}}catch(H){}var I=function(){v=null;q.innerHTML=u;D=false;if(J){J(true)}};setTimeout(I,50)}else{if(J){J(false)}}return w},getClip:function(H){if(H===undefined){H=C}return F[H]},getCommonClip:function(){return s},getPlaylist:function(){return F},getPlugin:function(H){var J=y[H];if(!J&&w.isLoaded()){var I=w._api().fp_getPlugin(H);if(I){J=new l(H,I,w);y[H]=J}}return J},getScreen:function(){return w.getPlugin("screen")},getControls:function(){return w.getPlugin("controls")._fireEvent("onUpdate")},getLogo:function(){try{return w.getPlugin("logo")._fireEvent("onUpdate")}catch(H){}},getPlay:function(){return w.getPlugin("play")._fireEvent("onUpdate")},getConfig:function(H){return H?k(t):t},getFlashParams:function(){return G},loadPlugin:function(K,J,M,L){if(typeof M=="function"){L=M;M={}}var I=L?e():"_";w._api().fp_loadPlugin(K,J,M,I);var H={};H[I]=L;var N=new l(K,null,w,H);y[K]=N;return N},getState:function(){return w.isLoaded()?v.fp_getState():-1},play:function(I,H){var J=function(){if(I!==undefined){w._api().fp_play(I,H)}else{w._api().fp_play()}};if(w.isLoaded()){J()}else{if(D){setTimeout(function(){w.play(I,H)},50)}else{w.load(function(){J()})}}return w},getVersion:function(){var I="flowplayer.js 3.2.6";if(w.isLoaded()){var H=v.fp_getVersion();H.push(I);return H}return I},_api:function(){if(!w.isLoaded()){throw"Flowplayer "+w.id()+" not loaded when calling an API method"}return v},setClip:function(H){w.setPlaylist([H]);return w},getIndex:function(){return p},_swfHeight:function(){return v.clientHeight}});m(("Click*,Load*,Unload*,Keypress*,Volume*,Mute*,Unmute*,PlaylistReplace,ClipAdd,Fullscreen*,FullscreenExit,Error,MouseOver,MouseOut").split(","),function(){var H="on"+this;if(H.indexOf("*")!=-1){H=H.slice(0,H.length-1);var I="onBefore"+H.slice(2);w[I]=function(J){j(x,I,J);return w}}w[H]=function(J){j(x,H,J);return w}});m(("pause,resume,mute,unmute,stop,toggle,seek,getStatus,getVolume,setVolume,getTime,isPaused,isPlaying,startBuffering,stopBuffering,isFullscreen,toggleFullscreen,reset,close,setPlaylist,addClip,playFeed,setKeyboardShortcutsEnabled,isKeyboardShortcutsEnabled").split(","),function(){var H=this;w[H]=function(J,I){if(!w.isLoaded()){return w}var K=null;if(J!==undefined&&I!==undefined){K=v["fp_"+H](J,I)}else{K=(J===undefined)?v["fp_"+H]():v["fp_"+H](J)}return K==="undefined"||K===undefined?w:K}});w._fireEvent=function(Q){if(typeof Q=="string"){Q=[Q]}var R=Q[0],O=Q[1],M=Q[2],L=Q[3],K=0;if(t.debug){g(Q)}if(!w.isLoaded()&&R=="onLoad"&&O=="player"){v=v||c(r);o=w._swfHeight();m(F,function(){this._fireEvent("onLoad")});m(y,function(S,T){T._fireEvent("onUpdate")});s._fireEvent("onLoad")}if(R=="onLoad"&&O!="player"){return}if(R=="onError"){if(typeof O=="string"||(typeof O=="number"&&typeof M=="number")){O=M;M=L}}if(R=="onContextMenu"){m(t.contextMenu[O],function(S,T){T.call(w)});return}if(R=="onPluginEvent"||R=="onBeforePluginEvent"){var H=O.name||O;var I=y[H];if(I){I._fireEvent("onUpdate",O);return I._fireEvent(M,Q.slice(3))}return}if(R=="onPlaylistReplace"){F=[];var N=0;m(O,function(){F.push(new h(this,N++,w))})}if(R=="onClipAdd"){if(O.isInStream){return}O=new h(O,M,w);F.splice(M,0,O);for(K=M+1;K<F.length;K++){F[K].index++}}var P=true;if(typeof O=="number"&&O<F.length){C=O;var J=F[O];if(J){P=J._fireEvent(R,M,L)}if(!J||P!==false){P=s._fireEvent(R,M,L,J)}}m(x[R],function(){P=this.call(w,O,M);if(this.cached){x[R].splice(K,1)}if(P===false){return false}K++});return P};function B(){if($f(q)){$f(q).getParent().innerHTML="";p=$f(q).getIndex();a[p]=w}else{a.push(w);p=a.length-1}A=parseInt(q.style.height,10)||q.clientHeight;E=q.id||"fp"+e();r=G.id||E+"_api";G.id=r;t.playerId=E;if(typeof t=="string"){t={clip:{url:t}}}if(typeof t.clip=="string"){t.clip={url:t.clip}}t.clip=t.clip||{};if(q.getAttribute("href",2)&&!t.clip.url){t.clip.url=q.getAttribute("href",2)}s=new h(t.clip,-1,w);t.playlist=t.playlist||[t.clip];var I=0;m(t.playlist,function(){var K=this;if(typeof K=="object"&&K.length){K={url:""+K}}m(t.clip,function(L,M){if(M!==undefined&&K[L]===undefined&&typeof M!="function"){K[L]=M}});t.playlist[I]=K;K=new h(K,I,w);F.push(K);I++});m(t,function(K,L){if(typeof L=="function"){if(s[K]){s[K](L)}else{j(x,K,L)}delete t[K]}});m(t.plugins,function(K,L){if(L){y[K]=new l(K,L,w)}});if(!t.plugins||t.plugins.controls===undefined){y.controls=new l("controls",null,w)}y.canvas=new l("canvas",null,w);u=q.innerHTML;function J(L){var K=w.hasiPadSupport&&w.hasiPadSupport();if(/iPad|iPhone|iPod/i.test(navigator.userAgent)&&!/.flv$/i.test(F[0].url)&&!K){return true}if(!w.isLoaded()&&w._fireEvent("onBeforeClick")!==false){w.load()}return f(L)}function H(){if(u.replace(/\s/g,"")!==""){if(q.addEventListener){q.addEventListener("click",J,false)}else{if(q.attachEvent){q.attachEvent("onclick",J)}}}else{if(q.addEventListener){q.addEventListener("click",f,false)}w.load()}}setTimeout(H,0)}if(typeof q=="string"){var z=c(q);if(!z){throw"Flowplayer cannot access element: "+q}q=z;B()}else{B()}}var a=[];function d(o){this.length=o.length;this.each=function(p){m(o,p)};this.size=function(){return o.length}}window.flowplayer=window.$f=function(){var p=null;var o=arguments[0];if(!arguments.length){m(a,function(){if(this.isLoaded()){p=this;return false}});return p||a[0]}if(arguments.length==1){if(typeof o=="number"){return a[o]}else{if(o=="*"){return new d(a)}m(a,function(){if(this.id()==o.id||this.id()==o||this.getParent()==o){p=this;return false}});return p}}if(arguments.length>1){var t=arguments[1],q=(arguments.length==3)?arguments[2]:{};if(typeof t=="string"){t={src:t}}t=i({bgcolor:"#000000",version:[9,0],expressInstall:"http://static.flowplayer.org/swf/expressinstall.swf",cachebusting:false},t);if(typeof o=="string"){if(o.indexOf(".")!=-1){var s=[];m(n(o),function(){s.push(new b(this,k(t),k(q)))});return new d(s)}else{var r=c(o);return new b(r!==null?r:o,t,q)}}else{if(o){return new b(o,t,q)}}}return null};i(window.$f,{fireEvent:function(){var o=[].slice.call(arguments);var q=$f(o[0]);return q?q._fireEvent(o.slice(1)):null},addPlugin:function(o,p){b.prototype[o]=p;return $f},each:m,extend:i});if(typeof jQuery=="function"){jQuery.fn.flowplayer=function(q,p){if(!arguments.length||typeof arguments[0]=="number"){var o=[];this.each(function(){var r=$f(this);if(r){o.push(r)}});return arguments.length?o[arguments[0]]:new d(o)}return this.each(function(){$f(this,k(q),p?k(p):{})})}}})();(function(){var e=typeof jQuery=="function";var i={width:"100%",height:"100%",allowfullscreen:true,allowscriptaccess:"always",quality:"high",version:null,onFail:null,expressInstall:null,w3c:false,cachebusting:false};if(e){jQuery.tools=jQuery.tools||{};jQuery.tools.flashembed={version:"1.0.4",conf:i}}function j(){if(c.done){return false}var l=document;if(l&&l.getElementsByTagName&&l.getElementById&&l.body){clearInterval(c.timer);c.timer=null;for(var k=0;k<c.ready.length;k++){c.ready[k].call()}c.ready=null;c.done=true}}var c=e?jQuery:function(k){if(c.done){return k()}if(c.timer){c.ready.push(k)}else{c.ready=[k];c.timer=setInterval(j,13)}};function f(l,k){if(k){for(key in k){if(k.hasOwnProperty(key)){l[key]=k[key]}}}return l}function g(k){switch(h(k)){case"string":k=k.replace(new RegExp('(["\\\\])',"g"),"\\$1");k=k.replace(/^\s?(\d+)%/,"$1pct");return'"'+k+'"';case"array":return"["+b(k,function(n){return g(n)}).join(",")+"]";case"function":return'"function()"';case"object":var l=[];for(var m in k){if(k.hasOwnProperty(m)){l.push('"'+m+'":'+g(k[m]))}}return"{"+l.join(",")+"}"}return String(k).replace(/\s/g," ").replace(/\'/g,'"')}function h(l){if(l===null||l===undefined){return false}var k=typeof l;return(k=="object"&&l.push)?"array":k}if(window.attachEvent){window.attachEvent("onbeforeunload",function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){}})}function b(k,n){var m=[];for(var l in k){if(k.hasOwnProperty(l)){m[l]=n(k[l])}}return m}function a(r,t){var q=f({},r);var s=document.all;var n='<object width="'+q.width+'" height="'+q.height+'"';if(s&&!q.id){q.id="_"+(""+Math.random()).substring(9)}if(q.id){n+=' id="'+q.id+'"'}if(q.cachebusting){q.src+=((q.src.indexOf("?")!=-1?"&":"?")+Math.random())}if(q.w3c||!s){n+=' data="'+q.src+'" type="application/x-shockwave-flash"'}else{n+=' classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'}n+=">";if(q.w3c||s){n+='<param name="movie" value="'+q.src+'" />'}q.width=q.height=q.id=q.w3c=q.src=null;for(var l in q){if(q[l]!==null){n+='<param name="'+l+'" value="'+q[l]+'" />'}}var o="";if(t){for(var m in t){if(t[m]!==null){o+=m+"="+(typeof t[m]=="object"?g(t[m]):t[m])+"&"}}o=o.substring(0,o.length-1);n+='<param name="flashvars" value=\''+o+"' />"}n+="</object>";return n}function d(m,p,l){var k=flashembed.getVersion();f(this,{getContainer:function(){return m},getConf:function(){return p},getVersion:function(){return k},getFlashvars:function(){return l},getApi:function(){return m.firstChild},getHTML:function(){return a(p,l)}});var q=p.version;var r=p.expressInstall;var o=!q||flashembed.isSupported(q);if(o){p.onFail=p.version=p.expressInstall=null;m.innerHTML=a(p,l)}else{if(q&&r&&flashembed.isSupported([6,65])){f(p,{src:r});l={MMredirectURL:location.href,MMplayerType:"PlugIn",MMdoctitle:document.title};m.innerHTML=a(p,l)}else{if(m.innerHTML.replace(/\s/g,"")!==""){}else{m.innerHTML="<h2>Flash version "+q+" or greater is required</h2><h3>"+(k[0]>0?"Your version is "+k:"You have no flash plugin installed")+"</h3>"+(m.tagName=="A"?"<p>Click here to download latest version</p>":"<p>Download latest version from <a href='http://www.adobe.com/go/getflashplayer'>here</a></p>");if(m.tagName=="A"){m.onclick=function(){location.href="http://www.adobe.com/go/getflashplayer"}}}}}if(!o&&p.onFail){var n=p.onFail.call(this);if(typeof n=="string"){m.innerHTML=n}}if(document.all){window[p.id]=document.getElementById(p.id)}}window.flashembed=function(l,m,k){if(typeof l=="string"){var n=document.getElementById(l);if(n){l=n}else{c(function(){flashembed(l,m,k)});return}}if(!l){return}if(typeof m=="string"){m={src:m}}var o=f({},i);f(o,m);return new d(l,o,k)};f(window.flashembed,{getVersion:function(){var m=[0,0];if(navigator.plugins&&typeof navigator.plugins["Shockwave Flash"]=="object"){var l=navigator.plugins["Shockwave Flash"].description;if(typeof l!="undefined"){l=l.replace(/^.*\s+(\S+\s+\S+$)/,"$1");var n=parseInt(l.replace(/^(.*)\..*$/,"$1"),10);var r=/r/.test(l)?parseInt(l.replace(/^.*r(.*)$/,"$1"),10):0;m=[n,r]}}else{if(window.ActiveXObject){try{var p=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7")}catch(q){try{p=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");m=[6,0];p.AllowScriptAccess="always"}catch(k){if(m[0]==6){return m}}try{p=new ActiveXObject("ShockwaveFlash.ShockwaveFlash")}catch(o){}}if(typeof p=="object"){l=p.GetVariable("$version");if(typeof l!="undefined"){l=l.replace(/^\S+\s+(.*)$/,"$1").split(",");m=[parseInt(l[0],10),parseInt(l[2],10)]}}}}return m},isSupported:function(k){var m=flashembed.getVersion();var l=(m[0]>k[0])||(m[0]==k[0]&&m[1]>=k[1]);return l},domReady:c,asString:g,getHTML:a});if(e){jQuery.fn.flashembed=function(l,k){var m=null;this.each(function(){m=flashembed(this,l,k)});return l.api===false?this:m}}})();(function(){this.MooTools={version:'1.3',build:'a3eed692dd85050d80168ec2c708efe901bb7db3'};var typeOf=this.typeOf=function(item){if(item==null)return'null';if(item.$family)return item.$family();if(item.nodeName){if(item.nodeType==1)return'element';if(item.nodeType==3)return(/\S/).test(item.nodeValue)?'textnode':'whitespace';}else if(typeof item.length=='number'){if(item.callee)return'arguments';if('item'in item)return'collection';}
return typeof item;};var instanceOf=this.instanceOf=function(item,object){if(item==null)return false;var constructor=item.$constructor||item.constructor;while(constructor){if(constructor===object)return true;constructor=constructor.parent;}
return item instanceof object;};var Function=this.Function;var enumerables=true;for(var i in{toString:1})enumerables=null;if(enumerables)enumerables=['hasOwnProperty','valueOf','isPrototypeOf','propertyIsEnumerable','toLocaleString','toString','constructor'];Function.prototype.overloadSetter=function(usePlural){var self=this;return function(a,b){if(a==null)return this;if(usePlural||typeof a!='string'){for(var k in a)self.call(this,k,a[k]);if(enumerables)for(var i=enumerables.length;i--;){k=enumerables[i];if(a.hasOwnProperty(k))self.call(this,k,a[k]);}}else{self.call(this,a,b);}
return this;};};Function.prototype.overloadGetter=function(usePlural){var self=this;return function(a){var args,result;if(usePlural||typeof a!='string')args=a;else if(arguments.length>1)args=arguments;if(args){result={};for(var i=0;i<args.length;i++)result[args[i]]=self.call(this,args[i]);}else{result=self.call(this,a);}
return result;};};Function.prototype.extend=function(key,value){this[key]=value;}.overloadSetter();Function.prototype.implement=function(key,value){this.prototype[key]=value;}.overloadSetter();var slice=Array.prototype.slice;Function.from=function(item){return(typeOf(item)=='function')?item:function(){return item;};};Array.from=function(item){if(item==null)return[];return(Type.isEnumerable(item)&&typeof item!='string')?(typeOf(item)=='array')?item:slice.call(item):[item];};Number.from=function(item){var number=parseFloat(item);return isFinite(number)?number:null;};String.from=function(item){return item+'';};Function.implement({hide:function(){this.$hidden=true;return this;},protect:function(){this.$protected=true;return this;}});var Type=this.Type=function(name,object){if(name){var lower=name.toLowerCase();var typeCheck=function(item){return(typeOf(item)==lower);};Type['is'+name]=typeCheck;if(object!=null){object.prototype.$family=(function(){return lower;}).hide();object.type=typeCheck;}}
if(object==null)return null;object.extend(this);object.$constructor=Type;object.prototype.$constructor=object;return object;};var toString=Object.prototype.toString;Type.isEnumerable=function(item){return(item!=null&&typeof item.length=='number'&&toString.call(item)!='[object Function]');};var hooks={};var hooksOf=function(object){var type=typeOf(object.prototype);return hooks[type]||(hooks[type]=[]);};var implement=function(name,method){if(method&&method.$hidden)return this;var hooks=hooksOf(this);for(var i=0;i<hooks.length;i++){var hook=hooks[i];if(typeOf(hook)=='type')implement.call(hook,name,method);else hook.call(this,name,method);}
var previous=this.prototype[name];if(previous==null||!previous.$protected)this.prototype[name]=method;if(this[name]==null&&typeOf(method)=='function')extend.call(this,name,function(item){return method.apply(item,slice.call(arguments,1));});return this;};var extend=function(name,method){if(method&&method.$hidden)return this;var previous=this[name];if(previous==null||!previous.$protected)this[name]=method;return this;};Type.implement({implement:implement.overloadSetter(),extend:extend.overloadSetter(),alias:function(name,existing){implement.call(this,name,this.prototype[existing]);}.overloadSetter(),mirror:function(hook){hooksOf(this).push(hook);return this;}});new Type('Type',Type);var force=function(name,object,methods){var isType=(object!=Object),prototype=object.prototype;if(isType)object=new Type(name,object);for(var i=0,l=methods.length;i<l;i++){var key=methods[i],generic=object[key],proto=prototype[key];if(generic)generic.protect();if(isType&&proto){delete prototype[key];prototype[key]=proto.protect();}}
if(isType)object.implement(prototype);return force;};force('String',String,['charAt','charCodeAt','concat','indexOf','lastIndexOf','match','quote','replace','search','slice','split','substr','substring','toLowerCase','toUpperCase'])('Array',Array,['pop','push','reverse','shift','sort','splice','unshift','concat','join','slice','indexOf','lastIndexOf','filter','forEach','every','map','some','reduce','reduceRight'])('Number',Number,['toExponential','toFixed','toLocaleString','toPrecision'])('Function',Function,['apply','call','bind'])('RegExp',RegExp,['exec','test'])('Object',Object,['create','defineProperty','defineProperties','keys','getPrototypeOf','getOwnPropertyDescriptor','getOwnPropertyNames','preventExtensions','isExtensible','seal','isSealed','freeze','isFrozen'])('Date',Date,['now']);Object.extend=extend.overloadSetter();Date.extend('now',function(){return+(new Date);});new Type('Boolean',Boolean);Number.prototype.$family=function(){return isFinite(this)?'number':'null';}.hide();Number.extend('random',function(min,max){return Math.floor(Math.random()*(max-min+1)+min);});Object.extend('forEach',function(object,fn,bind){for(var key in object){if(object.hasOwnProperty(key))fn.call(bind,object[key],key,object);}});Object.each=Object.forEach;Array.implement({forEach:function(fn,bind){for(var i=0,l=this.length;i<l;i++){if(i in this)fn.call(bind,this[i],i,this);}},each:function(fn,bind){Array.forEach(this,fn,bind);return this;}});var cloneOf=function(item){switch(typeOf(item)){case'array':return item.clone();case'object':return Object.clone(item);default:return item;}};Array.implement('clone',function(){var i=this.length,clone=new Array(i);while(i--)clone[i]=cloneOf(this[i]);return clone;});var mergeOne=function(source,key,current){switch(typeOf(current)){case'object':if(typeOf(source[key])=='object')Object.merge(source[key],current);else source[key]=Object.clone(current);break;case'array':source[key]=current.clone();break;default:source[key]=current;}
return source;};Object.extend({merge:function(source,k,v){if(typeOf(k)=='string')return mergeOne(source,k,v);for(var i=1,l=arguments.length;i<l;i++){var object=arguments[i];for(var key in object)mergeOne(source,key,object[key]);}
return source;},clone:function(object){var clone={};for(var key in object)clone[key]=cloneOf(object[key]);return clone;},append:function(original){for(var i=1,l=arguments.length;i<l;i++){var extended=arguments[i]||{};for(var key in extended)original[key]=extended[key];}
return original;}});['Object','WhiteSpace','TextNode','Collection','Arguments'].each(function(name){new Type(name);});var UID=Date.now();String.extend('uniqueID',function(){return(UID++).toString(36);});var Hash=this.Hash=new Type('Hash',function(object){if(typeOf(object)=='hash')object=Object.clone(object.getClean());for(var key in object)this[key]=object[key];return this;});Hash.implement({forEach:function(fn,bind){Object.forEach(this,fn,bind);},getClean:function(){var clean={};for(var key in this){if(this.hasOwnProperty(key))clean[key]=this[key];}
return clean;},getLength:function(){var length=0;for(var key in this){if(this.hasOwnProperty(key))length++;}
return length;}});Hash.alias('each','forEach');Object.type=Type.isObject;var Native=this.Native=function(properties){return new Type(properties.name,properties.initialize);};Native.type=Type.type;Native.implement=function(objects,methods){for(var i=0;i<objects.length;i++)objects[i].implement(methods);return Native;};var arrayType=Array.type;Array.type=function(item){return instanceOf(item,Array)||arrayType(item);};this.$A=function(item){return Array.from(item).slice();};this.$arguments=function(i){return function(){return arguments[i];};};this.$chk=function(obj){return!!(obj||obj===0);};this.$clear=function(timer){clearTimeout(timer);clearInterval(timer);return null;};this.$defined=function(obj){return(obj!=null);};this.$each=function(iterable,fn,bind){var type=typeOf(iterable);((type=='arguments'||type=='collection'||type=='array'||type=='elements')?Array:Object).each(iterable,fn,bind);};this.$empty=function(){};this.$extend=function(original,extended){return Object.append(original,extended);};this.$H=function(object){return new Hash(object);};this.$merge=function(){var args=Array.slice(arguments);args.unshift({});return Object.merge.apply(null,args);};this.$lambda=Function.from;this.$mixin=Object.merge;this.$random=Number.random;this.$splat=Array.from;this.$time=Date.now;this.$type=function(object){var type=typeOf(object);if(type=='elements')return'array';return(type=='null')?false:type;};this.$unlink=function(object){switch(typeOf(object)){case'object':return Object.clone(object);case'array':return Array.clone(object);case'hash':return new Hash(object);default:return object;}};})();Array.implement({invoke:function(methodName){var args=Array.slice(arguments,1);return this.map(function(item){return item[methodName].apply(item,args);});},every:function(fn,bind){for(var i=0,l=this.length;i<l;i++){if((i in this)&&!fn.call(bind,this[i],i,this))return false;}
return true;},filter:function(fn,bind){var results=[];for(var i=0,l=this.length;i<l;i++){if((i in this)&&fn.call(bind,this[i],i,this))results.push(this[i]);}
return results;},clean:function(){return this.filter(function(item){return item!=null;});},indexOf:function(item,from){var len=this.length;for(var i=(from<0)?Math.max(0,len+from):from||0;i<len;i++){if(this[i]===item)return i;}
return-1;},map:function(fn,bind){var results=[];for(var i=0,l=this.length;i<l;i++){if(i in this)results[i]=fn.call(bind,this[i],i,this);}
return results;},some:function(fn,bind){for(var i=0,l=this.length;i<l;i++){if((i in this)&&fn.call(bind,this[i],i,this))return true;}
return false;},associate:function(keys){var obj={},length=Math.min(this.length,keys.length);for(var i=0;i<length;i++)obj[keys[i]]=this[i];return obj;},link:function(object){var result={};for(var i=0,l=this.length;i<l;i++){for(var key in object){if(object[key](this[i])){result[key]=this[i];delete object[key];break;}}}
return result;},contains:function(item,from){return this.indexOf(item,from)!=-1;},append:function(array){this.push.apply(this,array);return this;},getLast:function(){return(this.length)?this[this.length-1]:null;},getRandom:function(){return(this.length)?this[Number.random(0,this.length-1)]:null;},include:function(item){if(!this.contains(item))this.push(item);return this;},combine:function(array){for(var i=0,l=array.length;i<l;i++)this.include(array[i]);return this;},erase:function(item){for(var i=this.length;i--;){if(this[i]===item)this.splice(i,1);}
return this;},empty:function(){this.length=0;return this;},flatten:function(){var array=[];for(var i=0,l=this.length;i<l;i++){var type=typeOf(this[i]);if(type=='null')continue;array=array.concat((type=='array'||type=='collection'||type=='arguments'||instanceOf(this[i],Array))?Array.flatten(this[i]):this[i]);}
return array;},pick:function(){for(var i=0,l=this.length;i<l;i++){if(this[i]!=null)return this[i];}
return null;},hexToRgb:function(array){if(this.length!=3)return null;var rgb=this.map(function(value){if(value.length==1)value+=value;return value.toInt(16);});return(array)?rgb:'rgb('+rgb+')';},rgbToHex:function(array){if(this.length<3)return null;if(this.length==4&&this[3]==0&&!array)return'transparent';var hex=[];for(var i=0;i<3;i++){var bit=(this[i]-0).toString(16);hex.push((bit.length==1)?'0'+bit:bit);}
return(array)?hex:'#'+hex.join('');}});Array.alias('extend','append');var $pick=function(){return Array.from(arguments).pick();};String.implement({test:function(regex,params){return((typeOf(regex)=='regexp')?regex:new RegExp(''+regex,params)).test(this);},contains:function(string,separator){return(separator)?(separator+this+separator).indexOf(separator+string+separator)>-1:this.indexOf(string)>-1;},trim:function(){return this.replace(/^\s+|\s+$/g,'');},clean:function(){return this.replace(/\s+/g,' ').trim();},camelCase:function(){return this.replace(/-\D/g,function(match){return match.charAt(1).toUpperCase();});},hyphenate:function(){return this.replace(/[A-Z]/g,function(match){return('-'+match.charAt(0).toLowerCase());});},capitalize:function(){return this.replace(/\b[a-z]/g,function(match){return match.toUpperCase();});},escapeRegExp:function(){return this.replace(/([-.*+?^${}()|[\]\/\\])/g,'\\$1');},toInt:function(base){return parseInt(this,base||10);},toFloat:function(){return parseFloat(this);},hexToRgb:function(array){var hex=this.match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/);return(hex)?hex.slice(1).hexToRgb(array):null;},rgbToHex:function(array){var rgb=this.match(/\d{1,3}/g);return(rgb)?rgb.rgbToHex(array):null;},substitute:function(object,regexp){return this.replace(regexp||(/\\?\{([^{}]+)\}/g),function(match,name){if(match.charAt(0)=='\\')return match.slice(1);return(object[name]!=null)?object[name]:'';});}});Number.implement({limit:function(min,max){return Math.min(max,Math.max(min,this));},round:function(precision){precision=Math.pow(10,precision||0).toFixed(precision<0?-precision:0);return Math.round(this*precision)/precision;},times:function(fn,bind){for(var i=0;i<this;i++)fn.call(bind,i,this);},toFloat:function(){return parseFloat(this);},toInt:function(base){return parseInt(this,base||10);}});Number.alias('each','times');(function(math){var methods={};math.each(function(name){if(!Number[name])methods[name]=function(){return Math[name].apply(null,[this].concat(Array.from(arguments)));};});Number.implement(methods);})(['abs','acos','asin','atan','atan2','ceil','cos','exp','floor','log','max','min','pow','sin','sqrt','tan']);Function.extend({attempt:function(){for(var i=0,l=arguments.length;i<l;i++){try{return arguments[i]();}catch(e){}}
return null;}});Function.implement({attempt:function(args,bind){try{return this.apply(bind,Array.from(args));}catch(e){}
return null;},bind:function(bind){var self=this,args=(arguments.length>1)?Array.slice(arguments,1):null;return function(){if(!args&&!arguments.length)return self.call(bind);if(args&&arguments.length)return self.apply(bind,args.concat(Array.from(arguments)));return self.apply(bind,args||arguments);};},pass:function(args,bind){var self=this;if(args!=null)args=Array.from(args);return function(){return self.apply(bind,args||arguments);};},delay:function(delay,bind,args){return setTimeout(this.pass(args,bind),delay);},periodical:function(periodical,bind,args){return setInterval(this.pass(args,bind),periodical);}});delete Function.prototype.bind;Function.implement({create:function(options){var self=this;options=options||{};return function(event){var args=options.arguments;args=(args!=null)?Array.from(args):Array.slice(arguments,(options.event)?1:0);if(options.event)args=[event||window.event].extend(args);var returns=function(){return self.apply(options.bind||null,args);};if(options.delay)return setTimeout(returns,options.delay);if(options.periodical)return setInterval(returns,options.periodical);if(options.attempt)return Function.attempt(returns);return returns();};},bind:function(bind,args){var self=this;if(args!=null)args=Array.from(args);return function(){return self.apply(bind,args||arguments);};},bindWithEvent:function(bind,args){var self=this;if(args!=null)args=Array.from(args);return function(event){return self.apply(bind,(args==null)?arguments:[event].concat(args));};},run:function(args,bind){return this.apply(bind,Array.from(args));}});var $try=Function.attempt;Object.extend({subset:function(object,keys){var results={};for(var i=0,l=keys.length;i<l;i++){var k=keys[i];results[k]=object[k];}
return results;},map:function(object,fn,bind){var results={};for(var key in object){if(object.hasOwnProperty(key))results[key]=fn.call(bind,object[key],key,object);}
return results;},filter:function(object,fn,bind){var results={};Object.each(object,function(value,key){if(fn.call(bind,value,key,object))results[key]=value;});return results;},every:function(object,fn,bind){for(var key in object){if(object.hasOwnProperty(key)&&!fn.call(bind,object[key],key))return false;}
return true;},some:function(object,fn,bind){for(var key in object){if(object.hasOwnProperty(key)&&fn.call(bind,object[key],key))return true;}
return false;},keys:function(object){var keys=[];for(var key in object){if(object.hasOwnProperty(key))keys.push(key);}
return keys;},values:function(object){var values=[];for(var key in object){if(object.hasOwnProperty(key))values.push(object[key]);}
return values;},getLength:function(object){return Object.keys(object).length;},keyOf:function(object,value){for(var key in object){if(object.hasOwnProperty(key)&&object[key]===value)return key;}
return null;},contains:function(object,value){return Object.keyOf(object,value)!=null;},toQueryString:function(object,base){var queryString=[];Object.each(object,function(value,key){if(base)key=base+'['+key+']';var result;switch(typeOf(value)){case'object':result=Object.toQueryString(value,key);break;case'array':var qs={};value.each(function(val,i){qs[i]=val;});result=Object.toQueryString(qs,key);break;default:result=key+'='+encodeURIComponent(value);}
if(value!=null)queryString.push(result);});return queryString.join('&');}});Hash.implement({has:Object.prototype.hasOwnProperty,keyOf:function(value){return Object.keyOf(this,value);},hasValue:function(value){return Object.contains(this,value);},extend:function(properties){Hash.each(properties||{},function(value,key){Hash.set(this,key,value);},this);return this;},combine:function(properties){Hash.each(properties||{},function(value,key){Hash.include(this,key,value);},this);return this;},erase:function(key){if(this.hasOwnProperty(key))delete this[key];return this;},get:function(key){return(this.hasOwnProperty(key))?this[key]:null;},set:function(key,value){if(!this[key]||this.hasOwnProperty(key))this[key]=value;return this;},empty:function(){Hash.each(this,function(value,key){delete this[key];},this);return this;},include:function(key,value){if(this[key]==null)this[key]=value;return this;},map:function(fn,bind){return new Hash(Object.map(this,fn,bind));},filter:function(fn,bind){return new Hash(Object.filter(this,fn,bind));},every:function(fn,bind){return Object.every(this,fn,bind);},some:function(fn,bind){return Object.some(this,fn,bind);},getKeys:function(){return Object.keys(this);},getValues:function(){return Object.values(this);},toQueryString:function(base){return Object.toQueryString(this,base);}});Hash.extend=Object.append;Hash.alias({indexOf:'keyOf',contains:'hasValue'});(function(){var document=this.document;var window=document.window=this;var UID=1;this.$uid=(window.ActiveXObject)?function(item){return(item.uid||(item.uid=[UID++]))[0];}:function(item){return item.uid||(item.uid=UID++);};$uid(window);$uid(document);var ua=navigator.userAgent.toLowerCase(),platform=navigator.platform.toLowerCase(),UA=ua.match(/(opera|ie|firefox|chrome|version)[\s\/:]([\w\d\.]+)?.*?(safari|version[\s\/:]([\w\d\.]+)|$)/)||[null,'unknown',0],mode=UA[1]=='ie'&&document.documentMode;var Browser=this.Browser={extend:Function.prototype.extend,name:(UA[1]=='version')?UA[3]:UA[1],version:mode||parseFloat((UA[1]=='opera'&&UA[4])?UA[4]:UA[2]),Platform:{name:ua.match(/ip(?:ad|od|hone)/)?'ios':(ua.match(/(?:webos|android)/)||platform.match(/mac|win|linux/)||['other'])[0]},Features:{xpath:!!(document.evaluate),air:!!(window.runtime),query:!!(document.querySelector),json:!!(window.JSON)},Plugins:{}};Browser[Browser.name]=true;Browser[Browser.name+parseInt(Browser.version,10)]=true;Browser.Platform[Browser.Platform.name]=true;Browser.Request=(function(){var XMLHTTP=function(){return new XMLHttpRequest();};var MSXML2=function(){return new ActiveXObject('MSXML2.XMLHTTP');};var MSXML=function(){return new ActiveXObject('Microsoft.XMLHTTP');};return Function.attempt(function(){XMLHTTP();return XMLHTTP;},function(){MSXML2();return MSXML2;},function(){MSXML();return MSXML;});})();Browser.Features.xhr=!!(Browser.Request);var version=(Function.attempt(function(){return navigator.plugins['Shockwave Flash'].description;},function(){return new ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version');})||'0 r0').match(/\d+/g);Browser.Plugins.Flash={version:Number(version[0]||'0.'+version[1])||0,build:Number(version[2])||0};Browser.exec=function(text){if(!text)return text;if(window.execScript){window.execScript(text);}else{var script=document.createElement('script');script.setAttribute('type','text/javascript');script.text=text;document.head.appendChild(script);document.head.removeChild(script);}
return text;};String.implement('stripScripts',function(exec){var scripts='';var text=this.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi,function(all,code){scripts+=code+'\n';return'';});if(exec===true)Browser.exec(scripts);else if(typeOf(exec)=='function')exec(scripts,text);return text;});Browser.extend({Document:this.Document,Window:this.Window,Element:this.Element,Event:this.Event});this.Window=this.$constructor=new Type('Window',function(){});this.$family=Function.from('window').hide();Window.mirror(function(name,method){window[name]=method;});this.Document=document.$constructor=new Type('Document',function(){});document.$family=Function.from('document').hide();Document.mirror(function(name,method){document[name]=method;});document.html=document.documentElement;document.head=document.getElementsByTagName('head')[0];if(document.execCommand)try{document.execCommand("BackgroundImageCache",false,true);}catch(e){}
if(this.attachEvent&&!this.addEventListener){var unloadEvent=function(){this.detachEvent('onunload',unloadEvent);document.head=document.html=document.window=null;};this.attachEvent('onunload',unloadEvent);}
var arrayFrom=Array.from;try{arrayFrom(document.html.childNodes);}catch(e){Array.from=function(item){if(typeof item!='string'&&Type.isEnumerable(item)&&typeOf(item)!='array'){var i=item.length,array=new Array(i);while(i--)array[i]=item[i];return array;}
return arrayFrom(item);};var prototype=Array.prototype,slice=prototype.slice;['pop','push','reverse','shift','sort','splice','unshift','concat','join','slice'].each(function(name){var method=prototype[name];Array[name]=function(item){return method.apply(Array.from(item),slice.call(arguments,1));};});}
if(Browser.Platform.ios)Browser.Platform.ipod=true;Browser.Engine={};var setEngine=function(name,version){Browser.Engine.name=name;Browser.Engine[name+version]=true;Browser.Engine.version=version;};if(Browser.ie){Browser.Engine.trident=true;switch(Browser.version){case 6:setEngine('trident',4);break;case 7:setEngine('trident',5);break;case 8:setEngine('trident',6);}}
if(Browser.firefox){Browser.Engine.gecko=true;if(Browser.version>=3)setEngine('gecko',19);else setEngine('gecko',18);}
if(Browser.safari||Browser.chrome){Browser.Engine.webkit=true;switch(Browser.version){case 2:setEngine('webkit',419);break;case 3:setEngine('webkit',420);break;case 4:setEngine('webkit',525);}}
if(Browser.opera){Browser.Engine.presto=true;if(Browser.version>=9.6)setEngine('presto',960);else if(Browser.version>=9.5)setEngine('presto',950);else setEngine('presto',925);}
if(Browser.name=='unknown'){switch((ua.match(/(?:webkit|khtml|gecko)/)||[])[0]){case'webkit':case'khtml':Browser.Engine.webkit=true;break;case'gecko':Browser.Engine.gecko=true;}}
this.$exec=Browser.exec;})();var Event=new Type('Event',function(event,win){if(!win)win=window;var doc=win.document;event=event||win.event;if(event.$extended)return event;this.$extended=true;var type=event.type,target=event.target||event.srcElement,page={},client={};while(target&&target.nodeType==3)target=target.parentNode;if(type.indexOf('key')!=-1){var code=event.which||event.keyCode;var key=Object.keyOf(Event.Keys,code);if(type=='keydown'){var fKey=code-111;if(fKey>0&&fKey<13)key='f'+fKey;}
if(!key)key=String.fromCharCode(code).toLowerCase();}else if(type.test(/click|mouse|menu/i)){doc=(!doc.compatMode||doc.compatMode=='CSS1Compat')?doc.html:doc.body;page={x:(event.pageX!=null)?event.pageX:event.clientX+doc.scrollLeft,y:(event.pageY!=null)?event.pageY:event.clientY+doc.scrollTop};client={x:(event.pageX!=null)?event.pageX-win.pageXOffset:event.clientX,y:(event.pageY!=null)?event.pageY-win.pageYOffset:event.clientY};if(type.test(/DOMMouseScroll|mousewheel/)){var wheel=(event.wheelDelta)?event.wheelDelta/120:-(event.detail||0)/3;}
var rightClick=(event.which==3)||(event.button==2),related=null;if(type.test(/over|out/)){related=event.relatedTarget||event[(type=='mouseover'?'from':'to')+'Element'];var testRelated=function(){while(related&&related.nodeType==3)related=related.parentNode;return true;};var hasRelated=(Browser.firefox2)?testRelated.attempt():testRelated();related=(hasRelated)?related:null;}}else if(type.test(/gesture|touch/i)){this.rotation=event.rotation;this.scale=event.scale;this.targetTouches=event.targetTouches;this.changedTouches=event.changedTouches;var touches=this.touches=event.touches;if(touches&&touches[0]){var touch=touches[0];page={x:touch.pageX,y:touch.pageY};client={x:touch.clientX,y:touch.clientY};}}
return Object.append(this,{event:event,type:type,page:page,client:client,rightClick:rightClick,wheel:wheel,relatedTarget:document.id(related),target:document.id(target),code:code,key:key,shift:event.shiftKey,control:event.ctrlKey,alt:event.altKey,meta:event.metaKey});});Event.Keys={'enter':13,'up':38,'down':40,'left':37,'right':39,'esc':27,'space':32,'backspace':8,'tab':9,'delete':46};Event.Keys=new Hash(Event.Keys);Event.implement({stop:function(){return this.stopPropagation().preventDefault();},stopPropagation:function(){if(this.event.stopPropagation)this.event.stopPropagation();else this.event.cancelBubble=true;return this;},preventDefault:function(){if(this.event.preventDefault)this.event.preventDefault();else this.event.returnValue=false;return this;}});(function(){var Class=this.Class=new Type('Class',function(params){if(instanceOf(params,Function))params={initialize:params};var newClass=function(){reset(this);if(newClass.$prototyping)return this;this.$caller=null;var value=(this.initialize)?this.initialize.apply(this,arguments):this;this.$caller=this.caller=null;return value;}.extend(this).implement(params);newClass.$constructor=Class;newClass.prototype.$constructor=newClass;newClass.prototype.parent=parent;return newClass;});var parent=function(){if(!this.$caller)throw new Error('The method "parent" cannot be called.');var name=this.$caller.$name,parent=this.$caller.$owner.parent,previous=(parent)?parent.prototype[name]:null;if(!previous)throw new Error('The method "'+name+'" has no parent.');return previous.apply(this,arguments);};var reset=function(object){for(var key in object){var value=object[key];switch(typeOf(value)){case'object':var F=function(){};F.prototype=value;object[key]=reset(new F);break;case'array':object[key]=value.clone();break;}}
return object;};var wrap=function(self,key,method){if(method.$origin)method=method.$origin;var wrapper=function(){if(method.$protected&&this.$caller==null)throw new Error('The method "'+key+'" cannot be called.');var caller=this.caller,current=this.$caller;this.caller=current;this.$caller=wrapper;var result=method.apply(this,arguments);this.$caller=current;this.caller=caller;return result;}.extend({$owner:self,$origin:method,$name:key});return wrapper;};var implement=function(key,value,retain){if(Class.Mutators.hasOwnProperty(key)){value=Class.Mutators[key].call(this,value);if(value==null)return this;}
if(typeOf(value)=='function'){if(value.$hidden)return this;this.prototype[key]=(retain)?value:wrap(this,key,value);}else{Object.merge(this.prototype,key,value);}
return this;};var getInstance=function(klass){klass.$prototyping=true;var proto=new klass;delete klass.$prototyping;return proto;};Class.implement('implement',implement.overloadSetter());Class.Mutators={Extends:function(parent){this.parent=parent;this.prototype=getInstance(parent);},Implements:function(items){Array.from(items).each(function(item){var instance=new item;for(var key in instance)implement.call(this,key,instance[key],true);},this);}};})();(function(){this.Chain=new Class({$chain:[],chain:function(){this.$chain.append(Array.flatten(arguments));return this;},callChain:function(){return(this.$chain.length)?this.$chain.shift().apply(this,arguments):false;},clearChain:function(){this.$chain.empty();return this;}});var removeOn=function(string){return string.replace(/^on([A-Z])/,function(full,first){return first.toLowerCase();});};this.Events=new Class({$events:{},addEvent:function(type,fn,internal){type=removeOn(type);if(fn==$empty)return this;this.$events[type]=(this.$events[type]||[]).include(fn);if(internal)fn.internal=true;return this;},addEvents:function(events){for(var type in events)this.addEvent(type,events[type]);return this;},fireEvent:function(type,args,delay){type=removeOn(type);var events=this.$events[type];if(!events)return this;args=Array.from(args);events.each(function(fn){if(delay)fn.delay(delay,this,args);else fn.apply(this,args);},this);return this;},removeEvent:function(type,fn){type=removeOn(type);var events=this.$events[type];if(events&&!fn.internal){var index=events.indexOf(fn);if(index!=-1)delete events[index];}
return this;},removeEvents:function(events){var type;if(typeOf(events)=='object'){for(type in events)this.removeEvent(type,events[type]);return this;}
if(events)events=removeOn(events);for(type in this.$events){if(events&&events!=type)continue;var fns=this.$events[type];for(var i=fns.length;i--;)this.removeEvent(type,fns[i]);}
return this;}});this.Options=new Class({setOptions:function(){var options=this.options=Object.merge.apply(null,[{},this.options].append(arguments));if(!this.addEvent)return this;for(var option in options){if(typeOf(options[option])!='function'||!(/^on[A-Z]/).test(option))continue;this.addEvent(option,options[option]);delete options[option];}
return this;}});})();(function(){var parsed,separatorIndex,combinatorIndex,reversed,cache={},reverseCache={},reUnescape=/\\/g;var parse=function(expression,isReversed){if(expression==null)return null;if(expression.Slick===true)return expression;expression=(''+expression).replace(/^\s+|\s+$/g,'');reversed=!!isReversed;var currentCache=(reversed)?reverseCache:cache;if(currentCache[expression])return currentCache[expression];parsed={Slick:true,expressions:[],raw:expression,reverse:function(){return parse(this.raw,true);}};separatorIndex=-1;while(expression!=(expression=expression.replace(regexp,parser)));parsed.length=parsed.expressions.length;return currentCache[expression]=(reversed)?reverse(parsed):parsed;};var reverseCombinator=function(combinator){if(combinator==='!')return' ';else if(combinator===' ')return'!';else if((/^!/).test(combinator))return combinator.replace(/^!/,'');else return'!'+combinator;};var reverse=function(expression){var expressions=expression.expressions;for(var i=0;i<expressions.length;i++){var exp=expressions[i];var last={parts:[],tag:'*',combinator:reverseCombinator(exp[0].combinator)};for(var j=0;j<exp.length;j++){var cexp=exp[j];if(!cexp.reverseCombinator)cexp.reverseCombinator=' ';cexp.combinator=cexp.reverseCombinator;delete cexp.reverseCombinator;}
exp.reverse().push(last);}
return expression;};var escapeRegExp=function(string){return string.replace(/[-[\]{}()*+?.\\^$|,#\s]/g,"\\$&");};var regexp=new RegExp("^(?:\\s*(,)\\s*|\\s*(<combinator>+)\\s*|(\\s+)|(<unicode>+|\\*)|\\#(<unicode>+)|\\.(<unicode>+)|\\[\\s*(<unicode1>+)(?:\\s*([*^$!~|]?=)(?:\\s*(?:([\"']?)(.*?)\\9)))?\\s*\\](?!\\])|:+(<unicode>+)(?:\\((?:(?:([\"'])([^\\12]*)\\12)|((?:\\([^)]+\\)|[^()]*)+))\\))?)".replace(/<combinator>/,'['+escapeRegExp(">+~`!@$%^&={}\\;</")+']').replace(/<unicode>/g,'(?:[\\w\\u00a1-\\uFFFF-]|\\\\[^\\s0-9a-f])').replace(/<unicode1>/g,'(?:[:\\w\\u00a1-\\uFFFF-]|\\\\[^\\s0-9a-f])'));function parser(rawMatch,separator,combinator,combinatorChildren,tagName,id,className,attributeKey,attributeOperator,attributeQuote,attributeValue,pseudoClass,pseudoQuote,pseudoClassQuotedValue,pseudoClassValue){if(separator||separatorIndex===-1){parsed.expressions[++separatorIndex]=[];combinatorIndex=-1;if(separator)return'';}
if(combinator||combinatorChildren||combinatorIndex===-1){combinator=combinator||' ';var currentSeparator=parsed.expressions[separatorIndex];if(reversed&&currentSeparator[combinatorIndex])
currentSeparator[combinatorIndex].reverseCombinator=reverseCombinator(combinator);currentSeparator[++combinatorIndex]={combinator:combinator,tag:'*'};}
var currentParsed=parsed.expressions[separatorIndex][combinatorIndex];if(tagName){currentParsed.tag=tagName.replace(reUnescape,'');}else if(id){currentParsed.id=id.replace(reUnescape,'');}else if(className){className=className.replace(reUnescape,'');if(!currentParsed.classList)currentParsed.classList=[];if(!currentParsed.classes)currentParsed.classes=[];currentParsed.classList.push(className);currentParsed.classes.push({value:className,regexp:new RegExp('(^|\\s)'+escapeRegExp(className)+'(\\s|$)')});}else if(pseudoClass){pseudoClassValue=pseudoClassValue||pseudoClassQuotedValue;pseudoClassValue=pseudoClassValue?pseudoClassValue.replace(reUnescape,''):null;if(!currentParsed.pseudos)currentParsed.pseudos=[];currentParsed.pseudos.push({key:pseudoClass.replace(reUnescape,''),value:pseudoClassValue});}else if(attributeKey){attributeKey=attributeKey.replace(reUnescape,'');attributeValue=(attributeValue||'').replace(reUnescape,'');var test,regexp;switch(attributeOperator){case'^=':regexp=new RegExp('^'+escapeRegExp(attributeValue));break;case'$=':regexp=new RegExp(escapeRegExp(attributeValue)+'$');break;case'~=':regexp=new RegExp('(^|\\s)'+escapeRegExp(attributeValue)+'(\\s|$)');break;case'|=':regexp=new RegExp('^'+escapeRegExp(attributeValue)+'(-|$)');break;case'=':test=function(value){return attributeValue==value;};break;case'*=':test=function(value){return value&&value.indexOf(attributeValue)>-1;};break;case'!=':test=function(value){return attributeValue!=value;};break;default:test=function(value){return!!value;};}
if(attributeValue==''&&(/^[*$^]=$/).test(attributeOperator))test=function(){return false;};if(!test)test=function(value){return value&&regexp.test(value);};if(!currentParsed.attributes)currentParsed.attributes=[];currentParsed.attributes.push({key:attributeKey,operator:attributeOperator,value:attributeValue,test:test});}
return'';};var Slick=(this.Slick||{});Slick.parse=function(expression){return parse(expression);};Slick.escapeRegExp=escapeRegExp;if(!this.Slick)this.Slick=Slick;}).apply((typeof exports!='undefined')?exports:this);(function(){var local={};local.isNativeCode=function(fn){return(/\{\s*\[native code\]\s*\}/).test(''+fn);};local.isXML=function(document){return(!!document.xmlVersion)||(!!document.xml)||(Object.prototype.toString.call(document)==='[object XMLDocument]')||(document.nodeType===9&&document.documentElement.nodeName!=='HTML');};local.setDocument=function(document){if(document.nodeType===9);else if(document.ownerDocument)document=document.ownerDocument;else if(document.navigator)document=document.document;else return;if(this.document===document)return;this.document=document;var root=this.root=document.documentElement;this.isXMLDocument=this.isXML(document);this.brokenStarGEBTN=this.starSelectsClosedQSA=this.idGetsName=this.brokenMixedCaseQSA=this.brokenGEBCN=this.brokenCheckedQSA=this.brokenEmptyAttributeQSA=this.isHTMLDocument=false;var starSelectsClosed,starSelectsComments,brokenSecondClassNameGEBCN,cachedGetElementsByClassName;var selected,id;var testNode=document.createElement('div');root.appendChild(testNode);try{id='slick_getbyid_test';testNode.innerHTML='<a id="'+id+'"></a>';this.isHTMLDocument=!!document.getElementById(id);}catch(e){};if(this.isHTMLDocument){testNode.style.display='none';testNode.appendChild(document.createComment(''));starSelectsComments=(testNode.getElementsByTagName('*').length>0);try{testNode.innerHTML='foo</foo>';selected=testNode.getElementsByTagName('*');starSelectsClosed=(selected&&selected.length&&selected[0].nodeName.charAt(0)=='/');}catch(e){};this.brokenStarGEBTN=starSelectsComments||starSelectsClosed;if(testNode.querySelectorAll)try{testNode.innerHTML='foo</foo>';selected=testNode.querySelectorAll('*');this.starSelectsClosedQSA=(selected&&selected.length&&selected[0].nodeName.charAt(0)=='/');}catch(e){};try{id='slick_id_gets_name';testNode.innerHTML='<a name="'+id+'"></a><b id="'+id+'"></b>';this.idGetsName=document.getElementById(id)===testNode.firstChild;}catch(e){};try{testNode.innerHTML='<a class="MiXedCaSe"></a>';this.brokenMixedCaseQSA=!testNode.querySelectorAll('.MiXedCaSe').length;}catch(e){};try{testNode.innerHTML='<a class="f"></a><a class="b"></a>';testNode.getElementsByClassName('b').length;testNode.firstChild.className='b';cachedGetElementsByClassName=(testNode.getElementsByClassName('b').length!=2);}catch(e){};try{testNode.innerHTML='<a class="a"></a><a class="f b a"></a>';brokenSecondClassNameGEBCN=(testNode.getElementsByClassName('a').length!=2);}catch(e){};this.brokenGEBCN=cachedGetElementsByClassName||brokenSecondClassNameGEBCN;try{testNode.innerHTML='<select><option selected="selected">a</option></select>';this.brokenCheckedQSA=(testNode.querySelectorAll(':checked').length==0);}catch(e){};try{testNode.innerHTML='<a class=""></a>';this.brokenEmptyAttributeQSA=(testNode.querySelectorAll('[class*=""]').length!=0);}catch(e){};}
root.removeChild(testNode);testNode=null;this.hasAttribute=(root&&this.isNativeCode(root.hasAttribute))?function(node,attribute){return node.hasAttribute(attribute);}:function(node,attribute){node=node.getAttributeNode(attribute);return!!(node&&(node.specified||node.nodeValue));};this.contains=(root&&this.isNativeCode(root.contains))?function(context,node){return context.contains(node);}:(root&&root.compareDocumentPosition)?function(context,node){return context===node||!!(context.compareDocumentPosition(node)&16);}:function(context,node){if(node)do{if(node===context)return true;}while((node=node.parentNode));return false;};this.documentSorter=(root.compareDocumentPosition)?function(a,b){if(!a.compareDocumentPosition||!b.compareDocumentPosition)return 0;return a.compareDocumentPosition(b)&4?-1:a===b?0:1;}:('sourceIndex'in root)?function(a,b){if(!a.sourceIndex||!b.sourceIndex)return 0;return a.sourceIndex-b.sourceIndex;}:(document.createRange)?function(a,b){if(!a.ownerDocument||!b.ownerDocument)return 0;var aRange=a.ownerDocument.createRange(),bRange=b.ownerDocument.createRange();aRange.setStart(a,0);aRange.setEnd(a,0);bRange.setStart(b,0);bRange.setEnd(b,0);return aRange.compareBoundaryPoints(Range.START_TO_END,bRange);}:null;this.getUID=(this.isHTMLDocument)?this.getUIDHTML:this.getUIDXML;};local.search=function(context,expression,append,first){var found=this.found=(first)?null:(append||[]);if(!context)return found;if(context.navigator)context=context.document;else if(!context.nodeType)return found;var parsed,i;var uniques=this.uniques={};if(this.document!==(context.ownerDocument||context))this.setDocument(context);var shouldUniques=!!(append&&append.length);if(shouldUniques)for(i=found.length;i--;)this.uniques[this.getUID(found[i])]=true;if(typeof expression=='string'){for(i=this.overrides.length;i--;){var override=this.overrides[i];if(override.regexp.test(expression)){var result=override.method.call(context,expression,found,first);if(result===false)continue;if(result===true)return found;return result;}}
parsed=this.Slick.parse(expression);if(!parsed.length)return found;}else if(expression==null){return found;}else if(expression.Slick){parsed=expression;}else if(this.contains(context.documentElement||context,expression)){(found)?found.push(expression):found=expression;return found;}else{return found;}
this.posNTH={};this.posNTHLast={};this.posNTHType={};this.posNTHTypeLast={};this.push=(!shouldUniques&&(first||(parsed.length==1&&parsed.expressions[0].length==1)))?this.pushArray:this.pushUID;if(found==null)found=[];var j,m,n;var combinator,tag,id,classList,classes,attributes,pseudos;var currentItems,currentExpression,currentBit,lastBit,expressions=parsed.expressions;search:for(i=0;(currentExpression=expressions[i]);i++)for(j=0;(currentBit=currentExpression[j]);j++){combinator='combinator:'+currentBit.combinator;if(!this[combinator])continue search;tag=(this.isXMLDocument)?currentBit.tag:currentBit.tag.toUpperCase();id=currentBit.id;classList=currentBit.classList;classes=currentBit.classes;attributes=currentBit.attributes;pseudos=currentBit.pseudos;lastBit=(j===(currentExpression.length-1));this.bitUniques={};if(lastBit){this.uniques=uniques;this.found=found;}else{this.uniques={};this.found=[];}
if(j===0){this[combinator](context,tag,id,classes,attributes,pseudos,classList);if(first&&lastBit&&found.length)break search;}else{if(first&&lastBit)for(m=0,n=currentItems.length;m<n;m++){this[combinator](currentItems[m],tag,id,classes,attributes,pseudos,classList);if(found.length)break search;}else for(m=0,n=currentItems.length;m<n;m++)this[combinator](currentItems[m],tag,id,classes,attributes,pseudos,classList);}
currentItems=this.found;}
if(shouldUniques||(parsed.expressions.length>1))this.sort(found);return(first)?(found[0]||null):found;};local.uidx=1;local.uidk='slick:uniqueid';local.getUIDXML=function(node){var uid=node.getAttribute(this.uidk);if(!uid){uid=this.uidx++;node.setAttribute(this.uidk,uid);}
return uid;};local.getUIDHTML=function(node){return node.uniqueNumber||(node.uniqueNumber=this.uidx++);};local.sort=function(results){if(!this.documentSorter)return results;results.sort(this.documentSorter);return results;};local.cacheNTH={};local.matchNTH=/^([+-]?\d*)?([a-z]+)?([+-]\d+)?$/;local.parseNTHArgument=function(argument){var parsed=argument.match(this.matchNTH);if(!parsed)return false;var special=parsed[2]||false;var a=parsed[1]||1;if(a=='-')a=-1;var b=+parsed[3]||0;parsed=(special=='n')?{a:a,b:b}:(special=='odd')?{a:2,b:1}:(special=='even')?{a:2,b:0}:{a:0,b:a};return(this.cacheNTH[argument]=parsed);};local.createNTHPseudo=function(child,sibling,positions,ofType){return function(node,argument){var uid=this.getUID(node);if(!this[positions][uid]){var parent=node.parentNode;if(!parent)return false;var el=parent[child],count=1;if(ofType){var nodeName=node.nodeName;do{if(el.nodeName!==nodeName)continue;this[positions][this.getUID(el)]=count++;}while((el=el[sibling]));}else{do{if(el.nodeType!==1)continue;this[positions][this.getUID(el)]=count++;}while((el=el[sibling]));}}
argument=argument||'n';var parsed=this.cacheNTH[argument]||this.parseNTHArgument(argument);if(!parsed)return false;var a=parsed.a,b=parsed.b,pos=this[positions][uid];if(a==0)return b==pos;if(a>0){if(pos<b)return false;}else{if(b<pos)return false;}
return((pos-b)%a)==0;};};local.pushArray=function(node,tag,id,classes,attributes,pseudos){if(this.matchSelector(node,tag,id,classes,attributes,pseudos))this.found.push(node);};local.pushUID=function(node,tag,id,classes,attributes,pseudos){var uid=this.getUID(node);if(!this.uniques[uid]&&this.matchSelector(node,tag,id,classes,attributes,pseudos)){this.uniques[uid]=true;this.found.push(node);}};local.matchNode=function(node,selector){var parsed=this.Slick.parse(selector);if(!parsed)return true;if(parsed.length==1&&parsed.expressions[0].length==1){var exp=parsed.expressions[0][0];return this.matchSelector(node,(this.isXMLDocument)?exp.tag:exp.tag.toUpperCase(),exp.id,exp.classes,exp.attributes,exp.pseudos);}
var nodes=this.search(this.document,parsed);for(var i=0,item;item=nodes[i++];){if(item===node)return true;}
return false;};local.matchPseudo=function(node,name,argument){var pseudoName='pseudo:'+name;if(this[pseudoName])return this[pseudoName](node,argument);var attribute=this.getAttribute(node,name);return(argument)?argument==attribute:!!attribute;};local.matchSelector=function(node,tag,id,classes,attributes,pseudos){if(tag){if(tag=='*'){if(node.nodeName<'@')return false;}else{if(node.nodeName!=tag)return false;}}
if(id&&node.getAttribute('id')!=id)return false;var i,part,cls;if(classes)for(i=classes.length;i--;){cls=('className'in node)?node.className:node.getAttribute('class');if(!(cls&&classes[i].regexp.test(cls)))return false;}
if(attributes)for(i=attributes.length;i--;){part=attributes[i];if(part.operator?!part.test(this.getAttribute(node,part.key)):!this.hasAttribute(node,part.key))return false;}
if(pseudos)for(i=pseudos.length;i--;){part=pseudos[i];if(!this.matchPseudo(node,part.key,part.value))return false;}
return true;};var combinators={' ':function(node,tag,id,classes,attributes,pseudos,classList){var i,item,children;if(this.isHTMLDocument){getById:if(id){item=this.document.getElementById(id);if((!item&&node.all)||(this.idGetsName&&item&&item.getAttributeNode('id').nodeValue!=id)){children=node.all[id];if(!children)return;if(!children[0])children=[children];for(i=0;item=children[i++];)if(item.getAttributeNode('id').nodeValue==id){this.push(item,tag,null,classes,attributes,pseudos);break;}
return;}
if(!item){if(this.contains(this.document.documentElement,node))return;else break getById;}else if(this.document!==node&&!this.contains(node,item))return;this.push(item,tag,null,classes,attributes,pseudos);return;}
getByClass:if(classes&&node.getElementsByClassName&&!this.brokenGEBCN){children=node.getElementsByClassName(classList.join(' '));if(!(children&&children.length))break getByClass;for(i=0;item=children[i++];)this.push(item,tag,id,null,attributes,pseudos);return;}}
getByTag:{children=node.getElementsByTagName(tag);if(!(children&&children.length))break getByTag;if(!this.brokenStarGEBTN)tag=null;for(i=0;item=children[i++];)this.push(item,tag,id,classes,attributes,pseudos);}},'>':function(node,tag,id,classes,attributes,pseudos){if((node=node.firstChild))do{if(node.nodeType===1)this.push(node,tag,id,classes,attributes,pseudos);}while((node=node.nextSibling));},'+':function(node,tag,id,classes,attributes,pseudos){while((node=node.nextSibling))if(node.nodeType===1){this.push(node,tag,id,classes,attributes,pseudos);break;}},'^':function(node,tag,id,classes,attributes,pseudos){node=node.firstChild;if(node){if(node.nodeType===1)this.push(node,tag,id,classes,attributes,pseudos);else this['combinator:+'](node,tag,id,classes,attributes,pseudos);}},'~':function(node,tag,id,classes,attributes,pseudos){while((node=node.nextSibling)){if(node.nodeType!==1)continue;var uid=this.getUID(node);if(this.bitUniques[uid])break;this.bitUniques[uid]=true;this.push(node,tag,id,classes,attributes,pseudos);}},'++':function(node,tag,id,classes,attributes,pseudos){this['combinator:+'](node,tag,id,classes,attributes,pseudos);this['combinator:!+'](node,tag,id,classes,attributes,pseudos);},'~~':function(node,tag,id,classes,attributes,pseudos){this['combinator:~'](node,tag,id,classes,attributes,pseudos);this['combinator:!~'](node,tag,id,classes,attributes,pseudos);},'!':function(node,tag,id,classes,attributes,pseudos){while((node=node.parentNode))if(node!==this.document)this.push(node,tag,id,classes,attributes,pseudos);},'!>':function(node,tag,id,classes,attributes,pseudos){node=node.parentNode;if(node!==this.document)this.push(node,tag,id,classes,attributes,pseudos);},'!+':function(node,tag,id,classes,attributes,pseudos){while((node=node.previousSibling))if(node.nodeType===1){this.push(node,tag,id,classes,attributes,pseudos);break;}},'!^':function(node,tag,id,classes,attributes,pseudos){node=node.lastChild;if(node){if(node.nodeType===1)this.push(node,tag,id,classes,attributes,pseudos);else this['combinator:!+'](node,tag,id,classes,attributes,pseudos);}},'!~':function(node,tag,id,classes,attributes,pseudos){while((node=node.previousSibling)){if(node.nodeType!==1)continue;var uid=this.getUID(node);if(this.bitUniques[uid])break;this.bitUniques[uid]=true;this.push(node,tag,id,classes,attributes,pseudos);}}};for(var c in combinators)local['combinator:'+c]=combinators[c];var pseudos={'empty':function(node){var child=node.firstChild;return!(child&&child.nodeType==1)&&!(node.innerText||node.textContent||'').length;},'not':function(node,expression){return!this.matchNode(node,expression);},'contains':function(node,text){return(node.innerText||node.textContent||'').indexOf(text)>-1;},'first-child':function(node){while((node=node.previousSibling))if(node.nodeType===1)return false;return true;},'last-child':function(node){while((node=node.nextSibling))if(node.nodeType===1)return false;return true;},'only-child':function(node){var prev=node;while((prev=prev.previousSibling))if(prev.nodeType===1)return false;var next=node;while((next=next.nextSibling))if(next.nodeType===1)return false;return true;},'nth-child':local.createNTHPseudo('firstChild','nextSibling','posNTH'),'nth-last-child':local.createNTHPseudo('lastChild','previousSibling','posNTHLast'),'nth-of-type':local.createNTHPseudo('firstChild','nextSibling','posNTHType',true),'nth-last-of-type':local.createNTHPseudo('lastChild','previousSibling','posNTHTypeLast',true),'index':function(node,index){return this['pseudo:nth-child'](node,''+index+1);},'even':function(node,argument){return this['pseudo:nth-child'](node,'2n');},'odd':function(node,argument){return this['pseudo:nth-child'](node,'2n+1');},'first-of-type':function(node){var nodeName=node.nodeName;while((node=node.previousSibling))if(node.nodeName===nodeName)return false;return true;},'last-of-type':function(node){var nodeName=node.nodeName;while((node=node.nextSibling))if(node.nodeName===nodeName)return false;return true;},'only-of-type':function(node){var prev=node,nodeName=node.nodeName;while((prev=prev.previousSibling))if(prev.nodeName===nodeName)return false;var next=node;while((next=next.nextSibling))if(next.nodeName===nodeName)return false;return true;},'enabled':function(node){return(node.disabled===false);},'disabled':function(node){return(node.disabled===true);},'checked':function(node){return node.checked||node.selected;},'focus':function(node){return this.isHTMLDocument&&this.document.activeElement===node&&(node.href||node.type||this.hasAttribute(node,'tabindex'));},'root':function(node){return(node===this.root);},'selected':function(node){return node.selected;}};for(var p in pseudos)local['pseudo:'+p]=pseudos[p];local.attributeGetters={'class':function(){return('className'in this)?this.className:this.getAttribute('class');},'for':function(){return('htmlFor'in this)?this.htmlFor:this.getAttribute('for');},'href':function(){return('href'in this)?this.getAttribute('href',2):this.getAttribute('href');},'style':function(){return(this.style)?this.style.cssText:this.getAttribute('style');}};local.getAttribute=function(node,name){var method=this.attributeGetters[name];if(method)return method.call(node);var attributeNode=node.getAttributeNode(name);return attributeNode?attributeNode.nodeValue:null;};local.overrides=[];local.override=function(regexp,method){this.overrides.push({regexp:regexp,method:method});};var reEmptyAttribute=/\[.*[*$^]=(?:["']{2})?\]/;local.override(/./,function(expression,found,first){if(!this.querySelectorAll||this.nodeType!=9||!local.isHTMLDocument||local.brokenMixedCaseQSA||(local.brokenCheckedQSA&&expression.indexOf(':checked')>-1)||(local.brokenEmptyAttributeQSA&&reEmptyAttribute.test(expression))||Slick.disableQSA)return false;var nodes,node;try{if(first)return this.querySelector(expression)||null;else nodes=this.querySelectorAll(expression);}catch(error){return false;}
var i,hasOthers=!!(found.length);if(local.starSelectsClosedQSA)for(i=0;node=nodes[i++];){if(node.nodeName>'@'&&(!hasOthers||!local.uniques[local.getUIDHTML(node)]))found.push(node);}else for(i=0;node=nodes[i++];){if(!hasOthers||!local.uniques[local.getUIDHTML(node)])found.push(node);}
if(hasOthers)local.sort(found);return true;});local.override(/^[\w-]+$|^\*$/,function(expression,found,first){var tag=expression;if(tag=='*'&&local.brokenStarGEBTN)return false;var nodes=this.getElementsByTagName(tag);if(first)return nodes[0]||null;var i,node,hasOthers=!!(found.length);for(i=0;node=nodes[i++];){if(!hasOthers||!local.uniques[local.getUID(node)])found.push(node);}
if(hasOthers)local.sort(found);return true;});local.override(/^\.[\w-]+$/,function(expression,found,first){if(!local.isHTMLDocument||(!this.getElementsByClassName&&this.querySelectorAll))return false;var nodes,node,i,hasOthers=!!(found&&found.length),className=expression.substring(1);if(this.getElementsByClassName&&!local.brokenGEBCN){nodes=this.getElementsByClassName(className);if(first)return nodes[0]||null;for(i=0;node=nodes[i++];){if(!hasOthers||!local.uniques[local.getUIDHTML(node)])found.push(node);}}else{var matchClass=new RegExp('(^|\\s)'+Slick.escapeRegExp(className)+'(\\s|$)');nodes=this.getElementsByTagName('*');for(i=0;node=nodes[i++];){className=node.className;if(!className||!matchClass.test(className))continue;if(first)return node;if(!hasOthers||!local.uniques[local.getUIDHTML(node)])found.push(node);}}
if(hasOthers)local.sort(found);return(first)?null:true;});local.override(/^#[\w-]+$/,function(expression,found,first){if(!local.isHTMLDocument||this.nodeType!=9)return false;var id=expression.substring(1),el=this.getElementById(id);if(!el)return found;if(local.idGetsName&&el.getAttributeNode('id').nodeValue!=id)return false;if(first)return el||null;var hasOthers=!!(found.length);if(!hasOthers||!local.uniques[local.getUIDHTML(el)])found.push(el);if(hasOthers)local.sort(found);return true;});if(typeof document!='undefined')local.setDocument(document);var Slick=local.Slick=(this.Slick||{});Slick.version='0.9dev';Slick.search=function(context,expression,append){return local.search(context,expression,append);};Slick.find=function(context,expression){return local.search(context,expression,null,true);};Slick.contains=function(container,node){local.setDocument(container);return local.contains(container,node);};Slick.getAttribute=function(node,name){return local.getAttribute(node,name);};Slick.match=function(node,selector){if(!(node&&selector))return false;if(!selector||selector===node)return true;if(typeof selector!='string')return false;local.setDocument(node);return local.matchNode(node,selector);};Slick.defineAttributeGetter=function(name,fn){local.attributeGetters[name]=fn;return this;};Slick.lookupAttributeGetter=function(name){return local.attributeGetters[name];};Slick.definePseudo=function(name,fn){local['pseudo:'+name]=function(node,argument){return fn.call(node,argument);};return this;};Slick.lookupPseudo=function(name){var pseudo=local['pseudo:'+name];if(pseudo)return function(argument){return pseudo.call(this,argument);};return null;};Slick.override=function(regexp,fn){local.override(regexp,fn);return this;};Slick.isXML=local.isXML;Slick.uidOf=function(node){return local.getUIDHTML(node);};if(!this.Slick)this.Slick=Slick;}).apply((typeof exports!='undefined')?exports:this);var Element=function(tag,props){var konstructor=Element.Constructors[tag];if(konstructor)return konstructor(props);if(typeof tag!='string')return document.id(tag).set(props);if(!props)props={};if(!tag.test(/^[\w-]+$/)){var parsed=Slick.parse(tag).expressions[0][0];tag=(parsed.tag=='*')?'div':parsed.tag;if(parsed.id&&props.id==null)props.id=parsed.id;var attributes=parsed.attributes;if(attributes)for(var i=0,l=attributes.length;i<l;i++){var attr=attributes[i];if(attr.value!=null&&attr.operator=='='&&props[attr.key]==null)
props[attr.key]=attr.value;}
if(parsed.classList&&props['class']==null)props['class']=parsed.classList.join(' ');}
return document.newElement(tag,props);};if(Browser.Element)Element.prototype=Browser.Element.prototype;new Type('Element',Element).mirror(function(name){if(Array.prototype[name])return;var obj={};obj[name]=function(){var results=[],args=arguments,elements=true;for(var i=0,l=this.length;i<l;i++){var element=this[i],result=results[i]=element[name].apply(element,args);elements=(elements&&typeOf(result)=='element');}
return(elements)?new Elements(results):results;};Elements.implement(obj);});if(!Browser.Element){Element.parent=Object;Element.Prototype={'$family':Function.from('element').hide()};Element.mirror(function(name,method){Element.Prototype[name]=method;});}
Element.Constructors={};Element.Constructors=new Hash;var IFrame=new Type('IFrame',function(){var params=Array.link(arguments,{properties:Type.isObject,iframe:function(obj){return(obj!=null);}});var props=params.properties||{},iframe;if(params.iframe)iframe=document.id(params.iframe);var onload=props.onload||function(){};delete props.onload;props.id=props.name=[props.id,props.name,iframe?(iframe.id||iframe.name):'IFrame_'+String.uniqueID()].pick();iframe=new Element(iframe||'iframe',props);var onLoad=function(){onload.call(iframe.contentWindow);};if(window.frames[props.id])onLoad();else iframe.addListener('load',onLoad);return iframe;});var Elements=this.Elements=function(nodes){if(nodes&&nodes.length){var uniques={},node;for(var i=0;node=nodes[i++];){var uid=Slick.uidOf(node);if(!uniques[uid]){uniques[uid]=true;this.push(node);}}}};Elements.prototype={length:0};Elements.parent=Array;new Type('Elements',Elements).implement({filter:function(filter,bind){if(!filter)return this;return new Elements(Array.filter(this,(typeOf(filter)=='string')?function(item){return item.match(filter);}:filter,bind));}.protect(),push:function(){var length=this.length;for(var i=0,l=arguments.length;i<l;i++){var item=document.id(arguments[i]);if(item)this[length++]=item;}
return(this.length=length);}.protect(),concat:function(){var newElements=new Elements(this);for(var i=0,l=arguments.length;i<l;i++){var item=arguments[i];if(Type.isEnumerable(item))newElements.append(item);else newElements.push(item);}
return newElements;}.protect(),append:function(collection){for(var i=0,l=collection.length;i<l;i++)this.push(collection[i]);return this;}.protect(),empty:function(){while(this.length)delete this[--this.length];return this;}.protect()});(function(){var splice=Array.prototype.splice,object={'0':0,'1':1,length:2};splice.call(object,1,1);if(object[1]==1)Elements.implement('splice',function(){var length=this.length;splice.apply(this,arguments);while(length>=this.length)delete this[length--];return this;}.protect());Elements.implement(Array.prototype);Array.mirror(Elements);var createElementAcceptsHTML;try{var x=document.createElement('<input name=x>');createElementAcceptsHTML=(x.name=='x');}catch(e){}
var escapeQuotes=function(html){return(''+html).replace(/&/g,'&amp;').replace(/"/g,'&quot;');};Document.implement({newElement:function(tag,props){if(props&&props.checked!=null)props.defaultChecked=props.checked;if(createElementAcceptsHTML&&props){tag='<'+tag;if(props.name)tag+=' name="'+escapeQuotes(props.name)+'"';if(props.type)tag+=' type="'+escapeQuotes(props.type)+'"';tag+='>';delete props.name;delete props.type;}
return this.id(this.createElement(tag)).set(props);}});})();Document.implement({newTextNode:function(text){return this.createTextNode(text);},getDocument:function(){return this;},getWindow:function(){return this.window;},id:(function(){var types={string:function(id,nocash,doc){id=Slick.find(doc,'#'+id.replace(/(\W)/g,'\\$1'));return(id)?types.element(id,nocash):null;},element:function(el,nocash){$uid(el);if(!nocash&&!el.$family&&!(/^object|embed$/i).test(el.tagName)){Object.append(el,Element.Prototype);}
return el;},object:function(obj,nocash,doc){if(obj.toElement)return types.element(obj.toElement(doc),nocash);return null;}};types.textnode=types.whitespace=types.window=types.document=function(zero){return zero;};return function(el,nocash,doc){if(el&&el.$family&&el.uid)return el;var type=typeOf(el);return(types[type])?types[type](el,nocash,doc||document):null;};})()});if(window.$==null)Window.implement('$',function(el,nc){return document.id(el,nc,this.document);});Window.implement({getDocument:function(){return this.document;},getWindow:function(){return this;}});[Document,Element].invoke('implement',{getElements:function(expression){return Slick.search(this,expression,new Elements);},getElement:function(expression){return document.id(Slick.find(this,expression));}});(function(search,find,match){this.Selectors={};var pseudos=this.Selectors.Pseudo=new Hash();var addSlickPseudos=function(){for(var name in pseudos)if(pseudos.hasOwnProperty(name)){Slick.definePseudo(name,pseudos[name]);delete pseudos[name];}};Slick.search=function(context,expression,append){addSlickPseudos();return search.call(this,context,expression,append);};Slick.find=function(context,expression){addSlickPseudos();return find.call(this,context,expression);};Slick.match=function(node,selector){addSlickPseudos();return match.call(this,node,selector);};})(Slick.search,Slick.find,Slick.match);if(window.$$==null)Window.implement('$$',function(selector){var elements=new Elements;if(arguments.length==1&&typeof selector=='string')return Slick.search(this.document,selector,elements);var args=Array.flatten(arguments);for(var i=0,l=args.length;i<l;i++){var item=args[i];switch(typeOf(item)){case'element':elements.push(item);break;case'string':Slick.search(this.document,item,elements);}}
return elements;});if(window.$$==null)Window.implement('$$',function(selector){if(arguments.length==1){if(typeof selector=='string')return Slick.search(this.document,selector,new Elements);else if(Type.isEnumerable(selector))return new Elements(selector);}
return new Elements(arguments);});(function(){var collected={},storage={};var props={input:'checked',option:'selected',textarea:'value'};var get=function(uid){return(storage[uid]||(storage[uid]={}));};var clean=function(item){if(item.removeEvents)item.removeEvents();if(item.clearAttributes)item.clearAttributes();var uid=item.uid;if(uid!=null){delete collected[uid];delete storage[uid];}
return item;};var camels=['defaultValue','accessKey','cellPadding','cellSpacing','colSpan','frameBorder','maxLength','readOnly','rowSpan','tabIndex','useMap'];var bools=['compact','nowrap','ismap','declare','noshade','checked','disabled','readOnly','multiple','selected','noresize','defer'];var attributes={'html':'innerHTML','class':'className','for':'htmlFor','text':(function(){var temp=document.createElement('div');return(temp.innerText==null)?'textContent':'innerText';})()};var readOnly=['type'];var expandos=['value','defaultValue'];var uriAttrs=/^(?:href|src|usemap)$/i;bools=bools.associate(bools);camels=camels.associate(camels.map(String.toLowerCase));readOnly=readOnly.associate(readOnly);Object.append(attributes,expandos.associate(expandos));var inserters={before:function(context,element){var parent=element.parentNode;if(parent)parent.insertBefore(context,element);},after:function(context,element){var parent=element.parentNode;if(parent)parent.insertBefore(context,element.nextSibling);},bottom:function(context,element){element.appendChild(context);},top:function(context,element){element.insertBefore(context,element.firstChild);}};inserters.inside=inserters.bottom;Object.each(inserters,function(inserter,where){where=where.capitalize();var methods={};methods['inject'+where]=function(el){inserter(this,document.id(el,true));return this;};methods['grab'+where]=function(el){inserter(document.id(el,true),this);return this;};Element.implement(methods);});var injectCombinator=function(expression,combinator){if(!expression)return combinator;expression=Slick.parse(expression);var expressions=expression.expressions;for(var i=expressions.length;i--;)
expressions[i][0].combinator=combinator;return expression;};Element.implement({set:function(prop,value){var property=Element.Properties[prop];(property&&property.set)?property.set.call(this,value):this.setProperty(prop,value);}.overloadSetter(),get:function(prop){var property=Element.Properties[prop];return(property&&property.get)?property.get.apply(this):this.getProperty(prop);}.overloadGetter(),erase:function(prop){var property=Element.Properties[prop];(property&&property.erase)?property.erase.apply(this):this.removeProperty(prop);return this;},setProperty:function(attribute,value){attribute=camels[attribute]||attribute;if(value==null)return this.removeProperty(attribute);var key=attributes[attribute];(key)?this[key]=value:(bools[attribute])?this[attribute]=!!value:this.setAttribute(attribute,''+value);return this;},setProperties:function(attributes){for(var attribute in attributes)this.setProperty(attribute,attributes[attribute]);return this;},getProperty:function(attribute){attribute=camels[attribute]||attribute;var key=attributes[attribute]||readOnly[attribute];return(key)?this[key]:(bools[attribute])?!!this[attribute]:(uriAttrs.test(attribute)?this.getAttribute(attribute,2):(key=this.getAttributeNode(attribute))?key.nodeValue:null)||null;},getProperties:function(){var args=Array.from(arguments);return args.map(this.getProperty,this).associate(args);},removeProperty:function(attribute){attribute=camels[attribute]||attribute;var key=attributes[attribute];(key)?this[key]='':(bools[attribute])?this[attribute]=false:this.removeAttribute(attribute);return this;},removeProperties:function(){Array.each(arguments,this.removeProperty,this);return this;},hasClass:function(className){return this.className.clean().contains(className,' ');},addClass:function(className){if(!this.hasClass(className))this.className=(this.className+' '+className).clean();return this;},removeClass:function(className){this.className=this.className.replace(new RegExp('(^|\\s)'+className+'(?:\\s|$)'),'$1');return this;},toggleClass:function(className,force){if(force==null)force=!this.hasClass(className);return(force)?this.addClass(className):this.removeClass(className);},adopt:function(){var parent=this,fragment,elements=Array.flatten(arguments),length=elements.length;if(length>1)parent=fragment=document.createDocumentFragment();for(var i=0;i<length;i++){var element=document.id(elements[i],true);if(element)parent.appendChild(element);}
if(fragment)this.appendChild(fragment);return this;},appendText:function(text,where){return this.grab(this.getDocument().newTextNode(text),where);},grab:function(el,where){inserters[where||'bottom'](document.id(el,true),this);return this;},inject:function(el,where){inserters[where||'bottom'](this,document.id(el,true));return this;},replaces:function(el){el=document.id(el,true);el.parentNode.replaceChild(this,el);return this;},wraps:function(el,where){el=document.id(el,true);return this.replaces(el).grab(el,where);},getPrevious:function(expression){return document.id(Slick.find(this,injectCombinator(expression,'!~')));},getAllPrevious:function(expression){return Slick.search(this,injectCombinator(expression,'!~'),new Elements);},getNext:function(expression){return document.id(Slick.find(this,injectCombinator(expression,'~')));},getAllNext:function(expression){return Slick.search(this,injectCombinator(expression,'~'),new Elements);},getFirst:function(expression){return document.id(Slick.search(this,injectCombinator(expression,'>'))[0]);},getLast:function(expression){return document.id(Slick.search(this,injectCombinator(expression,'>')).getLast());},getParent:function(expression){return document.id(Slick.find(this,injectCombinator(expression,'!')));},getParents:function(expression){return Slick.search(this,injectCombinator(expression,'!'),new Elements);},getSiblings:function(expression){return Slick.search(this,injectCombinator(expression,'~~'),new Elements);},getChildren:function(expression){return Slick.search(this,injectCombinator(expression,'>'),new Elements);},getWindow:function(){return this.ownerDocument.window;},getDocument:function(){return this.ownerDocument;},getElementById:function(id){return document.id(Slick.find(this,'#'+(''+id).replace(/(\W)/g,'\\$1')));},getSelected:function(){this.selectedIndex;return new Elements(Array.from(this.options).filter(function(option){return option.selected;}));},toQueryString:function(){var queryString=[];this.getElements('input, select, textarea').each(function(el){var type=el.type;if(!el.name||el.disabled||type=='submit'||type=='reset'||type=='file'||type=='image')return;var value=(el.get('tag')=='select')?el.getSelected().map(function(opt){return document.id(opt).get('value');}):((type=='radio'||type=='checkbox')&&!el.checked)?null:el.get('value');Array.from(value).each(function(val){if(typeof val!='undefined')queryString.push(encodeURIComponent(el.name)+'='+encodeURIComponent(val));});});return queryString.join('&');},clone:function(contents,keepid){contents=contents!==false;var clone=this.cloneNode(contents);var clean=function(node,element){if(!keepid)node.removeAttribute('id');if(Browser.ie){node.clearAttributes();node.mergeAttributes(element);node.removeAttribute('uid');if(node.options){var no=node.options,eo=element.options;for(var j=no.length;j--;)no[j].selected=eo[j].selected;}}
var prop=props[element.tagName.toLowerCase()];if(prop&&element[prop])node[prop]=element[prop];};var i;if(contents){var ce=clone.getElementsByTagName('*'),te=this.getElementsByTagName('*');for(i=ce.length;i--;)clean(ce[i],te[i]);}
clean(clone,this);if(Browser.ie){var ts=this.getElementsByTagName('object'),cs=clone.getElementsByTagName('object'),tl=ts.length,cl=cs.length;for(i=0;i<tl&&i<cl;i++)
cs[i].outerHTML=ts[i].outerHTML;}
return document.id(clone);},destroy:function(){var children=clean(this).getElementsByTagName('*');Array.each(children,clean);Element.dispose(this);return null;},empty:function(){Array.from(this.childNodes).each(Element.dispose);return this;},dispose:function(){return(this.parentNode)?this.parentNode.removeChild(this):this;},match:function(expression){return!expression||Slick.match(this,expression);}});var contains={contains:function(element){return Slick.contains(this,element);}};if(!document.contains)Document.implement(contains);if(!document.createElement('div').contains)Element.implement(contains);Element.implement('hasChild',function(element){return this!==element&&this.contains(element);});[Element,Window,Document].invoke('implement',{addListener:function(type,fn){if(type=='unload'){var old=fn,self=this;fn=function(){self.removeListener('unload',fn);old();};}else{collected[this.uid]=this;}
if(this.addEventListener)this.addEventListener(type,fn,false);else this.attachEvent('on'+type,fn);return this;},removeListener:function(type,fn){if(this.removeEventListener)this.removeEventListener(type,fn,false);else this.detachEvent('on'+type,fn);return this;},retrieve:function(property,dflt){var storage=get(this.uid),prop=storage[property];if(dflt!=null&&prop==null)prop=storage[property]=dflt;return prop!=null?prop:null;},store:function(property,value){var storage=get(this.uid);storage[property]=value;return this;},eliminate:function(property){var storage=get(this.uid);delete storage[property];return this;}});if(window.attachEvent&&!window.addEventListener)window.addListener('unload',function(){Object.each(collected,clean);if(window.CollectGarbage)CollectGarbage();});})();Element.Properties={};Element.Properties=new Hash;Element.Properties.style={set:function(style){this.style.cssText=style;},get:function(){return this.style.cssText;},erase:function(){this.style.cssText='';}};Element.Properties.tag={get:function(){return this.tagName.toLowerCase();}};(function(maxLength){if(maxLength!=null)Element.Properties.maxlength=Element.Properties.maxLength={get:function(){var maxlength=this.getAttribute('maxLength');return maxlength==maxLength?null:maxlength;}};})(document.createElement('input').getAttribute('maxLength'));Element.Properties.html=(function(){var tableTest=Function.attempt(function(){var table=document.createElement('table');table.innerHTML='<tr><td></td></tr>';});var wrapper=document.createElement('div');var translations={table:[1,'<table>','</table>'],select:[1,'<select>','</select>'],tbody:[2,'<table><tbody>','</tbody></table>'],tr:[3,'<table><tbody><tr>','</tr></tbody></table>']};translations.thead=translations.tfoot=translations.tbody;var html={set:function(){var html=Array.flatten(arguments).join('');var wrap=(!tableTest&&translations[this.get('tag')]);if(wrap){var first=wrapper;first.innerHTML=wrap[1]+html+wrap[2];for(var i=wrap[0];i--;)first=first.firstChild;this.empty().adopt(first.childNodes);}else{this.innerHTML=html;}}};html.erase=html.set;return html;})();(function(){var html=document.html;Element.Properties.styles={set:function(styles){this.setStyles(styles);}};var hasOpacity=(html.style.opacity!=null);var reAlpha=/alpha\(opacity=([\d.]+)\)/i;var setOpacity=function(element,opacity){if(!element.currentStyle||!element.currentStyle.hasLayout)element.style.zoom=1;if(hasOpacity){element.style.opacity=opacity;}else{opacity=(opacity==1)?'':'alpha(opacity='+opacity*100+')';var filter=element.style.filter||element.getComputedStyle('filter')||'';element.style.filter=filter.test(reAlpha)?filter.replace(reAlpha,opacity):filter+opacity;}};Element.Properties.opacity={set:function(opacity){var visibility=this.style.visibility;if(opacity==0&&visibility!='hidden')this.style.visibility='hidden';else if(opacity!=0&&visibility!='visible')this.style.visibility='visible';setOpacity(this,opacity);},get:(hasOpacity)?function(){var opacity=this.style.opacity||this.getComputedStyle('opacity');return(opacity=='')?1:opacity;}:function(){var opacity,filter=(this.style.filter||this.getComputedStyle('filter'));if(filter)opacity=filter.match(reAlpha);return(opacity==null||filter==null)?1:(opacity[1]/100);}};var floatName=(html.style.cssFloat==null)?'styleFloat':'cssFloat';Element.implement({getComputedStyle:function(property){if(this.currentStyle)return this.currentStyle[property.camelCase()];var defaultView=Element.getDocument(this).defaultView,computed=defaultView?defaultView.getComputedStyle(this,null):null;return(computed)?computed.getPropertyValue((property==floatName)?'float':property.hyphenate()):null;},setOpacity:function(value){setOpacity(this,value);return this;},getOpacity:function(){return this.get('opacity');},setStyle:function(property,value){switch(property){case'opacity':return this.set('opacity',parseFloat(value));case'float':property=floatName;}
property=property.camelCase();if(typeOf(value)!='string'){var map=(Element.Styles[property]||'@').split(' ');value=Array.from(value).map(function(val,i){if(!map[i])return'';return(typeOf(val)=='number')?map[i].replace('@',Math.round(val)):val;}).join(' ');}else if(value==String(Number(value))){value=Math.round(value);}
this.style[property]=value;return this;},getStyle:function(property){switch(property){case'opacity':return this.get('opacity');case'float':property=floatName;}
property=property.camelCase();var result=this.style[property];if(!result||property=='zIndex'){result=[];for(var style in Element.ShortStyles){if(property!=style)continue;for(var s in Element.ShortStyles[style])result.push(this.getStyle(s));return result.join(' ');}
result=this.getComputedStyle(property);}
if(result){result=String(result);var color=result.match(/rgba?\([\d\s,]+\)/);if(color)result=result.replace(color[0],color[0].rgbToHex());}
if(Browser.opera||(Browser.ie&&isNaN(parseFloat(result)))){if(property.test(/^(height|width)$/)){var values=(property=='width')?['left','right']:['top','bottom'],size=0;values.each(function(value){size+=this.getStyle('border-'+value+'-width').toInt()+this.getStyle('padding-'+value).toInt();},this);return this['offset'+property.capitalize()]-size+'px';}
if(Browser.opera&&String(result).indexOf('px')!=-1)return result;if(property.test(/(border(.+)Width|margin|padding)/))return'0px';}
return result;},setStyles:function(styles){for(var style in styles)this.setStyle(style,styles[style]);return this;},getStyles:function(){var result={};Array.flatten(arguments).each(function(key){result[key]=this.getStyle(key);},this);return result;}});Element.Styles={left:'@px',top:'@px',bottom:'@px',right:'@px',width:'@px',height:'@px',maxWidth:'@px',maxHeight:'@px',minWidth:'@px',minHeight:'@px',backgroundColor:'rgb(@, @, @)',backgroundPosition:'@px @px',color:'rgb(@, @, @)',fontSize:'@px',letterSpacing:'@px',lineHeight:'@px',clip:'rect(@px @px @px @px)',margin:'@px @px @px @px',padding:'@px @px @px @px',border:'@px @ rgb(@, @, @) @px @ rgb(@, @, @) @px @ rgb(@, @, @)',borderWidth:'@px @px @px @px',borderStyle:'@ @ @ @',borderColor:'rgb(@, @, @) rgb(@, @, @) rgb(@, @, @) rgb(@, @, @)',zIndex:'@','zoom':'@',fontWeight:'@',textIndent:'@px',opacity:'@'};Element.Styles=new Hash(Element.Styles);Element.ShortStyles={margin:{},padding:{},border:{},borderWidth:{},borderStyle:{},borderColor:{}};['Top','Right','Bottom','Left'].each(function(direction){var Short=Element.ShortStyles;var All=Element.Styles;['margin','padding'].each(function(style){var sd=style+direction;Short[style][sd]=All[sd]='@px';});var bd='border'+direction;Short.border[bd]=All[bd]='@px @ rgb(@, @, @)';var bdw=bd+'Width',bds=bd+'Style',bdc=bd+'Color';Short[bd]={};Short.borderWidth[bdw]=Short[bd][bdw]=All[bdw]='@px';Short.borderStyle[bds]=Short[bd][bds]=All[bds]='@';Short.borderColor[bdc]=Short[bd][bdc]=All[bdc]='rgb(@, @, @)';});})();(function(){Element.Properties.events={set:function(events){this.addEvents(events);}};[Element,Window,Document].invoke('implement',{addEvent:function(type,fn){var events=this.retrieve('events',{});if(!events[type])events[type]={keys:[],values:[]};if(events[type].keys.contains(fn))return this;events[type].keys.push(fn);var realType=type,custom=Element.Events[type],condition=fn,self=this;if(custom){if(custom.onAdd)custom.onAdd.call(this,fn);if(custom.condition){condition=function(event){if(custom.condition.call(this,event))return fn.call(this,event);return true;};}
realType=custom.base||realType;}
var defn=function(){return fn.call(self);};var nativeEvent=Element.NativeEvents[realType];if(nativeEvent){if(nativeEvent==2){defn=function(event){event=new Event(event,self.getWindow());if(condition.call(self,event)===false)event.stop();};}
this.addListener(realType,defn);}
events[type].values.push(defn);return this;},removeEvent:function(type,fn){var events=this.retrieve('events');if(!events||!events[type])return this;var list=events[type];var index=list.keys.indexOf(fn);if(index==-1)return this;var value=list.values[index];delete list.keys[index];delete list.values[index];var custom=Element.Events[type];if(custom){if(custom.onRemove)custom.onRemove.call(this,fn);type=custom.base||type;}
return(Element.NativeEvents[type])?this.removeListener(type,value):this;},addEvents:function(events){for(var event in events)this.addEvent(event,events[event]);return this;},removeEvents:function(events){var type;if(typeOf(events)=='object'){for(type in events)this.removeEvent(type,events[type]);return this;}
var attached=this.retrieve('events');if(!attached)return this;if(!events){for(type in attached)this.removeEvents(type);this.eliminate('events');}else if(attached[events]){attached[events].keys.each(function(fn){this.removeEvent(events,fn);},this);delete attached[events];}
return this;},fireEvent:function(type,args,delay){var events=this.retrieve('events');if(!events||!events[type])return this;args=Array.from(args);events[type].keys.each(function(fn){if(delay)fn.delay(delay,this,args);else fn.apply(this,args);},this);return this;},cloneEvents:function(from,type){from=document.id(from);var events=from.retrieve('events');if(!events)return this;if(!type){for(var eventType in events)this.cloneEvents(from,eventType);}else if(events[type]){events[type].keys.each(function(fn){this.addEvent(type,fn);},this);}
return this;}});try{if(typeof HTMLElement!='undefined')
HTMLElement.prototype.fireEvent=Element.prototype.fireEvent;}catch(e){}
Element.NativeEvents={click:2,dblclick:2,mouseup:2,mousedown:2,contextmenu:2,mousewheel:2,DOMMouseScroll:2,mouseover:2,mouseout:2,mousemove:2,selectstart:2,selectend:2,keydown:2,keypress:2,keyup:2,orientationchange:2,touchstart:2,touchmove:2,touchend:2,touchcancel:2,gesturestart:2,gesturechange:2,gestureend:2,focus:2,blur:2,change:2,reset:2,select:2,submit:2,load:2,unload:1,beforeunload:2,resize:1,move:1,DOMContentLoaded:1,readystatechange:1,error:1,abort:1,scroll:1};var check=function(event){var related=event.relatedTarget;if(related==null)return true;if(!related)return false;return(related!=this&&related.prefix!='xul'&&typeOf(this)!='document'&&!this.contains(related));};Element.Events={mouseenter:{base:'mouseover',condition:check},mouseleave:{base:'mouseout',condition:check},mousewheel:{base:(Browser.firefox)?'DOMMouseScroll':'mousewheel'}};Element.Events=new Hash(Element.Events);})();(function(){Element.implement({scrollTo:function(x,y){if(isBody(this)){this.getWindow().scrollTo(x,y);}else{this.scrollLeft=x;this.scrollTop=y;}
return this;},getSize:function(){if(isBody(this))return this.getWindow().getSize();return{x:this.offsetWidth,y:this.offsetHeight};},getScrollSize:function(){if(isBody(this))return this.getWindow().getScrollSize();return{x:this.scrollWidth,y:this.scrollHeight};},getScroll:function(){if(isBody(this))return this.getWindow().getScroll();return{x:this.scrollLeft,y:this.scrollTop};},getScrolls:function(){var element=this.parentNode,position={x:0,y:0};while(element&&!isBody(element)){position.x+=element.scrollLeft;position.y+=element.scrollTop;element=element.parentNode;}
return position;},getOffsetParent:function(){var element=this;if(isBody(element))return null;if(!Browser.ie)return element.offsetParent;while((element=element.parentNode)){if(styleString(element,'position')!='static'||isBody(element))return element;}
return null;},getOffsets:function(){if(this.getBoundingClientRect&&!Browser.Platform.ios){var bound=this.getBoundingClientRect(),html=document.id(this.getDocument().documentElement),htmlScroll=html.getScroll(),elemScrolls=this.getScrolls(),isFixed=(styleString(this,'position')=='fixed');return{x:bound.left.toInt()+elemScrolls.x+((isFixed)?0:htmlScroll.x)-html.clientLeft,y:bound.top.toInt()+elemScrolls.y+((isFixed)?0:htmlScroll.y)-html.clientTop};}
var element=this,position={x:0,y:0};if(isBody(this))return position;while(element&&!isBody(element)){position.x+=element.offsetLeft;position.y+=element.offsetTop;if(Browser.firefox){if(!borderBox(element)){position.x+=leftBorder(element);position.y+=topBorder(element);}
var parent=element.parentNode;if(parent&&styleString(parent,'overflow')!='visible'){position.x+=leftBorder(parent);position.y+=topBorder(parent);}}else if(element!=this&&Browser.safari){position.x+=leftBorder(element);position.y+=topBorder(element);}
element=element.offsetParent;}
if(Browser.firefox&&!borderBox(this)){position.x-=leftBorder(this);position.y-=topBorder(this);}
return position;},getPosition:function(relative){if(isBody(this))return{x:0,y:0};var offset=this.getOffsets(),scroll=this.getScrolls();var position={x:offset.x-scroll.x,y:offset.y-scroll.y};if(relative&&(relative=document.id(relative))){var relativePosition=relative.getPosition();return{x:position.x-relativePosition.x-leftBorder(relative),y:position.y-relativePosition.y-topBorder(relative)};}
return position;},getCoordinates:function(element){if(isBody(this))return this.getWindow().getCoordinates();var position=this.getPosition(element),size=this.getSize();var obj={left:position.x,top:position.y,width:size.x,height:size.y};obj.right=obj.left+obj.width;obj.bottom=obj.top+obj.height;return obj;},computePosition:function(obj){return{left:obj.x-styleNumber(this,'margin-left'),top:obj.y-styleNumber(this,'margin-top')};},setPosition:function(obj){return this.setStyles(this.computePosition(obj));}});[Document,Window].invoke('implement',{getSize:function(){var doc=getCompatElement(this);return{x:doc.clientWidth,y:doc.clientHeight};},getScroll:function(){var win=this.getWindow(),doc=getCompatElement(this);return{x:win.pageXOffset||doc.scrollLeft,y:win.pageYOffset||doc.scrollTop};},getScrollSize:function(){var doc=getCompatElement(this),min=this.getSize(),body=this.getDocument().body;return{x:Math.max(doc.scrollWidth,body.scrollWidth,min.x),y:Math.max(doc.scrollHeight,body.scrollHeight,min.y)};},getPosition:function(){return{x:0,y:0};},getCoordinates:function(){var size=this.getSize();return{top:0,left:0,bottom:size.y,right:size.x,height:size.y,width:size.x};}});var styleString=Element.getComputedStyle;function styleNumber(element,style){return styleString(element,style).toInt()||0;};function borderBox(element){return styleString(element,'-moz-box-sizing')=='border-box';};function topBorder(element){return styleNumber(element,'border-top-width');};function leftBorder(element){return styleNumber(element,'border-left-width');};function isBody(element){return(/^(?:body|html)$/i).test(element.tagName);};function getCompatElement(element){var doc=element.getDocument();return(!doc.compatMode||doc.compatMode=='CSS1Compat')?doc.html:doc.body;};})();Element.alias({position:'setPosition'});[Window,Document,Element].invoke('implement',{getHeight:function(){return this.getSize().y;},getWidth:function(){return this.getSize().x;},getScrollTop:function(){return this.getScroll().y;},getScrollLeft:function(){return this.getScroll().x;},getScrollHeight:function(){return this.getScrollSize().y;},getScrollWidth:function(){return this.getScrollSize().x;},getTop:function(){return this.getPosition().y;},getLeft:function(){return this.getPosition().x;}});(function(){var Fx=this.Fx=new Class({Implements:[Chain,Events,Options],options:{fps:50,unit:false,duration:500,link:'ignore'},initialize:function(options){this.subject=this.subject||this;this.setOptions(options);},getTransition:function(){return function(p){return-(Math.cos(Math.PI*p)-1)/2;};},step:function(){var time=Date.now();if(time<this.time+this.options.duration){var delta=this.transition((time-this.time)/this.options.duration);this.set(this.compute(this.from,this.to,delta));}else{this.set(this.compute(this.from,this.to,1));this.complete();}},set:function(now){return now;},compute:function(from,to,delta){return Fx.compute(from,to,delta);},check:function(){if(!this.timer)return true;switch(this.options.link){case'cancel':this.cancel();return true;case'chain':this.chain(this.caller.pass(arguments,this));return false;}
return false;},start:function(from,to){if(!this.check(from,to))return this;var duration=this.options.duration;this.options.duration=Fx.Durations[duration]||duration.toInt();this.from=from;this.to=to;this.time=0;this.transition=this.getTransition();this.startTimer();this.onStart();return this;},complete:function(){if(this.stopTimer())this.onComplete();return this;},cancel:function(){if(this.stopTimer())this.onCancel();return this;},onStart:function(){this.fireEvent('start',this.subject);},onComplete:function(){this.fireEvent('complete',this.subject);if(!this.callChain())this.fireEvent('chainComplete',this.subject);},onCancel:function(){this.fireEvent('cancel',this.subject).clearChain();},pause:function(){this.stopTimer();return this;},resume:function(){this.startTimer();return this;},stopTimer:function(){if(!this.timer)return false;this.time=Date.now()-this.time;this.timer=removeInstance(this);return true;},startTimer:function(){if(this.timer)return false;this.time=Date.now()-this.time;this.timer=addInstance(this);return true;}});Fx.compute=function(from,to,delta){return(to-from)*delta+from;};Fx.Durations={'short':250,'normal':500,'long':1000};var instances={},timers={};var loop=function(){for(var i=this.length;i--;){if(this[i])this[i].step();}};var addInstance=function(instance){var fps=instance.options.fps,list=instances[fps]||(instances[fps]=[]);list.push(instance);if(!timers[fps])timers[fps]=loop.periodical(Math.round(1000/fps),list);return true;};var removeInstance=function(instance){var fps=instance.options.fps,list=instances[fps]||[];list.erase(instance);if(!list.length&&timers[fps])timers[fps]=clearInterval(timers[fps]);return false;};})();Fx.CSS=new Class({Extends:Fx,prepare:function(element,property,values){values=Array.from(values);if(values[1]==null){values[1]=values[0];values[0]=element.getStyle(property);}
var parsed=values.map(this.parse);return{from:parsed[0],to:parsed[1]};},parse:function(value){value=Function.from(value)();value=(typeof value=='string')?value.split(' '):Array.from(value);return value.map(function(val){val=String(val);var found=false;Object.each(Fx.CSS.Parsers,function(parser,key){if(found)return;var parsed=parser.parse(val);if(parsed||parsed===0)found={value:parsed,parser:parser};});found=found||{value:val,parser:Fx.CSS.Parsers.String};return found;});},compute:function(from,to,delta){var computed=[];(Math.min(from.length,to.length)).times(function(i){computed.push({value:from[i].parser.compute(from[i].value,to[i].value,delta),parser:from[i].parser});});computed.$family=Function.from('fx:css:value');return computed;},serve:function(value,unit){if(typeOf(value)!='fx:css:value')value=this.parse(value);var returned=[];value.each(function(bit){returned=returned.concat(bit.parser.serve(bit.value,unit));});return returned;},render:function(element,property,value,unit){element.setStyle(property,this.serve(value,unit));},search:function(selector){if(Fx.CSS.Cache[selector])return Fx.CSS.Cache[selector];var to={};Array.each(document.styleSheets,function(sheet,j){var href=sheet.href;if(href&&href.contains('://')&&!href.contains(document.domain))return;var rules=sheet.rules||sheet.cssRules;Array.each(rules,function(rule,i){if(!rule.style)return;var selectorText=(rule.selectorText)?rule.selectorText.replace(/^\w+/,function(m){return m.toLowerCase();}):null;if(!selectorText||!selectorText.test('^'+selector+'$'))return;Element.Styles.each(function(value,style){if(!rule.style[style]||Element.ShortStyles[style])return;value=String(rule.style[style]);to[style]=(value.test(/^rgb/))?value.rgbToHex():value;});});});return Fx.CSS.Cache[selector]=to;}});Fx.CSS.Cache={};Fx.CSS.Parsers={Color:{parse:function(value){if(value.match(/^#[0-9a-f]{3,6}$/i))return value.hexToRgb(true);return((value=value.match(/(\d+),\s*(\d+),\s*(\d+)/)))?[value[1],value[2],value[3]]:false;},compute:function(from,to,delta){return from.map(function(value,i){return Math.round(Fx.compute(from[i],to[i],delta));});},serve:function(value){return value.map(Number);}},Number:{parse:parseFloat,compute:Fx.compute,serve:function(value,unit){return(unit)?value+unit:value;}},String:{parse:Function.from(false),compute:function(zero,one){return one;},serve:function(zero){return zero;}}};Fx.CSS.Parsers=new Hash(Fx.CSS.Parsers);Fx.Tween=new Class({Extends:Fx.CSS,initialize:function(element,options){this.element=this.subject=document.id(element);this.parent(options);},set:function(property,now){if(arguments.length==1){now=property;property=this.property||this.options.property;}
this.render(this.element,property,now,this.options.unit);return this;},start:function(property,from,to){if(!this.check(property,from,to))return this;var args=Array.flatten(arguments);this.property=this.options.property||args.shift();var parsed=this.prepare(this.element,this.property,args);return this.parent(parsed.from,parsed.to);}});Element.Properties.tween={set:function(options){this.get('tween').cancel().setOptions(options);return this;},get:function(){var tween=this.retrieve('tween');if(!tween){tween=new Fx.Tween(this,{link:'cancel'});this.store('tween',tween);}
return tween;}};Element.implement({tween:function(property,from,to){this.get('tween').start(arguments);return this;},fade:function(how){var fade=this.get('tween'),o='opacity',toggle;how=[how,'toggle'].pick();switch(how){case'in':fade.start(o,1);break;case'out':fade.start(o,0);break;case'show':fade.set(o,1);break;case'hide':fade.set(o,0);break;case'toggle':var flag=this.retrieve('fade:flag',this.get('opacity')==1);fade.start(o,(flag)?0:1);this.store('fade:flag',!flag);toggle=true;break;default:fade.start(o,arguments);}
if(!toggle)this.eliminate('fade:flag');return this;},highlight:function(start,end){if(!end){end=this.retrieve('highlight:original',this.getStyle('background-color'));end=(end=='transparent')?'#fff':end;}
var tween=this.get('tween');tween.start('background-color',start||'#ffff88',end).chain(function(){this.setStyle('background-color',this.retrieve('highlight:original'));tween.callChain();}.bind(this));return this;}});Fx.Morph=new Class({Extends:Fx.CSS,initialize:function(element,options){this.element=this.subject=document.id(element);this.parent(options);},set:function(now){if(typeof now=='string')now=this.search(now);for(var p in now)this.render(this.element,p,now[p],this.options.unit);return this;},compute:function(from,to,delta){var now={};for(var p in from)now[p]=this.parent(from[p],to[p],delta);return now;},start:function(properties){if(!this.check(properties))return this;if(typeof properties=='string')properties=this.search(properties);var from={},to={};for(var p in properties){var parsed=this.prepare(this.element,p,properties[p]);from[p]=parsed.from;to[p]=parsed.to;}
return this.parent(from,to);}});Element.Properties.morph={set:function(options){this.get('morph').cancel().setOptions(options);return this;},get:function(){var morph=this.retrieve('morph');if(!morph){morph=new Fx.Morph(this,{link:'cancel'});this.store('morph',morph);}
return morph;}};Element.implement({morph:function(props){this.get('morph').start(props);return this;}});Fx.implement({getTransition:function(){var trans=this.options.transition||Fx.Transitions.Sine.easeInOut;if(typeof trans=='string'){var data=trans.split(':');trans=Fx.Transitions;trans=trans[data[0]]||trans[data[0].capitalize()];if(data[1])trans=trans['ease'+data[1].capitalize()+(data[2]?data[2].capitalize():'')];}
return trans;}});Fx.Transition=function(transition,params){params=Array.from(params);return Object.append(transition,{easeIn:function(pos){return transition(pos,params);},easeOut:function(pos){return 1-transition(1-pos,params);},easeInOut:function(pos){return(pos<=0.5)?transition(2*pos,params)/2:(2-transition(2*(1-pos),params))/2;}});};Fx.Transitions={linear:function(zero){return zero;}};Fx.Transitions=new Hash(Fx.Transitions);Fx.Transitions.extend=function(transitions){for(var transition in transitions)Fx.Transitions[transition]=new Fx.Transition(transitions[transition]);};Fx.Transitions.extend({Pow:function(p,x){return Math.pow(p,x&&x[0]||6);},Expo:function(p){return Math.pow(2,8*(p-1));},Circ:function(p){return 1-Math.sin(Math.acos(p));},Sine:function(p){return 1-Math.sin((1-p)*Math.PI/2);},Back:function(p,x){x=x&&x[0]||1.618;return Math.pow(p,2)*((x+1)*p-x);},Bounce:function(p){var value;for(var a=0,b=1;1;a+=b,b/=2){if(p>=(7-4*a)/11){value=b*b-Math.pow((11-6*a-11*p)/4,2);break;}}
return value;},Elastic:function(p,x){return Math.pow(2,10*--p)*Math.cos(20*p*Math.PI*(x&&x[0]||1)/3);}});['Quad','Cubic','Quart','Quint'].each(function(transition,i){Fx.Transitions[transition]=new Fx.Transition(function(p){return Math.pow(p,[i+2]);});});(function(){var progressSupport=('onprogress'in new Browser.Request);var Request=this.Request=new Class({Implements:[Chain,Events,Options],options:{url:'',data:'',headers:{'X-Requested-With':'XMLHttpRequest','Accept':'text/javascript, text/html, application/xml, text/xml, */*'},async:true,format:false,method:'post',link:'ignore',isSuccess:null,emulation:true,urlEncoded:true,encoding:'utf-8',evalScripts:false,evalResponse:false,timeout:0,noCache:false},initialize:function(options){this.xhr=new Browser.Request();this.setOptions(options);this.headers=this.options.headers;},onStateChange:function(){var xhr=this.xhr;if(xhr.readyState!=4||!this.running)return;this.running=false;this.status=0;Function.attempt(function(){var status=xhr.status;this.status=(status==1223)?204:status;}.bind(this));xhr.onreadystatechange=function(){};clearTimeout(this.timer);this.response={text:this.xhr.responseText||'',xml:this.xhr.responseXML};if(this.options.isSuccess.call(this,this.status))
this.success(this.response.text,this.response.xml);else
this.failure();},isSuccess:function(){var status=this.status;return(status>=200&&status<300);},isRunning:function(){return!!this.running;},processScripts:function(text){if(this.options.evalResponse||(/(ecma|java)script/).test(this.getHeader('Content-type')))return Browser.exec(text);return text.stripScripts(this.options.evalScripts);},success:function(text,xml){this.onSuccess(this.processScripts(text),xml);},onSuccess:function(){this.fireEvent('complete',arguments).fireEvent('success',arguments).callChain();},failure:function(){this.onFailure();},onFailure:function(){this.fireEvent('complete').fireEvent('failure',this.xhr);},loadstart:function(event){this.fireEvent('loadstart',[event,this.xhr]);},progress:function(event){this.fireEvent('progress',[event,this.xhr]);},timeout:function(){this.fireEvent('timeout',this.xhr);},setHeader:function(name,value){this.headers[name]=value;return this;},getHeader:function(name){return Function.attempt(function(){return this.xhr.getResponseHeader(name);}.bind(this));},check:function(){if(!this.running)return true;switch(this.options.link){case'cancel':this.cancel();return true;case'chain':this.chain(this.caller.pass(arguments,this));return false;}
return false;},send:function(options){if(!this.check(options))return this;this.options.isSuccess=this.options.isSuccess||this.isSuccess;this.running=true;var type=typeOf(options);if(type=='string'||type=='element')options={data:options};var old=this.options;options=Object.append({data:old.data,url:old.url,method:old.method},options);var data=options.data,url=String(options.url),method=options.method.toLowerCase();switch(typeOf(data)){case'element':data=document.id(data).toQueryString();break;case'object':case'hash':data=Object.toQueryString(data);}
if(this.options.format){var format='format='+this.options.format;data=(data)?format+'&'+data:format;}
if(this.options.emulation&&!['get','post'].contains(method)){var _method='_method='+method;data=(data)?_method+'&'+data:_method;method='post';}
if(this.options.urlEncoded&&['post','put'].contains(method)){var encoding=(this.options.encoding)?'; charset='+this.options.encoding:'';this.headers['Content-type']='application/x-www-form-urlencoded'+encoding;}
if(!url)url=document.location.pathname;var trimPosition=url.lastIndexOf('/');if(trimPosition>-1&&(trimPosition=url.indexOf('#'))>-1)url=url.substr(0,trimPosition);if(this.options.noCache)
url+=(url.contains('?')?'&':'?')+String.uniqueID();if(data&&method=='get'){url+=(url.contains('?')?'&':'?')+data;data=null;}
var xhr=this.xhr;if(progressSupport){xhr.onloadstart=this.loadstart.bind(this);xhr.onprogress=this.progress.bind(this);}
xhr.open(method.toUpperCase(),url,this.options.async,this.options.user,this.options.password);if(this.options.user&&'withCredentials'in xhr)xhr.withCredentials=true;xhr.onreadystatechange=this.onStateChange.bind(this);Object.each(this.headers,function(value,key){try{xhr.setRequestHeader(key,value);}catch(e){this.fireEvent('exception',[key,value]);}},this);this.fireEvent('request');xhr.send(data);if(!this.options.async)this.onStateChange();if(this.options.timeout)this.timer=this.timeout.delay(this.options.timeout,this);return this;},cancel:function(){if(!this.running)return this;this.running=false;var xhr=this.xhr;xhr.abort();clearTimeout(this.timer);xhr.onreadystatechange=xhr.onprogress=xhr.onloadstart=function(){};this.xhr=new Browser.Request();this.fireEvent('cancel');return this;}});var methods={};['get','post','put','delete','GET','POST','PUT','DELETE'].each(function(method){methods[method]=function(data){return this.send({data:data,method:method});};});Request.implement(methods);Element.Properties.send={set:function(options){var send=this.get('send').cancel();send.setOptions(options);return this;},get:function(){var send=this.retrieve('send');if(!send){send=new Request({data:this,link:'cancel',method:this.get('method')||'post',url:this.get('action')});this.store('send',send);}
return send;}};Element.implement({send:function(url){var sender=this.get('send');sender.send({data:this,url:url||sender.options.url});return this;}});})();Request.HTML=new Class({Extends:Request,options:{update:false,append:false,evalScripts:true,filter:false,headers:{Accept:'text/html, application/xml, text/xml, */*'}},success:function(text){var options=this.options,response=this.response;response.html=text.stripScripts(function(script){response.javascript=script;});var match=response.html.match(/<body[^>]*>([\s\S]*?)<\/body>/i);if(match)response.html=match[1];var temp=new Element('div').set('html',response.html);response.tree=temp.childNodes;response.elements=temp.getElements('*');if(options.filter)response.tree=response.elements.filter(options.filter);if(options.update)document.id(options.update).empty().set('html',response.html);else if(options.append)document.id(options.append).adopt(temp.getChildren());if(options.evalScripts)Browser.exec(response.javascript);this.onSuccess(response.tree,response.elements,response.html,response.javascript);}});Element.Properties.load={set:function(options){var load=this.get('load').cancel();load.setOptions(options);return this;},get:function(){var load=this.retrieve('load');if(!load){load=new Request.HTML({data:this,link:'cancel',update:this,method:'get'});this.store('load',load);}
return load;}};Element.implement({load:function(){this.get('load').send(Array.link(arguments,{data:Type.isObject,url:Type.isString}));return this;}});if(!this.JSON)this.JSON={};JSON=new Hash({stringify:JSON.stringify,parse:JSON.parse});Object.append(JSON,{$specialChars:{'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'},$replaceChars:function(chr){return JSON.$specialChars[chr]||'\\u00'+Math.floor(chr.charCodeAt()/16).toString(16)+(chr.charCodeAt()%16).toString(16);},encode:function(obj){switch(typeOf(obj)){case'string':return'"'+obj.replace(/[\x00-\x1f\\"]/g,JSON.$replaceChars)+'"';case'array':return'['+String(obj.map(JSON.encode).clean())+']';case'object':case'hash':var string=[];Object.each(obj,function(value,key){var json=JSON.encode(value);if(json)string.push(JSON.encode(key)+':'+json);});return'{'+string+'}';case'number':case'boolean':return String(obj);case'null':return'null';}
return null;},decode:function(string,secure){if(typeOf(string)!='string'||!string.length)return null;if(secure&&!(/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(string.replace(/\\./g,'@').replace(/"[^"\\\n\r]*"/g,'')))return null;return eval('('+string+')');}});Request.JSON=new Class({Extends:Request,options:{secure:true},initialize:function(options){this.parent(options);Object.append(this.headers,{'Accept':'application/json','X-Request':'JSON'});},success:function(text){var secure=this.options.secure;var json=this.response.json=Function.attempt(function(){return JSON.decode(text,secure);});if(json==null)this.onFailure();else this.onSuccess(json,text);}});var Cookie=new Class({Implements:Options,options:{path:'/',domain:false,duration:false,secure:false,document:document,encode:true},initialize:function(key,options){this.key=key;this.setOptions(options);},write:function(value){if(this.options.encode)value=encodeURIComponent(value);if(this.options.domain)value+='; domain='+this.options.domain;if(this.options.path)value+='; path='+this.options.path;if(this.options.duration){var date=new Date();date.setTime(date.getTime()+this.options.duration*24*60*60*1000);value+='; expires='+date.toGMTString();}
if(this.options.secure)value+='; secure';this.options.document.cookie=this.key+'='+value;return this;},read:function(){var value=this.options.document.cookie.match('(?:^|;)\\s*'+this.key.escapeRegExp()+'=([^;]*)');return(value)?decodeURIComponent(value[1]):null;},dispose:function(){new Cookie(this.key,Object.merge({},this.options,{duration:-1})).write('');return this;}});Cookie.write=function(key,value,options){return new Cookie(key,options).write(value);};Cookie.read=function(key){return new Cookie(key).read();};Cookie.dispose=function(key,options){return new Cookie(key,options).dispose();};(function(window,document){var ready,loaded,checks=[],shouldPoll,timer,isFramed=true;try{isFramed=window.frameElement!=null;}catch(e){}
var domready=function(){clearTimeout(timer);if(ready)return;Browser.loaded=ready=true;document.removeListener('DOMContentLoaded',domready).removeListener('readystatechange',check);document.fireEvent('domready');window.fireEvent('domready');};var check=function(){for(var i=checks.length;i--;)if(checks[i]()){domready();return true;}
return false;};var poll=function(){clearTimeout(timer);if(!check())timer=setTimeout(poll,10);};document.addListener('DOMContentLoaded',domready);var testElement=document.createElement('div');if(testElement.doScroll&&!isFramed){checks.push(function(){try{testElement.doScroll();return true;}catch(e){}
return false;});shouldPoll=true;}
if(document.readyState)checks.push(function(){var state=document.readyState;return(state=='loaded'||state=='complete');});if('onreadystatechange'in document)document.addListener('readystatechange',check);else shouldPoll=true;if(shouldPoll)poll();Element.Events.domready={onAdd:function(fn){if(ready)fn.call(this);}};Element.Events.load={base:'load',onAdd:function(fn){if(loaded&&this==window)fn.call(this);},condition:function(){if(this==window){domready();delete Element.Events.load;}
return true;}};window.addEvent('load',function(){loaded=true;});})(window,document);(function(){var id=0;var Swiff=this.Swiff=new Class({Implements:Options,options:{id:null,height:1,width:1,container:null,properties:{},params:{quality:'high',allowScriptAccess:'always',wMode:'window',swLiveConnect:true},callBacks:{},vars:{}},toElement:function(){return this.object;},initialize:function(path,options){this.instance='Swiff_'+id++;this.setOptions(options);options=this.options;var id=this.id=options.id||this.instance;var container=document.id(options.container);Swiff.CallBacks[this.instance]={};var params=options.params,vars=options.vars,callBacks=options.callBacks;var properties=Object.append({height:options.height,width:options.width},options.properties);var self=this;for(var callBack in callBacks){Swiff.CallBacks[this.instance][callBack]=(function(option){return function(){return option.apply(self.object,arguments);};})(callBacks[callBack]);vars[callBack]='Swiff.CallBacks.'+this.instance+'.'+callBack;}
params.flashVars=Object.toQueryString(vars);if(Browser.ie){properties.classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000';params.movie=path;}else{properties.type='application/x-shockwave-flash';}
properties.data=path;var build='<object id="'+id+'"';for(var property in properties)build+=' '+property+'="'+properties[property]+'"';build+='>';for(var param in params){if(params[param])build+='<param name="'+param+'" value="'+params[param]+'" />';}
build+='</object>';this.object=((container)?container.empty():new Element('div')).set('html',build).firstChild;},replaces:function(element){element=document.id(element,true);element.parentNode.replaceChild(this.toElement(),element);return this;},inject:function(element){document.id(element,true).appendChild(this.toElement());return this;},remote:function(){return Swiff.remote.apply(Swiff,[this.toElement()].extend(arguments));}});Swiff.CallBacks={};Swiff.remote=function(obj,fn){var rs=obj.CallFunction('<invoke name="'+fn+'" returntype="javascript">'+__flash__argumentsToXML(arguments,2)+'</invoke>');return eval(rs);};})();MooTools.More={'version':'1.3.0.1','build':'6dce99bed2792dffcbbbb4ddc15a1fb9a41994b5'};Events.Pseudos=function(pseudos,addEvent,removeEvent){var storeKey='monitorEvents:';var storageOf=function(object){return{store:object.store?function(key,value){object.store(storeKey+key,value);}:function(key,value){(object.$monitorEvents||(object.$monitorEvents={}))[key]=value;},retrieve:object.retrieve?function(key,dflt){return object.retrieve(storeKey+key,dflt);}:function(key,dflt){if(!object.$monitorEvents)return dflt;return object.$monitorEvents[key]||dflt;}};};var splitType=function(type){if(type.indexOf(':')==-1)return null;var parsed=Slick.parse(type).expressions[0][0],parsedPseudos=parsed.pseudos;return(pseudos&&pseudos[parsedPseudos[0].key])?{event:parsed.tag,value:parsedPseudos[0].value,pseudo:parsedPseudos[0].key,original:type}:null;};return{addEvent:function(type,fn,internal){var split=splitType(type);if(!split)return addEvent.call(this,type,fn,internal);var storage=storageOf(this),events=storage.retrieve(type,[]),pseudoArgs=Array.from(pseudos[split.pseudo]),proxy=pseudoArgs[1];var self=this;var monitor=function(){pseudoArgs[0].call(self,split,fn,arguments,proxy);};events.include({event:fn,monitor:monitor});storage.store(type,events);var eventType=split.event;if(proxy&&proxy[eventType])eventType=proxy[eventType].base;addEvent.call(this,type,fn,internal);return addEvent.call(this,eventType,monitor,internal);},removeEvent:function(type,fn){var split=splitType(type);if(!split)return removeEvent.call(this,type,fn);var storage=storageOf(this),events=storage.retrieve(type),pseudoArgs=Array.from(pseudos[split.pseudo]),proxy=pseudoArgs[1];if(!events)return this;var eventType=split.event;if(proxy&&proxy[eventType])eventType=proxy[eventType].base;removeEvent.call(this,type,fn);events.each(function(monitor,i){if(!fn||monitor.event==fn)removeEvent.call(this,eventType,monitor.monitor);delete events[i];},this);storage.store(type,events);return this;}};};(function(){var pseudos={once:function(split,fn,args){fn.apply(this,args);this.removeEvent(split.original,fn);}};Events.definePseudo=function(key,fn){pseudos[key]=fn;};var proto=Events.prototype;Events.implement(Events.Pseudos(pseudos,proto.addEvent,proto.removeEvent));})();Class.refactor=function(original,refactors){Object.each(refactors,function(item,name){var origin=original.prototype[name];if(origin&&origin.$origin)origin=origin.$origin;if(origin&&typeof item=='function'){original.implement(name,function(){var old=this.previous;this.previous=origin;var value=item.apply(this,arguments);this.previous=old;return value;});}else{original.implement(name,item);}});return original;};Class.Mutators.Binds=function(binds){return binds;};Class.Mutators.initialize=function(initialize){return function(){Array.from(this.Binds).each(function(name){var original=this[name];if(original)this[name]=original.bind(this);},this);return initialize.apply(this,arguments);};};Class.Occlude=new Class({occlude:function(property,element){element=document.id(element||this.element);var instance=element.retrieve(property||this.property);if(instance&&this.occluded!=null)
return this.occluded=instance;this.occluded=false;element.store(property||this.property,this);return this.occluded;}});(function(){var wait={wait:function(duration){return this.chain(function(){this.callChain.delay(duration==null?500:duration,this);}.bind(this));}};Chain.implement(wait);if(this.Fx){Fx.implement(wait);['Css','Tween','Elements'].each(function(cls){if(Fx[cls])Fx[cls].implement(wait);});}
if(this.Element&&this.Fx){Element.implement({chains:function(effects){Array.from(effects||['tween','morph','reveal']).each(function(effect){effect=this.get(effect);if(!effect)return;effect.setOptions({link:'chain'});},this);return this;},pauseFx:function(duration,effect){this.chains(effect).get(effect||'tween').wait(duration);return this;}});}})();Array.implement({min:function(){return Math.min.apply(null,this);},max:function(){return Math.max.apply(null,this);},average:function(){return this.length?this.sum()/this.length:0;},sum:function(){var result=0,l=this.length;if(l){while(l--)result+=this[l];}
return result;},unique:function(){return[].combine(this);},shuffle:function(){for(var i=this.length;i&&--i;){var temp=this[i],r=Math.floor(Math.random()*(i+1));this[i]=this[r];this[r]=temp;}
return this;},reduce:function(fn,value){var undefined;for(var i=0,l=this.length;i<l;i++){if(i in this)value=value===undefined?this[i]:fn.call(null,value,this[i],i,this);}
return value;},reduceRight:function(fn,value){var i=this.length,undefined;while(i--){if(i in this)value=value===undefined?this[i]:fn.call(null,value,this[i],i,this);}
return value;}});(function(){var defined=function(value){return value!=null;};Object.extend({getFromPath:function(source,key){var parts=key.split('.');for(var i=0,l=parts.length;i<l;i++){if(source.hasOwnProperty(parts[i]))source=source[parts[i]];else return null;}
return source;},cleanValues:function(object,method){method=method||defined;for(key in object)if(!method(object[key])){delete object[key];}
return object;},erase:function(object,key){if(object.hasOwnProperty(key))delete object[key];return object;},run:function(object){var args=Array.slice(arguments,1);for(key in object)if(object[key].apply){object[key].apply(object,args);}
return object;}});})();(function(){var current=null,locales={},inherits={};var getSet=function(set){if(instanceOf(set,Locale.Set))return set;else return locales[set];};var Locale=this.Locale={define:function(locale,set,key,value){var name;if(instanceOf(locale,Locale.Set)){name=locale.name;if(name)locales[name]=locale;}else{name=locale;if(!locales[name])locales[name]=new Locale.Set(name);locale=locales[name];}
if(set)locale.define(set,key,value);if(!current)current=locale;return locale;},use:function(locale){locale=getSet(locale);if(locale){current=locale;this.fireEvent('change',locale);}
return this;},getCurrent:function(){return current;},get:function(key,args){return(current)?current.get(key,args):'';},inherit:function(locale,inherits,set){locale=getSet(locale);if(locale)locale.inherit(inherits,set);return this;},list:function(){return Object.keys(locales);}};Object.append(Locale,new Events);Locale.Set=new Class({sets:{},inherits:{locales:[],sets:{}},initialize:function(name){this.name=name||'';},define:function(set,key,value){var defineData=this.sets[set];if(!defineData)defineData={};if(key){if(typeOf(key)=='object')defineData=Object.merge(defineData,key);else defineData[key]=value;}
this.sets[set]=defineData;return this;},get:function(key,args,_base){var value=Object.getFromPath(this.sets,key);if(value!=null){var type=typeOf(value);if(type=='function')value=value.apply(null,Array.from(args));else if(type=='object')value=Object.clone(value);return value;}
var index=key.indexOf('.'),set=index<0?key:key.substr(0,index),names=(this.inherits.sets[set]||[]).combine(this.inherits.locales).include('en-US');if(!_base)_base=[];for(var i=0,l=names.length;i<l;i++){if(_base.contains(names[i]))continue;_base.include(names[i]);var locale=locales[names[i]];if(!locale)continue;value=locale.get(key,args,_base);if(value!=null)return value;}
return'';},inherit:function(names,set){names=Array.from(names);if(set&&!this.inherits.sets[set])this.inherits.sets[set]=[];var l=names.length;while(l--)(set?this.inherits.sets[set]:this.inherits.locales).unshift(names[l]);return this;}});})();Locale.define('en-US','Date',{months:['January','February','March','April','May','June','July','August','September','October','November','December'],months_abbr:['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'],days:['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],days_abbr:['Sun','Mon','Tue','Wed','Thu','Fri','Sat'],dateOrder:['month','date','year'],shortDate:'%m/%d/%Y',shortTime:'%I:%M%p',AM:'AM',PM:'PM',ordinal:function(dayOfMonth){return(dayOfMonth>3&&dayOfMonth<21)?'th':['th','st','nd','rd','th'][Math.min(dayOfMonth%10,4)];},lessThanMinuteAgo:'less than a minute ago',minuteAgo:'about a minute ago',minutesAgo:'{delta} minutes ago',hourAgo:'about an hour ago',hoursAgo:'about {delta} hours ago',dayAgo:'1 day ago',daysAgo:'{delta} days ago',weekAgo:'1 week ago',weeksAgo:'{delta} weeks ago',monthAgo:'1 month ago',monthsAgo:'{delta} months ago',yearAgo:'1 year ago',yearsAgo:'{delta} years ago',lessThanMinuteUntil:'less than a minute from now',minuteUntil:'about a minute from now',minutesUntil:'{delta} minutes from now',hourUntil:'about an hour from now',hoursUntil:'about {delta} hours from now',dayUntil:'1 day from now',daysUntil:'{delta} days from now',weekUntil:'1 week from now',weeksUntil:'{delta} weeks from now',monthUntil:'1 month from now',monthsUntil:'{delta} months from now',yearUntil:'1 year from now',yearsUntil:'{delta} years from now'});(function(){var Date=this.Date;Date.Methods={ms:'Milliseconds',year:'FullYear',min:'Minutes',mo:'Month',sec:'Seconds',hr:'Hours'};['Date','Day','FullYear','Hours','Milliseconds','Minutes','Month','Seconds','Time','TimezoneOffset','Week','Timezone','GMTOffset','DayOfYear','LastMonth','LastDayOfMonth','UTCDate','UTCDay','UTCFullYear','AMPM','Ordinal','UTCHours','UTCMilliseconds','UTCMinutes','UTCMonth','UTCSeconds','UTCMilliseconds'].each(function(method){Date.Methods[method.toLowerCase()]=method;});var pad=function(what,length,string){if(!string)string='0';return new Array(length-String(what).length+1).join(string)+what;};Date.implement({set:function(prop,value){prop=prop.toLowerCase();var m=Date.Methods;if(m[prop])this['set'+m[prop]](value);return this;}.overloadSetter(),get:function(prop){prop=prop.toLowerCase();var m=Date.Methods;if(m[prop])return this['get'+m[prop]]();return null;},clone:function(){return new Date(this.get('time'));},increment:function(interval,times){interval=interval||'day';times=times!=null?times:1;switch(interval){case'year':return this.increment('month',times*12);case'month':var d=this.get('date');this.set('date',1).set('mo',this.get('mo')+times);return this.set('date',d.min(this.get('lastdayofmonth')));case'week':return this.increment('day',times*7);case'day':return this.set('date',this.get('date')+times);}
if(!Date.units[interval])throw new Error(interval+' is not a supported interval');return this.set('time',this.get('time')+times*Date.units[interval]());},decrement:function(interval,times){return this.increment(interval,-1*(times!=null?times:1));},isLeapYear:function(){return Date.isLeapYear(this.get('year'));},clearTime:function(){return this.set({hr:0,min:0,sec:0,ms:0});},diff:function(date,resolution){if(typeOf(date)=='string')date=Date.parse(date);return((date-this)/Date.units[resolution||'day'](3,3)).round();},getLastDayOfMonth:function(){return Date.daysInMonth(this.get('mo'),this.get('year'));},getDayOfYear:function(){return(Date.UTC(this.get('year'),this.get('mo'),this.get('date')+1)
-Date.UTC(this.get('year'),0,1))/Date.units.day();},getWeek:function(){return(this.get('dayofyear')/7).ceil();},getOrdinal:function(day){return Date.getMsg('ordinal',day||this.get('date'));},getTimezone:function(){return this.toString().replace(/^.*? ([A-Z]{3}).[0-9]{4}.*$/,'$1').replace(/^.*?\(([A-Z])[a-z]+ ([A-Z])[a-z]+ ([A-Z])[a-z]+\)$/,'$1$2$3');},getGMTOffset:function(){var off=this.get('timezoneOffset');return((off>0)?'-':'+')+pad((off.abs()/60).floor(),2)+pad(off%60,2);},setAMPM:function(ampm){ampm=ampm.toUpperCase();var hr=this.get('hr');if(hr>11&&ampm=='AM')return this.decrement('hour',12);else if(hr<12&&ampm=='PM')return this.increment('hour',12);return this;},getAMPM:function(){return(this.get('hr')<12)?'AM':'PM';},parse:function(str){this.set('time',Date.parse(str));return this;},isValid:function(date){return!isNaN((date||this).valueOf());},format:function(f){if(!this.isValid())return'invalid date';f=f||'%x %X';f=formats[f.toLowerCase()]||f;var d=this;return f.replace(/%([a-z%])/gi,function($0,$1){switch($1){case'a':return Date.getMsg('days_abbr')[d.get('day')];case'A':return Date.getMsg('days')[d.get('day')];case'b':return Date.getMsg('months_abbr')[d.get('month')];case'B':return Date.getMsg('months')[d.get('month')];case'c':return d.format('%a %b %d %H:%m:%S %Y');case'd':return pad(d.get('date'),2);case'e':return pad(d.get('date'),2,' ');case'H':return pad(d.get('hr'),2);case'I':return pad((d.get('hr')%12)||12,2);case'j':return pad(d.get('dayofyear'),3);case'k':return pad(d.get('hr'),2,' ');case'l':return pad((d.get('hr')%12)||12,2,' ');case'L':return pad(d.get('ms'),3);case'm':return pad((d.get('mo')+1),2);case'M':return pad(d.get('min'),2);case'o':return d.get('ordinal');case'p':return Date.getMsg(d.get('ampm'));case's':return Math.round(d/1000);case'S':return pad(d.get('seconds'),2);case'U':return pad(d.get('week'),2);case'w':return d.get('day');case'x':return d.format(Date.getMsg('shortDate'));case'X':return d.format(Date.getMsg('shortTime'));case'y':return d.get('year').toString().substr(2);case'Y':return d.get('year');case'z':return d.get('GMTOffset');case'Z':return d.get('Timezone');}
return $1;});},toISOString:function(){return this.format('iso8601');}});Date.alias('toJSON','toISOString');Date.alias('compare','diff');Date.alias('strftime','format');var formats={db:'%Y-%m-%d %H:%M:%S',compact:'%Y%m%dT%H%M%S',iso8601:'%Y-%m-%dT%H:%M:%S%T',rfc822:'%a, %d %b %Y %H:%M:%S %Z','short':'%d %b %H:%M','long':'%B %d, %Y %H:%M'};var parsePatterns=[];var nativeParse=Date.parse;var parseWord=function(type,word,num){var ret=-1;var translated=Date.getMsg(type+'s');switch(typeOf(word)){case'object':ret=translated[word.get(type)];break;case'number':ret=translated[word];if(!ret)throw new Error('Invalid '+type+' index: '+word);break;case'string':var match=translated.filter(function(name){return this.test(name);},new RegExp('^'+word,'i'));if(!match.length)throw new Error('Invalid '+type+' string');if(match.length>1)throw new Error('Ambiguous '+type);ret=match[0];}
return(num)?translated.indexOf(ret):ret;};Date.extend({getMsg:function(key,args){return Locale.get('Date.'+key,args);},units:{ms:Function.from(1),second:Function.from(1000),minute:Function.from(60000),hour:Function.from(3600000),day:Function.from(86400000),week:Function.from(608400000),month:function(month,year){var d=new Date;return Date.daysInMonth(month!=null?month:d.get('mo'),year!=null?year:d.get('year'))*86400000;},year:function(year){year=year||new Date().get('year');return Date.isLeapYear(year)?31622400000:31536000000;}},daysInMonth:function(month,year){return[31,Date.isLeapYear(year)?29:28,31,30,31,30,31,31,30,31,30,31][month];},isLeapYear:function(year){return((year%4===0)&&(year%100!==0))||(year%400===0);},parse:function(from){var t=typeOf(from);if(t=='number')return new Date(from);if(t!='string')return from;from=from.clean();if(!from.length)return null;var parsed;parsePatterns.some(function(pattern){var bits=pattern.re.exec(from);return(bits)?(parsed=pattern.handler(bits)):false;});return parsed||new Date(nativeParse(from));},parseDay:function(day,num){return parseWord('day',day,num);},parseMonth:function(month,num){return parseWord('month',month,num);},parseUTC:function(value){var localDate=new Date(value);var utcSeconds=Date.UTC(localDate.get('year'),localDate.get('mo'),localDate.get('date'),localDate.get('hr'),localDate.get('min'),localDate.get('sec'),localDate.get('ms'));return new Date(utcSeconds);},orderIndex:function(unit){return Date.getMsg('dateOrder').indexOf(unit)+1;},defineFormat:function(name,format){formats[name]=format;},defineFormats:function(formats){for(var name in formats)Date.defineFormat(name,formats[name]);},defineParser:function(pattern){parsePatterns.push((pattern.re&&pattern.handler)?pattern:build(pattern));},defineParsers:function(){Array.flatten(arguments).each(Date.defineParser);},define2DigitYearStart:function(year){startYear=year%100;startCentury=year-startYear;}});var startCentury=1900;var startYear=70;var regexOf=function(type){return new RegExp('(?:'+Date.getMsg(type).map(function(name){return name.substr(0,3);}).join('|')+')[a-z]*');};var replacers=function(key){switch(key){case'x':return((Date.orderIndex('month')==1)?'%m[-./]%d':'%d[-./]%m')+'([-./]%y)?';case'X':return'%H([.:]%M)?([.:]%S([.:]%s)?)? ?%p? ?%T?';}
return null;};var keys={d:/[0-2]?[0-9]|3[01]/,H:/[01]?[0-9]|2[0-3]/,I:/0?[1-9]|1[0-2]/,M:/[0-5]?\d/,s:/\d+/,o:/[a-z]*/,p:/[ap]\.?m\.?/,y:/\d{2}|\d{4}/,Y:/\d{4}/,T:/Z|[+-]\d{2}(?::?\d{2})?/};keys.m=keys.I;keys.S=keys.M;var currentLanguage;var recompile=function(language){currentLanguage=language;keys.a=keys.A=regexOf('days');keys.b=keys.B=regexOf('months');parsePatterns.each(function(pattern,i){if(pattern.format)parsePatterns[i]=build(pattern.format);});};var build=function(format){if(!currentLanguage)return{format:format};var parsed=[];var re=(format.source||format).replace(/%([a-z])/gi,function($0,$1){return replacers($1)||$0;}).replace(/\((?!\?)/g,'(?:').replace(/ (?!\?|\*)/g,',? ').replace(/%([a-z%])/gi,function($0,$1){var p=keys[$1];if(!p)return $1;parsed.push($1);return'('+p.source+')';}).replace(/\[a-z\]/gi,'[a-z\\u00c0-\\uffff;\&]');return{format:format,re:new RegExp('^'+re+'$','i'),handler:function(bits){bits=bits.slice(1).associate(parsed);var date=new Date().clearTime(),year=bits.y||bits.Y;if(year!=null)handle.call(date,'y',year);if('d'in bits)handle.call(date,'d',1);if('m'in bits||'b'in bits||'B'in bits)handle.call(date,'m',1);for(var key in bits)handle.call(date,key,bits[key]);return date;}};};var handle=function(key,value){if(!value)return this;switch(key){case'a':case'A':return this.set('day',Date.parseDay(value,true));case'b':case'B':return this.set('mo',Date.parseMonth(value,true));case'd':return this.set('date',value);case'H':case'I':return this.set('hr',value);case'm':return this.set('mo',value-1);case'M':return this.set('min',value);case'p':return this.set('ampm',value.replace(/\./g,''));case'S':return this.set('sec',value);case's':return this.set('ms',('0.'+value)*1000);case'w':return this.set('day',value);case'Y':return this.set('year',value);case'y':value=+value;if(value<100)value+=startCentury+(value<startYear?100:0);return this.set('year',value);case'T':if(value=='Z')value='+00';var offset=value.match(/([+-])(\d{2}):?(\d{2})?/);offset=(offset[1]+'1')*(offset[2]*60+(+offset[3]||0))+this.getTimezoneOffset();return this.set('time',this-offset*60000);}
return this;};Date.defineParsers('%Y([-./]%m([-./]%d((T| )%X)?)?)?','%Y%m%d(T%H(%M%S?)?)?','%x( %X)?','%d%o( %b( %Y)?)?( %X)?','%b( %d%o)?( %Y)?( %X)?','%Y %b( %d%o( %X)?)?','%o %b %d %X %T %Y');Locale.addEvent('change',function(language){if(Locale.get('Date'))recompile(language);}).fireEvent('change',Locale.getCurrent());})();Date.implement({timeDiffInWords:function(relative_to){return Date.distanceOfTimeInWords(this,relative_to||new Date);},timeDiff:function(to,joiner){if(to==null)to=new Date;var delta=((to-this)/1000).toInt();if(!delta)return'0s';var durations={s:60,m:60,h:24,d:365,y:0};var duration,vals=[];for(var step in durations){if(!delta)break;if((duration=durations[step])){vals.unshift((delta%duration)+step);delta=(delta/duration).toInt();}else{vals.unshift(delta+step);}}
return vals.join(joiner||':');}});Date.alias('timeAgoInWords','timeDiffInWords');Date.extend({distanceOfTimeInWords:function(from,to){return Date.getTimePhrase(((to-from)/1000).toInt());},getTimePhrase:function(delta){var suffix=(delta<0)?'Until':'Ago';if(delta<0)delta*=-1;var units={minute:60,hour:60,day:24,week:7,month:52/12,year:12,eon:Infinity};var msg='lessThanMinute';for(var unit in units){var interval=units[unit];if(delta<1.5*interval){if(delta>0.75*interval)msg=unit;break;}
delta/=interval;msg=unit+'s';}
delta=delta.round();return Date.getMsg(msg+suffix,delta).substitute({delta:delta});}});Date.defineParsers({re:/^(?:tod|tom|yes)/i,handler:function(bits){var d=new Date().clearTime();switch(bits[0]){case'tom':return d.increment();case'yes':return d.decrement();default:return d;}}},{re:/^(next|last) ([a-z]+)$/i,handler:function(bits){var d=new Date().clearTime();var day=d.getDay();var newDay=Date.parseDay(bits[2],true);var addDays=newDay-day;if(newDay<=day)addDays+=7;if(bits[1]=='last')addDays-=7;return d.set('date',d.getDate()+addDays);}});Locale.define('en-US','Number',{decimal:'.',group:',',currency:{prefix:'$ '}});Number.implement({format:function(options){var value=this;if(!options)options={};var getOption=function(key){if(options[key]!=null)return options[key];return Locale.get('Number.'+key);};var negative=value<0,decimal=getOption('decimal'),precision=getOption('precision'),group=getOption('group'),decimals=getOption('decimals');if(negative){var negativeLocale=Locale.get('Number.negative')||{};if(negativeLocale.prefix==null&&negativeLocale.suffix==null)negativeLocale.prefix='-';Object.each(negativeLocale,function(value,key){options[key]=(key=='prefix'||key=='suffix')?(getOption(key)+value):value;});value=-value;}
var prefix=getOption('prefix'),suffix=getOption('suffix');if(decimals>0&&decimals<=20)value=value.toFixed(decimals);if(precision>=1&&precision<=21)value=value.toPrecision(precision);value+='';if(getOption('scientific')===false&&value.indexOf('e')>-1){var match=value.split('e'),index,zeros=+match[1];value=match[0].replace('.','');if(zeros<0){zeros=-zeros-1;index=match[0].indexOf('.');if(index>-1)zeros-=index-1;while(zeros--)value='0'+value;value='0.'+value;}else{index=match[0].lastIndexOf('.');if(index>-1)zeros-=match[0].length-index-1;while(zeros--)value+='0';}}
if(decimal!='.')value=value.replace('.',decimal);if(group){index=value.lastIndexOf(decimal);index=(index>-1)?index:value.length;var newOutput=value.substring(index),i=index;while(i--){if((index-i-1)%3==0&&i!=(index-1))newOutput=group+newOutput;newOutput=value.charAt(i)+newOutput;}
value=newOutput;}
if(prefix)value=prefix+value;if(suffix)value+=suffix;return value;},formatCurrency:function(){var locale=Locale.get('Number.currency')||{};if(locale.scientific==null)locale.scientific=false;if(locale.decimals==null)locale.decimals=2;return this.format(locale);},formatPercentage:function(){var locale=Locale.get('Number.percentage')||{};if(locale.suffix==null)locale.suffix='%';if(locale.decimals==null)locale.decimals=2;return this.format(locale);}});(function(){var special={'a':/[àáâãäåăą]/g,'A':/[ÀÁÂÃÄÅĂĄ]/g,'c':/[ćčç]/g,'C':/[ĆČÇ]/g,'d':/[ďđ]/g,'D':/[ĎÐ]/g,'e':/[èéêëěę]/g,'E':/[ÈÉÊËĚĘ]/g,'g':/[ğ]/g,'G':/[Ğ]/g,'i':/[ìíîï]/g,'I':/[ÌÍÎÏ]/g,'l':/[ĺľł]/g,'L':/[ĹĽŁ]/g,'n':/[ñňń]/g,'N':/[ÑŇŃ]/g,'o':/[òóôõöøő]/g,'O':/[ÒÓÔÕÖØ]/g,'r':/[řŕ]/g,'R':/[ŘŔ]/g,'s':/[ššş]/g,'S':/[ŠŞŚ]/g,'t':/[ťţ]/g,'T':/[ŤŢ]/g,'ue':/[ü]/g,'UE':/[Ü]/g,'u':/[ùúûůµ]/g,'U':/[ÙÚÛŮ]/g,'y':/[ÿý]/g,'Y':/[ŸÝ]/g,'z':/[žźż]/g,'Z':/[ŽŹŻ]/g,'th':/[þ]/g,'TH':/[Þ]/g,'dh':/[ð]/g,'DH':/[Ð]/g,'ss':/[ß]/g,'oe':/[œ]/g,'OE':/[Œ]/g,'ae':/[æ]/g,'AE':/[Æ]/g},tidy={' ':/[\xa0\u2002\u2003\u2009]/g,'*':/[\xb7]/g,'\'':/[\u2018\u2019]/g,'"':/[\u201c\u201d]/g,'...':/[\u2026]/g,'-':/[\u2013]/g,'&raquo;':/[\uFFFD]/g};var walk=function(string,replacements){var result=string;for(key in replacements)result=result.replace(replacements[key],key);return result;};var getRegexForTag=function(tag,contents){tag=tag||'';var regstr=contents?"<"+tag+"(?!\\w)[^>]*>([\\s\\S]*?)<\/"+tag+"(?!\\w)>":"<\/?"+tag+"([^>]+)?>";reg=new RegExp(regstr,"gi");return reg;};String.implement({standardize:function(){return walk(this,special);},repeat:function(times){return new Array(times+1).join(this);},pad:function(length,str,direction){if(this.length>=length)return this;var pad=(str==null?' ':''+str).repeat(length-this.length).substr(0,length-this.length);if(!direction||direction=='right')return this+pad;if(direction=='left')return pad+this;return pad.substr(0,(pad.length/2).floor())+this+pad.substr(0,(pad.length/2).ceil());},getTags:function(tag,contents){return this.match(getRegexForTag(tag,contents))||[];},stripTags:function(tag,contents){return this.replace(getRegexForTag(tag,contents),'');},tidy:function(){return walk(this,tidy);}});})();String.implement({parseQueryString:function(decodeKeys,decodeValues){if(decodeKeys==null)decodeKeys=true;if(decodeValues==null)decodeValues=true;var vars=this.split(/[&;]/),object={};if(!vars.length)return object;vars.each(function(val){var index=val.indexOf('='),value=val.substr(index+1),keys=index<0?['']:val.substr(0,index).match(/([^\]\[]+|(\B)(?=\]))/g),obj=object;if(decodeValues)value=decodeURIComponent(value);keys.each(function(key,i){if(decodeKeys)key=decodeURIComponent(key);var current=obj[key];if(i<keys.length-1)obj=obj[key]=current||{};else if(typeOf(current)=='array')current.push(value);else obj[key]=current!=null?[current,value]:value;});});return object;},cleanQueryString:function(method){return this.split('&').filter(function(val){var index=val.indexOf('='),key=index<0?'':val.substr(0,index),value=val.substr(index+1);return method?method.call(null,key,value):(value||value===0);}).join('&');}});(function(){var toString=function(){return this.get('value');};var URI=this.URI=new Class({Implements:Options,options:{},regex:/^(?:(\w+):)?(?:\/\/(?:(?:([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)?(\.\.?$|(?:[^?#\/]*\/)*)([^?#]*)(?:\?([^#]*))?(?:#(.*))?/,parts:['scheme','user','password','host','port','directory','file','query','fragment'],schemes:{http:80,https:443,ftp:21,rtsp:554,mms:1755,file:0},initialize:function(uri,options){this.setOptions(options);var base=this.options.base||URI.base;if(!uri)uri=base;if(uri&&uri.parsed)this.parsed=Object.clone(uri.parsed);else this.set('value',uri.href||uri.toString(),base?new URI(base):false);},parse:function(value,base){var bits=value.match(this.regex);if(!bits)return false;bits.shift();return this.merge(bits.associate(this.parts),base);},merge:function(bits,base){if((!bits||!bits.scheme)&&(!base||!base.scheme))return false;if(base){this.parts.every(function(part){if(bits[part])return false;bits[part]=base[part]||'';return true;});}
bits.port=bits.port||this.schemes[bits.scheme.toLowerCase()];bits.directory=bits.directory?this.parseDirectory(bits.directory,base?base.directory:''):'/';return bits;},parseDirectory:function(directory,baseDirectory){directory=(directory.substr(0,1)=='/'?'':(baseDirectory||'/'))+directory;if(!directory.test(URI.regs.directoryDot))return directory;var result=[];directory.replace(URI.regs.endSlash,'').split('/').each(function(dir){if(dir=='..'&&result.length>0)result.pop();else if(dir!='.')result.push(dir);});return result.join('/')+'/';},combine:function(bits){return bits.value||bits.scheme+'://'+
(bits.user?bits.user+(bits.password?':'+bits.password:'')+'@':'')+
(bits.host||'')+(bits.port&&bits.port!=this.schemes[bits.scheme]?':'+bits.port:'')+
(bits.directory||'/')+(bits.file||'')+
(bits.query?'?'+bits.query:'')+
(bits.fragment?'#'+bits.fragment:'');},set:function(part,value,base){if(part=='value'){var scheme=value.match(URI.regs.scheme);if(scheme)scheme=scheme[1];if(scheme&&this.schemes[scheme.toLowerCase()]==null)this.parsed={scheme:scheme,value:value};else this.parsed=this.parse(value,(base||this).parsed)||(scheme?{scheme:scheme,value:value}:{value:value});}else if(part=='data'){this.setData(value);}else{this.parsed[part]=value;}
return this;},get:function(part,base){switch(part){case'value':return this.combine(this.parsed,base?base.parsed:false);case'data':return this.getData();}
return this.parsed[part]||'';},go:function(){document.location.href=this.toString();},toURI:function(){return this;},getData:function(key,part){var qs=this.get(part||'query');if(!(qs||qs===0))return key?null:{};var obj=qs.parseQueryString();return key?obj[key]:obj;},setData:function(values,merge,part){if(typeof values=='string'){var data=this.getData();data[arguments[0]]=arguments[1];values=data;}else if(merge){values=Object.merge(this.getData(),values);}
return this.set(part||'query',Object.toQueryString(values));},clearData:function(part){return this.set(part||'query','');},toString:toString,valueOf:toString});URI.regs={endSlash:/\/$/,scheme:/^(\w+):/,directoryDot:/\.\/|\.$/};URI.base=new URI(Array.from(document.getElements('base[href]',true)).getLast(),{base:document.location});String.implement({toURI:function(options){return new URI(this,options);}});})();URI=Class.refactor(URI,{combine:function(bits,base){if(!base||bits.scheme!=base.scheme||bits.host!=base.host||bits.port!=base.port)
return this.previous.apply(this,arguments);var end=bits.file+(bits.query?'?'+bits.query:'')+(bits.fragment?'#'+bits.fragment:'');if(!base.directory)return(bits.directory||(bits.file?'':'./'))+end;var baseDir=base.directory.split('/'),relDir=bits.directory.split('/'),path='',offset;var i=0;for(offset=0;offset<baseDir.length&&offset<relDir.length&&baseDir[offset]==relDir[offset];offset++);for(i=0;i<baseDir.length-offset-1;i++)path+='../';for(i=offset;i<relDir.length-1;i++)path+=relDir[i]+'/';return(path||(bits.file?'':'./'))+end;},toAbsolute:function(base){base=new URI(base);if(base)base.set('directory','').set('file','');return this.toRelative(base);},toRelative:function(base){return this.get('value',new URI(base));}});(function(){if(this.Hash)return;var Hash=this.Hash=new Type('Hash',function(object){if(typeOf(object)=='hash')object=Object.clone(object.getClean());for(var key in object)this[key]=object[key];return this;});this.$H=function(object){return new Hash(object);};Hash.implement({forEach:function(fn,bind){Object.forEach(this,fn,bind);},getClean:function(){var clean={};for(var key in this){if(this.hasOwnProperty(key))clean[key]=this[key];}
return clean;},getLength:function(){var length=0;for(var key in this){if(this.hasOwnProperty(key))length++;}
return length;}});Hash.alias('each','forEach');Hash.implement({has:Object.prototype.hasOwnProperty,keyOf:function(value){return Object.keyOf(this,value);},hasValue:function(value){return Object.contains(this,value);},extend:function(properties){Hash.each(properties||{},function(value,key){Hash.set(this,key,value);},this);return this;},combine:function(properties){Hash.each(properties||{},function(value,key){Hash.include(this,key,value);},this);return this;},erase:function(key){if(this.hasOwnProperty(key))delete this[key];return this;},get:function(key){return(this.hasOwnProperty(key))?this[key]:null;},set:function(key,value){if(!this[key]||this.hasOwnProperty(key))this[key]=value;return this;},empty:function(){Hash.each(this,function(value,key){delete this[key];},this);return this;},include:function(key,value){if(this[key]==undefined)this[key]=value;return this;},map:function(fn,bind){return new Hash(Object.map(this,fn,bind));},filter:function(fn,bind){return new Hash(Object.filter(this,fn,bind));},every:function(fn,bind){return Object.every(this,fn,bind);},some:function(fn,bind){return Object.some(this,fn,bind);},getKeys:function(){return Object.keys(this);},getValues:function(){return Object.values(this);},toQueryString:function(base){return Object.toQueryString(this,base);}});Hash.alias({indexOf:'keyOf',contains:'hasValue'});})();Hash.implement({getFromPath:function(notation){return Object.getFromPath(this,notation);},cleanValues:function(method){return new Hash(Object.cleanValues(this,method));},run:function(){Object.run(arguments);}});Element.implement({tidy:function(){this.set('value',this.get('value').tidy());},getTextInRange:function(start,end){return this.get('value').substring(start,end);},getSelectedText:function(){if(this.setSelectionRange)return this.getTextInRange(this.getSelectionStart(),this.getSelectionEnd());return document.selection.createRange().text;},getSelectedRange:function(){if(this.selectionStart!=null){return{start:this.selectionStart,end:this.selectionEnd};}
var pos={start:0,end:0};var range=this.getDocument().selection.createRange();if(!range||range.parentElement()!=this)return pos;var duplicate=range.duplicate();if(this.type=='text'){pos.start=0-duplicate.moveStart('character',-100000);pos.end=pos.start+range.text.length;}else{var value=this.get('value');var offset=value.length;duplicate.moveToElementText(this);duplicate.setEndPoint('StartToEnd',range);if(duplicate.text.length)offset-=value.match(/[\n\r]*$/)[0].length;pos.end=offset-duplicate.text.length;duplicate.setEndPoint('StartToStart',range);pos.start=offset-duplicate.text.length;}
return pos;},getSelectionStart:function(){return this.getSelectedRange().start;},getSelectionEnd:function(){return this.getSelectedRange().end;},setCaretPosition:function(pos){if(pos=='end')pos=this.get('value').length;this.selectRange(pos,pos);return this;},getCaretPosition:function(){return this.getSelectedRange().start;},selectRange:function(start,end){if(this.setSelectionRange){this.focus();this.setSelectionRange(start,end);}else{var value=this.get('value');var diff=value.substr(start,end-start).replace(/\r/g,'').length;start=value.substr(0,start).replace(/\r/g,'').length;var range=this.createTextRange();range.collapse(true);range.moveEnd('character',start+diff);range.moveStart('character',start);range.select();}
return this;},insertAtCursor:function(value,select){var pos=this.getSelectedRange();var text=this.get('value');this.set('value',text.substring(0,pos.start)+value+text.substring(pos.end,text.length));if(select!==false)this.selectRange(pos.start,pos.start+value.length);else this.setCaretPosition(pos.start+value.length);return this;},insertAroundCursor:function(options,select){options=Object.append({before:'',defaultMiddle:'',after:''},options);var value=this.getSelectedText()||options.defaultMiddle;var pos=this.getSelectedRange();var text=this.get('value');if(pos.start==pos.end){this.set('value',text.substring(0,pos.start)+options.before+value+options.after+text.substring(pos.end,text.length));this.selectRange(pos.start+options.before.length,pos.end+options.before.length+value.length);}else{var current=text.substring(pos.start,pos.end);this.set('value',text.substring(0,pos.start)+options.before+current+options.after+text.substring(pos.end,text.length));var selStart=pos.start+options.before.length;if(select!==false)this.selectRange(selStart,selStart+current.length);else this.setCaretPosition(selStart+text.length);}
return this;}});Elements.from=function(text,excludeScripts){if(excludeScripts||excludeScripts==null)text=text.stripScripts();var container,match=text.match(/^\s*<(t[dhr]|tbody|tfoot|thead)/i);if(match){container=new Element('table');var tag=match[1].toLowerCase();if(['td','th','tr'].contains(tag)){container=new Element('tbody').inject(container);if(tag!='tr')container=new Element('tr').inject(container);}}
return(container||new Element('div')).set('html',text).getChildren();};(function(){var pseudos={once:function(split,fn,args){fn.apply(this,args);this.removeEvent(split.original,fn);}};Event.definePseudo=function(key,fn,proxy){pseudos[key]=[fn,proxy];};var proto=Element.prototype;[Element,Window,Document].invoke('implement',Events.Pseudos(pseudos,proto.addEvent,proto.removeEvent));})();(function(){var keysStoreKey='$moo:keys-pressed',keysKeyupStoreKey='$moo:keys-keyup';Event.definePseudo('keys',function(split,fn,args){var event=args[0],keys=[],pressed=this.retrieve(keysStoreKey,[]);keys.append(split.value.replace('++',function(){keys.push('+');return'';}).split('+'));pressed.include(event.key);if(keys.every(function(key){return pressed.contains(key);}))fn.apply(this,args);this.store(keysStoreKey,pressed);if(!this.retrieve(keysKeyupStoreKey)){var keyup=function(event){(function(){pressed=this.retrieve(keysStoreKey,[]).erase(event.key);this.store(keysStoreKey,pressed);}).delay(0,this);};this.store(keysKeyupStoreKey,keyup).addEvent('keyup',keyup);}});Object.append(Event.Keys,{'shift':16,'control':17,'alt':18,'capslock':20,'pageup':33,'pagedown':34,'end':35,'home':36,'numlock':144,'scrolllock':145,';':186,'=':187,',':188,'-':Browser.firefox?109:189,'.':190,'/':191,'`':192,'[':219,'\\':220,']':221,"'":222,'+':107});})();Event.definePseudo('relay',function(split,fn,args,proxy){var event=args[0];var check=proxy?proxy.condition:null;for(var target=event.target;target&&target!=this;target=target.parentNode){var finalTarget=document.id(target);if(Slick.match(target,split.value)&&(!check||check.call(finalTarget,event))){if(finalTarget)fn.call(finalTarget,event,finalTarget);return;}}},{mouseenter:{base:'mouseover',condition:Element.Events.mouseenter.condition},mouseleave:{base:'mouseout',condition:Element.Events.mouseleave.condition}});(function(){var getStylesList=function(styles,planes){var list=[];Object.each(planes,function(directions){Object.each(directions,function(edge){styles.each(function(style){list.push(style+'-'+edge+(style=='border'?'-width':''));});});});return list;};var calculateEdgeSize=function(edge,styles){var total=0;Object.each(styles,function(value,style){if(style.test(edge))total=total+value.toInt();});return total;};Element.implement({measure:function(fn){var visibility=function(el){return!!(!el||el.offsetHeight||el.offsetWidth);};if(visibility(this))return fn.apply(this);var parent=this.getParent(),restorers=[],toMeasure=[];while(!visibility(parent)&&parent!=document.body){toMeasure.push(parent.expose());parent=parent.getParent();}
var restore=this.expose();var result=fn.apply(this);restore();toMeasure.each(function(restore){restore();});return result;},expose:function(){if(this.getStyle('display')!='none')return function(){};var before=this.style.cssText;this.setStyles({display:'block',position:'absolute',visibility:'hidden'});return function(){this.style.cssText=before;}.bind(this);},getDimensions:function(options){options=Object.merge({computeSize:false},options);var dim={x:0,y:0};var getSize=function(el,options){return(options.computeSize)?el.getComputedSize(options):el.getSize();};var parent=this.getParent('body');if(parent&&this.getStyle('display')=='none'){dim=this.measure(function(){return getSize(this,options);});}else if(parent){try{dim=getSize(this,options);}catch(e){}}
return Object.append(dim,(dim.x||dim.x===0)?{width:dim.x,height:dim.y}:{x:dim.width,y:dim.height});},getComputedSize:function(options){options=Object.merge({styles:['padding','border'],planes:{height:['top','bottom'],width:['left','right']},mode:'both'},options);var styles={},size={width:0,height:0};if(options.mode=='vertical'){delete size.width;delete options.planes.width;}else if(options.mode=='horizontal'){delete size.height;delete options.planes.height;}
getStylesList(options.styles,options.planes).each(function(style){styles[style]=this.getStyle(style).toInt();},this);Object.each(options.planes,function(edges,plane){var capitalized=plane.capitalize();styles[plane]=this.getStyle(plane).toInt();size['total'+capitalized]=styles[plane];edges.each(function(edge){var edgesize=calculateEdgeSize(edge,styles);size['computed'+edge.capitalize()]=edgesize;size['total'+capitalized]+=edgesize;});},this);return Object.append(size,styles);}});})();(function(){var supportsPositionFixed=false,supportTested=false;var testPositionFixed=function(){var test=new Element('div').setStyles({position:'fixed',top:0,right:0}).inject(document.body);supportsPositionFixed=(test.offsetTop===0);test.dispose();supportTested=true;}
Element.implement({pin:function(enable,forceScroll){if(!supportTested)testPositionFixed();if(this.getStyle('display')=='none')return this;var pinnedPosition,scroll=window.getScroll();if(enable!==false){pinnedPosition=this.getPosition(supportsPositionFixed?document.body:this.getOffsetParent());if(!this.retrieve('pin:_pinned')){var currentPosition={top:pinnedPosition.y-scroll.y,left:pinnedPosition.x-scroll.x};if(supportsPositionFixed&&!forceScroll){this.setStyle('position','fixed').setStyles(currentPosition);}else{var parent=this.getOffsetParent(),position=this.getPosition(parent),styles=this.getStyles('left','top');if(parent&&styles.left=='auto'||styles.top=='auto')this.setPosition(position);if(this.getStyle('position')=='static')this.setStyle('position','absolute');position={x:styles.left.toInt()-scroll.x,y:styles.top.toInt()-scroll.y};var scrollFixer=function(){if(!this.retrieve('pin:_pinned'))return;var scroll=window.getScroll();this.setStyles({left:position.x+scroll.x,top:position.y+scroll.y});}.bind(this);this.store('pin:_scrollFixer',scrollFixer);window.addEvent('scroll',scrollFixer);}
this.store('pin:_pinned',true);}}else{if(!this.retrieve('pin:_pinned'))return this;var parent=this.getParent(),offsetParent=(parent.getComputedStyle('position')!='static'?parent:parent.getOffsetParent());pinnedPosition=this.getPosition(offsetParent);this.store('pin:_pinned',false);var scrollFixer=this.retrieve('pin:_scrollFixer');if(!scrollFixer){this.setStyles({position:'absolute',top:pinnedPosition.y+scroll.y,left:pinnedPosition.x+scroll.x});}else{this.store('pin:_scrollFixer',null);window.removeEvent('scroll',scrollFixer);}
this.removeClass('isPinned');}
return this;},unpin:function(){return this.pin(false);},togglepin:function(){return this.pin(!this.retrieve('pin:_pinned'));}});})();(function(){var original=Element.prototype.position;Element.implement({position:function(options){if(options&&(options.x!=null||options.y!=null)){return original?original.apply(this,arguments):this;}
Object.each(options||{},function(v,k){if(v==null)delete options[k];});options=Object.merge({relativeTo:document.body,position:{x:'center',y:'center'},offset:{x:0,y:0}},options);var parentOffset={x:0,y:0},parentPositioned=false;var offsetParent=this.measure(function(){return document.id(this.getOffsetParent());});if(offsetParent&&offsetParent!=this.getDocument().body){parentOffset=offsetParent.measure(function(){return this.getPosition();});parentPositioned=offsetParent!=document.id(options.relativeTo);options.offset.x=options.offset.x-parentOffset.x;options.offset.y=options.offset.y-parentOffset.y;}
var fixValue=function(option){if(typeOf(option)!='string')return option;option=option.toLowerCase();var val={};if(option.test('left')){val.x='left';}else if(option.test('right')){val.x='right';}else{val.x='center';}
if(option.test('upper')||option.test('top')){val.y='top';}else if(option.test('bottom')){val.y='bottom';}else{val.y='center';}
return val;};options.edge=fixValue(options.edge);options.position=fixValue(options.position);if(!options.edge){if(options.position.x=='center'&&options.position.y=='center')options.edge={x:'center',y:'center'};else options.edge={x:'left',y:'top'};}
this.setStyle('position','absolute');var rel=document.id(options.relativeTo)||document.body,calc=rel==document.body?window.getScroll():rel.getPosition(),top=calc.y,left=calc.x;var dim=this.getDimensions({computeSize:true,styles:['padding','border','margin']});var pos={},prefY=options.offset.y,prefX=options.offset.x,winSize=window.getSize();switch(options.position.x){case'left':pos.x=left+prefX;break;case'right':pos.x=left+prefX+rel.offsetWidth;break;default:pos.x=left+((rel==document.body?winSize.x:rel.offsetWidth)/2)+prefX;break;}
switch(options.position.y){case'top':pos.y=top+prefY;break;case'bottom':pos.y=top+prefY+rel.offsetHeight;break;default:pos.y=top+((rel==document.body?winSize.y:rel.offsetHeight)/2)+prefY;break;}
if(options.edge){var edgeOffset={};switch(options.edge.x){case'left':edgeOffset.x=0;break;case'right':edgeOffset.x=-dim.x-dim.computedRight-dim.computedLeft;break;default:edgeOffset.x=-(dim.totalWidth/2);break;}
switch(options.edge.y){case'top':edgeOffset.y=0;break;case'bottom':edgeOffset.y=-dim.y-dim.computedTop-dim.computedBottom;break;default:edgeOffset.y=-(dim.totalHeight/2);break;}
pos.x+=edgeOffset.x;pos.y+=edgeOffset.y;}
pos={left:((pos.x>=0||parentPositioned||options.allowNegative)?pos.x:0).toInt(),top:((pos.y>=0||parentPositioned||options.allowNegative)?pos.y:0).toInt()};var xy={left:'x',top:'y'};['minimum','maximum'].each(function(minmax){['left','top'].each(function(lr){var val=options[minmax]?options[minmax][xy[lr]]:null;if(val!=null&&((minmax=='minimum')?pos[lr]<val:pos[lr]>val))pos[lr]=val;});});if(rel.getStyle('position')=='fixed'||options.relFixedPosition){var winScroll=window.getScroll();pos.top+=winScroll.y;pos.left+=winScroll.x;}
if(options.ignoreScroll){var relScroll=rel.getScroll();pos.top-=relScroll.y;pos.left-=relScroll.x;}
if(options.ignoreMargins){pos.left+=(options.edge.x=='right'?dim['margin-right']:options.edge.x=='center'?-dim['margin-left']+((dim['margin-right']+dim['margin-left'])/2):-dim['margin-left']);pos.top+=(options.edge.y=='bottom'?dim['margin-bottom']:options.edge.y=='center'?-dim['margin-top']+((dim['margin-bottom']+dim['margin-top'])/2):-dim['margin-top']);}
pos.left=Math.ceil(pos.left);pos.top=Math.ceil(pos.top);if(options.returnPos)return pos;else this.setStyles(pos);return this;}});})();Element.implement({isDisplayed:function(){return this.getStyle('display')!='none';},isVisible:function(){var w=this.offsetWidth,h=this.offsetHeight;return(w==0&&h==0)?false:(w>0&&h>0)?true:this.style.display!='none';},toggle:function(){return this[this.isDisplayed()?'hide':'show']();},hide:function(){var d;try{d=this.getStyle('display');}catch(e){}
if(d=='none')return this;return this.store('element:_originalDisplay',d||'').setStyle('display','none');},show:function(display){if(!display&&this.isDisplayed())return this;display=display||this.retrieve('element:_originalDisplay')||'block';return this.setStyle('display',(display=='none')?'block':display);},swapClass:function(remove,add){return this.removeClass(remove).addClass(add);}});Document.implement({clearSelection:function(){if(document.selection&&document.selection.empty){document.selection.empty();}else if(window.getSelection){var selection=window.getSelection();if(selection&&selection.removeAllRanges)selection.removeAllRanges();}}});var IframeShim=new Class({Implements:[Options,Events,Class.Occlude],options:{className:'iframeShim',src:'javascript:false;document.write("");',display:false,zIndex:null,margin:0,offset:{x:0,y:0},browsers:((Browser.ie&&Browser.version==6)||(Browser.firefox&&Browser.version<3&&Browser.Platform.mac))},property:'IframeShim',initialize:function(element,options){this.element=document.id(element);if(this.occlude())return this.occluded;this.setOptions(options);this.makeShim();return this;},makeShim:function(){if(this.options.browsers){var zIndex=this.element.getStyle('zIndex').toInt();if(!zIndex){zIndex=1;var pos=this.element.getStyle('position');if(pos=='static'||!pos)this.element.setStyle('position','relative');this.element.setStyle('zIndex',zIndex);}
zIndex=((this.options.zIndex!=null||this.options.zIndex===0)&&zIndex>this.options.zIndex)?this.options.zIndex:zIndex-1;if(zIndex<0)zIndex=1;this.shim=new Element('iframe',{src:this.options.src,scrolling:'no',frameborder:0,styles:{zIndex:zIndex,position:'absolute',border:'none',filter:'progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)'},'class':this.options.className}).store('IframeShim',this);var inject=(function(){this.shim.inject(this.element,'after');this[this.options.display?'show':'hide']();this.fireEvent('inject');}).bind(this);if(!IframeShim.ready)window.addEvent('load',inject);else inject();}else{this.position=this.hide=this.show=this.dispose=Function.from(this);}},position:function(){if(!IframeShim.ready||!this.shim)return this;var size=this.element.measure(function(){return this.getSize();});if(this.options.margin!=undefined){size.x=size.x-(this.options.margin*2);size.y=size.y-(this.options.margin*2);this.options.offset.x+=this.options.margin;this.options.offset.y+=this.options.margin;}
this.shim.set({width:size.x,height:size.y}).position({relativeTo:this.element,offset:this.options.offset});return this;},hide:function(){if(this.shim)this.shim.setStyle('display','none');return this;},show:function(){if(this.shim)this.shim.setStyle('display','block');return this.position();},dispose:function(){if(this.shim)this.shim.dispose();return this;},destroy:function(){if(this.shim)this.shim.destroy();return this;}});window.addEvent('load',function(){IframeShim.ready=true;});var Mask=new Class({Implements:[Options,Events],Binds:['position'],options:{style:{},'class':'mask',maskMargins:false,useIframeShim:true,iframeShimOptions:{}},initialize:function(target,options){this.target=document.id(target)||document.id(document.body);this.target.store('mask',this);this.setOptions(options);this.render();this.inject();},render:function(){this.element=new Element('div',{'class':this.options['class'],id:this.options.id||'mask-'+String.uniqueID(),styles:Object.merge(this.options.style,{display:'none'}),events:{click:function(){this.fireEvent('click');if(this.options.hideOnClick)this.hide();}.bind(this)}});this.hidden=true;},toElement:function(){return this.element;},inject:function(target,where){where=where||(this.options.inject?this.options.inject.where:'')||this.target==document.body?'inside':'after';target=target||(this.options.inject?this.options.inject.target:'')||this.target;this.element.inject(target,where);if(this.options.useIframeShim){this.shim=new IframeShim(this.element,this.options.iframeShimOptions);this.addEvents({show:this.shim.show.bind(this.shim),hide:this.shim.hide.bind(this.shim),destroy:this.shim.destroy.bind(this.shim)});}},position:function(){this.resize(this.options.width,this.options.height);this.element.position({relativeTo:this.target,position:'topLeft',ignoreMargins:!this.options.maskMargins,ignoreScroll:this.target==document.body});return this;},resize:function(x,y){var opt={styles:['padding','border']};if(this.options.maskMargins)opt.styles.push('margin');var dim=this.target.getComputedSize(opt);if(this.target==document.body){var win=window.getScrollSize();if(dim.totalHeight<win.y)dim.totalHeight=win.y;if(dim.totalWidth<win.x)dim.totalWidth=win.x;}
this.element.setStyles({width:Array.pick([x,dim.totalWidth,dim.x]),height:Array.pick([y,dim.totalHeight,dim.y])});return this;},show:function(){if(!this.hidden)return this;window.addEvent('resize',this.position);this.position();this.showMask.apply(this,arguments);return this;},showMask:function(){this.element.setStyle('display','block');this.hidden=false;this.fireEvent('show');},hide:function(){if(this.hidden)return this;window.removeEvent('resize',this.position);this.hideMask.apply(this,arguments);if(this.options.destroyOnHide)return this.destroy();return this;},hideMask:function(){this.element.setStyle('display','none');this.hidden=true;this.fireEvent('hide');},toggle:function(){this[this.hidden?'show':'hide']();},destroy:function(){this.hide();this.element.destroy();this.fireEvent('destroy');this.target.eliminate('mask');}});Element.Properties.mask={set:function(options){var mask=this.retrieve('mask');if(mask)mask.destroy();return this.eliminate('mask').store('mask:options',options);},get:function(){var mask=this.retrieve('mask');if(!mask){mask=new Mask(this,this.retrieve('mask:options'));this.store('mask',mask);}
return mask;}};Element.implement({mask:function(options){if(options)this.set('mask',options);this.get('mask').show();return this;},unmask:function(){this.get('mask').hide();return this;}});var Spinner=new Class({Extends:Mask,Implements:Chain,options:{'class':'spinner',containerPosition:{},content:{'class':'spinner-content'},messageContainer:{'class':'spinner-msg'},img:{'class':'spinner-img'},fxOptions:{link:'chain'}},initialize:function(target,options){this.target=document.id(target)||document.id(document.body);this.target.store('spinner',this);this.setOptions(options);this.render();this.inject();var deactivate=function(){this.active=false;}.bind(this);this.addEvents({hide:deactivate,show:deactivate});},render:function(){this.parent();this.element.set('id',this.options.id||'spinner-'+String.uniqueID());this.content=document.id(this.options.content)||new Element('div',this.options.content);this.content.inject(this.element);if(this.options.message){this.msg=document.id(this.options.message)||new Element('p',this.options.messageContainer).appendText(this.options.message);this.msg.inject(this.content);}
if(this.options.img){this.img=document.id(this.options.img)||new Element('div',this.options.img);this.img.inject(this.content);}
this.element.set('tween',this.options.fxOptions);},show:function(noFx){if(this.active)return this.chain(this.show.bind(this));if(!this.hidden){this.callChain.delay(20,this);return this;}
this.active=true;return this.parent(noFx);},showMask:function(noFx){var pos=function(){this.content.position(Object.merge({relativeTo:this.element},this.options.containerPosition));}.bind(this);if(noFx){this.parent();pos();}else{if(!this.options.style.opacity)this.options.style.opacity=this.element.getStyle('opacity').toFloat();this.element.setStyles({display:'block',opacity:0}).tween('opacity',this.options.style.opacity);pos();this.hidden=false;this.fireEvent('show');this.callChain();}},hide:function(noFx){if(this.active)return this.chain(this.hide.bind(this));if(this.hidden){this.callChain.delay(20,this);return this;}
this.active=true;return this.parent(noFx);},hideMask:function(noFx){if(noFx)return this.parent();this.element.tween('opacity',0).get('tween').chain(function(){this.element.setStyle('display','none');this.hidden=true;this.fireEvent('hide');this.callChain();}.bind(this));},destroy:function(){this.content.destroy();this.parent();this.target.eliminate('spinner');}});Request=Class.refactor(Request,{options:{useSpinner:false,spinnerOptions:{},spinnerTarget:false},initialize:function(options){this._send=this.send;this.send=function(options){var spinner=this.getSpinner();if(spinner)spinner.chain(this._send.pass(options,this)).show();else this._send(options);return this;};this.previous(options);},getSpinner:function(){if(!this.spinner){var update=document.id(this.options.spinnerTarget)||document.id(this.options.update);if(this.options.useSpinner&&update){update.set('spinner',this.options.spinnerOptions);var spinner=this.spinner=update.get('spinner');['complete','exception','cancel'].each(function(event){this.addEvent(event,spinner.hide.bind(spinner));},this);}}
return this.spinner;}});Element.Properties.spinner={set:function(options){var spinner=this.retrieve('spinner');if(spinner)spinner.destroy();return this.eliminate('spinner').store('spinner:options',options);},get:function(){var spinner=this.retrieve('spinner');if(!spinner){spinner=new Spinner(this,this.retrieve('spinner:options'));this.store('spinner',spinner);}
return spinner;}};Element.implement({spin:function(options){if(options)this.set('spinner',options);this.get('spinner').show();return this;},unspin:function(){this.get('spinner').hide();return this;}});if(!window.Form)window.Form={};(function(){Form.Request=new Class({Binds:['onSubmit','onFormValidate'],Implements:[Options,Events,Class.Occlude],options:{requestOptions:{evalScripts:true,useSpinner:true,emulation:false,link:'ignore'},sendButtonClicked:true,extraData:{},resetForm:true},property:'form.request',initialize:function(form,update,options){this.element=document.id(form);if(this.occlude())return this.occluded;this.update=document.id(update);this.setOptions(options);this.makeRequest();if(this.options.resetForm){this.request.addEvent('success',function(){Function.attempt(function(){this.element.reset();}.bind(this));if(window.OverText)OverText.update();}.bind(this));}
this.attach();},toElement:function(){return this.element;},makeRequest:function(){this.request=new Request.HTML(Object.merge({update:this.update,emulation:false,spinnerTarget:this.element,method:this.element.get('method')||'post'},this.options.requestOptions)).addEvents({success:function(tree,elements,html,javascript){['complete','success'].each(function(evt){this.fireEvent(evt,[this.update,tree,elements,html,javascript]);},this);}.bind(this),failure:function(){this.fireEvent('complete',arguments).fireEvent('failure',arguments);}.bind(this),exception:function(){this.fireEvent('failure',arguments);}.bind(this)});},attach:function(attach){attach=attach!=null?attach:true;method=attach?'addEvent':'removeEvent';this.element[method]('click:relay(button, input[type=submit])',this.saveClickedButton.bind(this));var fv=this.element.retrieve('validator');if(fv)fv[method]('onFormValidate',this.onFormValidate);else this.element[method]('submit',this.onSubmit);},detach:function(){this.attach(false);return this;},enable:function(){this.attach();return this;},disable:function(){this.detach();return this;},onFormValidate:function(valid,form,e){if(!e)return;var fv=this.element.retrieve('validator');if(valid||(fv&&!fv.options.stopOnFailure)){if(e&&e.stop)e.stop();this.send();}},onSubmit:function(e){var fv=this.element.retrieve('validator');if(fv){this.element.removeEvent('submit',this.onSubmit);fv.addEvent('onFormValidate',this.onFormValidate);this.element.validate();return;}
if(e)e.stop();this.send();},saveClickedButton:function(event,target){if(!this.options.sendButtonClicked)return;if(!target.get('name'))return;this.options.extraData[target.get('name')]=target.get('value')||true;this.clickedCleaner=function(){delete this.options.extraData[target.get('name')];this.clickedCleaner=function(){};}.bind(this);},clickedCleaner:function(){},send:function(){var str=this.element.toQueryString().trim();var data=Object.toQueryString(this.options.extraData);if(str)str+="&"+data;else str=data;this.fireEvent('send',[this.element,str.parseQueryString()]);this.request.send({data:str,url:this.element.get("action")});this.clickedCleaner();return this;}});Element.Properties.formRequest={set:function(){var opt=Array.link(arguments,{options:Type.isObject,update:Type.isElement,updateId:Type.isString});var update=opt.update||opt.updateId;var updater=this.retrieve('form.request');if(update){if(updater)updater.update=document.id(update);this.store('form.request:update',update);}
if(opt.options){if(updater)updater.setOptions(opt.options);this.store('form.request:options',opt.options);}
return this;},get:function(){var opt=Array.link(arguments,{options:Type.isObject,update:Type.isElement,updateId:Type.isString});var update=opt.update||opt.updateId;if(opt.options||update||!this.retrieve('form.request')){if(opt.options||!this.retrieve('form.request:options'))this.set('form.request',opt.options);if(update)this.set('form.request',update);this.store('form.request',new Form.Request(this,this.retrieve('form.request:update'),this.retrieve('form.request:options')));}
return this.retrieve('form.request');}};Element.implement({formUpdate:function(update,options){this.get('formRequest',update,options).send();return this;}});})();Fx.Reveal=new Class({Extends:Fx.Morph,options:{link:'cancel',styles:['padding','border','margin'],transitionOpacity:!Browser.ie6,mode:'vertical',display:function(){return this.element.get('tag')!='tr'?'block':'table-row';},opacity:1,hideInputs:Browser.ie?'select, input, textarea, object, embed':null},dissolve:function(){if(!this.hiding&&!this.showing){if(this.element.getStyle('display')!='none'){this.hiding=true;this.showing=false;this.hidden=true;this.cssText=this.element.style.cssText;var startStyles=this.element.getComputedSize({styles:this.options.styles,mode:this.options.mode});if(this.options.transitionOpacity)startStyles.opacity=this.options.opacity;var zero={};Object.each(startStyles,function(style,name){zero[name]=[style,0];});this.element.setStyles({display:Function.from(this.options.display).call(this),overflow:'hidden'});var hideThese=this.options.hideInputs?this.element.getElements(this.options.hideInputs):null;if(hideThese)hideThese.setStyle('visibility','hidden');this.$chain.unshift(function(){if(this.hidden){this.hiding=false;this.element.style.cssText=this.cssText;this.element.setStyle('display','none');if(hideThese)hideThese.setStyle('visibility','visible');}
this.fireEvent('hide',this.element);this.callChain();}.bind(this));this.start(zero);}else{this.callChain.delay(10,this);this.fireEvent('complete',this.element);this.fireEvent('hide',this.element);}}else if(this.options.link=='chain'){this.chain(this.dissolve.bind(this));}else if(this.options.link=='cancel'&&!this.hiding){this.cancel();this.dissolve();}
return this;},reveal:function(){if(!this.showing&&!this.hiding){if(this.element.getStyle('display')=='none'){this.hiding=false;this.showing=true;this.hidden=false;this.cssText=this.element.style.cssText;var startStyles;this.element.measure(function(){startStyles=this.element.getComputedSize({styles:this.options.styles,mode:this.options.mode});}.bind(this));if(this.options.heightOverride!=null)startStyles.height=this.options.heightOverride.toInt();if(this.options.widthOverride!=null)startStyles.width=this.options.widthOverride.toInt();if(this.options.transitionOpacity){this.element.setStyle('opacity',0);startStyles.opacity=this.options.opacity;}
var zero={height:0,display:Function.from(this.options.display).call(this)};Object.each(startStyles,function(style,name){zero[name]=0;});zero.overflow='hidden';this.element.setStyles(zero);var hideThese=this.options.hideInputs?this.element.getElements(this.options.hideInputs):null;if(hideThese)hideThese.setStyle('visibility','hidden');this.$chain.unshift(function(){this.element.style.cssText=this.cssText;this.element.setStyle('display',Function.from(this.options.display).call(this));if(!this.hidden)this.showing=false;if(hideThese)hideThese.setStyle('visibility','visible');this.callChain();this.fireEvent('show',this.element);}.bind(this));this.start(startStyles);}else{this.callChain();this.fireEvent('complete',this.element);this.fireEvent('show',this.element);}}else if(this.options.link=='chain'){this.chain(this.reveal.bind(this));}else if(this.options.link=='cancel'&&!this.showing){this.cancel();this.reveal();}
return this;},toggle:function(){if(this.element.getStyle('display')=='none'){this.reveal();}else{this.dissolve();}
return this;},cancel:function(){this.parent.apply(this,arguments);this.element.style.cssText=this.cssText;this.hiding=false;this.showing=false;return this;}});Element.Properties.reveal={set:function(options){this.get('reveal').cancel().setOptions(options);return this;},get:function(){var reveal=this.retrieve('reveal');if(!reveal){reveal=new Fx.Reveal(this);this.store('reveal',reveal);}
return reveal;}};Element.Properties.dissolve=Element.Properties.reveal;Element.implement({reveal:function(options){this.get('reveal').setOptions(options).reveal();return this;},dissolve:function(options){this.get('reveal').setOptions(options).dissolve();return this;},nix:function(options){var params=Array.link(arguments,{destroy:Type.isBoolean,options:Type.isObject});this.get('reveal').setOptions(options).dissolve().chain(function(){this[params.destroy?'destroy':'dispose']();}.bind(this));return this;},wink:function(){var params=Array.link(arguments,{duration:Type.isNumber,options:Type.isObject});var reveal=this.get('reveal').setOptions(params.options);reveal.reveal().chain(function(){(function(){reveal.dissolve();}).delay(params.duration||2000);});}});Form.Request.Append=new Class({Extends:Form.Request,options:{useReveal:true,revealOptions:{},inject:'bottom'},makeRequest:function(){this.request=new Request.HTML(Object.merge({url:this.element.get('action'),method:this.element.get('method')||'post',spinnerTarget:this.element},this.options.requestOptions,{evalScripts:false})).addEvents({success:function(tree,elements,html,javascript){var container;var kids=Elements.from(html);if(kids.length==1){container=kids[0];}else{container=new Element('div',{styles:{display:'none'}}).adopt(kids);}
container.inject(this.update,this.options.inject);if(this.options.requestOptions.evalScripts)Browser.exec(javascript);this.fireEvent('beforeEffect',container);var finish=function(){this.fireEvent('success',[container,this.update,tree,elements,html,javascript]);}.bind(this);if(this.options.useReveal){container.set('reveal',this.options.revealOptions).get('reveal').chain(finish);container.reveal();}else{finish();}}.bind(this),failure:function(xhr){this.fireEvent('failure',xhr);}.bind(this)});}});Locale.define('en-US','FormValidator',{required:'This field is required.',minLength:'Please enter at least {minLength} characters (you entered {length} characters).',maxLength:'Please enter no more than {maxLength} characters (you entered {length} characters).',integer:'Please enter an integer in this field. Numbers with decimals (e.g. 1.25) are not permitted.',numeric:'Please enter only numeric values in this field (i.e. "1" or "1.1" or "-1" or "-1.1").',digits:'Please use numbers and punctuation only in this field (for example, a phone number with dashes or dots is permitted).',alpha:'Please use only letters (a-z) within this field. No spaces or other characters are allowed.',alphanum:'Please use only letters (a-z) or numbers (0-9) in this field. No spaces or other characters are allowed.',dateSuchAs:'Please enter a valid date such as {date}',dateInFormatMDY:'Please enter a valid date such as MM/DD/YYYY (i.e. "12/31/1999")',email:'Please enter a valid email address. For example "fred@domain.com".',url:'Please enter a valid URL such as http://www.google.com.',currencyDollar:'Please enter a valid $ amount. For example $100.00 .',oneRequired:'Please enter something for at least one of these inputs.',errorPrefix:'Error: ',warningPrefix:'Warning: ',noSpace:'There can be no spaces in this input.',reqChkByNode:'No items are selected.',requiredChk:'This field is required.',reqChkByName:'Please select a {label}.',match:'This field needs to match the {matchName} field',startDate:'the start date',endDate:'the end date',currendDate:'the current date',afterDate:'The date should be the same or after {label}.',beforeDate:'The date should be the same or before {label}.',startMonth:'Please select a start month',sameMonth:'These two dates must be in the same month - you must change one or the other.',creditcard:'The credit card number entered is invalid. Please check the number and try again. {length} digits entered.'});if(!window.Form)window.Form={};var InputValidator=new Class({Implements:[Options],options:{errorMsg:'Validation failed.',test:function(field){return true;}},initialize:function(className,options){this.setOptions(options);this.className=className;},test:function(field,props){if(document.id(field))return this.options.test(document.id(field),props||this.getProps(field));else return false;},getError:function(field,props){var err=this.options.errorMsg;if(typeOf(err)=='function')err=err(document.id(field),props||this.getProps(field));return err;},getProps:function(field){if(!document.id(field))return{};return field.get('validatorProps');}});Element.Properties.validatorProps={set:function(props){return this.eliminate('$moo:validatorProps').store('$moo:validatorProps',props);},get:function(props){if(props)this.set(props);if(this.retrieve('$moo:validatorProps'))return this.retrieve('$moo:validatorProps');if(this.getProperty('$moo:validatorProps')){try{this.store('$moo:validatorProps',JSON.decode(this.getProperty('$moo:validatorProps')));}catch(e){return{};}}else{var vals=this.get('class').split(' ').filter(function(cls){return cls.test(':');});if(!vals.length){this.store('$moo:validatorProps',{});}else{props={};vals.each(function(cls){var split=cls.split(':');if(split[1]){try{props[split[0]]=JSON.decode(split[1]);}catch(e){}}});this.store('$moo:validatorProps',props);}}
return this.retrieve('$moo:validatorProps');}};Form.Validator=new Class({Implements:[Options,Events],Binds:['onSubmit'],options:{fieldSelectors:'input, select, textarea',ignoreHidden:true,ignoreDisabled:true,useTitles:false,evaluateOnSubmit:true,evaluateFieldsOnBlur:true,evaluateFieldsOnChange:true,serial:true,stopOnFailure:true,warningPrefix:function(){return Form.Validator.getMsg('warningPrefix')||'Warning: ';},errorPrefix:function(){return Form.Validator.getMsg('errorPrefix')||'Error: ';}},initialize:function(form,options){this.setOptions(options);this.element=document.id(form);this.element.store('validator',this);this.warningPrefix=Function.from(this.options.warningPrefix)();this.errorPrefix=Function.from(this.options.errorPrefix)();if(this.options.evaluateOnSubmit)this.element.addEvent('submit',this.onSubmit);if(this.options.evaluateFieldsOnBlur||this.options.evaluateFieldsOnChange)this.watchFields(this.getFields());},toElement:function(){return this.element;},getFields:function(){return(this.fields=this.element.getElements(this.options.fieldSelectors));},watchFields:function(fields){fields.each(function(el){if(this.options.evaluateFieldsOnBlur)
el.addEvent('blur',this.validationMonitor.pass([el,false],this));if(this.options.evaluateFieldsOnChange)
el.addEvent('change',this.validationMonitor.pass([el,true],this));},this);},validationMonitor:function(){clearTimeout(this.timer);this.timer=this.validateField.delay(50,this,arguments);},onSubmit:function(event){if(!this.validate(event)&&event)event.preventDefault();else this.reset();},reset:function(){this.getFields().each(this.resetField,this);return this;},validate:function(event){var result=this.getFields().map(function(field){return this.validateField(field,true);},this).every(function(v){return v;});this.fireEvent('formValidate',[result,this.element,event]);if(this.options.stopOnFailure&&!result&&event)event.preventDefault();return result;},validateField:function(field,force){if(this.paused)return true;field=document.id(field);var passed=!field.hasClass('validation-failed');var failed,warned;if(this.options.serial&&!force){failed=this.element.getElement('.validation-failed');warned=this.element.getElement('.warning');}
if(field&&(!failed||force||field.hasClass('validation-failed')||(failed&&!this.options.serial))){var validators=field.className.split(' ').some(function(cn){return this.getValidator(cn);},this);var validatorsFailed=[];field.className.split(' ').each(function(className){if(className&&!this.test(className,field))validatorsFailed.include(className);},this);passed=validatorsFailed.length===0;if(validators&&!field.hasClass('warnOnly')){if(passed){field.addClass('validation-passed').removeClass('validation-failed');this.fireEvent('elementPass',field);}else{field.addClass('validation-failed').removeClass('validation-passed');this.fireEvent('elementFail',[field,validatorsFailed]);}}
if(!warned){var warnings=field.className.split(' ').some(function(cn){if(cn.test('^warn-')||field.hasClass('warnOnly'))
return this.getValidator(cn.replace(/^warn-/,''));else return null;},this);field.removeClass('warning');var warnResult=field.className.split(' ').map(function(cn){if(cn.test('^warn-')||field.hasClass('warnOnly'))
return this.test(cn.replace(/^warn-/,''),field,true);else return null;},this);}}
return passed;},test:function(className,field,warn){field=document.id(field);if((this.options.ignoreHidden&&!field.isVisible())||(this.options.ignoreDisabled&&field.get('disabled')))return true;var validator=this.getValidator(className);warn=warn!=null?warn:false;if(field.hasClass('warnOnly'))warn=true;var isValid=field.hasClass('ignoreValidation')||(validator?validator.test(field):true);if(validator)this.fireEvent('elementValidate',[isValid,field,className,warn]);if(warn)return true;return isValid;},resetField:function(field){field=document.id(field);if(field){field.className.split(' ').each(function(className){if(className.test('^warn-'))className=className.replace(/^warn-/,'');field.removeClass('validation-failed');field.removeClass('warning');field.removeClass('validation-passed');},this);}
return this;},stop:function(){this.paused=true;return this;},start:function(){this.paused=false;return this;},ignoreField:function(field,warn){field=document.id(field);if(field){this.enforceField(field);if(warn)field.addClass('warnOnly');else field.addClass('ignoreValidation');}
return this;},enforceField:function(field){field=document.id(field);if(field)field.removeClass('warnOnly').removeClass('ignoreValidation');return this;}});Form.Validator.getMsg=function(key){return Locale.get('FormValidator.'+key);};Form.Validator.adders={validators:{},add:function(className,options){this.validators[className]=new InputValidator(className,options);if(!this.initialize){this.implement({validators:this.validators});}},addAllThese:function(validators){Array.from(validators).each(function(validator){this.add(validator[0],validator[1]);},this);},getValidator:function(className){return this.validators[className.split(':')[0]];}};Object.append(Form.Validator,Form.Validator.adders);Form.Validator.implement(Form.Validator.adders);Form.Validator.add('IsEmpty',{errorMsg:false,test:function(element){if(element.type=='select-one'||element.type=='select')
return!(element.selectedIndex>=0&&element.options[element.selectedIndex].value!='');else
return((element.get('value')==null)||(element.get('value').length==0));}});Form.Validator.addAllThese([['required',{errorMsg:function(){return Form.Validator.getMsg('required');},test:function(element){return!Form.Validator.getValidator('IsEmpty').test(element);}}],['minLength',{errorMsg:function(element,props){if(typeOf(props.minLength)!='null')
return Form.Validator.getMsg('minLength').substitute({minLength:props.minLength,length:element.get('value').length});else return'';},test:function(element,props){if(typeOf(props.minLength)!='null')return(element.get('value').length>=(props.minLength||0));else return true;}}],['maxLength',{errorMsg:function(element,props){if(typeOf(props.maxLength)!='null')
return Form.Validator.getMsg('maxLength').substitute({maxLength:props.maxLength,length:element.get('value').length});else return'';},test:function(element,props){return(element.get('value').length<=(props.maxLength||10000));}}],['validate-integer',{errorMsg:Form.Validator.getMsg.pass('integer'),test:function(element){return Form.Validator.getValidator('IsEmpty').test(element)||(/^(-?[1-9]\d*|0)$/).test(element.get('value'));}}],['validate-numeric',{errorMsg:Form.Validator.getMsg.pass('numeric'),test:function(element){return Form.Validator.getValidator('IsEmpty').test(element)||(/^-?(?:0$0(?=\d*\.)|[1-9]|0)\d*(\.\d+)?$/).test(element.get('value'));}}],['validate-digits',{errorMsg:Form.Validator.getMsg.pass('digits'),test:function(element){return Form.Validator.getValidator('IsEmpty').test(element)||(/^[\d() .:\-\+#]+$/.test(element.get('value')));}}],['validate-alpha',{errorMsg:Form.Validator.getMsg.pass('alpha'),test:function(element){return Form.Validator.getValidator('IsEmpty').test(element)||(/^[a-zA-Z]+$/).test(element.get('value'));}}],['validate-alphanum',{errorMsg:Form.Validator.getMsg.pass('alphanum'),test:function(element){return Form.Validator.getValidator('IsEmpty').test(element)||!(/\W/).test(element.get('value'));}}],['validate-date',{errorMsg:function(element,props){if(Date.parse){var format=props.dateFormat||'%x';return Form.Validator.getMsg('dateSuchAs').substitute({date:new Date().format(format)});}else{return Form.Validator.getMsg('dateInFormatMDY');}},test:function(element,props){if(Form.Validator.getValidator('IsEmpty').test(element))return true;var d;if(Date.parse){var format=props.dateFormat||'%x';d=Date.parse(element.get('value'));var formatted=d.format(format);if(formatted!='invalid date')element.set('value',formatted);return!isNaN(d);}else{var regex=/^(\d{2})\/(\d{2})\/(\d{4})$/;if(!regex.test(element.get('value')))return false;d=new Date(element.get('value').replace(regex,'$1/$2/$3'));return(parseInt(RegExp.$1,10)==(1+d.getMonth()))&&(parseInt(RegExp.$2,10)==d.getDate())&&(parseInt(RegExp.$3,10)==d.getFullYear());}}}],['validate-email',{errorMsg:Form.Validator.getMsg.pass('email'),test:function(element){return Form.Validator.getValidator('IsEmpty').test(element)||(/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i).test(element.get('value'));}}],['validate-url',{errorMsg:Form.Validator.getMsg.pass('url'),test:function(element){return Form.Validator.getValidator('IsEmpty').test(element)||(/^(https?|ftp|rmtp|mms):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\/?/i).test(element.get('value'));}}],['validate-currency-dollar',{errorMsg:Form.Validator.getMsg.pass('currencyDollar'),test:function(element){return Form.Validator.getValidator('IsEmpty').test(element)||(/^\$?\-?([1-9]{1}[0-9]{0,2}(\,[0-9]{3})*(\.[0-9]{0,2})?|[1-9]{1}\d*(\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|(\.[0-9]{1,2})?)$/).test(element.get('value'));}}],['validate-one-required',{errorMsg:Form.Validator.getMsg.pass('oneRequired'),test:function(element,props){var p=document.id(props['validate-one-required'])||element.getParent(props['validate-one-required']);return p.getElements('input').some(function(el){if(['checkbox','radio'].contains(el.get('type')))return el.get('checked');return el.get('value');});}}]]);Element.Properties.validator={set:function(options){var validator=this.retrieve('validator');if(validator)validator.setOptions(options);return this.store('$moo:validator:options',options);},get:function(options){if(options||!this.retrieve('validator')){if(options||!this.retrieve('$moo:validator:options'))this.set('validator',options);this.store('validator',new Form.Validator(this,this.retrieve('$moo:validator:options')));}
return this.retrieve('validator');}};Element.implement({validate:function(options){if(options)this.set('validator',options);return this.get('validator',options).validate();}});Form.Validator.Inline=new Class({Extends:Form.Validator,options:{showError:function(errorElement){if(errorElement.reveal)errorElement.reveal();else errorElement.setStyle('display','block');},hideError:function(errorElement){if(errorElement.dissolve)errorElement.dissolve();else errorElement.setStyle('display','none');},scrollToErrorsOnSubmit:true,scrollToErrorsOnBlur:false,scrollToErrorsOnChange:false,scrollFxOptions:{transition:'quad:out',offset:{y:-20}}},initialize:function(form,options){this.parent(form,options);this.addEvent('onElementValidate',function(isValid,field,className,warn){var validator=this.getValidator(className);if(!isValid&&validator.getError(field)){if(warn)field.addClass('warning');var advice=this.makeAdvice(className,field,validator.getError(field),warn);this.insertAdvice(advice,field);this.showAdvice(className,field);}else{this.hideAdvice(className,field);}});},makeAdvice:function(className,field,error,warn){var errorMsg=(warn)?this.warningPrefix:this.errorPrefix;errorMsg+=(this.options.useTitles)?field.title||error:error;var cssClass=(warn)?'warning-advice':'validation-advice';var advice=this.getAdvice(className,field);if(advice){advice=advice.set('html',errorMsg);}else{advice=new Element('div',{html:errorMsg,styles:{display:'none'},id:'advice-'+className.split(':')[0]+'-'+this.getFieldId(field)}).addClass(cssClass);}
field.store('$moo:advice-'+className,advice);return advice;},getFieldId:function(field){return field.id?field.id:field.id='input_'+field.name;},showAdvice:function(className,field){var advice=this.getAdvice(className,field);if(advice&&!field.retrieve('$moo:'+this.getPropName(className))&&(advice.getStyle('display')=='none'||advice.getStyle('visiblity')=='hidden'||advice.getStyle('opacity')==0)){field.store('$moo:'+this.getPropName(className),true);this.options.showError(advice);this.fireEvent('showAdvice',[field,advice,className]);}},hideAdvice:function(className,field){var advice=this.getAdvice(className,field);if(advice&&field.retrieve('$moo:'+this.getPropName(className))){field.store('$moo:'+this.getPropName(className),false);this.options.hideError(advice);this.fireEvent('hideAdvice',[field,advice,className]);}},getPropName:function(className){return'advice'+className;},resetField:function(field){field=document.id(field);if(!field)return this;this.parent(field);field.className.split(' ').each(function(className){this.hideAdvice(className,field);},this);return this;},getAllAdviceMessages:function(field,force){var advice=[];if(field.hasClass('ignoreValidation')&&!force)return advice;var validators=field.className.split(' ').some(function(cn){var warner=cn.test('^warn-')||field.hasClass('warnOnly');if(warner)cn=cn.replace(/^warn-/,'');var validator=this.getValidator(cn);if(!validator)return;advice.push({message:validator.getError(field),warnOnly:warner,passed:validator.test(),validator:validator});},this);return advice;},getAdvice:function(className,field){return field.retrieve('$moo:advice-'+className);},insertAdvice:function(advice,field){var props=field.get('validatorProps');if(!props.msgPos||!document.id(props.msgPos)){if(field.type&&field.type.toLowerCase()=='radio')field.getParent().adopt(advice);else advice.inject(document.id(field),'after');}else{document.id(props.msgPos).grab(advice);}},validateField:function(field,force,scroll){var result=this.parent(field,force);if(((this.options.scrollToErrorsOnSubmit&&scroll==null)||scroll)&&!result){var failed=document.id(this).getElement('.validation-failed');var par=document.id(this).getParent();while(par!=document.body&&par.getScrollSize().y==par.getSize().y){par=par.getParent();}
var fx=par.retrieve('$moo:fvScroller');if(!fx&&window.Fx&&Fx.Scroll){fx=new Fx.Scroll(par,this.options.scrollFxOptions);par.store('$moo:fvScroller',fx);}
if(failed){if(fx)fx.toElement(failed);else par.scrollTo(par.getScroll().x,failed.getPosition(par).y-20);}}
return result;},watchFields:function(fields){fields.each(function(el){if(this.options.evaluateFieldsOnBlur){el.addEvent('blur',this.validationMonitor.pass([el,false,this.options.scrollToErrorsOnBlur],this));}
if(this.options.evaluateFieldsOnChange){el.addEvent('change',this.validationMonitor.pass([el,true,this.options.scrollToErrorsOnChange],this));}},this);}});Form.Validator.addAllThese([['validate-enforce-oncheck',{test:function(element,props){var fv=element.getParent('form').retrieve('validator');if(!fv)return true;(props.toEnforce||document.id(props.enforceChildrenOf).getElements('input, select, textarea')).map(function(item){if(element.checked){fv.enforceField(item);}else{fv.ignoreField(item);fv.resetField(item);}});return true;}}],['validate-ignore-oncheck',{test:function(element,props){var fv=element.getParent('form').retrieve('validator');if(!fv)return true;(props.toIgnore||document.id(props.ignoreChildrenOf).getElements('input, select, textarea')).each(function(item){if(element.checked){fv.ignoreField(item);fv.resetField(item);}else{fv.enforceField(item);}});return true;}}],['validate-nospace',{errorMsg:function(){return Form.Validator.getMsg('noSpace');},test:function(element,props){return!element.get('value').test(/\s/);}}],['validate-toggle-oncheck',{test:function(element,props){var fv=element.getParent('form').retrieve('validator');if(!fv)return true;var eleArr=props.toToggle||document.id(props.toToggleChildrenOf).getElements('input, select, textarea');if(!element.checked){eleArr.each(function(item){fv.ignoreField(item);fv.resetField(item);});}else{eleArr.each(function(item){fv.enforceField(item);});}
return true;}}],['validate-reqchk-bynode',{errorMsg:function(){return Form.Validator.getMsg('reqChkByNode');},test:function(element,props){return(document.id(props.nodeId).getElements(props.selector||'input[type=checkbox], input[type=radio]')).some(function(item){return item.checked;});}}],['validate-required-check',{errorMsg:function(element,props){return props.useTitle?element.get('title'):Form.Validator.getMsg('requiredChk');},test:function(element,props){return!!element.checked;}}],['validate-reqchk-byname',{errorMsg:function(element,props){return Form.Validator.getMsg('reqChkByName').substitute({label:props.label||element.get('type')});},test:function(element,props){var grpName=props.groupName||element.get('name');var oneCheckedItem=$$(document.getElementsByName(grpName)).some(function(item,index){return item.checked;});var fv=element.getParent('form').retrieve('validator');if(oneCheckedItem&&fv)fv.resetField(element);return oneCheckedItem;}}],['validate-match',{errorMsg:function(element,props){return Form.Validator.getMsg('match').substitute({matchName:props.matchName||document.id(props.matchInput).get('name')});},test:function(element,props){var eleVal=element.get('value');var matchVal=document.id(props.matchInput)&&document.id(props.matchInput).get('value');return eleVal&&matchVal?eleVal==matchVal:true;}}],['validate-after-date',{errorMsg:function(element,props){return Form.Validator.getMsg('afterDate').substitute({label:props.afterLabel||(props.afterElement?Form.Validator.getMsg('startDate'):Form.Validator.getMsg('currentDate'))});},test:function(element,props){var start=document.id(props.afterElement)?Date.parse(document.id(props.afterElement).get('value')):new Date();var end=Date.parse(element.get('value'));return end&&start?end>=start:true;}}],['validate-before-date',{errorMsg:function(element,props){return Form.Validator.getMsg('beforeDate').substitute({label:props.beforeLabel||(props.beforeElement?Form.Validator.getMsg('endDate'):Form.Validator.getMsg('currentDate'))});},test:function(element,props){var start=Date.parse(element.get('value'));var end=document.id(props.beforeElement)?Date.parse(document.id(props.beforeElement).get('value')):new Date();return end&&start?end>=start:true;}}],['validate-custom-required',{errorMsg:function(){return Form.Validator.getMsg('required');},test:function(element,props){return element.get('value')!=props.emptyValue;}}],['validate-same-month',{errorMsg:function(element,props){var startMo=document.id(props.sameMonthAs)&&document.id(props.sameMonthAs).get('value');var eleVal=element.get('value');if(eleVal!='')return Form.Validator.getMsg(startMo?'sameMonth':'startMonth');},test:function(element,props){var d1=Date.parse(element.get('value'));var d2=Date.parse(document.id(props.sameMonthAs)&&document.id(props.sameMonthAs).get('value'));return d1&&d2?d1.format('%B')==d2.format('%B'):true;}}],['validate-cc-num',{errorMsg:function(element){var ccNum=element.get('value').replace(/[^0-9]/g,'');return Form.Validator.getMsg('creditcard').substitute({length:ccNum.length});},test:function(element){if(Form.Validator.getValidator('IsEmpty').test(element))return true;var ccNum=element.get('value');ccNum=ccNum.replace(/[^0-9]/g,'');var valid_type=false;if(ccNum.test(/^4[0-9]{12}([0-9]{3})?$/))valid_type='Visa';else if(ccNum.test(/^5[1-5]([0-9]{14})$/))valid_type='Master Card';else if(ccNum.test(/^3[47][0-9]{13}$/))valid_type='American Express';else if(ccNum.test(/^6011[0-9]{12}$/))valid_type='Discover';if(valid_type){var sum=0;var cur=0;for(var i=ccNum.length-1;i>=0;--i){cur=ccNum.charAt(i).toInt();if(cur==0)continue;if((ccNum.length-i)%2==0)cur+=cur;if(cur>9){cur=cur.toString().charAt(0).toInt()+cur.toString().charAt(1).toInt();}
sum+=cur;}
if((sum%10)==0)return true;}
var chunks='';while(ccNum!=''){chunks+=' '+ccNum.substr(0,4);ccNum=ccNum.substr(4);}
element.getParent('form').retrieve('validator').ignoreField(element);element.set('value',chunks.clean());element.getParent('form').retrieve('validator').enforceField(element);return false;}}]]);var OverText=new Class({Implements:[Options,Events,Class.Occlude],Binds:['reposition','assert','focus','hide'],options:{element:'label',positionOptions:{position:'upperLeft',edge:'upperLeft',offset:{x:4,y:2}},poll:false,pollInterval:250,wrap:false},property:'OverText',initialize:function(element,options){this.element=document.id(element);if(this.occlude())return this.occluded;this.setOptions(options);this.attach(this.element);OverText.instances.push(this);if(this.options.poll)this.poll();return this;},toElement:function(){return this.element;},attach:function(){var val=this.options.textOverride||this.element.get('alt')||this.element.get('title');if(!val)return;this.text=new Element(this.options.element,{'class':'overTxtLabel',styles:{lineHeight:'normal',position:'absolute',cursor:'text'},html:val,events:{click:this.hide.pass(this.options.element=='label',this)}}).inject(this.element,'after');if(this.options.element=='label'){if(!this.element.get('id'))this.element.set('id','input_'+new Date().getTime());this.text.set('for',this.element.get('id'));}
if(this.options.wrap){this.textHolder=new Element('div',{styles:{lineHeight:'normal',position:'relative'},'class':'overTxtWrapper'}).adopt(this.text).inject(this.element,'before');}
return this.enable();},destroy:function(){this.element.eliminate('OverTextDiv').eliminate('OverText');this.disable();if(this.text)this.text.destroy();if(this.textHolder)this.textHolder.destroy();return this;},disable:function(){this.element.removeEvents({focus:this.focus,blur:this.assert,change:this.assert});window.removeEvent('resize',this.reposition);this.hide(true,true);return this;},enable:function(){this.element.addEvents({focus:this.focus,blur:this.assert,change:this.assert});window.addEvent('resize',this.reposition);this.assert(true);this.reposition();return this;},wrap:function(){if(this.options.element=='label'){if(!this.element.get('id'))this.element.set('id','input_'+new Date().getTime());this.text.set('for',this.element.get('id'));}},startPolling:function(){this.pollingPaused=false;return this.poll();},poll:function(stop){if(this.poller&&!stop)return this;var test=function(){if(!this.pollingPaused)this.assert(true);}.bind(this);if(stop)clearInterval(this.poller);else this.poller=test.periodical(this.options.pollInterval,this);return this;},stopPolling:function(){this.pollingPaused=true;return this.poll(true);},focus:function(){if(this.text&&(!this.text.isDisplayed()||this.element.get('disabled')))return;this.hide();},hide:function(suppressFocus,force){if(this.text&&(this.text.isDisplayed()&&(!this.element.get('disabled')||force))){this.text.hide();this.fireEvent('textHide',[this.text,this.element]);this.pollingPaused=true;if(!suppressFocus){try{this.element.fireEvent('focus');this.element.focus();}catch(e){}}}
return this;},show:function(){if(this.text&&!this.text.isDisplayed()){this.text.show();this.reposition();this.fireEvent('textShow',[this.text,this.element]);this.pollingPaused=false;}
return this;},assert:function(suppressFocus){this[this.test()?'show':'hide'](suppressFocus);},test:function(){var v=this.element.get('value');return!v;},reposition:function(){this.assert(true);if(!this.element.isVisible())return this.stopPolling().hide();if(this.text&&this.test())this.text.position(Object.merge(this.options.positionOptions,{relativeTo:this.element}));return this;}});OverText.instances=[];Object.append(OverText,{each:function(fn){return OverText.instances.map(function(ot,i){if(ot.element&&ot.text)return fn.apply(OverText,[ot,i]);return null;});},update:function(){return OverText.each(function(ot){return ot.reposition();});},hideAll:function(){return OverText.each(function(ot){return ot.hide(true,true);});},showAll:function(){return OverText.each(function(ot){return ot.show();});}});if(window.Fx&&Fx.Reveal){Fx.Reveal.implement({hideInputs:Browser.ie?'select, input, textarea, object, embed, .overTxtLabel':false});}
Fx.Elements=new Class({Extends:Fx.CSS,initialize:function(elements,options){this.elements=this.subject=$$(elements);this.parent(options);},compute:function(from,to,delta){var now={};for(var i in from){var iFrom=from[i],iTo=to[i],iNow=now[i]={};for(var p in iFrom)iNow[p]=this.parent(iFrom[p],iTo[p],delta);}
return now;},set:function(now){for(var i in now){if(!this.elements[i])continue;var iNow=now[i];for(var p in iNow)this.render(this.elements[i],p,iNow[p],this.options.unit);}
return this;},start:function(obj){if(!this.check(obj))return this;var from={},to={};for(var i in obj){if(!this.elements[i])continue;var iProps=obj[i],iFrom=from[i]={},iTo=to[i]={};for(var p in iProps){var parsed=this.prepare(this.elements[i],p,iProps[p]);iFrom[p]=parsed.from;iTo[p]=parsed.to;}}
return this.parent(from,to);}});Fx.Accordion=new Class({Extends:Fx.Elements,options:{fixedHeight:false,fixedWidth:false,display:0,show:false,height:true,width:false,opacity:true,alwaysHide:false,trigger:'click',initialDisplayFx:true,returnHeightToAuto:true},initialize:function(){var defined=function(obj){return obj!=null;};var params=Array.link(arguments,{'container':Type.isElement,'options':Type.isObject,'togglers':defined,'elements':defined});this.parent(params.elements,params.options);this.togglers=$$(params.togglers);this.previous=-1;this.internalChain=new Chain();if(this.options.alwaysHide)this.options.wait=true;if(this.options.show||this.options.show===0){this.options.display=false;this.previous=this.options.show;}
if(this.options.start){this.options.display=false;this.options.show=false;}
this.effects={};if(this.options.opacity)this.effects.opacity='fullOpacity';if(this.options.width)this.effects.width=this.options.fixedWidth?'fullWidth':'offsetWidth';if(this.options.height)this.effects.height=this.options.fixedHeight?'fullHeight':'scrollHeight';for(var i=0,l=this.togglers.length;i<l;i++)this.addSection(this.togglers[i],this.elements[i]);this.elements.each(function(el,i){if(this.options.show===i){this.fireEvent('active',[this.togglers[i],el]);}else{for(var fx in this.effects)el.setStyle(fx,0);}},this);if(this.options.display||this.options.display===0||this.options.initialDisplayFx===false){this.display(this.options.display,this.options.initialDisplayFx);}
if(this.options.fixedHeight!==false)this.options.returnHeightToAuto=false;this.addEvent('complete',this.internalChain.callChain.bind(this.internalChain));},addSection:function(toggler,element){toggler=document.id(toggler);element=document.id(element);this.togglers.include(toggler);this.elements.include(element);var test=this.togglers.contains(toggler);var idx=this.togglers.indexOf(toggler);var displayer=this.display.pass(idx,this);toggler.store('accordion:display',displayer).addEvent(this.options.trigger,displayer);if(this.options.height)element.setStyles({'padding-top':0,'border-top':'none','padding-bottom':0,'border-bottom':'none'});if(this.options.width)element.setStyles({'padding-left':0,'border-left':'none','padding-right':0,'border-right':'none'});element.fullOpacity=1;if(this.options.fixedWidth)element.fullWidth=this.options.fixedWidth;if(this.options.fixedHeight)element.fullHeight=this.options.fixedHeight;element.setStyle('overflow','hidden');if(!test){for(var fx in this.effects)element.setStyle(fx,0);}
return this;},removeSection:function(toggler,displayIndex){var idx=this.togglers.indexOf(toggler);var element=this.elements[idx];var remover=function(){this.togglers.erase(toggler);this.elements.erase(element);this.detach(toggler);}.bind(this);if(this.now==idx||displayIndex!=null){this.display(displayIndex!=null?displayIndex:(idx-1>=0?idx-1:0)).chain(remover);}else{remover();}
return this;},detach:function(toggler){var remove=function(toggler){toggler.removeEvent(this.options.trigger,toggler.retrieve('accordion:display'));}.bind(this);if(!toggler)this.togglers.each(remove);else remove(toggler);return this;},display:function(index,useFx){if(!this.check(index,useFx))return this;useFx=useFx!=null?useFx:true;index=(typeOf(index)=='element')?this.elements.indexOf(index):index;if(index==this.previous&&!this.options.alwaysHide)return this;if(this.options.returnHeightToAuto){var prev=this.elements[this.previous];if(prev&&!this.selfHidden){for(var fx in this.effects){prev.setStyle(fx,prev[this.effects[fx]]);}}}
if((this.timer&&this.options.wait)||(index===this.previous&&!this.options.alwaysHide))return this;this.previous=index;var obj={};this.elements.each(function(el,i){obj[i]={};var hide;if(i!=index){hide=true;}else if(this.options.alwaysHide&&((el.offsetHeight>0&&this.options.height)||el.offsetWidth>0&&this.options.width)){hide=true;this.selfHidden=true;}
this.fireEvent(hide?'background':'active',[this.togglers[i],el]);for(var fx in this.effects)obj[i][fx]=hide?0:el[this.effects[fx]];},this);this.internalChain.clearChain();this.internalChain.chain(function(){if(this.options.returnHeightToAuto&&!this.selfHidden){var el=this.elements[index];if(el)el.setStyle('height','auto');};}.bind(this));return useFx?this.start(obj):this.set(obj);}});Fx.Move=new Class({Extends:Fx.Morph,options:{relativeTo:document.body,position:'center',edge:false,offset:{x:0,y:0}},start:function(destination){var element=this.element,topLeft=element.getStyles('top','left');if(topLeft.top=='auto'||topLeft.left=='auto'){element.setPosition(element.getPosition(element.getOffsetParent()));}
return this.parent(element.position(Object.merge(this.options,destination,{returnPos:true})));}});Element.Properties.move={set:function(options){this.get('move').cancel().setOptions(options);return this;},get:function(){var move=this.retrieve('move');if(!move){move=new Fx.Move(this,{link:'cancel'});this.store('move',move);}
return move;}};Element.implement({move:function(options){this.get('move').start(options);return this;}});(function(){Fx.Scroll=new Class({Extends:Fx,options:{offset:{x:0,y:0},wheelStops:true},initialize:function(element,options){this.element=this.subject=document.id(element);this.parent(options);if(typeOf(this.element)!='element')this.element=document.id(this.element.getDocument().body);if(this.options.wheelStops){var stopper=this.element,cancel=this.cancel.pass(false,this);this.addEvent('start',function(){stopper.addEvent('mousewheel',cancel);},true);this.addEvent('complete',function(){stopper.removeEvent('mousewheel',cancel);},true);}},set:function(){var now=Array.flatten(arguments);if(Browser.firefox)now=[Math.round(now[0]),Math.round(now[1])];this.element.scrollTo(now[0]+this.options.offset.x,now[1]+this.options.offset.y);},compute:function(from,to,delta){return[0,1].map(function(i){return Fx.compute(from[i],to[i],delta);});},start:function(x,y){if(!this.check(x,y))return this;var element=this.element,scrollSize=element.getScrollSize(),scroll=element.getScroll(),size=element.getSize();values={x:x,y:y};for(var z in values){if(!values[z]&&values[z]!==0)values[z]=scroll[z];if(typeOf(values[z])!='number')values[z]=scrollSize[z]-size[z];values[z]+=this.options.offset[z];}
return this.parent([scroll.x,scroll.y],[values.x,values.y]);},toTop:function(){return this.start(false,0);},toLeft:function(){return this.start(0,false);},toRight:function(){return this.start('right',false);},toBottom:function(){return this.start(false,'bottom');},toElement:function(el){var position=document.id(el).getPosition(this.element),scroll=isBody(this.element)?{x:0,y:0}:this.element.getScroll();return this.start(position.x+scroll.x,position.y+scroll.y);},scrollIntoView:function(el,axes,offset){axes=axes?Array.from(axes):['x','y'];el=document.id(el);var to={},position=el.getPosition(this.element),size=el.getSize(),scroll=this.element.getScroll(),containerSize=this.element.getSize(),edge={x:position.x+size.x,y:position.y+size.y};['x','y'].each(function(axis){if(axes.contains(axis)){if(edge[axis]>scroll[axis]+containerSize[axis])to[axis]=edge[axis]-containerSize[axis];if(position[axis]<scroll[axis])to[axis]=position[axis];}
if(to[axis]==null)to[axis]=scroll[axis];if(offset&&offset[axis])to[axis]=to[axis]+offset[axis];},this);if(to.x!=scroll.x||to.y!=scroll.y)this.start(to.x,to.y);return this;},scrollToCenter:function(el,axes,offset){axes=axes?Array.from(axes):['x','y'];el=document.id(el);var to={},position=el.getPosition(this.element),size=el.getSize(),scroll=this.element.getScroll(),containerSize=this.element.getSize();['x','y'].each(function(axis){if(axes.contains(axis)){to[axis]=position[axis]-(containerSize[axis]-size[axis])/2;}
if(to[axis]==null)to[axis]=scroll[axis];if(offset&&offset[axis])to[axis]=to[axis]+offset[axis];},this);if(to.x!=scroll.x||to.y!=scroll.y)this.start(to.x,to.y);return this;}});function isBody(element){return(/^(?:body|html)$/i).test(element.tagName);};})();Fx.Slide=new Class({Extends:Fx,options:{mode:'vertical',wrapper:false,hideOverflow:true,resetHeight:false},initialize:function(element,options){this.addEvent('complete',function(){this.open=(this.wrapper['offset'+this.layout.capitalize()]!=0);if(this.open&&this.options.resetHeight)this.wrapper.setStyle('height','');},true);this.element=this.subject=document.id(element);this.parent(options);var wrapper=this.element.retrieve('wrapper');var styles=this.element.getStyles('margin','position','overflow');if(this.options.hideOverflow)styles=Object.append(styles,{overflow:'hidden'});if(this.options.wrapper)wrapper=document.id(this.options.wrapper).setStyles(styles);this.wrapper=wrapper||new Element('div',{styles:styles}).wraps(this.element);this.element.store('wrapper',this.wrapper).setStyle('margin',0);this.now=[];this.open=true;},vertical:function(){this.margin='margin-top';this.layout='height';this.offset=this.element.offsetHeight;},horizontal:function(){this.margin='margin-left';this.layout='width';this.offset=this.element.offsetWidth;},set:function(now){this.element.setStyle(this.margin,now[0]);this.wrapper.setStyle(this.layout,now[1]);return this;},compute:function(from,to,delta){return[0,1].map(function(i){return Fx.compute(from[i],to[i],delta);});},start:function(how,mode){if(!this.check(how,mode))return this;this[mode||this.options.mode]();var margin=this.element.getStyle(this.margin).toInt();var layout=this.wrapper.getStyle(this.layout).toInt();var caseIn=[[margin,layout],[0,this.offset]];var caseOut=[[margin,layout],[-this.offset,0]];var start;switch(how){case'in':start=caseIn;break;case'out':start=caseOut;break;case'toggle':start=(layout==0)?caseIn:caseOut;}
return this.parent(start[0],start[1]);},slideIn:function(mode){return this.start('in',mode);},slideOut:function(mode){return this.start('out',mode);},hide:function(mode){this[mode||this.options.mode]();this.open=false;return this.set([-this.offset,0]);},show:function(mode){this[mode||this.options.mode]();this.open=true;return this.set([0,this.offset]);},toggle:function(mode){return this.start('toggle',mode);}});Element.Properties.slide={set:function(options){this.get('slide').cancel().setOptions(options);return this;},get:function(){var slide=this.retrieve('slide');if(!slide){slide=new Fx.Slide(this,{link:'cancel'});this.store('slide',slide);}
return slide;}};Element.implement({slide:function(how,mode){how=how||'toggle';var slide=this.get('slide'),toggle;switch(how){case'hide':slide.hide(mode);break;case'show':slide.show(mode);break;case'toggle':var flag=this.retrieve('slide:flag',slide.open);slide[flag?'slideOut':'slideIn'](mode);this.store('slide:flag',!flag);toggle=true;break;default:slide.start(how,mode);}
if(!toggle)this.eliminate('slide:flag');return this;}});Fx.SmoothScroll=new Class({Extends:Fx.Scroll,initialize:function(options,context){context=context||document;this.doc=context.getDocument();this.parent(this.doc,options);var win=context.getWindow(),location=win.location.href.match(/^[^#]*/)[0]+'#',links=$$(this.options.links||this.doc.links);links.each(function(link){if(link.href.indexOf(location)!=0)return;var anchor=link.href.substr(location.length);if(anchor)this.useLink(link,anchor);},this);},useLink:function(link,anchor){link.addEvent('click',function(event){var el=document.id(anchor)||this.doc.getElement('a[name='+anchor+']');if(!el)return;event.preventDefault();this.toElement(el).chain(function(){this.fireEvent('scrolledTo',[link,el]);}.bind(this));}.bind(this));return this;}});Fx.Sort=new Class({Extends:Fx.Elements,options:{mode:'vertical'},initialize:function(elements,options){this.parent(elements,options);this.elements.each(function(el){if(el.getStyle('position')=='static')el.setStyle('position','relative');});this.setDefaultOrder();},setDefaultOrder:function(){this.currentOrder=this.elements.map(function(el,index){return index;});},sort:function(){if(!this.check(arguments))return this;var newOrder=Array.flatten(arguments);var top=0,left=0,next={},zero={},vert=this.options.mode=='vertical';var current=this.elements.map(function(el,index){var size=el.getComputedSize({styles:['border','padding','margin']});var val;if(vert){val={top:top,margin:size['margin-top'],height:size.totalHeight};top+=val.height-size['margin-top'];}else{val={left:left,margin:size['margin-left'],width:size.totalWidth};left+=val.width;}
var plane=vert?'top':'left';zero[index]={};var start=el.getStyle(plane).toInt();zero[index][plane]=start||0;return val;},this);this.set(zero);newOrder=newOrder.map(function(i){return i.toInt();});if(newOrder.length!=this.elements.length){this.currentOrder.each(function(index){if(!newOrder.contains(index))newOrder.push(index);});if(newOrder.length>this.elements.length)
newOrder.splice(this.elements.length-1,newOrder.length-this.elements.length);}
var margin=top=left=0;newOrder.each(function(item,index){var newPos={};if(vert){newPos.top=top-current[item].top-margin;top+=current[item].height;}else{newPos.left=left-current[item].left;left+=current[item].width;}
margin=margin+current[item].margin;next[item]=newPos;},this);var mapped={};Array.clone(newOrder).sort().each(function(index){mapped[index]=next[index];});this.start(mapped);this.currentOrder=newOrder;return this;},rearrangeDOM:function(newOrder){newOrder=newOrder||this.currentOrder;var parent=this.elements[0].getParent();var rearranged=[];this.elements.setStyle('opacity',0);newOrder.each(function(index){rearranged.push(this.elements[index].inject(parent).setStyles({top:0,left:0}));},this);this.elements.setStyle('opacity',1);this.elements=$$(rearranged);this.setDefaultOrder();return this;},getDefaultOrder:function(){return this.elements.map(function(el,index){return index;});},forward:function(){return this.sort(this.getDefaultOrder());},backward:function(){return this.sort(this.getDefaultOrder().reverse());},reverse:function(){return this.sort(this.currentOrder.reverse());},sortByElements:function(elements){return this.sort(elements.map(function(el){return this.elements.indexOf(el);},this));},swap:function(one,two){if(typeOf(one)=='element')one=this.elements.indexOf(one);if(typeOf(two)=='element')two=this.elements.indexOf(two);var newOrder=Array.clone(this.currentOrder);newOrder[this.currentOrder.indexOf(one)]=two;newOrder[this.currentOrder.indexOf(two)]=one;return this.sort(newOrder);}});var Drag=new Class({Implements:[Events,Options],options:{snap:6,unit:'px',grid:false,style:true,limit:false,handle:false,invert:false,preventDefault:false,stopPropagation:false,modifiers:{x:'left',y:'top'}},initialize:function(){var params=Array.link(arguments,{'options':Type.isObject,'element':function(obj){return obj!=null;}});this.element=document.id(params.element);this.document=this.element.getDocument();this.setOptions(params.options||{});var htype=typeOf(this.options.handle);this.handles=((htype=='array'||htype=='collection')?$$(this.options.handle):document.id(this.options.handle))||this.element;this.mouse={'now':{},'pos':{}};this.value={'start':{},'now':{}};this.selection=(Browser.ie)?'selectstart':'mousedown';if(Browser.ie&&!Drag.ondragstartFixed){document.ondragstart=Function.from(false);Drag.ondragstartFixed=true;}
this.bound={start:this.start.bind(this),check:this.check.bind(this),drag:this.drag.bind(this),stop:this.stop.bind(this),cancel:this.cancel.bind(this),eventStop:Function.from(false)};this.attach();},attach:function(){this.handles.addEvent('mousedown',this.bound.start);return this;},detach:function(){this.handles.removeEvent('mousedown',this.bound.start);return this;},start:function(event){var options=this.options;if(event.rightClick)return;if(options.preventDefault)event.preventDefault();if(options.stopPropagation)event.stopPropagation();this.mouse.start=event.page;this.fireEvent('beforeStart',this.element);var limit=options.limit;this.limit={x:[],y:[]};var styles=this.element.getStyles('left','right','top','bottom');this._invert={x:options.modifiers.x=='left'&&styles.left=='auto'&&!isNaN(styles.right.toInt())&&(options.modifiers.x='right'),y:options.modifiers.y=='top'&&styles.top=='auto'&&!isNaN(styles.bottom.toInt())&&(options.modifiers.y='bottom')};var z,coordinates;for(z in options.modifiers){if(!options.modifiers[z])continue;var style=this.element.getStyle(options.modifiers[z]);if(style&&!style.match(/px$/)){if(!coordinates)coordinates=this.element.getCoordinates(this.element.getOffsetParent());style=coordinates[options.modifiers[z]];}
if(options.style)this.value.now[z]=(style||0).toInt();else this.value.now[z]=this.element[options.modifiers[z]];if(options.invert)this.value.now[z]*=-1;if(this._invert[z])this.value.now[z]*=-1;this.mouse.pos[z]=event.page[z]-this.value.now[z];if(limit&&limit[z]){var i=2;while(i--){var limitZI=limit[z][i];if(limitZI||limitZI===0)this.limit[z][i]=(typeof limitZI=='function')?limitZI():limitZI;}}}
if(typeOf(this.options.grid)=='number')this.options.grid={x:this.options.grid,y:this.options.grid};var events={mousemove:this.bound.check,mouseup:this.bound.cancel};events[this.selection]=this.bound.eventStop;this.document.addEvents(events);},check:function(event){if(this.options.preventDefault)event.preventDefault();var distance=Math.round(Math.sqrt(Math.pow(event.page.x-this.mouse.start.x,2)+Math.pow(event.page.y-this.mouse.start.y,2)));if(distance>this.options.snap){this.cancel();this.document.addEvents({mousemove:this.bound.drag,mouseup:this.bound.stop});this.fireEvent('start',[this.element,event]).fireEvent('snap',this.element);}},drag:function(event){var options=this.options;if(options.preventDefault)event.preventDefault();this.mouse.now=event.page;for(var z in options.modifiers){if(!options.modifiers[z])continue;this.value.now[z]=this.mouse.now[z]-this.mouse.pos[z];if(options.invert)this.value.now[z]*=-1;if(this._invert[z])this.value.now[z]*=-1;if(options.limit&&this.limit[z]){if((this.limit[z][1]||this.limit[z][1]===0)&&(this.value.now[z]>this.limit[z][1])){this.value.now[z]=this.limit[z][1];}else if((this.limit[z][0]||this.limit[z][0]===0)&&(this.value.now[z]<this.limit[z][0])){this.value.now[z]=this.limit[z][0];}}
if(options.grid[z])this.value.now[z]-=((this.value.now[z]-(this.limit[z][0]||0))%options.grid[z]);if(options.style)this.element.setStyle(options.modifiers[z],this.value.now[z]+options.unit);else this.element[options.modifiers[z]]=this.value.now[z];}
this.fireEvent('drag',[this.element,event]);},cancel:function(event){this.document.removeEvents({mousemove:this.bound.check,mouseup:this.bound.cancel});if(event){this.document.removeEvent(this.selection,this.bound.eventStop);this.fireEvent('cancel',this.element);}},stop:function(event){var events={mousemove:this.bound.drag,mouseup:this.bound.stop};events[this.selection]=this.bound.eventStop;this.document.removeEvents(events);if(event)this.fireEvent('complete',[this.element,event]);}});Element.implement({makeResizable:function(options){var drag=new Drag(this,Object.merge({modifiers:{x:'width',y:'height'}},options));this.store('resizer',drag);return drag.addEvent('drag',function(){this.fireEvent('resize',drag);}.bind(this));}});Drag.Move=new Class({Extends:Drag,options:{droppables:[],container:false,precalculate:false,includeMargins:true,checkDroppables:true},initialize:function(element,options){this.parent(element,options);element=this.element;this.droppables=$$(this.options.droppables);this.container=document.id(this.options.container);if(this.container&&typeOf(this.container)!='element')
this.container=document.id(this.container.getDocument().body);if(this.options.style){if(this.options.modifiers.x=="left"&&this.options.modifiers.y=="top"){var parentStyles,parent=element.getOffsetParent();var styles=element.getStyles('left','top');if(parent&&(styles.left=='auto'||styles.top=='auto')){element.setPosition(element.getPosition(parent));}}
if(element.getStyle('position')=='static')element.setStyle('position','absolute');}
this.addEvent('start',this.checkDroppables,true);this.overed=null;},start:function(event){if(this.container)this.options.limit=this.calculateLimit();if(this.options.precalculate){this.positions=this.droppables.map(function(el){return el.getCoordinates();});}
this.parent(event);},calculateLimit:function(){var element=this.element,container=this.container,offsetParent=document.id(element.getOffsetParent())||document.body,containerCoordinates=container.getCoordinates(offsetParent),elementMargin={},elementBorder={},containerMargin={},containerBorder={},offsetParentPadding={};['top','right','bottom','left'].each(function(pad){elementMargin[pad]=element.getStyle('margin-'+pad).toInt();elementBorder[pad]=element.getStyle('border-'+pad).toInt();containerMargin[pad]=container.getStyle('margin-'+pad).toInt();containerBorder[pad]=container.getStyle('border-'+pad).toInt();offsetParentPadding[pad]=offsetParent.getStyle('padding-'+pad).toInt();},this);var width=element.offsetWidth+elementMargin.left+elementMargin.right,height=element.offsetHeight+elementMargin.top+elementMargin.bottom,left=0,top=0,right=containerCoordinates.right-containerBorder.right-width,bottom=containerCoordinates.bottom-containerBorder.bottom-height;if(this.options.includeMargins){left+=elementMargin.left;top+=elementMargin.top;}else{right+=elementMargin.right;bottom+=elementMargin.bottom;}
if(element.getStyle('position')=='relative'){var coords=element.getCoordinates(offsetParent);coords.left-=element.getStyle('left').toInt();coords.top-=element.getStyle('top').toInt();left-=coords.left;top-=coords.top;if(container.getStyle('position')!='relative'){left+=containerBorder.left;top+=containerBorder.top;}
right+=elementMargin.left-coords.left;bottom+=elementMargin.top-coords.top;if(container!=offsetParent){left+=containerMargin.left+offsetParentPadding.left;top+=((Browser.ie6||Browser.ie7)?0:containerMargin.top)+offsetParentPadding.top;}}else{left-=elementMargin.left;top-=elementMargin.top;if(container!=offsetParent){left+=containerCoordinates.left+containerBorder.left;top+=containerCoordinates.top+containerBorder.top;}}
return{x:[left,right],y:[top,bottom]};},checkDroppables:function(){var overed=this.droppables.filter(function(el,i){el=this.positions?this.positions[i]:el.getCoordinates();var now=this.mouse.now;return(now.x>el.left&&now.x<el.right&&now.y<el.bottom&&now.y>el.top);},this).getLast();if(this.overed!=overed){if(this.overed)this.fireEvent('leave',[this.element,this.overed]);if(overed)this.fireEvent('enter',[this.element,overed]);this.overed=overed;}},drag:function(event){this.parent(event);if(this.options.checkDroppables&&this.droppables.length)this.checkDroppables();},stop:function(event){this.checkDroppables();this.fireEvent('drop',[this.element,this.overed,event]);this.overed=null;return this.parent(event);}});Element.implement({makeDraggable:function(options){var drag=new Drag.Move(this,options);this.store('dragger',drag);return drag;}});var Slider=new Class({Implements:[Events,Options],Binds:['clickedElement','draggedKnob','scrolledElement'],options:{onTick:function(position){if(this.options.snap)position=this.toPosition(this.step);this.knob.setStyle(this.property,position);},initialStep:0,snap:false,offset:0,range:false,wheel:false,steps:100,mode:'horizontal'},initialize:function(element,knob,options){this.setOptions(options);this.element=document.id(element);this.knob=document.id(knob);this.previousChange=this.previousEnd=this.step=-1;var offset,limit={},modifiers={'x':false,'y':false};switch(this.options.mode){case'vertical':this.axis='y';this.property='top';offset='offsetHeight';break;case'horizontal':this.axis='x';this.property='left';offset='offsetWidth';}
this.full=this.element.measure(function(){this.half=this.knob[offset]/2;return this.element[offset]-this.knob[offset]+(this.options.offset*2);}.bind(this));this.setRange(this.options.range);this.knob.setStyle('position','relative').setStyle(this.property,-this.options.offset);modifiers[this.axis]=this.property;limit[this.axis]=[-this.options.offset,this.full-this.options.offset];var dragOptions={snap:0,limit:limit,modifiers:modifiers,onDrag:this.draggedKnob,onStart:this.draggedKnob,onBeforeStart:(function(){this.isDragging=true;}).bind(this),onCancel:function(){this.isDragging=false;}.bind(this),onComplete:function(){this.isDragging=false;this.draggedKnob();this.end();}.bind(this)};if(this.options.snap){dragOptions.grid=Math.ceil(this.stepWidth);dragOptions.limit[this.axis][1]=this.full;}
this.drag=new Drag(this.knob,dragOptions);this.attach();if(this.options.initialStep!=null)this.set(this.options.initialStep)},attach:function(){this.element.addEvent('mousedown',this.clickedElement);if(this.options.wheel)this.element.addEvent('mousewheel',this.scrolledElement);this.drag.attach();return this;},detach:function(){this.element.removeEvent('mousedown',this.clickedElement);this.element.removeEvent('mousewheel',this.scrolledElement);this.drag.detach();return this;},set:function(step){if(!((this.range>0)^(step<this.min)))step=this.min;if(!((this.range>0)^(step>this.max)))step=this.max;this.step=Math.round(step);this.checkStep();this.fireEvent('tick',this.toPosition(this.step));this.end();return this;},setRange:function(range,pos){this.min=Array.pick([range[0],0]);this.max=Array.pick([range[1],this.options.steps]);this.range=this.max-this.min;this.steps=this.options.steps||this.full;this.stepSize=Math.abs(this.range)/this.steps;this.stepWidth=this.stepSize*this.full/Math.abs(this.range);this.set(Array.pick([pos,this.step]).floor(this.min).max(this.max));return this;},clickedElement:function(event){if(this.isDragging||event.target==this.knob)return;var dir=this.range<0?-1:1;var position=event.page[this.axis]-this.element.getPosition()[this.axis]-this.half;position=position.limit(-this.options.offset,this.full-this.options.offset);this.step=Math.round(this.min+dir*this.toStep(position));this.checkStep();this.fireEvent('tick',position);this.end();},scrolledElement:function(event){var mode=(this.options.mode=='horizontal')?(event.wheel<0):(event.wheel>0);this.set(mode?this.step-this.stepSize:this.step+this.stepSize);event.stop();},draggedKnob:function(){var dir=this.range<0?-1:1;var position=this.drag.value.now[this.axis];position=position.limit(-this.options.offset,this.full-this.options.offset);this.step=Math.round(this.min+dir*this.toStep(position));this.checkStep();},checkStep:function(){if(this.previousChange!=this.step){this.previousChange=this.step;this.fireEvent('change',this.step);}},end:function(){if(this.previousEnd!==this.step){this.previousEnd=this.step;this.fireEvent('complete',this.step+'');}},toStep:function(position){var step=(position+this.options.offset)*this.stepSize/this.full*this.steps;return this.options.steps?Math.round(step-=step%this.stepSize):step;},toPosition:function(step){return(this.full*Math.abs(this.min-step))/(this.steps*this.stepSize)-this.options.offset;}});var Sortables=new Class({Implements:[Events,Options],options:{snap:4,opacity:1,clone:false,revert:false,handle:false,constrain:false,preventDefault:false},initialize:function(lists,options){this.setOptions(options);this.elements=[];this.lists=[];this.idle=true;this.addLists($$(document.id(lists)||lists));if(!this.options.clone)this.options.revert=false;if(this.options.revert)this.effect=new Fx.Morph(null,Object.merge({duration:250,link:'cancel'},this.options.revert));},attach:function(){this.addLists(this.lists);return this;},detach:function(){this.lists=this.removeLists(this.lists);return this;},addItems:function(){Array.flatten(arguments).each(function(element){this.elements.push(element);var start=element.retrieve('sortables:start',function(event){this.start.call(this,event,element);}.bind(this));(this.options.handle?element.getElement(this.options.handle)||element:element).addEvent('mousedown',start);},this);return this;},addLists:function(){Array.flatten(arguments).each(function(list){this.lists.push(list);this.addItems(list.getChildren());},this);return this;},removeItems:function(){return $$(Array.flatten(arguments).map(function(element){this.elements.erase(element);var start=element.retrieve('sortables:start');(this.options.handle?element.getElement(this.options.handle)||element:element).removeEvent('mousedown',start);return element;},this));},removeLists:function(){return $$(Array.flatten(arguments).map(function(list){this.lists.erase(list);this.removeItems(list.getChildren());return list;},this));},getClone:function(event,element){if(!this.options.clone)return new Element(element.tagName).inject(document.body);if(typeOf(this.options.clone)=='function')return this.options.clone.call(this,event,element,this.list);var clone=element.clone(true).setStyles({margin:0,position:'absolute',visibility:'hidden',width:element.getStyle('width')});if(clone.get('html').test('radio')){clone.getElements('input[type=radio]').each(function(input,i){input.set('name','clone_'+i);if(input.get('checked'))element.getElements('input[type=radio]')[i].set('checked',true);});}
return clone.inject(this.list).setPosition(element.getPosition(element.getOffsetParent()));},getDroppables:function(){var droppables=this.list.getChildren().erase(this.clone).erase(this.element);if(!this.options.constrain)droppables.append(this.lists).erase(this.list);return droppables;},insert:function(dragging,element){var where='inside';if(this.lists.contains(element)){this.list=element;this.drag.droppables=this.getDroppables();}else{where=this.element.getAllPrevious().contains(element)?'before':'after';}
this.element.inject(element,where);this.fireEvent('sort',[this.element,this.clone]);},start:function(event,element){if(!this.idle||event.rightClick||['button','input'].contains(event.target.get('tag')))return;this.idle=false;this.element=element;this.opacity=element.get('opacity');this.list=element.getParent();this.clone=this.getClone(event,element);this.drag=new Drag.Move(this.clone,{preventDefault:this.options.preventDefault,snap:this.options.snap,container:this.options.constrain&&this.element.getParent(),droppables:this.getDroppables(),onSnap:function(){event.stop();this.clone.setStyle('visibility','visible');this.element.set('opacity',this.options.opacity||0);this.fireEvent('start',[this.element,this.clone]);}.bind(this),onEnter:this.insert.bind(this),onCancel:this.reset.bind(this),onComplete:this.end.bind(this)});this.clone.inject(this.element,'before');this.drag.start(event);},end:function(){this.drag.detach();this.element.set('opacity',this.opacity);if(this.effect){var dim=this.element.getStyles('width','height');var pos=this.clone.computePosition(this.element.getPosition(this.clone.getOffsetParent()));this.effect.element=this.clone;this.effect.start({top:pos.top,left:pos.left,width:dim.width,height:dim.height,opacity:0.25}).chain(this.reset.bind(this));}else{this.reset();}},reset:function(){this.idle=true;this.clone.destroy();this.fireEvent('complete',this.element);},serialize:function(){var params=Array.link(arguments,{modifier:Type.isFunction,index:function(obj){return obj!=null;}});var serial=this.lists.map(function(list){return list.getChildren().map(params.modifier||function(element){return element.get('id');},this);},this);var index=params.index;if(this.lists.length==1)index=0;return(index||index===0)&&index>=0&&index<this.lists.length?serial[index]:serial;}});Request.JSONP=new Class({Implements:[Chain,Events,Options],options:{onRequest:function(src){if(this.options.log&&window.console&&console.log){console.log('JSONP retrieving script with url:'+src);}},onError:function(src){if(this.options.log&&window.console&&console.warn){console.warn('JSONP '+src+' will fail in Internet Explorer, which enforces a 2083 bytes length limit on URIs');}},url:'',callbackKey:'callback',injectScript:document.head,data:'',link:'ignore',timeout:0,log:false},initialize:function(options){this.setOptions(options);},send:function(options){if(!Request.prototype.check.call(this,options))return this;this.running=true;var type=typeOf(options);if(type=='string'||type=='element')options={data:options};options=Object.merge(this.options,options||{});var data=options.data;switch(typeOf(data)){case'element':data=document.id(data).toQueryString();break;case'object':case'hash':data=Object.toQueryString(data);}
var index=this.index=Request.JSONP.counter++;var src=options.url+
(options.url.test('\\?')?'&':'?')+
(options.callbackKey)+'=Request.JSONP.request_map.request_'+index+
(data?'&'+data:'');if(src.length>2083)this.fireEvent('error',src);var script=this.getScript(src).inject(options.injectScript);this.fireEvent('request',[script.get('src'),script]);Request.JSONP.request_map['request_'+index]=function(){this.success(arguments,index);}.bind(this);if(options.timeout){(function(){if(this.running)this.fireEvent('timeout',[script.get('src'),script]).fireEvent('failure').cancel();}).delay(options.timeout,this);}
return this;},getScript:function(src){return this.script=new Element('script',{type:'text/javascript',src:src});},success:function(args,index){if(!this.running)return false;this.clear().fireEvent('complete',args).fireEvent('success',args).callChain();},cancel:function(){return this.running?this.clear().fireEvent('cancel'):this;},isRunning:function(){return!!this.running;},clear:function(){if(this.script)this.script.destroy();this.running=false;return this;}});Request.JSONP.counter=0;Request.JSONP.request_map={};Request.Queue=new Class({Implements:[Options,Events],Binds:['attach','request','complete','cancel','success','failure','exception'],options:{stopOnFailure:true,autoAdvance:true,concurrent:1,requests:{}},initialize:function(options){if(options){var requests=options.requests;delete options.requests;}
this.setOptions(options);this.requests={};this.queue=[];this.reqBinders={};if(requests)this.addRequests(requests);},addRequest:function(name,request){this.requests[name]=request;this.attach(name,request);return this;},addRequests:function(obj){Object.each(obj,function(req,name){this.addRequest(name,req);},this);return this;},getName:function(req){return Object.keyOf(this.requests,req);},attach:function(name,req){if(req._groupSend)return this;['request','complete','cancel','success','failure','exception'].each(function(evt){if(!this.reqBinders[name])this.reqBinders[name]={};this.reqBinders[name][evt]=function(){this['on'+evt.capitalize()].apply(this,[name,req].append(arguments));}.bind(this);req.addEvent(evt,this.reqBinders[name][evt]);},this);req._groupSend=req.send;req.send=function(options){this.send(name,options);return req;}.bind(this);return this;},removeRequest:function(req){var name=typeOf(req)=='object'?this.getName(req):req;if(!name&&typeOf(name)!='string')return this;req=this.requests[name];if(!req)return this;['request','complete','cancel','success','failure','exception'].each(function(evt){req.removeEvent(evt,this.reqBinders[name][evt]);},this);req.send=req._groupSend;delete req._groupSend;return this;},getRunning:function(){return Object.filter(this.requests,function(r){return r.running;});},isRunning:function(){return!!(Object.keys(this.getRunning()).length);},send:function(name,options){var q=function(){this.requests[name]._groupSend(options);this.queue.erase(q);}.bind(this);q.name=name;if(Object.keys(this.getRunning()).length>=this.options.concurrent||(this.error&&this.options.stopOnFailure))this.queue.push(q);else q();return this;},hasNext:function(name){return(!name)?!!this.queue.length:!!this.queue.filter(function(q){return q.name==name;}).length;},resume:function(){this.error=false;(this.options.concurrent-Object.keys(this.getRunning()).length).times(this.runNext,this);return this;},runNext:function(name){if(!this.queue.length)return this;if(!name){this.queue[0]();}else{var found;this.queue.each(function(q){if(!found&&q.name==name){found=true;q();}});}
return this;},runAll:function(){this.queue.each(function(q){q();});return this;},clear:function(name){if(!name){this.queue.empty();}else{this.queue=this.queue.map(function(q){if(q.name!=name)return q;else return false;}).filter(function(q){return q;});}
return this;},cancel:function(name){this.requests[name].cancel();return this;},onRequest:function(){this.fireEvent('request',arguments);},onComplete:function(){this.fireEvent('complete',arguments);if(!this.queue.length)this.fireEvent('end');},onCancel:function(){if(this.options.autoAdvance&&!this.error)this.runNext();this.fireEvent('cancel',arguments);},onSuccess:function(){if(this.options.autoAdvance&&!this.error)this.runNext();this.fireEvent('success',arguments);},onFailure:function(){this.error=true;if(!this.options.stopOnFailure&&this.options.autoAdvance)this.runNext();this.fireEvent('failure',arguments);},onException:function(){this.error=true;if(!this.options.stopOnFailure&&this.options.autoAdvance)this.runNext();this.fireEvent('exception',arguments);}});Request.implement({options:{initialDelay:5000,delay:5000,limit:60000},startTimer:function(data){var fn=function(){if(!this.running)this.send({data:data});};this.lastDelay=this.options.initialDelay;this.timer=fn.delay(this.lastDelay,this);this.completeCheck=function(response){clearTimeout(this.timer);this.lastDelay=(response)?this.options.delay:(this.lastDelay+this.options.delay).min(this.options.limit);this.timer=fn.delay(this.lastDelay,this);};return this.addEvent('complete',this.completeCheck);},stopTimer:function(){clearTimeout(this.timer);return this.removeEvent('complete',this.completeCheck);}});var Asset={javascript:function(source,properties){properties=Object.append({document:document},properties);if(properties.onLoad){properties.onload=properties.onLoad;delete properties.onLoad;}
var script=new Element('script',{src:source,type:'text/javascript'});var load=properties.onload||function(){},doc=properties.document;delete properties.onload;delete properties.document;return script.addEvents({load:load,readystatechange:function(){if(['loaded','complete'].contains(this.readyState))load.call(this);}}).set(properties).inject(doc.head);},css:function(source,properties){properties=properties||{};var onload=properties.onload||properties.onLoad;if(onload){properties.events=properties.events||{};properties.events.load=onload;delete properties.onload;delete properties.onLoad;}
return new Element('link',Object.merge({rel:'stylesheet',media:'screen',type:'text/css',href:source},properties)).inject(document.head);},image:function(source,properties){properties=Object.merge({onload:function(){},onabort:function(){},onerror:function(){}},properties);var image=new Image();var element=document.id(image)||new Element('img');['load','abort','error'].each(function(name){var type='on'+name;var cap=name.capitalize();if(properties['on'+cap]){properties[type]=properties['on'+cap];delete properties['on'+cap];}
var event=properties[type];delete properties[type];image[type]=function(){if(!image)return;if(!element.parentNode){element.width=image.width;element.height=image.height;}
image=image.onload=image.onabort=image.onerror=null;event.delay(1,element,element);element.fireEvent(name,element,1);};});image.src=element.src=source;if(image&&image.complete)image.onload.delay(1);return element.set(properties);},images:function(sources,options){options=Object.merge({onComplete:function(){},onProgress:function(){},onError:function(){},properties:{}},options);sources=Array.from(sources);var counter=0;return new Elements(sources.map(function(source,index){return Asset.image(source,Object.append(options.properties,{onload:function(){counter++;options.onProgress.call(this,counter,index,source);if(counter==sources.length)options.onComplete();},onerror:function(){counter++;options.onError.call(this,counter,index,source);if(counter==sources.length)options.onComplete();}}));}));}};(function(){var Color=this.Color=new Type('Color',function(color,type){if(arguments.length>=3){type='rgb';color=Array.slice(arguments,0,3);}else if(typeof color=='string'){if(color.match(/rgb/))color=color.rgbToHex().hexToRgb(true);else if(color.match(/hsb/))color=color.hsbToRgb();else color=color.hexToRgb(true);}
type=type||'rgb';switch(type){case'hsb':var old=color;color=color.hsbToRgb();color.hsb=old;break;case'hex':color=color.hexToRgb(true);break;}
color.rgb=color.slice(0,3);color.hsb=color.hsb||color.rgbToHsb();color.hex=color.rgbToHex();return Object.append(color,this);});Color.implement({mix:function(){var colors=Array.slice(arguments);var alpha=(typeOf(colors.getLast())=='number')?colors.pop():50;var rgb=this.slice();colors.each(function(color){color=new Color(color);for(var i=0;i<3;i++)rgb[i]=Math.round((rgb[i]/100*(100-alpha))+(color[i]/100*alpha));});return new Color(rgb,'rgb');},invert:function(){return new Color(this.map(function(value){return 255-value;}));},setHue:function(value){return new Color([value,this.hsb[1],this.hsb[2]],'hsb');},setSaturation:function(percent){return new Color([this.hsb[0],percent,this.hsb[2]],'hsb');},setBrightness:function(percent){return new Color([this.hsb[0],this.hsb[1],percent],'hsb');}});var $RGB=function(r,g,b){return new Color([r,g,b],'rgb');};var $HSB=function(h,s,b){return new Color([h,s,b],'hsb');};var $HEX=function(hex){return new Color(hex,'hex');};Array.implement({rgbToHsb:function(){var red=this[0],green=this[1],blue=this[2],hue=0;var max=Math.max(red,green,blue),min=Math.min(red,green,blue);var delta=max-min;var brightness=max/255,saturation=(max!=0)?delta/max:0;if(saturation!=0){var rr=(max-red)/delta;var gr=(max-green)/delta;var br=(max-blue)/delta;if(red==max)hue=br-gr;else if(green==max)hue=2+rr-br;else hue=4+gr-rr;hue/=6;if(hue<0)hue++;}
return[Math.round(hue*360),Math.round(saturation*100),Math.round(brightness*100)];},hsbToRgb:function(){var br=Math.round(this[2]/100*255);if(this[1]==0){return[br,br,br];}else{var hue=this[0]%360;var f=hue%60;var p=Math.round((this[2]*(100-this[1]))/10000*255);var q=Math.round((this[2]*(6000-this[1]*f))/600000*255);var t=Math.round((this[2]*(6000-this[1]*(60-f)))/600000*255);switch(Math.floor(hue/60)){case 0:return[br,t,p];case 1:return[q,br,p];case 2:return[p,br,t];case 3:return[p,q,br];case 4:return[t,p,br];case 5:return[br,p,q];}}
return false;}});String.implement({rgbToHsb:function(){var rgb=this.match(/\d{1,3}/g);return(rgb)?rgb.rgbToHsb():null;},hsbToRgb:function(){var hsb=this.match(/\d{1,3}/g);return(hsb)?hsb.hsbToRgb():null;}});})();(function(){this.Group=new Class({initialize:function(){this.instances=Array.flatten(arguments);this.events={};this.checker={};},addEvent:function(type,fn){this.checker[type]=this.checker[type]||{};this.events[type]=this.events[type]||[];if(this.events[type].contains(fn))return false;else this.events[type].push(fn);this.instances.each(function(instance,i){instance.addEvent(type,this.check.pass([type,instance,i],this));},this);return this;},check:function(type,instance,i){this.checker[type][i]=true;var every=this.instances.every(function(current,j){return this.checker[type][j]||false;},this);if(!every)return;this.checker[type]={};this.events[type].each(function(event){event.call(this,this.instances,instance);},this);}});})();Hash.Cookie=new Class({Extends:Cookie,options:{autoSave:true},initialize:function(name,options){this.parent(name,options);this.load();},save:function(){var value=JSON.encode(this.hash);if(!value||value.length>4096)return false;if(value=='{}')this.dispose();else this.write(value);return true;},load:function(){this.hash=new Hash(JSON.decode(this.read(),true));return this;}});Hash.each(Hash.prototype,function(method,name){if(typeof method=='function')Hash.Cookie.implement(name,function(){var value=method.apply(this.hash,arguments);if(this.options.autoSave)this.save();return value;});});var HtmlTable=new Class({Implements:[Options,Events,Class.Occlude],options:{properties:{cellpadding:0,cellspacing:0,border:0},rows:[],headers:[],footers:[]},property:'HtmlTable',initialize:function(){var params=Array.link(arguments,{options:Type.isObject,table:Type.isElement});this.setOptions(params.options);this.element=params.table||new Element('table',this.options.properties);if(this.occlude())return this.occluded;this.build();},build:function(){this.element.store('HtmlTable',this);this.body=document.id(this.element.tBodies[0])||new Element('tbody').inject(this.element);$$(this.body.rows);if(this.options.headers.length)this.setHeaders(this.options.headers);else this.thead=document.id(this.element.tHead);if(this.thead)this.head=document.id(this.thead.rows[0]);if(this.options.footers.length)this.setFooters(this.options.footers);this.tfoot=document.id(this.element.tFoot);if(this.tfoot)this.foot=document.id(this.tfoot.rows[0]);this.options.rows.each(function(row){this.push(row);},this);['adopt','inject','wraps','grab','replaces','dispose'].each(function(method){this[method]=this.element[method].bind(this.element);},this);},toElement:function(){return this.element;},empty:function(){this.body.empty();return this;},set:function(what,items){var target=(what=='headers')?'tHead':'tFoot';this[target.toLowerCase()]=(document.id(this.element[target])||new Element(target.toLowerCase()).inject(this.element,'top')).empty();var data=this.push(items,{},this[target.toLowerCase()],what=='headers'?'th':'td');if(what=='headers')this.head=document.id(this.thead.rows[0]);else this.foot=document.id(this.thead.rows[0]);return data;},setHeaders:function(headers){this.set('headers',headers);return this;},setFooters:function(footers){this.set('footers',footers);return this;},push:function(row,rowProperties,target,tag){if(typeOf(row)=="element"&&row.get('tag')=='tr'){row.inject(target||this.body);return{tr:row,tds:row.getChildren('td')};}
var tds=row.map(function(data){var td=new Element(tag||'td',data?data.properties:{}),type=(data?data.content:'')||data,element=document.id(type);if(typeOf(type)!='string'&&element)td.adopt(element);else td.set('html',type);return td;});return{tr:new Element('tr',rowProperties).inject(target||this.body).adopt(tds),tds:tds};}});HtmlTable=Class.refactor(HtmlTable,{options:{classZebra:'table-tr-odd',zebra:true},initialize:function(){this.previous.apply(this,arguments);if(this.occluded)return this.occluded;if(this.options.zebra)this.updateZebras();},updateZebras:function(){Array.each(this.body.rows,this.zebra,this);},zebra:function(row,i){return row[((i%2)?'remove':'add')+'Class'](this.options.classZebra);},push:function(){var pushed=this.previous.apply(this,arguments);if(this.options.zebra)this.updateZebras();return pushed;}});HtmlTable=Class.refactor(HtmlTable,{options:{sortIndex:0,sortReverse:false,parsers:[],defaultParser:'string',classSortable:'table-sortable',classHeadSort:'table-th-sort',classHeadSortRev:'table-th-sort-rev',classNoSort:'table-th-nosort',classGroupHead:'table-tr-group-head',classGroup:'table-tr-group',classCellSort:'table-td-sort',classSortSpan:'table-th-sort-span',sortable:false},initialize:function(){this.previous.apply(this,arguments);if(this.occluded)return this.occluded;this.sorted={index:null,dir:1};this.bound={headClick:this.headClick.bind(this)};this.sortSpans=new Elements();if(this.options.sortable){this.enableSort();if(this.options.sortIndex!=null)this.sort(this.options.sortIndex,this.options.sortReverse);}},attachSorts:function(attach){this.element.removeEvents('click:relay(th)');this.element[attach!==false?'addEvent':'removeEvent']('click:relay(th)',this.bound.headClick);},setHeaders:function(){this.previous.apply(this,arguments);if(this.sortEnabled)this.detectParsers();},detectParsers:function(force){if(!this.head)return;var parsers=this.options.parsers,rows=this.body.rows;this.parsers=$$(this.head.cells).map(function(cell,index){if(!force&&(cell.hasClass(this.options.classNoSort)||cell.retrieve('htmltable-parser')))return cell.retrieve('htmltable-parser');var thDiv=new Element('div');Array.each(cell.childNodes,function(node){thDiv.adopt(node);});thDiv.inject(cell);var sortSpan=new Element('span',{'html':'&#160;','class':this.options.classSortSpan}).inject(thDiv,'top');this.sortSpans.push(sortSpan);var parser=parsers[index],cancel;switch(typeOf(parser)){case'function':parser={convert:parser};cancel=true;break;case'string':parser=parser;cancel=true;break;}
if(!cancel){Object.some(HtmlTable.Parsers,function(current){var match=current.match;if(!match)return false;for(var i=0,j=rows.length;i<j;i++){var cell=document.id(rows[i].cells[index]);var text=cell?cell.get('html').clean():'';if(text&&match.test(text)){parser=current;return true;}}});}
if(!parser)parser=this.options.defaultParser;cell.store('htmltable-parser',parser);return parser;},this);},headClick:function(event,el){if(!this.head||el.hasClass(this.options.classNoSort))return;var index=Array.indexOf(this.head.cells,el);this.sort(index);return false;},sort:function(index,reverse,pre){if(!this.head)return;var classCellSort=this.options.classCellSort;var classGroup=this.options.classGroup,classGroupHead=this.options.classGroupHead;if(!pre){if(index!=null){if(this.sorted.index==index){this.sorted.reverse=!(this.sorted.reverse);}else{if(this.sorted.index!=null){this.sorted.reverse=false;this.head.cells[this.sorted.index].removeClass(this.options.classHeadSort).removeClass(this.options.classHeadSortRev);}else{this.sorted.reverse=true;}
this.sorted.index=index;}}else{index=this.sorted.index;}
if(reverse!=null)this.sorted.reverse=reverse;var head=document.id(this.head.cells[index]);if(head){head.addClass(this.options.classHeadSort);if(this.sorted.reverse)head.addClass(this.options.classHeadSortRev);else head.removeClass(this.options.classHeadSortRev);}
this.body.getElements('td').removeClass(this.options.classCellSort);}
var parser=this.parsers[index];if(typeOf(parser)=='string')parser=HtmlTable.Parsers[parser];if(!parser)return;if(!Browser.ie){var rel=this.body.getParent();this.body.dispose();}
var data=Array.map(this.body.rows,function(row,i){var value=parser.convert.call(document.id(row.cells[index]));return{position:i,value:value,toString:function(){return value.toString();}};},this);data.reverse(true);data.sort(function(a,b){if(a.value===b.value)return 0;return a.value>b.value?1:-1;});if(!this.sorted.reverse)data.reverse(true);var i=data.length,body=this.body;var j,position,entry,group;while(i){var item=data[--i];position=item.position;var row=body.rows[position];if(row.disabled)continue;if(!pre){if(group===item.value){row.removeClass(classGroupHead).addClass(classGroup);}else{group=item.value;row.removeClass(classGroup).addClass(classGroupHead);}
if(this.options.zebra)this.zebra(row,i);row.cells[index].addClass(classCellSort);}
body.appendChild(row);for(j=0;j<i;j++){if(data[j].position>position)data[j].position--;}};data=null;if(rel)rel.grab(body);return this.fireEvent('sort',[body,index]);},reSort:function(){if(this.sortEnabled)this.sort.call(this,this.sorted.index,this.sorted.reverse);return this;},enableSort:function(){this.element.addClass(this.options.classSortable);this.attachSorts(true);this.detectParsers();this.sortEnabled=true;return this;},disableSort:function(){this.element.removeClass(this.options.classSortable);this.attachSorts(false);this.sortSpans.each(function(span){span.destroy();});this.sortSpans.empty();this.sortEnabled=false;return this;}});HtmlTable.Parsers={'date':{match:/^\d{2}[-\/ ]\d{2}[-\/ ]\d{2,4}$/,convert:function(){var d=Date.parse(this.get('text').stripTags());return(typeOf(d)=='date')?d.format('db'):'';},type:'date'},'input-checked':{match:/ type="(radio|checkbox)" /,convert:function(){return this.getElement('input').checked;}},'input-value':{match:/<input/,convert:function(){return this.getElement('input').value;}},'number':{match:/^\d+[^\d.,]*$/,convert:function(){return this.get('text').stripTags().toInt();},number:true},'numberLax':{match:/^[^\d]+\d+$/,convert:function(){return this.get('text').replace(/[^-?^0-9]/,'').stripTags().toInt();},number:true},'float':{match:/^[\d]+\.[\d]+/,convert:function(){return this.get('text').replace(/[^-?^\d.]/,'').stripTags().toFloat();},number:true},'floatLax':{match:/^[^\d]+[\d]+\.[\d]+$/,convert:function(){return this.get('text').replace(/[^-?^\d.]/,'').stripTags();},number:true},'string':{match:null,convert:function(){return this.get('text').stripTags();}},'title':{match:null,convert:function(){return this.title;}}};HtmlTable.defineParsers=function(parsers){HtmlTable.Parsers=Object.append(HtmlTable.Parsers,parsers);};(function(){var Keyboard=this.Keyboard=new Class({Extends:Events,Implements:[Options],options:{defaultEventType:'keydown',active:false,manager:null,events:{},nonParsedEvents:['activate','deactivate','onactivate','ondeactivate','changed','onchanged']},initialize:function(options){if(options&&options.manager){this.manager=options.manager;delete options.manager;}
this.setOptions(options);this.setup();},setup:function(){this.addEvents(this.options.events);if(Keyboard.manager&&!this.manager)Keyboard.manager.manage(this);if(this.options.active)this.activate();},handle:function(event,type){if(event.preventKeyboardPropagation)return;var bubbles=!!this.manager;if(bubbles&&this.activeKB){this.activeKB.handle(event,type);if(event.preventKeyboardPropagation)return;}
this.fireEvent(type,event);if(!bubbles&&this.activeKB)this.activeKB.handle(event,type);},addEvent:function(type,fn,internal){return this.parent(Keyboard.parse(type,this.options.defaultEventType,this.options.nonParsedEvents),fn,internal);},removeEvent:function(type,fn){return this.parent(Keyboard.parse(type,this.options.defaultEventType,this.options.nonParsedEvents),fn);},toggleActive:function(){return this[this.isActive()?'deactivate':'activate']();},activate:function(instance){if(instance){if(instance.isActive())return this;if(this.activeKB&&instance!=this.activeKB){this.previous=this.activeKB;this.previous.fireEvent('deactivate');}
this.activeKB=instance.fireEvent('activate');Keyboard.manager.fireEvent('changed');}else if(this.manager){this.manager.activate(this);}
return this;},isActive:function(){return this.manager?(this.manager.activeKB==this):(Keyboard.manager==this);},deactivate:function(instance){if(instance){if(instance===this.activeKB){this.activeKB=null;instance.fireEvent('deactivate');Keyboard.manager.fireEvent('changed');}}else if(this.manager){this.manager.deactivate(this);}
return this;},relinquish:function(){if(this.isActive()&&this.manager&&this.manager.previous)this.manager.activate(this.manager.previous);},manage:function(instance){if(instance.manager&&instance.manager!=Keyboard.manager&&this!=Keyboard.manager)instance.manager.drop(instance);this.instances.push(instance);instance.manager=this;if(!this.activeKB)this.activate(instance);},_disable:function(instance){if(this.activeKB==instance)this.activeKB=null;},drop:function(instance){this._disable(instance);this.instances.erase(instance);Keyboard.manager.manage(instance);if(this.activeKB==instance&&this.previous&&this.instances.contains(this.previous))this.activate(this.previous);},instances:[],trace:function(){Keyboard.trace(this);},each:function(fn){Keyboard.each(this,fn);}});var parsed={};var modifiers=['shift','control','alt','meta'];var regex=/^(?:shift|control|ctrl|alt|meta)$/;Keyboard.parse=function(type,eventType,ignore){if(ignore&&ignore.contains(type.toLowerCase()))return type;type=type.toLowerCase().replace(/^(keyup|keydown):/,function($0,$1){eventType=$1;return'';});if(!parsed[type]){var key,mods={};type.split('+').each(function(part){if(regex.test(part))mods[part]=true;else key=part;});mods.control=mods.control||mods.ctrl;var keys=[];modifiers.each(function(mod){if(mods[mod])keys.push(mod);});if(key)keys.push(key);parsed[type]=keys.join('+');}
return eventType+':keys('+parsed[type]+')';};Keyboard.each=function(keyboard,fn){var current=keyboard||Keyboard.manager;while(current){fn.run(current);current=current.activeKB;}};Keyboard.stop=function(event){event.preventKeyboardPropagation=true;};Keyboard.manager=new Keyboard({active:true});Keyboard.trace=function(keyboard){keyboard=keyboard||Keyboard.manager;var hasConsole=window.console&&console.log;if(hasConsole)console.log('the following items have focus: ');Keyboard.each(keyboard,function(current){if(hasConsole)console.log(document.id(current.widget)||current.wiget||current);});};var handler=function(event){var keys=[];modifiers.each(function(mod){if(event[mod])keys.push(mod);});if(!regex.test(event.key))keys.push(event.key);Keyboard.manager.handle(event,event.type+':keys('+keys.join('+')+')');};document.addEvents({'keyup':handler,'keydown':handler});})();Keyboard.prototype.options.nonParsedEvents.combine(['rebound','onrebound']);Keyboard.implement({addShortcut:function(name,shortcut){this.shortcuts=this.shortcuts||[];this.shortcutIndex=this.shortcutIndex||{};shortcut.getKeyboard=Function.from(this);shortcut.name=name;this.shortcutIndex[name]=shortcut;this.shortcuts.push(shortcut);if(shortcut.keys)this.addEvent(shortcut.keys,shortcut.handler);return this;},addShortcuts:function(obj){for(var name in obj)this.addShortcut(name,obj[name]);return this;},removeShortcut:function(name){var shortcut=this.getShortcut(name);if(shortcut&&shortcut.keys){this.removeEvent(shortcut.keys,shortcut.handler);delete this.shortcutIndex[name];this.shortcuts.erase(shortcut);}
return this;},removeShortcuts:function(names){names.each(this.removeShortcut,this);return this;},getShortcuts:function(){return this.shortcuts||[];},getShortcut:function(name){return(this.shortcutIndex||{})[name];}});Keyboard.rebind=function(newKeys,shortcuts){Array.from(shortcuts).each(function(shortcut){shortcut.getKeyboard().removeEvent(shortcut.keys,shortcut.handler);shortcut.getKeyboard().addEvent(newKeys,shortcut.handler);shortcut.keys=newKeys;shortcut.getKeyboard().fireEvent('rebound');});};Keyboard.getActiveShortcuts=function(keyboard){var activeKBS=[],activeSCS=[];Keyboard.each(keyboard,[].push.bind(activeKBS));activeKBS.each(function(kb){activeSCS.extend(kb.getShortcuts());});return activeSCS;};Keyboard.getShortcut=function(name,keyboard,opts){opts=opts||{};var shortcuts=opts.many?[]:null,set=opts.many?function(kb){var shortcut=kb.getShortcut(name);if(shortcut)shortcuts.push(shortcut);}:function(kb){if(!shortcuts)shortcuts=kb.getShortcut(name);};Keyboard.each(keyboard,set);return shortcuts;};Keyboard.getShortcuts=function(name,keyboard){return Keyboard.getShortcut(name,keyboard,{many:true});};HtmlTable=Class.refactor(HtmlTable,{options:{useKeyboard:true,classRowSelected:'table-tr-selected',classRowHovered:'table-tr-hovered',classSelectable:'table-selectable',shiftForMultiSelect:true,allowMultiSelect:true,selectable:false},initialize:function(){this.previous.apply(this,arguments);if(this.occluded)return this.occluded;this._selectedRows=new Elements();this._bound={mouseleave:this._mouseleave.bind(this),clickRow:this._clickRow.bind(this)};if(this.options.selectable)this.enableSelect();},enableSelect:function(){this._selectEnabled=true;this._attachSelects();this.element.addClass(this.options.classSelectable);},disableSelect:function(){this._selectEnabled=false;this._attachSelects(false);this.element.removeClass(this.options.classSelectable);},push:function(){var ret=this.previous.apply(this,arguments);this._updateSelects();return ret;},isSelected:function(row){return this._selectedRows.contains(row);},toggleRow:function(row){return this[(this.isSelected(row)?'de':'')+'selectRow'](row);},selectRow:function(row,_nocheck){if(this.isSelected(row)||(!_nocheck&&!this.body.getChildren().contains(row)))return;if(!this.options.allowMultiSelect)this.selectNone();if(!this.isSelected(row)){this._selectedRows.push(row);row.addClass(this.options.classRowSelected);this.fireEvent('rowFocus',[row,this._selectedRows]);}
this._focused=row;document.clearSelection();return this;},deselectRow:function(row,_nocheck){if(!this.isSelected(row)||(!_nocheck&&!this.body.getChildren().contains(row)))return;this._selectedRows=new Elements(Array.from(this._selectedRows).erase(row));row.removeClass(this.options.classRowSelected);this.fireEvent('rowUnfocus',[row,this._selectedRows]);return this;},selectAll:function(selectNone){if(!selectNone&&!this.options.allowMultiSelect)return;this.selectRange(0,this.body.rows.length,selectNone);return this;},selectNone:function(){return this.selectAll(true);},selectRange:function(startRow,endRow,_deselect){if(!this.options.allowMultiSelect&&!_deselect)return;var method=_deselect?'deselectRow':'selectRow',rows=Array.clone(this.body.rows);if(typeOf(startRow)=='element')startRow=rows.indexOf(startRow);if(typeOf(endRow)=='element')endRow=rows.indexOf(endRow);endRow=endRow<rows.length-1?endRow:rows.length-1;if(endRow<startRow){var tmp=startRow;startRow=endRow;endRow=tmp;}
for(var i=startRow;i<=endRow;i++)this[method](rows[i],true);return this;},deselectRange:function(startRow,endRow){this.selectRange(startRow,endRow,true);},_enterRow:function(row){if(this._hovered)this._hovered=this._leaveRow(this._hovered);this._hovered=row.addClass(this.options.classRowHovered);},_leaveRow:function(row){row.removeClass(this.options.classRowHovered);},_updateSelects:function(){Array.each(this.body.rows,function(row){var binders=row.retrieve('binders');if((binders&&this._selectEnabled)||(!binders&&!this._selectEnabled))return;if(!binders){binders={mouseenter:this._enterRow.pass([row],this),mouseleave:this._leaveRow.pass([row],this)};row.store('binders',binders).addEvents(binders);}else{row.removeEvents(binders);}},this);},_shiftFocus:function(offset,event){if(!this._focused)return this.selectRow(this.body.rows[0],event);var to=this._getRowByOffset(offset);if(to===null||this._focused==this.body.rows[to])return this;this.toggleRow(this.body.rows[to],event);},_clickRow:function(event,row){var selecting=(event.shift||event.meta||event.control)&&this.options.shiftForMultiSelect;if(!selecting&&!(event.rightClick&&this.isSelected(row)&&this.options.allowMultiSelect))this.selectNone();if(event.rightClick)this.selectRow(row);else this.toggleRow(row);if(event.shift){this.selectRange(this._rangeStart||this.body.rows[0],row,this._rangeStart?!this.isSelected(row):true);this._focused=row;}
this._rangeStart=row;},_getRowByOffset:function(offset){if(!this._focused)return 0;var rows=Array.clone(this.body.rows),index=rows.indexOf(this._focused)+offset;if(index<0)index=null;if(index>=rows.length)index=null;return index;},_attachSelects:function(attach){attach=attach!=null?attach:true;var method=attach?'addEvents':'removeEvents';this.element[method]({mouseleave:this._bound.mouseleave});this.body[method]({'click:relay(tr)':this._bound.clickRow,'contextmenu:relay(tr)':this._bound.clickRow});if(this.options.useKeyboard||this.keyboard){if(!this.keyboard){var timer,held;var move=function(offset){var mover=function(e){clearTimeout(timer);e.preventDefault();var to=this.body.rows[this._getRowByOffset(offset)];if(e.shift&&to&&this.isSelected(to)){this.deselectRow(this._focused);this._focused=to;}else{if(to&&(!this.options.allowMultiSelect||!e.shift)){this.selectNone();}
this._shiftFocus(offset,e);}
if(held){timer=mover.delay(100,this,e);}else{timer=(function(){held=true;mover(e);}).delay(400);}}.bind(this);return mover;}.bind(this);var clear=function(){clearTimeout(timer);held=false;};this.keyboard=new Keyboard({events:{'keydown:shift+up':move(-1),'keydown:shift+down':move(1),'keyup:shift+up':clear,'keyup:shift+down':clear,'keyup:up':clear,'keyup:down':clear},active:true});var shiftHint='';if(this.options.allowMultiSelect&&this.options.shiftForMultiSelect&&this.options.useKeyboard){shiftHint=" (Shift multi-selects).";}
this.keyboard.addShortcuts({'Select Previous Row':{keys:'up',shortcut:'up arrow',handler:move(-1),description:'Select the previous row in the table.'+shiftHint},'Select Next Row':{keys:'down',shortcut:'down arrow',handler:move(1),description:'Select the next row in the table.'+shiftHint}});}
this.keyboard[attach?'activate':'deactivate']();}
this._updateSelects();},_mouseleave:function(){if(this._hovered)this._leaveRow(this._hovered);}});var Scroller=new Class({Implements:[Events,Options],options:{area:20,velocity:1,onChange:function(x,y){this.element.scrollTo(x,y);},fps:50},initialize:function(element,options){this.setOptions(options);this.element=document.id(element);this.docBody=document.id(this.element.getDocument().body);this.listener=(typeOf(this.element)!='element')?this.docBody:this.element;this.timer=null;this.bound={attach:this.attach.bind(this),detach:this.detach.bind(this),getCoords:this.getCoords.bind(this)};},start:function(){this.listener.addEvents({mouseenter:this.bound.attach,mouseleave:this.bound.detach});return this;},stop:function(){this.listener.removeEvents({mouseenter:this.bound.attach,mouseleave:this.bound.detach});this.detach();this.timer=clearInterval(this.timer);return this;},attach:function(){this.listener.addEvent('mousemove',this.bound.getCoords);},detach:function(){this.listener.removeEvent('mousemove',this.bound.getCoords);this.timer=clearInterval(this.timer);},getCoords:function(event){this.page=(this.listener.get('tag')=='body')?event.client:event.page;if(!this.timer)this.timer=this.scroll.periodical(Math.round(1000/this.options.fps),this);},scroll:function(){var size=this.element.getSize(),scroll=this.element.getScroll(),pos=this.element!=this.docBody?this.element.getOffsets():{x:0,y:0},scrollSize=this.element.getScrollSize(),change={x:0,y:0},top=this.options.area.top||this.options.area,bottom=this.options.area.bottom||this.options.area;for(var z in this.page){if(this.page[z]<(top+pos[z])&&scroll[z]!=0){change[z]=(this.page[z]-top-pos[z])*this.options.velocity;}else if(this.page[z]+bottom>(size[z]+pos[z])&&scroll[z]+size[z]!=scrollSize[z]){change[z]=(this.page[z]-size[z]+bottom-pos[z])*this.options.velocity;}
change[z]=change[z].round();}
if(change.y||change.x)this.fireEvent('change',[scroll.x+change.x,scroll.y+change.y]);}});(function(){var read=function(option,element){return(option)?(typeOf(option)=='function'?option(element):element.get(option)):'';};this.Tips=new Class({Implements:[Events,Options],options:{onShow:function(){this.tip.setStyle('display','block');},onHide:function(){this.tip.setStyle('display','none');},title:'title',text:function(element){return element.get('rel')||element.get('href');},showDelay:100,hideDelay:100,className:'tip-wrap',offset:{x:16,y:16},windowPadding:{x:0,y:0},fixed:false},initialize:function(){var params=Array.link(arguments,{options:Type.isObject,elements:function(obj){return obj!=null;}});this.setOptions(params.options);if(params.elements)this.attach(params.elements);this.container=new Element('div',{'class':'tip'});},toElement:function(){if(this.tip)return this.tip;this.tip=new Element('div',{'class':this.options.className,styles:{position:'absolute',top:0,left:0}}).adopt(new Element('div',{'class':'tip-top'}),this.container,new Element('div',{'class':'tip-bottom'}));return this.tip;},attach:function(elements){$$(elements).each(function(element){var title=read(this.options.title,element),text=read(this.options.text,element);element.set('title','').store('tip:native',title).retrieve('tip:title',title);element.retrieve('tip:text',text);this.fireEvent('attach',[element]);var events=['enter','leave'];if(!this.options.fixed)events.push('move');events.each(function(value){var event=element.retrieve('tip:'+value);if(!event)event=function(event){this['element'+value.capitalize()].apply(this,[event,element]);}.bind(this);element.store('tip:'+value,event).addEvent('mouse'+value,event);},this);},this);return this;},detach:function(elements){$$(elements).each(function(element){['enter','leave','move'].each(function(value){element.removeEvent('mouse'+value,element.retrieve('tip:'+value)).eliminate('tip:'+value);});this.fireEvent('detach',[element]);if(this.options.title=='title'){var original=element.retrieve('tip:native');if(original)element.set('title',original);}},this);return this;},elementEnter:function(event,element){this.container.empty();['title','text'].each(function(value){var content=element.retrieve('tip:'+value);if(content)this.fill(new Element('div',{'class':'tip-'+value}).inject(this.container),content);},this);clearTimeout(this.timer);this.timer=(function(){this.show(element);this.position((this.options.fixed)?{page:element.getPosition()}:event);}).delay(this.options.showDelay,this);},elementLeave:function(event,element){clearTimeout(this.timer);this.timer=this.hide.delay(this.options.hideDelay,this,element);this.fireForParent(event,element);},fireForParent:function(event,element){element=element.getParent();if(!element||element==document.body)return;if(element.retrieve('tip:enter'))element.fireEvent('mouseenter',event);else this.fireForParent(event,element);},elementMove:function(event,element){this.position(event);},position:function(event){if(!this.tip)document.id(this);var size=window.getSize(),scroll=window.getScroll(),tip={x:this.tip.offsetWidth,y:this.tip.offsetHeight},props={x:'left',y:'top'},bounds={y:false,x2:false,y2:false,x:false},obj={};for(var z in props){obj[props[z]]=event.page[z]+this.options.offset[z];if(obj[props[z]]<0)bounds[z]=true;if((obj[props[z]]+tip[z]-scroll[z])>size[z]-this.options.windowPadding[z]){obj[props[z]]=event.page[z]-this.options.offset[z]-tip[z];bounds[z+'2']=true;}}
this.fireEvent('bound',bounds);this.tip.setStyles(obj);},fill:function(element,contents){if(typeof contents=='string')element.set('html',contents);else element.adopt(contents);},show:function(element){if(!this.tip)document.id(this);if(!this.tip.getParent())this.tip.inject(document.body);this.fireEvent('show',[this.tip,element]);},hide:function(element){if(!this.tip)document.id(this);this.fireEvent('hide',[this.tip,element]);}});})();(function(){var parsers={'json':JSON.decode};Locale.Set.defineParser=function(name,fn){parsers[name]=fn;};Locale.Set.from=function(set,type){if(instanceOf(set,Locale.Set))return set;if(!type&&typeOf(set)=='string')type='json';if(parsers[type])set=parsers[type](set);locale=new Locale.Set;locale.sets=set.sets||{};if(set.inherits){locale.inherits.locales=Array.from(set.inherits.locales);locale.inherits.sets=set.inherits.sets||{};}
return locale;}})();Locale.define('de-DE','Date',{months:['Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'],months_abbr:['Jan','Feb','Mär','Apr','Mai','Jun','Jul','Aug','Sep','Okt','Nov','Dez'],days:['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],days_abbr:['So.','Mo.','Di.','Mi.','Do.','Fr.','Sa.'],dateOrder:['date','month','year'],shortDate:'%d.%m.%Y',shortTime:'%H:%M',AM:'vormittags',PM:'nachmittags',ordinal:'.',lessThanMinuteAgo:'vor weniger als einer Minute',minuteAgo:'vor einer Minute',minutesAgo:'vor {delta} Minuten',hourAgo:'vor einer Stunde',hoursAgo:'vor {delta} Stunden',dayAgo:'vor einem Tag',daysAgo:'vor {delta} Tagen',weekAgo:'vor einer Woche',weeksAgo:'vor {delta} Wochen',monthAgo:'vor einem Monat',monthsAgo:'vor {delta} Monaten',yearAgo:'vor einem Jahr',yearsAgo:'vor {delta} Jahren',lessThanMinuteUntil:'in weniger als einer Minute',minuteUntil:'in einer Minute',minutesUntil:'in {delta} Minuten',hourUntil:'in ca. einer Stunde',hoursUntil:'in ca. {delta} Stunden',dayUntil:'in einem Tag',daysUntil:'in {delta} Tagen',weekUntil:'in einer Woche',weeksUntil:'in {delta} Wochen',monthUntil:'in einem Monat',monthsUntil:'in {delta} Monaten',yearUntil:'in einem Jahr',yearsUntil:'in {delta} Jahren'});Locale.define('de-CH').inherit('de-DE','Date');Locale.define('de-CH','FormValidator',{required:'Dieses Feld ist obligatorisch.',minLength:'Geben Sie bitte mindestens {minLength} Zeichen ein (Sie haben {length} Zeichen eingegeben).',maxLength:'Bitte geben Sie nicht mehr als {maxLength} Zeichen ein (Sie haben {length} Zeichen eingegeben).',integer:'Geben Sie bitte eine ganze Zahl ein. Dezimalzahlen (z.B. 1.25) sind nicht erlaubt.',numeric:'Geben Sie bitte nur Zahlenwerte in dieses Eingabefeld ein (z.B. &quot;1&quot;, &quot;1.1&quot;, &quot;-1&quot; oder &quot;-1.1&quot;).',digits:'Benutzen Sie bitte nur Zahlen und Satzzeichen in diesem Eingabefeld (erlaubt ist z.B. eine Telefonnummer mit Bindestrichen und Punkten).',alpha:'Benutzen Sie bitte nur Buchstaben (a-z) in diesem Feld. Leerzeichen und andere Zeichen sind nicht erlaubt.',alphanum:'Benutzen Sie bitte nur Buchstaben (a-z) und Zahlen (0-9) in diesem Eingabefeld. Leerzeichen und andere Zeichen sind nicht erlaubt.',dateSuchAs:'Geben Sie bitte ein g&uuml;ltiges Datum ein. Wie zum Beispiel {date}',dateInFormatMDY:'Geben Sie bitte ein g&uuml;ltiges Datum ein. Wie zum Beispiel TT.MM.JJJJ (z.B. &quot;31.12.1999&quot;)',email:'Geben Sie bitte eine g&uuml;ltige E-Mail Adresse ein. Wie zum Beispiel &quot;maria@bernasconi.ch&quot;.',url:'Geben Sie bitte eine g&uuml;ltige URL ein. Wie zum Beispiel http://www.google.ch.',currencyDollar:'Geben Sie bitte einen g&uuml;ltigen Betrag in Schweizer Franken ein. Wie zum Beispiel 100.00 CHF .',oneRequired:'Machen Sie f&uuml;r mindestens eines der Eingabefelder einen Eintrag.',errorPrefix:'Fehler: ',warningPrefix:'Warnung: ',noSpace:'In diesem Eingabefeld darf kein Leerzeichen sein.',reqChkByNode:'Es wurden keine Elemente gew&auml;hlt.',requiredChk:'Dieses Feld ist obligatorisch.',reqChkByName:'Bitte w&auml;hlen Sie ein {label}.',match:'Dieses Eingabefeld muss mit dem Feld {matchName} &uuml;bereinstimmen.',startDate:'Das Anfangsdatum',endDate:'Das Enddatum',currendDate:'Das aktuelle Datum',afterDate:'Das Datum sollte zur gleichen Zeit oder sp&auml;ter sein {label}.',beforeDate:'Das Datum sollte zur gleichen Zeit oder fr&uuml;her sein {label}.',startMonth:'W&auml;hlen Sie bitte einen Anfangsmonat',sameMonth:'Diese zwei Datumsangaben m&uuml;ssen im selben Monat sein - Sie m&uuml;ssen eine von beiden ver&auml;ndern.',creditcard:'Die eingegebene Kreditkartennummer ist ung&uuml;ltig. Bitte &uuml;berpr&uuml;fen Sie diese und versuchen Sie es erneut. {length} Zahlen eingegeben.'});Locale.define('de-DE','FormValidator',{required:'Dieses Eingabefeld muss ausgef&uuml;llt werden.',minLength:'Geben Sie bitte mindestens {minLength} Zeichen ein (Sie haben nur {length} Zeichen eingegeben).',maxLength:'Geben Sie bitte nicht mehr als {maxLength} Zeichen ein (Sie haben {length} Zeichen eingegeben).',integer:'Geben Sie in diesem Eingabefeld bitte eine ganze Zahl ein. Dezimalzahlen (z.B. &quot;1.25&quot;) sind nicht erlaubt.',numeric:'Geben Sie in diesem Eingabefeld bitte nur Zahlenwerte (z.B. &quot;1&quot;, &quot;1.1&quot;, &quot;-1&quot; oder &quot;-1.1&quot;) ein.',digits:'Geben Sie in diesem Eingabefeld bitte nur Zahlen und Satzzeichen ein (z.B. eine Telefonnummer mit Bindestrichen und Punkten ist erlaubt).',alpha:'Geben Sie in diesem Eingabefeld bitte nur Buchstaben (a-z) ein. Leerzeichen und andere Zeichen sind nicht erlaubt.',alphanum:'Geben Sie in diesem Eingabefeld bitte nur Buchstaben (a-z) und Zahlen (0-9) ein. Leerzeichen oder andere Zeichen sind nicht erlaubt.',dateSuchAs:'Geben Sie bitte ein g&uuml;ltiges Datum ein (z.B. &quot;{date}&quot;).',dateInFormatMDY:'Geben Sie bitte ein g&uuml;ltiges Datum im Format TT.MM.JJJJ ein (z.B. &quot;31.12.1999&quot;).',email:'Geben Sie bitte eine g&uuml;ltige E-Mail-Adresse ein (z.B. &quot;max@mustermann.de&quot;).',url:'Geben Sie bitte eine g&uuml;ltige URL ein (z.B. &quot;http://www.google.de&quot;).',currencyDollar:'Geben Sie bitte einen g&uuml;ltigen Betrag in EURO ein (z.B. 100.00&#8364;).',oneRequired:'Bitte f&uuml;llen Sie mindestens ein Eingabefeld aus.',errorPrefix:'Fehler: ',warningPrefix:'Warnung: ',noSpace:'Es darf kein Leerzeichen in diesem Eingabefeld sein.',reqChkByNode:'Es wurden keine Elemente gew&auml;hlt.',requiredChk:'Dieses Feld muss ausgef&uuml;llt werden.',reqChkByName:'Bitte w&auml;hlen Sie ein {label}.',match:'Dieses Eingabefeld muss mit dem {matchName} Eingabefeld &uuml;bereinstimmen.',startDate:'Das Anfangsdatum',endDate:'Das Enddatum',currendDate:'Das aktuelle Datum',afterDate:'Das Datum sollte zur gleichen Zeit oder sp&auml;ter sein als {label}.',beforeDate:'Das Datum sollte zur gleichen Zeit oder fr&uuml;her sein als {label}.',startMonth:'W&auml;hlen Sie bitte einen Anfangsmonat',sameMonth:'Diese zwei Datumsangaben m&uuml;ssen im selben Monat sein - Sie m&uuml;ssen eines von beiden ver&auml;ndern.',creditcard:'Die eingegebene Kreditkartennummer ist ung&uuml;ltig. Bitte &uuml;berpr&uuml;fen Sie diese und versuchen Sie es erneut. {length} Zahlen eingegeben.'});Locale.define('EU','Number',{decimal:',',group:'.',currency:{prefix:'€ '}});Locale.define('de-DE').inherit('EU','Number');var Media=new Class({Implements:Options,options:{flowplayerSwf:'flowplayer.swf',flowplayerAudioSwf:'flowplayer.audio.swf',flowplayerControlsSwf:'flowplayer.controls.swf',servers:[]},THEORA_FORMAT:'video/ogg; codecs=\'theora, vorbis\'',H264_FORMAT:'video/mp4; codecs=\'avc1.42E01E, mp4a.40.2\'',VORBIS_FORMAT:'audio/ogg; codecs=\'vorbis\'',M4A_FORMAT:'audio/x-m4a;',MP3_FORMAT:'audio/mpeg;',WAV_FORMAT:'audio/wav; codecs=\'1\'',initialize:function(){var tmpMediaProperties={videoWidth:false,videoHeight:false,poster:true,error:false,networkState:false,preload:true,buffered:false,readyState:false,seeking:false,currentTime:true,startTime:false,duration:false,paused:true,defaultPlaybackRate:true,playbackRate:true,played:false,seekable:false,ended:false,autoplay:true,loop:true,controls:true,volume:true,muted:true,autobuffer:true};Object.each(tmpMediaProperties,function(is_writable,key){if(is_writable){Element.Properties.set(key,{set:function(avalue){try{this[key]=avalue;}catch(e){}},get:function(){try{return this[key];}catch(e){}}});}else{Element.Properties.set(key,{get:function(){try{return this[key];}catch(e){}}});}});Element.NativeEvents=$merge(Element.NativeEvents,{loadstart:2,progress:2,suspend:2,abort:2,error:2,emptied:2,stalled:2,play:2,pause:2,loadedmetadata:2,loadeddata:2,waiting:2,playing:2,canplay:2,canplaythrough:2,seeking:2,seeked:2,timeupdate:2,ended:2,ratechange:2,durationchange:2,volumechange:2});if(!document.createElement('video').canPlayType){["abbr","article","aside","audio","canvas","details","figcaption","figure","footer","header","hgroup","mark","menu","meter","nav","output","progress","section","summary","time","video","source"].each(function(name){document.createElement(name);});}
this.isAndroid=navigator.userAgent.toLowerCase().search("android")>-1;this.initHost();this.initFormats();},init:function(options){this.setOptions(options);window.addEvent('domready',this.initElements.bind(this));},initHost:function(){this.hostUrl=window.location.protocol+"//"+window.location.host;var baseUrl=String(window.location);$$("base").each(function(element){if(element.href){baseUrl=element.href;}});this.baseUrl=this.dirname(baseUrl);},initFormats:function(){this.assumedFormats={video:this.H264_FORMAT,audio:this.MP3_FORMAT}
this.fallbackFormats=[this.H264_FORMAT,this.M4A_FORMAT,this.MP3_FORMAT];this.fileExtensions={video:{"ogg":this.THEORA_FORMAT,"ogv":this.THEORA_FORMAT,"avi":this.H264_FORMAT,"mp4":this.H264_FORMAT,"mkv":this.H264_FORMAT,"h264":this.H264_FORMAT,"264":this.H264_FORMAT,"avc":this.H264_FORMAT,"m4v":this.H264_FORMAT,"3gp":this.H264_FORMAT,"3gpp":this.H264_FORMAT,"3g2":this.H264_FORMAT,"mpg":this.H264_FORMAT,"mpeg":this.H264_FORMAT},audio:{"ogg":this.VORBIS_FORMAT,"oga":this.VORBIS_FORMAT,"aac":this.M4A_FORMAT,"m4a":this.M4A_FORMAT,"mp3":this.MP3_FORMAT,"wav":this.WAV_FORMAT}}},initElements:function(){$$('video').each(function(videoElement){new Media.Video(videoElement,{},true);});$$('audio').each(function(audioElement){new Media.Audio(audioElement,{},true);});},guessFormat:function(tag,src,type){return type||this.fileExtensions[tag][src.split(".").slice(-1)[0]]||this.assumedFormats[tag];},hasAttr:function(element,attr){var val=element.getAttribute(attr);return val==true||typeof val=="string";},dirname:function(path){return path.split("/").slice(0,-1).join("/")+"/";},fixPath:function(url,balance){if(url.substr(0,1)=="/"){return(balance?this.getServer():this.hostUrl)+url;}
if(url.substr(0,1)=="."||!url.match(/^\s*\w+:\/\//)){return this.baseUrl+url;}
return url;},getServer:function(){var len=this.options.servers.length;if(len){if(len>1){return this.options.servers[Number.random(0,this.options.servers.length-1)];}else{return this.options.servers[0];}}else{return this.hostUrl;}},getMimeType:function(format){return format.match(/\s*([\w-]+\/[\w-]+)(;|\s|$)/)[1];},formatMatches:function(format1,format2){return(this.getMimeType(format1)==this.getMimeType(format2));},browserIsFine:function(){if(Browser.firefox){return false;}
return true;}});Media.Base=new Class({Implements:[Options,Events],options:{src:{},hidden:false,width:0,height:0,poster:false,autoplay:false,preload:false,controls:true,mute:false,events:{}},element:null,replacement:null,api:null,mediaType:'',initialize:function(element,options){this.element=$(element);this.setOptions(options);if(this.options.hidden){element.setStyles({'position':'absolute','visibility':'hidden','overflow':'hidden','width':1,'height':1,'z-index':-1});}
Object.each(this.options.events,function(evt,key){this.addEvent(key,evt);},this);if(element.get('tag')==this.mediaType){this.element=element;this.setOptionsFromElement(element);}else{this.element=this.createMediaElement(element);}
var requiresFallback=true;if($M.browserIsFine()){if(this.element.canPlayType){if(this.element.src){if(this.canPlayFormat($M.guessFormat(this.mediaType,element.src))){requiresFallback=false;}}else{element.getElements('source').each(function(source){if(this.canPlayFormat($M.guessFormat(this.mediaType,source.src,source.type))){requiresFallback=false;}},this);}}}
if(requiresFallback){this.createFallback(this.mediaType,this.element);}else{this.api=new Media.Api.Html5(this,this.element);if($M.isAndroid){this.element.addEventListener("click",function(){this.element.play();},false);}}},placeholder:null,removeFromDom:function(){if(!this.placeholder){this.placeholder=new Element('span');}
this.placeholder.inject(this.element,'after');this.element.dispose();},reinject:function(){if(this.placeholder){this.element.inject(this.placeholder,'after');this.placeholder.dispose();}},getPlayerElement:function(){if(this.replacement){return this.replacement;}else{return this.element;}},getPlayerContainer:function(){return this.getPlayerElement().getParent('div');},canPlayFormat:function(format){return this.element.canPlayType(format)||($M.isAndroid&&format.search("mp4")>-1);},createFallback:function(){debug.log('createFallback');var src=this.element.getAttribute("src")||"";var format;if(!src){this.element.getElements("source").each(function(source){var srcValue=source.get("src");if(srcValue&&!src){$M.fallbackFormats.each(function(fallbackFormat){format=$M.guessFormat(this.mediaType,srcValue,source.get("type"));if($M.formatMatches(format,fallbackFormat)){src=srcValue;}},this);}},this);}else{format=$M.guessFormat(this.mediaType,src);}
if(this.options.width&&this.options.height){var size={x:this.options.width,y:this.options.height};}else{var size=this.element.getSize();if(size.x==0||size.y==0){var size=this.getPlayerContainer().getSize();}}
this.replacement=new Element('div',{'id':this.element.get('id'),'class':[this.element.get('class'),this.mediaType].join(' '),'styles':{'display':'block','width':size.x,'height':size.y}});this.element.parentNode.replaceChild(this.replacement,this.element);var flowplayerControls=null;var playlist=[];if(this.options.poster){playlist.push({url:$M.fixPath(this.options.poster)});}
if(src){playlist.push({url:$M.fixPath(src,true),autoPlay:this.options.autoplay,autoBuffering:this.options.preload,onBeforeFinish:function(){return!$M.hasAttr(this.element,"loop");}});}
var plugins={controls:this.options.controls&&{url:$M.fixPath($M.options.flowplayerControlsSwf),autoHide:this.mediaType=='video'&&{enabled:true,fullscreenOnly:false,hideDelay:4000,hideDuration:500,hideStyle:'fade',mouseOutDelay:500}||"never",opacity:.95,height:25,background:'#313131 url(/media/res/img/media/VideoControls.png) repeat-x 0 0',backgroundGradient:'none',progressColor:'#111111',progressGradient:'none',bufferColor:'#111111',bufferGradient:'none',sliderColor:'#666666',sliderGradient:'none',sliderBorderColor:'#333333',volumeSliderColor:'#111111',volumeSliderGradient:'none',volumeColor:'#111111',volumeGradient:'low',volumeBorder:'none',buttonColor:'#eeeeee',buttonOverColor:'#ffffff',scrubberHeightRatio:0.4,scrubberBarHeightRatio:1.1,volumeSliderHeightRatio:0.4,volumeBarHeightRatio:1.1,volumeBorderColor:'#333333',timeBgHeightRatio:0.7,timeFontSize:10,play:true,volume:true,mute:true,time:true,stop:false,fastBackward:true,fullscreen:true,scrubber:true,tooltips:{buttons:true,play:'Abspielen',pause:'Pause',mute:'Lautlos',unmute:'Lautlos abschalten',fastBackward:'Zurück',fullscreen:'Vollbild',fullscreenExit:'Vollbildmodus verlassen'}}||null}
if($M.formatMatches(format,$M.MP3_FORMAT)){plugins["audio"]={url:$M.fixPath($M.options.flowplayerAudioSwf)}
if(!this.options.controls){plugins["controls"]={url:$M.fixPath($M.options.flowplayerControlsSwf),display:'none'}}
playlist.slice(-1)[0].autoBuffering=false;}
var config={play:null,playlist:playlist,onError:function(){this.fireEvent('error');}.bind(this),onLoad:function(){this.fireEvent('loadeddata');}.bind(this),onVolume:function(){this.fireEvent('volumechange');}.bind(this),onMute:function(){this.fireEvent('volumechange');}.bind(this),onUnmute:function(){this.fireEvent('volumechange');}.bind(this),clip:{scaling:"fit",fadeInSpeed:0,fadeOutSpeed:0,onBegin:function(){this.fireEvent('loadstart');}.bind(this),onStart:function(){this.fireEvent('play');}.bind(this),onPause:function(){this.fireEvent('pause');}.bind(this),onResume:function(){this.fireEvent('play');}.bind(this),onFinish:function(){this.fireEvent('ended');}.bind(this),onBufferFull:function(){this.fireEvent('loadeddata').fireEvent('canplay');}.bind(this),onBufferEmpty:function(){this.fireEvent('waiting').fireEvent('emptied').fireEvent('stalled').fireEvent('suspend');}.bind(this),onSeek:function(){this.fireEvent('seeking').fireEvent('seeked').fireEvent('timeupdate');}.bind(this)},plugins:plugins}
debug.log(config);this.player=flowplayer(this.replacement,{src:$M.fixPath($M.options.flowplayerSwf),wmode:"opaque"},config);this.api=new Media.Api.Flowplayer(this,this.player);},setOptionsFromElement:function(element){var options={controls:($M.hasAttr(element,"controls")&&element.get('controls')!='false'),autoplay:($M.hasAttr(element,"autoplay")&&element.get('autoplay')!='false'),preload:($M.hasAttr(element,"preload")&&element.get('preload')!='none')||$M.hasAttr(element,"autobuffer"),poster:element.get("poster")||false,src:{'default':element.get("src")||null}};if(!options.src['default']){element.getElements("source").each(function(source,i){this.options.src[i]=source.get("src");},this);}
this.setOptions(options);},createMediaElement:function(container){var element=new Element(this.mediaType,{styles:{width:this.options.width,height:this.options.height},width:this.options.width,height:this.options.height}).inject(container);if(this.options.poster){element.set('poster',this.options.poster);}
if(this.options.controls){element.set('controls','true');}
if(this.options.autoplay){element.set('preload','all');element.set('autoplay','true');}else if(this.options.preload){element.set('preload','all');}else{element.set('preload','none');}
Object.each(this.options.src,function(src,key){if(src){var ext=src.split(".").slice(-1)[0];if(Browser.safari&&ext=='ogv'){return;}
var source=new Element('source',{src:$M.fixPath(src,true),type:$M.guessFormat(this.mediaType,src)}).inject(element);}},this);return element;},play:function(pos){this.api.play(pos)},pause:function(){this.api.pause()},stop:function(){this.api.stop()},seek:function(pos){this.api.seek(pos)},mute:function(pos){this.api.mute()},setVolume:function(vol){this.api.setVolume(vol)}});Media.Api=new Class({player:null,obj:null,initialize:function(obj,player){this.obj=obj;this.player=player;this.initEvents();}});Media.Api.Flowplayer=new Class({Extends:Media.Api,initEvents:function(){},play:function(pos){debug.log('play at pos '+pos);if(pos!==undefined){var stat=this.player.getStatus();if(stat.bufferEnd>=pos&&stat.time!=pos){this.seek(pos);}}
this.player.play();},pause:function(){this.player.pause();},stop:function(){this.player.stop();},seek:function(pos){this.player.seek(pos);},mute:function(){this.player.mute();},setVolume:function(vol){this.player.setVolume(vol);}});Media.Api.Html5=new Class({Extends:Media.Api,initEvents:function(){[['click','click'],['loadstart','loadstart'],['progress','progress'],['suspend','suspend'],['abort','abort'],['error','error'],['emptied','emptied'],['stalled','stalled'],['play','play'],['pause','pause'],['loadedmetadata','loadedmetadata'],['loadeddata','loadeddata'],['waiting','waiting'],['playing','playing'],['canplay','canplay'],['seeking','seeking'],['seeked','seeked'],['timeupdate','timeupdate'],['ended','ended'],['volumechange','volumechange'],['mouseenter','mouseenter'],['mouseleave','mouseleave'],['mousemove','mousemove']].each(function(evt){this.player.addEvent(evt[0],function(e){this.obj.fireEvent(evt[1],e);}.bind(this));},this);},play:function(pos){if(pos){this.seek(pos);}
this.player.play();},pause:function(){this.player.pause();},stop:function(){this.player.pause();this.seek(0);},seek:function(pos){this.player.set('currentTime',pos);},mute:function(){this.player.set('mute',true);},setVolume:function(vol){this.player.set('mute',false);this.player.set('volume',vol/100);}});Media.Audio=new Class({Extends:Media.Base,mediaType:'audio',initialize:function(element,options){this.parent(element,options);}});Media.Video=new Class({Extends:Media.Base,mediaType:'video',initialize:function(element,options){this.parent(element,options);this.createPlayOverlay();},createPlayOverlay:function(){var container=this.getPlayerContainer();container.setStyle('position','relative');var className=container.getSize().y<300?'VideoPlayButtonOverlaySmall':'VideoPlayButtonOverlay';this.playOverlay=new Element('a',{'class':className,'styles':{'display':'block','position':'absolute','top':0,'left':0,'bottom':0,'right':0,'z-index':1,'cursor':'pointer'}}).inject(container);this.playOverlay.addEvent('click',this.play.bind(this));this.addEvents({'play':this.hidePlayOverlay.bind(this),'pause':this.showPlayOverlay.bind(this),'ended':this.showPlayOverlay.bind(this)});if(this.options.mute){this.addEvent('play',function(){this.api.mute();}.bind(this));}},hidePlayOverlay:function(){this.playOverlay.hide();},showPlayOverlay:function(){this.playOverlay.show();}});var $M=new Media();var ElementFilter=new Class({Implements:[Options,Events],options:{cache:true,caseSensitive:false,ignoreKeys:[13,27,32,37,38,39,40],matchAnywhere:true,matchAllIfBlank:true,property:'text',trigger:'mouseup',onStart:$empty,onShow:$empty,onHide:$empty,onComplete:$empty},initialize:function(observeElement,elements,options){this.setOptions(options);this.observeElement=$(observeElement);this.elements=$$(elements);this.matches=this.elements;this.misses=[];this.listen();},listen:function(){this.observeElement.addEvent(this.options.trigger,this.listening.bind(this));this.listening();},listening:function(e){if(this.observeElement.value.length||this.options.matchAllIfBlank){if(!e||!this.options.ignoreKeys.contains(e.code)){this.fireEvent('start');this.findMatches(this.options.cache?this.matches:this.elements);this.fireEvent('complete');}}
else{this.findMatches(this.elements,false);}},findMatches:function(elements,matchOverride){var value=this.observeElement.value;var regExpPattern=this.options.matchAnywhere?value:'^'+value;var regExpAttrs=this.options.caseSensitive?'':'i';var filter=new RegExp(regExpPattern,regExpAttrs);var matches=[];elements.each(function(el){var match=(matchOverride==undefined?filter.test(el.get(this.options.property)):matchOverride);if(match){if(!el.retrieve('showing')){this.fireEvent('show',[el]);}
matches.push(el);el.store('showing',true);}
else{if(el.retrieve('showing')){this.fireEvent('hide',[el]);}
el.store('showing',false);}
return true;}.bind(this));return matches;}});var CheckedListBox=new Class({Implements:[Options],options:{replaceOriginal:false,selectedBox:false,searchable:false},clearListSearchInput:function(){if(this.options.searchable){this.listSearchInput.set('value','').fireEvent('keyup').focus();}},addSelected:function(el){el.getParent("li").addClass("cidsi-checked");},removeSelected:function(el){el.getParent("li").removeClass("cidsi-checked");},initialize:function(input,opt){if(input.get("tag")=="select"&&input.get("multiple")){this.setOptions(opt);var clearListSearchInput=this.clearListSearchInput.bind(this);var addSelected=this.addSelected.bind(this);var removeSelected=this.removeSelected.bind(this);var aliasOptions=$A(input.options).map(function(el){var chb=new Element("input",{type:"checkbox",checked:el.selected});if(this.options.replaceOriginal){chb.setProperties({value:el.value,name:input.name}).addEvent("change",function(){this.checked?addSelected(this):removeSelected(this);});}else{chb.addEvent("change",function(){el.selected=this.checked;this.checked?addSelected(this):removeSelected(this);});}
return new Element("li").addClass(chb.getProperty("checked")?"cidsi-checked":"").adopt(new Element("label",{title:el.text,text:el.text}).grab(chb,"top"));}.bind(this));this.alias=new Element("div",{"class":"CheckedListBoxContainer"});var cssClass="CheckedListBox";if(this.options.searchable){cssClass="CheckedListBox CheckedListBoxSearchable";}
if(this.options.replaceOriginal){var listId=input.id;}else{var listId=input.id+"_cidsi";}
this.aliasList=new Element("ul",{"class":cssClass,"id":listId,styles:$merge(input.getStyles("width","height","float","margin","padding"),{"overflow":"auto","list-style":"none"})}).adopt(aliasOptions).inject(this.alias);if(this.options.searchable){this.listSearchInputDiv=new Element('div',{'class':'CheckedListBoxSearchWrap'}).inject(this.alias,'top');this.listSearchInput=new Element('input',{'type':'text','class':'CheckedListBoxSearch'}).inject(this.listSearchInputDiv);}
if(this.options.replaceOriginal){this.alias.replaces(input);}else{this.alias.inject(input,"after");input.addEvent("change",function(){this.getElements("option").each(function(el){aliasOptions[el.index].getElement("input").checked=el.selected;});})
input.setStyles({position:"absolute",left:-99999,opacity:0.001}).set("tabindex",-1);}
if(this.options.searchable){var listFilter=new ElementFilter(this.listSearchInput,'#'+listId+' li',{trigger:'keyup',cache:true,onShow:function(element){element.addClass('cidsi-match');},onHide:function(element){element.removeClass('cidsi-match');}});}
if(Browser.Engine.trident){this.aliasList.getElements("label, input").addEvent("click",function(){this.blur()});}}},toElement:function(){return this.alias;}});Tips.Steady=new Class({Extends:Tips,attach:function(elements){$$(elements).each(function(element){var content=$(element.get('rel'));element.store('tip:text',content);this.fireEvent('attach',[element]);var event=element.retrieve('tip:'+'click');if(!event)event=function(event){this['elementClick'].apply(this,[event,element]);}.bind(this);element.store('tip:click',event).addEvent('click',event);},this);return this;},elementClick:function(event,element){event.stop();this.hide();this.elementEnter(event,element);this.boundCloseEvent=this.closeEvent.bind(this);window.addEvent('click',this.boundCloseEvent);window.addEvent('keyup',this.boundCloseEvent);},boundCloseEvent:null,closeEvent:function(e){if(e.key=='esc'||(!e.target.hasClass('.tip-wrap')&&!e.target.getParent('.tip-wrap'))){this.close();}},close:function(){window.removeEvent('click',this.boundCloseClick);window.removeEvent('keyup',this.boundCloseKeyup);this.hide();}});Array.implement({intersection:function(array){var result=[];for(var i=0,l=this.length;i<l;i++){if(array.contains(this[i]))result.push(this[i])}
return result;}});Element.implement({toJSON:function(){var json={};this.getElements('input, select, textarea',true).each(function(el){if(!el.name||el.disabled||el.type=='submit'||el.type=='reset'||el.type=='file')return;var value=(el.tagName.toLowerCase()=='select')?Element.getSelected(el).map(function(opt){return opt.value;}):((el.type=='radio'||el.type=='checkbox')&&!el.checked)?null:el.value;$splat(value).each(function(val){if(typeof val!='undefined'){json[el.name]=val;}});});return json;}});var Concealable=new Class({Implements:Options,options:{key:null,elements:[],toggles:[],onLabel:'less',offLabel:'more',slide:true,hiddenByDefault:false,onShow:function(){},onHide:function(){},cookieOptions:{domain:document.domain,path:'/',duration:356}},hidden:0,initialize:function(options){this.setOptions(options);this.options.elements.each(function(el){el.set('slide');});this.readCookie();if(this.hidden){this.hide(true);}else{this.show(true);}
if(this.options.toggles.length){this.options.toggles.each(function(el){el.addEvent('click',this.toggle.bind(this));}.bind(this));}},toggle:function(){if(this.hidden)this.show();else this.hide();},hide:function(initial){this.hidden=1;this.writeCookie();if(this.options.slide&&!initial){this.options.elements.each(function(el){el.slide('out');});}else{this.options.elements.each(function(el){el.slide('hide');});}
if(this.options.toggles.length){this.options.toggles.each(function(el){el.set('html',this.options.offLabel);}.bind(this));}
this.options.onHide(initial);},show:function(initial){this.hidden=0;this.writeCookie();if(this.options.slide&&!initial){this.options.elements.each(function(el){el.slide('in');});}else{this.options.elements.each(function(el){el.slide('show');});}
if(this.options.toggles.length){this.options.toggles.each(function(el){el.set('html',this.options.onLabel);}.bind(this));}
this.options.onShow(initial);},readCookie:function(){this.hidden=Cookie.read('Concealable_'+this.options.key);if(this.hidden!=null&&this.hidden!=undefined){this.hidden=this.hidden.toInt();}else{this.hidden=this.options.hiddenByDefault?1:0;}},writeCookie:function(){Cookie.write('Concealable_'+this.options.key,this.hidden);}});var Redux=new Class({initialize:function(){if($$('.redux').length==0){return false;}
$('Submenu').addEvent('mouseenter',function(){$$('.reduxable').setStyles({'display':'block'});$$('.reduxHint').setStyles({'display':'none'});});$$('.Content')[0].addEvent('mouseenter',function(){$$('.reduxable').setStyles({'display':'none'});$$('.reduxHint').setStyles({'display':'block'});});}});window.addEvent('domready',function(){var _redux=new Redux();});var BoundValueFields=new Class({fields:[],initialize:function(fields){this.fields=fields;this.fields.each(function(field){if(field){field.addEvent('change',function(){this.onChange(field.get('value'));}.bind(this));}}.bind(this));},onChange:function(value){this.fields.each(function(field){if(field){field.set('value',value);}}.bind(this));}});var PhotoBooth=new Class({Implements:Options,options:{save:'/',next:'/',callBacks:{}},container:null,obj:null,initialize:function(container,options){this.container=container;this.setOptions(options);return this;},render:function(){this.obj=new Swiff('/media/res/swf/PhotoBooth/PhotoBooth.swf',{id:'PhotoBoothSWF',width:240,height:295,params:{wmode:'opaque',bgcolor:'#ffffff'},vars:{save:this.options.save,next:this.options.next},callBacks:this.options.callBacks}).inject(this.container.empty());return this;}});var Tabs=new Class({Implements:Options,options:{autoActivateFirstTab:true},container:null,bar:null,addedTabs:0,initialize:function(container,options){this.setOptions(options);this.container=container;this.container.addClass('TabsTabbed')
this.bar=new Element('ul',{'class':'Tabs'}).inject(this.container,'before');},autoAddTabs:function(){var tabElements=this.container.getChildren('div');tabElements.each(this.addTab.bind(this));return this;},addTab:function(tabElement,events){if(tabElement.retrieve('isTab')==true)return;tabElement.store('isTab',true);var title=tabElement.get('title');title=title?title:'Tab';var tab=new Element('li',{'id':tabElement.get('id')+'_Tab'}).inject(this.bar);tabElement.store('tabController',this);tabElement.store('tab',tab);tabElement.store('tabEvents',events);tabElement.set('slide').slide('hide');new Element('a',{'href':'javascript:;','html':title,'events':{'click':this.onTabClick.bind(this)}}).store('tabElement',tabElement).inject(tab);if(this.addedTabs==0&&this.options.autoActivateFirstTab){this.activate(tabElement,true);}
this.addedTabs++;return this;},onTabClick:function(e){this.activate(e.target.retrieve('tabElement'));},activate:function(tabElement,init){var activeTabElement=this.container.getElement('.activeTab');if(activeTabElement){var activeTabEvents=activeTabElement.retrieve('tabEvents');if(activeTabEvents&&activeTabEvents.deactivate)activeTabEvents.deactivate.run();activeTabElement.removeClass('activeTab');}
this.bar.getElements('.activeTab').removeClass('activeTab');var tab=tabElement.retrieve('tab');var tabEvents=tabElement.retrieve('tabEvents');if(tabEvents&&tabEvents.activate)tabEvents.activate.run();tab.addClass('activeTab');tabElement.addClass('activeTab');if(init){if(activeTabElement)activeTabElement.slide('hide');tabElement.slide('show');}else{if(activeTabElement)activeTabElement.slide('out');tabElement.slide('in');}
return this;}});var TabActivate=function(el){var controller=el.retrieve('tabController');if(controller){controller.activate(el);}};var ModeSwitcher=new Class({Implements:Options,options:{targets:[],buttons:[],initialState:'',activeButtonClass:'active',inactiveButtonClass:'inactive',cookieKey:false},initialize:function(options){this.setOptions(options);this.options.buttons.each(function(button){button[0].addEvent('click',function(){this.switchMode(button[1]);}.bind(this));}.bind(this));if(this.options.cookieKey){var c=Cookie.read('ModeSwitcher_'+this.options.cookieKey);if(c&&c.length)this.options.initialState=c;}
if(this.options.initialState.length){this.switchMode(this.options.initialState);}},switchMode:function(classname){if(this.options.cookieKey){Cookie.write('ModeSwitcher_'+this.options.cookieKey,classname);}
this.options.buttons.each(function(button){if(classname==button[1]){button[0].addClass(this.options.activeButtonClass);button[0].removeClass(this.options.inactiveButtonClass);this.options.targets.each(function(t){t.addClass(button[1]);});if(button[2]){button[2]();}}else{button[0].removeClass(this.options.activeButtonClass);button[0].addClass(this.options.inactiveButtonClass);this.options.targets.each(function(t){t.removeClass(button[1]);});}}.bind(this));}});var Mediabox;(function(){var options,images,activeImage,prevImage,nextImage,top,mTop,left,mLeft,winWidth,winHeight,fx,preload,preloadPrev=new Image(),preloadNext=new Image(),foxfix=false,iefix=false,overlay,center,image,bottom,captionSplit,title,caption,prevLink,number,nextLink,URL,WH,WHL,elrel,mediaWidth,mediaHeight,mediaType="none",mediaSplit,mediaId="mediaBox",mediaFmt;window.addEvent("domready",function(){document.id(document.body).adopt($$([overlay=new Element("div",{id:"mbOverlay"}).addEvent("click",close),center=new Element("div",{id:"mbCenter"})]).setStyle("display","none"));image=new Element("div",{id:"mbImage"}).inject(center);bottom=new Element("div",{id:"mbBottom"}).inject(center).adopt(closeLink=new Element("a",{id:"mbCloseLink",href:"#"}).addEvent("click",close),nextLink=new Element("a",{id:"mbNextLink",href:"#"}).addEvent("click",next),prevLink=new Element("a",{id:"mbPrevLink",href:"#"}).addEvent("click",previous),title=new Element("div",{id:"mbTitle"}),number=new Element("div",{id:"mbNumber"}),caption=new Element("div",{id:"mbCaption"}));fx={overlay:new Fx.Tween(overlay,{property:"opacity",duration:360}).set(0),image:new Fx.Tween(image,{property:"opacity",duration:360,onComplete:captionAnimate}),bottom:new Fx.Tween(bottom,{property:"opacity",duration:240}).set(0)};});Mediabox={close:function(){close();},open:function(_images,startImage,_options){options=$extend({text:['<big>&laquo;</big>','<big>&raquo;</big>','<big>&times;</big>'],loop:false,keyboard:true,alpha:true,stopKey:false,overlayOpacity:0.7,resizeOpening:true,resizeDuration:240,resizeTransition:false,initialWidth:320,initialHeight:180,defaultWidth:640,defaultHeight:360,showCaption:true,showCounter:true,counterText:'({x} von {y})',imgBackground:false,imgPadding:100,scriptaccess:'true',fullscreen:'true',fullscreenNum:'1',autoplay:'true',autoplayNum:'1',autoplayYes:'yes',volume:'100',medialoop:'true',bgcolor:'#000000',wmode:'opaque',useNB:true,playerpath:'/js/NonverBlaster.swf',controlColor:'0xFFFFFF',controlBackColor:'0x000000',showTimecode:'false',JWplayerpath:'/js/player.swf',backcolor:'000000',frontcolor:'999999',lightcolor:'000000',screencolor:'000000',controlbar:'over',controller:'true',flInfo:'true',revverID:'187866',revverFullscreen:'true',revverBack:'000000',revverFront:'ffffff',revverGrad:'000000',usViewers:'true',ytBorder:'0',ytColor1:'000000',ytColor2:'333333',ytQuality:'&ap=%2526fmt%3D18',ytRel:'0',ytInfo:'1',ytSearch:'0',vuPlayer:'basic',vmTitle:'1',vmByline:'1',vmPortrait:'1',vmColor:'ffffff'},_options||{});prevLink.set('html',options.text[0]);nextLink.set('html',options.text[1]);closeLink.set('html',options.text[2]);if((Browser.Engine.gecko)&&(Browser.Engine.version<19)){foxfix=true;options.overlayOpacity=1;overlay.className='mbOverlayFF';}
if((Browser.Engine.trident)&&(Browser.Engine.version<5)){iefix=true;overlay.className='mbOverlayIE';overlay.setStyle("position","absolute");position();}
if(typeof _images=="string"){_images=[[_images,startImage,_options]];startImage=0;}
images=_images;options.loop=options.loop&&(images.length>1);size();setup(true);top=window.getScrollTop()+(window.getHeight()/2);left=window.getScrollLeft()+(window.getWidth()/2);fx.resize=new Fx.Morph(center,$extend({duration:options.resizeDuration,onComplete:imageAnimate},options.resizeTransition?{transition:options.resizeTransition}:{}));center.setStyles({top:top,left:left,width:options.initialWidth,height:options.initialHeight,marginTop:-(options.initialHeight/2),marginLeft:-(options.initialWidth/2),display:""});fx.overlay.start(options.overlayOpacity);return changeImage(startImage);}};Element.implement({mediabox:function(_options,linkMapper){$$(this).mediabox(_options,linkMapper);return this;}});Elements.implement({mediabox:function(_options,linkMapper,linksFilter){linkMapper=linkMapper||function(el){elrel=el.rel.split(/[\[\]]/);elrel=elrel[1];return[el.href,el.title,elrel];};linksFilter=linksFilter||function(){return true;};var links=this;links.addEvent('contextmenu',function(e){if(this.toString().match(/\.gif|\.jpg|\.jpeg|\.png/i))e.stop();});links.removeEvents("click").addEvent("click",function(){var filteredArray=links.filter(linksFilter,this);var filteredLinks=[];var filteredHrefs=[];filteredArray.each(function(item,index){if(filteredHrefs.indexOf(item.toString())<0){filteredLinks.include(filteredArray[index]);filteredHrefs.include(filteredArray[index].toString());};});return Mediabox.open(filteredLinks.map(linkMapper),filteredHrefs.indexOf(this.toString()),_options);});return links;}});function position(){overlay.setStyles({top:window.getScrollTop(),left:window.getScrollLeft()});}
function size(){winWidth=window.getWidth();winHeight=window.getHeight();overlay.setStyles({width:winWidth,height:winHeight});}
function setup(open){if(Browser.Engine.gecko){["object",window.ie?"select":"embed"].forEach(function(tag){Array.forEach(document.getElementsByTagName(tag),function(el){if(open)el._mediabox=el.style.visibility;el.style.visibility=open?"hidden":el._mediabox;});});}
overlay.style.display=open?"":"none";var fn=open?"addEvent":"removeEvent";if(iefix)window[fn]("scroll",position);window[fn]("resize",size);if(options.keyboard)document[fn]("keydown",keyDown);}
function keyDown(event){if(options.alpha){switch(event.code){case 27:case 88:case 67:close();break;case 37:case 80:previous();break;case 39:case 78:next();}}else{switch(event.code){case 27:close();break;case 37:previous();break;case 39:next();}}
if(options.stopKey){return false;};}
function previous(){return changeImage(prevImage);}
function next(){return changeImage(nextImage);}
function changeImage(imageIndex){if(imageIndex>=0){image.set('html','');activeImage=imageIndex;prevImage=((activeImage||!options.loop)?activeImage:images.length)-1;nextImage=activeImage+1;if(nextImage==images.length)nextImage=options.loop?0:-1;stop();center.className="mbLoading";if(!images[imageIndex][2])images[imageIndex][2]='';WH=images[imageIndex][2].split(' ');WHL=WH.length;if(WHL>1){mediaWidth=(WH[WHL-2].match("%"))?(window.getWidth()*((WH[WHL-2].replace("%",""))*0.01))+"px":WH[WHL-2]+"px";mediaHeight=(WH[WHL-1].match("%"))?(window.getHeight()*((WH[WHL-1].replace("%",""))*0.01))+"px":WH[WHL-1]+"px";}else{mediaWidth="";mediaHeight="";}
URL=images[imageIndex][0];URL=encodeURI(URL).replace("(","%28").replace(")","%29");captionSplit=images[activeImage][1].split('::');if(URL.match(/quietube\.com/i)){mediaSplit=URL.split('v.php/');URL=mediaSplit[1];}else if(URL.match(/\/\/yfrog/i)){mediaType=(URL.substring(URL.length-1));if(mediaType.match(/b|g|j|p|t/i))mediaType='image';if(mediaType=='s')mediaType='flash';if(mediaType.match(/f|z/i))mediaType='video';URL=URL+":iphone";}
if(URL.match(/\.gif|\.jpg|\.jpeg|\.png|twitpic\.com/i)||mediaType=='image'){mediaType='img';URL=URL.replace(/twitpic\.com/i,"twitpic.com/show/full");preload=new Image();preload.onload=startEffect;preload.src=URL;}else if(URL.match(/\.flv|\.mp4/i)||mediaType=='video'){mediaType='obj';mediaWidth=mediaWidth||options.defaultWidth;mediaHeight=mediaHeight||options.defaultHeight;if(options.useNB){preload=new Swiff(''+options.playerpath+'?mediaURL='+URL+'&allowSmoothing=true&autoPlay='+options.autoplay+'&buffer=6&showTimecode='+options.showTimecode+'&loop='+options.medialoop+'&controlColor='+options.controlColor+'&controlBackColor='+options.controlBackColor+'&defaultVolume='+options.volume+'&scaleIfFullScreen=true&showScalingButton=true&crop=false',{id:'MediaboxSWF',width:mediaWidth,height:mediaHeight,params:{wmode:options.wmode,bgcolor:options.bgcolor,allowscriptaccess:options.scriptaccess,allowfullscreen:options.fullscreen}});}else{preload=new Swiff(''+options.JWplayerpath+'?file='+URL+'&backcolor='+options.backcolor+'&frontcolor='+options.frontcolor+'&lightcolor='+options.lightcolor+'&screencolor='+options.screencolor+'&autostart='+options.autoplay+'&controlbar='+options.controlbar,{id:'MediaboxSWF',width:mediaWidth,height:mediaHeight,params:{wmode:options.wmode,bgcolor:options.bgcolor,allowscriptaccess:options.scriptaccess,allowfullscreen:options.fullscreen}});}
startEffect();}else if(URL.match(/\.mp3|\.aac|tweetmic\.com|tmic\.fm/i)||mediaType=='audio'){mediaType='obj';mediaWidth=mediaWidth||options.defaultWidth;mediaHeight=mediaHeight||"20px";if(URL.match(/tweetmic\.com|tmic\.fm/i)){URL=URL.split('/');URL[4]=URL[4]||URL[3];URL="http://media4.fjarnet.net/tweet/tweetmicapp-"+URL[4]+'.mp3';}
if(options.useNB){preload=new Swiff(''+options.playerpath+'?mediaURL='+URL+'&allowSmoothing=true&autoPlay='+options.autoplay+'&buffer=6&showTimecode='+options.showTimecode+'&loop='+options.medialoop+'&controlColor='+options.controlColor+'&controlBackColor='+options.controlBackColor+'&defaultVolume='+options.volume+'&scaleIfFullScreen=true&showScalingButton=true&crop=false',{id:'MediaboxSWF',width:mediaWidth,height:mediaHeight,params:{wmode:options.wmode,bgcolor:options.bgcolor,allowscriptaccess:options.scriptaccess,allowfullscreen:options.fullscreen}});}else{preload=new Swiff(''+options.JWplayerpath+'?file='+URL+'&backcolor='+options.backcolor+'&frontcolor='+options.frontcolor+'&lightcolor='+options.lightcolor+'&screencolor='+options.screencolor+'&autostart='+options.autoplay,{id:'MediaboxSWF',width:mediaWidth,height:mediaHeight,params:{wmode:options.wmode,bgcolor:options.bgcolor,allowscriptaccess:options.scriptaccess,allowfullscreen:options.fullscreen}});}
startEffect();}else if(URL.match(/\.swf/i)||mediaType=='flash'){mediaType='obj';mediaWidth=mediaWidth||options.defaultWidth;mediaHeight=mediaHeight||options.defaultHeight;preload=new Swiff(URL,{id:'MediaboxSWF',width:mediaWidth,height:mediaHeight,params:{wmode:options.wmode,bgcolor:options.bgcolor,allowscriptaccess:options.scriptaccess,allowfullscreen:options.fullscreen}});startEffect();}else if(URL.match(/\.mov|\.m4v|\.m4a|\.aiff|\.avi|\.caf|\.dv|\.mid|\.m3u|\.mp3|\.mp2|\.mp4|\.qtz/i)||mediaType=='qt'){mediaType='qt';mediaWidth=mediaWidth||options.defaultWidth;mediaHeight=(parseInt(mediaHeight)+16)+"px"||options.defaultHeight;preload=new Quickie(URL,{id:'MediaboxQT',width:mediaWidth,height:mediaHeight,container:'mbImage',attributes:{controller:options.controller,autoplay:options.autoplay,volume:options.volume,loop:options.medialoop,bgcolor:options.bgcolor}});startEffect();}else if(URL.match(/blip\.tv/i)){mediaType='obj';mediaWidth=mediaWidth||"640px";mediaHeight=mediaHeight||"390px";preload=new Swiff(URL,{src:URL,width:mediaWidth,height:mediaHeight,params:{wmode:options.wmode,bgcolor:options.bgcolor,allowscriptaccess:options.scriptaccess,allowfullscreen:options.fullscreen}});startEffect();}else if(URL.match(/break\.com/i)){mediaType='obj';mediaWidth=mediaWidth||"464px";mediaHeight=mediaHeight||"376px";mediaId=URL.match(/\d{6}/g);preload=new Swiff('http://embed.break.com/'+mediaId,{width:mediaWidth,height:mediaHeight,params:{wmode:options.wmode,bgcolor:options.bgcolor,allowscriptaccess:options.scriptaccess,allowfullscreen:options.fullscreen}});startEffect();}else if(URL.match(/dailymotion\.com/i)){mediaType='obj';mediaWidth=mediaWidth||"480px";mediaHeight=mediaHeight||"381px";preload=new Swiff(URL,{id:mediaId,width:mediaWidth,height:mediaHeight,params:{wmode:options.wmode,bgcolor:options.bgcolor,allowscriptaccess:options.scriptaccess,allowfullscreen:options.fullscreen}});startEffect();}else if(URL.match(/facebook\.com/i)){mediaType='obj';mediaWidth=mediaWidth||"320px";mediaHeight=mediaHeight||"240px";mediaSplit=URL.split('v=');mediaSplit=mediaSplit[1].split('&');mediaId=mediaSplit[0];preload=new Swiff('http://www.facebook.com/v/'+mediaId,{movie:'http://www.facebook.com/v/'+mediaId,classid:'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000',width:mediaWidth,height:mediaHeight,params:{wmode:options.wmode,bgcolor:options.bgcolor,allowscriptaccess:options.scriptaccess,allowfullscreen:options.fullscreen}});startEffect();}else if(URL.match(/flickr\.com/i)){mediaType='obj';mediaWidth=mediaWidth||"500px";mediaHeight=mediaHeight||"375px";mediaSplit=URL.split('/');mediaId=mediaSplit[5];preload=new Swiff('http://www.flickr.com/apps/video/stewart.swf',{id:mediaId,classid:'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000',width:mediaWidth,height:mediaHeight,params:{flashvars:'photo_id='+mediaId+'&amp;show_info_box='+options.flInfo,wmode:options.wmode,bgcolor:options.bgcolor,allowscriptaccess:options.scriptaccess,allowfullscreen:options.fullscreen}});startEffect();}else if(URL.match(/gametrailers\.com/i)){mediaType='obj';mediaWidth=mediaWidth||"480px";mediaHeight=mediaHeight||"392px";mediaId=URL.match(/\d{5}/g);preload=new Swiff('http://www.gametrailers.com/remote_wrap.php?mid='+mediaId,{id:mediaId,width:mediaWidth,height:mediaHeight,params:{wmode:options.wmode,bgcolor:options.bgcolor,allowscriptaccess:options.scriptaccess,allowfullscreen:options.fullscreen}});startEffect();}else if(URL.match(/google\.com\/videoplay/i)){mediaType='obj';mediaWidth=mediaWidth||"400px";mediaHeight=mediaHeight||"326px";mediaSplit=URL.split('=');mediaId=mediaSplit[1];preload=new Swiff('http://video.google.com/googleplayer.swf?docId='+mediaId+'&autoplay='+options.autoplayNum,{id:mediaId,width:mediaWidth,height:mediaHeight,params:{wmode:options.wmode,bgcolor:options.bgcolor,allowscriptaccess:options.scriptaccess,allowfullscreen:options.fullscreen}});startEffect();}else if(URL.match(/megavideo\.com/i)){mediaType='obj';mediaWidth=mediaWidth||"640px";mediaHeight=mediaHeight||"360px";mediaSplit=URL.split('=');mediaId=mediaSplit[1];preload=new Swiff('http://wwwstatic.megavideo.com/mv_player.swf?v='+mediaId,{id:mediaId,width:mediaWidth,height:mediaHeight,params:{wmode:options.wmode,bgcolor:options.bgcolor,allowscriptaccess:options.scriptaccess,allowfullscreen:options.fullscreen}});startEffect();}else if(URL.match(/metacafe\.com\/watch/i)){mediaType='obj';mediaWidth=mediaWidth||"400px";mediaHeight=mediaHeight||"345px";mediaSplit=URL.split('/');mediaId=mediaSplit[4];preload=new Swiff('http://www.metacafe.com/fplayer/'+mediaId+'/.swf?playerVars=autoPlay='+options.autoplayYes,{id:mediaId,width:mediaWidth,height:mediaHeight,params:{wmode:options.wmode,bgcolor:options.bgcolor,allowscriptaccess:options.scriptaccess,allowfullscreen:options.fullscreen}});startEffect();}else if(URL.match(/vids\.myspace\.com/i)){mediaType='obj';mediaWidth=mediaWidth||"425px";mediaHeight=mediaHeight||"360px";preload=new Swiff(URL,{id:mediaId,width:mediaWidth,height:mediaHeight,params:{wmode:options.wmode,bgcolor:options.bgcolor,allowscriptaccess:options.scriptaccess,allowfullscreen:options.fullscreen}});startEffect();}else if(URL.match(/revver\.com/i)){mediaType='obj';mediaWidth=mediaWidth||"480px";mediaHeight=mediaHeight||"392px";mediaSplit=URL.split('/');mediaId=mediaSplit[4];preload=new Swiff('http://flash.revver.com/player/1.0/player.swf?mediaId='+mediaId+'&affiliateId='+options.revverID+'&allowFullScreen='+options.revverFullscreen+'&autoStart='+options.autoplay+'&backColor=#'+options.revverBack+'&frontColor=#'+options.revverFront+'&gradColor=#'+options.revverGrad+'&shareUrl=revver',{id:mediaId,width:mediaWidth,height:mediaHeight,params:{wmode:options.wmode,bgcolor:options.bgcolor,allowscriptaccess:options.scriptaccess,allowfullscreen:options.fullscreen}});startEffect();}else if(URL.match(/rutube\.ru/i)){mediaType='obj';mediaWidth=mediaWidth||"470px";mediaHeight=mediaHeight||"353px";mediaSplit=URL.split('=');mediaId=mediaSplit[1];preload=new Swiff('http://video.rutube.ru/'+mediaId,{movie:'http://video.rutube.ru/'+mediaId,width:mediaWidth,height:mediaHeight,params:{wmode:options.wmode,bgcolor:options.bgcolor,allowscriptaccess:options.scriptaccess,allowfullscreen:options.fullscreen}});startEffect();}else if(URL.match(/seesmic\.com/i)){mediaType='obj';mediaWidth=mediaWidth||"435px";mediaHeight=mediaHeight||"355px";mediaSplit=URL.split('/');mediaId=mediaSplit[5];preload=new Swiff('http://seesmic.com/Standalone.swf?video='+mediaId,{id:mediaId,width:mediaWidth,height:mediaHeight,params:{wmode:options.wmode,bgcolor:options.bgcolor,allowscriptaccess:options.scriptaccess,allowfullscreen:options.fullscreen}});startEffect();}else if(URL.match(/tudou\.com/i)){mediaType='obj';mediaWidth=mediaWidth||"400px";mediaHeight=mediaHeight||"340px";mediaSplit=URL.split('/');mediaId=mediaSplit[5];preload=new Swiff('http://www.tudou.com/v/'+mediaId,{width:mediaWidth,height:mediaHeight,params:{wmode:options.wmode,bgcolor:options.bgcolor,allowscriptaccess:options.scriptaccess,allowfullscreen:options.fullscreen}});startEffect();}else if(URL.match(/twitcam\.com/i)){mediaType='obj';mediaWidth=mediaWidth||"320px";mediaHeight=mediaHeight||"265px";mediaSplit=URL.split('/');mediaId=mediaSplit[3];preload=new Swiff('http://static.livestream.com/chromelessPlayer/wrappers/TwitcamPlayer.swf?hash='+mediaId,{width:mediaWidth,height:mediaHeight,params:{wmode:options.wmode,bgcolor:options.bgcolor,allowscriptaccess:options.scriptaccess,allowfullscreen:options.fullscreen}});startEffect();}else if(URL.match(/twitvid\.com/i)){mediaType='obj';mediaWidth=mediaWidth||"600px";mediaHeight=mediaHeight||"338px";mediaSplit=URL.split('/');mediaId=mediaSplit[3];preload=new Swiff('http://www.twitvid.com/player/'+mediaId,{width:mediaWidth,height:mediaHeight,params:{wmode:options.wmode,bgcolor:options.bgcolor,allowscriptaccess:options.scriptaccess,allowfullscreen:options.fullscreen}});startEffect();}else if(URL.match(/ustream\.tv/i)){mediaType='obj';mediaWidth=mediaWidth||"400px";mediaHeight=mediaHeight||"326px";preload=new Swiff(URL+'&amp;viewcount='+options.usViewers+'&amp;autoplay='+options.autoplay,{width:mediaWidth,height:mediaHeight,params:{wmode:options.wmode,bgcolor:options.bgcolor,allowscriptaccess:options.scriptaccess,allowfullscreen:options.fullscreen}});startEffect();}else if(URL.match(/youku\.com/i)){mediaType='obj';mediaWidth=mediaWidth||"480px";mediaHeight=mediaHeight||"400px";mediaSplit=URL.split('id_');mediaId=mediaSplit[1];preload=new Swiff('http://player.youku.com/player.php/sid/'+mediaId+'=/v.swf',{width:mediaWidth,height:mediaHeight,params:{wmode:options.wmode,bgcolor:options.bgcolor,allowscriptaccess:options.scriptaccess,allowfullscreen:options.fullscreen}});startEffect();}else if(URL.match(/youtube\.com\/watch/i)){mediaType='obj';mediaSplit=URL.split('v=');mediaId=mediaSplit[1];if(mediaId.match(/fmt=18/i)){mediaFmt='&ap=%2526fmt%3D18';mediaWidth=mediaWidth||"560px";mediaHeight=mediaHeight||"345px";}else if(mediaId.match(/fmt=22/i)){mediaFmt='&ap=%2526fmt%3D22';mediaWidth=mediaWidth||"640px";mediaHeight=mediaHeight||"385px";}else{mediaFmt=options.ytQuality;mediaWidth=mediaWidth||"480px";mediaHeight=mediaHeight||"295px";}
preload=new Swiff('http://www.youtube.com/v/'+mediaId+'&autoplay='+options.autoplayNum+'&fs='+options.fullscreenNum+mediaFmt+'&border='+options.ytBorder+'&color1=0x'+options.ytColor1+'&color2=0x'+options.ytColor2+'&rel='+options.ytRel+'&showinfo='+options.ytInfo+'&showsearch='+options.ytSearch,{id:mediaId,width:mediaWidth,height:mediaHeight,params:{wmode:options.wmode,bgcolor:options.bgcolor,allowscriptaccess:options.scriptaccess,allowfullscreen:options.fullscreen}});startEffect();}else if(URL.match(/youtube\.com\/view/i)){mediaType='obj';mediaSplit=URL.split('p=');mediaId=mediaSplit[1];mediaWidth=mediaWidth||"480px";mediaHeight=mediaHeight||"385px";preload=new Swiff('http://www.youtube.com/p/'+mediaId+'&autoplay='+options.autoplayNum+'&fs='+options.fullscreenNum+mediaFmt+'&border='+options.ytBorder+'&color1=0x'+options.ytColor1+'&color2=0x'+options.ytColor2+'&rel='+options.ytRel+'&showinfo='+options.ytInfo+'&showsearch='+options.ytSearch,{id:mediaId,width:mediaWidth,height:mediaHeight,params:{wmode:options.wmode,bgcolor:options.bgcolor,allowscriptaccess:options.scriptaccess,allowfullscreen:options.fullscreen}});startEffect();}else if(URL.match(/veoh\.com/i)){mediaType='obj';mediaWidth=mediaWidth||"410px";mediaHeight=mediaHeight||"341px";URL=URL.replace('%3D','/');mediaSplit=URL.split('watch/');mediaId=mediaSplit[1];preload=new Swiff('http://www.veoh.com/static/swf/webplayer/WebPlayer.swf?version=AFrontend.5.5.2.1001&permalinkId='+mediaId+'&player=videodetailsembedded&videoAutoPlay='+options.AutoplayNum+'&id=anonymous',{id:mediaId,width:mediaWidth,height:mediaHeight,params:{wmode:options.wmode,bgcolor:options.bgcolor,allowscriptaccess:options.scriptaccess,allowfullscreen:options.fullscreen}});startEffect();}else if(URL.match(/viddler\.com/i)){mediaType='obj';mediaWidth=mediaWidth||"437px";mediaHeight=mediaHeight||"370px";mediaSplit=URL.split('/');mediaId=mediaSplit[4];preload=new Swiff(URL,{id:'viddler_'+mediaId,movie:URL,classid:'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000',width:mediaWidth,height:mediaHeight,params:{wmode:options.wmode,bgcolor:options.bgcolor,allowscriptaccess:options.scriptaccess,allowfullscreen:options.fullscreen,id:'viddler_'+mediaId,movie:URL}});startEffect();}else if(URL.match(/viddyou\.com/i)){mediaType='obj';mediaWidth=mediaWidth||"416px";mediaHeight=mediaHeight||"312px";mediaSplit=URL.split('=');mediaId=mediaSplit[1];preload=new Swiff('http://www.viddyou.com/get/v2_'+options.vuPlayer+'/'+mediaId+'.swf',{id:mediaId,movie:'http://www.viddyou.com/get/v2_'+options.vuPlayer+'/'+mediaId+'.swf',width:mediaWidth,height:mediaHeight,params:{wmode:options.wmode,bgcolor:options.bgcolor,allowscriptaccess:options.scriptaccess,allowfullscreen:options.fullscreen}});startEffect();}else if(URL.match(/vimeo\.com/i)){mediaType='obj';mediaWidth=mediaWidth||"640px";mediaHeight=mediaHeight||"360px";mediaSplit=URL.split('/');mediaId=mediaSplit[3];preload=new Swiff('http://www.vimeo.com/moogaloop.swf?clip_id='+mediaId+'&amp;server=www.vimeo.com&amp;fullscreen='+options.fullscreenNum+'&amp;autoplay='+options.autoplayNum+'&amp;show_title='+options.vmTitle+'&amp;show_byline='+options.vmByline+'&amp;show_portrait='+options.vmPortrait+'&amp;color='+options.vmColor,{id:mediaId,width:mediaWidth,height:mediaHeight,params:{wmode:options.wmode,bgcolor:options.bgcolor,allowscriptaccess:options.scriptaccess,allowfullscreen:options.fullscreen}});startEffect();}else if(URL.match(/12seconds\.tv/i)){mediaType='obj';mediaWidth=mediaWidth||"430px";mediaHeight=mediaHeight||"360px";mediaSplit=URL.split('/');mediaId=mediaSplit[5];preload=new Swiff('http://embed.12seconds.tv/players/remotePlayer.swf',{id:mediaId,width:mediaWidth,height:mediaHeight,params:{flashvars:'vid='+mediaId+'',wmode:options.wmode,bgcolor:options.bgcolor,allowscriptaccess:options.scriptaccess,allowfullscreen:options.fullscreen}});startEffect();}else if(URL.match(/\#mb_/i)){mediaType='inline';mediaWidth=mediaWidth||options.defaultWidth;mediaHeight=mediaHeight||options.defaultHeight;URLsplit=URL.split('#');preload=document.id(URLsplit[1]).get('html');startEffect();}else{mediaType='url';mediaWidth=mediaWidth||options.defaultWidth;mediaHeight=mediaHeight||options.defaultHeight;mediaId="mediaId_"+new Date().getTime();preload=new Element('iframe',{'src':URL,'id':mediaId,'width':mediaWidth,'height':mediaHeight,'frameborder':0});startEffect();}}
return false;}
function startEffect(){if(mediaType=="img"){mediaWidth=preload.width;mediaHeight=preload.height;if(options.imgBackground){image.setStyles({backgroundImage:"url("+URL+")",display:""});}else{if(mediaHeight>=winHeight-options.imgPadding&&(mediaHeight/winHeight)>=(mediaWidth/winWidth)){mediaHeight=winHeight-options.imgPadding;mediaWidth=preload.width=parseInt((mediaHeight/preload.height)*mediaWidth);preload.height=mediaHeight;}else if(mediaWidth>=winWidth-options.imgPadding&&(mediaHeight/winHeight)<(mediaWidth/winWidth)){mediaWidth=winWidth-options.imgPadding;mediaHeight=preload.height=parseInt((mediaWidth/preload.width)*mediaHeight);preload.width=mediaWidth;}
if(Browser.Engine.trident)preload=document.id(preload);preload.addEvent('mousedown',function(e){e.stop();}).addEvent('contextmenu',function(e){e.stop();});image.setStyles({backgroundImage:"none",display:""});preload.inject(image);}}else if(mediaType=="obj"){if(Browser.Plugins.Flash.version<8){image.setStyles({backgroundImage:"none",display:""});image.set('html','<div id="mbError"><b>Error</b><br/>Adobe Flash is either not installed or not up to date, please visit <a href="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" title="Get Flash" target="_new">Adobe.com</a> to download the free player.</div>');mediaWidth=options.DefaultWidth;mediaHeight=options.DefaultHeight;}else{image.setStyles({backgroundImage:"none",display:""});preload.inject(image);}}else if(mediaType=="qt"){image.setStyles({backgroundImage:"none",display:""});preload;}else if(mediaType=="inline"){image.setStyles({backgroundImage:"none",display:""});image.set('html',preload);}else if(mediaType=="url"){image.setStyles({backgroundImage:"none",display:""});preload.inject(image);}else{image.setStyles({backgroundImage:"none",display:""});image.set('html','<div id="mbError"><b>Error</b><br/>A file type error has occoured, please visit <a href="iaian7.com/webcode/mediaboxAdvanced" title="mediaboxAdvanced" target="_new">iaian7.com</a> or contact the website author for more information.</div>');mediaWidth=options.defaultWidth;mediaHeight=options.defaultHeight;}
image.setStyles({width:mediaWidth,height:mediaHeight});caption.setStyles({width:mediaWidth});title.set('html',(options.showCaption)?captionSplit[0]:"");caption.set('html',(options.showCaption&&(captionSplit.length>1))?captionSplit[1]:"");number.set('html',(options.showCounter&&(images.length>1))?options.counterText.replace(/{x}/,activeImage+1).replace(/{y}/,images.length):"");if((prevImage>=0)&&(images[prevImage][0].match(/\.gif|\.jpg|\.jpeg|\.png|twitpic\.com/i)))preloadPrev.src=images[prevImage][0].replace(/twitpic\.com/i,"twitpic.com/show/full");if((nextImage>=0)&&(images[nextImage][0].match(/\.gif|\.jpg|\.jpeg|\.png|twitpic\.com/i)))preloadNext.src=images[nextImage][0].replace(/twitpic\.com/i,"twitpic.com/show/full");mediaWidth=image.offsetWidth;mediaHeight=image.offsetHeight+bottom.offsetHeight;if(mediaHeight>=top+top-10){mTop=-(top-10)}else{mTop=-(mediaHeight/2)};if(mediaWidth>=left+left-10){mLeft=-(left-10)}else{mLeft=-(mediaWidth/2)};if(options.resizeOpening){fx.resize.start({width:mediaWidth,height:mediaHeight,marginTop:mTop,marginLeft:mLeft});}else{center.setStyles({width:mediaWidth,height:mediaHeight,marginTop:mTop,marginLeft:mLeft});imageAnimate();}}
function imageAnimate(){fx.image.start(1);}
function captionAnimate(){center.className="";if(prevImage>=0)prevLink.style.display="";if(nextImage>=0)nextLink.style.display="";fx.bottom.start(1);}
function stop(){if(preload)preload.onload=function(){};fx.resize.cancel();fx.image.cancel().set(0);fx.bottom.cancel().set(0);$$(prevLink,nextLink).setStyle("display","none");}
function close(){if(activeImage>=0){preload.onload=function(){};image.set('html','');for(var f in fx)fx[f].cancel();center.setStyle("display","none");fx.overlay.chain(setup).start(0);}
return false;}})();Mediabox.scanPage=function(){var links=$$("a").filter(function(el){return el.rel&&el.rel.test(/^mediabox/i);});$$(links).mediabox({},null,function(el){var rel0=this.rel.replace(/[[]|]/gi," ");var relsize=rel0.split(" ");return(this==el)||((this.rel.length>8)&&el.rel.match(relsize[1]));});};window.addEvent("domready",Mediabox.scanPage);Locale.define('de-DE','DatePicker',{select_a_time:'Wähle eine Zeit',use_mouse_wheel:'Mit dem Mausrad kannst du schneller die Werte ändern',time_confirm_button:'OK'});var Picker=new Class({Implements:[Options,Events],options:{pickerClass:'datepicker',inject:null,animationDuration:400,useFadeInOut:true,positionOffset:{x:0,y:0},pickerPosition:'bottom',draggable:true,showOnInit:true},initialize:function(options){this.setOptions(options);this.constructPicker();if(this.options.showOnInit)this.show();},constructPicker:function(){var options=this.options;var picker=this.picker=new Element('div',{'class':options.pickerClass,styles:{left:0,top:0,display:'none',opacity:0}}).inject(options.inject||document.body);if(options.useFadeInOut){picker.set('tween',{duration:options.animationDuration,link:'cancel'});}
var header=this.header=new Element('div.header').inject(picker);this.closeButton=new Element('div.closeButton[text=x]').addEvent('click',this.close.pass(false,this)).inject(header);var title=this.title=new Element('div.title').inject(header);this.titleText=new Element('div.titleText').inject(title);var body=this.body=new Element('div.body').inject(picker);var slider=this.slider=new Element('div.slider',{styles:{position:'absolute',top:0,left:0}}).set('tween',{duration:options.animationDuration,transition:Fx.Transitions.Quad.easeInOut}).inject(body);this.oldContents=new Element('div',{styles:{position:'absolute',top:0}}).inject(slider);this.newContents=new Element('div',{styles:{position:'absolute',top:0,left:0}}).inject(slider);var shim=this.shim=window['IframeShim']?new IframeShim(picker):null;if(options.draggable&&typeOf(picker.makeDraggable)=='function'){this.dragger=picker.makeDraggable(shim?{onDrag:shim.position.bind(shim)}:null);picker.setStyle('cursor','move');}
this.addEvent('open',function(){picker.setStyle('display','block');if(shim)shim.show();},true);this.addEvent('hide',function(){picker.setStyle('display','none');if(shim)shim.hide();},true);},open:function(noFx){if(this.opened==true)return this;this.opened=true;this.fireEvent('open');if(this.options.useFadeInOut&&!noFx){this.picker.fade('in').get('tween').chain(function(){this.fireEvent('show');}.bind(this));}else{this.picker.setStyle('opacity',1);this.fireEvent('show');}
return this;},show:function(){return this.open(true);},close:function(noFx){if(this.opened==false)return this;this.opened=false;this.fireEvent('close');if(this.options.useFadeInOut&&!noFx){this.picker.fade('out').get('tween').chain(function(){this.fireEvent('hide');}.bind(this));}else{this.picker.setStyle('opacity',0);this.fireEvent('hide');}
return this;},hide:function(){return this.close(true);},toggle:function(){return this[this.opened==true?'close':'open']();},destroy:function(){this.picker.destroy();if(this.shim)this.shim.destroy();},position:function(x,y){var offset=this.options.positionOffset,scroll=document.getScroll(),size=document.getSize(),pickersize=this.picker.getSize();if(typeOf(x)=='element'){var element=x,where=y||this.options.pickerPosition;var elementCoords=element.getCoordinates();x=(where=='left')?elementCoords.left-pickersize.x:(where=='bottom'||where=='top')?elementCoords.left:elementCoords.right
y=(where=='bottom')?elementCoords.bottom:(where=='top')?elementCoords.top-pickersize.y:elementCoords.top;}
x+=offset.x*((where&&where=='left')?-1:1);y+=offset.y*((where&&where=='top')?-1:1);if((x+pickersize.x)>(size.x+scroll.x))x=(size.x+scroll.x)-pickersize.x;if((y+pickersize.y)>(size.y+scroll.y))y=(size.y+scroll.y)-pickersize.y;if(x<0)x=0;if(y<0)y=0;this.picker.setStyles({left:x,top:y});if(this.shim)this.shim.position();return this;},setBodySize:function(){var bodysize=this.bodysize=this.body.getSize();this.slider.setStyles({width:2*bodysize.x,height:bodysize.y});this.oldContents.setStyles({left:bodysize.x,width:bodysize.x,height:bodysize.y});this.newContents.setStyles({width:bodysize.x,height:bodysize.y});},setContent:function(){var content=Array.from(arguments),fx;if(['right','left','fade'].contains(content[1]))fx=content[1];if(content.length==1||fx)content=content[0];var old=this.oldContents;this.oldContents=this.newContents;this.newContents=old;this.newContents.empty();var type=typeOf(content);if(['string','number'].contains(type))this.newContents.set('text',content);else this.newContents.adopt(content);this.setBodySize();if(fx){this.fx(fx);}else{this.slider.setStyle('left',0);this.oldContents.setStyles({left:0,opacity:0});this.newContents.setStyles({left:0,opacity:1});}
return this;},fx:function(fx){var oldContents=this.oldContents,newContents=this.newContents,slider=this.slider,bodysize=this.bodysize;if(fx=='right'){oldContents.setStyles({left:0,opacity:1});newContents.setStyles({left:bodysize.x,opacity:1});slider.setStyle('left',0).tween('left',0,-bodysize.x);}else if(fx=='left'){oldContents.setStyles({left:bodysize.x,opacity:1});newContents.setStyles({left:0,opacity:1});slider.setStyle('left',-bodysize.x).tween('left',-bodysize.x,0);}else if(fx=='fade'){slider.setStyle('left',0);oldContents.setStyle('left',0).set('tween',{duration:this.options.animationDuration/2}).tween('opacity',1,0).get('tween').chain(function(){oldContents.setStyle('left',bodysize.x);});newContents.setStyles({opacity:0,left:0}).set('tween',{duration:this.options.animationDuration}).tween('opacity',0,1);}},toElement:function(){return this.picker;},setTitle:function(text){this.titleText.set('text',text);return this;},setTitleEvent:function(fn){this.titleText.removeEvents('click');if(fn)this.titleText.addEvent('click',fn);this.titleText.setStyle('cursor',fn?'pointer':'');return this;}});Picker.Attach=new Class({Extends:Picker,options:{showOnInit:false},initialize:function(attachTo,options){this.parent(options);this.attachedEvents=[];this.attachedElements=[];this.toggles=[];this.inputs=[];var documentEvent=function(event){if(this.attachedElements.contains(event.target))return null;this.close();}.bind(this);var document=this.picker.getDocument().addEvent('click',documentEvent);var preventPickerClick=function(event){event.stopPropagation();return false;};this.picker.addEvent('click',preventPickerClick);if(this.options.toggleElements)this.options.toggle=document.getElements(this.options.toggleElements);this.attach(attachTo,this.options.toggle);},attach:function(attachTo,toggle){if(typeOf(attachTo)=='string')attachTo=document.id(attachTo);if(typeOf(toggle)=='string')toggle=document.id(toggle);var elements=Array.from(attachTo),toggles=Array.from(toggle),allElements=[].append(elements).combine(toggles),self=this;var eventWrapper=function(fn,element){return function(event){if(event.type=='keydown'&&['tab','esc'].contains(event.key)==false)return false;if(event.target.get('tag')=='a')event.stop();self.fireEvent('attachedEvent',[event,element]);self.position(element);fn();};};allElements.each(function(element,i){if(self.attachedElements.contains(element))return null;var tag=element.get('tag');var events={};if(tag=='input'){if(!toggles.length){events={focus:eventWrapper(self.open.bind(self),element),keydown:eventWrapper(self.close.bind(self),element),click:eventWrapper(self.open.bind(self),element)};}
self.inputs.push(element);}else{if(toggles.contains(element)){self.toggles.push(element);events.click=eventWrapper(self.toggle.bind(self),element);}else{events.click=eventWrapper(self.open.bind(self),element);}}
element.addEvents(events);self.attachedElements.push(element);self.attachedEvents.push(events);});return this;},detach:function(attachTo,toggle){if(typeOf(attachTo)=='string')attachTo=document.id(attachTo);if(typeOf(toggle)=='string')toggle=document.id(toggle);var elements=Array.from(attachTo),toggles=Array.from(toggle),allElements=[].append(elements).combine(toggles),self=this;if(!allElements.length)allElements=self.attachedElements;allElements.each(function(element){var i=self.attachedElements.indexOf(element);if(i<0)return null;var events=self.attachedEvents[i];element.removeEvents(events);delete self.attachedEvents[i];delete self.attachedElements[i];var toggleIndex=self.toggles.indexOf(element);if(toggleIndex!=-1)delete self.toggles[toggleIndex];var inputIndex=self.inputs.indexOf(element);if(toggleIndex!=-1)delete self.inputs[inputIndex];});return this;},destroy:function(){this.detach();this.parent();}});(function(){this.DatePicker=Picker.Date=new Class({Extends:Picker.Attach,options:{timePicker:false,timePickerOnly:false,timeWheelStep:1,yearPicker:true,yearsPerPage:20,startDay:1,startView:'days',pickOnly:false,canAlwaysGoUp:['months','days'],months_abbr:null,days_abbr:null,years_title:function(date,options){var year=date.get('year');return year+'-'+(year+options.yearsPerPage-1);},months_title:function(date,options){return date.get('year');},days_title:function(date,options){return date.format('%b %Y');},time_title:function(date,options){return(options.pickOnly=='time')?Locale.get('DatePicker.select_a_time'):date.format('%d %B, %Y');}},initialize:function(attachTo,options){this.parent(attachTo,options);this.setOptions(options);var options=this.options;['year','month','day','time'].some(function(what){if(options[what+'PickerOnly'])return options.pickOnly=what;});if(options.pickOnly){options[options.pickOnly+'Picker']=true;options.startView=options.pickOnly;}
var newViews=['days','months','years'];['month','year','decades'].some(function(what,i){if(options.startView==what){options.startView=newViews[i];return true;}});options.canAlwaysGoUp=options.canAlwaysGoUp?Array.from(options.canAlwaysGoUp):[];if(options.minDate){if(!(options.minDate instanceof Date))options.minDate=Date.parse(options.minDate);options.minDate.clearTime();}
if(options.maxDate){if(!(options.maxDate instanceof Date))options.maxDate=Date.parse(options.maxDate);options.maxDate.clearTime();}
if(!options.format){options.format=(options.pickOnly!='time')?Locale.get('Date.shortDate'):'';if(options.timePicker)options.format=(options.format)+(options.format?' ':'')+Locale.get('Date.shortTime');}
this.date=limitDate(new Date(),options.minDate,options.maxDate);this.addEvent('attachedEvent',function(event,element){var tag=element.get('tag'),input;if(tag=='input'){input=element;}else{var index=this.toggles.indexOf(element);if(this.inputs[index])input=this.inputs[index];}
this.date=new Date()
if(input){var date=Date.parse(input.get('value'));if(date==null||!date.isValid()){var storeDate=input.retrieve('datepicker:value');if(storeDate)date=Date.parse(storeDate);}
if(date!=null&&date.isValid())this.date=date;}
this.input=input;}.bind(this),true);this.currentView=options.startView;this.addEvent('open',function(){var view=this.currentView,cap=view.capitalize();if(this['render'+cap]){this['render'+cap](this.date.clone());this.currentView=view;}}.bind(this));},constructPicker:function(){this.parent();this.previous=new Element('div.previous[html=&#171;]').inject(this.header);this.next=new Element('div.next[html=&#187;]').inject(this.header);},hidePrevious:function($next,$show){this[$next?'next':'previous'].setStyle('display',$show?'block':'none');return this;},showPrevious:function($next){return this.hidePrevious($next,true);},setPreviousEvent:function(fn,$next){this[$next?'next':'previous'].removeEvents('click');if(fn)this[$next?'next':'previous'].addEvent('click',fn);return this;},hideNext:function(){return this.hidePrevious(true);},showNext:function(){return this.showPrevious(true);},setNextEvent:function(fn){return this.setPreviousEvent(fn,true);},renderYears:function(date,fx){var options=this.options;while(date.get('year')%options.yearsPerPage>0)date.decrement('year',1);this.setTitle(options.years_title(date,options));this.setContent(renderers.years(options,date.clone(),this.date.clone(),function(date){if(options.pickOnly=='years')this.select(date);else this.renderMonths(date,'fade');}.bind(this)),fx);var limitLeft=(options.minDate&&date.get('year')<=options.minDate.get('year')),limitRight=(options.maxDate&&(date.get('year')+options.yearsPerPage)>=options.maxDate.get('year'));this[(limitLeft?'hide':'show')+'Previous']();this[(limitRight?'hide':'show')+'Next']();this.setPreviousEvent(function(){this.renderYears(date.decrement('year',options.yearsPerPage),'left');}.bind(this));this.setNextEvent(function(){this.renderYears(date.increment('year',options.yearsPerPage),'right');}.bind(this));this.setTitleEvent(null);},renderMonths:function(date,fx){var options=this.options;this.setTitle(options.months_title(date,options));this.setContent(renderers.months(options,date.clone(),this.date.clone(),function(date){if(options.pickOnly=='months')this.select(date);else this.renderDays(date,'fade');}.bind(this)),fx);var year=date.get('year'),limitLeft=(options.minDate&&year<=options.minDate.get('year')),limitRight=(options.maxDate&&year>=options.maxDate.get('year'));this[(limitLeft?'hide':'show')+'Previous']();this[(limitRight?'hide':'show')+'Next']();this.setPreviousEvent(function(){this.renderMonths(date.decrement('year',1),'left');}.bind(this));this.setNextEvent(function(){this.renderMonths(date.increment('year',1),'right');}.bind(this));var canGoUp=options.yearPicker&&(options.pickOnly!='months'||options.canAlwaysGoUp.contains('months'));var titleEvent=(canGoUp)?function(){this.renderYears(date,'fade');}.bind(this):null;this.setTitleEvent(titleEvent);},renderDays:function(date,fx){var options=this.options;this.setTitle(options.days_title(date,options));this.setContent(renderers.days(options,date.clone(),this.date.clone(),function(date){if(options.pickOnly=='days'||!options.timePicker)this.select(date)
else this.renderTime(date,'fade');}.bind(this)),fx);var yearmonth=date.format('%Y%m').toInt(),limitLeft=(options.minDate&&yearmonth<=options.minDate.format('%Y%m')),limitRight=(options.maxDate&&yearmonth>=options.maxDate.format('%Y%m'));this[(limitLeft?'hide':'show')+'Previous']();this[(limitRight?'hide':'show')+'Next']();this.setPreviousEvent(function(){this.renderDays(date.decrement('month',1),'left');}.bind(this));this.setNextEvent(function(){this.renderDays(date.increment('month',1),'right');}.bind(this));var canGoUp=options.pickOnly!='days'||options.canAlwaysGoUp.contains('days');var titleEvent=(canGoUp)?function(){this.renderMonths(date,'fade');}.bind(this):null;this.setTitleEvent(titleEvent);},renderTime:function(date,fx){var options=this.options;this.setTitle(options.time_title(date,options));this.setContent(renderers.time(options,date.clone(),this.date.clone(),function(date){this.select(date);}.bind(this)),fx);this.hidePrevious().hideNext().setPreviousEvent(null).setNextEvent(null);var canGoUp=options.pickOnly!='time'||options.canAlwaysGoUp.contains('time');var titleEvent=(canGoUp)?function(){this.renderDays(date,'fade');}.bind(this):null;this.setTitleEvent(titleEvent);},select:function(date){this.date=date;if(this.input){this.input.set('value',date.format(this.options.format)).store('datepicker:value',date.strftime())}
this.fireEvent('select',date);this.close();}});var renderers={years:function(options,date,currentDate,fn){var limit={left:false,right:false},container=new Element('div.years'),today=new Date(),year,element,classes;for(var i=0;i<options.yearsPerPage;i++){year=date.get('year');classes='.year.year'+i;if(year==today.get('year'))classes+='.today';if(year==currentDate.get('year'))classes+='.selected';element=new Element('div'+classes,{text:year}).inject(container);if(isUnavailable('year',date,options))element.addClass('unavailable');else element.addEvent('click',fn.pass(date.clone()));date.increment('year',1);}
return container;},months:function(options,date,currentDate,fn){var today=new Date(),month=today.get('month'),limit={left:false,right:false},thisyear=(date.get('year')==today.get('year')),selectedyear=(date.get('year')==currentDate.get('year')),container=new Element('div.months'),months=options.months_abbr||Locale.get('Date.months_abbr'),elelement,classes;date.set('month',0);if(options.minDate){date.decrement('month',1);date.set('date',date.get('lastdayofmonth'));date.increment('month',1);}
date.set('date',date.get('lastdayofmonth'));for(var i=0;i<=11;i++){classes='.month.month'+(i+1);if(i==month&&thisyear)classes+='.today';if(i==currentDate.get('month')&&selectedyear)classes+='.selected';element=new Element('div'+classes,{text:months[i]}).inject(container);if(isUnavailable('month',date,options))element.addClass('unavailable');else element.addEvent('click',fn.pass(date.clone()));date.increment('month',1);date.set('date',date.get('lastdayofmonth'));}
return container;},days:function(options,date,currentDate,fn){var month=date.get('month'),limit={left:false,right:false},todayString=new Date().toDateString(),currentString=currentDate.toDateString(),container=new Element('div.days'),titles=new Element('div.titles').inject(container),localeDaysShort=options.days_abbr||Locale.get('Date.days_abbr'),day,classes,element,weekcontainer,dateString;date.setDate(1);while(date.getDay()!=options.startDay)date.setDate(date.getDate()-1);for(day=options.startDay;day<(options.startDay+7);day++){new Element('div.title.day.day'+(day%7),{text:localeDaysShort[(day%7)]}).inject(titles);}
for(var i=0;i<42;i++){if(i%7==0){weekcontainer=new Element('div.week.week'+(Math.floor(i/7))).inject(container);}
dateString=date.toDateString();classes='.day.day'+date.get('day');if(dateString==todayString)classes+='.today';if(dateString==currentString)classes+='.selected';if(date.get('month')!=month)classes+='.otherMonth';element=new Element('div'+classes,{text:date.getDate()}).inject(weekcontainer);if(isUnavailable('date',date,options))element.addClass('unavailable');else element.addEvent('click',fn.pass(date.clone()));date.increment('day',1);}
return container;},time:function(options,date,currentDate,fn){var container=new Element('div.time'),initMinutes=(date.get('minutes')/options.timeWheelStep).round()*options.timeWheelStep
if(initMinutes>=60)initMinutes=0;date.set('minutes',initMinutes);var hoursInput=new Element('input.hour[type=text]',{title:Locale.get('DatePicker.use_mouse_wheel'),value:date.format('%H'),events:{click:function(event){event.target.focus();event.stop();},mousewheel:function(event){event.stop();hoursInput.focus();var value=hoursInput.get('value').toInt();value=(event.wheel>0)?((value<23)?value+1:0):((value>0)?value-1:23)
date.set('hours',value);hoursInput.set('value',date.format('%H'));}.bind(this)},maxlength:2}).inject(container);var minutesInput=new Element('input.minutes[type=text]',{title:Locale.get('DatePicker.use_mouse_wheel'),value:date.format('%M'),events:{click:function(event){event.target.focus();event.stop();},mousewheel:function(event){event.stop();minutesInput.focus();var value=minutesInput.get('value').toInt();value=(event.wheel>0)?((value<59)?(value+options.timeWheelStep):0):((value>0)?(value-options.timeWheelStep):(60-options.timeWheelStep));if(value>=60)value=0;date.set('minutes',value);minutesInput.set('value',date.format('%M'));}.bind(this)},maxlength:2}).inject(container);new Element('div.separator[text=:]').inject(container);new Element('input.ok[type=submit]',{value:Locale.get('DatePicker.time_confirm_button'),events:{click:function(event){event.stop();date.set({hours:hoursInput.get('value').toInt(),minutes:minutesInput.get('value').toInt()});fn(date.clone());}}}).inject(container);return container;}};Picker.Date.defineRenderer=function(name,fn){renderers[name]=fn;return this;};var limitDate=function(date,min,max){if(min&&date<min)return min;if(max&&date>max)return max;return date;};var isUnavailable=function(type,date,options){var minDate=options.minDate,maxDate=options.maxDate,availableDates=options.availableDates;if(!minDate&&!maxDate&&!availableDates)return false;date.clearTime();if(type=='year'){var year=date.get('year');return((minDate&&year<minDate.get('year'))||(maxDate&&year>maxDate.get('year'))||((availableDates!=null)&&(availableDates[year]==null||Object.getLength(availableDates[year])==0||Object.getLength(Object.filter(availableDates[year],function(days){return(days.length>0);}))==0)));}
if(type=='month'){var year=date.get('year'),month=date.get('month')+1,ms=date.format('%Y%m').toInt();return((minDate&&ms<minDate.format('%Y%m').toInt())||(maxDate&&ms>maxDate.format('%Y%m').toInt())||((availableDates!=null)&&(availableDates[year]==null||availableDates[year][month]==null||availableDates[year][month].length==0)));}
var year=date.get('year'),month=date.get('month')+1,day=date.get('date');return((minDate&&date<minDate)||(maxDate&&date>maxDate)||((availableDates!=null)&&(availableDates[year]==null||availableDates[year][month]==null||!availableDates[year][month].contains(day))));};Date.defineParsers('%H:%M( ?%p)?');})();var LightFace=new Class({Implements:[Options,Events],options:{width:'auto',height:'auto',draggable:false,title:'',buttons:[],fadeDelay:400,fadeDuration:400,keys:{esc:function(){this.close();}},content:'<p>Message not specified.</p>',zIndex:9001,pad:100,overlayAll:false,constrain:false,resetOnScroll:true,baseClass:'lightface',errorMessage:'<p>The requested file could not be found.</p>'},initialize:function(options){this.setOptions(options);this.state=false;this.buttons={};this.resizeOnOpen=true;this.ie6=typeof document.body.style.maxHeight=="undefined";this.draw();},draw:function(){this.box=new Element('table',{'class':this.options.baseClass,styles:{'z-index':this.options.zIndex,opacity:0},tween:{duration:this.options.fadeDuration,onComplete:function(){if(this.box.getStyle('opacity')==0){this.box.setStyles({top:-9000,left:-9000});}}.bind(this)}}).inject(document.body,'bottom');var verts=['top','center','bottom'],hors=['Left','Center','Right'],len=verts.length;for(var x=0;x<len;x++){var row=this.box.insertRow(x);for(var y=0;y<len;y++){var cssClass=verts[x]+hors[y],cell=row.insertCell(y);cell.className=cssClass;if(cssClass=='centerCenter'){this.contentBox=new Element('div',{'class':'lightfaceContent',styles:{width:this.options.width}});cell.appendChild(this.contentBox);}
else{document.id(cell).setStyle('opacity',0.4);}}}
if(this.options.title){this.title=new Element('h2',{'class':'lightfaceTitle',html:this.options.title}).inject(this.contentBox);if(this.options.draggable&&window['Drag']!=null){this.draggable=true;new Drag(this.box,{handle:this.title});this.title.addClass('lightfaceDraggable');}}
this.messageBox=new Element('div',{'class':'lightfaceMessageBox',html:this.options.content||'',styles:{height:this.options.height}}).inject(this.contentBox);this.footer=new Element('div',{'class':'lightfaceFooter',styles:{display:'none'}}).inject(this.contentBox);this.overlay=new Element('div',{html:'&nbsp;',styles:{opacity:0},'class':'lightfaceOverlay',tween:{link:'chain',duration:this.options.fadeDuration,onComplete:function(){if(this.overlay.getStyle('opacity')==0)this.box.focus();}.bind(this)}}).inject(this.contentBox);if(!this.options.overlayAll){this.overlay.setStyle('top',(this.title?this.title.getSize().y-1:0));}
this.buttons=[];if(this.options.buttons.length){this.options.buttons.each(function(button){this.addButton(button.title,button.event,button.color);},this);}
this.focusNode=this.box;return this;},addButton:function(title,clickEvent,color){this.footer.setStyle('display','block');var focusClass='lightfacefocus'+color;var label=new Element('label',{'class':color?'lightface'+color:'',events:{mousedown:function(){if(color){label.addClass(focusClass);var ev=function(){label.removeClass(focusClass);document.id(document.body).removeEvent('mouseup',ev);};document.id(document.body).addEvent('mouseup',ev);}}}});this.buttons[title]=(new Element('input',{type:'button',value:title,events:{click:(clickEvent||this.close).bind(this)}}).inject(label));label.inject(this.footer);return this;},showButton:function(title){if(this.buttons[title])this.buttons[title].removeClass('hiddenButton');return this.buttons[title];},hideButton:function(title){if(this.buttons[title])this.buttons[title].addClass('hiddenButton');return this.buttons[title];},close:function(fast){if(this.isOpen){this.box[fast?'setStyles':'tween']('opacity',0);this.fireEvent('close');this._detachEvents();this.isOpen=false;}
return this;},open:function(fast){if(!this.isOpen){this.box[fast?'setStyles':'tween']('opacity',1);if(this.resizeOnOpen)this._resize();this.fireEvent('open');this._attachEvents();(function(){this._setFocus();}).bind(this).delay(this.options.fadeDuration+10);this.isOpen=true;}
return this;},_setFocus:function(){this.focusNode.setAttribute('tabIndex',0);this.focusNode.focus();},fade:function(fade,delay){this._ie6Size();(function(){this.overlay.setStyle('opacity',fade||1);}.bind(this)).delay(delay||0);this.fireEvent('fade');return this;},unfade:function(delay){(function(){this.overlay.fade(0);}.bind(this)).delay(delay||this.options.fadeDelay);this.fireEvent('unfade');return this;},_ie6Size:function(){if(this.ie6){var size=this.contentBox.getSize();var titleHeight=(this.options.overlayAll||!this.title)?0:this.title.getSize().y;this.overlay.setStyles({height:size.y-titleHeight,width:size.x});}},load:function(content,title){if(content)this.messageBox.set('html',content);if(title&&this.title)this.title.set('html',title);this.fireEvent('complete');return this;},_attachEvents:function(){this.keyEvent=function(e){if(this.options.keys[e.key])this.options.keys[e.key].call(this);}.bind(this);this.focusNode.addEvent('keyup',this.keyEvent);this.resizeEvent=this.options.constrain?function(e){this._resize();}.bind(this):function(){this._position();}.bind(this);window.addEvent('resize',this.resizeEvent);if(this.options.resetOnScroll){this.scrollEvent=function(){this._position();}.bind(this);window.addEvent('scroll',this.scrollEvent);}
return this;},_detachEvents:function(){this.focusNode.removeEvent('keyup',this.keyEvent);window.removeEvent('resize',this.resizeEvent);if(this.scrollEvent)window.removeEvent('scroll',this.scrollEvent);return this;},_position:function(){var windowSize=window.getSize(),scrollSize=window.getScroll(),boxSize=this.box.getSize();this.box.setStyles({left:scrollSize.x+((windowSize.x-boxSize.x)/2),top:scrollSize.y+((windowSize.y-boxSize.y)/2)});this._ie6Size();return this;},_resize:function(){var height=this.options.height;if(height=='auto'){var max=window.getSize().y-this.options.pad;if(this.contentBox.getSize().y>max)height=max;}
this.messageBox.setStyle('height',height);this._position();},toElement:function(){return this.messageBox;},getBox:function(){return this.box;},destroy:function(){this._detachEvents();this.buttons.each(function(button){button.removeEvents('click');});this.box.dispose();delete this.box;}});var NivooSlider=new Class({Implements:[Events,Options],caption:null,children:null,containerSize:0,count:0,currentSlide:0,currentImage:'',effects:{common:['fade','fold'],horizontal:['sliceLeftUp','sliceLeftDown','sliceLeftRightDown','sliceLeftRightUp','sliceRightDown','sliceRightUp','wipeDown','wipeUp'],vertical:['sliceDownLeft','sliceDownRight','sliceUpDownLeft','sliceUpDownRight','sliceUpLeft','sliceUpRight','wipeLeft','wipeRight']},holder:null,hover:false,interval:null,orientation:'',paused:false,running:false,slices:null,sliceSize:null,totalSlides:0,options:{animSpeed:500,autoPlay:true,directionNav:true,directionNavHide:false,directionNavWidth:'20%',effect:'sliceDown',interval:3000,orientation:'vertical',pauseOnHover:true,slices:15,directionNavPosition:'inside|outside',preLoadImages:false},initialize:function(container,options)
{this.container=$(container);this.setOptions(options);this.orientation=this.options.orientation;this.effects.horizontal.combine(this.effects.common);this.effects.vertical.combine(this.effects.common);this.initSlider();this.createSlices();if(this.options.autoPlay)
{this.play();}},animate:function(slice,fxStyles,last)
{var fx=slice.retrieve('fxInstance'),isLast=last!==undefined&&last===true;fx.start(fxStyles).chain(function(){this.count+=1;if(this.count===this.options.slices||isLast)
{this.running=false;this.finish();this.setBackgroundImage();this.count=0;if(this.currentSlide===(this.totalSlides-1))
{this.lastSlide();}}}.bind(this));},arrangeSlices:function(orientation)
{var height,position,sliceSize,width;this.slices.each(function(el,i){position={left:orientation==='vertical'?this.sliceSize.x*i:0,top:orientation==='horizontal'?this.sliceSize.y*i:0};if(orientation==='horizontal')
{height=i===this.options.slices-1?this.containerSize.y-(this.sliceSize.y*i):this.sliceSize.y;width='100%';el.setStyles({height:height,top:position.top,width:width});}
else
{height=0;width=i===this.options.slices-1?this.containerSize.x-(this.sliceSize.x*i):this.sliceSize.x;el.setStyles({height:height,left:position.left,top:'',width:width});}
el.store('fxInstance',new Fx.Morph(el,{duration:this.options.animSpeed})).store('coordinates',Object.merge(position,{height:height,width:width}));},this);},createCaption:function()
{this.caption=new Element('p',{styles:{opacity:0}}).inject(this.holder);this.caption.store('fxInstance',new Fx.Morph(this.caption,{duration:200,wait:false}));},createDirectionNav:function()
{var directionNavStyles,leftContainer,rightContainer,width;width=this.options.directionNavWidth;directionNavStyles={height:this.containerSize.y,width:width};leftContainer=new Element('div.direction-nav-left',{styles:directionNavStyles}).inject(this.holder);rightContainer=new Element('div.direction-nav-right',{styles:directionNavStyles}).inject(this.holder);this.leftNav=new Element('a',{events:{'click':function(e){e.stop();if(this.options.autoPlay)
{this.pause();if(!this.options.pauseOnHover)
{this.play();}}
this.previous();}.bind(this)},href:'#',styles:{height:directionNavStyles.height}}).inject(leftContainer);this.rightNav=new Element('a',{events:{'click':function(e){e.stop();if(this.options.autoPlay)
{this.pause();if(!this.options.pauseOnHover)
{this.play();}}
this.next();}.bind(this)},href:'#',styles:{height:directionNavStyles.height}}).inject(rightContainer);if(this.options.directionNavHide&&this.options.directionNav)
{$$(this.leftNav,this.rightNav).setStyle('opacity',0);this.holder.addEvents({'mouseout':function(){$$(this.leftNav,this.rightNav).fade(0);}.bind(this),'mouseover':function(){$$(this.leftNav,this.rightNav).fade(1);}.bind(this)});}},createLinkHolder:function()
{this.linkHolder=new Element('a.nivoo-link',{href:'#'}).inject(this.holder);},createSlices:function()
{this.sliceSize={x:(this.containerSize.x/this.options.slices).round(),y:(this.containerSize.y/this.options.slices).round()};if(['fade','wipeLeft','wipeRight'].contains(this.options.effect))
{this.options.slices=1;}
this.options.slices.each(function(i){new Element('div.nivoo-slice').inject(this.holder);},this);this.slices=this.getSlices();this.arrangeSlices(this.options.orientation);},getImages:function()
{return this.holder.getElements('img');},getSlices:function()
{return this.holder.getElements('.nivoo-slice');},initSlider:function()
{this.holder=new Element('div.nivoo-slider-holder').adopt(this.container.getChildren()).inject(this.container);this.containerSize=this.holder.getSize();this.children=this.getImages();this.totalSlides=this.children.length;this.children.setStyle('display','none');this.currentImage=this.children[0];this.createLinkHolder();this.setLink();this.holder.setStyle('background-image','url('+this.currentImage.get('src')+')');this.createCaption();this.showCaption();if(this.options.pauseOnHover&&this.options.autoPlay)
{this.holder.addEvents({'mouseenter':function(){this.pause();}.bind(this),'mouseleave':function(){this.play();}.bind(this)});}
if(this.options.directionNav)
{this.createDirectionNav();}},hideCaption:function()
{this.caption.retrieve('fxInstance').start({bottom:this.caption.getHeight()*-1,opacity:0.5});},next:function()
{this.currentSlide+=1;if(this.currentSlide===this.totalSlides)
{this.currentSlide=0;}
this.slide();},pause:function()
{window.clearInterval(this.interval);},play:function()
{this.interval=this.next.periodical(this.options.interval,this);},previous:function()
{if(this.options.autoPlay)
{this.pause();if(!this.options.pauseOnHover)
{this.play();}}
this.currentSlide-=1;if(this.currentSlide<0)
{this.currentSlide=(this.totalSlides-1);}
this.slide();},showCaption:function()
{var title=this.currentImage.get('title');if(!title)
{this.hideCaption();return;}
this.setCaptionText(title);this.caption.retrieve('fxInstance').start({bottom:0,opacity:1});},slide:function(slideNo)
{var coordinates,effect,orientation,slice,slices,styles,timeBuff;if(this.running)
{return;}
if(this.options.orientation==='random')
{orientation=['horizontal','vertical'].getRandom();}
else
{orientation=this.options.orientation;}
if(orientation!==this.orientation)
{this.arrangeSlices(orientation);this.orientation=orientation;}
if(slideNo!==undefined)
{this.currentSlide=slideNo;}
this.currentImage=this.children[this.currentSlide];this.setLink();this.showCaption();slices=this.slices;timeBuff=0;this.slices.each(function(slice){coordinates=slice.retrieve('coordinates');slice.setStyles({background:'url('+this.currentImage.get('src')+') no-repeat -'+coordinates.left+'px '+coordinates.top*-1+'px',bottom:'',height:coordinates.height,left:coordinates.left,opacity:0,right:'',top:coordinates.top,width:coordinates.width});var property=orientation==='horizontal'?'width':'height';slice.setStyle(property,0);},this);this.start();this.running=true;effect=this.options.effect;if(effect==='random')
{effect=this.effects[orientation].getRandom();}
if(['sliceDownRight','sliceDownLeft'].contains(effect))
{if(effect==='sliceDownLeft')
{slices=slices.reverse();}
slices.each(function(slice){slice.setStyle('top',0);this.animate.delay(100+timeBuff,this,[slice,{height:this.containerSize.y,opacity:1}]);timeBuff+=50;},this);}
else if(['sliceUpRight','sliceUpLeft'].contains(effect))
{if(effect==='sliceUpLeft')
{slices=slices.reverse();}
slices.each(function(slice){var fx=slice.retrieve('fxInstance');slice.setStyle('bottom',0);this.animate.delay(100+timeBuff,this,[slice,{height:this.containerSize.y,opacity:1}]);timeBuff+=50;},this);}
else if(['sliceUpDownRight','sliceUpDownLeft'].contains(effect))
{if(effect==='sliceUpDownLeft')
{slices=slices.reverse();}
slices.each(function(slice,i){if(i%2===0)
{slice.setStyle('top',0);}
else
{slice.setStyles({bottom:0,top:''});}
this.animate.delay(100+timeBuff,this,[slice,{height:this.containerSize.y,opacity:1}]);timeBuff+=50;},this);}
else if(['wipeLeft','wipeRight'].contains(effect))
{styles={height:this.containerSize.y,opacity:1,width:0};if(effect==='wipeRight')
{Object.append(styles,{backgroundPosition:'top right',left:'',right:0});}
slice=slices[0];slice.setStyles(styles);this.animate(slice,{width:this.containerSize.x},true);}
else if(['sliceLeftUp','sliceLeftDown','sliceRightDown','sliceRightUp'].contains(effect))
{if(effect==='sliceLeftUp'||effect==='sliceRightUp')
{slices=slices.reverse();}
if(effect==='sliceRightDown'||effect==='sliceRightUp')
{slices.setStyles({left:'',right:0});}
else
{slices.setStyles({left:0,right:''});}
slices.each(function(slice){this.animate.delay(100+timeBuff,this,[slice,{opacity:1,width:this.containerSize.x}]);timeBuff+=50;},this);}
else if(['sliceLeftRightDown','sliceLeftRightUp'].contains(effect))
{if(effect==='sliceLeftRightUp')
{slices=slices.reverse();}
slices.each(function(slice,i){if(i%2===0)
{slice.setStyles({left:0,right:''});}
else
{slice.setStyles({left:'',right:0});}
this.animate.delay(100+timeBuff,this,[slice,{opacity:1,width:this.containerSize.x}]);timeBuff+=50;},this);}
else if(['wipeDown','wipeUp'].contains(effect))
{styles={height:0,opacity:1,width:this.containerSize.x};if(effect==='wipeUp')
{Object.append(styles,{backgroundPosition:'bottom left',bottom:0,top:''});}
slice=slices[0];slice.setStyles(styles);this.animate(slice,{height:this.containerSize.y},true);}
else if(effect==='fold')
{slices.each(function(slice){var fxStyles={opacity:1};if(orientation==='horizontal')
{fxStyles.height=slice.getHeight();slice.setStyles({height:0,width:this.containerSize.x});}
else
{fxStyles.width=slice.getWidth();slice.setStyles({height:this.containerSize.y,top:0,width:0});}
this.animate.delay(100+timeBuff,this,[slice,fxStyles]);timeBuff+=50;},this);}
else
{slice=slices[0];slice.setStyles({height:this.containerSize.y,width:this.containerSize.x});this.animate(slice,{opacity:1},true);}},setBackgroundImage:function()
{this.holder.setStyle('background-image','url('+this.currentImage.get('src')+')');},setCaptionText:function(text)
{this.caption.set('text',text);},setLink:function()
{var clone,imageParent=this.currentImage.getParent();if(imageParent.get('tag')==='a')
{clone=imageParent.clone(false).cloneEvents(imageParent);clone.replaces(this.linkHolder);this.linkHolder=clone;this.linkHolder.addClass('nivoo-link').setStyle('display','block');}
else
{this.linkHolder.setStyle('display','none');}},finish:function()
{this.fireEvent('finish');},lastSlide:function()
{this.fireEvent('lastSlide');},start:function()
{this.fireEvent('start');}});LightFace.Fin=new Class({Implements:[Options,Events],Extends:LightFace,options:{modal:false,closeOnClick:false,dontShowAgain:'Hinweis nicht mehr anzeigen',dontShowAgainId:false,defaultButton:false,resetOnScroll:true,width:400,onClose:function(){this.saveDontShowAgainCookie();},keys:{}},dontShowAgainCookieSet:false,defaultEvent:false,defaultButton:0,initialize:function(options){if(options.content.toString().substr(0,1)!='<'){options.content='<p>'+options.content+'</p>';}
if(options.defaultButton===undefined&&options.buttons&&options.buttons.length){options.defaultButton=options.buttons.length-1;}
if(options.defaultButton!==undefined){this.defaultButton=options.buttons[options.defaultButton]['title'];this.defaultEvent=options.buttons[options.defaultButton]['event'];}
if(options.dontShowAgainId){this.checkDontShowAgainCookie(options.dontShowAgainId);}
if(options.modal){this.drawModalOverlay(options.closeOnClick);this.addEvents({'open':this.showModalOverlay.bind(this),'close':this.hideModalOverlay.bind(this)});}
this.parent(options);if(this.dontShowAgainCookieSet){this.defaultAction();}else{this.setupDontShowAgainCheckbox();}
return this;},drawModalOverlay:function(closeOnClick){this.modalOverlay=new Element('div',{'styles':{'display':'none','position':'fixed','top':0,'left':0,'bottom':0,'right':0,'width':'100%','height':'100%','background':'#000','opacity':0,'z-index':9000}}).inject($(document.body)).set('tween',{duration:300});if(closeOnClick){this.modalOverlay.addEvent('click',function(){this.close();}.bind(this));}},showModalOverlay:function(){this.modalOverlay.setStyle('display','block').tween('opacity',.5);},hideModalOverlay:function(){this.modalOverlay.tween('opacity',0);(function(){this.modalOverlay.setStyle('display','none');}).delay(300,this);},open:function(fast){if(!this.isOpen&&!this.dontShowAgainCookieSet){this.box[fast?'setStyles':'tween']('opacity',1);if(this.resizeOnOpen)this._resize();this.fireEvent('open');this._attachEvents();(function(){}).bind(this).delay(this.options.fadeDuration+10);this.isOpen=true;}
return this;},defaultAction:function(){if(this.defaultEvent!==false){this.buttons[this.defaultButton].click();}},checkDontShowAgainCookie:function(id){var cookieKey='dontShowAgain_'+id;this.dontShowAgainCookieSet=Cookie.read(cookieKey)?true:false;},saveDontShowAgainCookie:function(){var el=this.footer.getElement('.dontShowAgain input');if(!el){return;}
var checked=this.footer.getElement('.dontShowAgain input').checked;if(!checked){return;}
var cookieKey='dontShowAgain_'+this.options.dontShowAgainId;var cookieOptions={domain:document.domain,path:'/',duration:356};Cookie.write(cookieKey,checked,cookieOptions);},setupDontShowAgainCheckbox:function(){if(!this.options.dontShowAgain.length||!this.options.dontShowAgainId){return;}
var label=new Element('label',{'class':'dontShowAgain','html':'<input type="checkbox" name="dontShowAgain"> '+this.options.dontShowAgain});label.inject(this.footer,'top');}});LightFace.Fin.resetDontShowAgain=function(ids){var cookieOptions={domain:document.domain,path:'/',duration:356};ids.each(function(id){var cookieKey='dontShowAgain_'+id;Cookie.dispose(cookieKey,cookieOptions);});}
LightFace.Blink=new Class({Implements:[Options,Events],Extends:LightFace,options:{duration:1500},initialize:function(options){this.setOptions(options);this.parent(options);this.messageBox.hide();this.footer.hide();this.title.setStyles({border:'none',padding:'30px 40px'});this.addEvent('open',function(){(function(){this.close();}).delay(this.options.duration,this);},this);},open:function(fast){if(!this.isOpen&&!this.dontShowAgainCookieSet){this.box[fast?'setStyles':'tween']('opacity',1);if(this.resizeOnOpen)this._resize();this.fireEvent('open');this._attachEvents();(function(){}).bind(this).delay(this.options.fadeDuration+10);this.isOpen=true;}
return this;}});var currentAlert=null;var alert=function(content,title,button,buttonEvent){if(currentAlert){currentAlert.close();}
if(!title){title='Achtung';}
if(!button){button='Weiter';}
if(!buttonEvent){var buttonEvent=function(){}}
currentAlert=new LightFace.Fin({modal:true,width:300,title:title,content:content,buttons:[{title:button,color:'blue',event:function(){buttonEvent();this.close();this.currentAlert=null;}}]}).open();return false;}
var patience=function(content,title){if(currentAlert){currentAlert.close();}
if(!title){title='Bitte warten';}
if(!content){content='Bitte habe einen kleinen Moment Geduld.<br />Es geht gleich weiter …';}
currentAlert=new LightFace.Fin({modal:true,width:300,title:title,content:content}).open();return false;}
var endPatience=function(){if(currentAlert){currentAlert.close();}}
var confirmation=function(title,content,noLabel,yesLabel,noCallback,yesCallback,noColor,yesColor){if(!noColor){noColor='';}
if(!yesColor){yesColor='green';}
new LightFace.Fin({modal:true,width:350,title:title,content:content,buttons:[{title:noLabel,color:noColor,event:function(){if(noCallback){noCallback();}
this.close();}},{title:yesLabel,color:yesColor,event:function(){if(yesCallback){yesCallback();}
this.close();}}]}).open();return false;}
var JSONRPC={};JSONRPC.version='1.1';JSONRPC.call=new Class({Implements:[Events,Options],options:{url:'/',method:'post',encoding:'utf-8',headers:{'Content-Type':'application/json','Accept':'application/json, text/x-json, application/x-javascript'},async:true},success:false,failure:false,rpcid:null,Request:false,initialize:function(options){this.setOptions(options);this.Request=new Request.JSON({url:this.options.url,method:this.options.method,encoding:this.options.encoding,headers:this.options.headers,async:this.options.async,onFailure:function(xhr){this.fireEvent('failure',xhr);}.bind(this),onSuccess:function(response){if(response.id===this.rpcid){this.fireEvent('success',response);}
else{this.fireEvent('failure',null);}}.bind(this)});return this;},send:function(remoteMethod,params,id){if(remoteMethod){this.rpcid=id||String.uniqueID();this.Request.send(JSON.encode({version:JSONRPC.version,method:remoteMethod,params:params,id:this.rpcid}));}}});Django=new Class({Implements:Options,options:{language_code:'en-EN'},urls:null,initialize:function(options){this.setOptions(options)
if(typeof(Locale)!=='undefined'){Locale.use(this.options.language_code)
if(DJANGO_LANGUAGE)DJANGO_LANGUAGE.each(function(s){Locale.define(s[0],s[1],s[2]);});}},getTranslation:function(translationSet,key,defaultMessage,args){txt=Locale.get(translationSet+'.'+key,args)
if(txt){return txt.substitute(args)}else{new Django.Request({'withSession':false,'method':'fin.moo.createTranslation'}).send($D.options.language_code,translationSet,key,defaultMessage)
defaultMessage=String.from(defaultMessage);if(defaultMessage)return defaultMessage.substitute(args);else return key}}});if(!DJANGO_OPTIONS)var DJANGO_OPTIONS={};$D=new Django(DJANGO_OPTIONS);var _=$D.getTranslation;var DjangoRequestsRunning=0;Django.Request=new Class({Implements:[Events,Options],options:{debug:null,urlprefix:'/json/',method:'',onSuccess:false,onFailure:false,onRequest:false,trigger:null,withSession:true,async:true},trigger:null,rpc:null,initialize:function(options){this.setOptions(options)
this.trigger=this.options.trigger;this.rpc=new JSONRPC.call({url:this.options.urlprefix,onSuccess:this.onRpcSuccess.bind(this),onFailure:this.onRpcFailure.bind(this),async:this.options.async});return this;},onRpcSuccess:function(response){this.fireEvent('success',response.result);this.finalize();},onRpcFailure:function(xhr){var response=false;try{response=JSON.decode(xhr.responseText);if(response.error){debug.warn(response.error.message);debug.warn(response.error.stack);}}catch(e){}
this.fireEvent('failure',response);this.finalize();},send:function(){if(!this.options.method.length){return;}
params=new Array();if(this.options.withSession){params.push('');}
Array.each(arguments,function(a){params.push(a);});DjangoRequestsRunning++;$(document.body).addClass('wait');this.rpc.send(this.options.method,params);if(this.options.debug){this.options.debug('Django.Request to '+this.options.method);this.options.debug(params);}
this.fireEvent('request');},finalize:function(){DjangoRequestsRunning--;if(DjangoRequestsRunning<1){$(document.body).removeClass('wait');}}});var Message=new Class({Implements:Options,options:{'container':'messages','class':'message','id':null,'duration':null,'closeButton':true},initialize:function(message,options){this.message=message
this.setOptions(options);},_make:function(id){var el=new Element('li',{'html':'<span class="message">'+this.message+'</span>','class':this.options['class']})
if(this.options.closeButton){var a=Element('a',{'html':_('general','close','close',{}),'class':'close','href':'#','events':{'click':function(e){e.preventDefault()
el.close()}}})
a.inject(el,'bottom')}
if(id)el.id=id
el.close=function(){this.slide.slideOut()}.bind(el)
return el},show:function(){var container=$(this.options.container)
var el=null
var id='message-'+this.options.id
if(id){el=$(id)
if(el){el.getElement('.message').set('html',this.message)
el.set('class',this.options['class'])}else{el=this._make(id).inject(container)}}else{el=this._make().inject(container)}
if(!el.slide.slideIn)el.slide=new Fx.Slide(el,{duration:100}).hide()
if(!el.slide.open)el.slide.slideIn()
if(this.options.duration){(function(){el.close();}).bind(this).delay(this.options.duration+500)}}});Message.Info=new Class({Extends:Message,options:{'class':'info'}});Message.Error=new Class({Extends:Message,options:{'class':'error'}});Message.Warning=new Class({Extends:Message,options:{'class':'warning'}});Message.Success=new Class({Extends:Message,options:{'class':'success'}});Number.implement({toFileSize:function(units){if(this==0)return 0;var s=['bytes','kb','MB','GB','TB','PB'],e=Math.floor(Math.log(this)/Math.log(1024));return(this/Math.pow(1024,Math.floor(e))).toFixed(2)+" "+(units&&units[e]?units[e]:s[e]);}});var ProgressBar=new Class({Implements:[Options,Events],options:{value:0,text:'',gradient:false,fillColor:'#aaa',color:'#fff'},previous:0,initialize:function(options){options=this.setOptions(options).options;if(typeof options.gradient=='boolean')options.gradient=[options.color,options.fillColor];options.gradient=options.gradient?this.getBackground(options.gradient):options.color;var container=document.id(this.options.container),width=this.width=options.width||container.getStyle('width').toInt()||1,height,style='position:absolute;display:inline-block;margin:0 auto;left:0;top:0',self=this,timer,value=0,change=function(){self.fireEvent('change',[value,self])},clear=function(){clearTimeout(timer);change()},last,set;this.value=0;this.element=new Element('span',{'class':'progess0',style:'width:'+width+'px;position:relative;border:1px solid '+options.fillColor+';background:'+options.color+';display:inline-block;'}).inject(container).grab(new Element('span',{'class':'progess1',style:'z-index:1;width:'+width+'px;text-indent:5px;margin:0 auto;color:'+options.fillColor+';'+style,text:options.text})).grab(new Element('span',{'class':'progess2',style:'z-index:2;overflow:hidden;width:'+options.value+'px;'+style}).grab(new Element('span',{'class':'progess3',style:'width:'+width+'px;text-indent:5px;margin:0 auto;color:'+options.color+(options.backgroundImage?';background: url('+options.backgroundImage+') repeat-x':'')+';display:inline-block;'+style,text:options.text}))).grab(new Element('span',{html:'&nbsp;',style:'width:'+options.value+'px;'+(options.gradient.indexOf(':')==-1?'background':'filter')+':'+options.gradient+';'+style}));var last=this.element.getLast();height=last.getStyle('height');this.element.setStyle('height',height).getElement('span+span').setStyle('height',height);this.elements=$$(this.element.getFirst(),this.element.getElement('span span'));this.progress=new Fx.Elements([last,last.getPrevious()],{link:'cancel',onStart:function(){timer=setTimeout(change,10)},onCancel:clear,onComplete:clear});set=this.progress.set.bind(this.progress);this.progress.set=function(now){this.value=value=now[0].width[0].value/this.width;return set(now)}.bind(this);if(options.text==='')this.elements[1].set('html','&nbsp;');this.setValue(options.value)},toElement:function(){return this.element},setText:function(text){this.elements.set('text',text);return this},setValue:function(value){if(value<0)value=0;else if(value>1)value=1;if(this.value!=value){var tween={width:value*this.width},self=this;this.previous=this.value;this.progress.start({0:tween,1:tween}).chain(function(){if(value==1)self.fireEvent('complete',self)})}
return this},getValue:function(){return this.value},getBackground:function(background){if(typeof background=='string')return background;background=Object.map(background,function(val){return val});var bg;switch(Browser.name){case'firefox':if(Browser.version>='3.6')bg='-moz-linear-gradient(top, {0} 0%, {1} 59%)';break;case'chrome':case'safari':if((Browser.name=='chrome'&&Browser.version>='10')||(Browser.name=='safari'&&Browser.version>='5.1'))bg='-webkit-linear-gradient(top, {0} 0%, {1} 59%)';else if(Browser.chrome||Browser.version>='4')bg='-webkit-gradient(linear, left top, left bottom, color-stop(0%,{0}), color-stop(59%,{1}))';break;case'opera':if(Browser.version>='11.10')bg='-o-linear-gradient(top, {0} 0%, {1} 59%)';break;case'ie':if(Browser.version>='10')bg='-ms-linear-gradient(top, {0} 0%, {1} 59%)';else if(Browser.version>=6)bg="progid:DXImageTransform.Microsoft.gradient( startColorstr='{0}', endColorstr='{1}',GradientType=0 )";break;}
if(bg=='')bg='{0}';return bg.substitute(background)}});String.implement({shorten:function(max,end){max=max||40;end=end||22;if(this.length>max){return this.substring(0,max-end-3)+'... '+this.substring(this.length-end+1);}
return this}});(function($,window){"use strict";var store='umo',transport='upl:tr',div=new Element('input',{type:'file'}),uploadManager=window.uploadManager={xmlhttpupload:!!div.files&&window.XMLHttpRequest&&('upload'in XMLHttpRequest.prototype||window.XMLHttpRequestUpload),multiple:'multiple'in div,resume:window.File&&('slice'in File.prototype||'mozSlice'in File.prototype||'webkitSlice'in File.prototype),uploads:{},active:false,actives:{},enqueue:false,queue:{},attachDragEvents:function(el,options){el=$(el);if(el)el.addEvents(dragdrop).store(store,options);return this},detachDragEvents:function(el){el=$(el);if(el.retrieve(store)){$(el).removeEvents(dragdrop).eliminate(store).getFirst().destroy();}
return this},upload:function(options){var opt=Object.append({limit:0,filesize:0,maxsize:0},options);var container=opt.container,transfer;if(!this.uploads[container]){this.actives[container]=[];this.uploads[container]=[];}
if(opt.limit>0&&this.uploads[container].length>=opt.limit)return null;opt.base=opt.base||'upload.php';opt.id=opt.name.replace(/[^a-z0-9]/gi,'')+(+new Date());if(opt.iframe||!this.xmlhttpupload)transfer=new Transfert(opt);else if(this.resume)transfer=new HTML5MultipartTransfert(opt);else transfer=new HTML5Transfert(opt);this.uploads[container].push(transfer);return transfer.fireEvent('create',transfer)},push:function(container,callback){this.queue[container]=this.queue[container]||[];this.queue[container].push(callback);return this.load(container)},load:function(container){if(!this.enqueue||!this.active){var callback=this.queue[container].shift();if(callback){this.active=true;callback()}}
return this},get:function(id){return $(id).retrieve(transport)},getSize:function(container){var size=0;(this.uploads[container]||[]).each(function(transfer){size+=transfer.filesize});return size},getTransfers:function(container){return(this.uploads[container]||[]).concat()}},dragdrop={dragenter:function(e){e.stop();var el=this,co=el.getCoordinates();},dragexit:function(e){e.stop();},dragover:function(e){e.stop()},drop:function(e){e.stop();var el=this;var options=Object.append(el.retrieve(store),{hideDialog:true});var transfer;el.removeClass('dropping');if(e.event.dataTransfer)Array.from(e.event.dataTransfer.files).each(function(f){transfer=uploadManager.upload(options);if(transfer)transfer.load(f)})}},Transfert=new Class({Implements:[Options,Events],state:0,filesize:0,complete:false,initialize:function(options){if(options.filetype)this.addEvent('load',function(object){var matches=options.filetype.split(/[^a-z0-9]/i);if(!this.aborted&&matches.length>0)this.aborted=!new RegExp('(\.'+matches.join(')$|(\.')+'$)','i').test(object.file);if(this.aborted)this.message='unauthorized file type'});var element,container=options.container;this.addEvents({abort:function(){this.state=2},load:function(){this.state=1;uploadManager.actives[container].push(this)},success:function(json){this.state=4;this.filesize=json.size;this.complete=true;uploadManager.actives[container].erase(this);var id=options.id,file=$(id+'_lfile').set({checked:true,value:json.path,disabled:false}),change=function(){file.checked=this.checked},pk=$(id+'_pk').set({value:json.pk}),checkbox=$(id).set({value:json.file,disabled:false,events:{change:change,click:change}});checkbox.style.display='';checkbox.checked=true;},cancel:function(){this.state=3;uploadManager.uploads[container].erase(this)
uploadManager.actives[container].erase(this)},complete:function(){if(uploadManager.actives[container].length==0&&uploadManager.queue[container].length==0){uploadManager.active=false;this.fireEvent('allComplete',container)}else if(uploadManager.enqueue){uploadManager.active=false;uploadManager.load(container)}}}).setOptions(options);element=this.createElement(options);this.checkbox=element.getElement('#'+options.id).store(transport,this);element.getElement('a.cancel-upload').addEvent("click",function(e){e.stop();this.cancel()}.bind(this));},createElement:function(options){this.element=new Element('div',{'class':'upload-container',html:'<iframe id="'+options.id+'_iframe" src="'+options.base+(options.base.indexOf('?')==-1?'?':'&')+'uploader='+options.id+'" frameborder="no" scrolling="no" style="border:0;overflow:hidden;padding:0;display:block;float:left;height:20px;width:320px; "></iframe>'
+'<input type="checkbox" disabled="disabled" style="display:none" name="'+options.name+'" id="'+options.id+'"/>'
+'<input type="checkbox" disabled="disabled" style="display:none" name="file_'+options.name+'" id="'+options.id+'_lfile"/>'
+'<input type="hidden" name="file_'+options.name+'_pk" id="'+options.id+'_pk"/>'
+'<span class="upload-span" id="'+options.id+'_label"><a class="cancel-upload button red" href="'+options.base+'">&times;</a></span>'}).inject(options.container);return this.element},toElement:function(){return this.element},load:function(file){this.aborted=false;this.fireEvent('load',{element:this.element,file:file,size:0,transfer:this});if(this.aborted)this.fireEvent('abort',{file:file,message:this.message||'',transfer:this});delete this.message;return this;},cancel:function(message){var complete=this.running;if(message)this.message=message;this.fireEvent('cancel',this);if(complete)this.fireEvent('complete',this);delete this.message;this.element.destroy()}}),HTML5={events:{load:function(obj){var options=this.options;if(obj.size==0){this.message='The selected file is empty';this.aborted=true}else if(options.filesize>0&&obj.size>options.filesize){this.aborted=true;this.message='file too big (file size must not exceed '+options.filesize.toFileSize()+')'}else if(options.maxsize>0&&uploadManager.getSize(options.container)+obj.size>options.maxsize){this.aborted=true;this.message='file too big (total file size must not exceed '+options.maxsize.toFileSize()+')'}}},add:function(obj,event,fn){fn=fn.bind(this);if(obj.addEventListener)obj.addEventListener(event,fn,false);else obj['on'+event]=fn;return this},load:function(file){this.aborted=false;this.fireEvent('load',{element:this.element,file:file.name,size:file.size,transfer:this});if(this.aborted){this.fireEvent('abort',{file:file,message:this.message||'',transfer:this});delete this.message;this.cancel();return this}
this.file=file;this.size=file.size;this.filename=file.name;var first=this.element.getFirst(),span=first.getElement('span').setStyle('display','none');this.progress=new ProgressBar(Object.append({container:first.set('title',file.name),text:file.name.shorten()},this.options.progressbar)).addEvent('change',function(){first.set('title',file.name+' ('+(this.value*100).format()+'%)')});this.fields=span.getNext().setStyle('display','none');this.fields.getFirst().style.display='none';this.element.getElement('input[type=file]').destroy();span.destroy();uploadManager.push(this.options.container,this.upload.bind(this));if(this.reader)this.reader.readAsBinaryString(file);return this}},HTML5Transfert=new Class(Object.append({Extends:Transfert,running:false,ready:false,reader:!!window.FileReader,initialize:function(options){this.addEvents(this.events).addEvents({success:function(json){var remove=json.remove;delete json.remove;this.addEvent('cancel',function(){var xhr=new XMLHttpRequest();xhr.open('GET',remove,true);xhr.setRequestHeader('Sender','XMLHttpRequest');xhr.send()})},cancel:function(){if(this.running){this.xhr.abort();this.getXHR().running=false}}}).parent(options);this.getXHR().binary=!!this.xhr.sendAsBinary;if(this.reader){var reader=this.reader=new FileReader();this.add(reader,'load',function(e){this.bin=e.target.result;this.ready=true})}},getXHR:function(){var xhr=this.xhr=new XMLHttpRequest(),options=this.options;this.add(xhr.upload,'progress',function(e){if(e.lengthComputable)this.progress.setValue(e.loaded/e.total)}).add(xhr,'load',function(){if(xhr.status==0){this.element.getElement('.resume-upload').style.display='';return}
var progress=$(this.progress.setValue(1)),self=this,options=this.options;(function(){progress.style.display='none';self.fields.getElement('label').set({text:self.filename.shorten()+' ('+self.size.toFileSize()+')',title:self.filename});self.fields.style.display='';(function(){progress.destroy()}).delay(50)}).delay(10);var status,json,event='success';this.running=false;try{status=xhr.status}catch(e){}
if(status>=200&&status<300){try{json=JSON.decode(xhr.responseText);json.transfer=this;json.element=this.element;if(json.size!=this.size)event='failure'}catch(e){event='failure'}}else event='failure';this.fireEvent(event,event=='failure'?this:json).fireEvent('complete',this);if(json.size==0)this.cancel('The selected file is empty');else if(options.filesize>0&&json.size>options.filesize)this.cancel('file too big (file size must not exceed '+options.filesize.toFileSize()+')');else if(options.maxsize>0&&uploadManager.getSize(options.container)>options.maxsize)this.cancel('file too big (total files size must not exceed '+options.maxsize.toFileSize()+')')}).add(xhr,'abort',this.resume).add(xhr,'error',this.resume);return this},resume:function(){this.element.getElement('.resume-upload').style.display=''},createElement:function(options){this.element=new Element('div',{'class':'upload-container',html:'<div class="upload-content" style="display:inline-block;"><span style="display:none">&nbsp;</span><span><input id="'+options.id+'_input" type="file" name="'+options.id+'_input"'+(options.multiple?' multiple="multiple"':'')+'/>'
+'<input type="checkbox" disabled="disabled" style="display:none" name="'+options.name+'" id="'+options.id+'"/>'
+'<input type="checkbox" disabled="disabled" style="display:none" name="file_'+options.name+'" id="'+options.id+'_lfile"/>'
+'<input type="hidden" name="file_'+options.name+'_pk" id="'+options.id+'_pk"/>'
+'<label for="'+options.id+'"></label>'
+'</span></div><a class="cancel-upload button red" href="'+options.base+'">&times;</a><a class="resume-upload button green" style="display:none" href="'+options.base+'">&#8635;</a>'}).inject(options.container);this.element.getElement('.resume-upload').addEvent('click',function(e){e.stop();this.initUpload()}.bind(this));var input=this.element.getElement('input[type=file]').addEvent('change',function(e){var files=Array.from(e.target.files),transfer;this.load(files.shift());files.each(function(f){transfer=uploadManager.upload(options);if(transfer)transfer.load(f)})}.bind(this));return this.addEvent('abort',function(){input.value=''}).element},initUpload:function(){var xhr=this.xhr;this.running=true;this.element.getElement('.resume-upload').style.display='none';xhr.open('POST',this.options.base,true);xhr.setRequestHeader('Size',this.size);xhr.setRequestHeader('Filename',this.filename);xhr.setRequestHeader('Sender','XMLHttpRequest');if(this.binary)xhr.sendAsBinary(this.bin);else xhr.send(this.file)},upload:function(){if(this.reader){if(this.ready)this.initUpload();else setTimeout(this.upload.bind(this),100)}else this.initUpload()}},HTML5)),HTML5MultipartTransfert=new Class(Object.append({Extends:Transfert,loaded:0,options:{chunckSize:1048576},initialize:function(options){this.addEvents(this.events).addEvents({cancel:function(){if(this.remove){var xhr=new XMLHttpRequest();xhr.open('GET',this.remove,true);xhr.setRequestHeader('Sender','XMLHttpRequest');xhr.send()}},failure:function(){this.element.getElement('.pause-upload').set('text','Fortsetzen').style.display=''}}).parent(options)},createElement:function(options){this.element=new Element('div',{'class':'upload-container',html:'<div style="display:inline-block;padding:3px"><span style="display:none">&nbsp;</span><span><input id="'+options.id+'_input" type="file" name="'+options.id+'_input"'+(options.multiple?' multiple="multiple"':'')+'/>'
+'<input type="checkbox" disabled="disabled" style="display:none" name="'+options.name+'" id="'+options.id+'"/>'
+'<input type="checkbox" disabled="disabled" style="display:none" name="file_'+options.name+'" id="'+options.id+'_lfile"/>'
+'<input type="hidden" name="file_'+options.name+'_pk" id="'+options.id+'_pk"/>'
+'<label for="'+options.id+'"></label>'
+'</span></div><a class="cancel-upload button red" href="'+options.base+'">&times;</a><a class="pause-upload" style="display:none" href="'+options.base+'">Pause</a>'}).inject(options.container);var input=this.element.getElement('input[type=file]').addEvent('change',function(e){var files=Array.from(e.target.files),transfer;this.load(files.shift());files.each(function(f){transfer=uploadManager.upload(options);if(transfer)transfer.load(f)})}.bind(this));var pause=this.addEvents({load:function(){if(this.options.pause)pause.style.display=''},success:function(){pause.destroy()}}).element.getElement('.pause-upload').addEvent('click',function(e){e.stop();if(!pause.hasClass('resume-upload')&&this.xhr){this.xhr.abort();delete this.xhr}else this.resume()}.bind(this));if(Browser.name=='firefox'&&Browser.version>=4){new Element('a',{text:'Browse...','class':'browse-upload',href:'#',events:{click:function(e){e.stop();input.click()}}}).inject(input.setStyle('display','none'),'before');if(!this.options.hideDialog)input.click.delay(10,input)}
return this.addEvent('abort',function(){input.value=''}).element},pause:function(){this.element.getElement('.pause-upload').addClass('resume-upload').set('text','Weiter').style.display='';this.fireEvent('pause',this)},resume:function(){this.element.getElement('.pause-upload').removeClass('resume-upload').set('text','Pause').style.display=this.options.pause?'':'none';this.upload()},send:function(){if(this.xhr)return this;var xhr=this.xhr=new XMLHttpRequest(),method='slice',offset=this.options.chunckSize,version=navigator.userAgent.replace(/.*?(Version\/(\S+)|Chrome\/(\S+)|MSIE ([^;\s]+)|Firefox\/(\S+)|Opera Mini\/([^\d.]+)).*?$/,'$2$3$4$5$6');this.add(xhr.upload,'progress',function(e){if(e.lengthComputable)this.progress.setValue((e.loaded+this.loaded)/this.size)}).add(xhr,'error',this.pause).add(xhr,'abort',this.pause).add(xhr,'load',function(){if(xhr.readyState==0){this.pause();return}
var status,json,event='success';this.running=false;try{status=xhr.status}catch(e){}
if(status>=200&&status<300){try{json=JSON.decode(xhr.responseText);this.loaded=json.size;if(json.remove)this.remove=json.remove;if(this.size>json.size){if(json.success){delete this.xhr;this.upload()}else{this.message='Uploaded file has been corrupted';this.cancel()}}else{json.transfer=this;json.element=this.element;if(json.message)this.message=json.message;if(json.success){if(this.size==json.size){var progress=$(this.progress.setValue(1)),self=this,options=this.options;(function(){progress.style.display='none';self.element.getElement('.pause-upload').setStyle('display','none');self.fields.getElement('label').set({text:self.filename.shorten()+' ('+self.size.toFileSize()+')',title:self.filename});self.fields.style.display='';(function(){progress.destroy()}).delay(50)}).delay(10)}}
if(!json.success||json.size!=this.size)event='failure';this.fireEvent(event,event=='failure'?this:json).fireEvent('complete',this)}}catch(e){}}}.bind(this));xhr.open('POST',this.options.base,true);xhr.setRequestHeader('Filename',this.filename);xhr.setRequestHeader('Sender','XMLHttpRequest');xhr.setRequestHeader('Size',this.size);xhr.setRequestHeader('Guid',this.guid);if(this.loaded+this.options.chunckSize<this.size)xhr.setRequestHeader('Partial',1);if((Browser.chrome&&version<'11')||(Browser.firefox&&version<='4'));else offset+=this.loaded;if(this.file.mozSlice)method='mozSlice';else if(this.file.webkitSlice)method='webkitSlice';xhr.send(this.file.size<this.options.chunckSize?this.file:this.file[method](this.loaded,offset));return this},upload:function(){var xhr=new XMLHttpRequest();this.add(xhr,'error',this.pause).add(xhr,'abort',this.pause).add(xhr,'load',function(){var status,json;try{status=xhr.status}catch(e){}
if(status>=200&&status<300){try{json=JSON.decode(xhr.responseText);if(!json.success){this.message='Failed to prefetch file infos';this.cancel();return}
this.loaded=json.size;if(!this.guid)this.guid=json.guid;this.send()}catch(e){this.message='Failed to prefetch file infos';this.cancel()}}});xhr.open('POST',this.options.base,true);xhr.setRequestHeader('Filename',this.filename);xhr.setRequestHeader('Sender','XMLHttpRequest');xhr.setRequestHeader('Size',this.size);xhr.setRequestHeader('Prefetch',1);if(this.guid)xhr.setRequestHeader('Guid',this.guid);xhr.send()}},HTML5));Object.append(Element.NativeEvents,{dragenter:2,dragexit:2,dragover:2,drop:2});div.destroy()})(document.id,this);Element.NativeEvents['input']=1;var Fin=new Class({Implements:Options,options:{user:{is_authenticated:false}},formChanges:{},initialize:function(options){this.setOptions(options);this.initMaintenanceWarning();this.initLoginPopup();this.initStandAlone();this.initTrainingCatalog();this.initFacebook();this.initMedia();this.equalizeTeaserHeights();this.initHints();this.initGenericPopups();this.initOverText();this.initFormChangeTracking();this.initSmoothScroll();},initMaintenanceWarning:function(){try{if(MAINTENANCE_WARNING==false)return;MAINTENANCE_WARNING=MAINTENANCE_WARNING-5;}catch(e){return;}
try{if(MAINTENANCE_DURATION==false)return;MAINTENANCE_DURATION_MINUTES=Math.ceil(MAINTENANCE_DURATION/60);}catch(e){MAINTENANCE_DURATION_MINUTES=5;}
var alerted=false;var interval=(function(){MAINTENANCE_WARNING--;var timetext='';if(MAINTENANCE_WARNING>0){var diffMinutes=Math.floor(MAINTENANCE_WARNING/60);var diffSeconds=Math.max(0,MAINTENANCE_WARNING-(diffMinutes*60))
if(diffMinutes>1){timetext=diffMinutes+' Minuten und '+diffSeconds+' Sekunden';}else if(diffMinutes>0){timetext=diffMinutes+' Minute und '+diffSeconds+' Sekunden';}else{timetext=diffSeconds+' Sekunden';}}else{timetext='eingen Momenten';}
text='<strong>Warnung:</strong> Unser Server wird in '+timetext+' wegen regulärer Wartungsarbeiten für ca. '+MAINTENANCE_DURATION_MINUTES+' Minuten nicht erreichbar sein.';new Message.Warning(text,{id:'maintenance_warning'}).show();if(MAINTENANCE_WARNING<60&&!alerted){alerted=true;alert('Unser Server wird in wenigen Momenten aufgrund regulärer Wartungsarbeiten für ca. '+MAINTENANCE_DURATION_MINUTES+' Minuten nicht erreichbar sein.','Wartungsarbeiten');}}).periodical(1000);},initLazyLoad:function(){this.lazyloader=new LazyLoad({image:'/media/res/img/dummies/blank.gif',resetDimensions:false});},initLoginPopup:function(){this.loginPopup=new Fin.Accounts.LoginPopup('LoginPopup',this.options.user.is_authenticated);},initStandAlone:function(){try{if(window.navigator.standalone){}}catch(e){}},initFacebook:function(){this.facebook=new Fin.Facebook();},initTrainingCatalog:function(){this.trainingCatalog=new Fin.Training.Catalog(TRAINING_CATALOG);},initMedia:function(){this.media=new Fin.Media();},equalizeTeaserHeights:function(){(function(){var rows=$$('.teaserRow');rows.each(this.equalizeTeaserHeightsInRow.bind(this));}.bind(this)).delay(50);},equalizeTeaserHeightsInRow:function(row){var teasers=row.getElements('.teaser');if(teasers.length){var maxHeight=0;teasers.each(function(teaser){maxHeight=Math.max(maxHeight,teaser.getSize().y);});teasers.setStyle('height',maxHeight);}},initHints:function(){new Tips('.hintFlex',{fixed:false,hideDelay:200,showDelay:0,text:false});new Tips('.hintFix',{fixed:true,hideDelay:200,showDelay:0,text:false});new Tips('.hintAbove200',{fixed:true,hideDelay:200,showDelay:0,text:false,offset:{'x':10,'y':-30}});new Tips.Steady('.hintSteady',{});},genericPopups:{},initGenericPopups:function(){$$('.genericPopup').each(function(el){var width=el.getStyle('width');width=width?width:400;this.genericPopups[el.get('rel')]=new LightFace.Fin({title:el.get('title'),content:el.get('html'),buttons:[{title:'Schließen',event:function(){this.close();}}],width:width});el.destroy();}.bind(this));},showPopup:function(key){this.genericPopups[key].open();},initOverText:function(){document.getElements('.OverText').each(function(el){new OverText(el);});},initFormChangeTracking:function(){window.onbeforeunload=function(){var length=Object.getLength(this.formChanges)+DjangoRequestsRunning;if(length==1)
return'Es gibt eine nicht gespeicherte Änderungen auf dieser Seite. Beim Verlassen der Seite gehen diese Änderungen verloren.';if(length>1)
return'Es gibt '+length+' nicht gespeicherte Änderungen auf dieser Seite. Beim Verlassen der Seite gehen diese Änderungen verloren.';}.bind(this);$$('form').each(function(el){el.addEvent('submit',function(){this.formChanges={};window.onbeforeunload=null;});}.bind(this));$$('form input,form textarea,form select').each(function(el){el.addEvent('change',this.onFormElementChange.bind(this));}.bind(this));},onFormElementChange:function(e){if(!e||!e.target)return;if(e.target.hasClass('dontTrackChanges'))return;var name=e.target.name;this.formChanges[name.length?name:'unknown']=true;},initSmoothScroll:function(){if(!Browser.ie){var mySmoothScroll=new Fx.SmoothScroll({offset:{'x':0,'y':-10},transition:'back:out',duration:'normal'});}}});Fin.Scheduler=new Class({Implements:Options,options:{frequency:'WEEKLY'},container:null,tabs:null,tabElements:{},frequency:'',initialize:function(container,options){this.container=container;this.setOptions(options);this.initTabs();},initTabs:function(){var el=this.container.getElement('.SchedulerTabs');this.tabElements['DAILY']=el.getElements('.SchedulerTabDAILY');this.tabElements['WEEKLY']=el.getElements('.SchedulerTabWEEKLY');this.tabElements['MONTHLY']=el.getElements('.SchedulerTabMONTHLY');this.tabs=new Tabs(el);this.tabs.addTab(this.tabElements['DAILY'],{activate:this.setFrequencyDAILY.bind(this)});this.tabs.addTab(this.tabElements['WEEKLY'],{activate:this.setFrequencyWEEKLY.bind(this)});this.tabs.addTab(this.tabElements['MONTHLY'],{activate:this.setFrequencyMONTHLY.bind(this)});this.setFrequency(this.options.frequency);},setFrequency:function(frequency){if(frequency!=this.frequency){this.frequency=frequency;this.tabs.activate(this.tabElements[frequency]);}},setFrequencyDAILY:function(){this.setFrequency('DAILY');},setFrequencyWEEKLY:function(){this.setFrequency('WEEKLY');},setFrequencyMONTHLY:function(){this.setFrequency('MONTHLY');}});if(!Fin){var Fin=new Class({});}
Fin.Facebook=new Class({Implements:[Options,Events],initialize:function(options){this.setOptions(options);window.fbAsyncInit=this.facebookJSLoaded.bind(this);debug.log('Fin.Facebook.initialize');debug.log($D.options);try{var lng=$D.options.facebookLanguage;}catch(e){var lng='en_US';}
var e=document.createElement('script');e.type='text/javascript';e.src=document.location.protocol+'//connect.facebook.net/'+lng+'/all.js';e.async=true;document.getElementById('fb-root').appendChild(e);},facebookJSLoaded:function(){debug.log('Fin.Facebook.facebookJSLoaded');debug.log('FB.init with app '+$D.options.facebookAppID);FB.init({appId:$D.options.facebookAppID,status:false,cookie:true,xfbml:true,oauth:true});this.fireEvent('ready');},signup:function(){FB.login(this.onLogin.bind(this),{scope:$D.options.facebookPermissions});},login:function(){debug.log('getLoginStatus');FB.getLoginStatus(function(response){debug.log('getLoginStatus callback');debug.log(response);if(response.authResponse){this.onLogin(response);}else{FB.login(this.onLogin.bind(this),{scope:$D.options.facebookPermissions});}}.bind(this));},onLogin:function(response){debug.log('Fin.Facebook.onLogin');if(response.authResponse){debug.log(response.authResponse);new Django.Request({method:'facebook.login',withSession:true,onSuccess:function(response){if(response.success==true){window.location.reload(true);}else{alert('Bei der Anmeldung ist ein Fehler aufgetreten.')}}}).send(response.authResponse.accessToken);}},logout:function(url){this.urlAfterLogout=url;FB.logout(this.onLogout.bind(this));},onLogout:function(response){debug.log('Fin.Facebook.onLogout');if(this.urlAfterLogout){document.location.href=this.urlAfterLogout;}else{window.location.reload(true);}}});Fin.Search=new Class({Extends:Fin});Fin.Search.AjaxSearchForm=new Class({Extends:Fin.Search,Implements:Options,options:{model:''},form:null,link:null,input:null,drop:null,suggestion:null,results:null,more:null,active:false,submitting:false,startListenToBlur:function(){$(document.body).addEvent('click',this.boundInputBlur);},stopListenToBlur:function(){$(document.body).removeEvent('click',this.boundInputBlur);},initialize:function(container,options){this.container=container;this.setOptions(options);this.form=this.container.getElement('form');this.link=this.form.getElement('a');this.input=this.form.getElement('input');this.link.addEvent('click',this.linkClick.bind(this))
this.input.addEvent('keyup',this.inputChange.bind(this))
this.input.addEvent('focus',function(e){this.active=true;}.bind(this));$(document.body).addEvent('keyup',function(e){if(e.key=='f'&&e.target==document.body){this.setActiveState(true);}}.bind(this));this.boundInputBlur=this.inputBlur.bind(this);this.startListenToBlur();this.container.setStyle('position','relative');this.drop=new Element('div',{'class':'SearchFormResults','styles':{'position':'absolute','color':'#000','opacity':0}}).set('tween').inject(this.container);this.suggestion=new Element('div',{'class':'suggestion','styles':{'display':'none'}}).inject(this.drop);this.results=new Element('div',{'class':'results'}).inject(this.drop);this.more=new Element('div',{'class':'more-results','styles':{'display':'none'}}).inject(this.drop);new Element('a',{'html':'Alle <strong><span class="count"></span> Treffer</strong> zeigen ...','href':'javascript:;','events':{'click':function(){this.form.submit();}.bind(this)}}).inject(this.more);this.setActiveState(this.active);},setActiveState:function(active){if(active){if(this.lastSuccessfulQuery.length){this.showResultsDiv();}
(function(){this.active=true;}.bind(this)).delay(500);this.form.addClass('isActive');this.input.select();this.room(true);}else{this.active=false;this.form.removeClass('isActive');this.hideResultsDiv();this.room(false);}},room:function(active){var el=$('MenuSignupTeaser');if(!el)return;el.set('morph',{duration:300});if(active){el.morph({top:-120,opacity:.5});}else{el.morph({top:0,opacity:1});}},linkClick:function(e){if(this.active){this.submitting=true;this.form.submit();}else{this.setActiveState(true);}},inputBlur:function(e){if(this.active&&!this.submitting&&!e.target.getParent('#'+this.container.get('id'))){this.setActiveState(false);}},lastSuccessfulQuery:'',lastQuery:'',inputChange:function(e){if(e&&e.key=='esc'){this.setActiveState(false);this.input.blur();}
var query=this.input.get('value');if(query.length<3){this.clearResults();return;}
if(this.lastQuery!=query){this.lookup(query);}},lookupTimeout:null,lookupQuery:'',lookup:function(query){window.clearTimeout(this.lookupTimeout);this.lookupTimeout=window.setTimeout(this.lookupNow.bind(this),500);this.lookupQuery=query;},lookupNow:function(){var query=this.lookupQuery;if(this.options.model){var method='fin.search.getResultsForModel';}else{var method='fin.search.getResults';}
var r=new Django.Request({withSession:false,method:method,onRequest:function(){this.lastQuery=query;this.form.addClass('isSearching');}.bind(this),onSuccess:function(data){this.lastSuccessfulQuery=query;this.setResults(data);this.form.removeClass('isSearching');}.bind(this),onFailure:function(){this.lastQuery=this.lastSuccessfulQuery;this.form.removeClass('isSearching');}.bind(this)});if(this.options.model){r.send(this.options.model,query);}else{r.send(query);}},prepareSuggestion:function(suggestion){if(suggestion){var link=new Element('a',{'html':'Meinst du <strong>'+suggestion+'</strong>?','href':'javascript:;','events':{'click':function(e){e.preventDefault();this.input.set('value',suggestion);this.inputChange();}.bind(this)}}).inject(this.suggestion.empty().setStyle('display','block'));}else{this.suggestion.setStyle('display','none');}},setResults:function(data){this.showResultsDiv();this.prepareSuggestion(data.suggestion);if(data.count&&data.count>data.results.length){this.more.getElement('.count').set('html',data.count);this.more.setStyle('display','block');}else{this.more.setStyle('display','none');}
this.results.getElements('.result').addClass('old');data.results.each(function(result){var id='result-'+result.model+'-'+result.pk;var existing=$('id');if(existing){existing.removeClass('old');}else{new Element('div',{'id':'result-'+result.model+'-'+result.pk,'class':'result result-'+result.model,'html':'<a href="'+result.url+'">'+result.title+'</a>'}).inject(this.results);}}.bind(this));this.results.getElements('.old').destroy();},clearResults:function(){this.lastSuccessfulQuery='';this.lastQuery='';this.hideResultsDiv();},showResultsDiv:function(){if(this.drop.getStyle('display')=='block'){this.drop.setStyle('opacity',1);}else{this.drop.setStyle('opacity',0).setStyle('display','block').tween('opacity',1);}},hideResultsDiv:function(){this.drop.tween('opacity',0);(function(){this.drop.setStyle('display','none');}.bind(this)).delay(500);}});Fin.Search.MetaSearchForm=new Class({Extends:Fin.Search,form:null,link:null,input:null,drop:null,suggestion:null,results:null,more:null,active:false,submitting:false,startListenToBlur:function(){$(document.body).addEvent('click',this.boundInputBlur);},stopListenToBlur:function(){$(document.body).removeEvent('click',this.boundInputBlur);},initialize:function(container){this.container=container;this.form=this.container.getElement('form');this.link=this.form.getElement('a');this.input=this.form.getElement('input');this.link.addEvent('click',this.linkClick.bind(this))
this.input.addEvent('keyup',this.inputChange.bind(this))
$(document.body).addEvent('keyup',function(e){if(e.key=='f'&&e.target==document.body){this.setActiveState(true);}}.bind(this));this.boundInputBlur=this.inputBlur.bind(this);this.startListenToBlur();this.container.setStyle('position','relative');this.drop=new Element('div',{'class':'MetaSearchFormResults SearchFormResults','styles':{'position':'absolute','color':'#000','opacity':0}}).set('tween').inject(this.container);this.suggestion=new Element('div',{'class':'suggestion','styles':{'display':'none'}}).inject(this.drop);this.results=new Element('div',{'class':'results'}).inject(this.drop);this.more=new Element('div',{'class':'more-results','styles':{'display':'none'}}).inject(this.drop);new Element('a',{'html':'Alle <strong><span class="count"></span> Treffer</strong> zeigen ...','href':'javascript:;','events':{'click':function(){this.form.submit();}.bind(this)}}).inject(this.more);this.setActiveState(this.active);},setActiveState:function(active){if(active){if(this.lastSuccessfulQuery.length){this.showResultsDiv();}
(function(){this.active=true;}.bind(this)).delay(500);this.form.addClass('isActive');this.input.select();this.room(true);}else{this.active=false;this.form.removeClass('isActive');this.hideResultsDiv();this.room(false);}},room:function(active){var el=$('MenuSignupTeaser');if(!el)return;el.set('morph',{duration:300});if(active){el.morph({top:-120,opacity:.5});}else{el.morph({top:0,opacity:1});}},linkClick:function(e){if(this.active){this.submitting=true;this.form.submit();}else{this.setActiveState(true);}},inputBlur:function(e){if(this.active&&!this.submitting&&!e.target.getParent('#'+this.container.get('id'))){this.setActiveState(false);}},lastSuccessfulQuery:'',lastQuery:'',inputChange:function(e){if(e&&e.key=='esc'){this.setActiveState(false);this.input.blur();}
var query=this.input.get('value');if(query.length<3){this.clearResults();return;}
if(this.lastQuery!=query){this.lookup(query);}},lookupTimeout:null,lookupQuery:'',lookup:function(query){window.clearTimeout(this.lookupTimeout);this.lookupTimeout=window.setTimeout(this.lookupNow.bind(this),500);this.lookupQuery=query;},lookupNow:function(){var query=this.lookupQuery;new Django.Request({withSession:false,method:'fin.search.getResults',onRequest:function(){this.lastQuery=query;this.form.addClass('isSearching');}.bind(this),onSuccess:function(data){this.lastSuccessfulQuery=query;this.setResults(data);this.form.removeClass('isSearching');}.bind(this),onFailure:function(){this.lastQuery=this.lastSuccessfulQuery;this.form.removeClass('isSearching');}.bind(this)}).send(query);},prepareSuggestion:function(suggestion){if(suggestion){var link=new Element('a',{'html':'Meinst du <strong>'+suggestion+'</strong>?','href':'javascript:;','events':{'click':function(e){e.preventDefault();this.input.set('value',suggestion);this.inputChange();}.bind(this)}}).inject(this.suggestion.empty().setStyle('display','block'));}else{this.suggestion.setStyle('display','none');}},setResults:function(data){this.showResultsDiv();this.prepareSuggestion(data.suggestion);if(data.count&&data.count>data.results.length){this.more.getElement('.count').set('html',data.count);this.more.setStyle('display','block');}else{this.more.setStyle('display','none');}
this.results.getElements('.result').addClass('old');data.results.each(function(result){var id='result-'+result.model+'-'+result.pk;var existing=$('id');if(existing){existing.removeClass('old');}else{new Element('div',{'id':'result-'+result.model+'-'+result.pk,'class':'result result-'+result.model,'html':'<a href="'+result.url+'">'+result.title+'</a>'}).inject(this.results);}}.bind(this));this.results.getElements('.old').destroy();},clearResults:function(){this.lastSuccessfulQuery='';this.lastQuery='';this.hideResultsDiv();},showResultsDiv:function(){if(this.drop.getStyle('display')=='block'){this.drop.setStyle('opacity',1);}else{this.drop.setStyle('opacity',0).setStyle('display','block').tween('opacity',1);}},hideResultsDiv:function(){this.drop.tween('opacity',0);(function(){this.drop.setStyle('display','none');}.bind(this)).delay(500);}});Fin.Auth=new Class({Extends:Fin});Fin.Auth.LoginForm=new Class({Extends:Fin.Auth,form:null,has_account:true,initialize:function(el){this.form=el;this.form.getElements('input[name=has_account]').addEvent('click',this.switchHasAccount.bind(this));this.switchHasAccount();},switchHasAccount:function(){var el=this.form.getElement('input[name=has_account]:checked');if(el)this.setHasAccount(this.form.getElement('input[name=has_account]:checked').value=='yes'?true:false);},setHasAccount:function(has_account){this.has_account=has_account;this.updateForm();},focus:function(){var username=this.form.getElement('input[name=username_or_email]');var password=this.form.getElement('input[name=password]');if(username.get('value').length){password.focus();}
else{username.focus();}},updateForm:function(){if(this.has_account){this.form.getElement('input[name=password]').getParent('tr').setStyle('display','table-row');this.form.getElement('input[type=submit]').set('value',_('Auth','login_button'));}else{this.form.getElement('input[name=password]').getParent('tr').setStyle('display','none');this.form.getElement('input[type=submit]').set('value',_('Auth','signup_button'));}}});Fin.Auth.LinkProfile=new Class({form:null,initialize:function(form){this.form=$(form);this.form.addEvent('submit',function(e){e.stop();this.send();}.bind(this));this.form.getElements('input[name=link_profile]').addEvent('change',function(e){this.update();}.bind(this));this.update();},update:function(){var data=this.form.toJSON();if(data.link_profile=='1'){this.form.getElement('.setPassword').hide();this.form.getElement('.linkProfile').show();}else{this.form.getElement('.linkProfile').hide();this.form.getElement('.setPassword').show();}
OverText.update();},send:function(){var data=this.form.toJSON();if(data.link_profile=='1'){new Django.Request({method:'fin.accounts.authentication.linkProfile',onSuccess:function(response){var callback=false;if(response.redirect){callback=function(){document.location.href=response.redirect;};}
alert(response.message,response.title,false,callback);}}).send(data.link_profile_email,data.link_profile_password);}else{new Django.Request({method:'fin.accounts.authentication.setPassword',onSuccess:function(response){var callback=false;if(response.redirect){callback=function(){document.location.href=response.redirect;};}
alert(response.message,response.title,false,callback);}}).send(data.set_password);}}});Fin.Accounts=new Class({Implements:Options,Extends:Fin,options:{}});Fin.Accounts.Monitor=new Class({Extends:Fin.Accounts});Fin.Accounts.Monitor.Activity=new Class({Extends:Fin.Accounts.Monitor,Implements:Options,options:{prefix:'id_activity-',sportactivitiesRel:{},exercisesRel:{}},initialize:function(options){this.setOptions(options);$(this.options.prefix+'sportactivity').addEvent('change',this.onSelectSportActivity.bind(this));$(this.options.prefix+'exercise').addEvent('change',this.onSelectExercise.bind(this));this.initSlides();new BoundValueFields([$('id_weight-weight'),$(this.options.prefix+'owner_weight')]);var mode=$(this.options.prefix+'mode').get('value');if(mode=='sportactivity')this.onSelectSportActivity();else this.onSelectExercise();},initSlides:function(){$('activity_input_duration_minutes').set('slide').slide('hide');$('activity_input_duration_seconds').set('slide').slide('hide');$('activity_input_repetitions').set('slide').slide('hide');$('activity_input_distance').set('slide').slide('hide');$('activity_input_weight').set('slide').slide('hide');$('activity_input_extra').set('slide').slide('hide');$('activity_input_nothing').set('slide').slide('show');},initiallySelected:false,onSelectSportActivity:function(){$(this.options.prefix+'mode').value='sportactivity';var id=$(this.options.prefix+'sportactivity').get('value');var rel=(id)?this.options.sportactivitiesRel[id]:[];this.showHideElement('duration_minutes',rel);this.showHideElement('duration_seconds',rel);this.showHideElement('repetitions',rel);this.showHideElement('distance',rel);this.showHideElement('weight',rel);this.showHideElement('extra',rel,null,id?true:false);this.showHideElement('nothing',rel,null,id?false:true);this.initiallySelected=true;},onSelectExercise:function(){$(this.options.prefix+'mode').value='exercise';var id=$(this.options.prefix+'exercise').get('value');var rel=(id)?this.options.exercisesRel[id]:[];this.showHideElement('duration_minutes',rel);this.showHideElement('duration_seconds',rel);this.showHideElement('repetitions',rel);this.showHideElement('distance',rel);this.showHideElement('weight',rel);this.showHideElement('extra',rel,null,id?true:false);this.showHideElement('nothing',rel,null,id?false:true);this.initiallySelected=true;},showHideElement:function(key,rel,trueCallback,show){el=$('activity_input_'+key)
if(show||rel.contains(key)){el.slide(this.initiallySelected?'in':'show');if(key!='extra'){el.getElements('input[type=text],textarea').set('disabled',false);}
if(trueCallback)trueCallback();}else{el.slide(this.initiallySelected?'out':'hide');if(key!='extra'){el.getElements('input').set('value','');el.getElements('input').set('disabled',true);}}},selectSportActivity:function(id){$(this.options.prefix+'sportactivity').set('value',id).fireEvent('change');},selectExercise:function(id){$(this.options.prefix+'exercise').set('value',id).fireEvent('change');}});Fin.Accounts.Monitor.Exercise=new Class({Extends:Fin.Accounts.Monitor,Implements:Options,options:{prefix:'id_activity-',exercisesRel:{},form:null},exercise:null,initialize:function(exercise,options){this.exercise=exercise;this.setOptions(options);var rel=(this.exercise)?this.options.exercisesRel[this.exercise]:[];this.showHideElement('duration_minutes',rel);this.showHideElement('duration_seconds',rel);this.showHideElement('repetitions',rel);this.showHideElement('distance',rel);this.showHideElement('weight',rel);this.initForm(this.options.form);},initForm:function(form){if(form){form.addEvent('submit',this.submit.bind(this));}},getFormData:function(form){var inputs=form.getElements('input');var data={};inputs.each(function(input){data[input.get('name')]=input.get('value');});return data;},resetField:function(name){var el=this.options.form.getElement('*[name='+name+']');if(el)el.set('value','');},reset:function(){this.resetField('activity-duration_minutes');this.resetField('activity-duration_seconds');this.resetField('activity-duration_repetitions');this.resetField('activity-duration_distance');this.resetField('activity-note');},submit:function(e){e.preventDefault();var messageOptions={id:'activity_saved',container:this.options.form.getElement('.messages'),closeButton:false}
new Django.Request({method:'fin.accounts.monitor.addActivityEntry',onSuccess:function(response){new Message.Success(_('ExerciseMonitorForm','activity_saved','Your activity has been saved successfully: {activity}',{activity:response}),messageOptions).show()
this.reset();}.bind(this),onFailure:function(response){new Message.Error(_('ExerciseMonitorForm','activity_not_saved','Your activity has not been saved. Please provide proper input.',{activity:response}),messageOptions).show()}}).send(this.getFormData(this.options.form));},showHideElement:function(key,rel,trueCallback,show){if(!this.options.form)return;el=this.options.form.getElement('.activity_input_'+key)
if(!el)return;if(show||rel.contains(key)){el.slide('show');if(key!='extra'){el.getElements('input[type=text],textarea').set('disabled',false);}
if(trueCallback)trueCallback();}else{el.slide('hide');if(key!='extra'){el.getElements('input').set('value','');el.getElements('input').set('disabled',true);}}},bindWithChart:function(chart){this.chart=chart;}});Fin.Accounts.Monitor.HighChart=new Class({Extends:Fin.Accounts.Monitor,Implements:Options,options:{type:'any',exercise:0,sportactivity:0,minimal:false,axisLabels:true,minimalEntryCount:0,scope:null,initialScope:'all',reverseScopeSelectors:false,onNoEntries:function(){},onFewEntries:false,chartOptions:{chart:{renderTo:null,marginTop:20,animation:false,backgroundColor:false,borderRadius:5},legend:{layout:'horizontal',style:{left:'auto',bottom:'0px',right:'auto',top:'auto'},backgroundColor:'#fcfcfc',borderColor:'#ddd',borderRadius:'2px'},tooltip:{crosshairs:true,formatter:function(){return''+new Date(this.x).getTime()+': '+this.y;}},title:false,credits:{enabled:false},xAxis:{type:'datetime',title:false,startOnTick:true,endOnTick:true},yAxis:[],plotOptions:{series:{shadow:false,stacking:'normal'},areaspline:{lineWidth:3},spline:{lineWidth:3},line:{lineWidth:1},column:{}}}},box:null,chart:null,data:null,min:new Date().getTime(),max:0,scopeYear:null,scopeMonth:null,scopeWeek:null,initialScopeSet:false,reset:function(){if(this.chart){this.box.empty();this.min=new Date().getTime();this.max=0;this.scopeYear=null;this.scopeMonth=null;this.scopeWeek=null;this.initialScopeSet=false;this.initializeChart();}},initialize:function(box,data,options){this.box=box;this.options.chartOptions.chart.renderTo=this.box.id;this.setOptions(options);if(this.options.minimal)this.setMinimalOptions();this.initializeChartData(data);var entryCount=this.getEntryCount();if(entryCount==0){this.options.onNoEntries();return;}else if(entryCount<this.options.minimalEntryCount){if(this.options.onFewEntries){this.options.onFewEntries();}else{this.options.onNoEntries();}
return;}
this.setChartOptions();this.initializeChart();this.createChart();this.createScopeSelector();},setMinimalOptions:function(){this.options.chartOptions.chart.marginTop=15;this.options.chartOptions.chart.marginBottom=23;this.options.chartOptions.legend=false;this.options.chartOptions.xAxis.startOnTick=false;this.options.chartOptions.xAxis.endOnTick=false;this.options.chartOptions.xAxis.tickPixelInterval=120;this.options.chartOptions.xAxis.tickPosition='inside';this.options.chartOptions.xAxis.tickLength=5;this.options.chartOptions.xAxis.tickWidth=2;if(!this.options.axisLabels){this.options.chartOptions.chart.marginBottom=15;this.options.chartOptions.xAxis.tickWidth=0;this.options.chartOptions.xAxis.labels=false;}},setNonlinearOptions:function(data){debug.log('chart: setNonlinearOptions');var categories=[];data.each(function(d){categories.push(d[0]);});this.setOptions({chartOptions:{xAxis:{type:'linear',categories:categories,labels:{step:10},max:30}}});},getEntryCount:function(){return 0;},createScopeSelector:function(){if(!this.options.scope)return;this.options.scope=$(this.options.scope);this.options.scope.empty();if(!this.min||!this.max)return;var injectPosition=(this.options.reverseScopeSelectors)?'top':'bottom';this.scopeWeek=new Element('select').setStyle('display','none').inject(this.options.scope,injectPosition);this.scopeMonth=new Element('select').setStyle('display','none').inject(this.options.scope,injectPosition);this.scopeYear=new Element('select').setStyle('display','none').inject(this.options.scope,injectPosition);this.scopeYear.addEvent('change',this.changeScopeYear.bind(this));this.scopeMonth.addEvent('change',this.changeScopeMonth.bind(this));this.scopeWeek.addEvent('change',this.changeScopeWeek.bind(this));this.fillYearSelector(this.min,this.max);},changeScopeYear:function() {var value=this.scopeYear.get('value');if(!value.length){value=this.scopeYear.getFirst('option').get('value');this.scopeYear.set('value',value);}
var timespan=value.split('-');if(this.initialScopeSet||this.options.initialScope=='year'){this.setExtremes(timespan[0],timespan[1]);this.initialScopeSet=true;}
this.fillMonthSelector(timespan[0],timespan[1]);},changeScopeMonth:function() {var value=this.scopeMonth.get('value');if(!value.length){value=this.scopeMonth.getFirst('option').get('value');this.scopeMonth.set('value',value);}
var timespan=value.split('-');if(this.initialScopeSet||this.options.initialScope=='month'){this.setExtremes(timespan[0],timespan[1]);this.initialScopeSet=true;}
this.fillWeekSelector(timespan[0],timespan[1]);},changeScopeWeek:function() {var value=this.scopeWeek.get('value');if(!value.length){value=this.scopeWeek.getFirst('option').get('value');this.scopeWeek.set('value',value);}
var timespan=value.split('-');if(this.initialScopeSet||this.options.initialScope=='week'){this.setExtremes(timespan[0],timespan[1]);this.initialScopeSet=true;}},fillYearSelector:function(minExtremeTS,maxExtremeTS){minExtremeTS=minExtremeTS.toInt();maxExtremeTS=maxExtremeTS.toInt();var minExtreme=new Date(minExtremeTS);var maxExtreme=new Date(maxExtremeTS);var minTS=new Date(minExtreme.getFullYear(),0,1).getTime();var maxTS=new Date(minExtreme.getFullYear()+1,0,1).getTime()-1;this.scopeYear.empty()
var toSelect=0;if(minExtreme.getFullYear()!=maxExtreme.getFullYear()){if(minExtreme.getFullYear()!=maxExtreme.getFullYear()){var label=minExtreme.getFullYear()+' – '+maxExtreme.getFullYear();}else{var label=minExtreme.getFullYear();}
new Element('option',{'value':minExtremeTS+'-'+maxExtremeTS,'html':label}).inject(this.scopeYear);new Element('option',{'value':'','html':''}).inject(this.scopeYear);if(this.options.initialScope=='year'||this.options.initialScope=='month'||this.options.initialScope=='week'){toSelect=2;}}
var curTS=maxTS;while(curTS>=minTS){var cur=new Date(curTS);var curMin=Math.max(this.min,new Date(cur.getFullYear(),0,1).getTime());var curMax=Math.min(this.max,new Date(cur.getFullYear()+1,0,1).getTime()-1);if(new Date(curMin).getFullYear()==cur.getFullYear()){new Element('option',{'value':curMin+'-'+curMax,'html':cur.getFullYear()}).inject(this.scopeYear);}
curTS=new Date(cur.getFullYear()-1,1,1);}
this.scopeYear.setStyle('display','');this.scopeYear.set('value',this.scopeYear.getElements('option')[toSelect].get('value'));this.changeScopeYear();},fillMonthSelector:function(minExtremeTS,maxExtremeTS){minExtremeTS=minExtremeTS.toInt();maxExtremeTS=maxExtremeTS.toInt();var minExtreme=new Date(minExtremeTS);var maxExtreme=new Date(maxExtremeTS);var minTS=new Date(minExtreme.getFullYear(),minExtreme.getMonth(),1).getTime();if(maxExtreme.getMonth()!=11){var maxTS=new Date(maxExtreme.getFullYear(),maxExtreme.getMonth()+1,1).getTime()-1;}else{var maxTS=new Date(maxExtreme.getFullYear()+1,0,1).getTime()-1;}
this.scopeMonth.empty()
var toSelect=0;if(minExtreme.getMonth()!=maxExtreme.getMonth()||minExtreme.getFullYear()!=maxExtreme.getFullYear()){if(minExtreme.getFullYear()!=maxExtreme.getFullYear()){var label=minExtreme.format('%B.%Y')+' – '+maxExtreme.format('%B.%Y');}else{if(minExtreme.getMonth()!=maxExtreme.getMonth()){var label=minExtreme.format('%B')+' – '+maxExtreme.format('%B');}else{var label=minExtreme.format('%B');}}
new Element('option',{'value':minExtremeTS+'-'+maxExtremeTS,'html':label}).inject(this.scopeMonth);new Element('option',{'value':'','html':''}).inject(this.scopeMonth);if(this.options.initialScope=='month'||this.options.initialScope=='week'){toSelect=2;}}
var curTS=maxTS;while(curTS>=minTS){var cur=new Date(curTS);var curMin=Math.max(this.min,new Date(cur.getFullYear(),cur.getMonth(),1).getTime());if(cur.getMonth()!=11){var curMax=Math.min(this.max,new Date(cur.getFullYear(),cur.getMonth()+1,1).getTime()-1);}else{var curMax=Math.min(this.max,new Date(cur.getFullYear()+1,0,1).getTime()-1);}
if(new Date(curMin).getMonth()==cur.getMonth()){new Element('option',{'value':curMin+'-'+curMax,'html':cur.format('%B')}).inject(this.scopeMonth);}
if(cur.getMonth()!=0){curTS=new Date(cur.getFullYear(),cur.getMonth()-1,1);}else{curTS=new Date(cur.getFullYear()-1,11,1);}}
this.scopeMonth.setStyle('display','');this.scopeMonth.set('value',this.scopeMonth.getElements('option')[toSelect].get('value'));this.changeScopeMonth();},getWeekStart:function(d){d=new Date(d.getFullYear(),d.getMonth(),d.getDate());if(d.getDay()!=0){return new Date(d.getTime()+(1-(d.getDay()-1)*1000*3600*24)+1);}else{return new Date(d.getTime()-(6*1000*3600*24)+1);}},getWeekEnd:function(d){d=new Date(d.getFullYear(),d.getMonth(),d.getDate());if(d.getDay()!=0){return new Date(d.getTime()+((7-d.getDay()+1)*1000*3600*24)-1);}else{return new Date(d.getTime()+(1*1000*3600*24)-1);}},getWeekLabel:function(min,max,calcMin,calcMax){if(!calcMin)calcMin=min;if(!calcMax)calcMax=max;if(calcMin.getFullYear()!=calcMax.getFullYear()){var minLabel=min.format('%d.%m.%Y');var maxLabel=max.format('%d.%m.%Y');}else if(calcMin.getMonth()!=calcMax.getMonth()){var minLabel=min.format('%d.%m.');var maxLabel=max.format('%d.%m.');}else{var minLabel=min.format('%d.');var maxLabel=max.format('%d.');}
if(minLabel!=maxLabel){return minLabel+' - '+maxLabel;}else{return minLabel;}},fillWeekSelector:function(minExtremeTS,maxExtremeTS){minExtremeTS=minExtremeTS.toInt();maxExtremeTS=maxExtremeTS.toInt();var minExtreme=new Date(minExtremeTS);var maxExtreme=new Date(maxExtremeTS);var minTS=this.getWeekStart(minExtreme).getTime();var maxTS=this.getWeekEnd(maxExtreme).getTime();this.scopeWeek.empty();var toSelect=0;if(this.getWeekStart(minExtreme).getTime()!=this.getWeekStart(maxExtreme).getTime()){new Element('option',{'value':minExtremeTS+'-'+maxExtremeTS,'html':this.getWeekLabel(minExtreme,maxExtreme)}).inject(this.scopeWeek);new Element('option',{'value':'','html':''}).inject(this.scopeWeek);if(this.options.initialScope=='week'){toSelect=2;}}
var curTS=maxTS;while(curTS>=minTS){var cur=new Date(curTS);var curMin=Math.max(this.min,this.getWeekStart(cur).getTime());var curMax=Math.min(this.max,this.getWeekEnd(cur).getTime());new Element('option',{'value':curMin+'-'+curMax,'html':this.getWeekLabel(new Date(curMin),new Date(curMax),minExtreme,maxExtreme)}).inject(this.scopeWeek);curTS-=(1000*3600*24*7);}
this.scopeWeek.setStyle('display','');this.scopeWeek.set('value',this.scopeWeek.getElements('option')[toSelect].get('value'));this.changeScopeWeek();},setChartOptions:function(){},initializeChartData:function(data){this.data=data;},initializeChart:function(){this.chart=new Highcharts.Chart(this.options.chartOptions);},createChart:function(){},setAbsoluteExtremes:function(data){if(!data)return;var first=data[(data.length>1)?data.length-1:0];var last=data[0];if(first&&first[0]<this.min)this.min=first[0];if(last&&last[0]>this.max)this.max=last[0];},setExtremes:function(min,max){min=min.toInt();max=max.toInt();this.chart.xAxis[0].setExtremes(min,max);}});Fin.Accounts.Monitor.HighChart.Body=new Class({Extends:Fin.Accounts.Monitor.HighChart,setChartOptions:function(){this.options.chartOptions.tooltip={formatter:function(){var format={0:'Körpergewicht: <strong>'+this.y+' kg',1:'Körperfett: <strong>'+this.y+'%.',2:'Schlaf: <strong>'+this.y+' Stunden.',3:'Zigaretten <strong>'+this.y+' Stück.'}[this.series.yAxis.options.index];return format+'<br/>'+new Date(this.x).format()+' Uhr';}};this.options.chartOptions.yAxis=[{title:false,labels:{formatter:function(){return this.value+' kg';},style:{color:this.getColorForKey('bodyweight')[0]}}},{title:false,labels:{formatter:function(){return this.value+'%';},style:{color:this.getColorForKey('bodyfat')[0]}}},{title:false,labels:{formatter:function(){return this.value+' Std.';},style:{color:this.getColorForKey('sleep')[0]}},opposite:true},{title:false,labels:{formatter:function(){return this.value+' Zig.';},style:{color:this.getColorForKey('tobaccoconsumption')[0]}},opposite:true}];if(!this.options.axisLabels){this.options.chartOptions.yAxis[0].labels=false;this.options.chartOptions.yAxis[1].labels=false;this.options.chartOptions.yAxis[2].labels=false;this.options.chartOptions.yAxis[3].labels=false;}},getAxisForKey:function(key){return{'bodyweight':0,'bodyfat':1,'sleep':2,'tobaccoconsumption':3}[key]},getColorForKey:function(key){return{'bodyweight':['#ff953f','#ff953f'],'bodyfat':['#ff563f','#ff563f'],'sleep':['#3295fb','#3295fb'],'tobaccoconsumption':['#484e53','#484e53']}[key]},getNameForKey:function(key){return{'bodyweight':'Körpergewicht','bodyfat':'Körperfett','sleep':'Schlaf','tobaccoconsumption':'Tabakkonsum'}[key]},getEntryCount:function(){var max=0;max=Math.max(max,this.data.weight.length);max=Math.max(max,this.data.bodyfat.length);max=Math.max(max,this.data.sleep.length);max=Math.max(max,this.data.tobaccoconsumption.cigarettes.length);return max;},createChart:function(){if(this.data.weight.length)this.setPrimary('bodyweight',this.data.weight,false);if(this.data.bodyfat.length)this.setPrimary('bodyfat',this.data.bodyfat,false);if(this.data.sleep.length)this.setPrimary('sleep',this.data.sleep,false);if(this.data.tobaccoconsumption.cigarettes.length)this.setPrimary('tobaccoconsumption',this.data.tobaccoconsumption.cigarettes,false);},setPrimary:function(key,data){this.setAbsoluteExtremes(data);var axis=this.getAxisForKey(key);var color=this.getColorForKey(key)[0];var fill=this.getColorForKey(key)[1];var name=this.getNameForKey(key);this.chart.addSeries({type:'spline',data:data,name:name,yAxis:axis,color:color});}});Fin.Accounts.Monitor.HighChart.Bodycheck=new Class({Extends:Fin.Accounts.Monitor.HighChart,setChartOptions:function(){this.options.chartOptions.tooltip={formatter:function(){var format={0:'<strong>'+this.y+' '+this.series.name+'</strong>',1:'Puls: <strong>'+this.y+' Schläge/Min.',2:'Körpergewicht: <strong>'+this.y+' kg',3:'Körperfett: <strong>'+this.y+'%.',4:'Schlaf: <strong>'+this.y+' Stunden.',5:'Zigaretten <strong>'+this.y+' Stück.'}[this.series.yAxis.options.index];return format+'<br/>'+new Date(this.x).format()+' Uhr';}};this.options.chartOptions.yAxis=[{title:false,labels:{formatter:function(){return this.value},style:{color:'#666'}}},{title:false,labels:{formatter:function(){return this.value+' bpm';},style:{color:this.getColorForKey('pulse')[0]}},opposite:true},{title:false,labels:{formatter:function(){return this.value+' kg';},style:{color:this.getColorForKey('bodyweight')[0]}},opposite:true},{title:false,labels:{formatter:function(){return this.value+'%';},style:{color:this.getColorForKey('bodyfat')[0]}},opposite:true},{title:false,labels:{formatter:function(){return this.value+' Std.';},style:{color:this.getColorForKey('sleep')[0]}},opposite:true},{title:false,labels:{formatter:function(){return this.value+' Zig.';},style:{color:this.getColorForKey('tobaccoconsumption')[0]}},opposite:true}];if(!this.options.axisLabels){this.options.chartOptions.yAxis[0].labels=false;this.options.chartOptions.yAxis[1].labels=false;this.options.chartOptions.yAxis[2].labels=false;this.options.chartOptions.yAxis[3].labels=false;this.options.chartOptions.yAxis[4].labels=false;this.options.chartOptions.yAxis[5].labels=false;}},getAxisForKey:function(key){return{'situp_count':0,'pushup_count':0,'skipping_count':0,'pulse':1,'bodyweight':2,'bodyfat':3,'sleep':4,'tobaccoconsumption':5}[key]},getColorForKey:function(key){return{'situp_count':['#198cc0','#a6cada'],'pushup_count':['#c01960','#ce8aa7'],'skipping_count':['#639d1f','#adca8b'],'pulse':['#ffd03f','#ffd03f'],'bodyweight':['#ff953f','#ff953f'],'bodyfat':['#ff563f','#ff563f'],'sleep':['#3295fb','#3295fb'],'tobaccoconsumption':['#484e53','#484e53']}[key]},getNameForKey:function(key){return{'situp_count':'Situps','pushup_count':'Liegestütze','skipping_count':'Seilspringen','pulse':'Puls','bodyweight':'Körpergewicht','bodyfat':'Körperfett','sleep':'Schlaf','tobaccoconsumption':'Tabakkonsum'}[key]},getEntryCount:function(){return Math.max(this.data.bodycheck.situp_count.length,Math.max(this.data.bodycheck.situp_count.length,this.data.bodycheck.situp_count.length));},createChart:function(){this.setPrimary('situp_count',this.data.bodycheck.situp_count);this.setPrimary('pushup_count',this.data.bodycheck.pushup_count);this.setPrimary('skipping_count',this.data.bodycheck.skipping_count);if(this.data.bodycheck.pulse&&this.data.bodycheck.pulse.length)this.setSecondary('pulse',this.data.bodycheck.pulse,false);if(this.data.weight.length)this.setAdditional('bodyweight',this.data.weight,false);if(this.data.sleep.length)this.setAdditional('sleep',this.data.sleep,false);if(this.data.tobaccoconsumption.cigarettes.length)this.setAdditional('tobaccoconsumption',this.data.tobaccoconsumption.cigarettes,false);},setPrimary:function(key,data){this.setAbsoluteExtremes(data);var axis=this.getAxisForKey(key);var color=this.getColorForKey(key)[0];var fill=this.getColorForKey(key)[1];var name=this.getNameForKey(key);this.chart.addSeries({type:'areaspline',data:data,name:name,yAxis:axis,color:color,fillColor:fill});},setSecondary:function(key,data){var axis=this.getAxisForKey(key);var color=this.getColorForKey(key)[0];var name=this.getNameForKey(key);this.chart.addSeries({type:'spline',data:data,name:name,yAxis:axis,color:color});},setAdditional:function(key,data,visible){var axis=this.getAxisForKey(key);var color=this.getColorForKey(key)[1];var name=this.getNameForKey(key);this.chart.addSeries({type:'spline',data:data,name:name,yAxis:axis,color:color,visible:visible});}});Fin.Accounts.Monitor.HighChart.Activity=new Class({Extends:Fin.Accounts.Monitor.HighChart,setChartOptions:function(){this.options.chartOptions.tooltip={formatter:function(){var unit={0:' Minuten',1:' Sekunden',2:' Kilometer',3:'',4:' Kilogramm',5:' Schläge/Min.',6:' Kilogramm',7:'%',8:' Stunden',9:' Stück'}[this.series.yAxis.options.index];var name={0:'Dauer',1:'Dauer',2:'Distanz',3:'Wiederholungen',4:'Gewicht',5:'Puls',6:'Körpergewicht',7:'Körperfett',8:'Schlaf',9:'Zigaretten'}[this.series.yAxis.options.index];return name+': <strong>'+this.y+unit+'</strong><br/>'+new Date(this.x).format()+' Uhr';}};var minimal=this.options.minimal;this.options.chartOptions.yAxis=[{title:false,minPadding:0.01,maxPadding:0.01,labels:{formatter:function(){return minimal?this.value+'m':this.value+' Min.';},style:{color:this.getColorForKey('duration_minutes')[0]}}},{title:false,minPadding:0.01,maxPadding:0.01,labels:{formatter:function(){return minimal?this.value+'s':this.value+' Sek.';},style:{color:this.getColorForKey('duration_seconds')[0]}}},{title:false,minPadding:0.01,maxPadding:0.01,labels:{formatter:function(){return minimal?this.value+'km':this.value+'km';},style:{color:this.getColorForKey('distance')[0]}}},{title:false,minPadding:0.01,maxPadding:0.01,labels:{formatter:function(){return minimal?this.value+'x':this.value+' Wdh.';},style:{color:this.getColorForKey('repetitions')[0]}}},{title:false,minPadding:0.01,maxPadding:0.01,labels:{formatter:function(){return minimal?this.value+'kg':this.value+' Kilo';},style:{color:this.getColorForKey('weight')[0]}}},{title:false,labels:{formatter:function(){this.value+' BPM';},style:{color:this.getColorForKey('pulse')[0]}},opposite:true},{title:false,labels:{formatter:function(){this.value+'kg';},style:{color:this.getColorForKey('bodyweight')[0]}},opposite:true},{title:false,labels:{formatter:function(){this.value+'%';},style:{color:this.getColorForKey('bodyfat')[0]}},opposite:true},{title:false,labels:{formatter:function(){this.value+' Std.';},style:{color:this.getColorForKey('sleep')[0]}},opposite:true},{title:false,labels:{formatter:function(){this.value+' Zig.';},style:{color:this.getColorForKey('tobaccoconsumption')[0]}},opposite:true}];if(!this.options.axisLabels){this.options.chartOptions.yAxis[0].labels=false;this.options.chartOptions.yAxis[1].labels=false;this.options.chartOptions.yAxis[2].labels=false;this.options.chartOptions.yAxis[3].labels=false;this.options.chartOptions.yAxis[4].labels=false;this.options.chartOptions.yAxis[5].labels=false;this.options.chartOptions.yAxis[6].labels=false;this.options.chartOptions.yAxis[7].labels=false;this.options.chartOptions.yAxis[8].labels=false;this.options.chartOptions.yAxis[9].labels=false;}
if(this.options.sportactivitySelector){this.createSelector('sportactivity',this.options.sportactivitySelector,this.data.activity.sportactivity);}
if(this.options.exerciseSelector){this.createSelector('exercise',this.options.exerciseSelector,this.data.activity.exercise);}},createSelector:function(key,container,data){this.activitySelector=new Element('select').inject($(container));this.activitySelector.addEvent('change',function(e){var item=e.target;this.showActivity(key,item.get('value'));}.bind(this));Object.each(data,function(item,index,object){var datetext=''
if(item._meta.first==item._meta.last){datetext=new Date(item._meta.first).format('%d.%m.%Y');}else{if(new Date(item._meta.first).getFullYear()==new Date().getFullYear()){datetext=new Date(item._meta.first).format('%d.%m.')+' – ';}else{datetext=new Date(item._meta.first).format('%d.%m.%Y')+' – ';}
if(new Date(item._meta.last).getFullYear()==new Date().getFullYear()){datetext+=new Date(item._meta.last).format('%d.%m.');}else{datetext+=new Date(item._meta.last).format('%d.%m.%Y');}}
var option=new Element('option',{'value':item._meta.id,'html':item._meta.title+' ('+datetext+')'});option.inject(this.activitySelector,'top');},this);},getAxisForKey:function(key){return{'duration_minutes':0,'duration_seconds':1,'distance':2,'repetitions':3,'weight':4,'pulse':5,'bodyweight':6,'bodyfat':7,'sleep':8,'tobaccoconsumption':9}[key]},getColorForKey:function(key){return{'duration_minutes':['#198cc0','#a6cada'],'duration_seconds':['#198cc0','#a6cada'],'distance':['#c01960','#ce8aa7'],'repetitions':['#639d1f','#adca8b'],'weight':['#198cc0','#a6cada'],'pulse':['#ffd03f','#ffd03f'],'bodyweight':['#ff953f','#ff953f'],'bodyfat':['#ff563f','#ff563f'],'sleep':['#3295fb','#3295fb'],'tobaccoconsumption':['#484e53','#484e53']}[key]},getNameForKey:function(key){return{'duration_minutes':'Dauer (Minuten)','duration_seconds':'Dauer (Sekunden)','distance':'Distanz','repetitions':'Wiederholungen','weight':'Gewicht','pulse':'Puls','bodyweight':'Körpergewicht','bodyfat':'Körperfett','sleep':'Schlaf','tobaccoconsumption':'Tabakkonsum'}[key]},setPrimary:function(key,data){this.setAbsoluteExtremes(data);var axis=this.getAxisForKey(key);var color=this.getColorForKey(key)[0];var fill=this.getColorForKey(key)[1];var name=this.getNameForKey(key);var type=this.options.minimal?'spline':'areaspline';this.chart.addSeries({type:data.length>1?type:'bar',data:data,name:name,yAxis:axis,color:color,fillColor:fill});},setSecondary:function(key,data){var axis=this.getAxisForKey(key);var color=this.getColorForKey(key)[0];var name=this.getNameForKey(key);this.chart.addSeries({type:'spline',data:data,name:name,yAxis:axis,color:color});},setAdditional:function(key,data,visible){var axis=this.getAxisForKey(key);var color=this.getColorForKey(key)[1];var name=this.getNameForKey(key);this.chart.addSeries({type:'spline',data:data,name:name,yAxis:axis,color:color,visible:visible});},getEntryCount:function(){if(this.options.type=='exercise'&&this.options.exercise){return this.data.activity.exercise[this.options.exercise].length;}
if(this.options.type=='sportactivity'&&this.options.sportactivity){return this.data.activity.sportactivity[this.options.sportactivity].length;}
if(this.data.latest.activity[this.options.type]){return this.data.activity[this.options.type][this.data.latest.activity[this.options.type][1]].length;}
return 0;},createChart:function(){if(this.data.latest.activity[this.options.type]){return this.showActivity(this.data.latest.activity[this.options.type][0],this.data.latest.activity[this.options.type][1]);}else{if(this.options.type=='exercise'&&this.options.exercise){return this.showActivity('exercise',this.options.exercise);}
if(this.options.type=='sportactivity'&&this.options.sportactivity){return this.showActivity('sportactivity',this.options.sportactivity);}}},showLink:function(title,url){if(this.options.linkContainer){new Element('a',{'href':url,'html':title}).inject($(this.options.linkContainer).empty())}},showActivity:function(type,id){if(this.activitySelector){this.activitySelector.set('value',id);}
this.reset();var activity=false;if(type=='exercise'){activity=this.data.activity.exercise[id];this.showLink('zur Übung',activity._meta.url);}else if(type=='sportactivity'){activity=this.data.activity.sportactivity[id];this.showLink('zur Aktivität',activity._meta.url);}
if(!activity){return false;}
var primary=false;var primary_count=0;var secondary=false;var secondary_count=0;if(activity._meta.monitor_duration_minutes&&activity.duration_minutes.length>primary_count){primary_count=activity.duration_minutes.length;primary='duration_minutes';}
if(activity._meta.monitor_duration_seconds&&activity.duration_seconds.length>primary_count){primary_count=activity.duration_seconds.length;primary='duration_seconds';}
if(activity._meta.monitor_repetitions&&activity.repetitions.length>primary_count){primary_count=activity.repetitions.length;primary='repetitions';}
if(activity._meta.monitor_weight&&activity.weight.length>primary_count){primary_count=activity.weight.length;primary='weight';}
if(primary)this.setPrimary(primary,activity[primary]);if(activity._meta.monitor_duration_seconds&&primary!='duration_seconds')
this.setSecondary('duration_seconds',activity['duration_seconds']);if(activity._meta.monitor_duration_minutes&&primary!='duration_minutes')
this.setSecondary('duration_minutes',activity['duration_minutes']);if(activity._meta.monitor_repetitions&&primary!='repetitions')
this.setSecondary('repetitions',activity['repetitions']);if(activity._meta.monitor_weight&&primary!='weight')
this.setSecondary('weight',activity['weight']);if(!this.options.minimal){if(activity.pulse.length)this.setAdditional('pulse',activity.pulse,false);if(this.data.weight.length)this.setAdditional('bodyweight',this.data.weight,false);if(this.data.sleep.length)this.setAdditional('sleep',this.data.sleep,false);if(this.data.tobaccoconsumption.cigarettes.length)this.setAdditional('tobaccoconsumption',this.data.tobaccoconsumption.cigarettes,false);}
this.createScopeSelector();return true;}});Fin.Accounts.Monitor.EntryForm=new Class({Extends:Fin.Accounts.Monitor,form:null,entryDateInput:null,entryDateField:null,entryDateLabels:[],date:new Date(),picker:null,initialize:function(form){this.form=form;this.entryDateField=form.getElement('input[name="monitor_entry_date"]');this.entryDateInput=form.getElement('.entryDateInput');this.entryDateLabels=form.getElements('.entryDate');this.entryDateReduce=form.getElement('.entryDateReduce');this.entryDateIncrease=form.getElement('.entryDateIncrease');var initWithDate=parseInt(this.entryDateField.get('value'));if(initWithDate){this.date=new Date(initWithDate);}
this.commitCurrentDate();this.entryDateReduce.addEvent('click',function(e){this.translateDate(-86400000);this.commitCurrentDate();}.bind(this));this.entryDateIncrease.addEvent('click',function(e){this.translateDate(86400000);this.commitCurrentDate();}.bind(this));this.entryDateInput.store('datepicker:value',this.date.strftime())
this.picker=new Picker.Date(this.entryDateInput,{timePicker:false,useFadeInOut:false,positionOffset:{x:-55,y:-50},days_title:function(date,options){return date.format('%B %Y');},onSelect:function(date){this.date=date;this.commitCurrentDate();}.bind(this)});},translateDate:function(delta){this.date=new Date(this.getDateTimestamp()+delta);},getDateTimestamp:function(){return this.date.getTime();},getDateInt:function(date){var n=date.getFullYear()*10000+date.getMonth()*100+date.getDate()
return n;},getDateFormatted:function(){return this.date.format(Locale.get('Date.shortDate'));},getDateHumanized:function(){var diff=parseInt(this.getDateInt(this.date)-this.getDateInt(new Date()));if(diff==0){return'heute';}else{return this.getDateFormatted();}},commitCurrentDate:function(){var formatted=this.getDateFormatted();this.entryDateField.set('value',this.getDateTimestamp());this.entryDateInput.set('value',this.getDateHumanized());this.entryDateLabels.set('text',this.getDateHumanized());}});Fin.Accounts.ProfilePhotoManager=new Class({Extends:Fin.Accounts,Implements:Options,Key:'Fin.Accounts.ProfilePhotoManager',options:{PhotoBooth:{save:'/',next:false,callBacks:{'onSave':function(){},'onSaved':function(){},'onError':function(){}}}},hasPhoto:false,booth:null,tabs:null,initialize:function(options){this.setOptions(options);this.hasPhoto=$chk($('ProfilePhotoCurrent').getElement('img.profilePhoto'))?true:false;$('ProfilePhotoCurrent').setStyle('display','block');$('ProfilePhotoUpload').setStyle('height',60);this.initTabs();if(Browser.Plugins.Flash.version<9){$('ProfilePhotoBooth_Tab').hide();}else{if(!this.hasPhoto)this.initUploader($('ProfilePhotoCurrent').getElement('.uploadTrigger'));else this.initUploader($('ProfilePhotoUpload').getElement('.uploadTrigger'));}},initTabs:function(){this.tabs=new Tabs($('ProfilePhotoTabs'));this.tabs.addTab($('ProfilePhotoCurrent'));this.tabs.addTab($('ProfilePhotoUpload'));this.tabs.addTab($('ProfilePhotoBooth'),{'activate':function(){(function(){if(this.booth==null){var swfContainer=$('ProfilePhotoBooth').getElement('.swf');this.booth=new PhotoBooth(swfContainer,this.options.PhotoBooth).render();}}).delay(800,this);}.bind(this)});(function(){this.tabs.activate($('ProfilePhotoCurrent'));this.tabs.activate($('ProfilePhotoCurrent'));}.bind(this)).delay(300);},initUploader:function(btn){var button=$('ProfilePhotoUploadButton');var reset=$('ProfilePhotoUploadReset');var input=$('ProfilePhotoUploadFile');var form=$('ProfilePhotoUploadForm');var name=new Element('div').setStyle('margin-bottom',20).hide().inject(input,'after');button.hide();reset.hide();form.addEvent('submit',function(e){if(!input.value){return false;}});reset.addEvent('click',function(e){input.value='';input.fireEvent('change',e);});input.addEvent('change',function(){if(input.value){name.set('html',input.value).show();button.show();reset.show();input.hide();}else{name.set('html','').hide();button.hide();reset.hide();input.show();}});},setCurrentPhoto:function(url){this.hasPhoto=true;new Element('img',{'src':url,'class':'profilePhoto'}).inject($('ProfilePhotoCurrent').empty());$('ProfilePhotoUpload_Tab').setStyle('display','inline');this.tabs.activate($('ProfilePhotoCurrent'));}});Fin.Accounts.SharingEditForm=new Class({Extends:Fin.Accounts,options:{},initialize:function(el,options){el.getElements('select').each(function(sel){var property=sel.name
var div=new Element('div',{'class':'sharesetters sharesetters-'+property}).inject(sel,'after')
sel.getElements('option').each(function(opt){var access_level=opt.value
var a=new Element('a',{'html':'<span>'+opt.get('text')+'</span>','href':'#','class':'sharewith-'+access_level,'events':{'click':function(e){e.preventDefault()
new Django.Request({trigger:this,method:'fin.accounts.sharing.setProperty',onSuccess:function(data){$$('.share-'+property).removeClass('sharewith-[a-z]*').addClass('sharewith-'+data.accessLevel)
$$('.sharestatus.share-'+property).set('text',this.trigger.get('text'))
$$('.sharesetters-'+property+' .current').removeClass('current').addClass('inactive')
$$('.sharesetters-'+property+' .sharewith-'+data.accessLevel).addClass('current').removeClass('inactive')
var message=_('SharingEditForm','property_updated','Sharing property {property} successfully updated to "{access_level}"',{'property':data.sharingPropertyVerbosePlural,'access_level':data.accessLevelVerbose})
new Message.Success(message,{id:'sharing_property_update'}).show()},onFailure:function(data){new Message.Error('Error',{id:'sharing_property_update'}).show()}}).send(property,access_level);}}})
a.inject(div)
if(opt.selected)a.addClass('current')
else a.addClass('inactive')})
sel.destroy()});el.getElements('input[type=submit]').destroy();el.getElements('.submitBar').destroy();}});Fin.Accounts.LoginPopup=new Class({content:null,form:null,popup:null,loggedIn:false,initialize:function(content,loggedIn){this.content=$(content);this.loggedIn=loggedIn;if(!this.content){return;}
this.form=this.content.getElement('form');if(!this.form.getElement('input[name=username_or_email]').value){var login_name=Cookie.read('last_login_name');if(login_name){this.form.getElement('input[name=username_or_email]').value=login_name;}}
this.popup=new LightFace.Fin({title:'Anmelden',modal:true,content:'',buttons:[{title:'Abbrechen',event:function(){this.close();}}],onOpen:function(){this.onShow();}.bind(this)});this.content.inject(this.popup.messageBox.empty());this.popup.messageBox.addClass('loginPopupBox')
if(!this.loggedIn){$$('.requiresLogin').each(function(el){el.addEvent('click',function(e){e.stop();this.show(el.get('href'));return false;}.bind(this));}.bind(this));}
$$('.showLoginPopup').addEvent('click',function(e){e.stop();this.show();return false;}.bind(this));},show:function(next){if(next){this.form.getElement('input[name=next]').set('value',next);}
this.popup.open();},onShow:function(){OverText.update();(function(){var username=this.form.getElement('input[name=username_or_email]');var password=this.form.getElement('input[name=password]');if(username.get('value').length){password.focus();}
else{username.focus();}}.bind(this)).delay(1000);}});Fin.Membership=new Class({});Fin.Membership.Order=new Class({Implements:Options,options:{load:'',username:'',container:null,form:null,tariffs:[],months:[],methods:[],bundles:{},charityMax:50},data:{tariff:undefined,months:0,bundle:undefined,coupon:undefined,charity:0,method:undefined,subscription:true,terms:false},checkoutEnabled:false,checkoutUrl:'',initialize:function(options,data){this.setOptions(options);debug.log('order options');debug.log(this.options);this.data=data?Object.merge(this.data,data):this.data;this.loadHash();this.tariffContainer=this.options.container.getElement('.orderTariff');this.monthsContainer=this.options.container.getElement('.orderMonths');this.directionInfo=this.options.container.getElement('.orderDirectionInfo');this.couponContainer=this.options.container.getElement('.orderCoupon');this.couponElement=this.options.container.getElement('input[name=orderCoupon]');this.couponUsageElement=this.options.container.getElement('.orderCouponUsageCode');this.couponUsageContainer=this.options.container.getElement('.orderCouponUsage');this.couponInputContainer=this.options.container.getElement('.orderCouponInput');this.couponRemoveLink=this.options.container.getElement('.orderCouponRemove');this.charityContainer=this.options.container.getElement('.orderCharity');this.charityPercentageElement=this.options.container.getElement('.orderCharityPercentage')
this.methodContainer=this.options.container.getElement('.orderMethod');this.subscriptionContainer=this.options.container.getElement('.orderSubscription');this.subscriptionElement=this.options.container.getElement('input[name=orderSubscription]');this.cartContainer=this.options.container.getElement('.orderCart');this.cartItemsContainer=this.options.container.getElement('.orderCartItems');this.cartCharityContainer=this.options.container.getElement('.orderCartCharity');this.cartCharityAmountElements=this.options.container.getElement('.orderCartCharityAmount');this.cartPaybackContainer=this.options.container.getElement('.orderCartPayback');this.cartPaybackElement=this.options.container.getElement('.orderCartPaybackAmount');this.termsContainer=this.options.container.getElement('.orderTerms');this.termsElement=this.options.container.getElement('input[name=orderTerms]');this.checkoutButton=this.options.container.getElement('.orderCheckoutButton');this.checkoutWithCart=this.options.container.getElement('.orderCheckoutWithCart');this.tariffContainer.getElements('.radioBox').addEvent('click',function(e){var el=e.target;if(el.hasClass('button'))return;if(!el.hasClass('radioBox'))el=el.getParent('.radioBox');var rel=el.get('rel');this.onTariffChange(rel);}.bind(this));this.monthsContainer.getElements('.radioBox').addEvent('click',function(e){var el=e.target;if(el.hasClass('button'))return;if(!el.hasClass('radioBox'))el=el.getParent('.radioBox');var rel=el.get('rel');this.onMonthsChange(rel);}.bind(this));this.methodContainer.getElements('.radioBox').addEvent('click',function(e){var el=e.target;if(el.hasClass('button'))return;if(!el.hasClass('radioBox'))el=el.getParent('.radioBox');var rel=el.get('rel');this.onMethodChange(rel);}.bind(this));this.couponElement.addEvent('change',this.onCouponChange.bind(this));this.couponRemoveLink.addEvent('click',this.removeCoupon.bind(this));this.subscriptionElement.addEvent('change',this.onSubscriptionChange.bind(this));this.termsElement.addEvent('change',this.onTermsChange.bind(this));this.checkoutButton.addEvent('click',this.onCheckoutButtonClick.bind(this))
this.couponElement.set('value',this.data.coupon?this.data.coupon:'');this.subscriptionElement.set('checked',(this.data.subscription));this.termsElement.set('checked',(this.data.terms));if(this.charityContainer){this.initCharitySlider();}
this.update();this.ready=true;},initCharitySlider:function(){var slider=$('orderCharitySlider');var knob=slider.getElement('.sliderKnob');this.charitySlider=new Slider(slider,knob,{snap:false,range:[0,this.options.charityMax],initialStep:Math.round(this.options.charityMax/2),onChange:function(value){this.charityPercentageElement.set('html',value);}.bind(this),onComplete:function(value){if(value!=this.data.charity){this.data.charity=value?parseInt(value):0;if(this.ready){this.update();}}}.bind(this)});},onTariffChange:function(value){this.data.tariff=value;this.update();},onMonthsChange:function(value){this.data.months=parseInt(value);this.update();},onCouponChange:function(e){this.data.coupon=this.couponElement.value;this.update();},removeCoupon:function(e){this.couponElement.set('value','');this.data.coupon=undefined;this.update();},onMethodChange:function(value){this.data.method=value;this.update();},onSubscriptionChange:function(e){this.data.subscription=this.subscriptionElement.checked;this.update();},onTermsChange:function(e){this.data.terms=this.termsElement.checked;this.update();},onCheckoutButtonClick:function(e){if(this.checkoutEnabled&&this.checkoutUrl.length){document.location.href=this.checkoutUrl;}else{this.disableCheckout();}},prepareProcess:function(){this.preparing=true;new Django.Request({method:'fin.accounts.membership.prepareTariffOrder',debug:debug.log,onSuccess:function(response){debug.log(response);this.preparedData=response;this.preparing=false;this.checkoutUrl=response.checkoutUrl;this.updateDirection(response.direction,response.directionInfo);this.updateCheckout(response.checkout,response.checkoutLabel);this.updateErrors(response.errors);this.updateCoupon(response.coupon);this.updateCart(response.cart,response.price,response.subscriptionInitialPrice,response.subscriptionInitialDays,response.subscriptionExtraDays,response.subscriptionRecurringPrice,response.subscriptionRecurringMonths);this.updateCharity(response.charity);this.updateHash();}.bind(this),onFailure:function(response){this.preparing=false;alert('Deine Bestellung kann gerade nicht bearbeitet werden. Bitte versuche es später noch einmal.','Es tut uns leid …')}}).send(this.getHash(),this.options.username,this.data.tariff,this.data.coupon,this.data.bundle,this.data.charity,this.data.method,this.data.subscription,this.data.terms);},updateDirection:function(direction,info){if(info&&info.length){this.directionInfo.set('html','<p class="big">'+info+'</p>').show();}else{this.directionInfo.empty().hide();}},updateCheckout:function(checkout_enabled,checkout_label){this[checkout_enabled?'enableCheckout':'disableCheckout']();this.checkoutButton.set('html',checkout_label);},disableCheckout:function(){this.checkoutEnabled=false;this.checkoutButton.addClass('disabled').removeClass('green');},enableCheckout:function(){this.checkoutEnabled=true;this.checkoutButton.addClass('green').removeClass('disabled');},updateCart:function(cart,price,subscriptionInitialPrice,subscriptionInitialDays,subscriptionExtraDays,subscriptionRecurringPrice,subscriptionRecurringMonths){var table=new HtmlTable({'properties':{'class':'table cartTable','width':'100%'},'headers':['Artikel','Preis']});if(cart.length==0){this.hide(this.cartContainer);return;}
var payback=0;cartitemCount=cart.length;cart.each(function(cartitem,index){var type=cartitem[0],name=cartitem[1],price=cartitem[2];value=cartitem[3];price_display=this.formatPrice(price)+' &euro;',last=(cartitemCount==index+1);if(type=='CreditTransaction'){if(value>0){price_display='('+this.formatPrice(value)+' &euro;)';payback+=value;}else if(value<0){price_display=this.formatPrice(value)+' &euro;';}}
table.push([{content:name,properties:{'class':'orderItemNameCell left'}},{content:price_display,properties:{'class':'orderItemPriceCell right'}}],{'class':'orderCartItem orderCartItem-'+type+' '+(last?'orderCartItem-last':'')});}.bind(this));if(subscriptionRecurringPrice&&subscriptionRecurringMonths){if(subscriptionRecurringPrice==price){table.push([{content:this.getRecurringText(subscriptionRecurringMonths)+' <strong>'+this.formatPrice(subscriptionRecurringPrice)+' &euro;</strong>',properties:{'class':'right big','colspan':2}}],{'class':'orderCartTotal orderCartTotal-first'});}else{table.push([{content:this.getRecurringTextFirst(subscriptionRecurringMonths)+' <strong>'+this.formatPrice(price)+' &euro;</strong>',properties:{'class':'right big','colspan':2}}],{'class':'orderCartTotal orderCartTotal-first'});table.push([{content:'danach '+this.getRecurringText(subscriptionRecurringMonths)+' <strong>'+this.formatPrice(subscriptionRecurringPrice)+' &euro;</strong>',properties:{'class':'right big','colspan':2}}],{'class':'orderCartTotal'});}}else{table.push([{content:'Summe: <strong>'+this.formatPrice(price)+' &euro;</strong>',properties:{'class':'right big','colspan':2}}],{'class':'orderCartTotal orderCartTotal-first'});}
table.inject(this.cartItemsContainer.empty())
this.cartPaybackElement.set('html',this.formatPrice(payback));this[price>0?'enable':'disable'](this.charityContainer);var forcePayment=true;this[(price>0||forcePayment)?'show':'hide'](this.methodContainer);this[payback>0?'show':'hide'](this.cartPaybackContainer);this.enable(this.cartContainer);},getRecurringText:function(m){if(m==1){return'monatlich';}else if(m==3){return'vierteljährlich';}else if(m==6){return'halbjährlich';}else if(m==12){return'jährlich';}else{return m+'-monatlich';}},getRecurringTextFirst:function(m){if(m==1){return'Erster Monat';}else if(m==3){return'Erstes viertel Jahr';}else if(m==6){return'Erstes halbes Jahr';}else if(m==12){return'Erstes Jahr';}else{return'Erste '+m+' Monate';}},updateCharity:function(charity){if(this.cartCharityContainer){this.cartCharityContainer[charity>0?'show':'hide']();}
if(this.cartCharityAmountElements){this.cartCharityAmountElements.set('html',this.formatPrice(charity)+' &euro;');}},updateCoupon:function(coupon){if(coupon&&coupon.length){this.data.coupon=coupon;this.couponUsageElement.set('html',coupon);this.couponUsageContainer.show();this.couponInputContainer.hide();}else{this.data.coupon=undefined;this.couponElement.set('value','');this.couponUsageContainer.hide();this.couponInputContainer.show();}},updateErrors:function(errors){errors.each(function(error){if(error[0]=='coupon'){alert(error[1],'Gutschein');this.data.coupon=undefined;this.updateHash();}
else if(error[0]=='selection'){alert(error[1],'Auswahl nicht möglich');}}.bind(this));},cleanup:function(){if(!this.options.tariffs.contains(this.data.tariff)){this.data.tariff=undefined;}
if(!this.options.months.contains(this.data.months)){this.data.months=0;}
if(!this.data.bundle||!this.options.bundles[this.data.bundle]){this.data.bundle=undefined;}
this.data.charity=Math.min(this.options.charityMax,parseInt(this.data.charity));this.data.coupon=this.data.coupon&&this.data.coupon.length?this.data.coupon:undefined;if(!this.data.method||!this.options.methods[this.data.method]){this.data.method=undefined;}},update:function(){this.cleanup();this.updateHash();this.disableCheckout();if(this.data.tariff){Object.each(this.options.bundles,function(bundle,name){if(bundle.tariff==this.data.tariff){var price=this.formatPrice(bundle.price)+' &euro;';this.options.container.getElements('.orderMonths-'+bundle.months+' .price').set('html',price);this.options.container.getElements('.orderMonths-'+bundle.months+' .promo').set('html',bundle.promo);}}.bind(this));if(this.data.months){this.data.bundle=this.data.tariff+'-'+this.data.months;}}
this.prepareProcess();this.updateElements();},updateElements:function(){this.tariffContainer.getElements('.radioBox').each(function(el){el[(el.get('rel')==this.data.tariff)?'addClass':'removeClass']('selected');}.bind(this));this.monthsContainer.getElements('.radioBox').each(function(el){el[(parseInt(el.get('rel'))==this.data.months)?'addClass':'removeClass']('selected');}.bind(this));this.methodContainer.getElements('.radioBox').each(function(el){el[(el.get('rel')==this.data.method)?'addClass':'removeClass']('selected');}.bind(this));if(!this.data.tariff){this.hide(this.checkoutWithCart);this.setFocus(this.tariffContainer);this.hide(this.monthsContainer);this.hide(this.couponContainer);this.hide(this.charityContainer);this.hide(this.cartContainer);this.hide(this.methodContainer);this.hide(this.termsContainer);}else if(this.data.tariff=='basic'){this.hide(this.checkoutWithCart);this.setFocus();this.hide(this.monthsContainer);this.hide(this.couponContainer);this.hide(this.charityContainer);this.hide(this.cartContainer);this.hide(this.methodContainer);this.hide(this.termsContainer);}else{this.show(this.checkoutWithCart);this.enable(this.monthsContainer);if(!this.data.months){this.setFocus(this.monthsContainer);this.disable(this.couponContainer);this.disable(this.charityContainer);this.disable(this.cartContainer);this.disable(this.methodContainer);this.disable(this.termsContainer);}else{this.enable(this.couponContainer);this.enable(this.cartContainer);this.enable(this.methodContainer,true);if(!this.data.method){this.setFocus(this.methodContainer);this.hide(this.subscriptionContainer);this.disable(this.termsContainer);}else{if(this.options.methods[this.data.method]['subscription']){this.enable(this.subscriptionContainer);}else{this.hide(this.subscriptionContainer);}
this.enable(this.termsContainer);this.setFocus(this.termsContainer);}}}},formatPrice:function(cent){return(cent/100).format({decimals:2});},updateHash:function(){document.location.hash=this.getHash();},hashDiv:',',getHash:function(){return''+
(this.data.tariff?this.data.tariff:'')+this.hashDiv+
(this.data.months?this.data.months:'')+this.hashDiv+
(this.data.coupon?this.data.coupon:'')+this.hashDiv+
(this.data.charity?this.data.charity:'')+this.hashDiv+
(this.data.method?this.data.method:'')+this.hashDiv+
(this.data.subscription?'1':'')+this.hashDiv+
(this.data.terms?'1':'');},loadHash:function(){if(!document.location.hash.length){if(this.options.load.length){document.location.hash=this.options.load;}else{return false;}}
var hash=document.location.hash.substring(1);var parts=hash.split(this.hashDiv);if(parts.length>0)
this.data.tariff=parts[0];if(parts.length>1)
this.data.months=parseInt(parts[1]);if(parts.length>2)
this.data.coupon=parts[2];if(parts.length>3)
this.data.charity=parts[3].length?parseInt(parts[3]):this.data.charity;if(parts.length>4)
this.data.method=parts[4];if(parts.length>5)
this.data.subscription=(parts[5]=='1');if(parts.length>6)
this.data.terms=(parts[6]=='1');},hide:function(el){if(!el)return;el.hide();},show:function(el){if(!el)return;el.show();},disable:function(el,soft){if(!el)return;if(!soft)el.show()
el.addClass('orderDisabled').removeClass('orderEnabled');},enable:function(el,soft){if(!el)return;if(!soft)el.show()
el.addClass('orderEnabled').removeClass('orderDisabled');},setFocus:function(el,soft){$$('.orderFocus').removeClass('orderFocus')
if(!el)return;if(!soft)el.show()
el.addClass('orderFocus');}});Fin.Training=new Class({Extends:Fin});Fin.Training.Catalog=new Class({Extends:Fin.Training,catalog:{},initialize:function(catalog){this.catalog=catalog;},getExercise:function(id){return this.catalog.exercises[id];},exerciseDetails:{},getExerciseDetails:function(id,successCallback,errorCallback){if(this.exerciseDetails[id]){successCallback(this.exerciseDetails[id]);return;}
new Django.Request({method:'fin.training.catalog.getExercise',withSession:false,onSuccess:function(data){this.exerciseDetails[id]=data;successCallback(this.exerciseDetails[id]);}.bind(this),onFailure:function(data){if(errorCallback){errorCallback(data);}}}).send(id);},getMusclegroup:function(id){return this.catalog.musclegroups[id];},getSportActivity:function(id){return this.catalog.sportactivities[id];},sportActivityDetails:{},getSportActivityDetails:function(id,successCallback,errorCallback){if(this.sportActivityDetails[id]){successCallback(this.sportActivityDetails[id]);return;}
new Django.Request({method:'fin.training.catalog.getSportActivity',withSession:false,onSuccess:function(data){this.sportActivityDetails[id]=data;successCallback(this.sportActivityDetails[id]);}.bind(this),onFailure:function(data){if(errorCallback){errorCallback(data);}}}).send(id);},getMeta:function(key){return this.catalog.meta[key];}});Fin.Training.Catalog.Filter=new Class({Extends:Fin.Training.Catalog,Implements:Options,options:{onChange:function(){},onSetFilter:function(key){},onAddFilter:function(key){this.onSetFilter(key);}.bind(this),onRemoveFilter:function(key){},onResetFilter:function(key){}},filters:{categories:null,musclegroups:null,tools:null,purposes:null,goals:null,niveaus:null},filterBindings:{categories:{},musclegroups:{},tools:{},purposes:{},goals:{},niveaus:{}},constraints:{profile:false,partner:null},results:{},initialize:function(catalog,options){this.catalog=catalog;this.setOptions(options);return this;},addFilter:function(key,item){this.resetResults();if(!this.filters[key]){this.filters[key]=[];}
this.filters[key].push(item);this.options.onAddFilter(key);this.updateBindings();return this;},removeFilter:function(key,item){if(this.filters[key]){this.resetResults();this.filters[key].erase(item);if(!this.filters[key].length){this.filters[key]=null;}
this.options.onRemoveFilter(key);this.updateBindings();}
return this;},setFilter:function(key,items){this.resetResults();if(typeOf(items)!='array'){items=[parseInt(items)];}
this.filters[key]=items;this.options.onSetFilter(key);this.updateBindings();return this;},resetAll:function(){this.resetFilter('musclegroups',true);this.resetFilter('purposes',true);this.resetFilter('tools',true);this.updateBindings();return this;},resetFilter:function(key,dontUpdateBindings){this.resetResults();this.filters[key]=null;this.options.onResetFilter(key);if(!dontUpdateBindings){this.updateBindings();}
return this;},lockFilter:function(key){return this;},unlockFilter:function(key){return this;},resetResults:function(){this.results={};return this;},updateBindings:function(){this.options.onChange();Object.each(this.filters,function(filterData,filterKey){Object.each(this.filterBindings[filterKey],function(els){els.each(function(el){el.removeClass('selected');});});if(filterData){filterData.each(function(id){if(this.filterBindings[filterKey]){this.filterBindings[filterKey][id].each(function(el){el.addClass('selected');});}}.bind(this));}},this);return this;},getSelectedBindings:function(key){var bindings=[];if(this.filters[key]){this.filters[key].each(function(id){if(this.filterBindings[key][id]){this.filterBindings[key][id].each(function(b){bindings.push(b);},this);}},this);}
return bindings;},getSubsetCount:function(itemList,itemId){var sub=this.catalog[itemList][itemId].exercises;var ids=this.getResultsIds();return sub.intersection(ids).length;},getResultsIds:function(){if(!this.results['ids']){var ids=Array.clone(this.catalog.exercise_ids);var catalog=this.catalog;var filtersApplied=false;var result=null;['musclegroups','purposes','goals','tools'].each(function(key){if(this.filters[key]){filtersApplied=true;var _ids=[];this.filters[key].each(function(itemId){_ids.combine(catalog[key][itemId].exercises);});ids=ids.intersection(_ids);}},this);this.results['ids']=ids;}
return this.results['ids'];},getResultsObject:function(){if(!this.results['object']){var ids=this.getResultsIds();if(ids.length){this.results['object']=Object.subset(this.catalog.exercises,ids);}else{this.results['object']=this.catalog.exercises;}}
return this.results['object'];},getResultsArray:function(){if(!this.results['array']){var ids=this.getResultsIds();this.results['array']=[];ids.each(function(id){this.results['array'].push(this.getExercise(id));},this);}
return this.results['array'];},isInFilter:function(itemList,itemId){return(this.filters[itemList]&&this.filters[itemList].contains(itemId));},bindWithFilter:function(element,itemList,itemId,multiple){if(this.filterBindings[itemList][itemId]){this.filterBindings[itemList][itemId].push(element);}else{this.filterBindings[itemList][itemId]=[element]}
element.addEvent('click',function(e){e.preventDefault();e.stop();if(!this.isInFilter(itemList,itemId)){if(multiple){this.addFilter(itemList,itemId);}else{this.setFilter(itemList,itemId);}}else{this.removeFilter(itemList,itemId);}}.bind(this));}});Fin.Training.ExerciseInfo=new Class({initialize:function(id){fin.trainingCatalog.getExerciseDetails(id,this.onData.bind(this))},openWhenReady:false,box:null,onData:function(exercise){debug.log(exercise);this.box=new LightFace.Fin({modal:true,closeOnClick:true,width:740,height:415,title:exercise.title,content:'',buttons:[{title:'Fertig',color:'blue',event:function(){this.close();}}],onClose:function(){(function(){this.messageBox.empty();}).delay(2000,this);},onOpen:function(){this.messageBox.empty().setStyle('padding',0);if(exercise.exercisevideo_set.length){var videoDiv=new Element('div',{'class':'Content dark medium','styles':{'padding':10,'margin-top':-1}}).inject(this.messageBox);var videoData=exercise.exercisevideo_set[0];var video=new Media.Video(videoDiv,{src:videoData.video.sources,poster:fin.media.getImageUrl('SimpleVideoPosterImage',videoData.video.poster,'display_video_9'),width:700,height:395,preload:true});}
if(exercise.exercisestep_set.length){var stepsDiv=new Element('div',{'class':'Content dark'}).inject(this.messageBox);exercise.exercisestep_set.each(function(step){var stepTable=new Element('table',{'class':'exerciseStep','styles':{'width':'100%'}}).inject(stepsDiv);var stepTR=new Element('tr').inject(stepTable);var stepImageTD=new Element('td',{styles:{'padding':'0 10px 10px 10px'}}).inject(stepTR);var stepInfoTD=new Element('td',{styles:{'padding':'0 10px 15px 0'}}).inject(stepTR);new Element('img',{'src':fin.media.getImageUrl('ExerciseImage',step.images.split(',')[0],'display_horizontal_5')}).inject(stepImageTD);stepInfoTD.set('html','<h4 class="noMarginTop">'+step.title+'</h4>'+step.text_execution);}.bind(this));}}});if(this.openWhenReady){this.box.open();this.openWhenReady=false;}},open:function(){if(this.box){this.box.open();}else{this.openWhenReady=true;}}});Fin.Training.ExerciseFilter=new Class({Binds:['setFromFieldEvent'],Extends:Fin.Training,Implements:Options,options:{popupPoint:3,popupOffset:{x:10,y:0},cookieOptions:{domain:document.domain,path:'/',duration:356},extended:false,disable:{},counter:null},form:null,formElements:new Hash(),container:null,definitions:{},elements:{},setup:new Hash({'respect_profile':true,'partner':false,'partner_select':'0','tools':true,'tools_select':true,'musclegroups':false,'musclegroups_select':true,'goals':false,'goals_select':true,'purposes':false,'purposes_select':true}),initialize:function(form,container,definitions,options){this.setOptions(options);this.form=form;this.container=container;this.initDefinitions(definitions);this.initCheckbox('respect_profile');if(!this.options.disable.partner){this.initRadio('partner_select');this.initCheckbox('partner');}else{}
if(!this.options.disable.tools){this.initMultiCheckbox('tools_select',true);this.initCheckbox('tools',function(e){if(e.target.get('checked')&&this.formElements.get('tools_select').getElements(':checked').length==0){this.formElements.get('tools_select').set('checked',true);}}.bind(this));}
if(this.options.extended){this.initExtended();}else{this.initBasic();}
this.update();return this;},initBasic:function(){},initExtended:function(){this.initMultiCheckbox('musclegroups_select',true);this.initCheckbox('musclegroups',function(e){if(e.target.get('checked')&&this.formElements.get('musclegroups_select').getElements(':checked').length==0){this.formElements.get('musclegroups_select').set('checked',true);}}.bind(this));this.initMultiCheckbox('goals_select',true);this.initCheckbox('goals',function(e){if(e.target.get('checked')&&this.formElements.get('goals_select').getElements(':checked').length==0){this.formElements.get('goals_select').set('checked',true);}}.bind(this));this.initMultiCheckbox('purposes_select',true);this.initCheckbox('purposes',function(e){if(e.target.get('checked')&&this.formElements.get('purposes_select').getElements(':checked').length==0){this.formElements.get('purposes_select').set('checked',true);}}.bind(this));},initDefinitions:function(definitions){this.definitions=definitions;if(!this.options.disable.tools){this.definitions['any_tool']=[];new Hash(this.definitions['tools']).each(function(tool){this.definitions['any_tool'].combine(tool);}.bind(this));}
if(this.options.extended){this.definitions['any_musclegroup']=[];new Hash(this.definitions['musclegroups']).each(function(musclegroup){this.definitions['any_musclegroup'].combine(musclegroup);}.bind(this));this.definitions['any_goal']=[];new Hash(this.definitions['goals']).each(function(goal){this.definitions['any_goal'].combine(goal);}.bind(this));this.definitions['any_purpose']=[];new Hash(this.definitions['purposes']).each(function(purpose){this.definitions['any_purpose'].combine(purpose);}.bind(this));}},getDefinitionsElements:function(key,value_array){if(this.elements[key]===undefined){this.elements[key]=[];value_array.each(function(exercise_id){this.elements[key].include(this.container.getElement('._id'+exercise_id));}.bind(this));}
return this.elements[key];},initCheckbox:function(key,onchange){if(!onchange){onchange=function(e){}}
var cookieValue=Cookie.read('ExerciseFilter_'+key);if(typeof(cookieValue)=='string'){this.setup.set(key,(cookieValue=='true')?true:false);}
var element=this.form.getElement('#id_'+key);if(!element){return;}
element.set('checked',this.setup.get(key))
element.addEvent('change',this.checkboxChange.bind(this));element.addEvent('change',onchange.bind(this));this.updateCheckboxExtras(key,true);},checkboxChange:function(e){var el=e.target;var key=el.get('name');var value=el.get('checked')?true:false;Cookie.write('ExerciseFilter_'+key,value,this.options.cookieOptions);this.setup.set(key,value);this.update();this.updateCheckboxExtras(key);},updateCheckboxExtras:function(key,initial){$$('.'+key+'_extra_slide').each(function(extra){if(key=='partner'&&!this.options.extended){extra.hide();}else{extra[this.setup.get(key)?'removeClass':'addClass']('disabled');}}.bind(this));this.form.getElements('.'+key+'_extra').each(function(extra){extra.setStyle('visibility',this.setup.get(key)?'visible':'hidden');}.bind(this));},initRadio:function(key,onchange){var cookieValue=Cookie.read('ExerciseFilter_'+key);if(typeof(cookieValue)=='string'){this.setup.set(key,cookieValue.toString());}
this.formElements.set(key,this.form.getElements('input[name='+key+']'))
if(typeof(this.setup.get(key))=='string'){this.formElements.get(key).each(function(el) {if(this.setup.get(key)==el.get('value')){el.set('checked',true);}}.bind(this));}else{this.formElements.get(key)[0].set('selected',true);this.setup.set(key,this.formElements.get(key)[0]);}
this.formElements.get(key).addEvent('change',this.radioChange.bind(this));},radioChange:function(e){var el=e.target;var key=el.get('name');var value=this.setup.get(key);this.formElements.get(key).each(function(el) {if(el.get('checked')){value=el.get('value');}}.bind(this));this.setup.set(key,value.toString());Cookie.write('ExerciseFilter_'+key,this.setup.get(key),this.options.cookieOptions);this.update();},initMultiCheckbox:function(key){var cookieValue=Cookie.read('ExerciseFilter_'+key);if(typeof(cookieValue)=='string'){this.setup.set(key,cookieValue.split(','));}
this.formElements.set(key,this.form.getElements('input[name='+key+']'))
if(typeOf(this.setup.get(key))=='array'){this.formElements.get(key).each(function(el) {if(this.setup.get(key).contains(el.get('value'))){el.set('checked',true);}}.bind(this));}else{var onOff=this.setup.get(key);var new_setup=[];this.formElements.get(key).each(function(el) {el.set('checked',onOff);new_setup.append([el.get('value')]);});this.setup.set(key,new_setup);}
this.formElements.get(key).addEvent('change',this.multiCheckboxChange.bind(this));this.updateMultiCheckboxCounter(key);},multiCheckboxChange:function(e){var el=e.target;(function(){var key=el.get('name');var value_array=this.setup.get(key);if(el.get('checked')){value_array.include(el.value);}else{value_array.erase(el.value);}
this.setup.set(key,value_array);Cookie.write('ExerciseFilter_'+key,value_array.join(','),this.options.cookieOptions);this.update();this.updateMultiCheckboxCounter(key);}.bind(this)).delay(200);},updateMultiCheckboxCounter:function(key){var count=0;this.formElements.get(key).each(function(el){count+=el.get('checked')?1:0;});this.form.getElements('.'+key+'_counter').each(function(counter){counter.set('html','('+count+')');}.bind(this));},multipleCheckboxSelection:function(key,definitions_key){var selection=[];var els=this.formElements.get(key);if(!els)return selection;els.each(function(el){if(!el.get('checked')){var selectionElements=this.getDefinitionsElements(definitions_key+'_'+el.get('value'),this.definitions[definitions_key][el.get('value')]);selection.combine(selectionElements);}}.bind(this));return selection;},update:function(){var hideElements=[];this.getHideSelectors().each(function(selector){hideElements.combine(this.container.getElements(selector));}.bind(this));if(!this.options.disable.tools){if(this.setup.get('tools')){hideElements.combine(this.multipleCheckboxSelection('tools_select','tools'));}else{hideElements.combine(this.getDefinitionsElements('any_tool',this.definitions['any_tool']));}}
if(this.options.extended){if(this.setup.get('musclegroups')){hideElements.combine(this.multipleCheckboxSelection('musclegroups_select','musclegroups'));}else{}
if(this.setup.get('goals')){hideElements.combine(this.multipleCheckboxSelection('goals_select','goals'));}else{}
if(this.setup.get('purposes')){hideElements.combine(this.multipleCheckboxSelection('purposes_select','purposes'));}else{}}
var count=0;this.container.getElements('.dynamicGridItem').each(function(el){if(hideElements.contains(el)){el.hide();}else{el.show();count++;}}.bind(this));if(this.options.counter){this.options.counter.set('html',count);}
return this;},getHideSelectors:function(){var selectors=[]
if(this.setup.get('respect_profile')){selectors.include('._profileFalse');}
if(!this.options.disable.partner){if(!this.setup.get('partner')){selectors.include('._partnerTrue');}else if(this.setup.get('partner_select')=='1'){selectors.include('._partnerFalse');}}
return selectors;}});Fin.Training.ExerciseSelector=new Class({Extends:Fin.Training});Fin.Training.ExerciseSelector.SimpleColumns=new Class({Extends:Fin.Training.ExerciseSelector,Implements:Options,options:{onCancel:function(){},onSelect:function(id){}},element:null,filter:null,initialize:function(element,options){this.setOptions(options);this.element=element;this.filter=new Fin.Training.Catalog.Filter(fin.trainingCatalog.catalog,{onChange:this.onFilterChange.bind(this),onSetFilter:this.onSetFilter.bind(this),onResetFilter:this.onResetFilter.bind(this)});this.initHtml();this.initResultsList();var selector=this;this.popup=new LightFace.Fin({modal:true,title:'Übung auswählen',content:'',width:620,height:359,buttons:[{title:'Abbrechen',color:'red',event:this.cancel.bind(this)}]});this.element.setStyle('display','block').inject(this.popup.messageBox.setStyles({'padding':0,'height':359,'overflow':'hidden'}).empty());return this;},open:function(options){this.setOptions(options);this.popup.open();},inject:function(container,position){this.element.inject(container,position);},initHtml:function(){this.element.getElements('.resetAllFilters').addEvent('click',function(e){this.filter.resetAll();this.resetSearch();}.bind(this));this.element.getElements('.resetLastFilter').addEvent('click',function(e){this.resetLastFilter();}.bind(this));this.purposesList=this.element.getElement('.purposesList');if(this.purposesList)Object.each(fin.trainingCatalog.catalog.purposes,function(purpose,id){var li=new Element('li').inject(this.purposesList);var a=new Element('a',{'html':purpose.title,'href':'javascript:;'}).inject(li);this.filter.bindWithFilter(a,'purposes',id);},this);this.purposesReset=this.element.getElement('.purposesReset');if(this.purposesReset){this.purposesReset.setStyle('display','none').addEvent('click',function(){this.filter.resetFilter('purposes');}.bind(this));}
this.toolsList=this.element.getElement('.toolsList');if(this.toolsList)Object.each(fin.trainingCatalog.catalog.tools,function(tool,id){var li=new Element('li').inject(this.toolsList);var a=new Element('a',{'html':tool.title,'href':'javascript:;'}).inject(li);this.filter.bindWithFilter(a,'tools',id);},this);this.toolsReset=this.element.getElement('.toolsReset');if(this.toolsReset){this.toolsReset.setStyle('display','none').addEvent('click',function(){this.filter.resetFilter('tools');}.bind(this));}
this.selectedMusclegroup=this.element.getElement('.selectedMusclegroup');this.musclegroupChooser=this.element.getElement('.musclegroupChooser');if(this.musclegroupChooser)this.musclegroupChooser.getElements('a').each(function(a){var id=a.get('rel');var title=a.get('title');if(id){this.filter.bindWithFilter(a,'musclegroups',id);a.addEvent('mouseenter',function(e){this.selectedMusclegroupOriginal=this.selectedMusclegroup.get('html');this.selectedMusclegroup.set('html',title).addClass('hover');}.bind(this));a.addEvent('mouseleave',function(e){this.selectedMusclegroup.set('html',this.selectedMusclegroupOriginal).removeClass('hover');}.bind(this));}},this);this.musclegroupsReset=this.element.getElement('.musclegroupsReset');if(this.musclegroupsReset){this.musclegroupsReset.setStyle('display','none').addEvent('click',function(){this.filter.resetFilter('musclegroups');}.bind(this));}
this.searchInput=this.element.getElement('.searchInput');this.searchIcon=this.element.getElement('.searchIcon');this.searchReset=this.element.getElement('.searchReset');this.searchReset.addEvent('click',this.resetSearch.bind(this));this.searchInput.addEvents({keydown:function(e){if(e.key=='enter'){e.preventDefault;e.stop();this.updateSearch(e);}}.bind(this),keyup:this.updateSearch.bind(this),change:this.updateSearch.bind(this)});this.noResultsHint=this.element.getElement('.noResultsHint').setStyle('display','none');this.fewResultsHint=this.element.getElement('.fewResultsHint').setStyle('display','none');},resetSearch:function(){this.searchInput.set('value','').focus();this.updateSearch();},searchQuery:'',updateSearch:function(e){var query=this.searchInput.get('value');if(query!=this.searchQuery){if(query.length){this.lastSetFilter='search';this.searchQuery=query;}else{this.searchQuery=false;}
this.updateResults();}
if(query.length){this.searchIcon.setStyle('display','none');this.searchReset.setStyle('display','block');this.searchInput.addClass('selected');}else{this.searchIcon.setStyle('display','block');this.searchReset.setStyle('display','none');this.searchInput.removeClass('selected');}},initResultsList:function(){this.resultsList=this.element.getElement('.resultsList .results');this.exerciseElements={};var imgBase=fin.trainingCatalog.getMeta('mediaBaseUrl');Object.each(fin.trainingCatalog.catalog.exercises,function(exercise,id){var imgSrc=exercise.thumb?imgBase+exercise.thumb:'/media/res/img/dummies/coming_soon_square_2.jpg';var el=new Element('div',{'class':'item','html':''+'<table><tr><td class="itemImage">'+'<img src="'+imgSrc+'" />'+'</td><td class="itemInfo">'+'<h5>'+exercise.title+'</h5>'+'<div class="more">'+'<p>'+exercise.short_description+'</p>'+'</div>'+'</td></tr></table>'}).inject(this.resultsList);el.getElement('.more').set('slide',{duration:200}).slide('hide');el.addEvents({mousedown:function(){el.addClass('pressed');}.bind(this),mouseup:function(){el.removeClass('pressed');}.bind(this),mouseenter:function(){el.addClass('hover');}.bind(this),mouseleave:function(){el.removeClass('hover');}.bind(this),click:function(){this.select(id);}.bind(this)});this.exerciseElements[id]=el;},this);},updateResults:function(){var results=this.filter.getResultsIds();var visibleCount=0;Object.each(this.exerciseElements,function(el,id){if(results.contains(parseInt(id))&&(!this.searchQuery||fin.trainingCatalog.getExercise(id).title.test(this.searchQuery,"i"))){el.setStyle('display','block');visibleCount++;}else{el.setStyle('display','none');}},this);if(visibleCount==0){this.noResultsHint.setStyle('display','block');this.noResultsHint.getElement('.button').set('html',this.getFilterName(this.lastSetFilter)+' zurücksetzen')}else{this.noResultsHint.setStyle('display','none');this.fewResultsHint.setStyle('display',(visibleCount>0&&visibleCount<4)?'block':'none');}},getFilterName:function(key){switch(key){case'purposes':return'Zweck';case'tools':return'Gerät';case'musclegroups':return'Muskelgruppe';case'search':return'Suche';default:return'Filter';}},resetLastFilter:function(){var resetFilter=this.lastSetFilter;this.lastSetFilter=false;switch(resetFilter){case'purposes':case'tools':case'musclegroups':this.filter.resetFilter(resetFilter);break;case'search':this.resetSearch();break;default:this.filter.resetAll();break;}},onFilterChange:function(){this.updateResults();},onSetFilter:function(key){this.lastSetFilter=key;switch(key){case'purposes':this.purposesReset.setStyle('display','block');this.filter.resetFilter('tools',true);break;case'tools':this.toolsReset.setStyle('display','block');this.filter.resetFilter('purposes',true);break;case'musclegroups':this.musclegroupsReset.setStyle('display','block');var bindings=this.filter.getSelectedBindings('musclegroups');if(bindings.length){var musclegroupTitle=bindings[0].get('title');this.selectedMusclegroup.addClass('selected').removeClass('inactive');}else{var musclegroupTitle='Alle Muskelgruppen';this.selectedMusclegroup.removeClass('selected').addClass('inactive');}
this.selectedMusclegroupOriginal=musclegroupTitle;this.selectedMusclegroup.set('html',musclegroupTitle);break;}},onResetFilter:function(key){switch(key){case'purposes':this.purposesReset.setStyle('display','none');break;case'tools':this.toolsReset.setStyle('display','none');break;case'musclegroups':this.musclegroupsReset.setStyle('display','none');var musclegroupTitle='Alle Muskelgruppen';this.selectedMusclegroupOriginal=musclegroupTitle;this.selectedMusclegroup.set('html',musclegroupTitle);this.selectedMusclegroup.removeClass('selected').addClass('inactive');break;}},setFilter:function(key,value){this.filter.setFilter(key,value);},lockMusclegroup:function(){},unlockMusclegroup:function(){},cancel:function(id){this.popup.close();this.options.onCancel();},select:function(id){this.popup.close();this.options.onSelect(id);}});Fin.Training.SportActivitySelector=new Class({Extends:Fin.Training});Fin.Training.SportActivitySelector.SimpleColumns=new Class({Extends:Fin.Training.SportActivitySelector,Implements:Options,options:{onSelect:function(id){}},element:null,filter:null,initialize:function(element,options){this.setOptions(options);this.element=element;this.initHtml();this.initResultsList();return this;},inject:function(container,position){this.element.inject(container,position);},initHtml:function(){this.element.getElements('.resetAllFilters').addEvent('click',function(e){this.filter.resetAll();this.resetSearch();}.bind(this));this.element.getElements('.resetLastFilter').addEvent('click',function(e){this.resetLastFilter();}.bind(this));this.searchInput=this.element.getElement('.searchInput');this.searchIcon=this.element.getElement('.searchIcon');this.searchReset=this.element.getElement('.searchReset');this.searchReset.addEvent('click',this.resetSearch.bind(this));this.searchInput.addEvents({keydown:function(e){if(e.key=='enter'){e.preventDefault;e.stop();this.updateSearch(e);}}.bind(this),keyup:this.updateSearch.bind(this),change:this.updateSearch.bind(this)});this.noResultsHint=this.element.getElement('.noResultsHint').setStyle('display','none');this.fewResultsHint=this.element.getElement('.fewResultsHint').setStyle('display','none');},resetSearch:function(){this.searchInput.set('value','').focus();this.updateSearch();},searchQuery:'',updateSearch:function(e){var query=this.searchInput.get('value');if(query!=this.searchQuery){if(query.length){this.lastSetFilter='search';this.searchQuery=query;}else{this.searchQuery=false;}
this.updateResults();}
if(query.length){this.searchIcon.setStyle('display','none');this.searchReset.setStyle('display','block');this.searchInput.addClass('selected');}else{this.searchIcon.setStyle('display','block');this.searchReset.setStyle('display','none');this.searchInput.removeClass('selected');}},initResultsList:function(){this.resultsList=this.element.getElement('.resultsList .results');this.sportactivityElements={};var imgBase=fin.trainingCatalog.getMeta('mediaBaseUrl');Object.each(fin.trainingCatalog.catalog.sportactivities,function(sportactivity,id){var imgSrc=sportactivity.thumb?imgBase+sportactivity.thumb:'/media/res/img/dummies/coming_soon_square_2.jpg';var el=new Element('div',{'class':'item','html':''+'<table><tr><td class="itemImage">'+'<img src="'+imgSrc+'" />'+'</td><td class="itemInfo">'+'<h5>'+sportactivity.title+'</h5>'+'<div class="more">'+'<p>'+sportactivity.abstract+'</p>'+'</div>'+'</td></tr></table>'}).inject(this.resultsList);el.getElement('.more').set('slide',{duration:200}).slide('hide');el.addEvents({mousedown:function(){el.addClass('pressed');}.bind(this),mouseup:function(){el.removeClass('pressed');}.bind(this),mouseenter:function(){el.addClass('hover');}.bind(this),mouseleave:function(){el.removeClass('hover');}.bind(this),click:function(){this.select(id);}.bind(this)});this.sportactivityElements[id]=el;},this);},updateResults:function(){var visibleCount=0;Object.each(this.sportactivityElements,function(el,id){if(!this.searchQuery||fin.trainingCatalog.getSportActivity(id).title.test(this.searchQuery,"i")){el.setStyle('display','block');visibleCount++;}else{el.setStyle('display','none');}},this);if(visibleCount==0){this.noResultsHint.setStyle('display','block');this.noResultsHint.getElement('.button').set('html',this.getFilterName(this.lastSetFilter)+' zurücksetzen')}else{this.noResultsHint.setStyle('display','none');this.fewResultsHint.setStyle('display',(visibleCount>0&&visibleCount<4)?'block':'none');}},getFilterName:function(key){switch(key){case'search':return'Suche';default:return'Filter';}},resetLastFilter:function(){var resetFilter=this.lastSetFilter;this.lastSetFilter=false;this.resetSearch();},select:function(id){this.options.onSelect(id);}});Fin.Training.Collection=new Class({Extends:Fin.Training});Fin.Training.Collection.EditForm=new Class({Extends:Fin.Training.Collection,Implements:Options,options:{id:false,form:'CollectionEditForm',container:'CollectionEntries',bar:'CollectionEntriesBar',title:'CollectionTitle',allowEntryAdd:true,allowPresetEntryOrder:false,allowPresetEntryDelete:false,allowPresetEntryEdit:false,allowPresetEntryAlternatives:true},form:null,container:null,bar:null,entries:[],sortable:null,titleInput:null,title:'',initialize:function(options){this.setOptions(options);this.form=$(this.options.form);this.form.addEvent('submit',function(e){e.stop();});this.container=$(this.options.container);this.sortable=new Sortables(this.container,{handle:'.moveSymbol',clone:true,opacity:1,onStart:function(element,clone_){element.addClass('dropPreview');clone_.setStyle('visibility','hidden');},onSort:function(element,clone_){this.positionsModified=true;}.bind(this),onComplete:function(element){element.removeClass('dropPreview');if(this.positionsModified){this.positionsModified=false;this.updatePositions();}}.bind(this)});this.bar=$(this.options.bar);if(this.options.allowEntryAdd){new Element('input',{'type':'button','value':'Übung hinzufügen','class':'big','events':{'click':function(e){this.initEntry({mode:'exercise'});}.bind(this)}}).inject(this.bar);}else{this.bar.destroy();}
this.initTitle();this.initMeta();this.initFinishButton();return this;},initFinishButton:function(){this.finishButton=$('CollectionSubmitButton');this.finishButton.addEvent('click',function(e){e.stop();var ok=true,okTimes=true,okTitle=true;this.entries.each(function(entry){if(!entry.enabled){return;}
if(!entry.duration_minutes&&!entry.duration_seconds){okTimes=false;ok=false;}});if(this.title==''||this.title=='Eigenes Workout'){okTitle=false;ok=false;this.titleInput.addClass('error');}else{this.titleInput.removeClass('error');}
if(!ok){var msg='<p>Bitte korrigiere folgende Fehler:</p><ul class="errorText">';if(!okTitle){msg+='<li>Gib dem Workout einen Namen</li>';}
if(!okTimes){msg+='<li>Gib für alle Übungen eine Ziel-Zeit an</li>';}
msg+='</ul>'
alert(msg);}else{this.tryFinish();}
return false;}.bind(this));},tryFinish:function(){if(DjangoRequestsRunning){this.tryFinish.delay(500,this);return;}
document.location.href=$('CollectionSubmitButton').get('href');},initEntry:function(data,initial){data['position']=this.entries.length+1
var entry=new Fin.Training.Collection.EditForm.Entry(this,this.container,data,initial);this.entries.push(entry);if(this.sortable){this.sortable.addItems(entry.element);}},addEntry:function(entry){data={collectionId:this.options.id,mode:entry.mode,itemId:parseInt(entry.itemId),position:entry.options.position}
new Django.Request({method:'fin.training.collections.addEntry',onSuccess:function(response){entry.id=parseInt(response);entry.setDefaults();},onFailure:function(response){new Message.Error(_('CollectionEditForm','entry_not_added','The entry has not been added to the collection.'),{id:'collection_updated'}).show()}}).send(data.collectionId,data.mode,data.itemId,data.position);},updateEntry:function(entry){data={position:entry.options.position,duration_minutes:entry.duration_minutes,duration_seconds:entry.duration_seconds,repetitions:entry.repetitions,distance:entry.distance,weight:entry.weight,set_repetitions:entry.set_repetitions,set_break:entry.set_break}
var itemId=parseInt(entry.itemId);if(!itemId){return;}
new Django.Request({method:'fin.training.collections.updateEntry',onSuccess:function(response){entry.setDefaults();},onFailure:function(response){new Message.Error(_('CollectionEditForm','entry_not_updated','The entry has not been updated.'),{id:'collection_updated'}).show()}}).send(entry.id,entry.mode,itemId,data);},updatePositions:function(){var positions=this.sortable.serialize();var positionData={};positions.each(function(elId,index){var el=$(elId);var entry=el.retrieve('CollectionEntry');var position=index+1;entry.position=position;positionData[entry.id]=entry.position;});new Django.Request({method:'fin.training.collections.updateCollectionPositions',onFailure:function(response){new Message.Error(_('CollectionEditForm','positions_not_updated','The positions have not been updated.'),{id:'collection_updated'}).show()}}).send(this.options.id,positionData);},initTitle:function(){this.titleInput=$(this.options.title);if(!this.titleInput){return false;}
this.title=this.titleInput.get('value');this.titleInput.addEvents({keyup:this.titleInputKey.bind(this),change:this.titleInputChange.bind(this)});},titleAutosaveTimeout:null,titleInputKey:function(e){if(e.key=='enter'){this.titleInput.blur();}else{this.titleInput.setStyle('color','#000');}},titleInputChange:function(e){var value=this.titleInput.get('value');if(value.length){if(value!=this.title){this.titleUpdate(value);}}else if(this.title.length){this.titleInput.set('value',this.title);}},titleUpdate:function(title){this.titleInput.setProperty('readonly','readonly').setStyle('color','#ccc').set('tween',{duration:1000});new Django.Request({method:'fin.training.collections.updateTitle',onSuccess:function(response){this.titleUpdateSuccess(response);}.bind(this),onFailure:function(response){this.titleUpdateError();new Message.Error(_('CollectionEditForm','title_not_updated','The title of this collection has not been updated.'),{id:'collection_updated'}).show()}.bind(this)}).send(this.options.id,title);},titleUpdateSuccess:function(title){this.title=title;this.titleInput.tween('color','#000').removeProperty('readonly').set('value',this.title).removeClass('error');OverText.update();},titleUpdateError:function(data){this.titleInput.tween('color','#c30').removeProperty('readonly').set('value',this.title);OverText.update();},initMeta:function(){$$('.collectionMetaInput').addEvents({'click':function(e){(function(){this.metaChange();}).delay(100,this);}.bind(this),'change':this.metaChange.bind(this)});},metaChange:function(e){this.metaUpdate();},metaUpdate:function(){var cirquitRepetitions=Number.from($('cirquit_repetitions').get('value'));var breakDuration=Number.from($('break_duration').get('value'));new Django.Request({method:'fin.training.collections.updateCollectionMeta',onFailure:function(response){new Message.Error(_('CollectionEditForm','metadata_not_updated','The data of this collection has not been updated.'),{id:'collection_updated'}).show()}.bind(this)}).send(this.options.id,cirquitRepetitions,breakDuration);}});var NewCollectionEntryCount=0;Fin.Training.Collection.EditForm.Entry=new Class({Implements:Options,options:{preset:false,mode:'',id:null,position:null,enabled:true,duration_minutes:0,duration_seconds:0,repetitions:0,distance:0,weight:0,set_repetitions:1,set_break:30,sportactivity:null,exercise:null,musclegroup:null},mode:'',id:null,position:null,enabled:true,itemId:0,item:null,musclegroupId:0,musclegroup:null,duration_minutes:0,duration_seconds:0,repetitions:0,distance:0,weight:0,set_repetitions:1,set_break:30,container:null,element:null,initialize:function(entryEditForm,container,options,initial){this.entryEditForm=entryEditForm;this.container=container;this.setOptions(options);if(this.options.mode=='exercise'||this.options.exercise){this.mode='exercise';this.itemId=this.options.exercise;this.item=fin.trainingCatalog.getExercise(this.itemId);this.musclegroupId=options.musclegroup;this.musclegroup=fin.trainingCatalog.getMusclegroup(this.musclegroupId);}else if(this.options.mode=='sportactivity'||this.options.sportactivity){this.mode='sportactivity';this.itemId=this.options.sportactivity;this.item=fin.trainingCatalog.getSportActivity(this.itemId);}
this.id=this.options.id;this.position=this.options.position;this.enabled=this.options.enabled;this.duration_minutes=this.options.duration_minutes;this.duration_seconds=this.options.duration_seconds;this.repetitions=this.options.repetitions;this.distance=this.options.distance;this.weight=this.options.weight;this.set_repetitions=this.options.set_repetitions;this.set_break=this.options.set_break;this.element=new Element('div',{'class':'collectionEntry exerciseEntry'}).inject(this.container);this.element.store('CollectionEntry',this);if(!this.id){this.id='new-'+(NewCollectionEntryCount++);}
this.element.set('id','collectionEntry-'+this.id);this.initHtml();this.initContent();if(!initial&&!this.item){this.launchEditMode();}},initContent:function(){if(this.item){this.element.removeClass('emptyEntry');}else{this.element.addClass('emptyEntry');}
if(this.entryEditForm.options.allowPresetEntryOrder||!this.options.preset){this.moveSymbol=new Element('span',{'class':'moveSymbol','href':'javascript:;','html':'&#8693;'}).inject(this.entryMeta);}
this.deleteSymbol=new Element('span',{'class':'deleteSymbol','href':'javascript:;','html':'&times;'}).inject(this.entryMeta).addEvent('click',this.deleteEntry.bind(this));this.enableSymbol=new Element('span',{'class':'enableSymbol','href':'javascript:;','html':'&#8634;'}).inject(this.entryMeta).addEvent('click',this.enableEntry.bind(this));this.entryHeadline=new Element('h4').inject(this.entryInfo).addEvent('click',this.launchEditMode.bind(this));if(this.enabled){this.setEnabled();}else{this.setDisabled();}
new Element('div',{'class':'clearfix'}).inject(this.element);this.updateContent();},updateContent:function(){if(this.item&&this.item.thumb){this.entryThumb.set('html','<img width="80" height="80" src="'+fin.trainingCatalog.getMeta('mediaBaseUrl')+this.item.thumb+'" />');}else{this.entryThumb.set('html','<img width="80" height="80" src="/media/res/img/dummies/coming_soon_square_2.jpg" />');}
if(this.item){this.entryHeadline.set('html','<a href="javascript:;">&#9998; '+this.item.title+'</a>');}else{this.entryHeadline.set('html','<a href="javascript:;">&#9998; Übung auswählen</a>');}
this.entrySpecs.empty();if(this.item){var table=new Element('table');var tr=new Element('tr').inject(table);var th=new Element('th',{'html':'Ziel:'}).inject(tr);var td=new Element('td').inject(tr);if(this.item.monitor.s){var v=this.duration_seconds?this.duration_seconds:''
new Element('div',{'class':'monitorDurationSeconds','html':'<input type="text" name="duration_seconds" class="typeInteger required" size="2" value="'+v+'" /> Sekunden'}).inject(td);}
if(this.item.monitor.m){var v=this.duration_minutes?this.duration_minutes:''
new Element('div',{'class':'monitorDurationMinutes','html':'<input type="text" name="duration_minutes" class="typeFloat required" size="2" value="'+v+'" /> Minuten'}).inject(td);}
if(this.item.monitor.d){var v=this.distance?this.distance:''
new Element('div',{'class':'monitorDistance','html':'<input type="text" name="distance" size="2" class="typeFloat" value="'+v+'" /> Kilometer'}).inject(td);}
if(this.item.monitor.w){var v=this.weight?this.weight:''
new Element('div',{'class':'monitorWeight','html':'<input type="text" name="weight" size="2" class="typeFloat" value="'+v+'" /> Kilogramm'}).inject(td);}
if(this.item.monitor.r){var v=this.repetitions?this.repetitions:''
new Element('div',{'class':'monitorRepetitions','html':'<input type="text" name="repetitions" size="2" class="typeInteger hint hintFix" value="'+v+'" title="<strong>Wiederholungen im Trainingsmodus</strong><br />Die Anzahl der Wiederholungen wird im Trainingsmodus nicht berücksichtigt. Das Training bei fin.de basiert hauptsächlich auf Zeit." /> '+'Wiederholungen'}).inject(td);}
if(this.mode=='exercise'){var tr=new Element('tr').inject(table);var th=new Element('th',{'html':'Sätze:'}).inject(tr);var td=new Element('td').inject(tr);new Element('div',{'class':'setRepetitions','html':'<input type="text" name="set_repetitions" class="typeInteger" size="2" value="'+this.set_repetitions+'" /> '+'<img class="hint hintFix" title="<strong>Mehrsatztraining</strong><br />Beim Mehrsatztraining werden Übungen nach einer kurzen Regenrationspause mehrfach ausgeführt. Die Wiederholungen und Seitenwechsel innerhalb der Übung sind davon nicht betroffen!" src="/media/res/img/icons/info.png" align="top" /> '+'<span class="ifSetRep">mit</span>'}).inject(td);new Element('div',{'class':'setBreak ifSetRep','html':'<input type="text" name="set_break" class="typeInteger" size="2" value="'+this.set_break+'" /> Sek. Pause'}).inject(td);}
fin.initHints.delay(1000);table.inject(this.entrySpecs);this.checkSpecs(this.entrySpecs.getElement('input[name=set_repetitions]'));this.checkSpecs(this.entrySpecs.getElement('input[name=duration_minutes]'));this.checkSpecs(this.entrySpecs.getElement('input[name=duration_seconds]'));this.entrySpecs.getElements('input').addEvents({'keyup':this.specsKeyup.bind(this),'change':this.specsChange.bind(this),'blur':this.specsChange.bind(this)});}},deleteEntry:function(e){if(this.enabled||(this.options.preset&&!this.allowPresetEntryDelete)){return this.disableEntry(e);}
confirmation('Eintrag löschen','Soll dieser Eintrag wirklich gelöscht werden? '+'Dieser Vorgang kann nicht rückgängig gemacht werden.','Abbrechen','Eintrag löschen',function(){},function(){this.enabled=false;this.element.addClass('disabled');new Django.Request({method:'fin.training.collections.deleteEntry',onSuccess:function(data){this.setDisabled();this.element.hide();}.bind(this),onFailure:function(data){this.setDisabled();new Message.Error(_('CollectionEditForm','entry_not_deleted','The entry has not been deleted.'),{id:'collection_updated'}).show()}.bind(this)}).send(this.id);}.bind(this));},setDisabled:function(){this.enabled=false;this.element.addClass('disabled');if(this.options.preset&&!this.allowPresetEntryDelete){this.deleteSymbol.setStyle('display','none');}},disableEntry:function(e){this.setDisabled();new Django.Request({method:'fin.training.collections.disableEntry',onFailure:function(response){this.setEnabled();new Message.Error(_('CollectionEditForm','entry_not_disabled','The entry has not been disabled.'),{id:'collection_updated'}).show()}.bind(this)}).send(this.id);},setEnabled:function(){this.enabled=true;this.element.removeClass('disabled')
this.deleteSymbol.setStyle('display','block');},enableEntry:function(e){if(this.enabled){return true;}
this.setEnabled();new Django.Request({method:'fin.training.collections.enableEntry',onFailure:function(response){this.setDisabled();new Message.Error(_('CollectionEditForm','entry_not_enabled','The entry has not been enabled.'),{id:'collection_updated'}).show()}.bind(this)}).send(this.id);},initHtml:function(){var table=new Element('table');var tr=new Element('tr').inject(table);this.entryThumb=new Element('td',{'class':'entryThumb'}).inject(tr);this.entryInfo=new Element('td',{'class':'entryInfo'}).inject(tr);this.entrySpecs=new Element('td',{'class':'entrySpecs'}).inject(tr);this.entryMeta=new Element('td',{'class':'entryMeta'}).inject(tr);table.inject(this.element);},updateSpecs:function(el){this.checkSpecs(el,true);this[el.get('name')]=Number(el.get('value').replace(',','.'));this.entryEditForm.updateEntry(this);},specsKeyup:function(e){this.checkSpecs(e.target);},specsChange:function(e){this.updateSpecs(e.target);},checkSpecs:function(el,fix){if(!el){return;}
var v=el.get('value').replace(',','.');if(v.length==0&&!el.hasClass('required')){return;}
if(el.hasClass('typeInteger')){var vc=parseInt(v);}else if(el.hasClass('typeFloat')){if(v.length>0&&v.substr(v.length-1)=='.'&&!el.hasClass('required')){return;}
var vc=parseFloat(v);}else{return;}
if(!vc){vc='';}
if(el.get('name')=='set_repetitions'){if(fix&&!vc){vc=1;}
if(vc&&vc>1){this.entrySpecs.getElements('.ifSetRep').setStyle('display','');}else{this.entrySpecs.getElements('.ifSetRep').setStyle('display','none');}}
if(el.get('name')=='duration_seconds'||el.get('name')=='duration_minutes'){if(!vc){el.addClass('error');}else{el.removeClass('error');}}
var vcs=String(vc).replace('.',',');if(v!=vcs){el.set('value',vcs);}},launchEditMode:function(e){if(e){e.stop();}
this.container.getElements('.collectionEntry.editing').each(function(el){el.retrieve('CollectionEntry').exitEditMode();});this.enableEntry();this.element.addClass('editing');fin[this.mode+'Selector'].open({onSelect:function(id){var update=(this.item)?true:false;this.itemId=id;if(this.mode=='exercise'){this.item=fin.trainingCatalog.getExercise(id);}else if(this.mode=='sportactivity'){this.item=fin.trainingCatalog.getSportActivity(id);}
this.updateContent();this.exitEditMode();if(update){this.entryEditForm.updateEntry(this);}else{this.entryEditForm.addEntry(this);}}.bind(this),onCancel:function(){this.exitEditMode();}.bind(this)});if(this.mode=='exercise'){if(this.musclegroupId){fin[this.mode+'Selector'].setFilter('musclegroups',this.musclegroupId);fin[this.mode+'Selector'].lockMusclegroup();}else{fin[this.mode+'Selector'].unlockMusclegroup();}}},exitEditMode:function(e){this.element.removeClass('editing');if(!this.itemId){this.setDisabled();this.element.hide();}},setDefaults:function(){var el=this.entrySpecs.getElement('input[name=duration_seconds]');if(el&&el.hasClass('error')){var v=this.getDefaultDuration(50);if(v){el.set('value',v);el.removeClass('error');this.updateSpecs(el);}else{el.focus();}}else{el=this.entrySpecs.getElement('input[name=duration_minutes]');if(el&&el.hasClass('error')){var v=this.getDefaultDuration(50);if(v){el.set('value',String(v/60).replace('.',','));el.removeClass('error');this.updateSpecs(el);}else{el.focus();}}}},getDefaultDuration:function(niveau){var d=33;if(this.item&&this.item.durations){this.item.durations.each(function(i){if(i[0]<niveau){d=i[1];}});}
return d;}});Fin.Training.Collection.EditForm.Entry.Exercise=new Class({Extends:Fin.Training.Collection.EditForm.Entry,Implements:Options,mode:'exercise',options:{preset:false,id:null,position:null,enabled:true,duration_minutes:0,duration_seconds:0,repetitions:0,distance:0,weight:0,set_repetitions:1,set_break:30,musclegroup:null,exercise:null},musclegroupId:0,musclegroup:null,initialize:function(collection,container,options,initial){this.itemId=options.exercise;this.item=fin.trainingCatalog.getExercise(this.itemId);this.musclegroupId=options.musclegroup;this.musclegroup=fin.trainingCatalog.getMusclegroup(this.musclegroupId);this.parent(collection,container,options,initial);return this;}});Fin.Training.Collection.EditForm.Entry.SportActivity=new Class({Extends:Fin.Training.Collection.EditForm.Entry,Implements:Options,mode:'sportactivity',options:{preset:false,id:null,position:null,enabled:true,duration_minutes:0,duration_seconds:0,repetitions:0,distance:0,weight:0,set_repetitions:1,set_break:30,sportactivity:null},initialize:function(collection,container,options,initial){this.itemId=options.sportactivity;this.item=fin.trainingCatalog.getSportActivity(this.itemId);this.parent(collection,container,options,initial);return this;}});Fin.Training.Collection.Session=new Class({Implements:[Options,Events],options:{},id:0,data:false,rounds:[],series:[],sets:[],roundsById:{},seriesById:{},setsById:{},activeSetId:false,previousSetId:false,initialize:function(id,options){this.id=id;this.setOptions(options);this.container=$('Session');this.breakScreen=new Fin.Training.Collection.Session.BreakScreen(this);this.exerciseScreen=new Fin.Training.Collection.Session.ExerciseScreen(this);this.finishScreen=new Fin.Training.Collection.Session.FinishScreen(this);this.sounds=new Fin.Training.Collection.Session.Sounds(this);this.loadData();},loadData:function(){new Django.Request({method:'fin.training.session.getSession',onSuccess:this.onData.bind(this),onFailure:function(){alert("Die Trainings-Session konnte nicht geladen werden.<br />Bitte versuch' es noch mal.");}}).send(this.id);},onData:function(data){this.data=data;data.collectionsessionround_set.each(function(roundData){this.rounds.push(roundData);this.roundsById[roundData.id]=roundData;roundData.collectionsessionseries_set.each(function(seriesData){seriesData.round=roundData;this.series.push(seriesData);this.seriesById[seriesData.id]=seriesData;seriesData.collectionsessionset_set.each(function(setData){setData.series=seriesData;this.sets.push(setData);this.setsById[setData.id]=setData;},this);},this);},this);this.breakScreen.initBar();this.activateSet(0);},activeSetPos:-1,next:function(){this.activateSet(this.activeSetPos+1);},activateSet:function(pos){if(this.activeSetPos>=0){this.sets[this.activeSetPos].breakBarSection.removeClass('current');}
this.activeSetPos=pos;if(pos<0){return;}else if(pos>this.sets.length-1){this.finish();return;}
var s=this.sets[pos];s.breakBarSection.addClass('current');this.activeSetId=s.id;if(s.exercise){this.breakScreen.build(s,pos);this.exerciseScreen.build(s);}else{fin.trainingCatalog.getExerciseDetails(s.exercise_id,function(exerciseData){s.exercise=exerciseData;this.breakScreen.build(s,pos);this.exerciseScreen.build(s);}.bind(this));}},setSetState:function(s,state){s.breakBarSection.removeClass('done').removeClass('skipped');s.breakBarSection.addClass(state)},started:false,onBuiltBreakScreen:function(){this.start();},onBuiltExerciseScreen:function(){},start:function(){if(!this.started){var session=this;new LightFace.Fin({modal:true,title:'Training starten',dontShowAgain:'Hinweis nicht mehr zeigen',dontShowAgainId:'CollectionSessionStart',content:'<p><strong>Wenn du bereit bist, kannst du das Training jetzt starten.</strong></p>'+'<p>In den Regenerationspausen siehst du eine Übersicht der nächsten Übung. '+'Wenn der <strong>Countdown</strong> (oben rechts) abgelaufen ist, geht die Übung los.</p>',buttons:[{color:'green',title:'Training starten',event:function(){this.close();session.started=true;session.startBreak();}}]}).open();}else{this.startBreak();}},startBreak:function(){this.breakScreen.start();},onBreakFinished:function(){this.startExercise();},startExercise:function(){this.exerciseScreen.start();},getActivityData:function(id){var s=this.setsById[id];var activityData={};if(s.duration_seconds){activityData.duration_seconds=this.exerciseScreen.getActivityDuration();}else if(s.duration_minutes){activityData.duration_minutes=this.exerciseScreen.getActivityDuration()/60;}
return activityData;},finishExercise:function(id){var s=this.setsById[id];var activityData=this.getActivityData(id);var setAsGoal=false;new Django.Request({method:'fin.training.sessions.markSetDone',onSuccess:function(response){this.onExerciseFinished(s);}.bind(this),onFailure:function(){alert('Beim Speichern des Tagebucheintrags ist ein Fehler aufgetreten. Bitte versuch\' es noch mal.','Fehler');}}).send(s.id,activityData,setAsGoal);},onExerciseFinished:function(s){this.setSetState(s,'done');this.next();},skipExercise:function(id){if(this.data.skipped||this.data.done){this.next();return;}
var s=this.setsById[id];new Django.Request({method:'fin.training.sessions.markSetSkipped',onSuccess:function(response){if(response==true){this.onExerciseSkipped(s);}else{this.next();}}.bind(this),onFailure:function(){alert('Beim Überspringen ist ein Fehler aufgetreten. Bitte versuch\' es noch mal.','Fehler');}}).send(s.id);},onExerciseSkipped:function(s){this.setSetState(s,'skipped');this.next();},finish:function(manual){this.breakScreen.hide();this.exerciseScreen.hide();this.finishScreen.show(manual);}});Fin.Training.Collection.Session.Sounds=new Class({players:{},keys:{},initialize:function(session){this.session=session;this.players['session-countdown']=new Media.Audio($('SessionAudio'),{hidden:true,controls:false,preload:true,autoplay:false,src:{'mp3':'http://fin.de/media/res/audio/session-countdown.mp3'}});this.players['session-continue']=new Media.Audio($('SessionAudio'),{hidden:true,controls:false,preload:true,autoplay:false,src:{'mp3':'http://fin.de/media/res/audio/session-continue.mp3'}});this.players['session-applause']=new Media.Audio($('SessionAudio'),{hidden:true,controls:false,preload:true,autoplay:false,src:{'mp3':'http://fin.de/media/res/audio/session-applause.mp3'}});},play:function(key){debug.log('sounds: play('+key+')');this.players[key].play(0);},pause:function(){Object.each(this.players,function(player){player.pause();});},resume:function(){Object.each(this.players,function(player){player.play();});}});Fin.Training.Collection.Session.FinishScreen=new Class({initialize:function(session){this.session=session;this.container=$('SessionFinish');this.noteElement=$('csfNote');this.weightElement=$('csfWeight');this.difficultyElement=$('csfDifficulty');this.difficultyValueElement=$('csfDifficultyValue');this.difficultySlider=new Slider(this.difficultyElement,this.difficultyElement.getElement('.sliderKnob'),{snap:true,range:[1,5],initialStep:3,onChange:function(value){var words=['viel zu leicht','etwas zu leicht','angemessen anstrengend','etwas zu anstrengend','viel zu anstrengend']
if(value){this.difficultyValueElement.set('html',words[value-1]);this.difficulty=value;}}.bind(this)});this.container.getElement('.csfManualContinue').addEvent('click',this.continueSession.bind(this));this.container.getElement('.csfManualCancel').addEvent('click',this.cancel.bind(this));this.container.getElement('.csfManualSubmit').addEvent('click',this.submit.bind(this));this.container.getElement('.csfCancel').addEvent('click',this.cancel.bind(this));this.container.getElement('.csfSubmit').addEvent('click',this.submit.bind(this));},cancel:function(){new Django.Request({method:'fin.training.sessions.cancelSession',onSuccess:function(response){document.location.href=this.session.data.urls.collectionDetails;}.bind(this)}).send(this.session.data.id);},submit:function(){var adjust=false;if(this.difficulty<3){adjust='Wenn dir das Workout <strong>zu leicht</strong> war, kannst du die Zeiten erhöhen oder viel zu leichte Übungen durch schwerere ersetzen. Willst du das?';}else if(this.difficulty>4){adjust='Wenn dir das Workout <strong>zu schwer</strong> war, kannst du die Zeiten verringern oder viel zu schwere Übungen komplett entfernen. Willst du das?';}
var data={owner_weight:this.getWeight(),note:this.getNote(),difficulty:this.difficulty};new Django.Request({method:'fin.training.sessions.finishSession',onSuccess:function(response){if(!adjust){document.location.href=this.session.data.urls.collectionDetails+'#done';}else{var session=this.session;new LightFace.Fin({modal:true,title:'Workout anpassen?',content:adjust,buttons:[{color:'red',title:'Nein',event:function(){document.location.href=session.data.urls.collectionDetails+'#done';}},{color:'green',title:'Workout anpassen',event:function(){document.location.href=session.data.urls.collectionEdit;}}]}).open();}}.bind(this)}).send(this.session.data.id,data);},show:function(manual){this.container[manual?'addClass':'removeClass']('csfFinishManual');this.container[manual?'removeClass':'addClass']('csfFinishProgrammatic');this.container.setStyles({'visibility':'visible','opacity':1,'z-index':1});this.session.exerciseScreen.hide();this.session.breakScreen.hide();},continueSession:function(){this.hide();this.session.breakScreen.show();this.session.breakScreen.start();},hide:function(){this.container.setStyles({'visibility':'hidden','opacity':0,'z-index':0});},difficulty:3,getWeight:function(){var v=this.weightElement.get('value');return v.length?parseFloat(v.replace(',','.')):null;},getNote:function(){var v=this.noteElement.get('value');return v.length?v:null;}});Fin.Training.Collection.Session.ExerciseScreen=new Class({initialize:function(session){this.session=session;this.container=$('SessionExercise');this.imagesContainer=$('SessionExerciseImages');this.table=this.container.getElement('.cseTable')
this.countdownElement=this.container.getElement('.cseCountdown');this.progressCell=this.container.getElement('.cseProgress');this.progressWrapElement=this.container.getElement('.cseProgressWrap');this.progressBarElement=this.container.getElement('.cseProgressBar');this.progressElement=this.container.getElement('.cseProgressProgress');this.countdownExerciseBound=this.countdownExercise.bind(this);this.progressElement.set('tween',{duration:1000,transition:'linear'})
window.addEvent('resize',this.fitLayoutSafe.bind(this));this.container.getElement('.cseFinishButton').addEvent('click',this.finishExercise.bind(this));this.container.getElement('.cseCountdown').addEvent('click',this.toggleCountdown.bind(this));this.container.getElement('.csePause').addEvent('click',this.toggleCountdown.bind(this));this.container.getElement('.cseSkip').addEvent('click',this.skipExercise.bind(this));},show:function(){this.container.setStyles({'visibility':'visible','opacity':1,'z-index':1});this.session.breakScreen.hide();this.fitLayout();},hide:function(){this.container.setStyles({'visibility':'hidden','opacity':0,'z-index':0});},build:function(data){this.stop();this.data=data;this.imagesContainer.empty();this.progressElement.setStyle('height',0);this.buildImages();this.buildExerciseDuration();this.buildChangeover();this.fitLayout();this.session.onBuiltExerciseScreen();this.ready=true;if(this.startWhenReady){this.start();}},images:{firstSide:[],otherSide:[],changeover:false},buildImages:function(){var ids=[];var i=0;this.images={firstSide:[],otherSide:[],changeover:false};this.currentImage={firstSide:-1,otherSide:-1};this.data.exercise.exerciseimage_set.each(function(img){if(!img.is_general||i>=4||img.display_duration==0){return;}
var el=new Element('img',{src:fin.media.getImageUrl('ExerciseImage',img.id,'display_horizontal_12'),styles:{'visibility':'hidden','opacity':0,'z-index':0}}).inject(this.imagesContainer);img.element=el;if(img.is_changeover){this.images['changeover']=img;}else if(img.is_otherside){this.images['otherSide'].push(img);}else{this.images['firstSide'].push(img);}
i++;}.bind(this));},getActivityDuration:function(){return this.exerciseDuration-this.countdownExerciseSec;},exerciseDuration:30,exerciseDurationDone:0,buildExerciseDuration:function(){this.exerciseDuration=this.getExerciseDuration();this.exerciseDurationDone=0;this.countdownExerciseSec=this.exerciseDuration;this.container.getElement('.cseTotalTime strong').set('html',this.exerciseDuration);this.updateExerciseDuration();},getExerciseDuration:function(){if(this.data.duration_minutes){return this.data.duration_minutes*60;}else if(this.data.duration_seconds){return this.data.duration_seconds;}else{return 30;}},changeover:[],buildChangeover:function(){this.changeover=[];var c=this.data.exercise.changeover;if(c>0&&this.data.repetitions){c=this.data.repetitions;}
var changeoverStep=Math.floor(this.exerciseDuration/(c+1));this.changeover=[];for(var i=1;i<=c;i++){this.changeover.push(i*changeoverStep);}},updateExerciseDuration:function(fast){this.countdownElement.set('html',Number(this.countdownExerciseSec).spaced());this.countdownElement.className='cseCountdown cseCountdown-d'+String(this.countdownExerciseSec).length;var p=((this.exerciseDurationDone)/this.exerciseDuration);p=Math.min(1,Math.max(0,p))
var h=this.progressBarElement.getSize().y*p;this.progressElement[fast?'setStyle':'tween']('height',Math.round(h));},start:function(){if(!this.ready){this.startWhenReady=true;return;}
this.show();this.countdownExerciseSec=this.exerciseDuration;this.countdownRunning=true;this.slideshow=true;this.container.removeClass('paused');this.countdownExerciseInterval=this.countdownExerciseBound.periodical(1000,this);this.nextImage();},countdownRunning:false,countdownExerciseInterval:null,countdownExerciseSec:30,countdownExercise:function(){this.countdownExerciseSec--;debug.log(this.countdownExerciseSec);this.exerciseDurationDone=this.exerciseDuration-this.countdownExerciseSec;this.updateExerciseDuration();if(this.changeover.contains(this.exerciseDurationDone+4)){this.countdownToChangeover();}
if(this.countdownExerciseSec==4){this.session.sounds.play('session-countdown');}
if(this.countdownExerciseSec<=0){this.finishExercise();}},toggleCountdown:function(){if(this.countdownRunning){this.pauseCountdown();}else{this.continueCountdown();}},pauseCountdown:function(dontPauseSounds){this.countdownRunning=false;this.slideshow=false;this.container.addClass('paused');if(!dontPauseSounds)this.session.sounds.pause();clearInterval(this.countdownExerciseInterval);},continueCountdown:function(){if(this.inChangeover){return this.finishChangeover();}
this.countdownRunning=true;this.slideshow=true;this.container.removeClass('paused');this.countdownExerciseInterval=this.countdownExerciseBound.periodical(1000,this);},skipExercise:function(){this.countdownRunning=false;this.slideshow=false;clearInterval(this.countdownExerciseInterval);this.session.skipExercise(this.data.id);},finishExercise:function(){this.countdownRunning=false;this.slideshow=false;clearInterval(this.countdownExerciseInterval);this.session.finishExercise(this.data.id);},stop:function(){clearInterval(this.countdownExerciseInterval);},fitLayoutSafe:function(){this.fitLayout.delay(1000,this);},fitLayout:function(safe){this.progressBarElement.setStyle('height',this.progressCell.getSize().y);var size=this.container.getSize();if(size.x==0){this.fitLayout.delay(500,this);return;}
var ratio=size.x/size.y;var imageHeight=size.y;var imageWidth=imageHeight/3*4;var totalHeight=imageHeight;var totalWidth=imageWidth+158;var marginTop=0;if(totalWidth<size.x){this.table.setStyles({'width':totalWidth,'height':totalHeight,'margin-top':marginTop});}else{totalWidth=size.x;totalHeight=(totalWidth-158)/4*3;marginTop=(size.y-totalHeight)/2;this.table.setStyles({'width':totalWidth,'height':totalHeight,'margin-top':marginTop});}
this.updateExerciseDuration(true);},currentImage:{firstSide:-1,otherSide:-1},nextImage:function(){if(this.inChangeover||!this.slideshow){return;}
var c=this.changeoverOtherSide?'otherSide':'firstSide';if(!this.images[c].length){c=this.changeoverOtherSide?'firstSide':'otherSide';}
if(!this.images[c].length){return;}
this.currentImage[c]++;if(this.currentImage[c]>=this.images[c].length){this.currentImage[c]=0;}
var img=this.images[c][this.currentImage[c]];this.showImage(img);this.nextImage.delay(img.display_duration*1000,this);},showImage:function(img){this.imagesContainer.getElements('.current').each(function(el){el.setStyles({'visibility':'hidden','opacity':0,'z-index':0});});img.element.addClass('current').setStyles({'visibility':'visible','opacity':1,'z-index':1});},changeoverOtherSide:false,inChangeover:false,countdownToChangeover:function(){debug.log('exercise screen: countdownToChangeover');this.session.sounds.play('session-countdown');this.inChangeover=true;this.doChangeover.delay(4500,this);},doChangeover:function(){var d=parseInt(this.data.exercise.changeover_duration)*1000;this.blinkShow('Seitenwechsel',d+500);this.changeoverOtherSide=(!this.changeoverOtherSide);if(this.countdownRunning){this.pauseCountdown(true);this.finishChangeover.delay(d,this);}
if(this.images['changeover']){this.showImage(this.images['changeover']);}else{var c=this.changeoverOtherSide?'otherSide':'firstSide'
if(this.images[c].length){this.showImage(this.images[c][0]);}}},finishChangeover:function(){debug.log('exercise screen: finishChangeover');this.session.sounds.play('session-continue');this.inChangeover=false;this.continueCountdown();this.nextImage();this.blinkShow('Weiter',1000);},blinkElement:null,blinkContent:null,blinkTimeout:null,blinkShow:function(content,timeout,size,color,background){if(!this.blinkElement){this.blinkCloseBound=this.blinkClose.bind(this);this.blinkElement=new Element('table',{'class':'blink','styles':{'position':'absolute','top':1,'left':1,'z-index':1000000000,'opacity':0.6}});this.blinkContent=new Element('td',{'styles':{'vertical-align':'middle','text-align':'center','padding-bottom':30}}).inject(new Element('tr').inject(this.blinkElement));}
if(!size){size=40;}
if(!color){color='#fff';}
if(!background){background='#000';}
this.blinkElement.inject(this.imagesContainer);this.blinkContent.setStyles({'font-size':size,'color':color,'background-color':background}).set('html',content);var ics=this.imagesContainer.getElement('img').getSize();debug.log(ics);this.blinkElement.setStyles({'width':ics.x,'height':ics.y,'display':'table'});debug.log(this.blinkElement);debug.log(this.blinkElement.getStyle('display'));if(this.blinkTimeout!==null){clearTimeout(this.blinkTimeout);}
this.blinkTimeout=this.blinkCloseBound.delay(timeout);},blinkClose:function(){clearTimeout(this.blinkTimeout);this.blinkElement.setStyle('display','none');}});Fin.Training.Collection.Session.BreakScreen=new Class({initialize:function(session){this.session=session;this.container=$('SessionBreak');this.infoWrap=this.container.getElement('.csbInfo');this.infoContainer=$('SessionBreakInfo');this.metaContainer=$('SessionBreakMeta');this.imagesContainer=$('SessionBreakImages');this.breakDurationElement=this.container.getElement('.csbCountdownSeconds');this.countdownBreakBound=this.countdownBreak.bind(this);window.addEvent('resize',this.fitLayout.bind(this));this.container.getElement('table.csbCountdown').addEvent('click',this.toggleBreak.bind(this));this.container.getElement('table.csbCountdown').addEvent('dblclick',this.finishBreak.bind(this));this.container.getElement('.csbFinishButton').addEvent('click',this.cancelSession.bind(this));this.show(true);},show:function(initial){this.container.setStyles({'visibility':'visible','opacity':1,'z-index':1});if(!initial){this.session.exerciseScreen.hide();}
this.fitLayout();},hide:function(){this.container.setStyles({'visibility':'hidden','opacity':0,'z-index':0});},barSetSections:[],initBar:function(){var div=this.container.getElement('.csbBarSets');var table=new Element('table').inject(div);var tr=new Element('tr').inject(table);var pos=0;this.session.sets.each(function(s){s.totalPosition=pos;var td=new Element('td',{'title':'<div class="csbBarTip"><img src="'+fin.trainingCatalog.getMeta('mediaBaseUrl')+fin.trainingCatalog.getExercise(s.exercise_id).thumb+'" /></div>'}).inject(tr);s.breakBarSection=td;td.addEvent('click',function(){this.session.activateSet(s.totalPosition);}.bind(this));this.barSetSections.push(td);if(s.done){this.session.setSetState(s,'done')}
if(s.skipped){this.session.setSetState(s,'skipped')}
pos++;},this);new Tips(this.barSetSections,{fixed:true,hideDelay:200,showDelay:0,text:false,offset:{'x':0,'y':10}});},build:function(data,pos){this.stop();this.data=data;this.pos=pos;this.metaContainer.empty();this.imagesContainer.empty();this.buildTitle();this.buildImages();this.buildTools();this.buildWeight();this.buildDuration();this.buildBreakDuration();this.fitLayout();this.session.onBuiltBreakScreen();},title:'',buildTitle:function(){var title=this.data.exercise.title;this.title=title;title=String(title+':');var parts=title.split(':');var html='<span>Nächste Übung:</span><br /><strong title="'+this.data.exercise.id+'">'+parts[0]+'</strong>'+parts[1];this.container.getElement('.csbTitle').set('html',html);},imageElements:[],buildImages:function(){var ids=[];this.data.exercise.exerciseimage_set.each(function(img){if(img.is_general){ids.push(img.id);}});if(ids.length>4){ids=ids.slice(0,4);}
this.imageElements=[];ids.each(function(id){this.imageElements.push(new Element('img',{src:fin.media.getImageUrl('ExerciseImage',id,'display_horizontal_6')}).inject(this.imagesContainer));},this);},toolContainer:null,toolElements:[],buildTools:function(){var ids=[];this.data.exercise.tools.each(function(tool){ids.push(tool.id);});if(!ids.length){return;}
this.toolContainer=new Element('div',{'class':'csbTools'}).inject(this.metaContainer);this.toolElements=[];ids.each(function(id){this.toolElements.push(new Element('img',{src:'/media/res/img/icons/training-white-80/tool-'+id+'.png',width:80,height:80}).inject(this.toolContainer));},this);},weightElement:null,buildWeight:function(){if(this.data.weight){this.weightElement=new Element('table').inject(this.metaContainer);var tr=new Element('tr').inject(this.weightElement);var td1=new Element('td',{'class':'attribValue'}).inject(tr);var td2=new Element('td',{'class':'attribLabel'}).inject(tr);td1.set('html',Number(this.data.weight).spaced());td2.set('html','kg')}},durationElement:null,buildDuration:function(){this.durationElement=new Element('table').inject(this.metaContainer);var tr=new Element('tr').inject(this.durationElement);var td1=new Element('td',{'class':'attribValue'}).inject(tr);var td2=new Element('td',{'class':'attribLabel'}).inject(tr);if(this.data.duration_minutes){td1.set('html',Number(this.data.duration_minutes).spaced());td2.set('html','min.')}else if(this.data.duration_seconds){td1.set('html',Number(this.data.duration_seconds).spaced());td2.set('html','sek.')}else{td1.set('html',Number(30).spaced());td2.set('html','sek.')}},breakDuration:30,buildBreakDuration:function(){this.breakDuration=this.getBreakDuration();this.countdownBreakSec=this.breakDuration;this.updateBreakDuration();},getBreakDuration:function(){if(this.pos==0){return 10;}
if(this.data.set_break){if(this.data.position<this.data.series.collectionsessionset_set.length){return this.data.set_break}}
return this.session.data.break_duration;},updateBreakDuration:function(){this.breakDurationElement.set('html',Number(this.countdownBreakSec).spaced());},start:function(){this.show();this.countdownBreakSec=this.breakDuration;this.countdownBreakRunning=true;this.countdownBreakInterval=this.countdownBreakBound.periodical(1000);this.container.removeClass('paused');},countdownBreakRunning:false,countdownBreakInterval:null,countdownBreakSec:0,countdownBreak:function(){this.countdownBreakSec--;debug.log(this.countdownBreakSec);this.updateBreakDuration();if(this.countdownBreakSec==4){this.session.sounds.play('session-countdown');}else if(this.countdownBreakSec<=0){this.finishBreak();}},toggleBreak:function(){if(this.countdownBreakRunning){this.pauseBreak();}else{this.continueBreak();}},pauseBreak:function(){this.countdownBreakRunning=false;this.container.addClass('paused');this.session.sounds.pause();clearInterval(this.countdownBreakInterval);},continueBreak:function(){this.countdownBreakRunning=true;this.container.removeClass('paused');this.countdownBreakInterval=this.countdownBreakBound.periodical(1000,this);},finishBreak:function(){this.countdownBreakRunning=false;clearInterval(this.countdownBreakInterval);this.session.onBreakFinished();},stop:function(){this.countdownBreakRunning=false;clearInterval(this.countdownBreakInterval);},cancelSession:function(){clearInterval(this.countdownBreakInterval);this.container.addClass('paused');this.session.finish(true);},fitLayout:function(){this.infoContainer.setStyle('height',this.infoWrap.getSize().y);var size=window.getSize();var ratio=size.x/size.y;this.wide=(ratio>=(16/9));var ic=this.imageElements.length;if(this.wide||ic==4||ic==1){this.container.addClass('wide');this.imagesContainer.setStyles({'height':this.infoContainer.getSize().y,'width':'auto'});}else{this.container.removeClass('wide');this.imagesContainer.setStyles({'width':this.infoContainer.getSize().x,'height':'auto'});}
this.fitImages();},fitImages:function(){var ic=this.imageElements.length;var size=this.imagesContainer.getSize();var ratio=size.x/size.y;if(ic==1){if(ratio>(4/3)){this.styleImage(this.imageElements[0].setFullHeight());}else{this.styleImage(this.imageElements[0].setFullWidth());}}else if(ic==2){var pF=Math.floor(size.x-((8/3)*size.y));var pM=Math.floor(size.x*0.04);if(ratio>(8.4/3)){this.styleImage(this.imageElements[0].setAutoWidth('100%'),false,'0 '+pM+'px 0 0');this.styleImage(this.imageElements[1].setAutoWidth('100%'));}else{this.styleImage(this.imageElements[0].setAutoHeight('48%'),false,'0 '+pM+'px 0 0');this.styleImage(this.imageElements[1].setAutoHeight('48%'));}}else if(ic==3){var pF=Math.floor((size.x-((12/3)*size.y))/2);var pM=Math.floor(size.x*0.02);if(ratio>(12.4/3)){this.styleImage(this.imageElements[0].setAutoWidth('100%'),false,'0 '+pF+'px 0 0');this.styleImage(this.imageElements[1].setAutoWidth('100%'),false,'0 '+pF+'px 0 0');this.styleImage(this.imageElements[2].setAutoWidth('100%'));}else{this.styleImage(this.imageElements[0].setAutoHeight('32%'),false,'0 '+pM+'px 0 0');this.styleImage(this.imageElements[1].setAutoHeight('32%'),false,'0 '+pM+'px 0 0');this.styleImage(this.imageElements[2].setAutoHeight('32%'));}}else if(ic==4){var pF=Math.floor((size.x-((8/6)*size.y))/4);var pM=Math.floor(size.x*0.01);if(ratio>(8/6)){this.styleImage(this.imageElements[0].setAutoWidth('48%'),'left','0 '+pM+'px '+pM+'px 0');this.styleImage(this.imageElements[1].setAutoWidth('48%'),'left','0 0 '+pM+'px '+pM+'px','right');this.styleImage(this.imageElements[2].setAutoWidth('48%'),'left',pM+'px '+pM+'px 0 0','left');this.styleImage(this.imageElements[3].setAutoWidth('48%'),'left',pM+'px 0 0 '+pM+'px');}else{this.styleImage(this.imageElements[0].setAutoHeight('48%'),'left','0 '+pM+'px '+pM+'px 0');this.styleImage(this.imageElements[1].setAutoHeight('48%'),'left','0 0 '+pM+'px '+pM+'px','right');this.styleImage(this.imageElements[2].setAutoHeight('48%'),'left',pM+'px '+pM+'px 0 0','left');this.styleImage(this.imageElements[3].setAutoHeight('48%'),'left',pM+'px 0 0 '+pM+'px');}}},styleImage:function(img,floatValue,marginValue,clearValue){img.setStyles({'float':floatValue?floatValue:'none','margin':marginValue?marginValue:'0','clear':clearValue?clearValue:'none'});}});Number.implement({spaced:function(){v=String(this);var s='';var l=v.length;for(var i=0;i<l;i++){var e=v[i];if(e=='1'){e='<span class="spac">'+e+'</span>';}
s=s+e;}
return s;}});Element.implement({setFullWidth:function(){return this.setAutoHeight('100%');},setFullHeight:function(){return this.setAutoWidth('100%');},setAutoHeight:function(x){return this.setStyles({'width':x,'height':'auto'});},setAutoWidth:function(y){return this.setStyles({'width':'auto','height':y});},setFloat:function(v){return this.setStyle('float',v);},setPadding:function(v){return this.setStyle('padding',v);}});Fin.Training.BMICalculator=new Class({Extends:Fin.Training,Implements:Options,options:{weight:null,size:null,resultContainer:null,noResultContainer:null,classGood:'good',classBad:'bad',classVeryBad:'verybad'},initialize:function(options){this.setOptions(options);this.options.weight.addEvent('keyup',this.refresh.bind(this));this.options.size.addEvent('keyup',this.refresh.bind(this));this.refresh(true);},refreshed:false,refresh:function(){var weight=Number.from(this.options.weight.value);var size=Number.from(this.options.size.value);if(!weight)weight=0;if(!size)size=0;if(weight.toString()!=this.options.weight.value&&this.options.weight.value.length)this.options.weight.value=weight;if(size.toString()!=this.options.size.value&&this.options.size.value.length)this.options.size.value=size;if(weight&&size){var bmi=this.calculateBMI(weight,size);var category=this.getCategoryForBMI(bmi);var html='<p>'+'Body-Mass-Index <strong>'+(bmi).format({decimals:2})+'</strong><br />'+'<strong>'+category.title+'</strong><br />'+
(category.description.length?'<br />'+category.description:'')+'</p>';this.options.resultContainer.set('html',html).slide(!this.refreshed?'show':'in');this.options.noResultContainer.slide(!this.refreshed?'hide':'out');var categoryClass=this.options.classGood;if(bmi<18.5||bmi>25){categoryClass=this.options.classBad}
if(bmi<17||bmi>30){categoryClass=this.options.classVeryBad}
this.options.resultContainer.removeClass(this.options.classGood).removeClass(this.options.classBad).removeClass(this.options.classVeryBad).addClass(categoryClass);}else{this.options.resultContainer.slide(!this.refreshed?'hide':'out');this.options.noResultContainer.slide(!this.refreshed?'show':'in');}
this.refreshed=true;},calculateBMI:function(weight,size){return weight/((size*size)/10000)},getCategoryForBMI:function(bmi){var foundCategory=null;this.options.categories.each(function(category){if(category.from_bmi<=bmi&&category.to_bmi>=bmi){foundCategory=category;}}.bind(this));return foundCategory;}});Fin.Training.StopWatch=new Class({Extends:Fin.Training,Implements:Options,options:{boundFields:'.stopWatchBoundField',boundButtons:'.stopWatchBoundButton',boundToggles:'.stopWatchBoundToggle'},running:false,timer:0,timerInterval:null,withVideo:false,element:null,elementY:0,placeholder:null,initialize:function(element,options){this.element=$(element);this.setOptions(options);this.placeholder=new Element('div',{'styles':{'height':this.element.getSize().y,'position':'relative'}}).inject(this.element,'before');this.element.inject(this.placeholder);this.elementY=this.element.getPosition().y;document.addEvent('scroll',this.position.bind(this));this.position();document.addEvent('keydown',function(e){if(e.key=='space'&&(!e.target.name||e.target.name.match(/.*seconds.*/i))){e.stop();this.toggle();}}.bind(this));$$('.stopWatchControlReset').hide();$$('.stopWatchControlToggle').addEvent('click',this.toggle.bind(this)).setStyle('cursor','pointer');$$('.stopWatchControlReset').addEvent('click',this.reset.bind(this));$$('.stopWatchTime').set('tween',{'duration':1000})
$$(this.options.boundButtons).addEvent('click',this.boundButtonClick.bind(this));$$(this.options.boundToggles).addEvent('click',this.toggle.bind(this));this.updateButtons();},position:function(){if(window.scrollY>=this.elementY){this.element.setStyle('position','fixed');}else{this.element.setStyle('position','relative');}},toggle:function() {if(this.running)this.stop();else this.start();},start:function(){if(this.running)return;if(this.timer==0)this.timer=-$$('.stopWatchPrePost')[0].value.toInt();this.running=true;this.paused=false;this.updateTimer(this.timer);this.timerInterval=this.addSecond.periodical(1000,this);$$('.stopWatchTime').addClass('running').removeClass('paused').setStyle('color','#fff');this.updateButtons();},stop:function(){if(!this.running)return;if(this.timer<=0)return this.reset();this.running=false;this.paused=true;clearInterval(this.timerInterval);$$('.stopWatchTime').removeClass('running').addClass('paused').setStyle('color','#fff');this.updateButtons();},reset:function(soft){if(this.timerInterval)clearInterval(this.timerInterval);this.running=false;this.paused=false;this.updateTimer(0,soft);$$('.stopWatchTime').removeClass('running').removeClass('paused').setStyle('color','#999');this.updateButtons();},updateButtons:function(){if(this.running){$$('.stopWatchControlReset').show().removeClass('disabled');$$(this.options.boundButtons).set('value','Stoppuhr anhalten');}else if(this.paused){$$('.stopWatchControlReset').show().removeClass('disabled');$$(this.options.boundButtons).set('value','Aktivität speichern');}else{$$('.stopWatchControlReset').hide().addClass('disabled');$$(this.options.boundButtons).set('value','Aktivität speichern');}
$$('.stopWatchControlToggle').each(this.updateToggle.bind(this));$$(this.options.boundToggles).each(this.updateToggle.bind(this));},updateToggle:function(el){if(this.running){el.removeClass('stopWatchControlToggleStart').addClass('stopWatchControlToggleStop');el.set('value','Pause');}else if(this.paused){el.removeClass('stopWatchControlToggleStop').addClass('stopWatchControlToggleStart');el.set('value','Weiter');}else{el.removeClass('stopWatchControlToggleStop').addClass('stopWatchControlToggleStart');el.set('value','Start');}},boundButtonClick:function(e){if(this.running){this.stop();e.stop();return false;}else if(this.paused){this.reset(true);}else{this.reset(true);}},addSecond:function(){this.updateTimer(this.timer+1);$$('.stopWatchTime').setStyle('opacity','.7').tween('opacity','1');},updateTimer:function(t,soft){this.timer=t;if(this.timer<0){$$('.stopWatchTime').addClass('countdown').set('html',-this.timer);}else if(this.timer==0&&this.running){$$('.stopWatchTime').removeClass('countdown').set('html','LOS');}else{var minutes=Math.floor(this.timer/60);var seconds=this.timer-60*minutes;if(minutes<10)minutes='0'+minutes;if(seconds<10)seconds='0'+seconds;$$('.stopWatchTime').removeClass('countdown').set('html',minutes+':'+seconds);}
if(!soft)this.updateBoundFields();},updateBoundFields:function(){if(!this.options.boundFields)return;var fields=$$(this.options.boundFields);var t=this.timer;if(t<0)t=0;fields.set('value',t.toString());},onVideoStart:function(sv){this.withVideo=true;}});Fin.Maps=new Class({Extends:Fin});Fin.Maps.Map=new Class({Extends:Fin.Maps,Implements:Options,options:{mapContainer:null,info:null,infoMaxWidth:100,lon:null,lat:null,height:400,zoom:12,onMarkerClick:function(){}},service:{latLng:null,map:null,marker:null,infowindow:null},initialize:function(options){this.setOptions(options);this.initMap();},initMap:function(){if(this.options.lon&&this.options.lat){this.options.mapContainer.setStyle('height',this.options.height);this.service.latLng=new google.maps.LatLng(this.options.lat,this.options.lon);this.service.map=new google.maps.Map(this.options.mapContainer,{zoom:this.options.zoom,center:this.service.latLng,mapTypeId:google.maps.MapTypeId.ROADMAP,mapTypeControl:true,mapTypeControlOptions:{style:google.maps.MapTypeControlStyle.DROPDOWN_MENU},navigationControl:true,navigationControlOptions:{style:google.maps.NavigationControlStyle.SMALL},scaleControl:false,scrollwheel:false,keyboardShortcuts:false});this.service.marker=new google.maps.Marker({position:this.service.latLng,map:this.service.map});google.maps.event.addListener(this.service.marker,'click',function(){this.options.onMarkerClick();}.bind(this));if(this.options.info){this.service.infowindow=new google.maps.InfoWindow({content:this.options.info,maxWidth:this.options.infoMaxWidth});google.maps.event.addListener(this.service.marker,'click',function(){this.service.infowindow.open(this.service.map,this.service.marker);}.bind(this));}}}});Fin.Maps.Positioner=new Class({Extends:Fin.Maps,Implements:Options,options:{mapContainer:null,addressInput:null,latInput:null,lonInput:null,onChange:function(){},initLat:51.371780564342586,initLon:10.261230593750042,initZoom:5,addressZoom:15},data:{address:0,lat:0,lon:0,zoom:5},service:{map:null,marker:null,latLng:null,zoom:5},initialize:function(options){debug.log('map: initialize');this.setOptions(options);this.initInputs();this.initMap();},initInputs:function(){debug.log('map: initInputs');this.getAddressFromInput();this.getPositionFromInput();this.options.addressInput.addEvent('change',this.onAddressInputChange.bind(this));this.options.addressInput.addEvent('keyup',this.onAddressInputKeyup.bind(this));this.options.latInput.addEvent('change',this.onPositionInputChange.bind(this));this.options.lonInput.addEvent('change',this.onPositionInputChange.bind(this));},getAddressFromInput:function(){debug.log('map: getAddressFromInput');this.data.address=this.options.addressInput.value;},getPositionFromInput:function(){debug.log('map: getPositionFromInput');this.data.lat=this.options.latInput.value;this.data.lon=this.options.lonInput.value;},checkAddressData:function(){debug.log('map: checkAddressData');return(this.data.address.length)?true:false;},checkPositionData:function(){debug.log('map: checkPositionData');return(this.data.lat&&this.data.lat)?true:false;},initMap:function(){debug.log('map: initMap');if(this.checkPositionData()){this.initMapWithPosition();}else if(this.checkAddressData()){this.initMapWithAddress();}else{this.initMapWithDefaults();}},initMapWithDefaults:function(){debug.log('map: initMapWithDefaults');this.setZoom(this.options.initZoom);this.setLocation(this.options.initLat,this.options.initLon);this.displayMap();},initMapWithPosition:function(){debug.log('map: initMapWithPosition');this.setZoom(this.options.addressZoom);this.setLocation(this.data.lat,this.data.lon);this.displayMap();this.displayMarker();},initMapWithAddress:function(){debug.log('map: initMapWithAddress');this.geocodeAddress(function(){debug.log('map: geocode success (from initMapWithAddress -> geocodeAddress)')
this.setZoom(this.options.addressZoom);this.displayMap();this.displayMarker();}.bind(this));},previousAddress:'',geocodeAddress:function(onSuccess){debug.log('map: geocodeAddress');var geocoder=new google.maps.Geocoder();var address=this.data.address.replace(/(\r\n|\n|\r)/gm,', ');if(address==this.previousAddress)return;this.previousAddress=address;debug.log(address);geocoder.geocode({'address':address},function(results,status){if(status==google.maps.GeocoderStatus.OK){var latLng=results[0].geometry.location;this.setLocationFromLatLng(latLng,true);onSuccess();}else if(!this.service.map){this.initMapWithDefaults();}}.bind(this));},setZoom:function(zoom){debug.log('map: setZoom (zoom='+zoom+')');if(!zoom){zoom=this.service.marker?this.options.addressZoom:this.options.initZoom;}
this.service.zoom=zoom;if(this.service.map){this.service.map.setZoom(this.service.zoom);if(this.service.zoom>=this.options.addressZoom){debug.log('set map type to street');}else{debug.log('set map type to terrain');}}},updateLocationData:function(lat,lon){debug.log('map: updateLocationData (lat='+lat+', lon='+lon+')');this.data.lat=lat;this.data.lon=lon;this.options.latInput.value=lat;this.options.lonInput.value=lon;},setLocation:function(lat,lon,updateData){debug.log('map: setLocation(lat='+lat+', lon='+lon+', updateData='+updateData+')');this.service.latLng=new google.maps.LatLng(lat,lon);if(updateData){this.updateLocationData(lat,lon);}
this.options.onChange(this.data.lat,this.data.lon);},unsetLocation:function(){debug.log('map: unsetLocation');this.data.lon=null;this.data.lat=null;this.options.latInput.value='';this.options.lonInput.value='';this.options.onChange(null,null);},setLocationFromLatLng:function(latLng,updateData){debug.log('map: setLocationFromLatLng (latLng='+latLng+', updateData='+updateData+')');this.setLocation(latLng.lat(),latLng.lng(),updateData);},setLocationFromMarker:function(update){debug.log('map: setLocationFromMarker (update='+update+')');this.setLocationFromLatLng(this.service.marker.getPosition(),true);if(update)this.displayMap();},setLocationFromMap:function(update){debug.log('map: setLocationFromMap (update='+update+')');this.setLocationFromLatLng(this.service.map.getCenter(),true);if(update)this.displayMarker();},setLocationFromAddressInput:function(){debug.log('map: setLocationFromAddressInput');this.getAddressFromInput();if(this.checkAddressData()){this.geocodeAddress(function(){debug.log('geocode success (setLocationFromAddressInput)')
this.setZoom(this.options.addressZoom);this.displayMap();this.displayMarker();}.bind(this));}else{this.unsetLocation();this.displayMarker();this.displayMap();}},setLocationFromPositionInput:function(){debug.log('map: setLocationFromPositionInput');this.getPositionFromInput();if(this.checkPositionData()){this.setLocation(parseFloat(this.data.lat),parseFloat(this.data.lon),true);}else{this.unsetLocation();}
this.setZoom(this.options.addressZoom);this.displayMap();this.displayMarker();},displayMap:function(){debug.log('map: displayMap');if(this.service.map){return this.updateMap();}
var conf={zoom:this.service.zoom,center:this.service.latLng,mapTypeId:google.maps.MapTypeId.ROADMAP,mapTypeControl:true,mapTypeControlOptions:{style:google.maps.MapTypeControlStyle.DROPDOWN_MENU},navigationControl:true,navigationControlOptions:{style:google.maps.NavigationControlStyle.SMALL},scaleControl:false,scrollwheel:false,keyboardShortcuts:false};this.service.map=new google.maps.Map(this.options.mapContainer,conf);},updateMap:function(){debug.log('map: updateMap');if(this.checkPositionData()){this.service.map.setCenter(this.service.latLng);}else{this.resetMap();}},displayMarker:function(){debug.log('map: displayMarker');if(this.service.marker){return this.updateMarker();}
this.service.marker=new google.maps.Marker({position:this.service.latLng,map:this.service.map,title:this.data.address,draggable:true});google.maps.event.addListener(this.service.marker,"drag",this.onMarkerDrag.bind(this));google.maps.event.addListener(this.service.marker,"dragend",this.onMarkerDragEnd.bind(this));google.maps.event.addListener(this.service.map,"drag",this.onMapDrag.bind(this));google.maps.event.addListener(this.service.map,"dragend",this.onMapDragEnd.bind(this));},updateMarker:function(){debug.log('map: updateMarker');if(this.service.marker&&this.service.latLng){if(this.checkPositionData()){this.service.marker.setPosition(this.service.latLng);}else{this.resetMarker();}}},resetMarker:function(){debug.log('map: resetMarker');if(this.service.marker){this.service.marker.setMap(null);}
this.service.marker=null;},resetMap:function(){debug.log('map: resetMap');this.setZoom(this.options.initZoom);this.setLocation(this.options.initLat,this.options.initLon);this.service.map.setCenter(this.service.latLng);},onMarkerDrag:function(e){this.setLocationFromMarker(false);},onMarkerDragEnd:function(e){this.setLocationFromMarker(true);},onMapDrag:function(e){this.setLocationFromMap(true);},onMapDragEnd:function(e){this.setLocationFromMap(true);},onAddressInputChange:function(e){debug.log('map: onAddressInputChange');this.setLocationFromAddressInput();},addressInputTimeout:null,onAddressInputKeyup:function(e){clearTimeout(this.addressInputTimeout);this.addressInputTimeout=this.setLocationFromAddressInput.bind(this).delay(1000);},onPositionInputChange:function(e){debug.log('map: onPositionInputChange');this.setLocationFromPositionInput();},countWords:function(value){var count=0;words=value.replace(/\s/g,' ').split(' ');for(i=0;i<words.length;i++){if(words[i].length>0)count++;}
return count;}});Fin.Media=new Class({Extends:Fin,initialize:function(){$M.init({flowplayerSwf:'/media/res/swf/flowplayer/flowplayer-3.2.7.swf',flowplayerAudioSwf:'/media/res/swf/flowplayer/flowplayer.audio-3.2.2.swf',flowplayerControlsSwf:'/media/res/swf/flowplayer/flowplayer.controls.swf',servers:['http://fin.de']});},getImageUrl:function(model,id,accessor,extension){if(!extension){extension='jpg';}
return'/image/'+model+'/'+id+'/'+accessor+'.'+extension;}});Fin.Nutrition=new Class({});Fin.Nutrition.Food=new Class({});Fin.Nutrition.Food.Quiz=new Class({Implements:Options,options:{cookieOptions:{domain:document.domain,path:'/',duration:356}},stats:{questions:0,correct:0,quote:0},initialize:function(container,options){this.container=new Element('div',{'class':'FoodQuiz','events':{click:function(e){if(this.nextButtonEnabled){this.disableNextButton();this.getQuestion();}}.bind(this)}}).inject(container);this.setOptions(options);this.initQuesitonArea();this.getStats();this.initSuccessBar();this.updateSuccessBar();this.getQuestion();},getStats:function(){var c=Cookie.read('food_quiz_stats');if(c&&c.length){var a=c.split('/');this.stats.correct=Number(a[0]).toInt();this.stats.questions=Number(a[1]).toInt();}
this.updateStatsQuote();},saveStats:function(){Cookie.write('food_quiz_stats',this.stats.correct+'/'+this.stats.questions,this.options.cookieOptions);this.updateStatsQuote();},updateStatsQuote:function(){if(this.stats.questions>0){this.stats.quote=Math.round((this.stats.correct/this.stats.questions)*100)}else{this.stats.quote=0;}},initSuccessBar:function(){this.successBar=new Element('div',{'class':'quizSuccessBar',}).inject(this.container);},updateSuccessBar:function(){if(this.stats.questions>0){if(this.stats.correct==0){this.successBar.set('html','Du hast noch keine Frage richtig beantwortet.');}else{if(this.stats.questions>1){this.successBar.set('html','Du hast <strong>'+this.stats.correct+'/'+this.stats.questions+'</strong> ('+this.stats.quote+'%) Fragen richtig beantwortet.');}else{this.successBar.set('html','Super, die erste Frage hast du richtig beantwortet.');}}}else{this.successBar.set('html','<strong>Los geht\'s!</strong> Wähle die richtige Antwort &hellip;');}},initQuesitonArea:function(){this.questionArea=new Element('div',{'class':'quizQuestionArea'}).inject(this.container);},getQuestion:function(fast){if(this.currentQuestionElement&&!fast){var _delay=1000;var i=0;Object.each(this.currentChoiceElements,function(el){(function(){el.set('tween',{transition:Fx.Transitions.Back.easeInOut,duration:1000}).tween('top',250);}).delay(10+(i*300))
i++;_delay+=(10+(i*300));}.bind(this));}else{var _delay=10;}
(function(){new Django.Request({method:'fin.nutrition.getFoodQuizQuestion',withSession:false,onSuccess:function(response){this.buildQuestion(response);}.bind(this),}).send('compare');}).delay(_delay,this);},buildQuestion:function(q){this.currentQuestion=q;try{this['buildQuestion_'+q.questionType](q);}catch(e){}
this.answerIsSet=false;},buildQuestion_compare:function(q){debug.log(q);c=new Element('div',{'class':'quizQuestion quizQuestion_compare'});this.currentTitleElement=new Element('div',{'class':'quizQuestionTitle'+(q.field[1].length>20?' quizQuestionTitle-long':''),'html':'<table><tr><td>Welches Lebensmittel enthält mehr &hellip; <strong>'+q.field[1]+'</strong></td></tr></table>'}).inject(c);b=new Element('div',{'class':'quizQuestionBody'}).inject(c);this.currentChoiceElements={}
this.currentChoiceElements[q.item1.id]=new Element('div',{'class':'quizQuestionChoice quizQuestionChoice1','html':'<table><tr><td>'+q.item1.title+'</td></tr></table>','styles':{'top':-250},'events':{click:function(e){this.setAnswer_compare(q.item1.id);}.bind(this)}}).inject(b);this.currentChoiceElements[q.item2.id]=new Element('div',{'class':'quizQuestionChoice quizQuestionChoice2','html':'<table><tr><td>'+q.item2.title+'</td></tr></table>','styles':{'top':-250},'events':{click:function(e){this.setAnswer_compare(q.item2.id);}.bind(this)}}).inject(b);new Element('div',{'class':'clearfix'}).inject(c);this.currentQuestionElement=c;c.inject(this.questionArea.empty());var i=0;Object.each(this.currentChoiceElements,function(el){(function(){el.set('tween',{transition:Fx.Transitions.Back.easeInOut,duration:1000}).tween('top',34);}).delay(10+(i*300))
i++;}.bind(this));},setAnswer_compare:function(id){if(this.answerIsSet){return false;}
this.answerIsSet=true;this.currentChoiceElements[id].addClass('selectedAnswer');var data={pk_answer:id,pk1:this.currentQuestion.item1.id,pk2:this.currentQuestion.item2.id,field:this.currentQuestion.field[0],}
this.getSolution(data);},buildQuestion_relation:function(q){},setAnswer_relation:function(){if(this.answerIsSet){return false;}
this.answerIsSet=true;},getSolution:function(data){new Django.Request({method:'fin.nutrition.getFoodQuizSolution',withSession:false,onSuccess:function(response){this.showSolution(response);}.bind(this),}).send(this.currentQuestion.questionType,data);},showSolution:function(s){debug.log(s);this.currentSolution=s;try{this['showSolution_'+s.questionType](s);}catch(e){debug.error(e);this.getQuestion(true);return;}
this.stats.questions++;if(s.correct)this.stats.correct++;this.saveStats()
this.updateSuccessBar()
this.enableNextButton();},showSolution_compare:function(s){this.currentChoiceElements[s.solution].addClass('correctAnswer');this.currentChoiceElements[s.item1.id].getElement('td').set('html',s.item1.title+' <strong>'+s.item1.value+'</strong>');this.currentChoiceElements[s.item2.id].getElement('td').set('html',s.item2.title+' <strong>'+s.item2.value+'</strong>');if(s.correct){this.currentTitleElement.addClass('solutionTitle').addClass('solutionTitle-correct');this.currentTitleElement.getElement('td').set('html','<strong>Richtig!</strong> Zum Fortsetzen klicken');}else{this.currentTitleElement.addClass('solutionTitle').addClass('solutionTitle-wrong');this.currentTitleElement.getElement('td').set('html','<strong>Leider Falsch</strong> Zum Fortsetzen klicken');this.currentChoiceElements[s.answer].addClass('wrongAnswer');}},showSolution_relation:function(s){},enableNextButton:function(){this.nextButtonEnabled=true;this.container.addClass('nextButtonEnabled');},disableNextButton:function(){this.nextButtonEnabled=false;this.container.removeClass('nextButtonEnabled');}});Fin.Nutrition.Meal=new Class({});Fin.Uploader=new Class({Implements:Options,options:{base:'/uploader/receiver/',limit:false,pause:true,filesize:Math.round(1048576*5),maxsize:Math.round(1048576*100),container:'UploaderUploads',filetype:'jpg,jpeg,gif,png,tif,tiff,bmp',name:'alias',iframe:uploadManager.xmlhttpupload?false:true,multiple:uploadManager.multiple?true:false,progressbar:{width:250,gradient:false,color:'#eee',fillColor:'#aaa',text:'Upload ...',onChange:function(value,progressbar){if(value>=.99){progressbar.setText('Fertigstellen ...');}else{progressbar.setText((100*value).format()+'%');}}},},popup:null,form:null,initialize:function(options){this.setOptions(options);this.setOptions({onCreate:function(transfer){this.popup._position();}.bind(this),onAbort:function(object){alert('Upload abgebrochen: \n'+object.message)},onCancel:function(obj){return;},onComplete:function(infos){return;},onAllComplete:function(container){return;}});debug.log('Multiple uploads '+(uploadManager.multiple?'possible':'not possible'));debug.log('Resume upload '+(uploadManager.resume?'possible':'not possible'));debug.log('Ajax upload '+(uploadManager.xmlhttpupload?'possible':'not possible'));debug.log('Drag and drop '+(this.dragDropPossible()?'possible':'availability unknown'));this.initForm();this.initPopup();this.initUploadManager();},initForm:function(){this.form=new Element('form',{'id':'UploaderForm','method':'get','action':''});new Element('div',{'id':'UploaderUploads'}).inject(this.form);if(this.dragDropPossible()){new Element('div',{'id':'UploaderFooter','html':'<div class="uploaderDropHint">Dateien per <strong>Drag &amp; Drop</strong> hier ablegen</div>'}).inject(this.form);}
var more=new Element('p',{'id':'UploaderMore',}).inject(this.form);new Element('a',{'class':'button','html':'+ von Festplatte','events':{click:function(e){uploadManager.upload(this.options);}.bind(this)}}).inject(more);new Element('a',{'class':'button','html':'+ von Instagram','events':{click:this.browseInstagram.bind(this)}}).inject(more);new Element('div',{'id':'UploaderWarning','html':'Die Dateien dürfen die Rechte Dritter in keiner Weise verletzen!<br />Halte dich bitte an Copyright-Bestimmungen.<br />Beachte auch unsere <a href="/datenschutz/" target="_blank">Datenschutzhinweise</a>.'}).inject(this.form);},initPopup:function(){this.popup=new LightFace.Fin({title:'Dateien hochladen',modal:true,content:'',buttons:[{title:'Abbrechen',color:'red',event:function(){this.close();}},{title:'Fertig',color:'green',event:function(){this.finish();}.bind(this)}],onOpen:function(){if(!this.dragDropPossible()){uploadManager.upload(this.options);}}.bind(this)});this.form.inject(this.popup.messageBox.empty());this.popup.messageBox.addClass('uploaderPopupBox')},initUploadManager:function(){uploadManager.enqueue=false;uploadManager.attachDragEvents('UploaderForm',this.options);this.form.getElements('a.uploaderAddLink').addEvent('click',function(e){e.stop();uploadManager.upload(this.options);}.bind(this));if(this.dragDropPossible){this.form.addClass('drop-enabled');}else{uploadManager.upload(this.options);}},addDropzone:function(elId,onFinish,patienceText,patienceTitle){if(!this.dragDropPossible())return;var options=Object.clone(this.options);options.onCreate=function(){patience(patienceText,patienceTitle)}.bind(this);options.onComplete=function(){this.finish(onFinish);}.bind(this);uploadManager.attachDragEvents(elId,options);},dragDropPossible:function(){if(!uploadManager.xmlhttpupload)return false;return(window.DataTransfer||window.FileList)?true:false;},resetUploader:function(){uploadManager.actives['UploaderUploads']=[];uploadManager.uploads['UploaderUploads']=[];this.form.getElements('.upload-container').destroy();},upload:function(onFinish){this.resetUploader();this.onFinish=onFinish;this.popup.open();},addUrl:function(url,name){var container=new Element('div',{'class':'upload-container'});var content=new Element('div',{'class':'upload-content','styles':{'display':'inline-block'}}).inject(container);var span=new Element('span').inject(content);var hidden=new Element('input',{'type':'hidden','name':'file_alias_pk','value':''}).inject(span);var label=new Element('label',{'class':'oneLine','html':'Wird geladen ...'}).inject(span);var cancel=new Element('a',{'class':'cancel-upload button red','href':'javascript:;','html':'&times;','events':{click:function(e){container.destroy();}}}).inject(container);container.inject(this.popup.messageBox.getElement('#UploaderUploads'));var displayName=name?name:url;new Django.Request({method:'fin.uploader.uploadFromUrl',withSession:true,onSuccess:function(response){debug.log('success');debug.log(response);hidden.set('value',response.pk);label.set('html',displayName);}.bind(this),onFailure:function(response){debug.log('failure');debug.log(response);label.set('html','<strong>Fehler</strong> '+displayName);}.bind(this)}).send(url,name);},onFinish:function(files,pks){},finish:function(onFinish){var files=[],pks=[];$('UploaderUploads').getElements('input[name=alias]').each(function(el){files.push(el.get('value'));});$('UploaderUploads').getElements('input[name=file_alias_pk]').each(function(el){pks.push(el.get('value'));});this.popup.close();if(onFinish){onFinish(files,pks);}else{this.onFinish(files,pks);}},browseInstagram:function(){this.instagramPopup=new LightFace.Fin({title:'Instagram durchsuchen',modal:false,width:890,height:460,content:'',buttons:[{title:'Abbrechen',color:'red',event:function(){this.close();}},{title:'Fertig',color:'green',event:function(){var els=this.instagramPopup.messageBox.getElements('.selectedInstagramImage');var urls=[];els.each(function(el){media=el.retrieve('instagramImage');el.removeClass('.selectedInstagramImage');this.addUrl(media.full_url,'Instagram: '+media.name);}.bind(this));this.instagramPopup.close();}.bind(this)}],}).open();this.startInstagramRequest();},startInstagramRequest:function(){new Element('p',{html:'Bitte warte, während Instagram geladen wird ...'}).inject(this.instagramPopup.messageBox.empty());new Django.Request({method:'fin.uploader.browseInstagram',withSession:true,onSuccess:function(response){if(response.error){alert('Fehler beim Verbinden mit Instagram');}else{if(response.auth) {this.injectInstagramAuth(response.auth);}else{this.injectInstagramImages(response.images);}}}.bind(this),onFailure:function(response){this.instagramPopup.close();this.instagramPopup.messageBox.empty()
alert('Konnte keine Verbindung zu Instagram aufbauen.');}.bind(this)}).send(document.location.href,true);},injectInstagramImages:function(data){if(!this.instagramPopup)return;var box=new Element('div',{'styles':{'padding':'20px 35px'}}).inject(this.instagramPopup.messageBox.empty());this.instagramPopup.open();data.each(function(media){var div=new Element('div',{'styles':{'float':'left','position':'relative','display':'block','padding':'0','margin':'3px','width':media.thumbnail_width,'height':media.thumbnail_height,'background':'#000'}}).inject(box);var img=new Element('img',{'src':media.thumbnail_url,'width':media.thumbnail_width,'height':media.thumbnail_height}).inject(div);var selector=new Element('div',{'styles':{'display':'block','position':'absolute','z-index':1,'top':0,'left':0,'width':media.thumbnail_width-10,'height':media.thumbnail_height-10,'background':'none','cursor':'pointer'},'events':{click:function(e){if(!this.hasClass('selectedInstagramImage')){this.setStyle('border','5px solid #0ba4d7');this.addClass('selectedInstagramImage');img.setStyles({'opacity':.8,'box-shadow':'0 0 5px #0ba4d7','-moz-box-shadow':'0 0 5px #0ba4d7','-webkit-box-shadow':'0 0 5px #0ba4d7'});}else{this.setStyle('border','none');this.removeClass('selectedInstagramImage');img.setStyles({'opacity':1,'box-shadow':'none','-moz-box-shadow':'none','-webkit-box-shadow':'none'});}}}}).store('instagramImage',media).inject(div);}.bind(this));},injectInstagramAuth:function(url){if(!this.instagramPopup)return;var iframe=new Element('iframe',{'src':url,'width':850,'height':450,'name':'instagramAuth','id':'instagramAuthIFrame','scrolling':'no','frameborder':0,'marginwidth':0,'marginheight':0}).store('uploader',this).inject(this.instagramPopup.messageBox.empty());this.instagramPopup.open();},finishInstagramAuth:function(success){if(success){this.startInstagramRequest();}else{this.instagramPopup.close();this.instagramPopup.messageBox.empty();alert('Konnte keine Verbindung zu Instagram aufbauen.');}}});
