(function(){this.MooTools={version:"1.3.1",build:"af48c8d589f43f32212f9bb8ff68a127e6a3ba6c"};var e=this.typeOf=function(i){if(i==null){return"null"}if(i.$family){return i.$family()}if(i.nodeName){if(i.nodeType==1){return"element"}if(i.nodeType==3){return(/\S/).test(i.nodeValue)?"textnode":"whitespace"}}else{if(typeof i.length=="number"){if(i.callee){return"arguments"}if("item" in i){return"collection"}}}return typeof i};var u=this.instanceOf=function(w,i){if(w==null){return false}var v=w.$constructor||w.constructor;while(v){if(v===i){return true}v=v.parent}return w instanceof i};var f=this.Function;var r=true;for(var q in {toString:1}){r=null}if(r){r=["hasOwnProperty","valueOf","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","constructor"]}f.prototype.overloadSetter=function(v){var i=this;return function(x,w){if(x==null){return this}if(v||typeof x!="string"){for(var y in x){i.call(this,y,x[y])}if(r){for(var z=r.length;z--;){y=r[z];if(x.hasOwnProperty(y)){i.call(this,y,x[y])}}}}else{i.call(this,x,w)}return this}};f.prototype.overloadGetter=function(v){var i=this;return function(x){var y,w;if(v||typeof x!="string"){y=x}else{if(arguments.length>1){y=arguments}}if(y){w={};for(var z=0;z<y.length;z++){w[y[z]]=i.call(this,y[z])}}else{w=i.call(this,x)}return w}};f.prototype.extend=function(i,v){this[i]=v}.overloadSetter();f.prototype.implement=function(i,v){this.prototype[i]=v}.overloadSetter();var o=Array.prototype.slice;f.from=function(i){return(e(i)=="function")?i:function(){return i}};Array.from=function(i){if(i==null){return[]}return(k.isEnumerable(i)&&typeof i!="string")?(e(i)=="array")?i:o.call(i):[i]};Number.from=function(v){var i=parseFloat(v);return isFinite(i)?i:null};String.from=function(i){return i+""};f.implement({hide:function(){this.$hidden=true;return this},protect:function(){this.$protected=true;return this}});var k=this.Type=function(x,w){if(x){var v=x.toLowerCase();var i=function(y){return(e(y)==v)};k["is"+x]=i;if(w!=null){w.prototype.$family=(function(){return v}).hide();w.type=i}}if(w==null){return null}w.extend(this);w.$constructor=k;w.prototype.$constructor=w;return w};var p=Object.prototype.toString;k.isEnumerable=function(i){return(i!=null&&typeof i.length=="number"&&p.call(i)!="[object Function]")};var b={};var d=function(i){var v=e(i.prototype);return b[v]||(b[v]=[])};var h=function(w,A){if(A&&A.$hidden){return}var v=d(this);for(var x=0;x<v.length;x++){var z=v[x];if(e(z)=="type"){h.call(z,w,A)}else{z.call(this,w,A)}}var y=this.prototype[w];if(y==null||!y.$protected){this.prototype[w]=A}if(this[w]==null&&e(A)=="function"){t.call(this,w,function(i){return A.apply(i,o.call(arguments,1))})}};var t=function(i,w){if(w&&w.$hidden){return}var v=this[i];if(v==null||!v.$protected){this[i]=w}};k.implement({implement:h.overloadSetter(),extend:t.overloadSetter(),alias:function(i,v){h.call(this,i,this.prototype[v])}.overloadSetter(),mirror:function(i){d(this).push(i);return this}});new k("Type",k);var c=function(v,z,x){var w=(z!=Object),D=z.prototype;if(w){z=new k(v,z)}for(var A=0,y=x.length;A<y;A++){var E=x[A],C=z[E],B=D[E];if(C){C.protect()}if(w&&B){delete D[E];D[E]=B.protect()}}if(w){z.implement(D)}return c};c("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",f,["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=t.overloadSetter();Date.extend("now",function(){return +(new Date)});new k("Boolean",Boolean);Number.prototype.$family=function(){return isFinite(this)?"number":"null"}.hide();Number.extend("random",function(v,i){return Math.floor(Math.random()*(i-v+1)+v)});var l=Object.prototype.hasOwnProperty;Object.extend("forEach",function(i,w,x){for(var v in i){if(l.call(i,v)){w.call(x,i[v],v,i)}}});Object.each=Object.forEach;Array.implement({forEach:function(x,y){for(var w=0,v=this.length;w<v;w++){if(w in this){x.call(y,this[w],w,this)}}},each:function(i,v){Array.forEach(this,i,v);return this}});var s=function(i){switch(e(i)){case"array":return i.clone();case"object":return Object.clone(i);default:return i}};Array.implement("clone",function(){var v=this.length,w=new Array(v);while(v--){w[v]=s(this[v])}return w});var a=function(v,i,w){switch(e(w)){case"object":if(e(v[i])=="object"){Object.merge(v[i],w)}else{v[i]=Object.clone(w)}break;case"array":v[i]=w.clone();break;default:v[i]=w}return v};Object.extend({merge:function(C,y,x){if(e(y)=="string"){return a(C,y,x)}for(var B=1,w=arguments.length;B<w;B++){var z=arguments[B];for(var A in z){a(C,A,z[A])}}return C},clone:function(i){var w={};for(var v in i){w[v]=s(i[v])}return w},append:function(z){for(var y=1,w=arguments.length;y<w;y++){var v=arguments[y]||{};for(var x in v){z[x]=v[x]}}return z}});["Object","WhiteSpace","TextNode","Collection","Arguments"].each(function(i){new k(i)});var j=Date.now();String.extend("uniqueID",function(){return(j++).toString(36)});var g=this.Hash=new k("Hash",function(i){if(e(i)=="hash"){i=Object.clone(i.getClean())}for(var v in i){this[v]=i[v]}return this});g.implement({forEach:function(i,v){Object.forEach(this,i,v)},getClean:function(){var v={};for(var i in this){if(this.hasOwnProperty(i)){v[i]=this[i]}}return v},getLength:function(){var v=0;for(var i in this){if(this.hasOwnProperty(i)){v++}}return v}});g.alias("each","forEach");Object.type=k.isObject;var n=this.Native=function(i){return new k(i.name,i.initialize)};n.type=k.type;n.implement=function(x,v){for(var w=0;w<x.length;w++){x[w].implement(v)}return n};var m=Array.type;Array.type=function(i){return u(i,Array)||m(i)};this.$A=function(i){return Array.from(i).slice()};this.$arguments=function(v){return function(){return arguments[v]}};this.$chk=function(i){return !!(i||i===0)};this.$clear=function(i){clearTimeout(i);clearInterval(i);return null};this.$defined=function(i){return(i!=null)};this.$each=function(w,v,x){var i=e(w);((i=="arguments"||i=="collection"||i=="array"||i=="elements")?Array:Object).each(w,v,x)};this.$empty=function(){};this.$extend=function(v,i){return Object.append(v,i)};this.$H=function(i){return new g(i)};this.$merge=function(){var i=Array.slice(arguments);i.unshift({});return Object.merge.apply(null,i)};this.$lambda=f.from;this.$mixin=Object.merge;this.$random=Number.random;this.$splat=Array.from;this.$time=Date.now;this.$type=function(i){var v=e(i);if(v=="elements"){return"array"}return(v=="null")?false:v};this.$unlink=function(i){switch(e(i)){case"object":return Object.clone(i);case"array":return Array.clone(i);case"hash":return new g(i);default:return i}}}).call(this);Array.implement({invoke:function(a){var b=Array.slice(arguments,1);return this.map(function(c){return c[a].apply(c,b)})},every:function(c,d){for(var b=0,a=this.length;b<a;b++){if((b in this)&&!c.call(d,this[b],b,this)){return false}}return true},filter:function(d,e){var c=[];for(var b=0,a=this.length;b<a;b++){if((b in this)&&d.call(e,this[b],b,this)){c.push(this[b])}}return c},clean:function(){return this.filter(function(a){return a!=null})},indexOf:function(c,d){var a=this.length;for(var b=(d<0)?Math.max(0,a+d):d||0;b<a;b++){if(this[b]===c){return b}}return -1},map:function(d,e){var c=[];for(var b=0,a=this.length;b<a;b++){if(b in this){c[b]=d.call(e,this[b],b,this)}}return c},some:function(c,d){for(var b=0,a=this.length;b<a;b++){if((b in this)&&c.call(d,this[b],b,this)){return true}}return false},associate:function(c){var d={},b=Math.min(this.length,c.length);for(var a=0;a<b;a++){d[c[a]]=this[a]}return d},link:function(c){var a={};for(var e=0,b=this.length;e<b;e++){for(var d in c){if(c[d](this[e])){a[d]=this[e];delete c[d];break}}}return a},contains:function(a,b){return this.indexOf(a,b)!=-1},append:function(a){this.push.apply(this,a);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(a){if(!this.contains(a)){this.push(a)}return this},combine:function(c){for(var b=0,a=c.length;b<a;b++){this.include(c[b])}return this},erase:function(b){for(var a=this.length;a--;){if(this[a]===b){this.splice(a,1)}}return this},empty:function(){this.length=0;return this},flatten:function(){var d=[];for(var b=0,a=this.length;b<a;b++){var c=typeOf(this[b]);if(c=="null"){continue}d=d.concat((c=="array"||c=="collection"||c=="arguments"||instanceOf(this[b],Array))?Array.flatten(this[b]):this[b])}return d},pick:function(){for(var b=0,a=this.length;b<a;b++){if(this[b]!=null){return this[b]}}return null},hexToRgb:function(b){if(this.length!=3){return null}var a=this.map(function(c){if(c.length==1){c+=c}return c.toInt(16)});return(b)?a:"rgb("+a+")"},rgbToHex:function(d){if(this.length<3){return null}if(this.length==4&&this[3]==0&&!d){return"transparent"}var b=[];for(var a=0;a<3;a++){var c=(this[a]-0).toString(16);b.push((c.length==1)?"0"+c:c)}return(d)?b:"#"+b.join("")}});Array.alias("extend","append");var $pick=function(){return Array.from(arguments).pick()};String.implement({test:function(a,b){return((typeOf(a)=="regexp")?a:new RegExp(""+a,b)).test(this)},contains:function(a,b){return(b)?(b+this+b).indexOf(b+a+b)>-1:this.indexOf(a)>-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(a){return a.charAt(1).toUpperCase()})},hyphenate:function(){return this.replace(/[A-Z]/g,function(a){return("-"+a.charAt(0).toLowerCase())})},capitalize:function(){return this.replace(/\b[a-z]/g,function(a){return a.toUpperCase()})},escapeRegExp:function(){return this.replace(/([-.*+?^${}()|[\]\/\\])/g,"\\$1")},toInt:function(a){return parseInt(this,a||10)},toFloat:function(){return parseFloat(this)},hexToRgb:function(b){var a=this.match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/);return(a)?a.slice(1).hexToRgb(b):null},rgbToHex:function(b){var a=this.match(/\d{1,3}/g);return(a)?a.rgbToHex(b):null},substitute:function(a,b){return this.replace(b||(/\\?\{([^{}]+)\}/g),function(d,c){if(d.charAt(0)=="\\"){return d.slice(1)}return(a[c]!=null)?a[c]:""})}});Number.implement({limit:function(b,a){return Math.min(a,Math.max(b,this))},round:function(a){a=Math.pow(10,a||0).toFixed(a<0?-a:0);return Math.round(this*a)/a},times:function(b,c){for(var a=0;a<this;a++){b.call(c,a,this)}},toFloat:function(){return parseFloat(this)},toInt:function(a){return parseInt(this,a||10)}});Number.alias("each","times");(function(b){var a={};b.each(function(c){if(!Number[c]){a[c]=function(){return Math[c].apply(null,[this].concat(Array.from(arguments)))}}});Number.implement(a)})(["abs","acos","asin","atan","atan2","ceil","cos","exp","floor","log","max","min","pow","sin","sqrt","tan"]);Function.extend({attempt:function(){for(var b=0,a=arguments.length;b<a;b++){try{return arguments[b]()}catch(c){}}return null}});Function.implement({attempt:function(a,c){try{return this.apply(c,Array.from(a))}catch(b){}return null},bind:function(c){var a=this,b=(arguments.length>1)?Array.slice(arguments,1):null;return function(){if(!b&&!arguments.length){return a.call(c)}if(b&&arguments.length){return a.apply(c,b.concat(Array.from(arguments)))}return a.apply(c,b||arguments)}},pass:function(b,c){var a=this;if(b!=null){b=Array.from(b)}return function(){return a.apply(c,b||arguments)}},delay:function(b,c,a){return setTimeout(this.pass((a==null?[]:a),c),b)},periodical:function(c,b,a){return setInterval(this.pass((a==null?[]:a),b),c)}});delete Function.prototype.bind;Function.implement({create:function(b){var a=this;b=b||{};return function(d){var c=b.arguments;c=(c!=null)?Array.from(c):Array.slice(arguments,(b.event)?1:0);if(b.event){c=[d||window.event].extend(c)}var e=function(){return a.apply(b.bind||null,c)};if(b.delay){return setTimeout(e,b.delay)}if(b.periodical){return setInterval(e,b.periodical)}if(b.attempt){return Function.attempt(e)}return e()}},bind:function(c,b){var a=this;if(b!=null){b=Array.from(b)}return function(){return a.apply(c,b||arguments)}},bindWithEvent:function(c,b){var a=this;if(b!=null){b=Array.from(b)}return function(d){return a.apply(c,(b==null)?arguments:[d].concat(b))}},run:function(a,b){return this.apply(b,Array.from(a))}});var $try=Function.attempt;(function(){var a=Object.prototype.hasOwnProperty;Object.extend({subset:function(d,g){var f={};for(var e=0,b=g.length;e<b;e++){var c=g[e];f[c]=d[c]}return f},map:function(b,e,f){var d={};for(var c in b){if(a.call(b,c)){d[c]=e.call(f,b[c],c,b)}}return d},filter:function(b,d,e){var c={};Object.each(b,function(g,f){if(d.call(e,g,f,b)){c[f]=g}});return c},every:function(b,d,e){for(var c in b){if(a.call(b,c)&&!d.call(e,b[c],c)){return false}}return true},some:function(b,d,e){for(var c in b){if(a.call(b,c)&&d.call(e,b[c],c)){return true}}return false},keys:function(b){var d=[];for(var c in b){if(a.call(b,c)){d.push(c)}}return d},values:function(c){var b=[];for(var d in c){if(a.call(c,d)){b.push(c[d])}}return b},getLength:function(b){return Object.keys(b).length},keyOf:function(b,d){for(var c in b){if(a.call(b,c)&&b[c]===d){return c}}return null},contains:function(b,c){return Object.keyOf(b,c)!=null},toQueryString:function(b,c){var d=[];Object.each(b,function(h,g){if(c){g=c+"["+g+"]"}var f;switch(typeOf(h)){case"object":f=Object.toQueryString(h,g);break;case"array":var e={};h.each(function(k,j){e[j]=k});f=Object.toQueryString(e,g);break;default:f=g+"="+encodeURIComponent(h)}if(h!=null){d.push(f)}});return d.join("&")}})})();Hash.implement({has:Object.prototype.hasOwnProperty,keyOf:function(a){return Object.keyOf(this,a)},hasValue:function(a){return Object.contains(this,a)},extend:function(a){Hash.each(a||{},function(c,b){Hash.set(this,b,c)},this);return this},combine:function(a){Hash.each(a||{},function(c,b){Hash.include(this,b,c)},this);return this},erase:function(a){if(this.hasOwnProperty(a)){delete this[a]}return this},get:function(a){return(this.hasOwnProperty(a))?this[a]:null},set:function(a,b){if(!this[a]||this.hasOwnProperty(a)){this[a]=b}return this},empty:function(){Hash.each(this,function(b,a){delete this[a]},this);return this},include:function(a,b){if(this[a]==null){this[a]=b}return this},map:function(a,b){return new Hash(Object.map(this,a,b))},filter:function(a,b){return new Hash(Object.filter(this,a,b))},every:function(a,b){return Object.every(this,a,b)},some:function(a,b){return Object.some(this,a,b)},getKeys:function(){return Object.keys(this)},getValues:function(){return Object.values(this)},toQueryString:function(a){return Object.toQueryString(this,a)}});Hash.extend=Object.append;Hash.alias({indexOf:"keyOf",contains:"hasValue"});(function(){var l=this.document;var j=l.window=this;var b=1;this.$uid=(j.ActiveXObject)?function(e){return(e.uid||(e.uid=[b++]))[0]}:function(e){return e.uid||(e.uid=b++)};$uid(j);$uid(l);var a=navigator.userAgent.toLowerCase(),c=navigator.platform.toLowerCase(),k=a.match(/(opera|ie|firefox|chrome|version)[\s\/:]([\w\d\.]+)?.*?(safari|version[\s\/:]([\w\d\.]+)|$)/)||[null,"unknown",0],g=k[1]=="ie"&&l.documentMode;var p=this.Browser={extend:Function.prototype.extend,name:(k[1]=="version")?k[3]:k[1],version:g||parseFloat((k[1]=="opera"&&k[4])?k[4]:k[2]),Platform:{name:a.match(/ip(?:ad|od|hone)/)?"ios":(a.match(/(?:webos|android)/)||c.match(/mac|win|linux/)||["other"])[0]},Features:{xpath:!!(l.evaluate),air:!!(j.runtime),query:!!(l.querySelector),json:!!(j.JSON)},Plugins:{}};p[p.name]=true;p[p.name+parseInt(p.version,10)]=true;p.Platform[p.Platform.name]=true;p.Request=(function(){var r=function(){return new XMLHttpRequest()};var q=function(){return new ActiveXObject("MSXML2.XMLHTTP")};var e=function(){return new ActiveXObject("Microsoft.XMLHTTP")};return Function.attempt(function(){r();return r},function(){q();return q},function(){e();return e})})();p.Features.xhr=!!(p.Request);var i=(Function.attempt(function(){return navigator.plugins["Shockwave Flash"].description},function(){return new ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version")})||"0 r0").match(/\d+/g);p.Plugins.Flash={version:Number(i[0]||"0."+i[1])||0,build:Number(i[2])||0};p.exec=function(q){if(!q){return q}if(j.execScript){j.execScript(q)}else{var e=l.createElement("script");e.setAttribute("type","text/javascript");e.text=q;l.head.appendChild(e);l.head.removeChild(e)}return q};String.implement("stripScripts",function(q){var e="";var r=this.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi,function(s,t){e+=t+"\n";return""});if(q===true){p.exec(e)}else{if(typeOf(q)=="function"){q(e,r)}}return r});p.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(e,q){j[e]=q});this.Document=l.$constructor=new Type("Document",function(){});l.$family=Function.from("document").hide();Document.mirror(function(e,q){l[e]=q});l.html=l.documentElement;l.head=l.getElementsByTagName("head")[0];if(l.execCommand){try{l.execCommand("BackgroundImageCache",false,true)}catch(h){}}if(this.attachEvent&&!this.addEventListener){var d=function(){this.detachEvent("onunload",d);l.head=l.html=l.window=null};this.attachEvent("onunload",d)}var n=Array.from;try{n(l.html.childNodes)}catch(h){Array.from=function(q){if(typeof q!="string"&&Type.isEnumerable(q)&&typeOf(q)!="array"){var e=q.length,r=new Array(e);while(e--){r[e]=q[e]}return r}return n(q)};var m=Array.prototype,o=m.slice;["pop","push","reverse","shift","sort","splice","unshift","concat","join","slice"].each(function(e){var q=m[e];Array[e]=function(r){return q.apply(Array.from(r),o.call(arguments,1))}})}if(p.Platform.ios){p.Platform.ipod=true}p.Engine={};var f=function(q,e){p.Engine.name=q;p.Engine[q+e]=true;p.Engine.version=e};if(p.ie){p.Engine.trident=true;switch(p.version){case 6:f("trident",4);break;case 7:f("trident",5);break;case 8:f("trident",6)}}if(p.firefox){p.Engine.gecko=true;if(p.version>=3){f("gecko",19)}else{f("gecko",18)}}if(p.safari||p.chrome){p.Engine.webkit=true;switch(p.version){case 2:f("webkit",419);break;case 3:f("webkit",420);break;case 4:f("webkit",525)}}if(p.opera){p.Engine.presto=true;if(p.version>=9.6){f("presto",960)}else{if(p.version>=9.5){f("presto",950)}else{f("presto",925)}}}if(p.name=="unknown"){switch((a.match(/(?:webkit|khtml|gecko)/)||[])[0]){case"webkit":case"khtml":p.Engine.webkit=true;break;case"gecko":p.Engine.gecko=true}}this.$exec=p.exec}).call(this);var Event=new Type("Event",function(a,i){if(!i){i=window}var o=i.document;a=a||i.event;if(a.$extended){return a}this.$extended=true;var n=a.type,k=a.target||a.srcElement,m={},c={},q=null,h,l,b,p;while(k&&k.nodeType==3){k=k.parentNode}if(n.indexOf("key")!=-1){b=a.which||a.keyCode;p=Object.keyOf(Event.Keys,b);if(n=="keydown"){var d=b-111;if(d>0&&d<13){p="f"+d}}if(!p){p=String.fromCharCode(b).toLowerCase()}}else{if((/click|mouse|menu/i).test(n)){o=(!o.compatMode||o.compatMode=="CSS1Compat")?o.html:o.body;m={x:(a.pageX!=null)?a.pageX:a.clientX+o.scrollLeft,y:(a.pageY!=null)?a.pageY:a.clientY+o.scrollTop};c={x:(a.pageX!=null)?a.pageX-i.pageXOffset:a.clientX,y:(a.pageY!=null)?a.pageY-i.pageYOffset:a.clientY};if((/DOMMouseScroll|mousewheel/).test(n)){l=(a.wheelDelta)?a.wheelDelta/120:-(a.detail||0)/3}h=(a.which==3)||(a.button==2);if((/over|out/).test(n)){q=a.relatedTarget||a[(n=="mouseover"?"from":"to")+"Element"];var j=function(){while(q&&q.nodeType==3){q=q.parentNode}return true};var g=(Browser.firefox2)?j.attempt():j();q=(g)?q:null}}else{if((/gesture|touch/i).test(n)){this.rotation=a.rotation;this.scale=a.scale;this.targetTouches=a.targetTouches;this.changedTouches=a.changedTouches;var f=this.touches=a.touches;if(f&&f[0]){var e=f[0];m={x:e.pageX,y:e.pageY};c={x:e.clientX,y:e.clientY}}}}}return Object.append(this,{event:a,type:n,page:m,client:c,rightClick:h,wheel:l,relatedTarget:document.id(q),target:document.id(k),code:b,key:p,shift:a.shiftKey,control:a.ctrlKey,alt:a.altKey,meta:a.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 a=this.Class=new Type("Class",function(h){if(instanceOf(h,Function)){h={initialize:h}}var g=function(){e(this);if(g.$prototyping){return this}this.$caller=null;var i=(this.initialize)?this.initialize.apply(this,arguments):this;this.$caller=this.caller=null;return i}.extend(this).implement(h);g.$constructor=a;g.prototype.$constructor=g;g.prototype.parent=c;return g});var c=function(){if(!this.$caller){throw new Error('The method "parent" cannot be called.')}var g=this.$caller.$name,h=this.$caller.$owner.parent,i=(h)?h.prototype[g]:null;if(!i){throw new Error('The method "'+g+'" has no parent.')}return i.apply(this,arguments)};var e=function(g){for(var h in g){var j=g[h];switch(typeOf(j)){case"object":var i=function(){};i.prototype=j;g[h]=e(new i);break;case"array":g[h]=j.clone();break}}return g};var b=function(g,h,j){if(j.$origin){j=j.$origin}var i=function(){if(j.$protected&&this.$caller==null){throw new Error('The method "'+h+'" cannot be called.')}var l=this.caller,m=this.$caller;this.caller=m;this.$caller=i;var k=j.apply(this,arguments);this.$caller=m;this.caller=l;return k}.extend({$owner:g,$origin:j,$name:h});return i};var f=function(h,i,g){if(a.Mutators.hasOwnProperty(h)){i=a.Mutators[h].call(this,i);if(i==null){return this}}if(typeOf(i)=="function"){if(i.$hidden){return this}this.prototype[h]=(g)?i:b(this,h,i)}else{Object.merge(this.prototype,h,i)}return this};var d=function(g){g.$prototyping=true;var h=new g;delete g.$prototyping;return h};a.implement("implement",f.overloadSetter());a.Mutators={Extends:function(g){this.parent=g;this.prototype=d(g)},Implements:function(g){Array.from(g).each(function(j){var h=new j;for(var i in h){f.call(this,i,h[i],true)}},this)}}}).call(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 a=function(b){return b.replace(/^on([A-Z])/,function(c,d){return d.toLowerCase()})};this.Events=new Class({$events:{},addEvent:function(d,c,b){d=a(d);if(c==$empty){return this}this.$events[d]=(this.$events[d]||[]).include(c);if(b){c.internal=true}return this},addEvents:function(b){for(var c in b){this.addEvent(c,b[c])}return this},fireEvent:function(e,c,b){e=a(e);var d=this.$events[e];if(!d){return this}c=Array.from(c);d.each(function(f){if(b){f.delay(b,this,c)}else{f.apply(this,c)}},this);return this},removeEvent:function(e,d){e=a(e);var c=this.$events[e];if(c&&!d.internal){var b=c.indexOf(d);if(b!=-1){delete c[b]}}return this},removeEvents:function(d){var e;if(typeOf(d)=="object"){for(e in d){this.removeEvent(e,d[e])}return this}if(d){d=a(d)}for(e in this.$events){if(d&&d!=e){continue}var c=this.$events[e];for(var b=c.length;b--;){if(b in c){this.removeEvent(e,c[b])}}}return this}});this.Options=new Class({setOptions:function(){var b=this.options=Object.merge.apply(null,[{},this.options].append(arguments));if(this.addEvent){for(var c in b){if(typeOf(b[c])!="function"||!(/^on[A-Z]/).test(c)){continue}this.addEvent(c,b[c]);delete b[c]}}return this}})}).call(this);(function(){var k,n,l,g,a={},c={},m=/\\/g;var e=function(q,p){if(q==null){return null}if(q.Slick===true){return q}q=(""+q).replace(/^\s+|\s+$/g,"");g=!!p;var o=(g)?c:a;if(o[q]){return o[q]}k={Slick:true,expressions:[],raw:q,reverse:function(){return e(this.raw,true)}};n=-1;while(q!=(q=q.replace(j,b))){}k.length=k.expressions.length;return o[k.raw]=(g)?h(k):k};var i=function(o){if(o==="!"){return" "}else{if(o===" "){return"!"}else{if((/^!/).test(o)){return o.replace(/^!/,"")}else{return"!"+o}}}};var h=function(u){var r=u.expressions;for(var p=0;p<r.length;p++){var t=r[p];var q={parts:[],tag:"*",combinator:i(t[0].combinator)};for(var o=0;o<t.length;o++){var s=t[o];if(!s.reverseCombinator){s.reverseCombinator=" "}s.combinator=s.reverseCombinator;delete s.reverseCombinator}t.reverse().push(q)}return u};var f=function(o){return o.replace(/[-[\]{}()*+?.\\^$|,#\s]/g,function(p){return"\\"+p})};var j=new RegExp("^(?:\\s*(,)\\s*|\\s*(<combinator>+)\\s*|(\\s+)|(<unicode>+|\\*)|\\#(<unicode>+)|\\.(<unicode>+)|\\[\\s*(<unicode1>+)(?:\\s*([*^$!~|]?=)(?:\\s*(?:([\"']?)(.*?)\\9)))?\\s*\\](?!\\])|(:+)(<unicode>+)(?:\\((?:(?:([\"'])([^\\13]*)\\13)|((?:\\([^)]+\\)|[^()]*)+))\\))?)".replace(/<combinator>/,"["+f(">+~`!@$%^&={}\\;</")+"]").replace(/<unicode>/g,"(?:[\\w\\u00a1-\\uFFFF-]|\\\\[^\\s0-9a-f])").replace(/<unicode1>/g,"(?:[:\\w\\u00a1-\\uFFFF-]|\\\\[^\\s0-9a-f])"));function b(x,s,D,z,r,C,q,B,A,y,u,F,G,v,p,w){if(s||n===-1){k.expressions[++n]=[];l=-1;if(s){return""}}if(D||z||l===-1){D=D||" ";var t=k.expressions[n];if(g&&t[l]){t[l].reverseCombinator=i(D)}t[++l]={combinator:D,tag:"*"}}var o=k.expressions[n][l];if(r){o.tag=r.replace(m,"")}else{if(C){o.id=C.replace(m,"")}else{if(q){q=q.replace(m,"");if(!o.classList){o.classList=[]}if(!o.classes){o.classes=[]}o.classList.push(q);o.classes.push({value:q,regexp:new RegExp("(^|\\s)"+f(q)+"(\\s|$)")})}else{if(G){w=w||p;w=w?w.replace(m,""):null;if(!o.pseudos){o.pseudos=[]}o.pseudos.push({key:G.replace(m,""),value:w,type:F.length==1?"class":"element"})}else{if(B){B=B.replace(m,"");u=(u||"").replace(m,"");var E,H;switch(A){case"^=":H=new RegExp("^"+f(u));break;case"$=":H=new RegExp(f(u)+"$");break;case"~=":H=new RegExp("(^|\\s)"+f(u)+"(\\s|$)");break;case"|=":H=new RegExp("^"+f(u)+"(-|$)");break;case"=":E=function(I){return u==I};break;case"*=":E=function(I){return I&&I.indexOf(u)>-1};break;case"!=":E=function(I){return u!=I};break;default:E=function(I){return !!I}}if(u==""&&(/^[*$^]=$/).test(A)){E=function(){return false}}if(!E){E=function(I){return I&&H.test(I)}}if(!o.attributes){o.attributes=[]}o.attributes.push({key:B,operator:A,value:u,test:E})}}}}}return""}var d=(this.Slick||{});d.parse=function(o){return e(o)};d.escapeRegExp=f;if(!this.Slick){this.Slick=d}}).apply((typeof exports!="undefined")?exports:this);(function(){var j={},l={},b=Object.prototype.toString;j.isNativeCode=function(c){return(/\{\s*\[native code\]\s*\}/).test(""+c)};j.isXML=function(c){return(!!c.xmlVersion)||(!!c.xml)||(b.call(c)=="[object XMLDocument]")||(c.nodeType==9&&c.documentElement.nodeName!="HTML")};j.setDocument=function(w){var t=w.nodeType;if(t==9){}else{if(t){w=w.ownerDocument}else{if(w.navigator){w=w.document}else{return}}}if(this.document===w){return}this.document=w;var y=w.documentElement,u=this.getUIDXML(y),o=l[u],A;if(o){for(A in o){this[A]=o[A]}return}o=l[u]={};o.root=y;o.isXMLDocument=this.isXML(w);o.brokenStarGEBTN=o.starSelectsClosedQSA=o.idGetsName=o.brokenMixedCaseQSA=o.brokenGEBCN=o.brokenCheckedQSA=o.brokenEmptyAttributeQSA=o.isHTMLDocument=o.nativeMatchesSelector=false;var m,n,x,q,r;var s,c="slick_uniqueid";var z=w.createElement("div");var p=w.body||w.getElementsByTagName("body")[0]||y;p.appendChild(z);try{z.innerHTML='<a id="'+c+'"></a>';o.isHTMLDocument=!!w.getElementById(c)}catch(v){}if(o.isHTMLDocument){z.style.display="none";z.appendChild(w.createComment(""));n=(z.getElementsByTagName("*").length>1);try{z.innerHTML="foo</foo>";s=z.getElementsByTagName("*");m=(s&&!!s.length&&s[0].nodeName.charAt(0)=="/")}catch(v){}o.brokenStarGEBTN=n||m;try{z.innerHTML='<a name="'+c+'"></a><b id="'+c+'"></b>';o.idGetsName=w.getElementById(c)===z.firstChild}catch(v){}if(z.getElementsByClassName){try{z.innerHTML='<a class="f"></a><a class="b"></a>';z.getElementsByClassName("b").length;z.firstChild.className="b";q=(z.getElementsByClassName("b").length!=2)}catch(v){}try{z.innerHTML='<a class="a"></a><a class="f b a"></a>';x=(z.getElementsByClassName("a").length!=2)}catch(v){}o.brokenGEBCN=q||x}if(z.querySelectorAll){try{z.innerHTML="foo</foo>";s=z.querySelectorAll("*");o.starSelectsClosedQSA=(s&&!!s.length&&s[0].nodeName.charAt(0)=="/")}catch(v){}try{z.innerHTML='<a class="MiX"></a>';o.brokenMixedCaseQSA=!z.querySelectorAll(".MiX").length}catch(v){}try{z.innerHTML='<select><option selected="selected">a</option></select>';o.brokenCheckedQSA=(z.querySelectorAll(":checked").length==0)}catch(v){}try{z.innerHTML='<a class=""></a>';o.brokenEmptyAttributeQSA=(z.querySelectorAll('[class*=""]').length!=0)}catch(v){}}try{z.innerHTML='<form action="s"><input id="action"/></form>';r=(z.firstChild.getAttribute("action")!="s")}catch(v){}o.nativeMatchesSelector=y.matchesSelector||y.mozMatchesSelector||y.webkitMatchesSelector;if(o.nativeMatchesSelector){try{o.nativeMatchesSelector.call(y,":slick");o.nativeMatchesSelector=null}catch(v){}}}try{y.slick_expando=1;delete y.slick_expando;o.getUID=this.getUIDHTML}catch(v){o.getUID=this.getUIDXML}p.removeChild(z);z=s=p=null;o.getAttribute=(o.isHTMLDocument&&r)?function(D,B){var E=this.attributeGetters[B];if(E){return E.call(D)}var C=D.getAttributeNode(B);return(C)?C.nodeValue:null}:function(C,B){var D=this.attributeGetters[B];return(D)?D.call(C):C.getAttribute(B)};o.hasAttribute=(y&&this.isNativeCode(y.hasAttribute))?function(C,B){return C.hasAttribute(B)}:function(C,B){C=C.getAttributeNode(B);return !!(C&&(C.specified||C.nodeValue))};o.contains=(y&&this.isNativeCode(y.contains))?function(B,C){return B.contains(C)}:(y&&y.compareDocumentPosition)?function(B,C){return B===C||!!(B.compareDocumentPosition(C)&16)}:function(B,C){if(C){do{if(C===B){return true}}while((C=C.parentNode))}return false};o.documentSorter=(y.compareDocumentPosition)?function(C,B){if(!C.compareDocumentPosition||!B.compareDocumentPosition){return 0}return C.compareDocumentPosition(B)&4?-1:C===B?0:1}:("sourceIndex" in y)?function(C,B){if(!C.sourceIndex||!B.sourceIndex){return 0}return C.sourceIndex-B.sourceIndex}:(w.createRange)?function(E,C){if(!E.ownerDocument||!C.ownerDocument){return 0}var D=E.ownerDocument.createRange(),B=C.ownerDocument.createRange();D.setStart(E,0);D.setEnd(E,0);B.setStart(C,0);B.setEnd(C,0);return D.compareBoundaryPoints(Range.START_TO_END,B)}:null;y=null;for(A in o){this[A]=o[A]}};var e=/^([#.]?)((?:[\w-]+|\*))$/,g=/\[.+[*$^]=(?:""|'')?\]/,f={};j.search=function(q,D,O,v){var B=this.found=(v)?null:(O||[]);if(!q){return B}else{if(q.navigator){q=q.document}else{if(!q.nodeType){return B}}}var z,N,s=this.uniques={},y=!!(O&&O.length),c=(q.nodeType==9);if(this.document!==(c?q:q.ownerDocument)){this.setDocument(q)}if(y){for(N=B.length;N--;){s[this.getUID(B[N])]=true}}if(typeof D=="string"){var C=D.match(e);simpleSelectors:if(C){var K=C[1],V=C[2],I,G;if(!K){if(V=="*"&&this.brokenStarGEBTN){break simpleSelectors}G=q.getElementsByTagName(V);if(v){return G[0]||null}for(N=0;I=G[N++];){if(!(y&&s[this.getUID(I)])){B.push(I)}}}else{if(K=="#"){if(!this.isHTMLDocument||!c){break simpleSelectors}I=q.getElementById(V);if(!I){return B}if(this.idGetsName&&I.getAttributeNode("id").nodeValue!=V){break simpleSelectors}if(v){return I||null}if(!(y&&s[this.getUID(I)])){B.push(I)}}else{if(K=="."){if(!this.isHTMLDocument||((!q.getElementsByClassName||this.brokenGEBCN)&&q.querySelectorAll)){break simpleSelectors}if(q.getElementsByClassName&&!this.brokenGEBCN){G=q.getElementsByClassName(V);if(v){return G[0]||null}for(N=0;I=G[N++];){if(!(y&&s[this.getUID(I)])){B.push(I)}}}else{var u=new RegExp("(^|\\s)"+d.escapeRegExp(V)+"(\\s|$)");G=q.getElementsByTagName("*");for(N=0;I=G[N++];){className=I.className;if(!(className&&u.test(className))){continue}if(v){return I}if(!(y&&s[this.getUID(I)])){B.push(I)}}}}}}if(y){this.sort(B)}return(v)?null:B}querySelector:if(q.querySelectorAll){if(!this.isHTMLDocument||this.brokenMixedCaseQSA||f[D]||(this.brokenCheckedQSA&&D.indexOf(":checked")>-1)||(this.brokenEmptyAttributeQSA&&g.test(D))||d.disableQSA){break querySelector}var A=D;if(!c){var M=q.getAttribute("id"),p="slickid__";q.setAttribute("id",p);A="#"+p+" "+A}try{if(v){return q.querySelector(A)||null}else{G=q.querySelectorAll(A)}}catch(P){f[D]=1;break querySelector}finally{if(!c){if(M){q.setAttribute("id",M)}else{q.removeAttribute("id")}}}if(this.starSelectsClosedQSA){for(N=0;I=G[N++];){if(I.nodeName>"@"&&!(y&&s[this.getUID(I)])){B.push(I)}}}else{for(N=0;I=G[N++];){if(!(y&&s[this.getUID(I)])){B.push(I)}}}if(y){this.sort(B)}return B}z=this.Slick.parse(D);if(!z.length){return B}}else{if(D==null){return B}else{if(D.Slick){z=D}else{if(this.contains(q.documentElement||q,D)){(B)?B.push(D):B=D;return B}else{return B}}}}this.posNTH={};this.posNTHLast={};this.posNTHType={};this.posNTHTypeLast={};this.push=(!y&&(v||(z.length==1&&z.expressions[0].length==1)))?this.pushArray:this.pushUID;if(B==null){B=[]}var L,H,F;var J,U,E,T,Q,x,t;var w,r,o,R,S=z.expressions;search:for(N=0;(r=S[N]);N++){for(L=0;(o=r[L]);L++){J="combinator:"+o.combinator;if(!this[J]){continue search}U=(this.isXMLDocument)?o.tag:o.tag.toUpperCase();E=o.id;T=o.classList;Q=o.classes;x=o.attributes;t=o.pseudos;R=(L===(r.length-1));this.bitUniques={};if(R){this.uniques=s;this.found=B}else{this.uniques={};this.found=[]}if(L===0){this[J](q,U,E,Q,x,t,T);if(v&&R&&B.length){break search}}else{if(v&&R){for(H=0,F=w.length;H<F;H++){this[J](w[H],U,E,Q,x,t,T);if(B.length){break search}}}else{for(H=0,F=w.length;H<F;H++){this[J](w[H],U,E,Q,x,t,T)}}}w=this.found}}if(y||(z.expressions.length>1)){this.sort(B)}return(v)?(B[0]||null):B};j.uidx=1;j.uidk="slick-uniqueid";j.getUIDXML=function(m){var c=m.getAttribute(this.uidk);if(!c){c=this.uidx++;m.setAttribute(this.uidk,c)}return c};j.getUIDHTML=function(c){return c.uniqueNumber||(c.uniqueNumber=this.uidx++)};j.sort=function(c){if(!this.documentSorter){return c}c.sort(this.documentSorter);return c};j.cacheNTH={};j.matchNTH=/^([+-]?\d*)?([a-z]+)?([+-]\d+)?$/;j.parseNTHArgument=function(p){var n=p.match(this.matchNTH);if(!n){return false}var o=n[2]||false;var m=n[1]||1;if(m=="-"){m=-1}var c=+n[3]||0;n=(o=="n")?{a:m,b:c}:(o=="odd")?{a:2,b:1}:(o=="even")?{a:2,b:0}:{a:0,b:m};return(this.cacheNTH[p]=n)};j.createNTHPseudo=function(o,m,c,n){return function(r,p){var t=this.getUID(r);if(!this[c][t]){var z=r.parentNode;if(!z){return false}var q=z[o],s=1;if(n){var y=r.nodeName;do{if(q.nodeName!=y){continue}this[c][this.getUID(q)]=s++}while((q=q[m]))}else{do{if(q.nodeType!=1){continue}this[c][this.getUID(q)]=s++}while((q=q[m]))}}p=p||"n";var u=this.cacheNTH[p]||this.parseNTHArgument(p);if(!u){return false}var x=u.a,w=u.b,v=this[c][t];if(x==0){return w==v}if(x>0){if(v<w){return false}}else{if(w<v){return false}}return((v-w)%x)==0}};j.pushArray=function(o,c,q,n,m,p){if(this.matchSelector(o,c,q,n,m,p)){this.found.push(o)}};j.pushUID=function(p,c,r,o,m,q){var n=this.getUID(p);if(!this.uniques[n]&&this.matchSelector(p,c,r,o,m,q)){this.uniques[n]=true;this.found.push(p)}};j.matchNode=function(m,n){if(this.isHTMLDocument&&this.nativeMatchesSelector){try{return this.nativeMatchesSelector.call(m,n.replace(/\[([^=]+)=\s*([^'"\]]+?)\s*\]/g,'[$1="$2"]'))}catch(u){}}var t=this.Slick.parse(n);if(!t){return true}var r=t.expressions,p,s=0,q;for(q=0;(currentExpression=r[q]);q++){if(currentExpression.length==1){var o=currentExpression[0];if(this.matchSelector(m,(this.isXMLDocument)?o.tag:o.tag.toUpperCase(),o.id,o.classes,o.attributes,o.pseudos)){return true}s++}}if(s==t.length){return false}var c=this.search(this.document,t),v;for(q=0;v=c[q++];){if(v===m){return true}}return false};j.matchPseudo=function(p,c,o){var m="pseudo:"+c;if(this[m]){return this[m](p,o)}var n=this.getAttribute(p,c);return(o)?o==n:!!n};j.matchSelector=function(n,u,c,o,p,r){if(u){var s=(this.isXMLDocument)?n.nodeName:n.nodeName.toUpperCase();if(u=="*"){if(s<"@"){return false}}else{if(s!=u){return false}}}if(c&&n.getAttribute("id")!=c){return false}var q,m,t;if(o){for(q=o.length;q--;){t=n.getAttribute("class")||n.className;if(!(t&&o[q].regexp.test(t))){return false}}}if(p){for(q=p.length;q--;){m=p[q];if(m.operator?!m.test(this.getAttribute(n,m.key)):!this.hasAttribute(n,m.key)){return false}}}if(r){for(q=r.length;q--;){m=r[q];if(!this.matchPseudo(n,m.key,m.value)){return false}}}return true};var i={" ":function(p,v,m,q,r,t,o){var s,u,n;if(this.isHTMLDocument){getById:if(m){u=this.document.getElementById(m);if((!u&&p.all)||(this.idGetsName&&u&&u.getAttributeNode("id").nodeValue!=m)){n=p.all[m];if(!n){return}if(!n[0]){n=[n]}for(s=0;u=n[s++];){var c=u.getAttributeNode("id");if(c&&c.nodeValue==m){this.push(u,v,null,q,r,t);break}}return}if(!u){if(this.contains(this.root,p)){return}else{break getById}}else{if(this.document!==p&&!this.contains(p,u)){return}}this.push(u,v,null,q,r,t);return}getByClass:if(q&&p.getElementsByClassName&&!this.brokenGEBCN){n=p.getElementsByClassName(o.join(" "));if(!(n&&n.length)){break getByClass}for(s=0;u=n[s++];){this.push(u,v,m,null,r,t)}return}}getByTag:{n=p.getElementsByTagName(v);if(!(n&&n.length)){break getByTag}if(!this.brokenStarGEBTN){v=null}for(s=0;u=n[s++];){this.push(u,v,m,q,r,t)}}},">":function(o,c,q,n,m,p){if((o=o.firstChild)){do{if(o.nodeType==1){this.push(o,c,q,n,m,p)}}while((o=o.nextSibling))}},"+":function(o,c,q,n,m,p){while((o=o.nextSibling)){if(o.nodeType==1){this.push(o,c,q,n,m,p);break}}},"^":function(o,c,q,n,m,p){o=o.firstChild;if(o){if(o.nodeType==1){this.push(o,c,q,n,m,p)}else{this["combinator:+"](o,c,q,n,m,p)}}},"~":function(p,c,r,o,m,q){while((p=p.nextSibling)){if(p.nodeType!=1){continue}var n=this.getUID(p);if(this.bitUniques[n]){break}this.bitUniques[n]=true;this.push(p,c,r,o,m,q)}},"++":function(o,c,q,n,m,p){this["combinator:+"](o,c,q,n,m,p);this["combinator:!+"](o,c,q,n,m,p)},"~~":function(o,c,q,n,m,p){this["combinator:~"](o,c,q,n,m,p);this["combinator:!~"](o,c,q,n,m,p)},"!":function(o,c,q,n,m,p){while((o=o.parentNode)){if(o!==this.document){this.push(o,c,q,n,m,p)}}},"!>":function(o,c,q,n,m,p){o=o.parentNode;if(o!==this.document){this.push(o,c,q,n,m,p)}},"!+":function(o,c,q,n,m,p){while((o=o.previousSibling)){if(o.nodeType==1){this.push(o,c,q,n,m,p);break}}},"!^":function(o,c,q,n,m,p){o=o.lastChild;if(o){if(o.nodeType==1){this.push(o,c,q,n,m,p)}else{this["combinator:!+"](o,c,q,n,m,p)}}},"!~":function(p,c,r,o,m,q){while((p=p.previousSibling)){if(p.nodeType!=1){continue}var n=this.getUID(p);if(this.bitUniques[n]){break}this.bitUniques[n]=true;this.push(p,c,r,o,m,q)}}};for(var h in i){j["combinator:"+h]=i[h]}var k={empty:function(c){var m=c.firstChild;return !(m&&m.nodeType==1)&&!(c.innerText||c.textContent||"").length},not:function(c,m){return !this.matchNode(c,m)},contains:function(c,m){return(c.innerText||c.textContent||"").indexOf(m)>-1},"first-child":function(c){while((c=c.previousSibling)){if(c.nodeType==1){return false}}return true},"last-child":function(c){while((c=c.nextSibling)){if(c.nodeType==1){return false}}return true},"only-child":function(n){var m=n;while((m=m.previousSibling)){if(m.nodeType==1){return false}}var c=n;while((c=c.nextSibling)){if(c.nodeType==1){return false}}return true},"nth-child":j.createNTHPseudo("firstChild","nextSibling","posNTH"),"nth-last-child":j.createNTHPseudo("lastChild","previousSibling","posNTHLast"),"nth-of-type":j.createNTHPseudo("firstChild","nextSibling","posNTHType",true),"nth-last-of-type":j.createNTHPseudo("lastChild","previousSibling","posNTHTypeLast",true),index:function(m,c){return this["pseudo:nth-child"](m,""+c+1)},even:function(c){return this["pseudo:nth-child"](c,"2n")},odd:function(c){return this["pseudo:nth-child"](c,"2n+1")},"first-of-type":function(c){var m=c.nodeName;while((c=c.previousSibling)){if(c.nodeName==m){return false}}return true},"last-of-type":function(c){var m=c.nodeName;while((c=c.nextSibling)){if(c.nodeName==m){return false}}return true},"only-of-type":function(n){var m=n,o=n.nodeName;while((m=m.previousSibling)){if(m.nodeName==o){return false}}var c=n;while((c=c.nextSibling)){if(c.nodeName==o){return false}}return true},enabled:function(c){return !c.disabled},disabled:function(c){return c.disabled},checked:function(c){return c.checked||c.selected},focus:function(c){return this.isHTMLDocument&&this.document.activeElement===c&&(c.href||c.type||this.hasAttribute(c,"tabindex"))},root:function(c){return(c===this.root)},selected:function(c){return c.selected}};for(var a in k){j["pseudo:"+a]=k[a]}j.attributeGetters={"class":function(){return this.getAttribute("class")||this.className},"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")},tabindex:function(){var c=this.getAttributeNode("tabindex");return(c&&c.specified)?c.nodeValue:null},type:function(){return this.getAttribute("type")}};var d=j.Slick=(this.Slick||{});d.version="1.1.5";d.search=function(m,n,c){return j.search(m,n,c)};d.find=function(c,m){return j.search(c,m,null,true)};d.contains=function(c,m){j.setDocument(c);return j.contains(c,m)};d.getAttribute=function(m,c){return j.getAttribute(m,c)};d.match=function(m,c){if(!(m&&c)){return false}if(!c||c===m){return true}j.setDocument(m);return j.matchNode(m,c)};d.defineAttributeGetter=function(c,m){j.attributeGetters[c]=m;return this};d.lookupAttributeGetter=function(c){return j.attributeGetters[c]};d.definePseudo=function(c,m){j["pseudo:"+c]=function(o,n){return m.call(o,n)};return this};d.lookupPseudo=function(c){var m=j["pseudo:"+c];if(m){return function(n){return m.call(this,n)}}return null};d.override=function(m,c){j.override(m,c);return this};d.isXML=j.isXML;d.uidOf=function(c){return j.getUIDHTML(c)};if(!this.Slick){this.Slick=d}}).apply((typeof exports!="undefined")?exports:this);var Element=function(b,g){var h=Element.Constructors[b];if(h){return h(g)}if(typeof b!="string"){return document.id(b).set(g)}if(!g){g={}}if(!(/^[\w-]+$/).test(b)){var e=Slick.parse(b).expressions[0][0];b=(e.tag=="*")?"div":e.tag;if(e.id&&g.id==null){g.id=e.id}var d=e.attributes;if(d){for(var f=0,c=d.length;f<c;f++){var a=d[f];if(a.value!=null&&a.operator=="="&&g[a.key]==null){g[a.key]=a.value}}}if(e.classList&&g["class"]==null){g["class"]=e.classList.join(" ")}}return document.newElement(b,g)};if(Browser.Element){Element.prototype=Browser.Element.prototype}new Type("Element",Element).mirror(function(a){if(Array.prototype[a]){return}var b={};b[a]=function(){var h=[],e=arguments,j=true;for(var g=0,d=this.length;g<d;g++){var f=this[g],c=h[g]=f[a].apply(f,e);j=(j&&typeOf(c)=="element")}return(j)?new Elements(h):h};Elements.implement(b)});if(!Browser.Element){Element.parent=Object;Element.Prototype={"$family":Function.from("element").hide()};Element.mirror(function(a,b){Element.Prototype[a]=b})}Element.Constructors={};Element.Constructors=new Hash;var IFrame=new Type("IFrame",function(){var e=Array.link(arguments,{properties:Type.isObject,iframe:function(f){return(f!=null)}});var c=e.properties||{},b;if(e.iframe){b=document.id(e.iframe)}var d=c.onload||function(){};delete c.onload;c.id=c.name=[c.id,c.name,b?(b.id||b.name):"IFrame_"+String.uniqueID()].pick();b=new Element(b||"iframe",c);var a=function(){d.call(b.contentWindow)};if(window.frames[c.id]){a()}else{b.addListener("load",a)}return b});var Elements=this.Elements=function(a){if(a&&a.length){var e={},d;for(var c=0;d=a[c++];){var b=Slick.uidOf(d);if(!e[b]){e[b]=true;this.push(d)}}}};Elements.prototype={length:0};Elements.parent=Array;new Type("Elements",Elements).implement({filter:function(a,b){if(!a){return this}return new Elements(Array.filter(this,(typeOf(a)=="string")?function(c){return c.match(a)}:a,b))}.protect(),push:function(){var d=this.length;for(var b=0,a=arguments.length;b<a;b++){var c=document.id(arguments[b]);if(c){this[d++]=c}}return(this.length=d)}.protect(),unshift:function(){var b=[];for(var c=0,a=arguments.length;c<a;c++){var d=document.id(arguments[c]);if(d){b.push(d)}}return Array.prototype.unshift.apply(this,b)}.protect(),concat:function(){var b=new Elements(this);for(var c=0,a=arguments.length;c<a;c++){var d=arguments[c];if(Type.isEnumerable(d)){b.append(d)}else{b.push(d)}}return b}.protect(),append:function(c){for(var b=0,a=c.length;b<a;b++){this.push(c[b])}return this}.protect(),empty:function(){while(this.length){delete this[--this.length]}return this}.protect()});Elements.alias("extend","append");(function(){var g=Array.prototype.splice,b={"0":0,"1":1,length:2};g.call(b,1,1);if(b[1]==1){Elements.implement("splice",function(){var e=this.length;g.apply(this,arguments);while(e>=this.length){delete this[e--]}return this}.protect())}Elements.implement(Array.prototype);Array.mirror(Elements);var f;try{var a=document.createElement("<input name=x>");f=(a.name=="x")}catch(c){}var d=function(e){return(""+e).replace(/&/g,"&amp;").replace(/"/g,"&quot;")};Document.implement({newElement:function(e,h){if(h&&h.checked!=null){h.defaultChecked=h.checked}if(f&&h){e="<"+e;if(h.name){e+=' name="'+d(h.name)+'"'}if(h.type){e+=' type="'+d(h.type)+'"'}e+=">";delete h.name;delete h.type}return this.id(this.createElement(e)).set(h)}})})();Document.implement({newTextNode:function(a){return this.createTextNode(a)},getDocument:function(){return this},getWindow:function(){return this.window},id:(function(){var a={string:function(d,c,b){d=Slick.find(b,"#"+d.replace(/(\W)/g,"\\$1"));return(d)?a.element(d,c):null},element:function(b,c){$uid(b);if(!c&&!b.$family&&!(/^(?:object|embed)$/i).test(b.tagName)){Object.append(b,Element.Prototype)}return b},object:function(c,d,b){if(c.toElement){return a.element(c.toElement(b),d)}return null}};a.textnode=a.whitespace=a.window=a.document=function(b){return b};return function(c,e,d){if(c&&c.$family&&c.uid){return c}var b=typeOf(c);return(a[b])?a[b](c,e,d||document):null}})()});if(window.$==null){Window.implement("$",function(a,b){return document.id(a,b,this.document)})}Window.implement({getDocument:function(){return this.document},getWindow:function(){return this}});[Document,Element].invoke("implement",{getElements:function(a){return Slick.search(this,a,new Elements)},getElement:function(a){return document.id(Slick.find(this,a))}});(function(b,d,a){this.Selectors={};var e=this.Selectors.Pseudo=new Hash();var c=function(){for(var f in e){if(e.hasOwnProperty(f)){Slick.definePseudo(f,e[f]);delete e[f]}}};Slick.search=function(g,h,f){c();return b.call(this,g,h,f)};Slick.find=function(f,g){c();return d.call(this,f,g)};Slick.match=function(g,f){c();return a.call(this,g,f)}})(Slick.search,Slick.find,Slick.match);if(window.$$==null){Window.implement("$$",function(a){var f=new Elements;if(arguments.length==1&&typeof a=="string"){return Slick.search(this.document,a,f)}var c=Array.flatten(arguments);for(var d=0,b=c.length;d<b;d++){var e=c[d];switch(typeOf(e)){case"element":f.push(e);break;case"string":Slick.search(this.document,e,f)}}return f})}if(window.$$==null){Window.implement("$$",function(a){if(arguments.length==1){if(typeof a=="string"){return Slick.search(this.document,a,new Elements)}else{if(Type.isEnumerable(a)){return new Elements(a)}}}return new Elements(arguments)})}(function(){var k={},i={};var n={input:"checked",option:"selected",textarea:"value"};var e=function(p){return(i[p]||(i[p]={}))};var j=function(q){var p=q.uid;if(q.removeEvents){q.removeEvents()}if(q.clearAttributes){q.clearAttributes()}if(p!=null){delete k[p];delete i[p]}return q};var o=["defaultValue","accessKey","cellPadding","cellSpacing","colSpan","frameBorder","maxLength","readOnly","rowSpan","tabIndex","useMap"];var d=["compact","nowrap","ismap","declare","noshade","checked","disabled","readOnly","multiple","selected","noresize","defer","defaultChecked"];var g={html:"innerHTML","class":"className","for":"htmlFor",text:(function(){var p=document.createElement("div");return(p.textContent==null)?"innerText":"textContent"})()};var m=["type"];var h=["value","defaultValue"];var l=/^(?:href|src|usemap)$/i;d=d.associate(d);o=o.associate(o.map(String.toLowerCase));m=m.associate(m);Object.append(g,h.associate(h));var c={before:function(q,p){var r=p.parentNode;if(r){r.insertBefore(q,p)}},after:function(q,p){var r=p.parentNode;if(r){r.insertBefore(q,p.nextSibling)}},bottom:function(q,p){p.appendChild(q)},top:function(q,p){p.insertBefore(q,p.firstChild)}};c.inside=c.bottom;Object.each(c,function(q,r){r=r.capitalize();var p={};p["inject"+r]=function(s){q(this,document.id(s,true));return this};p["grab"+r]=function(s){q(document.id(s,true),this);return this};Element.implement(p)});var b=function(s,r){if(!s){return r}s=Object.clone(Slick.parse(s));var q=s.expressions;for(var p=q.length;p--;){q[p][0].combinator=r}return s};Element.implement({set:function(r,q){var p=Element.Properties[r];(p&&p.set)?p.set.call(this,q):this.setProperty(r,q)}.overloadSetter(),get:function(q){var p=Element.Properties[q];return(p&&p.get)?p.get.apply(this):this.getProperty(q)}.overloadGetter(),erase:function(q){var p=Element.Properties[q];(p&&p.erase)?p.erase.apply(this):this.removeProperty(q);return this},setProperty:function(q,r){q=o[q]||q;if(r==null){return this.removeProperty(q)}var p=g[q];(p)?this[p]=r:(d[q])?this[q]=!!r:this.setAttribute(q,""+r);return this},setProperties:function(p){for(var q in p){this.setProperty(q,p[q])}return this},getProperty:function(q){q=o[q]||q;var p=g[q]||m[q];return(p)?this[p]:(d[q])?!!this[q]:(l.test(q)?this.getAttribute(q,2):(p=this.getAttributeNode(q))?p.nodeValue:null)||null},getProperties:function(){var p=Array.from(arguments);return p.map(this.getProperty,this).associate(p)},removeProperty:function(q){q=o[q]||q;var p=g[q];(p)?this[p]="":(d[q])?this[q]=false:this.removeAttribute(q);return this},removeProperties:function(){Array.each(arguments,this.removeProperty,this);return this},hasClass:function(p){return this.className.clean().contains(p," ")},addClass:function(p){if(!this.hasClass(p)){this.className=(this.className+" "+p).clean()}return this},removeClass:function(p){this.className=this.className.replace(new RegExp("(^|\\s)"+p+"(?:\\s|$)"),"$1");return this},toggleClass:function(p,q){if(q==null){q=!this.hasClass(p)}return(q)?this.addClass(p):this.removeClass(p)},adopt:function(){var s=this,p,u=Array.flatten(arguments),t=u.length;if(t>1){s=p=document.createDocumentFragment()}for(var r=0;r<t;r++){var q=document.id(u[r],true);if(q){s.appendChild(q)}}if(p){this.appendChild(p)}return this},appendText:function(q,p){return this.grab(this.getDocument().newTextNode(q),p)},grab:function(q,p){c[p||"bottom"](document.id(q,true),this);return this},inject:function(q,p){c[p||"bottom"](this,document.id(q,true));return this},replaces:function(p){p=document.id(p,true);p.parentNode.replaceChild(this,p);return this},wraps:function(q,p){q=document.id(q,true);return this.replaces(q).grab(q,p)},getPrevious:function(p){return document.id(Slick.find(this,b(p,"!~")))},getAllPrevious:function(p){return Slick.search(this,b(p,"!~"),new Elements)},getNext:function(p){return document.id(Slick.find(this,b(p,"~")))},getAllNext:function(p){return Slick.search(this,b(p,"~"),new Elements)},getFirst:function(p){return document.id(Slick.search(this,b(p,">"))[0])},getLast:function(p){return document.id(Slick.search(this,b(p,">")).getLast())},getParent:function(p){return document.id(Slick.find(this,b(p,"!")))},getParents:function(p){return Slick.search(this,b(p,"!"),new Elements)},getSiblings:function(p){return Slick.search(this,b(p,"~~"),new Elements)},getChildren:function(p){return Slick.search(this,b(p,">"),new Elements)},getWindow:function(){return this.ownerDocument.window},getDocument:function(){return this.ownerDocument},getElementById:function(p){return document.id(Slick.find(this,"#"+(""+p).replace(/(\W)/g,"\\$1")))},getSelected:function(){this.selectedIndex;return new Elements(Array.from(this.options).filter(function(p){return p.selected}))},toQueryString:function(){var p=[];this.getElements("input, select, textarea").each(function(r){var q=r.type;if(!r.name||r.disabled||q=="submit"||q=="reset"||q=="file"||q=="image"){return}var s=(r.get("tag")=="select")?r.getSelected().map(function(t){return document.id(t).get("value")}):((q=="radio"||q=="checkbox")&&!r.checked)?null:r.get("value");Array.from(s).each(function(t){if(typeof t!="undefined"){p.push(encodeURIComponent(r.name)+"="+encodeURIComponent(t))}})});return p.join("&")},destroy:function(){var p=j(this).getElementsByTagName("*");Array.each(p,j);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(p){return !p||Slick.match(this,p)}});var a=function(t,s,q){if(!q){t.setAttributeNode(document.createAttribute("id"))}if(t.clearAttributes){t.clearAttributes();t.mergeAttributes(s);t.removeAttribute("uid");if(t.options){var u=t.options,p=s.options;for(var r=u.length;r--;){u[r].selected=p[r].selected}}}var v=n[s.tagName.toLowerCase()];if(v&&s[v]){t[v]=s[v]}};Element.implement("clone",function(r,p){r=r!==false;var w=this.cloneNode(r),q;if(r){var s=w.getElementsByTagName("*"),u=this.getElementsByTagName("*");for(q=s.length;q--;){a(s[q],u[q],p)}}a(w,this,p);if(Browser.ie){var t=w.getElementsByTagName("object"),v=this.getElementsByTagName("object");for(q=t.length;q--;){t[q].outerHTML=v[q].outerHTML}}return document.id(w)});var f={contains:function(p){return Slick.contains(this,p)}};if(!document.contains){Document.implement(f)}if(!document.createElement("div").contains){Element.implement(f)}Element.implement("hasChild",function(p){return this!==p&&this.contains(p)});[Element,Window,Document].invoke("implement",{addListener:function(s,r){if(s=="unload"){var p=r,q=this;r=function(){q.removeListener("unload",r);p()}}else{k[$uid(this)]=this}if(this.addEventListener){this.addEventListener(s,r,!!arguments[2])}else{this.attachEvent("on"+s,r)}return this},removeListener:function(q,p){if(this.removeEventListener){this.removeEventListener(q,p,!!arguments[2])}else{this.detachEvent("on"+q,p)}return this},retrieve:function(q,p){var s=e($uid(this)),r=s[q];if(p!=null&&r==null){r=s[q]=p}return r!=null?r:null},store:function(q,p){var r=e($uid(this));r[q]=p;return this},eliminate:function(p){var q=e($uid(this));delete q[p];return this}});if(window.attachEvent&&!window.addEventListener){window.addListener("unload",function(){Object.each(k,j);if(window.CollectGarbage){CollectGarbage()}})}})();Element.Properties={};Element.Properties=new Hash;Element.Properties.style={set:function(a){this.style.cssText=a},get:function(){return this.style.cssText},erase:function(){this.style.cssText=""}};Element.Properties.tag={get:function(){return this.tagName.toLowerCase()}};(function(a){if(a!=null){Element.Properties.maxlength=Element.Properties.maxLength={get:function(){var b=this.getAttribute("maxLength");return b==a?null:b}}}})(document.createElement("input").getAttribute("maxLength"));Element.Properties.html=(function(){var c=Function.attempt(function(){var e=document.createElement("table");e.innerHTML="<tr><td></td></tr>"});var d=document.createElement("div");var a={table:[1,"<table>","</table>"],select:[1,"<select>","</select>"],tbody:[2,"<table><tbody>","</tbody></table>"],tr:[3,"<table><tbody><tr>","</tr></tbody></table>"]};a.thead=a.tfoot=a.tbody;var b={set:function(){var f=Array.flatten(arguments).join("");var g=(!c&&a[this.get("tag")]);if(g){var h=d;h.innerHTML=g[1]+f+g[2];for(var e=g[0];e--;){h=h.firstChild}this.empty().adopt(h.childNodes)}else{this.innerHTML=f}}};b.erase=b.set;return b})();(function(){var c=document.html;Element.Properties.styles={set:function(f){this.setStyles(f)}};var e=(c.style.opacity!=null);var d=/alpha\(opacity=([\d.]+)\)/i;var b=function(g,f){if(!g.currentStyle||!g.currentStyle.hasLayout){g.style.zoom=1}if(e){g.style.opacity=f}else{f=(f==1)?"":"alpha(opacity="+f*100+")";var h=g.style.filter||g.getComputedStyle("filter")||"";g.style.filter=d.test(h)?h.replace(d,f):h+f}};Element.Properties.opacity={set:function(g){var f=this.style.visibility;if(g==0&&f!="hidden"){this.style.visibility="hidden"}else{if(g!=0&&f!="visible"){this.style.visibility="visible"}}b(this,g)},get:(e)?function(){var f=this.style.opacity||this.getComputedStyle("opacity");return(f=="")?1:f}:function(){var f,g=(this.style.filter||this.getComputedStyle("filter"));if(g){f=g.match(d)}return(f==null||g==null)?1:(f[1]/100)}};var a=(c.style.cssFloat==null)?"styleFloat":"cssFloat";Element.implement({getComputedStyle:function(h){if(this.currentStyle){return this.currentStyle[h.camelCase()]}var g=Element.getDocument(this).defaultView,f=g?g.getComputedStyle(this,null):null;return(f)?f.getPropertyValue((h==a)?"float":h.hyphenate()):null},setOpacity:function(f){b(this,f);return this},getOpacity:function(){return this.get("opacity")},setStyle:function(g,f){switch(g){case"opacity":return this.set("opacity",parseFloat(f));case"float":g=a}g=g.camelCase();if(typeOf(f)!="string"){var h=(Element.Styles[g]||"@").split(" ");f=Array.from(f).map(function(k,j){if(!h[j]){return""}return(typeOf(k)=="number")?h[j].replace("@",Math.round(k)):k}).join(" ")}else{if(f==String(Number(f))){f=Math.round(f)}}this.style[g]=f;return this},getStyle:function(l){switch(l){case"opacity":return this.get("opacity");case"float":l=a}l=l.camelCase();var f=this.style[l];if(!f||l=="zIndex"){f=[];for(var k in Element.ShortStyles){if(l!=k){continue}for(var j in Element.ShortStyles[k]){f.push(this.getStyle(j))}return f.join(" ")}f=this.getComputedStyle(l)}if(f){f=String(f);var h=f.match(/rgba?\([\d\s,]+\)/);if(h){f=f.replace(h[0],h[0].rgbToHex())}}if(Browser.opera||(Browser.ie&&isNaN(parseFloat(f)))){if((/^(height|width)$/).test(l)){var g=(l=="width")?["left","right"]:["top","bottom"],i=0;g.each(function(m){i+=this.getStyle("border-"+m+"-width").toInt()+this.getStyle("padding-"+m).toInt()},this);return this["offset"+l.capitalize()]-i+"px"}if(Browser.opera&&String(f).indexOf("px")!=-1){return f}if((/^border(.+)Width|margin|padding/).test(l)){return"0px"}}return f},setStyles:function(g){for(var f in g){this.setStyle(f,g[f])}return this},getStyles:function(){var f={};Array.flatten(arguments).each(function(g){f[g]=this.getStyle(g)},this);return f}});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(l){var k=Element.ShortStyles;var g=Element.Styles;["margin","padding"].each(function(m){var n=m+l;k[m][n]=g[n]="@px"});var j="border"+l;k.border[j]=g[j]="@px @ rgb(@, @, @)";var i=j+"Width",f=j+"Style",h=j+"Color";k[j]={};k.borderWidth[i]=k[j][i]=g[i]="@px";k.borderStyle[f]=k[j][f]=g[f]="@";k.borderColor[h]=k[j][h]=g[h]="rgb(@, @, @)"})}).call(this);(function(){Element.Properties.events={set:function(b){this.addEvents(b)}};[Element,Window,Document].invoke("implement",{addEvent:function(f,h){var i=this.retrieve("events",{});if(!i[f]){i[f]={keys:[],values:[]}}if(i[f].keys.contains(h)){return this}i[f].keys.push(h);var g=f,b=Element.Events[f],d=h,j=this;if(b){if(b.onAdd){b.onAdd.call(this,h)}if(b.condition){d=function(k){if(b.condition.call(this,k)){return h.call(this,k)}return true}}g=b.base||g}var e=function(){return h.call(j)};var c=Element.NativeEvents[g];if(c){if(c==2){e=function(k){k=new Event(k,j.getWindow());if(d.call(j,k)===false){k.stop()}}}this.addListener(g,e,arguments[2])}i[f].values.push(e);return this},removeEvent:function(e,d){var c=this.retrieve("events");if(!c||!c[e]){return this}var h=c[e];var b=h.keys.indexOf(d);if(b==-1){return this}var g=h.values[b];delete h.keys[b];delete h.values[b];var f=Element.Events[e];if(f){if(f.onRemove){f.onRemove.call(this,d)}e=f.base||e}return(Element.NativeEvents[e])?this.removeListener(e,g,arguments[2]):this},addEvents:function(b){for(var c in b){this.addEvent(c,b[c])}return this},removeEvents:function(b){var d;if(typeOf(b)=="object"){for(d in b){this.removeEvent(d,b[d])}return this}var c=this.retrieve("events");if(!c){return this}if(!b){for(d in c){this.removeEvents(d)}this.eliminate("events")}else{if(c[b]){c[b].keys.each(function(e){this.removeEvent(b,e)},this);delete c[b]}}return this},fireEvent:function(e,c,b){var d=this.retrieve("events");if(!d||!d[e]){return this}c=Array.from(c);d[e].keys.each(function(f){if(b){f.delay(b,this,c)}else{f.apply(this,c)}},this);return this},cloneEvents:function(e,d){e=document.id(e);var c=e.retrieve("events");if(!c){return this}if(!d){for(var b in c){this.cloneEvents(e,b)}}else{if(c[d]){c[d].keys.each(function(f){this.addEvent(d,f)},this)}}return this}});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 a=function(b){var c=b.relatedTarget;if(c==null){return true}if(!c){return false}return(c!=this&&c.prefix!="xul"&&typeOf(this)!="document"&&!this.contains(c))};Element.Events={mouseenter:{base:"mouseover",condition:a},mouseleave:{base:"mouseout",condition:a},mousewheel:{base:(Browser.firefox)?"DOMMouseScroll":"mousewheel"}};Element.Events=new Hash(Element.Events)}).call(this);(function(){var h=document.createElement("div"),e=document.createElement("div");h.style.height="0";h.appendChild(e);var d=(e.offsetParent===h);h=e=null;var l=function(m){return k(m,"position")!="static"||a(m)};var i=function(m){return l(m)||(/^(?:table|td|th)$/i).test(m.tagName)};Element.implement({scrollTo:function(m,n){if(a(this)){this.getWindow().scrollTo(m,n)}else{this.scrollLeft=m;this.scrollTop=n}return this},getSize:function(){if(a(this)){return this.getWindow().getSize()}return{x:this.offsetWidth,y:this.offsetHeight}},getScrollSize:function(){if(a(this)){return this.getWindow().getScrollSize()}return{x:this.scrollWidth,y:this.scrollHeight}},getScroll:function(){if(a(this)){return this.getWindow().getScroll()}return{x:this.scrollLeft,y:this.scrollTop}},getScrolls:function(){var n=this.parentNode,m={x:0,y:0};while(n&&!a(n)){m.x+=n.scrollLeft;m.y+=n.scrollTop;n=n.parentNode}return m},getOffsetParent:d?function(){var m=this;if(a(m)||k(m,"position")=="fixed"){return null}var n=(k(m,"position")=="static")?i:l;while((m=m.parentNode)){if(n(m)){return m}}return null}:function(){var m=this;if(a(m)||k(m,"position")=="fixed"){return null}try{return m.offsetParent}catch(n){}return null},getOffsets:function(){if(this.getBoundingClientRect&&!Browser.Platform.ios){var r=this.getBoundingClientRect(),o=document.id(this.getDocument().documentElement),q=o.getScroll(),t=this.getScrolls(),s=(k(this,"position")=="fixed");return{x:r.left.toInt()+t.x+((s)?0:q.x)-o.clientLeft,y:r.top.toInt()+t.y+((s)?0:q.y)-o.clientTop}}var n=this,m={x:0,y:0};if(a(this)){return m}while(n&&!a(n)){m.x+=n.offsetLeft;m.y+=n.offsetTop;if(Browser.firefox){if(!c(n)){m.x+=b(n);m.y+=g(n)}var p=n.parentNode;if(p&&k(p,"overflow")!="visible"){m.x+=b(p);m.y+=g(p)}}else{if(n!=this&&Browser.safari){m.x+=b(n);m.y+=g(n)}}n=n.offsetParent}if(Browser.firefox&&!c(this)){m.x-=b(this);m.y-=g(this)}return m},getPosition:function(p){if(a(this)){return{x:0,y:0}}var q=this.getOffsets(),n=this.getScrolls();var m={x:q.x-n.x,y:q.y-n.y};if(p&&(p=document.id(p))){var o=p.getPosition();return{x:m.x-o.x-b(p),y:m.y-o.y-g(p)}}return m},getCoordinates:function(o){if(a(this)){return this.getWindow().getCoordinates()}var m=this.getPosition(o),n=this.getSize();var p={left:m.x,top:m.y,width:n.x,height:n.y};p.right=p.left+p.width;p.bottom=p.top+p.height;return p},computePosition:function(m){return{left:m.x-j(this,"margin-left"),top:m.y-j(this,"margin-top")}},setPosition:function(m){return this.setStyles(this.computePosition(m))}});[Document,Window].invoke("implement",{getSize:function(){var m=f(this);return{x:m.clientWidth,y:m.clientHeight}},getScroll:function(){var n=this.getWindow(),m=f(this);return{x:n.pageXOffset||m.scrollLeft,y:n.pageYOffset||m.scrollTop}},getScrollSize:function(){var o=f(this),n=this.getSize(),m=this.getDocument().body;return{x:Math.max(o.scrollWidth,m.scrollWidth,n.x),y:Math.max(o.scrollHeight,m.scrollHeight,n.y)}},getPosition:function(){return{x:0,y:0}},getCoordinates:function(){var m=this.getSize();return{top:0,left:0,bottom:m.y,right:m.x,height:m.y,width:m.x}}});var k=Element.getComputedStyle;function j(m,n){return k(m,n).toInt()||0}function c(m){return k(m,"-moz-box-sizing")=="border-box"}function g(m){return j(m,"border-top-width")}function b(m){return j(m,"border-left-width")}function a(m){return(/^(?:body|html)$/i).test(m.tagName)}function f(m){var n=m.getDocument();return(!n.compatMode||n.compatMode=="CSS1Compat")?n.html:n.body}}).call(this);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 f=this.Fx=new Class({Implements:[Chain,Events,Options],options:{fps:60,unit:false,duration:500,frames:null,frameSkip:true,link:"ignore"},initialize:function(g){this.subject=this.subject||this;this.setOptions(g)},getTransition:function(){return function(g){return -(Math.cos(Math.PI*g)-1)/2}},step:function(g){if(this.options.frameSkip){var h=(this.time!=null)?(g-this.time):0,i=h/this.frameInterval;this.time=g;this.frame+=i}else{this.frame++}if(this.frame<this.frames){var j=this.transition(this.frame/this.frames);this.set(this.compute(this.from,this.to,j))}else{this.frame=this.frames;this.set(this.compute(this.from,this.to,1));this.stop()}},set:function(g){return g},compute:function(i,h,g){return f.compute(i,h,g)},check:function(){if(!this.isRunning()){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(k,j){if(!this.check(k,j)){return this}this.from=k;this.to=j;this.frame=(this.options.frameSkip)?0:-1;this.time=null;this.transition=this.getTransition();var i=this.options.frames,h=this.options.fps,g=this.options.duration;this.duration=f.Durations[g]||g.toInt();this.frameInterval=1000/h;this.frames=i||Math.round(this.duration/this.frameInterval);this.fireEvent("start",this.subject);b.call(this,h);return this},stop:function(){if(this.isRunning()){this.time=null;d.call(this,this.options.fps);if(this.frames==this.frame){this.fireEvent("complete",this.subject);if(!this.callChain()){this.fireEvent("chainComplete",this.subject)}}else{this.fireEvent("stop",this.subject)}}return this},cancel:function(){if(this.isRunning()){this.time=null;d.call(this,this.options.fps);this.frame=this.frames;this.fireEvent("cancel",this.subject).clearChain()}return this},pause:function(){if(this.isRunning()){this.time=null;d.call(this,this.options.fps)}return this},resume:function(){if((this.frame<this.frames)&&!this.isRunning()){b.call(this,this.options.fps)}return this},isRunning:function(){var g=e[this.options.fps];return g&&g.contains(this)}});f.compute=function(i,h,g){return(h-i)*g+i};f.Durations={"short":250,normal:500,"long":1000};var e={},c={};var a=function(){var h=Date.now();for(var j=this.length;j--;){var g=this[j];if(g){g.step(h)}}};var b=function(h){var g=e[h]||(e[h]=[]);g.push(this);if(!c[h]){c[h]=a.periodical(Math.round(1000/h),g)}};var d=function(h){var g=e[h];if(g){g.erase(this);if(!g.length&&c[h]){delete e[h];c[h]=clearInterval(c[h])}}}}).call(this);Fx.CSS=new Class({Extends:Fx,prepare:function(c,d,b){b=Array.from(b);if(b[1]==null){b[1]=b[0];b[0]=c.getStyle(d)}var a=b.map(this.parse);return{from:a[0],to:a[1]}},parse:function(a){a=Function.from(a)();a=(typeof a=="string")?a.split(" "):Array.from(a);return a.map(function(c){c=String(c);var b=false;Object.each(Fx.CSS.Parsers,function(f,e){if(b){return}var d=f.parse(c);if(d||d===0){b={value:d,parser:f}}});b=b||{value:c,parser:Fx.CSS.Parsers.String};return b})},compute:function(d,c,b){var a=[];(Math.min(d.length,c.length)).times(function(e){a.push({value:d[e].parser.compute(d[e].value,c[e].value,b),parser:d[e].parser})});a.$family=Function.from("fx:css:value");return a},serve:function(c,b){if(typeOf(c)!="fx:css:value"){c=this.parse(c)}var a=[];c.each(function(d){a=a.concat(d.parser.serve(d.value,b))});return a},render:function(a,d,c,b){a.setStyle(d,this.serve(c,b))},search:function(a){if(Fx.CSS.Cache[a]){return Fx.CSS.Cache[a]}var c={},b=new RegExp("^"+a.escapeRegExp()+"$");Array.each(document.styleSheets,function(f,e){var d=f.href;if(d&&d.contains("://")&&!d.contains(document.domain)){return}var g=f.rules||f.cssRules;Array.each(g,function(k,h){if(!k.style){return}var j=(k.selectorText)?k.selectorText.replace(/^\w+/,function(i){return i.toLowerCase()}):null;if(!j||!b.test(j)){return}Object.each(Element.Styles,function(l,i){if(!k.style[i]||Element.ShortStyles[i]){return}l=String(k.style[i]);c[i]=((/^rgb/).test(l))?l.rgbToHex():l})})});return Fx.CSS.Cache[a]=c}});Fx.CSS.Cache={};Fx.CSS.Parsers={Color:{parse:function(a){if(a.match(/^#[0-9a-f]{3,6}$/i)){return a.hexToRgb(true)}return((a=a.match(/(\d+),\s*(\d+),\s*(\d+)/)))?[a[1],a[2],a[3]]:false},compute:function(c,b,a){return c.map(function(e,d){return Math.round(Fx.compute(c[d],b[d],a))})},serve:function(a){return a.map(Number)}},Number:{parse:parseFloat,compute:Fx.compute,serve:function(b,a){return(a)?b+a:b}},String:{parse:Function.from(false),compute:function(b,a){return a},serve:function(a){return a}}};Fx.CSS.Parsers=new Hash(Fx.CSS.Parsers);Fx.Tween=new Class({Extends:Fx.CSS,initialize:function(b,a){this.element=this.subject=document.id(b);this.parent(a)},set:function(b,a){if(arguments.length==1){a=b;b=this.property||this.options.property}this.render(this.element,b,a,this.options.unit);return this},start:function(c,e,d){if(!this.check(c,e,d)){return this}var b=Array.flatten(arguments);this.property=this.options.property||b.shift();var a=this.prepare(this.element,this.property,b);return this.parent(a.from,a.to)}});Element.Properties.tween={set:function(a){this.get("tween").cancel().setOptions(a);return this},get:function(){var a=this.retrieve("tween");if(!a){a=new Fx.Tween(this,{link:"cancel"});this.store("tween",a)}return a}};Element.implement({tween:function(a,c,b){this.get("tween").start(arguments);return this},fade:function(c){var e=this.get("tween"),d="opacity",a;c=[c,"toggle"].pick();switch(c){case"in":e.start(d,1);break;case"out":e.start(d,0);break;case"show":e.set(d,1);break;case"hide":e.set(d,0);break;case"toggle":var b=this.retrieve("fade:flag",this.get("opacity")==1);e.start(d,(b)?0:1);this.store("fade:flag",!b);a=true;break;default:e.start(d,arguments)}if(!a){this.eliminate("fade:flag")}return this},highlight:function(c,a){if(!a){a=this.retrieve("highlight:original",this.getStyle("background-color"));a=(a=="transparent")?"#fff":a}var b=this.get("tween");b.start("background-color",c||"#ffff88",a).chain(function(){this.setStyle("background-color",this.retrieve("highlight:original"));b.callChain()}.bind(this));return this}});Fx.Morph=new Class({Extends:Fx.CSS,initialize:function(b,a){this.element=this.subject=document.id(b);this.parent(a)},set:function(a){if(typeof a=="string"){a=this.search(a)}for(var b in a){this.render(this.element,b,a[b],this.options.unit)}return this},compute:function(e,d,c){var a={};for(var b in e){a[b]=this.parent(e[b],d[b],c)}return a},start:function(b){if(!this.check(b)){return this}if(typeof b=="string"){b=this.search(b)}var e={},d={};for(var c in b){var a=this.prepare(this.element,c,b[c]);e[c]=a.from;d[c]=a.to}return this.parent(e,d)}});Element.Properties.morph={set:function(a){this.get("morph").cancel().setOptions(a);return this},get:function(){var a=this.retrieve("morph");if(!a){a=new Fx.Morph(this,{link:"cancel"});this.store("morph",a)}return a}};Element.implement({morph:function(a){this.get("morph").start(a);return this}});Fx.implement({getTransition:function(){var a=this.options.transition||Fx.Transitions.Sine.easeInOut;if(typeof a=="string"){var b=a.split(":");a=Fx.Transitions;a=a[b[0]]||a[b[0].capitalize()];if(b[1]){a=a["ease"+b[1].capitalize()+(b[2]?b[2].capitalize():"")]}}return a}});Fx.Transition=function(c,b){b=Array.from(b);var a=function(d){return c(d,b)};return Object.append(a,{easeIn:a,easeOut:function(d){return 1-c(1-d,b)},easeInOut:function(d){return(d<=0.5?c(2*d,b):(2-c(2*(1-d),b)))/2}})};Fx.Transitions={linear:function(a){return a}};Fx.Transitions=new Hash(Fx.Transitions);Fx.Transitions.extend=function(a){for(var b in a){Fx.Transitions[b]=new Fx.Transition(a[b])}};Fx.Transitions.extend({Pow:function(b,a){return Math.pow(b,a&&a[0]||6)},Expo:function(a){return Math.pow(2,8*(a-1))},Circ:function(a){return 1-Math.sin(Math.acos(a))},Sine:function(a){return 1-Math.cos(a*Math.PI/2)},Back:function(b,a){a=a&&a[0]||1.618;return Math.pow(b,2)*((a+1)*b-a)},Bounce:function(f){var e;for(var d=0,c=1;1;d+=c,c/=2){if(f>=(7-4*d)/11){e=c*c-Math.pow((11-6*d-11*f)/4,2);break}}return e},Elastic:function(b,a){return Math.pow(2,10*--b)*Math.cos(20*b*Math.PI*(a&&a[0]||1)/3)}});["Quad","Cubic","Quart","Quint"].each(function(b,a){Fx.Transitions[b]=new Fx.Transition(function(c){return Math.pow(c,a+2)})});(function(){var d=function(){},a=("onprogress" in new Browser.Request);var c=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(e){this.xhr=new Browser.Request();this.setOptions(e);this.headers=this.options.headers},onStateChange:function(){var e=this.xhr;if(e.readyState!=4||!this.running){return}this.running=false;this.status=0;Function.attempt(function(){var f=e.status;this.status=(f==1223)?204:f}.bind(this));e.onreadystatechange=d;if(a){e.onprogress=e.onloadstart=d}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 e=this.status;return(e>=200&&e<300)},isRunning:function(){return !!this.running},processScripts:function(e){if(this.options.evalResponse||(/(ecma|java)script/).test(this.getHeader("Content-type"))){return Browser.exec(e)}return e.stripScripts(this.options.evalScripts)},success:function(f,e){this.onSuccess(this.processScripts(f),e)},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(e){this.fireEvent("loadstart",[e,this.xhr])},progress:function(e){this.fireEvent("progress",[e,this.xhr])},timeout:function(){this.fireEvent("timeout",this.xhr)},setHeader:function(e,f){this.headers[e]=f;return this},getHeader:function(e){return Function.attempt(function(){return this.xhr.getResponseHeader(e)}.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(o){if(!this.check(o)){return this}this.options.isSuccess=this.options.isSuccess||this.isSuccess;this.running=true;var l=typeOf(o);if(l=="string"||l=="element"){o={data:o}}var h=this.options;o=Object.append({data:h.data,url:h.url,method:h.method},o);var j=o.data,f=String(o.url),e=o.method.toLowerCase();switch(typeOf(j)){case"element":j=document.id(j).toQueryString();break;case"object":case"hash":j=Object.toQueryString(j)}if(this.options.format){var m="format="+this.options.format;j=(j)?m+"&"+j:m}if(this.options.emulation&&!["get","post"].contains(e)){var k="_method="+e;j=(j)?k+"&"+j:k;e="post"}if(this.options.urlEncoded&&["post","put"].contains(e)){var g=(this.options.encoding)?"; charset="+this.options.encoding:"";this.headers["Content-type"]="application/x-www-form-urlencoded"+g}if(!f){f=document.location.pathname}var i=f.lastIndexOf("/");if(i>-1&&(i=f.indexOf("#"))>-1){f=f.substr(0,i)}if(this.options.noCache){f+=(f.contains("?")?"&":"?")+String.uniqueID()}if(j&&e=="get"){f+=(f.contains("?")?"&":"?")+j;j=null}var n=this.xhr;if(a){n.onloadstart=this.loadstart.bind(this);n.onprogress=this.progress.bind(this)}n.open(e.toUpperCase(),f,this.options.async,this.options.user,this.options.password);if(this.options.user&&"withCredentials" in n){n.withCredentials=true}n.onreadystatechange=this.onStateChange.bind(this);Object.each(this.headers,function(q,p){try{n.setRequestHeader(p,q)}catch(r){this.fireEvent("exception",[p,q])}},this);this.fireEvent("request");n.send(j);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 e=this.xhr;e.abort();clearTimeout(this.timer);e.onreadystatechange=d;if(a){e.onprogress=e.onloadstart=d}this.xhr=new Browser.Request();this.fireEvent("cancel");return this}});var b={};["get","post","put","delete","GET","POST","PUT","DELETE"].each(function(e){b[e]=function(g){var f={method:e};if(g!=null){f.data=g}return this.send(f)}});c.implement(b);Element.Properties.send={set:function(e){var f=this.get("send").cancel();f.setOptions(e);return this},get:function(){var e=this.retrieve("send");if(!e){e=new c({data:this,link:"cancel",method:this.get("method")||"post",url:this.get("action")});this.store("send",e)}return e}};Element.implement({send:function(e){var f=this.get("send");f.send({data:this,url:e||f.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(e){var d=this.options,b=this.response;b.html=e.stripScripts(function(f){b.javascript=f});var c=b.html.match(/<body[^>]*>([\s\S]*?)<\/body>/i);if(c){b.html=c[1]}var a=new Element("div").set("html",b.html);b.tree=a.childNodes;b.elements=a.getElements("*");if(d.filter){b.tree=b.elements.filter(d.filter)}if(d.update){document.id(d.update).empty().set("html",b.html)}else{if(d.append){document.id(d.append).adopt(a.getChildren())}}if(d.evalScripts){Browser.exec(b.javascript)}this.onSuccess(b.tree,b.elements,b.html,b.javascript)}});Element.Properties.load={set:function(a){var b=this.get("load").cancel();b.setOptions(a);return this},get:function(){var a=this.retrieve("load");if(!a){a=new Request.HTML({data:this,link:"cancel",update:this,method:"get"});this.store("load",a)}return a}};Element.implement({load:function(){this.get("load").send(Array.link(arguments,{data:Type.isObject,url:Type.isString}));return this}});if(typeof JSON=="undefined"){this.JSON={}}JSON=new Hash({stringify:JSON.stringify,parse:JSON.parse});(function(){var special={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};var escape=function(chr){return special[chr]||"\\u"+("0000"+chr.charCodeAt(0).toString(16)).slice(-4)};JSON.validate=function(string){string=string.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"");return(/^[\],:{}\s]*$/).test(string)};JSON.encode=JSON.stringify?function(obj){return JSON.stringify(obj)}:function(obj){if(obj&&obj.toJSON){obj=obj.toJSON()}switch(typeOf(obj)){case"string":return'"'+obj.replace(/[\x00-\x1f\\"]/g,escape)+'"';case"array":return"["+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""+obj;case"null":return"null"}return null};JSON.decode=function(string,secure){if(!string||typeOf(string)!="string"){return null}if(secure||JSON.secure){if(JSON.parse){return JSON.parse(string)}if(!JSON.validate(string)){throw new Error("JSON could not decode the input; security is enabled and the value is not secure.")}}return eval("("+string+")")}}).call(this);Request.JSON=new Class({Extends:Request,options:{secure:true},initialize:function(a){this.parent(a);Object.append(this.headers,{Accept:"application/json","X-Request":"JSON"})},success:function(c){var b;try{b=this.response.json=JSON.decode(c,this.options.secure)}catch(a){this.fireEvent("error",[c,a]);return}if(b==null){this.onFailure()}else{this.onSuccess(b,c)}}});var Cookie=new Class({Implements:Options,options:{path:"/",domain:false,duration:false,secure:false,document:document,encode:true},initialize:function(b,a){this.key=b;this.setOptions(a)},write:function(b){if(this.options.encode){b=encodeURIComponent(b)}if(this.options.domain){b+="; domain="+this.options.domain}if(this.options.path){b+="; path="+this.options.path}if(this.options.duration){var a=new Date();a.setTime(a.getTime()+this.options.duration*24*60*60*1000);b+="; expires="+a.toGMTString()}if(this.options.secure){b+="; secure"}this.options.document.cookie=this.key+"="+b;return this},read:function(){var a=this.options.document.cookie.match("(?:^|;)\\s*"+this.key.escapeRegExp()+"=([^;]*)");return(a)?decodeURIComponent(a[1]):null},dispose:function(){new Cookie(this.key,Object.merge({},this.options,{duration:-1})).write("");return this}});Cookie.write=function(b,c,a){return new Cookie(b,a).write(c)};Cookie.read=function(a){return new Cookie(a).read()};Cookie.dispose=function(b,a){return new Cookie(b,a).dispose()};(function(j,l){var m,g,f=[],c,b,n=true;try{n=j.frameElement!=null}catch(i){}var h=function(){clearTimeout(b);if(m){return}Browser.loaded=m=true;l.removeListener("DOMContentLoaded",h).removeListener("readystatechange",a);l.fireEvent("domready");j.fireEvent("domready")};var a=function(){for(var e=f.length;e--;){if(f[e]()){h();return true}}return false};var k=function(){clearTimeout(b);if(!a()){b=setTimeout(k,10)}};l.addListener("DOMContentLoaded",h);var d=l.createElement("div");if(d.doScroll&&!n){f.push(function(){try{d.doScroll();return true}catch(o){}return false});c=true}if(l.readyState){f.push(function(){var e=l.readyState;return(e=="loaded"||e=="complete")})}if("onreadystatechange" in l){l.addListener("readystatechange",a)}else{c=true}if(c){k()}Element.Events.domready={onAdd:function(e){if(m){e.call(this)}}};Element.Events.load={base:"load",onAdd:function(e){if(g&&this==j){e.call(this)}},condition:function(){if(this==j){h();delete Element.Events.load}return true}};j.addEvent("load",function(){g=true})})(window,document);(function(){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_"+String.uniqueID();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()].append(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)}}).call(this);MooTools.More={version:"1.4.0.1",build:"a4244edf2aa97ac8a196fc96082dd35af1abab87"};(function(){Events.Pseudos=function(h,e,f){var d="_monitorEvents:";var c=function(i){return{store:i.store?function(j,k){i.store(d+j,k)}:function(j,k){(i._monitorEvents||(i._monitorEvents={}))[j]=k},retrieve:i.retrieve?function(j,k){return i.retrieve(d+j,k)}:function(j,k){if(!i._monitorEvents){return k}return i._monitorEvents[j]||k}}};var g=function(k){if(k.indexOf(":")==-1||!h){return null}var j=Slick.parse(k).expressions[0][0],p=j.pseudos,i=p.length,o=[];while(i--){var n=p[i].key,m=h[n];if(m!=null){o.push({event:j.tag,value:p[i].value,pseudo:n,original:k,listener:m})}}return o.length?o:null};return{addEvent:function(m,p,j){var n=g(m);if(!n){return e.call(this,m,p,j)}var k=c(this),r=k.retrieve(m,[]),i=n[0].event,l=Array.slice(arguments,2),o=p,q=this;n.each(function(s){var t=s.listener,u=o;if(t==false){i+=":"+s.pseudo+"("+s.value+")"}else{o=function(){t.call(q,s,u,arguments,o)}}});r.include({type:i,event:p,monitor:o});k.store(m,r);if(m!=i){e.apply(this,[m,p].concat(l))}return e.apply(this,[i,o].concat(l))},removeEvent:function(m,l){var k=g(m);if(!k){return f.call(this,m,l)}var n=c(this),j=n.retrieve(m);if(!j){return this}var i=Array.slice(arguments,2);f.apply(this,[m,l].concat(i));j.each(function(o,p){if(!l||o.event==l){f.apply(this,[o.type,o.monitor].concat(i))}delete j[p]},this);n.store(m,j);return this}}};var b={once:function(e,f,d,c){f.apply(this,d);this.removeEvent(e.event,c).removeEvent(e.original,f)},throttle:function(d,e,c){if(!e._throttled){e.apply(this,c);e._throttled=setTimeout(function(){e._throttled=false},d.value||250)}},pause:function(d,e,c){clearTimeout(e._pause);e._pause=e.delay(d.value||250,this,c)}};Events.definePseudo=function(c,d){b[c]=d;return this};Events.lookupPseudo=function(c){return b[c]};var a=Events.prototype;Events.implement(Events.Pseudos(b,a.addEvent,a.removeEvent));["Request","Fx"].each(function(c){if(this[c]){this[c].implement(Events.prototype)}})})();Class.Mutators.Binds=function(a){if(!this.prototype.initialize){this.implement("initialize",function(){})}return Array.from(a).concat(this.prototype.Binds||[])};Class.Mutators.initialize=function(a){return function(){Array.from(this.Binds).each(function(b){var c=this[b];if(c){this[b]=c.bind(this)}},this);return a.apply(this,arguments)}};Class.Occlude=new Class({occlude:function(c,b){b=document.id(b||this.element);var a=b.retrieve(c||this.property);if(a&&!this.occluded){return(this.occluded=a)}this.occluded=false;b.store(c||this.property,this);return this.occluded}});(function(){var c={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},b={" ":/[\xa0\u2002\u2003\u2009]/g,"*":/[\xb7]/g,"'":/[\u2018\u2019]/g,'"':/[\u201c\u201d]/g,"...":/[\u2026]/g,"-":/[\u2013]/g,"&raquo;":/[\uFFFD]/g};var a=function(f,h){var e=f,g;for(g in h){e=e.replace(h[g],g)}return e};var d=function(e,g){e=e||"";var h=g?"<"+e+"(?!\\w)[^>]*>([\\s\\S]*?)</"+e+"(?!\\w)>":"</?"+e+"([^>]+)?>",f=new RegExp(h,"gi");return f};String.implement({standardize:function(){return a(this,c)},repeat:function(e){return new Array(e+1).join(this)},pad:function(e,h,g){if(this.length>=e){return this}var f=(h==null?" ":""+h).repeat(e-this.length).substr(0,e-this.length);if(!g||g=="right"){return this+f}if(g=="left"){return f+this}return f.substr(0,(f.length/2).floor())+this+f.substr(0,(f.length/2).ceil())},getTags:function(e,f){return this.match(d(e,f))||[]},stripTags:function(e,f){return this.replace(d(e,f),"")},tidy:function(){return a(this,b)},truncate:function(e,f,i){var h=this;if(f==null&&arguments.length==1){f="…"}if(h.length>e){h=h.substring(0,e);if(i){var g=h.lastIndexOf(i);if(g!=-1){h=h.substr(0,g)}}if(f){h+=f}}return h}})})();String.implement({parseQueryString:function(d,a){if(d==null){d=true}if(a==null){a=true}var c=this.split(/[&;]/),b={};if(!c.length){return b}c.each(function(i){var e=i.indexOf("=")+1,g=e?i.substr(e):"",f=e?i.substr(0,e-1).match(/([^\]\[]+|(\B)(?=\]))/g):[i],h=b;if(!f){return}if(a){g=decodeURIComponent(g)}f.each(function(k,j){if(d){k=decodeURIComponent(k)}var l=h[k];if(j<f.length-1){h=h[k]=l||{}}else{if(typeOf(l)=="array"){l.push(g)}else{h[k]=l!=null?[l,g]:g}}})});return b},cleanQueryString:function(a){return this.split("&").filter(function(e){var b=e.indexOf("="),c=b<0?"":e.substr(0,b),d=e.substr(b+1);return a?a.call(null,c,d):(d||d===0)}).join("&")}});(function(){var b=function(){return this.get("value")};var a=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(d,c){this.setOptions(c);var e=this.options.base||a.base;if(!d){d=e}if(d&&d.parsed){this.parsed=Object.clone(d.parsed)}else{this.set("value",d.href||d.toString(),e?new a(e):false)}},parse:function(e,d){var c=e.match(this.regex);if(!c){return false}c.shift();return this.merge(c.associate(this.parts),d)},merge:function(d,c){if((!d||!d.scheme)&&(!c||!c.scheme)){return false}if(c){this.parts.every(function(e){if(d[e]){return false}d[e]=c[e]||"";return true})}d.port=d.port||this.schemes[d.scheme.toLowerCase()];d.directory=d.directory?this.parseDirectory(d.directory,c?c.directory:""):"/";return d},parseDirectory:function(d,e){d=(d.substr(0,1)=="/"?"":(e||"/"))+d;if(!d.test(a.regs.directoryDot)){return d}var c=[];d.replace(a.regs.endSlash,"").split("/").each(function(f){if(f==".."&&c.length>0){c.pop()}else{if(f!="."){c.push(f)}}});return c.join("/")+"/"},combine:function(c){return c.value||c.scheme+"://"+(c.user?c.user+(c.password?":"+c.password:"")+"@":"")+(c.host||"")+(c.port&&c.port!=this.schemes[c.scheme]?":"+c.port:"")+(c.directory||"/")+(c.file||"")+(c.query?"?"+c.query:"")+(c.fragment?"#"+c.fragment:"")},set:function(d,f,e){if(d=="value"){var c=f.match(a.regs.scheme);if(c){c=c[1]}if(c&&this.schemes[c.toLowerCase()]==null){this.parsed={scheme:c,value:f}}else{this.parsed=this.parse(f,(e||this).parsed)||(c?{scheme:c,value:f}:{value:f})}}else{if(d=="data"){this.setData(f)}else{this.parsed[d]=f}}return this},get:function(c,d){switch(c){case"value":return this.combine(this.parsed,d?d.parsed:false);case"data":return this.getData()}return this.parsed[c]||""},go:function(){document.location.href=this.toString()},toURI:function(){return this},getData:function(e,d){var c=this.get(d||"query");if(!(c||c===0)){return e?null:{}}var f=c.parseQueryString();return e?f[e]:f},setData:function(c,f,d){if(typeof c=="string"){var e=this.getData();e[arguments[0]]=arguments[1];c=e}else{if(f){c=Object.merge(this.getData(),c)}}return this.set(d||"query",Object.toQueryString(c))},clearData:function(c){return this.set(c||"query","")},toString:b,valueOf:b});a.regs={endSlash:/\/$/,scheme:/^(\w+):/,directoryDot:/\.\/|\.$/};a.base=new a(Array.from(document.getElements("base[href]",true)).getLast(),{base:document.location});String.implement({toURI:function(c){return new a(this,c)}})})();(function(){var b=function(e,d){var f=[];Object.each(d,function(g){Object.each(g,function(h){e.each(function(i){f.push(i+"-"+h+(i=="border"?"-width":""))})})});return f};var c=function(f,e){var d=0;Object.each(e,function(h,g){if(g.test(f)){d=d+h.toInt()}});return d};var a=function(d){return !!(!d||d.offsetHeight||d.offsetWidth)};Element.implement({measure:function(h){if(a(this)){return h.call(this)}var g=this.getParent(),e=[];while(!a(g)&&g!=document.body){e.push(g.expose());g=g.getParent()}var f=this.expose(),d=h.call(this);f();e.each(function(i){i()});return d},expose:function(){if(this.getStyle("display")!="none"){return function(){}}var d=this.style.cssText;this.setStyles({display:"block",position:"absolute",visibility:"hidden"});return function(){this.style.cssText=d}.bind(this)},getDimensions:function(d){d=Object.merge({computeSize:false},d);var i={x:0,y:0};var h=function(j,e){return(e.computeSize)?j.getComputedSize(e):j.getSize()};var f=this.getParent("body");if(f&&this.getStyle("display")=="none"){i=this.measure(function(){return h(this,d)})}else{if(f){try{i=h(this,d)}catch(g){}}}return Object.append(i,(i.x||i.x===0)?{width:i.x,height:i.y}:{x:i.width,y:i.height})},getComputedSize:function(d){if(d&&d.plains){d.planes=d.plains}d=Object.merge({styles:["padding","border"],planes:{height:["top","bottom"],width:["left","right"]},mode:"both"},d);var g={},e={width:0,height:0},f;if(d.mode=="vertical"){delete e.width;delete d.planes.width}else{if(d.mode=="horizontal"){delete e.height;delete d.planes.height}}b(d.styles,d.planes).each(function(h){g[h]=this.getStyle(h).toInt()},this);Object.each(d.planes,function(i,h){var k=h.capitalize(),j=this.getStyle(h);if(j=="auto"&&!f){f=this.getDimensions()}j=g[h]=(j=="auto")?f[h]:j.toInt();e["total"+k]=j;i.each(function(m){var l=c(m,g);e["computed"+m.capitalize()]=l;e["total"+k]+=l})},this);return Object.append(e,g)}})})();(function(b){var a=Element.Position={options:{relativeTo:document.body,position:{x:"center",y:"center"},offset:{x:0,y:0}},getOptions:function(d,c){c=Object.merge({},a.options,c);a.setPositionOption(c);a.setEdgeOption(c);a.setOffsetOption(d,c);a.setDimensionsOption(d,c);return c},setPositionOption:function(c){c.position=a.getCoordinateFromValue(c.position)},setEdgeOption:function(d){var c=a.getCoordinateFromValue(d.edge);d.edge=c?c:(d.position.x=="center"&&d.position.y=="center")?{x:"center",y:"center"}:{x:"left",y:"top"}},setOffsetOption:function(f,d){var c={x:0,y:0},g=f.measure(function(){return document.id(this.getOffsetParent())}),e=g.getScroll();if(!g||g==f.getDocument().body){return}c=g.measure(function(){var i=this.getPosition();if(this.getStyle("position")=="fixed"){var h=window.getScroll();i.x+=h.x;i.y+=h.y}return i});d.offset={parentPositioned:g!=document.id(d.relativeTo),x:d.offset.x-c.x+e.x,y:d.offset.y-c.y+e.y}},setDimensionsOption:function(d,c){c.dimensions=d.getDimensions({computeSize:true,styles:["padding","border","margin"]})},getPosition:function(e,d){var c={};d=a.getOptions(e,d);var f=document.id(d.relativeTo)||document.body;a.setPositionCoordinates(d,c,f);if(d.edge){a.toEdge(c,d)}var g=d.offset;c.left=((c.x>=0||g.parentPositioned||d.allowNegative)?c.x:0).toInt();c.top=((c.y>=0||g.parentPositioned||d.allowNegative)?c.y:0).toInt();a.toMinMax(c,d);if(d.relFixedPosition||f.getStyle("position")=="fixed"){a.toRelFixedPosition(f,c)}if(d.ignoreScroll){a.toIgnoreScroll(f,c)}if(d.ignoreMargins){a.toIgnoreMargins(c,d)}c.left=Math.ceil(c.left);c.top=Math.ceil(c.top);delete c.x;delete c.y;return c},setPositionCoordinates:function(k,g,d){var f=k.offset.y,h=k.offset.x,e=(d==document.body)?window.getScroll():d.getPosition(),j=e.y,c=e.x,i=window.getSize();switch(k.position.x){case"left":g.x=c+h;break;case"right":g.x=c+h+d.offsetWidth;break;default:g.x=c+((d==document.body?i.x:d.offsetWidth)/2)+h;break}switch(k.position.y){case"top":g.y=j+f;break;case"bottom":g.y=j+f+d.offsetHeight;break;default:g.y=j+((d==document.body?i.y:d.offsetHeight)/2)+f;break}},toMinMax:function(c,d){var f={left:"x",top:"y"},e;["minimum","maximum"].each(function(g){["left","top"].each(function(h){e=d[g]?d[g][f[h]]:null;if(e!=null&&((g=="minimum")?c[h]<e:c[h]>e)){c[h]=e}})})},toRelFixedPosition:function(e,c){var d=window.getScroll();c.top+=d.y;c.left+=d.x},toIgnoreScroll:function(e,d){var c=e.getScroll();d.top-=c.y;d.left-=c.x},toIgnoreMargins:function(c,d){c.left+=d.edge.x=="right"?d.dimensions["margin-right"]:(d.edge.x!="center"?-d.dimensions["margin-left"]:-d.dimensions["margin-left"]+((d.dimensions["margin-right"]+d.dimensions["margin-left"])/2));c.top+=d.edge.y=="bottom"?d.dimensions["margin-bottom"]:(d.edge.y!="center"?-d.dimensions["margin-top"]:-d.dimensions["margin-top"]+((d.dimensions["margin-bottom"]+d.dimensions["margin-top"])/2))},toEdge:function(c,d){var e={},g=d.dimensions,f=d.edge;switch(f.x){case"left":e.x=0;break;case"right":e.x=-g.x-g.computedRight-g.computedLeft;break;default:e.x=-(Math.round(g.totalWidth/2));break}switch(f.y){case"top":e.y=0;break;case"bottom":e.y=-g.y-g.computedTop-g.computedBottom;break;default:e.y=-(Math.round(g.totalHeight/2));break}c.x+=e.x;c.y+=e.y},getCoordinateFromValue:function(c){if(typeOf(c)!="string"){return c}c=c.toLowerCase();return{x:c.test("left")?"left":(c.test("right")?"right":"center"),y:c.test(/upper|top/)?"top":(c.test("bottom")?"bottom":"center")}}};Element.implement({position:function(d){if(d&&(d.x!=null||d.y!=null)){return(b?b.apply(this,arguments):this)}var c=this.setStyle("position","absolute").calculatePosition(d);return(d&&d.returnPos)?c:this.setStyles(c)},calculatePosition:function(c){return a.getPosition(this,c)}})})(Element.prototype.position);Element.implement({isDisplayed:function(){return this.getStyle("display")!="none"},isVisible:function(){var a=this.offsetWidth,b=this.offsetHeight;return(a==0&&b==0)?false:(a>0&&b>0)?true:this.style.display!="none"},toggle:function(){return this[this.isDisplayed()?"hide":"show"]()},hide:function(){var b;try{b=this.getStyle("display")}catch(a){}if(b=="none"){return this}return this.store("element:_originalDisplay",b||"").setStyle("display","none")},show:function(a){if(!a&&this.isDisplayed()){return this}a=a||this.retrieve("element:_originalDisplay")||"block";return this.setStyle("display",(a=="none")?"block":a)},swapClass:function(a,b){return this.removeClass(a).addClass(b)}});Document.implement({clearSelection:function(){if(window.getSelection){var a=window.getSelection();if(a&&a.removeAllRanges){a.removeAllRanges()}}else{if(document.selection&&document.selection.empty){try{document.selection.empty()}catch(b){}}}}});Fx.Elements=new Class({Extends:Fx.CSS,initialize:function(b,a){this.elements=this.subject=$$(b);this.parent(a)},compute:function(g,h,j){var c={};for(var d in g){var a=g[d],e=h[d],f=c[d]={};for(var b in a){f[b]=this.parent(a[b],e[b],j)}}return c},set:function(b){for(var c in b){if(!this.elements[c]){continue}var a=b[c];for(var d in a){this.render(this.elements[c],d,a[d],this.options.unit)}}return this},start:function(c){if(!this.check(c)){return this}var h={},j={};for(var d in c){if(!this.elements[d]){continue}var f=c[d],a=h[d]={},g=j[d]={};for(var b in f){var e=this.prepare(this.elements[d],b,f[b]);a[b]=e.from;g[b]=e.to}}return this.parent(h,j)}});(function(){var a=function(d){var b=d.options.hideInputs;if(window.OverText){var c=[null];OverText.each(function(e){c.include("."+e.options.labelClass)});if(c){b+=c.join(", ")}}return(b)?d.element.getElements(b):null};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 d=this.element.getComputedSize({styles:this.options.styles,mode:this.options.mode});if(this.options.transitionOpacity){d.opacity=this.options.opacity}var c={};Object.each(d,function(f,e){c[e]=[f,0]});this.element.setStyles({display:Function.from(this.options.display).call(this),overflow:"hidden"});var b=a(this);if(b){b.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(b){b.setStyle("visibility","visible")}}this.fireEvent("hide",this.element);this.callChain()}.bind(this));this.start(c)}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 d;this.element.measure(function(){d=this.element.getComputedSize({styles:this.options.styles,mode:this.options.mode})}.bind(this));if(this.options.heightOverride!=null){d.height=this.options.heightOverride.toInt()}if(this.options.widthOverride!=null){d.width=this.options.widthOverride.toInt()}if(this.options.transitionOpacity){this.element.setStyle("opacity",0);d.opacity=this.options.opacity}var c={height:0,display:Function.from(this.options.display).call(this)};Object.each(d,function(f,e){c[e]=0});c.overflow="hidden";this.element.setStyles(c);var b=a(this);if(b){b.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(b){b.setStyle("visibility","visible")}this.callChain();this.fireEvent("show",this.element)}.bind(this));this.start(d)}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);if(this.cssText!=null){this.element.style.cssText=this.cssText}this.hiding=false;this.showing=false;return this}});Element.Properties.reveal={set:function(b){this.get("reveal").cancel().setOptions(b);return this},get:function(){var b=this.retrieve("reveal");if(!b){b=new Fx.Reveal(this);this.store("reveal",b)}return b}};Element.Properties.dissolve=Element.Properties.reveal;Element.implement({reveal:function(b){this.get("reveal").setOptions(b).reveal();return this},dissolve:function(b){this.get("reveal").setOptions(b).dissolve();return this},nix:function(b){var c=Array.link(arguments,{destroy:Type.isBoolean,options:Type.isObject});this.get("reveal").setOptions(b).dissolve().chain(function(){this[c.destroy?"destroy":"dispose"]()}.bind(this));return this},wink:function(){var c=Array.link(arguments,{duration:Type.isNumber,options:Type.isObject});var b=this.get("reveal").setOptions(c.options);b.reveal().chain(function(){(function(){b.dissolve()}).delay(c.duration||2000)})}})})();(function(){Fx.Scroll=new Class({Extends:Fx,options:{offset:{x:0,y:0},wheelStops:true},initialize:function(c,b){this.element=this.subject=document.id(c);this.parent(b);if(typeOf(this.element)!="element"){this.element=document.id(this.element.getDocument().body)}if(this.options.wheelStops){var d=this.element,e=this.cancel.pass(false,this);this.addEvent("start",function(){d.addEvent("mousewheel",e)},true);this.addEvent("complete",function(){d.removeEvent("mousewheel",e)},true)}},set:function(){var b=Array.flatten(arguments);if(Browser.firefox){b=[Math.round(b[0]),Math.round(b[1])]}this.element.scrollTo(b[0],b[1]);return this},compute:function(d,c,b){return[0,1].map(function(e){return Fx.compute(d[e],c[e],b)})},start:function(c,d){if(!this.check(c,d)){return this}var b=this.element.getScroll();return this.parent([b.x,b.y],[c,d])},calculateScroll:function(g,f){var d=this.element,b=d.getScrollSize(),h=d.getScroll(),j=d.getSize(),c=this.options.offset,i={x:g,y:f};for(var e in i){if(!i[e]&&i[e]!==0){i[e]=h[e]}if(typeOf(i[e])!="number"){i[e]=b[e]-j[e]}i[e]+=c[e]}return[i.x,i.y]},toTop:function(){return this.start.apply(this,this.calculateScroll(false,0))},toLeft:function(){return this.start.apply(this,this.calculateScroll(0,false))},toRight:function(){return this.start.apply(this,this.calculateScroll("right",false))},toBottom:function(){return this.start.apply(this,this.calculateScroll(false,"bottom"))},toElement:function(d,e){e=e?Array.from(e):["x","y"];var c=a(this.element)?{x:0,y:0}:this.element.getScroll();var b=Object.map(document.id(d).getPosition(this.element),function(g,f){return e.contains(f)?g+c[f]:false});return this.start.apply(this,this.calculateScroll(b.x,b.y))},toElementEdge:function(d,g,e){g=g?Array.from(g):["x","y"];d=document.id(d);var i={},f=d.getPosition(this.element),j=d.getSize(),h=this.element.getScroll(),b=this.element.getSize(),c={x:f.x+j.x,y:f.y+j.y};["x","y"].each(function(k){if(g.contains(k)){if(c[k]>h[k]+b[k]){i[k]=c[k]-b[k]}if(f[k]<h[k]){i[k]=f[k]}}if(i[k]==null){i[k]=h[k]}if(e&&e[k]){i[k]=i[k]+e[k]}},this);if(i.x!=h.x||i.y!=h.y){this.start(i.x,i.y)}return this},toElementCenter:function(e,f,h){f=f?Array.from(f):["x","y"];e=document.id(e);var i={},c=e.getPosition(this.element),d=e.getSize(),b=this.element.getScroll(),g=this.element.getSize();["x","y"].each(function(j){if(f.contains(j)){i[j]=c[j]-(g[j]-d[j])/2}if(i[j]==null){i[j]=b[j]}if(h&&h[j]){i[j]=i[j]+h[j]}},this);if(i.x!=b.x||i.y!=b.y){this.start(i.x,i.y)}return this}});Fx.Scroll.implement({scrollToCenter:function(){return this.toElementCenter.apply(this,arguments)},scrollIntoView:function(){return this.toElementEdge.apply(this,arguments)}});function a(b){return(/^(?:body|html)$/i).test(b.tagName)}})();Fx.Slide=new Class({Extends:Fx,options:{mode:"vertical",wrapper:false,hideOverflow:true,resetHeight:false},initialize:function(b,a){b=this.element=this.subject=document.id(b);this.parent(a);a=this.options;var d=b.retrieve("wrapper"),c=b.getStyles("margin","position","overflow");if(a.hideOverflow){c=Object.append(c,{overflow:"hidden"})}if(a.wrapper){d=document.id(a.wrapper).setStyles(c)}if(!d){d=new Element("div",{styles:c}).wraps(b)}b.store("wrapper",d).setStyle("margin",0);if(b.getStyle("overflow")=="visible"){b.setStyle("overflow","hidden")}this.now=[];this.open=true;this.wrapper=d;this.addEvent("complete",function(){this.open=(d["offset"+this.layout.capitalize()]!=0);if(this.open&&this.options.resetHeight){d.setStyle("height","")}},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(a){this.element.setStyle(this.margin,a[0]);this.wrapper.setStyle(this.layout,a[1]);return this},compute:function(c,b,a){return[0,1].map(function(d){return Fx.compute(c[d],b[d],a)})},start:function(b,e){if(!this.check(b,e)){return this}this[e||this.options.mode]();var d=this.element.getStyle(this.margin).toInt(),c=this.wrapper.getStyle(this.layout).toInt(),a=[[d,c],[0,this.offset]],g=[[d,c],[-this.offset,0]],f;switch(b){case"in":f=a;break;case"out":f=g;break;case"toggle":f=(c==0)?a:g}return this.parent(f[0],f[1])},slideIn:function(a){return this.start("in",a)},slideOut:function(a){return this.start("out",a)},hide:function(a){this[a||this.options.mode]();this.open=false;return this.set([-this.offset,0])},show:function(a){this[a||this.options.mode]();this.open=true;return this.set([0,this.offset])},toggle:function(a){return this.start("toggle",a)}});Element.Properties.slide={set:function(a){this.get("slide").cancel().setOptions(a);return this},get:function(){var a=this.retrieve("slide");if(!a){a=new Fx.Slide(this,{link:"cancel"});this.store("slide",a)}return a}};Element.implement({slide:function(d,e){d=d||"toggle";var b=this.get("slide"),a;switch(d){case"hide":b.hide(e);break;case"show":b.show(e);break;case"toggle":var c=this.retrieve("slide:flag",b.open);b[c?"slideOut":"slideIn"](e);this.store("slide:flag",!c);a=true;break;default:b.start(d,e)}if(!a){this.eliminate("slide:flag")}return this}});var SmoothScroll=Fx.SmoothScroll=new Class({Extends:Fx.Scroll,options:{axes:["x","y"]},initialize:function(c,d){d=d||document;this.doc=d.getDocument();this.parent(this.doc,c);var e=d.getWindow(),a=e.location.href.match(/^[^#]*/)[0]+"#",b=$$(this.options.links||this.doc.links);b.each(function(g){if(g.href.indexOf(a)!=0){return}var f=g.href.substr(a.length);if(f){this.useLink(g,f)}},this);this.addEvent("complete",function(){e.location.hash=this.anchor;this.element.scrollTo(this.to[0],this.to[1])},true)},useLink:function(b,a){b.addEvent("click",function(d){var c=document.id(a)||this.doc.getElement("a[name="+a+"]");if(!c){return}d.preventDefault();this.toElement(c,this.options.axes).chain(function(){this.fireEvent("scrolledTo",[b,c])}.bind(this));this.anchor=a}.bind(this));return this}});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 b=Array.link(arguments,{options:Type.isObject,element:function(c){return c!=null}});this.element=document.id(b.element);this.document=this.element.getDocument();this.setOptions(b.options||{});var a=typeOf(this.options.handle);this.handles=((a=="array"||a=="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(a){var j=this.options;if(a.rightClick){return}if(j.preventDefault){a.preventDefault()}if(j.stopPropagation){a.stopPropagation()}this.mouse.start=a.page;this.fireEvent("beforeStart",this.element);var c=j.limit;this.limit={x:[],y:[]};var e,g;for(e in j.modifiers){if(!j.modifiers[e]){continue}var b=this.element.getStyle(j.modifiers[e]);if(b&&!b.match(/px$/)){if(!g){g=this.element.getCoordinates(this.element.getOffsetParent())}b=g[j.modifiers[e]]}if(j.style){this.value.now[e]=(b||0).toInt()}else{this.value.now[e]=this.element[j.modifiers[e]]}if(j.invert){this.value.now[e]*=-1}this.mouse.pos[e]=a.page[e]-this.value.now[e];if(c&&c[e]){var d=2;while(d--){var f=c[e][d];if(f||f===0){this.limit[e][d]=(typeof f=="function")?f():f}}}}if(typeOf(this.options.grid)=="number"){this.options.grid={x:this.options.grid,y:this.options.grid}}var h={mousemove:this.bound.check,mouseup:this.bound.cancel};h[this.selection]=this.bound.eventStop;this.document.addEvents(h)},check:function(a){if(this.options.preventDefault){a.preventDefault()}var b=Math.round(Math.sqrt(Math.pow(a.page.x-this.mouse.start.x,2)+Math.pow(a.page.y-this.mouse.start.y,2)));if(b>this.options.snap){this.cancel();this.document.addEvents({mousemove:this.bound.drag,mouseup:this.bound.stop});this.fireEvent("start",[this.element,a]).fireEvent("snap",this.element)}},drag:function(b){var a=this.options;if(a.preventDefault){b.preventDefault()}this.mouse.now=b.page;for(var c in a.modifiers){if(!a.modifiers[c]){continue}this.value.now[c]=this.mouse.now[c]-this.mouse.pos[c];if(a.invert){this.value.now[c]*=-1}if(a.limit&&this.limit[c]){if((this.limit[c][1]||this.limit[c][1]===0)&&(this.value.now[c]>this.limit[c][1])){this.value.now[c]=this.limit[c][1]}else{if((this.limit[c][0]||this.limit[c][0]===0)&&(this.value.now[c]<this.limit[c][0])){this.value.now[c]=this.limit[c][0]}}}if(a.grid[c]){this.value.now[c]-=((this.value.now[c]-(this.limit[c][0]||0))%a.grid[c])}if(a.style){this.element.setStyle(a.modifiers[c],this.value.now[c]+a.unit)}else{this.element[a.modifiers[c]]=this.value.now[c]}}this.fireEvent("drag",[this.element,b])},cancel:function(a){this.document.removeEvents({mousemove:this.bound.check,mouseup:this.bound.cancel});if(a){this.document.removeEvent(this.selection,this.bound.eventStop);this.fireEvent("cancel",this.element)}},stop:function(b){var a={mousemove:this.bound.drag,mouseup:this.bound.stop};a[this.selection]=this.bound.eventStop;this.document.removeEvents(a);if(b){this.fireEvent("complete",[this.element,b])}}});Element.implement({makeResizable:function(a){var b=new Drag(this,Object.merge({modifiers:{x:"width",y:"height"}},a));this.store("resizer",b);return b.addEvent("drag",function(){this.fireEvent("resize",b)}.bind(this))}});var Slider=new Class({Implements:[Events,Options],Binds:["clickedElement","draggedKnob","scrolledElement"],options:{onTick:function(a){this.setKnobPosition(a)},initialStep:0,snap:false,offset:0,range:false,wheel:false,steps:100,mode:"horizontal"},initialize:function(f,a,e){this.setOptions(e);e=this.options;this.element=document.id(f);a=this.knob=document.id(a);this.previousChange=this.previousEnd=this.step=-1;var b={},d={x:false,y:false};switch(e.mode){case"vertical":this.axis="y";this.property="top";this.offset="offsetHeight";break;case"horizontal":this.axis="x";this.property="left";this.offset="offsetWidth"}this.setSliderDimensions();this.setRange(e.range);if(a.getStyle("position")=="static"){a.setStyle("position","relative")}a.setStyle(this.property,-e.offset);d[this.axis]=this.property;b[this.axis]=[-e.offset,this.full-e.offset];var c={snap:0,limit:b,modifiers:d,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(e.snap){this.setSnap(c)}this.drag=new Drag(a,c);this.attach();if(e.initialStep!=null){this.set(e.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).removeEvent("mousewheel",this.scrolledElement);this.drag.detach();return this},autosize:function(){this.setSliderDimensions().setKnobPosition(this.toPosition(this.step));this.drag.options.limit[this.axis]=[-this.options.offset,this.full-this.options.offset];if(this.options.snap){this.setSnap()}return this},setSnap:function(a){if(!a){a=this.drag.options}a.grid=Math.ceil(this.stepWidth);a.limit[this.axis][1]=this.full;return this},setKnobPosition:function(a){if(this.options.snap){a=this.toPosition(this.step)}this.knob.setStyle(this.property,a);return this},setSliderDimensions:function(){this.full=this.element.measure(function(){this.half=this.knob[this.offset]/2;return this.element[this.offset]-this.knob[this.offset]+(this.options.offset*2)}.bind(this));return this},set:function(a){if(!((this.range>0)^(a<this.min))){a=this.min}if(!((this.range>0)^(a>this.max))){a=this.max}this.step=Math.round(a);return this.checkStep().fireEvent("tick",this.toPosition(this.step)).end()},setRange:function(a,b){this.min=Array.pick([a[0],0]);this.max=Array.pick([a[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);if(a){this.set(Array.pick([b,this.step]).floor(this.min).max(this.max))}return this},clickedElement:function(c){if(this.isDragging||c.target==this.knob){return}var b=this.range<0?-1:1,a=c.page[this.axis]-this.element.getPosition()[this.axis]-this.half;a=a.limit(-this.options.offset,this.full-this.options.offset);this.step=Math.round(this.min+b*this.toStep(a));this.checkStep().fireEvent("tick",a).end()},scrolledElement:function(a){var b=(this.options.mode=="horizontal")?(a.wheel<0):(a.wheel>0);this.set(this.step+(b?-1:1)*this.stepSize);a.stop()},draggedKnob:function(){var b=this.range<0?-1:1,a=this.drag.value.now[this.axis];a=a.limit(-this.options.offset,this.full-this.options.offset);this.step=Math.round(this.min+b*this.toStep(a));this.checkStep()},checkStep:function(){var a=this.step;if(this.previousChange!=a){this.previousChange=a;this.fireEvent("change",a)}return this},end:function(){var a=this.step;if(this.previousEnd!==a){this.previousEnd=a;this.fireEvent("complete",a+"")}return this},toStep:function(a){var b=(a+this.options.offset)*this.stepSize/this.full*this.steps;return this.options.steps?Math.round(b-=b%this.stepSize):b},toPosition:function(a){return(this.full*Math.abs(this.min-a))/(this.steps*this.stepSize)-this.options.offset}});var Asset={javascript:function(d,b){if(!b){b={}}var a=new Element("script",{src:d,type:"text/javascript"}),e=b.document||document,c=b.onload||b.onLoad;delete b.onload;delete b.onLoad;delete b.document;if(c){if(typeof a.onreadystatechange!="undefined"){a.addEvent("readystatechange",function(){if(["loaded","complete"].contains(this.readyState)){c.call(this)}})}else{a.addEvent("load",c)}}return a.set(b).inject(e.head)},css:function(d,a){if(!a){a={}}var b=new Element("link",{rel:"stylesheet",media:"screen",type:"text/css",href:d});var c=a.onload||a.onLoad,e=a.document||document;delete a.onload;delete a.onLoad;delete a.document;if(c){b.addEvent("load",c)}return b.set(a).inject(e.head)},image:function(c,b){if(!b){b={}}var d=new Image(),a=document.id(d)||new Element("img");["load","abort","error"].each(function(e){var g="on"+e,f="on"+e.capitalize(),h=b[g]||b[f]||function(){};delete b[f];delete b[g];d[g]=function(){if(!d){return}if(!a.parentNode){a.width=d.width;a.height=d.height}d=d.onload=d.onabort=d.onerror=null;h.delay(1,a,a);a.fireEvent(e,a,1)}});d.src=a.src=c;if(d&&d.complete){d.onload.delay(1)}return a.set(b)},images:function(c,b){c=Array.from(c);var d=function(){},a=0;b=Object.merge({onComplete:d,onProgress:d,onError:d,properties:{}},b);return new Elements(c.map(function(f,e){return Asset.image(f,Object.append(b.properties,{onload:function(){a++;b.onProgress.call(this,a,e,f);if(a==c.length){b.onComplete()}},onerror:function(){a++;b.onError.call(this,a,e,f);if(a==c.length){b.onComplete()}}}))}))}};var Slimbox=(function(){var F=window,n=Browser.Engine.trident4,u,g,G=-1,o,w,E,v,y,M,s,m={},t=new Image(),K=new Image(),I,a,h,q,J,e,H,c,A,L,x,i,d,C;F.addEvent("domready",function(){$(document.body).adopt($$(I=new Element("div",{id:"lbOverlay",events:{click:D}}),a=new Element("div",{id:"lbCenter"}),H=new Element("div",{id:"lbBottomContainer"})).setStyle("display","none"));h=new Element("div",{id:"lbImage"}).injectInside(a).adopt(q=new Element("div",{styles:{position:"relative"}}).adopt(J=new Element("a",{id:"lbPrevLink",href:"#",events:{click:B}}),e=new Element("a",{id:"lbNextLink",href:"#",events:{click:f}})));c=new Element("div",{id:"lbBottom"}).injectInside(H).adopt(new Element("a",{id:"lbCloseLink",href:"#",events:{click:D}}),A=new Element("div",{id:"lbCaption"}),L=new Element("div",{id:"lbNumber"}),new Element("div",{styles:{clear:"both"}}))});function z(){var N=F.getScroll(),O=F.getSize();$$(a,H).setStyle("left",N.x+(O.x/2));if(v){I.setStyles({left:N.x,top:N.y,width:O.x,height:O.y})}}function l(N){["object",n?"select":"embed"].forEach(function(P){Array.forEach(document.getElementsByTagName(P),function(Q){if(N){Q._slimbox=Q.style.visibility}Q.style.visibility=N?"hidden":Q._slimbox})});I.style.display=N?"":"none";var O=N?"addEvent":"removeEvent";F[O]("scroll",z)[O]("resize",z);document[O]("keydown",p)}function p(O){var N=O.code;return u.closeKeys.contains(N)?D():u.nextKeys.contains(N)?f():u.previousKeys.contains(N)?B():false}function B(){return b(w)}function f(){return b(E)}function b(N){if(N>=0){G=N;o=g[N][0];w=(G||(u.loop?g.length:0))-1;E=((G+1)%g.length)||(u.loop?0:-1);r();a.className="lbLoading";m=new Image();m.onload=k;m.src=o}return false}function k(){a.className="";d.set(0);h.setStyles({backgroundImage:"url("+o+")",display:""});q.setStyle("width",m.width);$$(q,J,e).setStyle("height",m.height);A.set("html",g[G][1]||"");L.set("html",(((g.length>1)&&u.counterText)||"").replace(/{x}/,G+1).replace(/{y}/,g.length));if(w>=0){t.src=g[w][0]}if(E>=0){K.src=g[E][0]}M=h.offsetWidth;s=h.offsetHeight;var P=Math.max(0,y-(s/2)),N=0,O;if(a.offsetHeight!=s){N=i.start({height:s,top:P})}if(a.offsetWidth!=M){N=i.start({width:M,marginLeft:-M/2})}O=function(){H.setStyles({width:M,top:P+s,marginLeft:-M/2,visibility:"hidden",display:""});d.start(1)};if(N){i.chain(O)}else{O()}}function j(){if(w>=0){J.style.display=""}if(E>=0){e.style.display=""}C.set(-c.offsetHeight).start(0);H.style.visibility=""}function r(){m.onload=$empty;m.src=t.src=K.src=o;i.cancel();d.cancel();C.cancel();$$(J,e,h,H).setStyle("display","none")}function D(){if(G>=0){r();G=w=E=-1;a.style.display="none";x.cancel().chain(l).start(0)}return false}Element.implement({slimbox:function(N,O){$$(this).slimbox(N,O);return this}});Elements.implement({slimbox:function(N,Q,P){Q=Q||function(R){return[R.href,R.title]};P=P||function(){return true};var O=this;O.removeEvents("click").addEvent("click",function(){var R=O.filter(P,this);return Slimbox.open(R.map(Q),R.indexOf(this),N)});return O}});return{open:function(P,O,N){u=$extend({loop:false,overlayOpacity:0.8,overlayFadeDuration:400,resizeDuration:400,resizeTransition:false,initialWidth:250,initialHeight:250,imageFadeDuration:400,captionAnimationDuration:400,counterText:"Image {x} of {y}",closeKeys:[27,88,67],previousKeys:[37,80],nextKeys:[39,78]},N||{});x=new Fx.Tween(I,{property:"opacity",duration:u.overlayFadeDuration});i=new Fx.Morph(a,$extend({duration:u.resizeDuration,link:"chain"},u.resizeTransition?{transition:u.resizeTransition}:{}));d=new Fx.Tween(h,{property:"opacity",duration:u.imageFadeDuration,onComplete:j});C=new Fx.Tween(c,{property:"margin-top",duration:u.captionAnimationDuration});if(typeof P=="string"){P=[[P,O]];O=0}y=F.getScrollTop()+(F.getHeight()/2);M=u.initialWidth;s=u.initialHeight;a.setStyles({top:Math.max(0,y-(s/2)),width:M,height:s,marginLeft:-M/2,display:""});v=n||(I.currentStyle&&(I.currentStyle.position!="fixed"));if(v){I.style.position="absolute"}x.set(0).start(u.overlayOpacity);z();l(1);g=P;u.loop=u.loop&&(g.length>1);return b(O)}}})();Slimbox.scanPage=function(){$$("a").filter(function(el){return el.rel&&el.rel.test(/^lightbox/i)}).slimbox({loop:true,counterText:"Screenshot {x} van {y}"},null,function(el){return(this==el)||((this.rel.length>8)&&(this.rel==el.rel))})};if(!/android|iphone|ipod|series60|symbian|windows ce|blackberry/i.test(navigator.userAgent)){window.addEvent("domready",Slimbox.scanPage)}(function(){var global=this;var log=function(){if(global.console&&console.log){try{console.log.apply(console,arguments)}catch(e){console.log(Array.slice(arguments))}}else{Log.logged.push(arguments)}return this};var disabled=function(){this.logged.push(arguments);return this};this.Log=new Class({logged:[],log:disabled,resetLog:function(){this.logged.empty();return this},enableLog:function(){this.log=log;this.logged.each(function(args){this.log.apply(this,args)},this);return this.resetLog()},disableLog:function(){this.log=disabled;return this}});Log.extend(new Log).enableLog();Log.logger=function(){return this.log.apply(this,arguments)}})();var Broadcaster=new Events();var ScrollBar=new Class({Implements:[Options,Events,Log],options:{horizontal:false,ignoreMouse:false},scrollBar:null,bar:null,scrollArea:null,content:null,container:null,slider:null,steps:0,elementFx:null,visible:false,initialize:function(content,options){this.log("ScrollBar::initialize("+content+", "+options+")");this.setOptions(options);this.content=$(content)},build:function(){this.log("ScrollBar::build()");this.scrollArea=new Element("div",{"class":"scroll-area"});this.container=new Element("div",{"class":"scroll-container"});var scrollBar=new Element("div",{"class":"scroll-bar"});var bar=new Element("div",{"class":"bar"});bar.adopt(new Element("div",{"class":"top"}));bar.adopt(new Element("div",{"class":"middle"}));bar.adopt(new Element("div",{"class":"bottom"}));scrollBar.adopt(bar);this.bar=bar;this.scrollBar=scrollBar;this.container.adopt(scrollBar);this.scrollArea.wraps(this.content);this.container.wraps(this.scrollArea);this.elementFx=new Fx.Tween(this.scrollBar,{duration:250,transition:Fx.Transitions.Quad.easeOut,link:"cancel"});this.scrollBar.set("opacity",0);this.enable()},reset:function(){this.log("ScrollBar::reset()");this.elementFx.set("opacity",0);$$(this.content,this.scrollBar).removeEvents("mousewheel");this.steps=0;if(this.slider){this.slider.set(0)}},update:function(){this.log("ScrollBar::update()");var contentSize;var contentScrollSize;var scrollAreaSize;var scrollAreaScrollSize;this.content.measure(function(){this.size=this.getSize();this.scrollSize=this.getScrollSize()});this.scrollArea.measure(function(){this.size=this.getSize();this.scrollSize=this.getScrollSize()});this.log("this.content.name: "+this.content.get("class"));this.log("this.content.size.y: "+this.content.size.y);this.log("this.content.scrollSize.y: "+this.content.scrollSize.y);this.log("this.scrollArea.name: "+this.scrollArea.get("class"));this.log("this.scrollArea.size.y: "+this.scrollArea.size.y);this.log("this.scrollArea.scrollSize.y: "+this.scrollArea.scrollSize.y);this.steps=(this.options.horizontal?(this.scrollArea.scrollSize.x-this.scrollArea.size.x):(this.scrollArea.scrollSize.y-this.scrollArea.size.y));this.log("this.steps: "+this.steps);if(this.steps<=0){return}this.slider=new Slider(this.scrollBar,this.bar,{steps:this.steps,mode:(this.options.horizontal?"horizontal":"vertical"),onChange:function(step){var x=(this.options.horizontal?step:0);var y=(this.options.horizontal?0:step);this.scrollArea.scrollTo(x,y)}.bind(this)});if(!(this.options.ignoreMouse)){$$(this.content,this.scrollBar).removeEvents("mousewheel");$$(this.content,this.scrollBar).addEvent("mousewheel",function(event){event=new Event(event);var step=this.slider.step-event.wheel*30;this.slider.set(step);if(step>0&&step<this.steps){event.stop()}}.bind(this))}$(document.body).removeEvents("mouseleave");$(document.body).addEvent("mouseleave",function(){this.slider.drag.stop()}.bind(this))},show:function(){this.log("ScrollBar::show()");this.log("this.visible: "+this.visible);if(this.steps>0&&!this.visible){this.visible=true;this.slider.set(0);this.elementFx.start("opacity",1);this.log("slider.set(0)")}},hide:function(){this.log("ScrollBar::hide()");this.log("this.visible: "+this.visible);if(this.steps>0&&this.visible){this.visible=false;this.elementFx.start("opacity",0)}},enable:function(){this.log("ScrollBar::enable()");this.addEvents()},disable:function(){this.log("ScrollBar::disable()");this.removeEvents()},addEvents:function(){this.log("ScrollBar::addEvents()")},removeEvents:function(){this.log("ScrollBar::removeEvents()")}});var Overlay=new Class({Implements:[Options,Events,Log],options:{useBackground:true,allowClose:true,onCloseConfirm:$empty,depth:1000,windowMargin:{top:50}},application:null,name:null,background:null,backgroundFx:null,element:null,elementFx:null,useBackground:null,allowClose:null,onCloseConfirm:null,depth:null,endPosition:null,startPosition:null,isShown:false,isAnimating:false,onShow:$empty,onHide:$empty,onClose:$empty,initialize:function(name,options){this.log("Overlay::initialize("+name+", "+options+")");this.setOptions(options);this.application=new Application();this.name=name;this.useBackground=this.options.useBackground;this.allowClose=this.options.allowClose;this.onCloseConfirm=this.options.onCloseConfirm;this.depth=this.options.depth;this.createBackground();this.createWindow()},reset:function(){this.log("Overlay::reset()")},show:function(){this.log("Overlay::show()");this.log("this.isShown: "+this.isShown);if(this.isShown){return}if(this.element){var windowPosition=$(document.body).getScroll().y+this.options.windowMargin.top;this.log("windowPosition: "+windowPosition);this.log("this.startPosition: "+this.startPosition);this.log("this.endPosition: "+this.endPosition);var window=this.element.getElement(".window");window.setStyle("top",windowPosition);this.elementFx.start.delay(200,this.elementFx,[{opacity:1,top:[this.startPosition,this.endPosition]}])}if(this.useBackground){this.backgroundFx.start("opacity",1)}},hide:function(){this.log("Overlay::hide()");if(!this.isShown||this.isAnimating){return}if(this.element){this.elementFx.start({opacity:0,top:[this.endPosition,this.startPosition]})}if(this.useBackground){this.backgroundFx.start("opacity",0)}},close:function(force){this.log("Overlay::close()");if($defined(this.onCloseConfirm)&&!force){if(this.onCloseConfirm()==false){return}}this.hide();if($defined(this.onClose)){this.onClose()}},createBackground:function(){this.log("Overlay::createBackground()");var backgroundIsInited=false;if($(document.body).getElement(".overlay-background")){backgroundIsInited=true;this.background=$(document.body).getElement(".overlay-background")}if(!backgroundIsInited){this.background=new Element("div");this.background.addClass("overlay-background");this.background.setStyle("z-index",this.depth);this.background.hide()}this.backgroundFx=new Fx.Tween(this.background,{duration:250,transition:Fx.Transitions.linear.easeOut});this.backgroundFx.set("opacity",0);this.backgroundFx.addEvent("start",function(event){if(this.background.get("opacity")==0){this.background.show()}}.bind(this));this.backgroundFx.addEvent("complete",function(event){if(this.background.get("opacity")==0){this.background.hide()}}.bind(this));this.background.addEvent("click",function(event){if(this.allowClose){this.close()}}.bind(this));if(!backgroundIsInited){$(document.body).appendChild(this.background)}},createWindow:function(){this.log("Overlay::createWindow()");this.element=new Element("div",{"class":"overlay"});this.element.addClass(this.name);this.element.setStyle("z-index",this.depth+1);this.elementFx=new Fx.Morph(this.element,{duration:400,transition:Fx.Transitions.Quad.easeOut});this.elementFx.set({opacity:0});this.elementFx.addEvent("start",function(event){if(this.element.get("opacity")==0){this.element.show();this.isAnimating=true}}.bind(this));this.elementFx.addEvent("complete",function(event){this.isAnimating=false;if(this.element.get("opacity")==0){this.element.hide();this.isShown=false;this.reset()}if(this.element.get("opacity")==1){this.isShown=true}}.bind(this));$(document.body).appendChild(this.element);this.endPosition=this.element.getStyle("top").toInt();this.startPosition=this.endPosition-20;this.element.hide();var url="overlay/"+this.name+".html";var request=new Request.HTML({method:"get",url:url,onSuccess:function(html){this.element.adopt(html);this.initilizeWindow()}.bind(this),onFailure:function(){}.bind(this)});request.send()},initilizeWindow:function(){this.log("Overlay::initilizeWindow()");this.element.addEvent("click",function(event){if(event.target.hasClass(this.name)){if(this.allowClose){this.close()}}}.bind(this));if($(this.element).getElement(".close")){$(this.element).getElement(".close").addEvent("click",function(event){event.preventDefault();this.close()}.bind(this))}}});var Application=new Class({Implements:[Events,Class.Occlude,Log,Chain],property:"Application",MENU_ITEM_INACTIVE:"#b2b3b5",MENU_ITEM_ACTIVE:"#fff",MENU_ITEM_CONTACT_EXTRA_PADDING:10,SHARE_DATA:{title:"HP QuickPage - Powered by Quantore",url:"http://www.quickpage.nl",twitter:"HP QuickPage vereenvoudigt alle print behoeften voor uw bedrijf. U vult alleen nog het papier aan: http://www.quickpage.nl #quickpage #printing",linkedin:"Hardware, installatie, supplies, support en onderhoud in één eenvoudig contract. HP QuickPage is een eenvoudig contract dat hardware, installatie, supplies, onderhoud en support van uw printerpark dekt. U krijgt de beste hardware zonder grote investering vooraf en u betaalt een vast bedrag per maand, gebaseerd op uw printvolume. Alles is geregeld, u vult alleen het papier aan."},config:{dealer:null},element:null,elementFx:null,menu:null,sections:[],visibleSections:[],currentSectionIndex:0,autoScroll:false,contactMenuItem:null,contactPanelVisible:false,contactPanel:null,slideshow:null,printerSelector:null,wincodeOverlay:null,offerRequestOverlay:null,initialize:function(config){this.element=$(document.body);if(this.occlude()){return this.occluded}this.log("Application::initialize()");this.config=config;this.menu=$("nav");this.autoScroll=true;this.slideshow=new Slideshow(this.element.getElement(".slideshow"));var printerSelectorConfig=config.requestPath.printerSelectorConfig;this.printerSelector=new PrinterSelector($("application"),printerSelectorConfig);this.printerSelector.addEvent("requestOffer",this.showRequestOffer.bind(this));this.wincodeOverlay=new WincodeOverlay();this.offerRequestOverlay=new OfferRequestOverlay();this.menu.getElements("li").each(function(menuItem,index){var name=menuItem.get("class");if(name=="contact"){return}var title=menuItem.getElement("a").get("href").replace("#","");var section={name:name,title:title,element:$(name)};this.sections.include(section);var link=menuItem.getElement("a");var fx=new Fx.Tween(link,{duration:250,transition:Fx.Transitions.Quad.easeOut,property:"color",link:"cancel"});menuItem.fx=fx;menuItem.fx.set(this.MENU_ITEM_INACTIVE);link.addEvent("click",function(event){event.preventDefault();this.scrollToSection(name,title)}.bind(this));link.addEvent("mouseover",function(event){event.preventDefault();if(!menuItem.hasClass("selected")){menuItem.fx.start(this.MENU_ITEM_ACTIVE)}}.bind(this));link.addEvent("mouseout",function(event){event.preventDefault();if(!menuItem.hasClass("selected")){menuItem.fx.start(this.MENU_ITEM_INACTIVE)}}.bind(this))}.bind(this));this.elementFx=new Fx.SmoothScroll({duration:250,transition:Fx.Transitions.Quad.easeOut,link:"cancel",axes:"y",wheelStops:false,offset:{x:0,y:-$("body").getPosition().y}});this.initUI();if(this.isDealer()){this.showIDversion()}this.scrollEvent();this.showStartSection()},showStartSection:function(){this.log("Application::showStartSection()");var sectionTitle=new URI().get("fragment");if(sectionTitle=="contact"){this.showContactPanel()}var index=this.getSectionPositionByTitle(sectionTitle);if(sectionTitle&&index!=null){var section=this.sections[index];this.scrollToSection(section.name,section.title)}},scrollEvent:function(remove){this.log("Application::scrollEvent("+remove+")");if(Browser.ie7){return}if(remove){this.log("REMOVE scroll");window.removeEvents("scroll")}else{this.log("ADD scroll");window.addEvent("scroll",this.onScroll.bind(this))}},scrollToSection:function(name,title){this.log("Application::scrollToSection("+name+", "+title+")");if(!title){title=name}var position=this.getSectionPositionByName(name);this.autoScrollSectionIndex=position;this.previousCurrentSectionIndex=this.currentSectionIndex;this.deselectMenuItem(this.currentSectionIndex);this.selectMenuItem(position);this.elementFx.removeEvents("start");this.elementFx.removeEvents("complete");this.elementFx.addEvent("start",function(event){this.log("start");this.autoScroll=true;this.scrollEvent(true)}.bind(this));this.elementFx.addEvent("complete",function(event){this.log("complete");this.previousCurrentSectionIndex=null;this.autoScrollSectionIndex=null;this.autoScroll=false;if(!this.contactPanelVisible){this.setLocation(title)}this.scrollEvent.delay(50,this)}.bind(this));this.elementFx.addEvent("scrolledTo",function(event){this.log("scrolledTo")}.bind(this));var element=this.sections[position].element;this.elementFx.toElement(element)},onScroll:function(){this.log("Application::onScroll()");var windowScrollY=window.getScroll().y-$("body").getPosition().y;var windowHeight=window.getSize().y;var windowTop=windowScrollY;var windowBottom=windowTop+windowHeight;this.sections.each(function(section,index){var element=section.element;var elementTop=element.getPosition().y;var elementBottom=elementTop+element.getSize().y;if(elementTop>=windowTop&&elementTop<=windowBottom||elementBottom>=windowTop&&elementBottom<windowBottom||windowTop>elementTop&&windowBottom<elementBottom){this.visibleSections.include(section)}else{this.visibleSections.erase(section)}},this);this.log("VISIBLE SECTIONS: "+this.visibleSections.length);var visibleSection=null;var highestVisibleArea=0;this.visibleSections.each(function(section,index){var element=section.element;var elementTop=element.getPosition().y;var elementBottom=elementTop+element.getSize().y;var visibleTop=elementTop>=windowTop?elementTop:windowTop;var visibleBottom=elementBottom<=windowBottom?elementBottom:windowBottom;var visibleArea=visibleBottom-visibleTop;element.removeClass("visible");if(visibleArea>highestVisibleArea){visibleSection=section;highestVisibleArea=visibleArea}},this);this.log("visibleSection.name: "+visibleSection.name);var visibleSectionIndex=this.sections.indexOf(visibleSection);this.log("visibleSectionIndex: "+visibleSectionIndex);this.sections[visibleSectionIndex].element.addClass("visible");this.log("this.currentSectionIndex: "+this.currentSectionIndex);if(visibleSectionIndex!=this.currentSectionIndex&&visibleSectionIndex>=0){this.log("in if");if(this.currentSectionIndex!=this.autoScrollSectionIndex){this.deselectMenuItem(this.currentSectionIndex)}if(this.previousCurrentSectionIndex>=0&&this.autoScroll){this.deselectMenuItem(this.previousCurrentSectionIndex)}if(visibleSectionIndex!=this.currentSectionIndex){this.selectMenuItem(visibleSectionIndex)}if(!this.contactPanelVisible){this.setLocation(visibleSection.title)}}},selectMenuItem:function(index){this.log("Application::selectMenuItem("+index+")");this.currentSectionIndex=index;var name=this.sections[index].name;var menuItem=this.menu.getElement("li."+name);if(menuItem){if(!menuItem.hasClass("selected")){menuItem.addClass("selected");menuItem.fx.start(this.MENU_ITEM_ACTIVE)}}},deselectMenuItem:function(index){this.log("Application::deselectMenuItem("+index+")");var name=this.sections[index].name;var menuItem=this.menu.getElement("li."+name);if(menuItem){if(menuItem.hasClass("selected")){menuItem.removeClass("selected");menuItem.fx.start(this.MENU_ITEM_INACTIVE)}}},setLocation:function(title){this.log("Application::setLocation("+title+")");var location=new URI();location.set("fragment",title);location.go()},initUI:function(){this.log("Application::initUI()");this.contactMenuItem=this.element.getElement(".nav li.contact a");var fx=new Fx.Tween(this.contactMenuItem,{duration:1000,transition:Fx.Transitions.Elastic.easeOut,property:"paddingTop",link:"cancel"});this.contactMenuItem.fx=fx;this.contactMenuItem.paddingTop=this.contactMenuItem.getStyle("paddingTop").toInt();var arrow=this.contactMenuItem.getElement(".arrow");var arrowFx=new Fx.Tween(arrow,{duration:1000,transition:Fx.Transitions.Elastic.easeOut,link:"cancel"});arrow.fx=arrowFx;arrow.top=arrow.getStyle("top").toInt();var arrowLoopFx=new Fx.Tween(arrow,{duration:250,transition:Fx.Transitions.Expo.easeOut,property:"top",link:"cancel"});var arrowLoopResetFx=new Fx.Tween(arrow,{duration:500,transition:Fx.Transitions.linear.easeOut,property:"top",link:"cancel"});arrow.arrowLoopFx=arrowLoopFx;arrow.arrowLoopResetFx=arrowLoopResetFx;arrow.loopFx=function(){arrow.fx.removeEvents("complete");arrow.arrowLoopFx.addEvent("complete",function(event){arrow.arrowLoopResetFx.start(12)}.bind(this));arrowLoopResetFx.addEvent("complete",function(event){arrow.arrowLoopFx.start(6)}.bind(this));arrow.arrowLoopResetFx.fireEvent("complete")}.bind(this);this.contactMenuItem.addEvent("click",function(event){event.preventDefault();this.contactMenuItem.fireEvent("mouseleave");this.showContactPanel(true)}.bind(this));this.contactMenuItem.addEvent("mouseenter",function(event){var paddingTop=this.contactMenuItem.paddingTop+this.MENU_ITEM_CONTACT_EXTRA_PADDING;this.contactMenuItem.fx.start(paddingTop);var arrowBottom=arrow.top+this.MENU_ITEM_CONTACT_EXTRA_PADDING;arrow.fx.addEvent("complete",function(event){arrow.loopFx.attempt()}.bind(this));arrow.fx.start("top",arrowBottom)}.bind(this));this.contactMenuItem.addEvent("mouseleave",function(event){arrow.fx.removeEvents("complete");arrow.arrowLoopFx.removeEvents("complete");arrow.arrowLoopResetFx.removeEvents("complete");arrow.arrowLoopFx.cancel();arrow.arrowLoopResetFx.cancel();this.contactMenuItem.fx.start(this.contactMenuItem.paddingTop);arrow.fx.start("top",arrow.top)}.bind(this));this.element.getElement(".get-contact").addEvent("mouseenter",function(event){event.preventDefault();this.contactMenuItem.fireEvent("mouseenter")}.bind(this));this.element.getElement(".get-contact").addEvent("mouseleave",function(event){event.preventDefault();this.contactMenuItem.fireEvent("mouseleave")}.bind(this));this.element.getElement(".get-contact").addEvent("click",function(event){event.preventDefault();this.contactMenuItem.fireEvent("click",[event])}.bind(this));this.element.getElement(".twitter").addEvent("click",function(event){event.preventDefault();var link="http://twitter.com/?status="+this.SHARE_DATA.twitter;window.open(link)}.bind(this));this.element.getElement(".linkedin").addEvent("click",function(event){event.preventDefault();var link="http://www.linkedin.com/shareArticle?mini=true&url="+this.SHARE_DATA.url+"&title="+this.SHARE_DATA.title+"&summary="+this.SHARE_DATA.linkedin+"&source="+this.SHARE_DATA.url;window.open(link)}.bind(this));this.element.getElement(".facebook").addEvent("click",function(event){event.preventDefault();var link="http://www.facebook.com/sharer.php?u="+this.SHARE_DATA.url+"&t="+this.SHARE_DATA.title;window.open(link)}.bind(this));this.element.getElements(".screenshots a").each(function(screenshot){var hover=new Element("span",{"class":"hover"});var icon=new Element("span",{"class":"icon"});hover.adopt(icon);screenshot.adopt(hover);var fx=new Fx.Tween(hover,{duration:250,transition:Fx.Transitions.linear.easeOut,property:"opacity",link:"cancel"});screenshot.fx=fx;screenshot.fx.set(0);screenshot.addEvent("mouseenter",function(event){event.preventDefault();screenshot.fx.start(1)}.bind(this));screenshot.addEvent("mouseleave",function(event){event.preventDefault();screenshot.fx.start(0)}.bind(this))}.bind(this));this.element.getElement(".button.win").addEvent("click",function(event){event.preventDefault();if(!this.wincodeOverlay){this.wincodeOverlay=new WincodeOverlay()}this.wincodeOverlay.show()}.bind(this))},showRequestOffer:function(printers,resultId){this.log("Application::showRequestOffer("+printers+", "+resultId+")");this.log("this.offerRequestOverlay: "+this.offerRequestOverlay);if(!this.offerRequestOverlay){this.offerRequestOverlay=new OfferRequestOverlay()}this.offerRequestOverlay.show(printers,resultId)},showContactPanel:function(toggle){this.log("Application::showContactPanel("+toggle+")");if(!this.contactPanel){this.contactPanel=new ContactPanel()}if(toggle){this.contactPanel.toggle()}else{this.contactPanel.show()}if(!this.contactPanelVisible){this.log("setLocation 3");this.setLocation("contact");this.contactPanelVisible=true}else{this.log("setLocation 4");var previousSectionTitle=this.sections[this.currentSectionIndex].title;this.setLocation(previousSectionTitle);this.contactPanelVisible=false}this.scrollEvent(true);this.scrollEvent();this.onScroll()},showIDversion:function(animate){this.log("Application::showIDversion("+animate+")");var menuItemContact=$("menu-item-contact");var wincodeBox=$("printer-selector").getElement(".wincode");var contact=$("printer-selector").getElement(".contact");menuItemContact.labelFx=new Fx.Tween(menuItemContact.getElement(".label"),{duration:250,transition:Fx.Transitions.Quad.easeOut,property:"opacity",link:"cancel"});menuItemContact.labelFx.addEvent("complete",function(event){menuItemContact.labelFx.removeEvents();menuItemContact.getElement(".label").set("text","Contact");menuItemContact.set("title","Contact");if(animate){menuItemContact.labelFx.start(1)}}.bind(this));contact.fx=new Fx.Tween(contact,{duration:250,transition:Fx.Transitions.Quad.easeOut,property:"opacity",link:"cancel"});contact.fx.addEvent("complete",function(event){this.log("contact COMPLETE");contact.fx.removeEvents();contact.getElement("p").set("html","Meteen persoonlijk contact met onze adviseurs?");contact.getElement(".get-contact").set("text","Neem contact op");contact.getElement(".get-contact").set("title","Neem contact op");if(animate){contact.fx.start(1)}}.bind(this));if(animate){menuItemContact.labelFx.start(0);if(wincodeBox){wincodeBox.fx=new Fx.Tween(wincodeBox,{duration:250,transition:Fx.Transitions.Quad.easeOut,property:"opacity",link:"cancel"})}contact.fx.start(0)}else{menuItemContact.labelFx.fireEvent("complete");if(wincodeBox){wincodeBox.dispose()}contact.fx.fireEvent("complete")}},getSectionPositionByName:function(name){var position=null;this.sections.each(function(section,index){if(section.name==name){position=index}},this);return position},getSectionPositionByTitle:function(title){var position=null;this.sections.each(function(section,index){if(section.title==title){position=index}},this);return position},setDealer:function(data){this.log("Application::setDealer("+data+")");this.config.dealer=data},getDealer:function(){this.log("Application::getDealerData()");return this.getConfig().dealer},isDealer:function(){this.log("Application::isDealer()");var isDealer=false;if(this.getConfig().dealer){isDealer=true}return isDealer},getConfig:function(){this.log("Application::getConfig()");return this.config}});var ContactPanel=new Class({Implements:[Options,Events,Log],application:null,element:null,contactPanelFx:null,visible:false,dealer:null,dealerFinder:null,initialize:function(){this.log("ContactPanel::initialize()");this.application=new Application();this.element=$("header").getElement(".contact-panel");this.dealer=new Dealer(this.element.getElement(".dealer"));this.dealerFinder=new DealerFinder(this.element.getElement(".dealer-finder"));this.contactPanelFx=new Fx.Slide(this.element,{duration:300,resetHeight:true});this.contactPanelFx.addEvent("complete",function(event){this.log("contactPanelFx complete");this.setIsVisible(this.contactPanelFx.open)}.bind(this));if(!this.isVisible()){this.hide(true)}this.element.show()},show:function(noAnimation){this.log("ContactPanel::show("+noAnimation+")");this.setContent();if(!noAnimation){this.contactPanelFx.slideIn()}else{this.contactPanelFx.show();this.contactPanelFx.fireEvent("complete")}},hide:function(noAnimation){this.log("ContactPanel::hide("+noAnimation+")");if(!noAnimation){this.contactPanelFx.slideOut()}else{this.contactPanelFx.hide();this.contactPanelFx.fireEvent("complete")}},toggle:function(noAnimation){this.log("ContactPanel::toggle("+noAnimation+")");if(this.isVisible()){this.hide(noAnimation)}else{this.show(noAnimation)}},setContent:function(){this.log("ContactPanel::setContent()");if(this.application.isDealer()){this.dealer.setData(this.application.getDealer());this.dealer.show();this.dealerFinder.hide()}else{this.dealer.hide();this.dealerFinder.show()}this.hide(true)},isVisible:function(){this.log("ContactPanel::isVisible()");return this.visible},setIsVisible:function(visible){this.log("ContactPanel::setIsVisible("+visible+")");if(visible!==true){visible=false}this.visible=visible}});var Dealer=new Class({Implements:[Options,Events,Log],element:null,data:null,initialize:function(element){this.log("Dealer::initialize("+element+")");this.element=element},show:function(){this.log("Dealer::show()");this.element.show()},hide:function(){this.log("Dealer::hide()");this.element.hide()},setData:function(data){this.log("Dealer::setData("+data+")");if(this.data){return}this.data=data;var addressContainer=this.element.getElement(".address-info");var webContainer=this.element.getElement(".web-info");var emailContainer=webContainer.getElement(".email");var websiteContainer=webContainer.getElement(".website");var imageContainer=this.element.getElement(".logo .image");this.element.getElement(".name").set("text",this.data.name);addressContainer.getElement(".address").set("text",this.data.address);addressContainer.getElement(".postal").set("text",this.data.postal);addressContainer.getElement(".city").set("text",this.data.city);addressContainer.getElement(".phone").set("text",this.data.phone);if(this.data.email){emailContainer.getElement("a").set("text",this.data.email);emailContainer.getElement("a").set("href","mailto:"+this.data.email)}else{emailContainer.hide()}if(this.data.website){websiteContainer.getElement("a").set("text",this.data.website);websiteContainer.getElement("a").set("href","http://"+this.data.website)}else{websiteContainer.hide()}if(imageContainer){imageContainer.setStyle("background-image","url("+this.data.image+")")}}});var DealerFinder=new Class({Implements:[Options,Events,Log],options:{offerRequestVersion:false},element:null,form:null,explanation:null,explanationFx:null,resultData:null,items:[],initialize:function(element,options){this.log("DealerFinder::initialize("+element+")");this.setOptions(options);this.element=element;if(!this.options.offerRequestVersion){this.explanation=this.element.getElement(".explanation");this.explanationFx=new Fx.Tween(this.explanation,{duration:400,transition:Fx.Transitions.Quad.easeOut,property:"opacity",link:"cancel"})}if(this.options.offerRequestVersion){this.resultMessage=this.element.getElement(".message");this.resultMessage.fx=new Fx.Tween(this.resultMessage,{duration:250,transition:Fx.Transitions.Quad.easeOut,property:"opacity",link:"cancel"});this.resultMessage.fx.set(0);this.resultMessage.postal=this.resultMessage.getElement(".postal");this.resultMessage.postalFx=new Fx.Tween(this.resultMessage.postal,{duration:250,transition:Fx.Transitions.Quad.easeOut,property:"opacity",link:"cancel"})}this.initForm()},reset:function(){this.log("DealerFinder::reset()");this.form.reset();this.removeItems();this.resultData=null;this.items=[];if(this.options.offerRequestVersion){this.items=[];this.resultMessage.fx.set(0)}},initForm:function(){this.log("DealerFinder::initForm()");var requestUrl=new Application().getConfig().requestPath.dealerFinder;var handlers={onRequest:function(){this.log("onRequest");if(!this.options.offerRequestVersion){this.hideExplanation()}this.hideItems()}.bind(this),onSuccess:function(response){this.log("onSuccess");this.log("response: "+response);this.log("response.success: "+response.success);this.log("response.result: "+response.result);if(response.success){this.log("succes!");this.placeItems(response.result);if(this.options.offerRequestVersion){this.updateResultMessage(response.postal)}this.fireEvent("success")}else{this.log("error!");var error;var isGeneralError=false;switch(response.errorCode){case 103:error="De postcode die u ingevoerd heeft is ongeldig";break;case 104:error="De postcode die u ingevoerd heeft bestaat niet";break;case 105:error="Er zijn geen dealers gevonden in de buurt van deze postcode";break;default:error="Er is iets mis gegaan tijdens het verzenden van de gegevens. Probeer het nogmaals.";isGeneralError=true;break}this.log("error: "+error);var postalElement;this.form.elements.each(function(element){if(element.name=="postal"){postalElement=element;postalElement.addValidation(Form.REGEX_FORCE_ERROR,error)}}.bind(this));this.form.onSubmit();if(isGeneralError){this.form.elements.each(function(element){element.showStatus(FormElement.VALID)}.bind(this))}if(postalElement){postalElement.removeValidation(Form.REGEX_FORCE_ERROR)}}}.bind(this),onFailure:function(xhr){this.log("onFailure");this.form.elements.each(function(element){element.showStatus(FormElement.ERROR)}.bind(this))}.bind(this)};var options={showLoader:true,loaderContainer:this.element.getElement(".results"),allowStatus:true,formErrorMessage:{allow:true,container:this.element.getElement(".form-message-container"),allowClose:false},formValidMessage:{allow:false}};var form=new JsonForm(this.element.getElement(".dealer-finder-form"),requestUrl,handlers,options);var postalElement=new FormElement(form,"postal",{});postalElement.addValidation(Form.REGEX_POSTAL,"De postcode die u ingevoerd heeft is ongeldig");form.addElement(postalElement);var submitButton=new FormSubmitButton(form,".button.search-dealer",{showLoader:true});form.addButton(submitButton);this.form=form},show:function(){this.log("DealerFinder::show()");this.element.show()},hide:function(){this.log("DealerFinder::hide()");this.element.hide()},showExplanation:function(){this.log("DealerFinder::showExplanation()");this.explanationFx.start(1)},hideExplanation:function(){this.log("DealerFinder::hideExplanation()");this.explanationFx.start(0)},updateResultMessage:function(postal){this.log("DealerFinder::updateMessage("+postal+")");if(this.resultMessage.get("opacity")==0){this.resultMessage.postal.set("text",postal);this.resultMessage.fx.start(1)}else{this.resultMessage.postalFx.addEvent("complete",function(event){if(this.resultMessage.postal.get("opacity")==0){this.resultMessage.postal.set("text",postal);this.resultMessage.postalFx.start(1)}this.resultMessage.postalFx.removeEvents()}.bind(this));this.resultMessage.postalFx.start(0)}},placeItems:function(data){this.log("DealerFinder::placeItems("+data+")");this.log("data.length: "+data.length);this.removeItems();this.resultData=data;this.items=[];this.resultData.each(function(dealer,index){this.log("["+index+"] dealer.name: "+dealer.name);var result=new Element("div",{"class":"result"});var name=new Element("h4",{"class":"name",text:dealer.name});result.adopt(name);var address=new Element("p",{html:'<span class="address">'+dealer.address+"</span>"});result.adopt(address);var postal=new Element("p",{html:'<span class="postal">'+dealer.postal+'</span> <span class="city">'+dealer.city+"</span>"});result.adopt(postal);if(dealer.phone){var phone=new Element("p",{html:'tel. <span class="phone">'+dealer.phone+"</span>"});result.adopt(phone)}if(dealer.email){var emailName=dealer.email.truncate(35,"..");var email=new Element("p",{html:'e. <span class="email"><a href="mailto:'+dealer.email+'" title="E-mail deze dealer">'+emailName+"</a></span>"});result.adopt(email)}if(dealer.website){var websiteName=dealer.website.truncate(35,"..");var website=new Element("p",{html:'w. <span class="website"><a href="http://'+dealer.website+'" target="_blank" title="Bezoek de website">'+websiteName+"</a></span>"});result.adopt(website)}var fx=new Fx.Tween(result,{duration:250,transition:Fx.Transitions.linear.easeOut,property:"opacity",link:"cancel"});result.fx=fx;result.fx.set("opacity",0);var resultContainer=this.element.getElement(".result-"+index);resultContainer.adopt(result);var delay=index*50;result.fx.start.delay(delay,result.fx,[1]);if(this.options.offerRequestVersion){result.index=index;var checkbox=new Element("div",{"class":"checkbox"});result.adopt(checkbox);this.items.include(result);result.addEvent("click",function(event){this.selectItem(result.index)}.bind(this));if(website){website.getElement("a").addEvent("click",function(event){event.stopPropagation()}.bind(this))}if(email){email.getElement("a").addEvent("click",function(event){event.stopPropagation()}.bind(this))}}}.bind(this));this.selectItem(0)},selectItem:function(index){this.log("DealerFinder::selectItem("+index+")");this.deselectItems();var item=this.items[index];item.addClass("selected");this.fireEvent("selectItem",this.resultData[index])},deselectItems:function(){this.log("DealerFinder::deselectItems()");this.items.each(function(item,index){item.removeClass("selected")}.bind(this))},showItems:function(){this.log("DealerFinder::showItems()");this.element.getElements(".result").each(function(result,index){result.fx.start(1)}.bind(this))},hideItems:function(){this.log("DealerFinder::hideItems()");this.element.getElements(".result").each(function(result,index){var fx=new Fx.Tween(result,{duration:500,transition:Fx.Transitions.linear.easeOut,property:"opacity",link:"cancel"});fx.addEvent("complete",function(event){this.log("result complete");result.dispose()}.bind(this));fx.start(0)}.bind(this))},removeItems:function(){this.log("DealerFinder::removeItems()");this.element.getElements(".result").each(function(result,index){result.dispose()}.bind(this))}});var Slideshow=new Class({Implements:[Options,Events,Log],options:{allowSlidesMenu:true,loop:"continue",autoPlay:true,duration:8000},element:null,slides:[],activeSlideIndex:0,autoPlayTimer:null,fx:null,isPaused:false,hideSlideTimer:null,menu:null,initialize:function(element,options){this.log("Slideshow::initialize("+element+", "+options+")");this.setOptions(options);this.element=element;this.element.getElements(".slide").each(function(element,index){var slide=new Slide(element,index);this.slides.include(slide)}.bind(this));if(this.options.allowSlidesMenu){var menuOptions={};this.menu=new SlideshowMenu(this,$("home"),this.slides,menuOptions)}this.build();this.enable();this.start()},reset:function(){this.log("Slideshow::reset()");this.activeSlideIndex=0;if(this.options.allowSlidesMenu){this.menu.reset()}this.enable()},build:function(){this.log("Slideshow::build()")},show:function(){this.log("Slideshow::show()");this.element.show()},hide:function(){this.log("Slideshow::hide()");this.element.hide()},enable:function(){this.log("Slideshow::enable()");this.addEvents()},disable:function(){this.log("Slideshow::disable()");this.removeEvents()},start:function(){this.log("Slideshow::start()");if(this.options.autoPlay){this.play()}},stop:function(){this.log("Slideshow::stop()");this.pause()},play:function(){this.log("Slideshow::play()");if(!this.autoPlayTimer&&this.slides.length>1){this.isPaused=false;this.slide()}},pause:function(){this.log("Slideshow::pause()");this.isPaused=true;this.autoPlayTimer=$clear(this.autoPlayTimer)},addEvents:function(){this.log("Slideshow::addEvents()");this.removeEvents()},removeEvents:function(){this.log("Slideshow::removeEvents()")},slide:function(){this.log("Slideshow::slide()");var activeSlide=this.slides[this.activeSlideIndex];activeSlide.show();activeSlide.removeEvents("show");activeSlide.removeEvents("hide");activeSlide.addEvent("show",function(event){activeSlide.hideSlideTimer=activeSlide.hide.delay(this.options.duration,activeSlide)}.bind(this));activeSlide.addEvent("hide",function(event){this.update();this.slide()}.bind(this));this.menu.selectMenuItem(this.activeSlideIndex)},showSlide:function(index){this.log("Slideshow::showSlide("+index+")");this.slides.each(function(slide,index){$clear(slide.hideSlideTimer);slide.removeEvents("show");slide.removeEvents("hide")}.bind(this));var activeSlide=this.slides[this.activeSlideIndex];activeSlide.addEvent("hide",function(event){this.update(index);this.slide()}.bind(this));activeSlide.hide()},update:function(index){this.log("Slideshow::update("+index+")");var newActiveSlideIndex=this.activeSlideIndex+1;if(index!=null){newActiveSlideIndex=index}this.activeSlideIndex=newActiveSlideIndex%this.slides.length}});var SlideshowMenu=new Class({Implements:[Options,Events,Log],options:{},element:null,slideshow:null,container:null,slides:[],fx:null,menuItems:[],initialize:function(slideshow,container,slides,options){this.log("SlideshowMenu::initialize("+slideshow+", "+container+", "+slides+", "+options+")");this.setOptions(options);this.slideshow=slideshow;this.container=container;this.slides=slides;this.element=this.container.getElement(".slideshow-menu");this.build();this.enable();this.show()},reset:function(){this.log("SlideshowMenu::reset()");this.selectSlide(0)},build:function(){this.log("SlideshowMenu::build()");this.element.getElements("a").each(function(menuItem){var hover=new Element("span",{"class":"hover"});menuItem.adopt(hover);var fx=new Fx.Tween(hover,{duration:250,transition:Fx.Transitions.Quad.easeOut,property:"opacity",link:"cancel"});menuItem.fx=fx;menuItem.fx.set(0);this.menuItems.include(menuItem)}.bind(this))},show:function(){this.log("SlideshowMenu::show()");this.element.show()},hide:function(){this.log("SlideshowMenu::hide()");this.element.hide()},enable:function(){this.log("SlideshowMenu::enable()");this.addEvents()},disable:function(){this.log("SlideshowMenu::disable()");this.removeEvents()},addEvents:function(){this.log("SlideshowMenu::addEvents()");this.removeEvents();this.menuItems.each(function(menuItem,index){menuItem.addEvent("click",function(event){event.preventDefault();if(menuItem.hasClass("selected")){return}this.slideshow.showSlide(index);this.selectMenuItem(index);this.log("SlideshowMenu:: index: "+index)}.bind(this));menuItem.addEvent("mouseenter",function(event){if(!menuItem.hasClass("selected")){menuItem.fx.start(1)}}.bind(this));menuItem.addEvent("mouseleave",function(event){if(!menuItem.hasClass("selected")){menuItem.fx.start(0)}}.bind(this))},this)},removeEvents:function(){this.log("SlideshowMenu::removeEvents()");this.menuItems.each(function(menuItem,index){menuItem.removeEvents("click");menuItem.removeEvents("mouseenter");menuItem.removeEvents("mouseleave")},this)},selectMenuItem:function(index){this.log("SlideshowMenu::selectMenuItem("+index+")");this.deselectMenuItems(index);this.menuItems[index].fireEvent("mouseenter");this.menuItems[index].addClass("selected")},deselectMenuItems:function(index){var selectedMenuItemIndex=index;this.menuItems.each(function(menuItem,index){if(index==selectedMenuItemIndex){return}menuItem.removeClass("selected");menuItem.fireEvent("mouseleave")}.bind(this))}});var Slide=new Class({Implements:[Options,Events,Log],options:{},element:null,iconFx:null,iconFxDelay:null,contentFx:null,contentFxDelay:null,initialize:function(element,options){this.log("Slide::initialize("+element+", "+options+")");this.setOptions(options);this.element=element;this.build()},reset:function(){this.log("Slide::reset()")},build:function(){this.icon=this.element.getElement(".icon");this.iconFx=new Fx.Morph(this.icon,{duration:350,transition:Fx.Transitions.Expo.easeOut,link:"cancel"});this.iconFx.set({opacity:0,left:-50});this.content=this.element.getElement(".content");this.contentFx=new Fx.Morph(this.content,{duration:450,transition:Fx.Transitions.Quad.easeOut,link:"cancel"});this.contentFx.set({opacity:0,top:228});this.element.show();this.contentFx.addEvent("complete",function(event){if(this.content.get("opacity")==1){this.fireEvent("show")}else{this.fireEvent("hide")}}.bind(this))},show:function(){this.log("Slide::show()");$clear(this.iconFxDelay);$clear(this.contentFxDelay);this.iconFxDelay=this.iconFx.start.delay(350,this.iconFx,[{opacity:1,left:22}]);this.contentFx.start({opacity:1,top:0})},hide:function(){this.log("Slide::hide()");$clear(this.iconFxDelay);$clear(this.contentFxDelay);this.iconFx.start({opacity:0,left:-50});this.contentFxDelay=this.contentFx.start.delay(250,this.contentFx,[{opacity:0,top:228}])}});var WincodeOverlay=new Class({Implements:[Options,Events,Log],Extends:Overlay,options:{},form:null,window:null,normalHeader:null,normalBody:null,resultHeader:null,resultBody:null,hasResult:false,initialize:function(options){this.log("WincodeOverlay::initialize()");this.setOptions(options);this.parent("wincode",options)},reset:function(){this.log("WincodeOverlay::reset()");this.parent();if(this.hasResult){this.form.reset()}this.normalHeader.fx.set(1);this.normalBody.fx.set(1);this.resultHeader.fx.set(0);this.resultBody.fx.set(0);this.window.removeClass("loss");this.window.removeClass("win");this.hasResult=false},submit:function(){this.log("WincodeOverlay::submit()")},initilizeWindow:function(){this.log("WincodeOverlay::initilizeWindow()");this.parent();this.window=this.element.getElement(".window");this.normalHeader=this.element.getElement(".header .normal");this.normalBody=this.element.getElement(".body .normal");this.normalHeader.fx=new Fx.Tween(this.normalHeader,{duration:400,transition:Fx.Transitions.Quad.easeOut,property:"opacity",link:"cancel"});this.normalBody.fx=new Fx.Tween(this.normalBody,{duration:400,transition:Fx.Transitions.Quad.easeOut,property:"opacity",link:"cancel"});this.normalHeader.fx.set(1);this.normalBody.fx.set(1);this.resultHeader=this.element.getElement(".header .result");this.resultBody=this.element.getElement(".body .result");this.resultHeader.fx=new Fx.Tween(this.resultHeader,{duration:400,transition:Fx.Transitions.Quad.easeOut,property:"opacity",link:"cancel"});this.resultBody.fx=new Fx.Tween(this.resultBody,{duration:400,transition:Fx.Transitions.Quad.easeOut,property:"opacity",link:"cancel"});this.resultHeader.fx.set(0);this.resultBody.fx.set(0);this.resultHeader.show();this.resultBody.show();this.resultBody.getElement(".back").addEvent("click",function(event){event.preventDefault();this.close()}.bind(this));this.initForm()},initForm:function(){this.log("WincodeOverlay::initForm()");var requestUrl=new Application().getConfig().requestPath.wincode;var handlers={onRequest:function(){}.bind(this),onSuccess:function(response){if(response.success){this.log("succes!");this.showResult(response);this.application.setDealer(response.dealer);this.application.showIDversion(true)}else{this.log("error!");var error;var isGeneralError=false;switch(response.errorCode){case 101:error="De code die u ingevoerd heeft is geen geldige wincode";break;case 102:error="Deze wincode is al gebruikt. Een wincode is maar eenmaal te gebruiken.";break;default:error="Er is iets mis gegaan tijdens het verzenden van de gegevens. Probeer het nogmaals.";isGeneralError=true;break}this.log("error: "+error);var wincodeElement;this.form.elements.each(function(element){if(element.name=="wincode"){wincodeElement=element;wincodeElement.addValidation(Form.REGEX_FORCE_ERROR,error)}}.bind(this));this.form.onSubmit();if(isGeneralError){this.form.elements.each(function(element){element.showStatus(FormElement.VALID)}.bind(this))}if(wincodeElement){wincodeElement.removeValidation(Form.REGEX_FORCE_ERROR)}}}.bind(this),onFailure:function(xhr){this.log("onFailure");this.form.elements.each(function(element){element.showStatus(FormElement.ERROR)}.bind(this))}.bind(this)};var options={showLoader:true,loaderContainer:this.element.getElement(".wincode-form fieldset"),allowStatus:true,formErrorMessage:{allow:true,container:this.element.getElement(".form-message-container"),allowClose:false},formValidMessage:{allow:false}};var elementOptions={allowIcon:true};var form=new JsonForm(this.element.getElement(".wincode-form"),requestUrl,handlers,options);var wincodeElement=new FormElement(form,"wincode",elementOptions);wincodeElement.addValidation(Form.REGEX_WINCODE,"De wincode die u ingevoerd heeft is ongeldig");form.addElement(wincodeElement);var nameElement=new FormElement(form,"name",elementOptions);nameElement.addValidation(Form.REGEX_NAME,"Wilt u ook uw naam invullen?");form.addElement(nameElement);var emailElement=new FormElement(form,"email",elementOptions);emailElement.addValidation(Form.REGEX_EMAIL,"Vul ook een geldig e-mailadres in");form.addElement(emailElement);var phoneElement=new FormElement(form,"phone",elementOptions);phoneElement.addValidation(Form.REGEX_PHONE,"Vul een geldig telefoonnummer in");form.addElement(phoneElement);var submitButton=new FormSubmitButton(form,".button.submit-wincode",{});form.addButton(submitButton);this.element.getElement(".cancel").addEvent("click",function(event){event.preventDefault();this.close()}.bind(this));this.form=form},showResult:function(data){this.log("WincodeOverlay::showResult("+data+")");this.hasResult=true;var heading=this.element.getElement(".header .result h2");var title=this.element.getElement(".body .result h3");var message=this.element.getElement(".body .result p");if(data.win){this.window.addClass("win");heading.set("text","Gefeliciteerd met uw prijs!")}else{this.window.addClass("loss");heading.set("text","Helaas, u heeft niet gewonnen")}title.set("text",data.title);message.set("text",data.message);this.normalHeader.fx.start(0);this.normalBody.fx.start(0);this.resultHeader.fx.start.delay(100,this.resultHeader.fx,[1]);this.resultBody.fx.start.delay(100,this.resultBody.fx,[1])}});var OfferRequestOverlay=new Class({Implements:[Options,Events,Log],Extends:Overlay,options:{},application:null,form:null,window:null,stepsHeader:null,confirmation:null,hasResult:false,printerData:null,dealerHeader:null,step1:null,step2:null,initialize:function(options){this.log("OfferRequestOverlay::initialize()");this.setOptions(options);this.application=new Application();this.parent("offer-request",options)},reset:function(){this.log("OfferRequestOverlay::reset()");this.parent();if(this.hasResult){this.log("hasResult RESET");this.stepsHeader.fx.set({0:{opacity:1},1:{opacity:0}});this.step1.reset();this.step2.reset();this.confirmation.fx.set(0);this.hasResult=false}},initilizeWindow:function(){this.log("OfferRequestOverlay::initilizeWindow()");this.parent();this.window=this.element.getElement(".window");this.stepsHeader=this.window.getElement(".steps");this.stepsHeader.fx=new Fx.Elements(this.stepsHeader.getElements(".step"),{duration:500,transition:Fx.Transitions.Quad.easeOut,property:"opacity",link:"cancel"});this.stepsHeader.fx.set({0:{opacity:1},1:{opacity:0}});this.confirmation=this.window.getElement(".confirmation");this.confirmation.fx=new Fx.Tween(this.confirmation,{duration:500,transition:Fx.Transitions.Quad.easeOut,property:"opacity",link:"cancel"});this.confirmation.fx.set(0);this.confirmation.fx.addEvent("start",function(event){if(this.confirmation.get("opacity")==0){this.confirmation.show()}}.bind(this));this.confirmation.getElement(".back").addEvent("click",function(event){event.preventDefault();this.close()}.bind(this));this.dealerHeader=new Dealer(this.window.getElement(".dealer"));var stepWidth=this.window.getStyle("width").toInt();this.step1=new OfferRequestStep1(this.window.getElement(".body .step-1"),stepWidth);this.step2=new OfferRequestStep2(this.window.getElement(".body .step-2"),stepWidth);this.step1.addEvent("goToStep",function(step){this.goToStep(step)}.bind(this));this.step2.addEvent("close",function(event){this.close()}.bind(this));this.step2.addEvent("showConfirmation",function(dealerName){this.showConfirmation(dealerName)}.bind(this))},show:function(data,resultId){this.log("OfferRequestOverlay::show("+data+", "+resultId+")");this.printerData=data;this.setContent();this.step1.setPrinterData(this.printerData);this.step2.setPrinterData(this.printerData);this.step2.setResultId(resultId);this.setBodyHeight();this.parent()},setBodyHeight:function(){this.log("OfferRequestOverlay::setBodyHeight()");var selectedOptionsHeight=this.step1.element.getElement(".selected-options").measure(function(){return this.getSize().y});var searchHeight=this.step1.element.getElement(".search").measure(function(){return this.getSize().y});var errorHeight=40;this.log("searchHeight: "+searchHeight);var bodyHeight=selectedOptionsHeight+searchHeight+errorHeight;this.log("bodyHeight: "+bodyHeight);if(bodyHeight>425){this.element.getElement(".content .body").setStyle("height",bodyHeight)}},setContent:function(){this.log("OfferRequestOverlay::setContent()");this.log("this.dealerHeader: "+this.dealerHeader);var dealerData=this.application.getDealer();if(dealerData){this.dealerHeader.setData(dealerData);this.dealerHeader.show();this.stepsHeader.hide();this.step2.setDealerData(dealerData);this.step1.hide();this.step2.show()}else{this.dealerHeader.hide();this.stepsHeader.show();this.step1.show();this.step2.hide()}},goToStep:function(step){this.log("OfferRequestOverlay::goToStep("+step+")");if(step==1){this.stepsHeader.fx.start({0:{opacity:1},1:{opacity:0}});this.step1.show(true);this.step2.hide(true)}else{if(step==2){this.stepsHeader.fx.start({0:{opacity:0},1:{opacity:1}});var dealerData;if(this.step1.getDealerData()){dealerData=this.step1.getDealerData()}else{dealerData=this.application.getDealer()}this.step2.setDealerData(dealerData);this.step1.hide(true);this.step2.show(true)}}},showConfirmation:function(dealerName){this.log("OfferRequestOverlay::showConfirmation()");var name=this.confirmation.getElement(".name");name.set("text",dealerName);this.stepsHeader.fx.start({0:{opacity:0},1:{opacity:0}});this.confirmation.fx.start(1);this.step2.hide();this.hasResult=true}});var OfferRequestStep1=new Class({Implements:[Options,Events,Log],options:{},application:null,element:null,fx:null,width:null,dealerData:null,dealerFinder:null,initialize:function(element,width){this.log("OfferRequestStep1::initialize("+element+")");this.element=element;this.width=width;this.application=new Application();this.element.fx=new Fx.Tween(this.element,{duration:500,transition:Fx.Transitions.Quad.easeOut,property:"left",link:"cancel"});this.element.fx.set(0);this.element.fx.addEvent("start",function(event){if(this.element.get("left")<=0){this.element.show()}}.bind(this));this.element.fx.addEvent("complete",function(event){if(this.element.get("left")==0){this.element.hide()}}.bind(this));this.submitButton=this.element.getElement(".next");this.submitButton.set("opacity",0);this.element.getElement(".next").addEvent("click",function(event){event.preventDefault();this.fireEvent("goToStep",[2])}.bind(this));this.dealerFinder=new DealerFinder(this.element,{offerRequestVersion:true});this.dealerFinder.addEvent("success",function(event){this.submitButton.fade("in")}.bind(this));this.dealerFinder.addEvent("selectItem",function(data){this.setDealerData(data)}.bind(this))},reset:function(){this.log("OfferRequestStep1::reset()");this.dealerFinder.reset();this.submitButton.set("opacity",0);this.element.fx.set(0);this.dealerData=null},show:function(animate){this.log("OfferRequestStep1::show("+animate+")");if(animate){this.element.fx.start(0)}else{this.element.show();this.element.fx.set(0)}},hide:function(animate){this.log("OfferRequestStep1::hide("+animate+")");if(animate){this.element.fx.start(-this.width)}else{this.element.fx.set(-this.width);this.element.hide()}},setPrinterData:function(data){this.log("OfferRequestStep1::setPrinterData("+data+")");this.printerData=data;var printerList=this.element.getElement(".selected-options .printers ul");printerList.empty();this.printerData.each(function(printer,index){var li=new Element("li",{text:printer.name});printerList.adopt(li)}.bind(this))},setDealerData:function(data){this.log("OfferRequestStep1::setDealerData("+data+")");this.dealerData=data},getDealerData:function(){this.log("OfferRequestStep1::getDealerData()");return this.dealerData}});var OfferRequestStep2=new Class({Implements:[Options,Events,Log],options:{},application:null,element:null,fx:null,form:null,slider:null,width:null,contractDuration:3,initialize:function(element,width){this.log("OfferRequestStep2::initialize("+element+")");this.element=element;this.width=width;this.application=new Application();this.element.fx=new Fx.Tween(this.element,{duration:500,transition:Fx.Transitions.Quad.easeOut,property:"left",link:"cancel"});this.element.fadeFx=new Fx.Tween(this.element,{duration:500,transition:Fx.Transitions.Quad.easeOut,property:"opacity",link:"cancel"});this.element.fx.set(width);this.element.fx.addEvent("start",function(event){if(this.element.get("left")<=this.width){this.element.show()}}.bind(this));this.element.fx.addEvent("complete",function(event){if(this.element.get("left")==this.width){this.element.hide()}}.bind(this));this.initForm()},reset:function(){this.log("OfferRequestStep2::reset()");this.form.reset();this.slider.set(this.contractDuration);this.element.fx.set(this.width);this.element.fadeFx.set(1)},initForm:function(){this.log("OfferRequestStep2::initForm()");var requestUrl=new Application().getConfig().requestPath.offerRequest;var handlers={onRequest:function(){}.bind(this),onSuccess:function(response){if(response.success){this.log("succes!");this.fireEvent("showConfirmation",this.dealerData.name)}else{this.log("error!");var error;var isGeneralError=false;switch(response.errorCode){default:error="Er is iets mis gegaan tijdens het verzenden van de gegevens. Probeer het nogmaals.";isGeneralError=true;break}this.log("error: "+error);var companyElement;this.form.elements.each(function(element){if(element.name=="company"){companyElement=element;companyElement.addValidation(Form.REGEX_FORCE_ERROR,error)}}.bind(this));this.form.onSubmit();if(isGeneralError){this.form.elements.each(function(element){element.showStatus(FormElement.VALID)}.bind(this))}if(companyElement){companyElement.removeValidation(Form.REGEX_FORCE_ERROR)}}}.bind(this),onFailure:function(xhr){this.log("onFailure");this.form.elements.each(function(element){element.showStatus(FormElement.ERROR)}.bind(this))}.bind(this)};var options={showLoader:true,loaderContainer:this.element,allowStatus:true,allowIcon:true,formErrorMessage:{allow:true,container:this.element.getElement(".form-message-container"),allowClose:false},formValidMessage:{allow:false}};var elementOptions={allowIcon:true};var form=new JsonForm(this.element.getElement(".offer-request-form"),requestUrl,handlers,options);var companyElement=new FormElement(form,"company",elementOptions);companyElement.addValidation(Form.REGEX_NAME,"Vul de naam van uw bedrijf in");form.addElement(companyElement);var nameElement=new FormElement(form,"name",elementOptions);nameElement.addValidation(Form.REGEX_NAME,"Met wie mogen wij contact opnemen?");form.addElement(nameElement);var emailElement=new FormElement(form,"email",elementOptions);emailElement.addValidation(Form.REGEX_EMAIL,"Vul ook een geldig e-mailadres in");form.addElement(emailElement);var phoneElement=new FormElement(form,"phone",elementOptions);phoneElement.addValidation(Form.REGEX_PHONE,"Vul een geldig telefoonnummer in");form.addElement(phoneElement);var commentElement=new FormElement(form,"comment",{optional:true});form.addElement(commentElement);var submitButton=new FormSubmitButton(form,".submit-offer-request",{});form.addButton(submitButton);this.element.getElement(".cancel").addEvent("click",function(event){event.preventDefault();this.close()}.bind(this));this.form=form;var labels=this.element.getElement(".slider-container .labels").getElements("a");var sliderElement=this.element.getElement(".slider");this.slider=new Slider(sliderElement,sliderElement.getElement(".knob"),{range:[3,5],steps:2,initialStep:3,offset:0,snap:true,wheel:true,onChange:function(value){this.log("change value: "+value);var label=this.element.getElement(".slider-container .labels").getElement(".year-"+value);labels.removeClass("selected");label.addClass("selected")}.bind(this),onComplete:function(value){this.log("complete value: "+value);this.form.addValue("contractDuration",value)}.bind(this)});labels.each(function(label,index){label.addEvent("click",function(event){event.preventDefault();var value=index+3;this.slider.set(value)}.bind(this))}.bind(this));this.slider.set(this.contractDuration)},show:function(animate){this.log("OfferRequestStep2::show("+animate+")");if(animate){this.element.fx.start(0)}else{this.element.show();this.element.fx.set(0)}},hide:function(animate){this.log("OfferRequestStep2::hide("+animate+")");if(animate){this.element.fadeFx.start(0)}else{this.element.fx.set(this.width);this.element.hide()}},setPrinterData:function(data){this.log("OfferRequestStep2::setPrinterData("+data+")");this.printerData=data;var printerList=this.element.getElement(".selected-options .printers ul");printerList.empty();var printerIds=[];this.printerData.each(function(printer,index){printerIds.include(printer.id);var li=new Element("li",{text:printer.name});printerList.adopt(li)}.bind(this));this.form.addValue("products",printerIds)},setDealerData:function(data){this.log("OfferRequestStep2::setDealerData("+data+")");this.dealerData=data;var dealerList=this.element.getElement(".selected-options .dealer ul");dealerList.empty();var li=new Element("li",{text:this.dealerData.name});dealerList.adopt(li);this.form.addValue("dealerId",this.dealerData.id)},setResultId:function(resultId){this.log("OfferRequestStep2::setResultId("+resultId+")");this.resultId=resultId;this.form.addValue("resultId",resultId)}});var Form=new Class({Implements:[Options,Events,Log],options:{showLoader:true,loaderContainer:null,allowIcon:false,allowStatus:true,allowFileUpload:false,formErrorMessage:{allow:true,container:null,allowClose:true,heading:null},formValidMessage:{allow:false,container:null,allowClose:false,heading:null}},element:null,elements:[],submitButtons:[],resetButtons:[],cancelButtons:[],errors:[],formErrorMessage:null,formValidMessage:null,initialize:function(element,options){this.log("Form::initialize("+element+", "+options+")");this.setOptions(options);this.element=element;new Fx.Reveal(this.element);if(this.options.formErrorMessage.allow){var container=this.element;if($defined(this.options.formErrorMessage.container)){container=this.options.formErrorMessage.container}this.formErrorMessage=new FormErrorMessage(this,container,this.options.formErrorMessage)}if(this.options.formValidMessage.allow){var container=this.element;if($defined(this.options.formValidMessage.container)){container=this.options.formValidMessage.container}this.formValidMessage=new FormValidMessage(this,container,this.options.formValidMessage)}this.element.addEvent("submit",function(event){event.preventDefault();this.log("SUBMIT");this.onSubmit()}.bind(this))},reset:function(){this.log("Form::reset()");this.errors=[];this.elements.each(function(element){element.reset()});this.submitButtons.each(function(element){element.reset()});this.resetButtons.each(function(element){element.reset()});this.cancelButtons.each(function(element){element.reset()});if(this.formErrorMessage){this.formErrorMessage.reset()}this.element.reset()},show:function(){this.log("Form::show()");this.element.reveal()},hide:function(){this.log("Form::hide()");this.element.dissolve()},onSubmit:function(){this.log("Form::onSubmit()");this.fireEvent("onSubmit");var validate=this.validate();this.showStatus(validate);if(validate===true){if(this.options.formValidMessage.allow){this.formValidMessage.hide()}this.disable();this.showLoadState();this.submit()}},submit:function(){this.log("Form::submit()");this.element.submit()},cancel:function(){this.log("Form::cancel()")},validate:function(){this.log("Form::validate()");var errors=new Hash();var returnValue=true;this.elements.each(function(element){var validate=element.validate();if(validate!==true){errors[element.name]={element:element,message:validate};returnValue=errors}},this);return returnValue},enable:function(){this.log("Form::enable()");this.submitButtons.each(function(element){element.enable()});this.resetButtons.each(function(element){element.enable()})},disable:function(){this.log("Form::disable()");this.submitButtons.each(function(element){element.disable()});this.resetButtons.each(function(element){element.disable()})},addElement:function(element){this.log("Form::addElement("+element+")");this.elements.include(element)},addButton:function(button,type){this.log("Form::addButton("+button+", "+type+")");switch(type){case"reset":this.resetButtons.include(button);break;case"cancel":this.cancelButtons.include(button);break;default:this.submitButtons.include(button);break}},showLoadState:function(){this.log("Form::showLoadState()");if(this.options.showLoader){this.log("this.options.loaderContainer: "+this.options.loaderContainer);if($chk(this.options.loaderContainer)){if(!$chk(this.options.loaderContainer.getElement("div.loader"))){var loader=new Element("div",{"class":"loader"});this.options.loaderContainer.adopt(loader)}}this.submitButtons.each(function(submitButton){submitButton.showLoadState()},this)}},hideLoadState:function(){this.log("Form::hideLoadState()");if(this.options.showLoader){if($chk(this.options.loaderContainer.getElement("div.loader"))){$(this.options.loaderContainer).getElement("div.loader").dispose()}this.submitButtons.each(function(submitButton){submitButton.hideLoadState()},this)}},showStatus:function(validate){this.log("Form::showStatus("+validate+")");if(this.options.formErrorMessage.allow){if(validate===true){this.formErrorMessage.hide()}else{if(validate.getLength()>0){this.elements.each(function(element,position){if($defined(validate[element.name])){var error=validate[element.name];if($defined(this.errors[element.name])){this.formErrorMessage.removeMessage(element.name)}this.formErrorMessage.addMessage(element.name,position,error.message)}else{if($defined(this.errors[element.name])){this.formErrorMessage.removeMessage(element.name)}}},this);this.formErrorMessage.show();this.errors=validate}}}this.elements.each(function(element){var elementError=false;if(validate!==true){validate.each(function(error){if(error.element==element){elementError=true}},this)}if(this.options.allowStatus){if(!validate){element.showStatus(FormElement.NORMAL)}else{if(elementError){element.showStatus(FormElement.ERROR)}else{element.showStatus(FormElement.VALID)}}}},this)}});Form.REGEX_VARCHAR=/^([a-zA-Z0-9\ ]{2,255})+$/;Form.REGEX_TEXT=/^([\W\w\s]{2,1000})+$/;Form.REGEX_NAME=/^([\W\w\s]{2,50})+$/;Form.REGEX_EMAIL=/^([a-zA-Z0-9_\.\-\+%])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;Form.REGEX_PHONE=/(^\+[0-9]{2}|^\+[0-9]{2}\(0\)|^\(\+[0-9]{2}\)\(0\)|^00[0-9]{2}|^0)([0-9]{9,11}$|[0-9\-\s]{10,15}$)/;Form.REGEX_URL=/(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;Form.REGEX_POSTAL=/^([0-9]{4}[\ ]{0,1}[a-zA-Z]{2})+$/;Form.REGEX_HOUSE_NUMBER=/^([\w\-\ ]{1,10})+$/;Form.REGEX_CITY=/^([\W\w]{2,40})+$/;Form.REGEX_IMAGE=/^(.*\.(jpg|png|gif))+$/i;Form.REGEX_WINCODE=/^([0-9]{7})+$/;Form.REGEX_FORCE_ERROR=/^([a-z]{0})+$/i;var JsonForm=new Class({Implements:[Options,Events,Log],Extends:Form,url:null,handlers:null,request:null,values:[],initialize:function(element,url,handlers,options){this.log("JsonForm::initialize("+element+", "+options+")");this.parent(element,options);this.url=url;this.handlers=handlers},reset:function(){this.log("Form::reset()");this.parent();this.values=[]},submit:function(){this.log("JsonForm::submit()");var paramsString="{";this.elements.each(function(element,index){var name=element.name;var input;switch(element.element.type){case"checkbox":input=element.element.checked;break;default:input=element.element.value;break}input=JSON.encode(input);var param='"'+name+'": '+input;paramsString+=param;if(index<this.elements.length-1){paramsString+=","}this.log("paramsString: "+paramsString)},this);if(this.values.length>0){paramsString+=","}this.values.each(function(element,index){var value=JSON.encode(element.value);var param='"'+element.key+'": '+value;paramsString+=param;if(index<this.values.length-1){paramsString+=","}this.log("paramsString: "+paramsString)},this);paramsString+="}";this.log("final paramsString: "+paramsString);var params=JSON.decode(paramsString);this.request=new Request.JSON({url:this.url,onRequest:this.onRequest.bind(this),onSuccess:this.onSuccess.bind(this),onFailure:this.onFailure.bind(this),onException:this.onException.bind(this)});this.request.send("JSONData="+JSON.encode(params))},cancel:function(){this.log("JsonForm::cancel()");if($defined(this.request)){this.request.cancel();this.enable();this.hideLoadState()}},addValue:function(key,value){this.log("JsonForm::addValue("+key+", "+value+")");var keyIndex=false;this.values.each(function(element,index){if(element.key==key){keyIndex=index}}.bind(this));if(key&&value){var element={key:key,value:value};if(keyIndex!==false){this.log("update");this.values[keyIndex]=element}else{this.log("add");this.values.include(element)}}this.log("this.values.length: "+this.values.length)},onRequest:function(){this.log("JsonForm::onRequest()");if($defined(this.handlers.onRequest)){this.handlers.onRequest.attempt([],this)}},onSuccess:function(jsonObject){this.log("JsonForm::onSuccess("+jsonObject+")");this.hideLoadState();this.enable();if($defined(this.handlers.onSuccess)){this.handlers.onSuccess.attempt([jsonObject],this)}},onFailure:function(xhr){this.log("JsonForm::onFailure("+xhr+")");this.cancel();if($defined(this.formErrorMessage)){this.formErrorMessage.show()}if($defined(this.handlers.onFailure)){this.handlers.onRequest.attempt([xhr],this)}},onException:function(headerName,value){this.log("JsonForm::onException("+headerName+", "+value+")");this.cancel();if($defined(this.formErrorMessage)){this.formErrorMessage.show()}if($defined(this.handlers.onException)){this.handlers.onException.attempt([headerName,value],this)}}});var FormElement=new Class({Implements:[Options,Events,Log],options:{autoValidate:false,allowIcon:false,allowStatus:true,hintText:null,optional:false},form:null,name:null,element:null,label:null,icon:null,hint:null,validations:[],initialize:function(form,name,options){this.log("FormElement::initialize("+form+", "+name+", "+options+")");this.setOptions(options);this.form=form;this.name=name;this.element=this.form.element.getElement("[name="+this.name+"]");if($defined(this.element.getParent().getElement("label"))){this.label=this.element.getParent().getElement("label")}if(this.options.allowIcon){this.icon=new FormElementIcon(this.form,this.element.getParent())}if(this.options.hintText){this.hint=new FormElementHint(this.element,this.element.getParent(),this.options.hintText)}this.element.addEvent("focus",function(event){this.hideStatus();this.element.addEvent("keydown",function(event){if(event.key=="enter"){this.form.element.fireEvent("submit",[event])}}.bind(this))}.bind(this));this.element.addEvent("blur",function(event){this.element.removeEvents("keydown")}.bind(this));this.element.addEvent("click",function(event){this.hideStatus()}.bind(this))},reset:function(){this.log("FormElement::reset()");this.enable();this.hideStatus();if($defined(this.icon)){this.icon.reset()}if($defined(this.hint)){this.hint.reset()}},validate:function(){this.log("FormElement::validate()");var input=this.element.value;var returnValue=true;if(!this.options.optional||(this.options.optional&&input.length>0)){this.validations.each(function(validation){if(returnValue===true){if(!input.test(validation.regexp)){returnValue=validation.message}}},this)}return returnValue},disable:function(){this.log("FormElement::disable()");this.element.set("disabled",true);this.element.addClass("disabled");if($defined(this.label)){this.label.addClass("disabled")}if($defined(this.icon)){this.icon.disable()}if($defined(this.hint)){this.hint.disable()}},enable:function(){this.log("FormElement::enable()");this.element.set("disabled",false);this.element.removeClass("disabled");if($defined(this.label)){this.label.removeClass("disabled")}if($defined(this.icon)){this.icon.enable()}if($defined(this.hint)){this.hint.enable()}},addValidation:function(regexp,message){this.log("FormElement::addValidation("+regexp+", "+message+")");var validation={regexp:regexp,message:message};this.validations.include(validation);this.log("this.validations.lenght: "+this.validations.length)},removeValidation:function(regexp){this.log("FormElement::removeValidation("+regexp+")");this.validations.each(function(validation){if(validation.regexp==regexp){this.validations.erase(validation)}}.bind(this));this.log("this.validations.lenght: "+this.validations.length)},removeValidations:function(){this.log("FormElement::removeValidations()");this.validations=[]},showStatus:function(status){this.log("FormElement::showStatus("+status+")");if(this.options.allowStatus){this.hideStatus();var statusClass=FormElement.STATUSES[status];this.element.addClass(statusClass);if(this.label){this.label.addClass(statusClass)}if(this.hint){this.hint.showStatus(statusClass)}}if(this.options.allowIcon){this.icon.showStatus(status)}},hideStatus:function(){this.log("FormElement::hideStatus()");if(this.options.allowStatus){FormElement.STATUSES.each(function(status){if(this.element.hasClass(status)){this.element.removeClass(status);if(this.label){this.label.removeClass(status)}if(this.hint){this.hint.hideStatus()}}},this)}if(this.options.allowIcon){this.icon.hideStatus()}}});FormElement.NORMAL=0;FormElement.VALID=1;FormElement.WARNING=2;FormElement.ERROR=3;FormElement.STATUSES=[];FormElement.STATUSES[FormElement.VALID]="valid";FormElement.STATUSES[FormElement.WARNING]="warning";FormElement.STATUSES[FormElement.ERROR]="error";var FormElementIcon=new Class({Implements:[Options,Events,Log],options:{},form:null,element:null,container:null,initialize:function(form,container,options){this.log("FormElementIcon::initialize("+form+", "+container+", "+options+")");this.setOptions(options);this.form=form;this.container=container;this.element=this.build()},reset:function(){this.log("FormElementIcon::reset()");this.enable();this.hideStatus()},build:function(){this.log("FormElementIcon::build()");var element=new Element("div",{"class":"icon"});this.container.adopt(element);return element},show:function(){this.log("FormElementIcon::show()");this.element.show()},hide:function(){this.log("FormElementIcon::hide()");this.element.hide()},disable:function(){this.log("FormElementIcon::disable()");this.element.set("disabled",true);this.element.addClass("disabled")},enable:function(){this.log("FormElementIcon::enable()");this.element.set("disabled",false);this.element.removeClass("disabled")},showStatus:function(status){this.log("FormElementIcon::showStatus("+status+")");this.log("FormElement.STATUSES: "+FormElement.STATUSES);this.hideStatus();var status=FormElement.STATUSES[status];this.element.addClass(status)},hideStatus:function(){this.log("FormElementIcon::hideStatus()");FormElement.STATUSES.each(function(status){if(this.element.hasClass(status)){this.element.removeClass(status)}},this)}});var FormButton=new Class({Implements:[Options,Events,Log],options:{showLoader:false},form:null,element:null,initialize:function(form,selector,options){this.log("FormButton::initialize("+form+", "+selector+", "+options+")");this.setOptions(options);this.form=form;this.element=this.form.element.getElement(selector);this.enable()},reset:function(){this.log("FormButton::reset()");this.enable();this.hideLoadState()},disable:function(){this.log("FormButton::disable()");this.element.set("disabled",true);this.element.addClass("disabled");this.removeEvents()},enable:function(){this.log("FormButton::enable()");this.element.set("disabled",false);this.element.removeClass("disabled");this.addEvents()},addEvents:function(){this.log("FormButton::addEvents()");this.removeEvents()},removeEvents:function(){this.log("FormButton::removeEvents()");this.element.removeEvents("click")},showLoadState:function(){this.log("FormButton::showLoadState()");if(this.options.showLoader){if(!$chk(this.element.getElement("div.loader"))){var loader=new Element("div",{"class":"loader"});this.element.adopt(loader)}}},hideLoadState:function(){this.log("FormButton::hideLoadState()");if(this.options.showLoader){if($chk(this.element.getElement("div.loader"))){this.element.getElement("div.loader").dispose()}}}});var FormSubmitButton=new Class({Implements:[Options,Events,Log],Extends:FormButton,options:{},initialize:function(form,selector,options){this.log("FormSubmitButton::initialize("+form+", "+selector+", "+options+")");this.parent(form,selector,options)},addEvents:function(){this.log("FormSubmitButton::addEvents()");this.parent();this.element.addEvent("click",function(event){event.preventDefault();this.form.onSubmit()}.bind(this))}});var FormMessage=new Class({Implements:[Options,Events,Log],options:{allowClose:true,heading:null},form:null,element:null,container:null,isShown:false,isAnimating:false,initialize:function(form,container,options){this.log("FormMessage::initialize("+form+", "+container+", "+options+")");this.setOptions(options);this.form=form;this.container=container;this.container.show();this.container.setStyle("opacity",0);this.build()},reset:function(){this.log("FormMessage::reset()");this.container.show();this.container.setStyle("opacity",0);this.clear();this.enable()},build:function(){this.log("FormMessage::build()")},show:function(){this.log("FormMessage::show()");this.log("this.isShown: "+this.isShown);this.container.fade("in");if(!this.isShown||(this.isShown&&this.isAnimating)){this.log("reveal: "+this.element);this.element.fx.reveal()}},hide:function(){this.log("FormMessage::hide()");if(this.isShown){this.container.fade("out");this.element.fx.dissolve()}},clear:function(){this.log("FormMessage::clear()")},disable:function(){this.log("FormMessage::disable()");this.element.addClass("disabled")},enable:function(){this.log("FormMessage::enable()");this.element.removeClass("disabled")}});FormMessage.NORMAL=0;FormMessage.VALID=1;FormMessage.WARNING=2;FormMessage.ERROR=3;FormMessage.STATUSES=[];FormMessage.STATUSES[FormMessage.VALID]="valid";FormMessage.STATUSES[FormMessage.WARNING]="warning";FormMessage.STATUSES[FormMessage.ERROR]="error";var FormValidMessage=new Class({Implements:[Options,Events,Log],Extends:FormMessage,options:{allowClose:false,heading:null,text:null},initialize:function(form,container,options){this.log("FormValidMessage::initialize("+form+", "+container+", "+options+")");this.setOptions(options);this.parent(form,container,options)},build:function(){this.log("FormValidMessage::build()");if(!$defined(this.element)){var element=new Element("div",{"class":"form-message"});element.addClass("valid");var closeButton=new Element("a",{href:"#","class":"close-button",events:{click:function(event){event.preventDefault();this.hide()}.bind(this)}});var heading=new Element("h4",{text:this.options.heading});var text=new Element("p",{html:this.options.text});if(this.options.allowClose){element.adopt(closeButton)}if(this.options.heading){element.adopt(heading)}if(this.options.text){element.adopt(text)}element.inject(this.container,"top");this.elementFx=new Fx.Tween(element,{duration:250,transition:"linear",link:"cancel"});element.set("opacity",0);this.element=element}}});var FormErrorMessage=new Class({Implements:[Options,Events,Log],Extends:FormMessage,options:{allowClose:true,heading:null},initialize:function(form,container,options){this.log("FormErrorMessage::initialize("+form+", "+container+", "+options+")");this.setOptions(options);this.parent(form,container,options)},build:function(){this.log("FormErrorMessage::build()");if(!$defined(this.element)){var element=new Element("div",{"class":"form-message"});element.addClass("error");var closeButton=new Element("a",{href:"#","class":"close-button",events:{click:function(event){event.preventDefault();this.hide()}.bind(this)}});var heading=new Element("h4",{text:this.options.heading});var text=new Element("p",{text:this.options.text});if(this.options.allowClose){element.adopt(closeButton)}if(this.options.heading){element.adopt(heading)}if(this.options.text){element.adopt(text)}element.inject(this.container,"top");this.element=element;this.element.fx=new Fx.Reveal(this.element,{duration:500,link:"cancel"});this.element.fx.addEvent("show",function(){this.isShown=true}.bind(this));this.element.fx.addEvent("hide",function(){this.isShown=false}.bind(this));this.element.fx.addEvent("start",function(){this.isAnimating=true}.bind(this));this.element.fx.addEvent("complete",function(){this.isAnimating=false}.bind(this));this.element.hide()}},clear:function(){this.log("FormErrorMessage::clear()");if($defined(this.element.getElement("ul"))){this.element.getElement("ul").empty()}},addMessage:function(name,position,message){this.log("FormErrorMessage::addMessage("+name+", "+position+", "+message+")");var messages;if($defined(this.element.getElement("ul"))){messages=this.element.getElement("ul")}else{messages=new Element("ul");this.element.adopt(messages)}var message=new Element("li",{"class":name,text:message});message.store("position",position);var elements=messages.getElements("li");if(elements.length>0){var lowestPosition=elements.length;var injectElement=null;elements.each(function(element){var messagePosition=message.retrieve("position");var elementPosition=element.retrieve("position");if(messagePosition>elementPosition){if(elementPosition<lowestPosition){lowestPosition=messagePosition;injectElement=element}}},this);if($defined(injectElement)){message.inject(injectElement,"after")}else{injectElement=messages.getElement("li:first-child");message.inject(injectElement,"before")}}else{messages.adopt(message)}if(this.isShown){var height=message.getStyle("height");message.setStyle("height",0);message.setStyle("opacity",0);var fadeFx=new Fx.Tween(message,{duration:500,transition:"linear"});var slideFx=new Fx.Tween(message,{duration:250,transition:"linear",onComplete:function(){fadeFx.start("opacity",1)}.bind(this)});slideFx.start("height",height)}},removeMessage:function(name){this.log("FormErrorMessage::removeMessage("+name+")");if($defined(this.element.getElement("ul"))){var messages=this.element.getElement("ul");var message=messages.getElement("."+name);if(this.isShown){message.setStyle("opacity",1);var fadeFx=new Fx.Tween(message,{duration:250,transition:"linear",onComplete:function(){slideFx.start("height",0)}.bind(this)});var slideFx=new Fx.Tween(message,{duration:250,transition:"linear",onComplete:function(){message.dispose()}.bind(this)});fadeFx.start("opacity",0)}else{message.dispose()}}},hasMessage:function(name){this.log("FormErrorMessage::hasMessage("+name+")");var hasMessage=false;if(this.element.getElement("ul")){var messages=this.element.getElement("ul");var message=messages.getElement("."+name);if(message){hasMessage=true}}return hasMessage}});var PrinterSelector=new Class({Implements:[Events,Log,Class.Occlude],property:"PrinterSelector",element:null,container:null,loader:null,configPath:null,questions:null,config:null,dealer:null,jsonRequest:null,resultId:null,suggestions:null,selectedSuggestions:[],query:null,configDataLoaded:false,imagesLoaded:false,search:null,suggestionManager:null,paneManager:null,initialize:function(container,configPath){var element=$(document.body);this.setElement(element);this.setContainer(container);if(this.occlude()){return this.occluded}this.log("PrinterSelector::initialize("+container+", "+configPath+")");this.configPath=configPath;this.load()},reset:function(){this.log("PrinterSelector::reset()");this.jsonRequest.cancel();this.search.reset();this.suggestionManager.reset();this.paneManager.reset()},load:function(){this.log("PrinterSelector::load()");this.loader=new Element("div",{"class":"loader",text:"Bezig met het inladen van de vragen"});this.container.getElement(".body").adopt(this.loader);this.loader.fx=new Fx.Tween(this.loader,{duration:250,transition:Fx.Transitions.Quad.easeOut,property:"opacity",link:"cancel"});this.loader.fx.set(0);this.showLoadState();var requestData={url:this.configPath,params:{},onRequest:function(){this.log("PrinterSelector::onRequest()")}.bind(this),onSuccess:function(response){this.log("PrinterSelector::onSuccess("+response+")");if(response.success){this.configData=response;this.configDataLoaded=true;this.loadApplicationImages(response.applicationImages)}}.bind(this),onFailure:function(xhr){this.log("PrinterSelector::onFailure("+xhr+")")}.bind(this),onException:function(headerName,value){this.log("PrinterSelector::onExeption("+headerName+", "+value+")")}.bind(this)};this.request(requestData)},loadApplicationImages:function(images){this.log("PrinterSelector::loadApplicationImages("+images+")");if(images&&images.length>0){var loadImages=Asset.images(images,{onProgress:function(counter,index,source){this.log("onProgress("+counter+", "+index+", "+source+")")}.bind(this),onComplete:function(){this.log("onComplete()");this.hideLoadState();this.build()}.bind(this),onError:function(counter,index,source){}.bind(this)})}else{this.hideLoadState();this.build()}},build:function(){this.log("PrinterSelector::build()");this.setQuestions(this.configData.questions);this.setConfig(this.configData.config);this.search=new Search(this.getQuestions());this.suggestionManager=new SuggestionManager();this.paneManager=new PaneManager();this.search.build();this.suggestionManager.build();this.paneManager.build();this.search.show();this.suggestionManager.show();this.search.addEvent("restart",this.reset.bind(this))},request:function(requestData){this.log("PrinterSelector::request("+requestData+")");this.jsonRequest=new Request.JSON({url:requestData.url,onRequest:requestData.onRequest,onSuccess:requestData.onSuccess,onFailure:requestData.onFailure,onException:requestData.onException});this.log("JSON.encode(requestData.params): "+JSON.encode(requestData.params));this.jsonRequest.send("JSONData="+JSON.encode(requestData.params))},requestOffer:function(suggestionId){this.log("PrinterSelector::requestOffer("+suggestionId+")");var suggestions;if(suggestionId!=null){suggestions=[this.getSuggestionDataById(suggestionId)]}else{suggestions=this.getSelectedSuggestions()}this.log("requestOffer suggestions.length: "+suggestions.length);var resultId=this.getResultId();this.fireEvent("requestOffer",[suggestions,resultId])},showLoadState:function(){this.loader.fx.start(1)},hideLoadState:function(){this.loader.fx.start(0)},getElement:function(){this.log("PrinterSelector::getElement()");return this.element},setElement:function(element){this.log("PrinterSelector::setElement("+element+")");this.element=element},getContainer:function(){return this.container},setContainer:function(container){this.log("PrinterSelector::setContainer("+container+")");this.container=container},getQuestions:function(){this.log("PrinterSelector::getQuestions()");return this.questions},setQuestions:function(questions){this.log("PrinterSelector::setQuestions("+questions+")");this.questions=questions},getConfig:function(){this.log("PrinterSelector::getConfig()");return this.config},setConfig:function(config){this.log("PrinterSelector::setConfig("+config+")");this.config=config},createPrintLink:function(show,id){this.log("PrinterSelector::createPrintLink("+show+", "+id+")");var resultId=this.getResultId();this.log("resultId: "+resultId);if(resultId){var printPath=this.getConfig().requestPath.print+"?resultId="+resultId;var link;switch(show){case"one":link=printPath+"&id="+id;break;case"all":link=printPath+"&showAll=true";break;default:link=printPath;break}}else{link="#"}this.log("link: "+link);return link},getResultId:function(){this.log("PrinterSelector::getResultId()");return this.resultId},setResultId:function(resultId){this.log("PrinterSelector::setResultId("+resultId+")");this.resultId=resultId},getSuggestionData:function(){this.log("PrinterSelector::getSuggestionData()");return this.suggestions},setSuggestionData:function(suggestions){this.log("PrinterSelector::setSuggestionData("+suggestions+")");this.suggestions=suggestions},getQuery:function(){this.log("PrinterSelector::getQuery()");return this.query},setQuery:function(query){this.log("PrinterSelector::setQuery("+query+")");this.query=query},getSuggestionPositionById:function(id){this.log("PrinterSelector::getSuggestionPositionById("+id+")");var position=null;this.getSuggestionData().each(function(suggestion,index){if(suggestion.id==id){position=index}},this);return position},getSelectedSuggestions:function(){this.log("PrinterSelector::getSelectedSuggestions()");return this.selectedSuggestions},addSelectedSuggestion:function(id){this.log("PrinterSelector::addSelectedSuggestion("+id+")");var itemData=this.getSuggestionDataById(id);this.selectedSuggestions.include(itemData)},removeSelectedSuggestion:function(id){this.log("PrinterSelector::removeSelectedSuggestion("+id+")");var itemData=this.getSuggestionDataById(id);this.selectedSuggestions.erase(itemData)},clearSelectedSuggestions:function(){this.log("PrinterSelector::clearSelectedSuggestions()");this.selectedSuggestions.empty()},getSuggestionDataById:function(id){this.log("PrinterSelector::getSuggestionPositionById("+id+")");var data=null;this.getSuggestionData().each(function(suggestion,index){if(suggestion.id==id){data=suggestion}},this);return data}});var Search=new Class({Implements:[Events,Log],printerSelector:null,element:null,data:[],questions:[],query:[],currentQuery:[],startQuestionIndex:0,activeQuestionIndex:null,preventUpdate:false,loader:null,progressContainer:null,progressFx:null,restartButton:null,doneMessage:null,doneMessageFx:null,optionInfo:null,optionInfoFx:null,initialize:function(data){this.log("Search::initialize("+data+")");this.printerSelector=new PrinterSelector();this.data=data;this.element=this.printerSelector.getContainer().getElementById("query");this.log("this.data.length: "+this.data.length);this.log("typeof(this.data): "+typeof(this.data));Broadcaster.addEvent("updateSearch",this.update.bind(this));Broadcaster.addEvent("nextQuestion",this.nextQuestion.bind(this));Broadcaster.addEvent("submitQuestion",this.submit.bind(this));Broadcaster.addEvent("enable",this.enable.bind(this));Broadcaster.addEvent("disable",this.disable.bind(this));Broadcaster.addEvent("submitSearch",this.onSubmitSearch.bind(this))},build:function(){this.log("Search::build()");this.loader=new Element("div",{"class":"loader"});this.element.getElement(".header").adopt(this.loader);this.loader.fx=new Fx.Tween(this.loader,{duration:250,transition:Fx.Transitions.Quad.easeOut,property:"opacity",link:"cancel"});this.loader.fx.set(0);this.progressContainer=new Element("div",{"class":"progress-container"});var progress=new Element("div",{"class":"progress"});var bar=new Element("div",{"class":"bar"});var text=new Element("div",{"class":"text",text:"Beantwoorde vragen"});var amount=new Element("span",{"class":"amount",html:'<span class="answered"></span> / <span class="total"></span>'});text.adopt(amount);progress.adopt(bar);progress.adopt(text);this.restartButton=new Element("a",{href:"#","class":"restart"});this.progressContainer.adopt(progress);this.progressContainer.adopt(this.restartButton);this.element.getElement(".header").adopt(this.progressContainer);this.progressContainer.fx=new Fx.Tween(this.progressContainer,{duration:250,transition:Fx.Transitions.Quad.easeOut,property:"opacity",link:"cancel"});this.progressContainer.fx.set(0);this.progressFx=new Fx.Tween(bar,{duration:500,transition:Fx.Transitions.Quad.easeOut,unit:"%",property:"width",link:"cancel"});this.restartButton.fx=new Fx.Tween(this.restartButton,{duration:250,transition:Fx.Transitions.Quad.easeOut,property:"opacity",link:"cancel"});this.restartButton.fx.set(0);this.data.each(function(questionData,index){this.addQuestion(index,questionData)},this);this.updateProgress(true);this.enable()},reset:function(){this.log("Search::reset()");this.query=[];this.currentQuery=[];this.activeQuestionIndex=null;this.preventUpdate=false;this.questions.each(function(question){question.reset()},this);this.update(this.startQuestionIndex);this.hideDoneMessage();this.updateProgress(true);this.enable()},show:function(){this.log("Search::show()");this.progressContainer.fx.start(1);var delay=0;this.questions.each(function(question,index){delay=150*index;question.show.delay(delay,question)},this);delay+=500;this.update.delay(delay,this,this.startQuestionIndex)},hide:function(){this.log("Search::show()");this.progressContainer.fx.start(0)},submit:function(preventUpdate){this.log("Search::submit("+preventUpdate+")");this.preventUpdate=preventUpdate;var newQuery=this.getQuery();if(this.isQueryChanged(this.currentQuery,newQuery)){this.updateProgress();this.printerSelector.setQuery(newQuery);Broadcaster.fireEvent("submitSearch");Broadcaster.fireEvent("hidePanes");this.currentQuery=newQuery}else{Broadcaster.fireEvent("enable")}Broadcaster.fireEvent("updateSearch")},onSubmitSearch:function(){this.log("Search::onSubmitSearch()");if(this.getCompletedQuestionsAmount()==this.questions.length){this.showDoneMessage.delay(500,this)}},isQueryChanged:function(currentQuery,newQuery){this.log("Search::isQueryChanged()");var isChanged=false;if(newQuery.length!=currentQuery.length){isChanged=true}else{for(var i=0;i<newQuery.length;i++){var newAnswer=newQuery[i].answers;var currentAnswer=currentQuery[i].answers;if(typeof(newAnswer)=="string"){newAnswer=newAnswer.toLowerCase()}if(typeof(currentAnswer)=="string"){currentAnswer=currentAnswer.toLowerCase()}if(typeof(newQuery[i].answers)=="object"&&typeof(currentQuery[i].answers)=="object"){for(var j=0;j<newQuery[i].answers.length;j++){newAnswer=newQuery[i].answers[j];currentAnswer=currentQuery[i].answers[j];if(typeof(newAnswer)=="string"){newAnswer=newAnswer.toLowerCase()}if(typeof(currentAnswer)=="string"){currentAnswer=currentAnswer.toLowerCase()}if(newAnswer!==currentAnswer){isChanged=true;break}}}else{if(newAnswer!==currentAnswer){isChanged=true;break}}}}return isChanged},update:function(newActiveIndex){this.log("Search::update("+newActiveIndex+")");if($chk(this.preventUpdate)){this.preventUpdate=false;return}if($defined(newActiveIndex)){this.questions.each(function(question){if(question.getStatus()==Question.ACTIVE){question.showState(Question.INACTIVE)}},this);if(newActiveIndex!=this.activeQuestionIndex){this.activeQuestionIndex=newActiveIndex;this.activateQuestion(this.activeQuestionIndex)}else{this.activeQuestionIndex=null}}else{this.deactivateQuestion(this.activeQuestionIndex);this.activeQuestionIndex=this.getNextUnansweredQuestionIndex();if(this.activeQuestionIndex!=null){this.activateQuestion(this.activeQuestionIndex)}}},nextQuestion:function(){this.log("Search::nextQuestion()");var newQuestionIndex=this.getNextUnansweredQuestionIndex();if(!isNaN(newQuestionIndex)){this.update(newQuestionIndex)}else{this.update()}},getNextUnansweredQuestionIndex:function(){this.log("Search::getNextUnansweredQuestionIndex()");var start=this.activeQuestionIndex+1;var end=start+this.questions.length;for(var i=start;i<end;++i){var index=i%this.questions.length;var question=this.questions[index];if(question.getAnswer().length==0){return index}}return null},enable:function(){this.hideDisableState();this.hideLoadState();this.questions.each(function(question){question.enable()},this);this.addEvents()},disable:function(){this.showDisableState();this.showLoadState();this.questions.each(function(question){question.disable()},this)},activateQuestion:function(index){this.log("Search::activateQuestion("+index+")");if(!index){var index=0}var question=this.questions[index];question.showState(Question.ACTIVE)},deactivateQuestion:function(index){this.log("Search::deactivateQuestion("+index+")");var question=this.questions[index];question.showState(Question.INACTIVE)},updateProgress:function(initialize){this.log("Search::updateProgress("+initialize+")");var total=this.questions.length;this.log("total: "+total);var completed=this.getCompletedQuestionsAmount();this.log("completed: "+completed);if(initialize){this.element.getElement("div.progress").getElement("span.total").set("html",total)}this.element.getElement("div.progress").getElement("span.answered").set("html",completed);var progress=Math.round((completed/total)*100);this.progressFx.start(progress);if(initialize&&this.element.getElement("a.restart").get("opacity")==1){this.restartButton.fx.start(0)}else{if(!initialize&&this.element.getElement("a.restart").get("opacity")==0){this.restartButton.fx.start(1)}}},getCompletedQuestionsAmount:function(){this.log("Search::getCompletedQuestionsAmount()");var amount=0;this.questions.each(function(question){if(question.getAnswer().length>0){amount++}}.bind(this));return amount},addEvents:function(){this.removeEvents();this.element.getElement("a.restart").addEvent("click",function(event){event.preventDefault();this.fireEvent("restart")}.bind(this))},removeEvents:function(){this.element.getElement("a.restart").removeEvents("click")},showDoneMessage:function(){if(!this.doneMessage){this.doneMessage=new Element("div",{"class":"done-message"});var header=new Element("div",{"class":"header"});header.adopt(new Element("p",{text:"Klaar"}));var body=new Element("div",{"class":"body"});var explanation=new Element("p",{html:'Rechts staat uw advies op maat gebaseerd op uw antwoorden. Met de knop hieronder kunt een vrijblijvende offerte aanvragen voor één of meer van deze printers. Selecteer rechts de printers die uw voorkeur hebben en druk vervolgens op <a href="#" title="Vraag nu een vrijblijvende offerte aan" class="offer-request">\'Een vrijblijvende offerte aanvragen\'</a>.',"class":"explanation"});body.adopt(explanation);var actions=new Element("div",{"class":"actions"});actions.adopt(new Element("a",{href:"#","class":"button offer-request",text:"Een vrijblijvende offerte aanvragen"}));actions.adopt(new Element("a",{href:"#","class":"print"}));body.adopt(actions);this.doneMessage.adopt(header);this.doneMessage.adopt(body);var questions=this.printerSelector.getContainer().getElementById("questions");this.doneMessage.inject(questions,"before");this.doneMessageFx=new Fx.Reveal(this.doneMessage,{duration:500,transitionOpacity:true});this.doneMessage.getElements(".offer-request").addEvent("click",function(event){event.preventDefault();this.printerSelector.requestOffer()}.bind(this));this.doneMessage.getElement(".print").addEvent("click",function(event){event.preventDefault();var link=this.printerSelector.createPrintLink("all");window.open(link)}.bind(this))}this.doneMessageFx.reveal()},hideDoneMessage:function(){if(this.doneMessageFx){this.doneMessageFx.dissolve()}},showDisableState:function(){this.log("Search::showDisableState()");this.questions.each(function(question,index){question.showDisableState()}.bind(this))},hideDisableState:function(){this.log("Search::hideDisableState()");this.questions.each(function(question,index){question.hideDisableState()}.bind(this))},showLoadState:function(){this.loader.fx.start(1)},hideLoadState:function(){this.loader.fx.start(0)},addQuestion:function(position,questionData){this.log("Search::addQuestion("+position+", "+questionData+")");var question;switch(questionData.answerType.stringValue){case"Range":question=new QuestionSlider(questionData.id,questionData.name,position,questionData.data,questionData.answers);break;default:question=new Question(questionData.id,questionData.name,position,questionData.data,questionData.answers);break}this.questions.include(question)},getQuery:function(){var query=[];this.questions.each(function(question){var answer=question.getAnswer();this.log("answer: "+answer);this.log("typeof(answer): "+typeof(answer));if(answer.length>0){var answerData={questionId:question.id,answers:answer};query.include(answerData)}},this);return query}});var Question=new Class({Implements:[Options,Events,Log],options:{},element:null,printerSelectorContainer:null,id:null,name:null,position:null,data:null,answers:[],answer:[],status:null,tooltip:null,tooltipFx:null,initialize:function(id,name,position,data,answers){this.log("Question::initialize("+id+", "+name+", "+position+", "+data+", "+answers+")");this.id=id;this.name=name;this.position=position;this.data=data;this.answers=answers;this.printerSelectorContainer=new PrinterSelector().getContainer();this.build();this.enable()},build:function(){var element=new Element("div",{"class":"form-question",id:"question-"+this.name});var header=new Element("div",{"class":"header"});var body=new Element("div",{"class":"body"});var disable=new Element("div",{"class":"disable"});var info=new Element("div",{"class":"info"});var question=new Element("div",{"class":"question"});question.adopt(new Element("p",{html:"Vraag <span>"+this.id+"</span>"}));info.adopt(question);var answer=new Element("div",{"class":"answer"});answer.adopt(new Element("p"));answer.adopt(new Element("div",{"class":"icon"}));info.adopt(answer);var subject=new Element("div",{"class":"subject"});subject.adopt(new Element("p",{text:this.data.answer}));info.adopt(subject);header.adopt(info);var normal=new Element("div",{"class":"normal background"});header.adopt(normal);var done=new Element("div",{"class":"done background"});header.adopt(done);var active=new Element("div",{"class":"active background"});header.adopt(active);header.adopt(new Element("div",{"class":"hit-area"}));body.adopt(new Element("h2",{html:this.data.question}));var answerElement=this.buildAnswerElement();body.adopt(answerElement);var actions=new Element("div",{"class":"actions"});actions.adopt(new Element("a",{href:"#","class":"more-info"}));actions.adopt(new Element("a",{href:"#",text:"Sla deze vraag over","class":"skip-question"}));body.adopt(actions);element.adopt(header);element.adopt(body);element.adopt(disable);this.element=element;this.element.header=header;this.element.body=body;this.element.fx=new Fx.Reveal(this.element,{duration:250,transitionOpacity:true});this.element.hide();this.element.bodyFx=new Fx.Reveal(this.element.body,{duration:500,transitionOpacity:true});this.element.answerFx=new Fx.Tween(answer,{duration:250,transition:Fx.Transitions.Quad.easeOut,property:"opacity",link:"cancel"});this.element.answerFx.set(0);this.element.subjectFx=new Fx.Tween(subject,{duration:250,transition:Fx.Transitions.Quad.easeOut,property:"opacity",link:"cancel"});this.element.normalFx=new Fx.Tween(normal,{duration:250,transition:Fx.Transitions.Quad.easeOut,property:"opacity",link:"cancel"});this.element.normalFx.set(1);this.element.doneFx=new Fx.Tween(done,{duration:250,transition:Fx.Transitions.Quad.easeOut,property:"opacity",link:"cancel"});this.element.doneFx.set(0);this.element.activeFx=new Fx.Tween(active,{duration:250,transition:Fx.Transitions.Quad.easeOut,property:"opacity",link:"cancel"});this.element.activeFx.set(0);this.printerSelectorContainer.getElementById("questions").appendChild(this.element)},buildAnswerElement:function(){this.log("Question::buildAnswerElement()");var answerButtons=new Element("div",{"class":"answer-buttons"});var buttonsRow=[];this.answers.each(function(answer,index){var id=this.answers[index].id;var text=this.answers[index].text;var button=new Element("div",{html:text,"class":"answer-button"});if(index%2){button.addClass("odd")}buttonsRow.include(button);if(index%2||index==this.answers.length-1){var row=new Element("div",{"class":"row"});buttonsRow.each(function(button){row.adopt(button)},this);answerButtons.adopt(row);buttonsRow=[]}},this);return answerButtons},reset:function(){this.log("Question::reset(): "+this.name);this.answer=[];this.showState(Question.INACTIVE)},show:function(){this.log("Question::show()");this.element.fx.reveal()},hide:function(){this.log("Question::hide()");this.element.fx.dissolve()},enable:function(){this.log("Question::enable()");this.addEvents();this.hideDisableState()},disable:function(){this.log("Question::disable()");this.removeEvents();this.showDisableState()},showState:function(status){this.log("Question::showState("+status+"): "+this.name);this.log("this.getAnswer().length: "+this.getAnswer().length);this.setStatus(status);this.element.removeClass("active");this.element.removeClass("inactive");if(this.getAnswer().length>0){this.element.addClass("done")}else{this.element.removeClass("done")}switch(this.getStatus()){case Question.ACTIVE:this.showQuestion(true);this.hideAnswer();this.hideSubject();this.element.addClass("active");this.element.getElement(".hit-area").hide();break;default:this.hideQuestion();if(this.getAnswer().length>0){this.showAnswer();this.hideSubject()}else{this.hideAnswer();this.showSubject()}this.element.getElement(".hit-area").show();this.element.addClass("inactive");break}},submit:function(answerIndex){this.log("Question::submit("+answerIndex+")");if(this.validate()){this.hideError();this.setAnswer(this.answers[answerIndex]);Broadcaster.fireEvent("submitQuestion")}else{this.showError()}},validate:function(){var isValid=true;return isValid},addEvents:function(){this.log("Question::addEvents()");this.removeEvents();this.element.getElement(".hit-area").addEvent("mouseenter",function(event){event.preventDefault();this.element.addClass("hover")}.bind(this));this.element.getElement(".hit-area").addEvent("mouseleave",function(event){event.preventDefault();this.element.removeClass("hover")}.bind(this));this.element.getElement(".hit-area").addEvent("click",function(event){event.preventDefault();Broadcaster.fireEvent("updateSearch",this.position)}.bind(this));this.element.getElements(".answer-button").each(function(button,index){button.addEvent("click",function(event){event.preventDefault();this.submit(index)}.bind(this))},this);this.element.getElement(".skip-question").addEvent("click",function(event){event.preventDefault();Broadcaster.fireEvent("nextQuestion")}.bind(this));this.element.getElement(".more-info").addEvent("mouseenter",function(event){event.preventDefault();this.showInfo()}.bind(this));this.element.getElement(".more-info").addEvent("mouseleave",function(event){event.preventDefault();this.hideInfo()}.bind(this));this.element.getElement(".answer").addEvent("click",function(event){event.preventDefault();Broadcaster.fireEvent("updateSearch",this.position)}.bind(this))},removeEvents:function(){this.log("Question::removeEvents()");this.element.getElement(".hit-area").removeEvents("mouseenter");this.element.getElement(".hit-area").removeEvents("mouseleave");this.element.getElement(".hit-area").removeEvents("click");this.element.getElements(".answer-button").each(function(button,index){button.removeEvents("click")},this);if($defined(this.element.getElement(".skip-question"))){this.element.getElement(".skip-question").removeEvents("click")}if($defined(this.element.getElement(".more-info"))){this.element.getElement(".more-info").removeEvents("click")}this.element.getElement(".answer").removeEvents("click")},showQuestion:function(animate){this.log("Question::showQuestion("+animate+")");if(this.getAnswer().length>0){this.element.doneFx.start(0)}else{this.element.normalFx.start(0)}this.element.activeFx.start(1);this.element.bodyFx.reveal()},hideQuestion:function(){this.log("Question::hideQuestion()");this.element.activeFx.start(0);if(this.getAnswer().length>0){this.element.normalFx.start(0);this.element.doneFx.start(1)}else{this.element.doneFx.start(0);this.element.normalFx.start(1)}this.element.bodyFx.dissolve()},showAnswer:function(){this.log("Question::showAnswer()");var answer=this.element.header.getElement(".answer p");answer.set("html",this.getFormattedAnswer());this.element.answerFx.start(1)},hideAnswer:function(){this.log("Question::hideAnswer()");this.element.answerFx.start(0)},showSubject:function(){this.log("Question::showSubject()");this.element.subjectFx.start(1)},hideSubject:function(){this.log("Question::hideSubject()");this.element.subjectFx.start(0)},setStatus:function(status){this.status=status},getStatus:function(){return this.status},setAnswer:function(answer){this.answer=[answer]},getAnswer:function(){return this.answer},getFormattedAnswer:function(){var formattedAnswer="";this.getAnswer().each(function(answer,index){formattedAnswer+=answer.text;if(index!=this.getAnswer().length-1){formattedAnswer+=", "}},this);return formattedAnswer},changeSkipButton:function(){this.log("Question::changeSkipButton()");this.element.getElement("a.skip-question").set("text","Vraag sluiten")},showInfo:function(){this.getTooltip();this.positionTooltip();this.tooltipFx.start("opacity",1)},hideInfo:function(){this.tooltipFx.start("opacity",0)},getTooltip:function(){this.log("Question::getTooltip()");if(!this.tooltip){var tooltip=new Element("div",{"class":"tooltip",id:"tooltip-"+this.data.id});var pointer=new Element("div",{"class":"pointer"});var info=new Element("div",{"class":"info"});var header=new Element("div",{"class":"header"});var body=new Element("div",{"class":"body"});var footer=new Element("div",{"class":"footer"});body.adopt(new Element("p",{html:this.data.info}));info.adopt(header);info.adopt(body);info.adopt(footer);tooltip.adopt(pointer);tooltip.adopt(info);this.tooltip=tooltip;this.tooltipFx=new Fx.Tween(this.tooltip,{duration:250,transition:"linear",link:"cancel",onComplete:function(){if(this.tooltip.getProperty("opacity")==0){this.tooltip.dispose()}}.bind(this)})}this.printerSelectorContainer.adopt(this.tooltip);var tooltipHeight=this.tooltip.getElement("div.info").getSize().y;this.tooltip.getElement("div.pointer").setStyle("height",tooltipHeight);return this.tooltip},positionTooltip:function(){this.log("Question::positionTooltip()");var moreInfoButtonX=this.element.getElement("a.more-info").getPosition(this.printerSelectorContainer).x;var moreInfoButtonY=this.element.getElement("a.more-info").getPosition(this.printerSelectorContainer).y;var moreInfoButton=this.element.getElement("a.more-info").getCoordinates(this.printerSelectorContainer);var tooltipX=moreInfoButton.left-5-this.tooltip.getSize().x;var tooltipY=moreInfoButton.top+(moreInfoButton.height/2)-(this.tooltip.getSize().y/2);this.tooltip.setPosition({x:tooltipX,y:tooltipY})},showError:function(){this.element.addClass("error")},hideError:function(){this.element.removeClass("error")},showDisableState:function(){this.log("Question::showDisableState()");this.element.getElement(".disable").show()},hideDisableState:function(){this.log("Question::hideDisableState()");this.element.getElement(".disable").hide()}});Question.INACTIVE=1;Question.ACTIVE=2;var QuestionSlider=new Class({Implements:[Options,Events,Log],Extends:Question,options:{},slider:null,sliderContainer:null,sliderValue:null,initialize:function(id,name,position,data,answers){this.log("QuestionSlider::initialize("+id+", "+name+", "+position+", "+data+", "+answers+")");this.parent(id,name,position,data,answers)},buildAnswerElement:function(){this.log("QuestionSlider::buildAnswerElement()");var answerElement=new Element("div",{"class":"answer-container"});var sliderContainer=new Element("div",{"class":"slider-container"});var slider=new Element("div",{"class":"slider"});var knob=new Element("div",{"class":"knob"});slider.adopt(knob);sliderContainer.adopt(slider);var label=new Element("div",{"class":"label"});sliderContainer.adopt(label);answerElement.adopt(sliderContainer);var submitButton=new Element("div",{"class":"submit-button",text:"OK"});answerElement.adopt(submitButton);this.sliderContainer=sliderContainer;return answerElement},reset:function(){this.log("QuestionSlider::reset()");this.slider.set(this.answers.start);this.parent()},submit:function(value){this.log("QuestionSlider::submit("+value+")");if(this.validate()){this.hideError();this.setAnswer(value);Broadcaster.fireEvent("submitQuestion")}else{this.showError()}},addEvents:function(){this.log("QuestionSlider::addEvents()");this.parent();if(!this.slider){var slider=this.sliderContainer.getElement(".slider");var knob=slider.getElement(".knob");var label=this.sliderContainer.getElement(".label");var rangeMin=this.answers.range.min;var rangeMax=this.answers.range.max;var start=this.answers.start;var steps=(rangeMax-rangeMin)*this.answers.step;this.slider=new Slider(slider,knob,{range:[rangeMin,rangeMax],steps:steps,initialStep:start,offset:0,snap:true,wheel:true,onChange:function(value){this.log("change value: "+value);this.setSliderValue(value);var text=this.getFormattedAnswer();label.set("text",text)}.bind(this),onComplete:function(value){this.log("complete value: "+value)}.bind(this)})}this.element.getElement(".submit-button").addEvent("click",function(event){event.preventDefault();this.submit(this.getSliderValue())}.bind(this))},removeEvents:function(){this.log("QuestionSlider::removeEvents()");this.parent();this.element.getElement(".submit-button").removeEvents("click")},setAnswer:function(answer){var answerData={id:answer,text:this.getFormattedAnswer()};this.answer=[answerData]},getAnswer:function(){return this.answer},setSliderValue:function(value){this.log("QuestionSlider::setSliderValue("+value+")");this.sliderValue=value},getSliderValue:function(){this.log("QuestionSlider::getSliderValue()");return this.sliderValue},getFormattedAnswer:function(){this.log("QuestionSlider::getFormattedAnswer()");var labelText=this.answers.label;var text=labelText.multiple;var sliderValue=this.getSliderValue();if(sliderValue==1){text=labelText.one}var formattedAnswer=sliderValue+" "+text;return formattedAnswer}});var SuggestionManager=new Class({Implements:[Events,Log],INITIAL_ITEMS:3,TOTAL_ITEMS:10,HIDE_SHOW_DELAY:250,printerSelector:null,element:null,printerSelectorContainer:null,queryContainer:null,data:null,currentItemsData:null,items:[],moreResultsButtonFx:null,hasMoreItems:false,scrollBar:null,suggestionContainer:null,suggestionsPane:null,noResultsPane:null,previousElementTop:0,initialize:function(){this.printerSelector=new PrinterSelector();this.element=this.printerSelector.getContainer().getElementById("result");this.printerSelectorContainer=this.printerSelector.getContainer();this.queryContainer=this.printerSelector.getContainer().getElementById("query");Broadcaster.addEvent("submitSearch",this.retrieveData.bind(this))},build:function(){this.elementFx=new Fx.Tween(this.element,{duration:750,transition:Fx.Transitions.Quad.easeOut,property:"top",link:"cancel"});this.elementFx.set(0);this.suggestionsPane=this.element.getElement("#suggestions");this.suggestionsPane.width=this.suggestionsPane.measure(function(){return this.getSize().x});this.noResultsPane=this.element.getElement(".no-results");this.noResultsPane.width=this.noResultsPane.measure(function(){return this.getSize().x});this.suggestionsPane.fx=new Fx.Tween(this.suggestionsPane,{duration:500,transition:Fx.Transitions.Quad.easeOut,property:"left",link:"cancel"});this.suggestionsPane.fx.addEvent("start",function(){if(this.suggestionsPane.getStyle("left").toInt()<0){this.suggestionsPane.show()}}.bind(this));this.suggestionsPane.fx.addEvent("complete",function(){if(this.suggestionsPane.getStyle("left").toInt()<0){this.items.each(function(item){item.hide()},this);this.clearItems();this.suggestionsPane.hide();this.showNoResultsPane.delay(100,this)}else{this.enable.delay(100,this)}}.bind(this));this.suggestionsPane.fx.set(-this.suggestionsPane.width);this.noResultsPane.fx=new Fx.Tween(this.noResultsPane,{duration:500,transition:Fx.Transitions.Quad.easeOut,property:"left",link:"cancel"});this.noResultsPane.fx.addEvent("start",function(){if(this.noResultsPane.getStyle("left").toInt()<0){this.noResultsPane.show()}else{this.disable()}}.bind(this));this.noResultsPane.fx.addEvent("complete",function(){if(this.noResultsPane.getStyle("left").toInt()<0){this.noResultsPane.hide()}else{this.enable.delay(100,this)}}.bind(this));this.noResultsPane.fx.set(-this.noResultsPane.width);var moreResults=this.suggestionsPane.getElement("div.more-results");var moreResultsButton=this.suggestionsPane.getElement("a.more-results");this.moreResultsButtonFx=new Fx.Tween(moreResultsButton,{duration:250,transition:Fx.Transitions.Quad.easeOut,property:"opacity",link:"cancel"});this.moreResultsButtonFx.set(0);this.moreResultsButtonFx.addEvent("start",function(event){if(moreResultsButton.get("opacity")==0){moreResults.show()}}.bind(this));this.moreResultsButtonFx.addEvent("complete",function(event){if(moreResultsButton.get("opacity")==0){moreResults.hide()}}.bind(this));this.suggestionContainer=this.element.getElement(".suggestions-container");this.scrollBar=new ScrollBar(this.suggestionContainer);this.scrollBar.build()},reset:function(){this.log("SuggestionManager::reset()");this.hideSuggestionsPane();this.scrollBar.reset();this.hasMoreItems=false},show:function(){this.log("SuggestionManager::show()");this.showNoResultsPane()},hide:function(){this.log("SuggestionManager::hide()")},showSuggestionsPane:function(){this.log("SuggestionManager::showSuggestionsPane()");this.suggestionsPane.fx.start(0)},hideSuggestionsPane:function(){this.log("SuggestionManager::hideSuggestionsPane()");this.suggestionsPane.fx.start(-this.suggestionsPane.width)},showNoResultsPane:function(){this.log("SuggestionManager::showNoResultsPane()");this.noResultsPane.fx.start(0)},hideNoResultsPane:function(){this.log("SuggestionManager::hideNoResultsPane()");this.noResultsPane.fx.start(-this.noResultsPane.width)},retrieveData:function(){var params=new Object();params.answers=this.printerSelector.getQuery();var requestData={url:this.printerSelector.getConfig().requestPath.results,params:params,onRequest:this.onRequest.bind(this),onSuccess:this.onSuccess.bind(this),onFailure:this.onFailure.bind(this),onException:this.onException.bind(this)};this.printerSelector.request(requestData)},updateItems:function(itemsData){if(this.items.length==0){if(this.noResultsPane.isDisplayed()){this.showSuggestionsPane.delay(400,this)}else{this.showSuggestionsPane()}this.elementFx.set(0)}var delay=0;if(this.items.length>0){delay=(this.items.length+1)*Suggestion.HIDE_DELAY+this.HIDE_SHOW_DELAY}this.log("delay: "+delay);this.hideItems();this.placeItems.delay(delay,this,[itemsData]);this.showItems.delay(delay,this);if(!this.hasMoreItems){this.moreResultsButtonFx.start.delay(750,this.moreResultsButtonFx,[1])}},placeItems:function(itemsData){this.printerSelector.clearSelectedSuggestions();var endIndex=this.INITIAL_ITEMS;if(this.hasMoreItems){endIndex=this.TOTAL_ITEMS;this.scrollBar.update()}for(var i=0;i<endIndex;++i){var itemData=itemsData[i];this.addItem(i,itemData)}this.setSuggestionContainerHeight()},showItems:function(){var delay=0;var endIndex=this.items.length;if(this.hasMoreItems){this.scrollBar.show()}for(var i=0;i<endIndex;++i){var suggestion=this.items[i];delay=i*Suggestion.SHOW_DELAY;suggestion.show.delay(delay,suggestion);if(i==(endIndex-1)){suggestion.addEvent("showComplete",function(event){this.setSuggestionContainerHeight();this.scrollBar.update();this.scrollBar.show()}.bind(this))}}},hideItems:function(){this.items.each(function(suggestion,i){var index=this.items.length-1-i;var delay=index*Suggestion.HIDE_DELAY;suggestion.hide.delay(delay,suggestion);if(index===0){this.clearItems()}},this);this.scrollBar.hide()},clearItems:function(){this.log("SuggestionManager::clearItems()");this.items.empty()},addItem:function(position,data){var item;if(position===0){item=new HighlightSuggestion(position,data.id,data.name,data.description,data.images.overview,data.matches,data.matchScore,data.actions);this.printerSelector.addSelectedSuggestion(data.id);item.setOfferRequestStatus(true);item.setOfferRequestDisabled(true)}else{item=new Suggestion(position,data.id,data.name,data.description,data.images.overview,data.matchScore)}var element=item.getElement();this.element.getElementById("suggestions").getElement("div.suggestions").adopt(element);item.addEvent("offerRequest",function(id,status){var selectedSuggestions=this.printerSelector.getSelectedSuggestions();if(status){this.printerSelector.addSelectedSuggestion(id)}else{if(selectedSuggestions.length>1){this.printerSelector.removeSelectedSuggestion(id)}}this.items.each(function(item){item.setOfferRequestDisabled(false);if(selectedSuggestions.length<=1){selectedSuggestions.each(function(suggestion,index){var suggestionId=suggestion.id;if(item.id==suggestionId){item.setOfferRequestDisabled(true)}}.bind(this))}}.bind(this))}.bind(this));this.items.splice(position,0,item)},removeItem:function(id){this.log("SuggestionManager::removeItem("+id+")");var position=this.printerSelector.getSuggestionPositionById(id);var item=this.items[position];item.hide();this.items.splice(position,1)},enable:function(){this.log("SuggestionManager::enable()");this.addEvents();window.addEvent("scroll:throttle(150)",this.onScroll.bind(this));this.element.getElements(".footer .offer-request").removeClass("disabled");this.element.getElements(".footer .print").removeClass("disabled");this.element.getElement("a.more-results").removeClass("disabled");this.items.each(function(suggestion,index){suggestion.enable()},this)},disable:function(){this.log("SuggestionManager::disable()");this.removeEvents();window.removeEvents("scroll");this.element.getElements(".footer .offer-request").addClass("disabled");this.element.getElement(".footer .offer-request").addEvent("click",function(event){event.preventDefault()}.bind(this));this.element.getElements(".footer .print").addClass("disabled");this.element.getElements(".footer .print").addEvent("click",function(event){event.preventDefault()}.bind(this));this.element.getElement("a.more-results").addClass("disabled");this.element.getElement("a.more-results").addEvent("click",function(event){event.preventDefault()}.bind(this));this.items.each(function(suggestion){suggestion.disable()},this)},addEvents:function(){this.removeEvents();if(!this.element.getElement(".result-container").retrieve("events")){this.element.getElement(".result-container").addEvent("mouseenter",function(event){event.preventDefault();window.removeEvents("scroll")}.bind(this));this.element.getElement(".result-container").addEvent("mouseleave",function(event){event.preventDefault();window.addEvent("scroll:throttle(150)",this.onScroll.bind(this));window.fireEvent("scroll")}.bind(this))}this.element.getElement(".more-results").addEvent("click",function(event){event.preventDefault();this.showMoreItems()}.bind(this));this.element.getElement(".footer .offer-request").addEvent("click",function(event){event.preventDefault();this.printerSelector.requestOffer()}.bind(this));this.element.getElements(".footer .print").addEvent("click",function(event){event.preventDefault();var link;if(this.hasMoreItems){link=this.printerSelector.createPrintLink("all")}else{link=this.printerSelector.createPrintLink()}window.open(link)}.bind(this))},removeEvents:function(){this.element.getElement(".more-results").removeEvents("click");this.element.getElement(".footer .offer-request").removeEvents("click");this.element.getElement(".footer .print").removeEvents("click")},setSuggestionContainerHeight:function(){var suggestionContainerHeight=0;this.items.each(function(item,index){var elementHeight=item.getElement().measure(function(){return this.getSize().y});suggestionContainerHeight+=elementHeight}.bind(this));this.suggestionContainer.setStyle("height",suggestionContainerHeight)},showMoreItems:function(){this.log("SuggestionManager::showMoreItems()");var delay=0;var maxItems=(this.currentItemsData.length<this.TOTAL_ITEMS)?this.currentItemsData.length:this.TOTAL_ITEMS;this.log("maxItems: "+maxItems);for(var i=this.INITIAL_ITEMS;i<maxItems;++i){var itemData=this.currentItemsData[i];this.log("i: "+i);this.log("itemData: "+itemData);this.addItem(i,itemData);var suggestion=this.items[i];delay=(i-this.INITIAL_ITEMS)*Suggestion.SHOW_DELAY;suggestion.show.delay(delay,suggestion)}this.hasMoreItems=true;this.moreResultsButtonFx.start(0);this.setSuggestionContainerHeight();this.scrollBar.update();this.scrollBar.show()},onScroll:function(){this.log("SuggestionManager::onScroll()");this.log("SuggestionManager::blaat()");var windowScrollY=window.getScroll().y;var applicationPositionY=this.printerSelectorContainer.getPosition().y;var relativeScrollY=windowScrollY-applicationPositionY+42;var queryHeight=this.queryContainer.getSize().y;var queryTop=this.queryContainer.getPosition(this.printerSelectorContainer).y;var queryBottom=queryTop+queryHeight;var elementHeight=this.element.getSize().y;var elementTop=relativeScrollY;var elementBottom=elementTop+elementHeight;if(elementTop<queryTop){elementTop=queryTop}else{if(elementBottom>queryBottom){elementTop=queryBottom-elementHeight}}this.elementFx.start.delay(150,this.elementFx,[elementTop])},onRequest:function(){this.hideNoResultsPane();Broadcaster.fireEvent("disable")},onSuccess:function(response){this.printerSelector.setResultId(response.resultId);this.currentItemsData=response.result;this.updateItems(this.currentItemsData);if(this.currentItemsData){this.printerSelector.setSuggestionData(this.currentItemsData)}Broadcaster.fireEvent("enable")},onFailure:function(xhr){this.log("SuggestionManager::onFailure("+xhr+")");Broadcaster.fireEvent("enable")},onException:function(headerName,value){this.log("SuggestionManager::onException("+headerName+", "+value+")");Broadcaster.fireEvent("enable")}});var Suggestion=new Class({Implements:[Options,Events,Log],options:{},SHOW_TIME:500,HIDE_TIME:250,element:null,rank:null,position:null,id:null,name:null,description:null,descriptionTruncated:null,image:null,score:null,initialize:function(position,id,name,description,image,score){this.position=position;this.id=id;this.name=name;this.description=description;this.image=image;this.score=score;this.rank=this.position+1;if(!this.descriptionTruncated){this.descriptionTruncated=description.truncate(85,".."," ")}this.log("this.descriptionTruncated: "+this.descriptionTruncated);this.build();this.preloadImage()},build:function(){this.log("Suggestion::build()");var element=new Element("div",{"class":"suggestion"});var title=new Element("div",{"class":"title"});title.adopt(new Element("h3",{"class":"rank",text:this.rank}));title.adopt(new Element("h3",{"class":"name",text:this.name}));element.adopt(title);var infoContainer=new Element("div",{"class":"info-container"});var description=new Element("div",{"class":"description"});description.adopt(new Element("p",{text:this.descriptionTruncated}));infoContainer.adopt(description);var imageContainer=new Element("div",{"class":"image-container"});var image=new Element("div",{"class":"image"});image.adopt(new Element("div",{"class":"loader"}));imageContainer.adopt(image);var match=new Element("div",{"class":"match"});var indicator=new Element("div",{"class":"indicator"});match.adopt(indicator);imageContainer.adopt(match);infoContainer.adopt(imageContainer);element.adopt(infoContainer);var offerRequest=new Element("a",{href:"#",text:"Opnemen in offerte","class":"offer-request"});element.adopt(offerRequest);var showDetail=new Element("a",{href:"#",text:"Lees meer","class":"show-detail"});element.adopt(showDetail);var disable=new Element("div",{"class":"disable"});element.adopt(disable);this.element=element;this.element.hide();this.element.showDetailFx=new Fx.Tween(showDetail,{duration:250,transition:Fx.Transitions.Quad.easeOut,property:"opacity",link:"cancel"});this.element.showDetailFx.set(0);this.element.matchIndicatorFx=new Fx.Tween(indicator,{duration:500,unit:"%",transition:Fx.Transitions.Expo.easeOut,property:"width",link:"cancel"});this.element.matchIndicatorFx.set(0)},getElement:function(){this.log("Suggestion::getElement()");return this.element},show:function(){this.log("Suggestion::show()");this.element.show();this.element.set("opacity",0);var fadeFx=new Fx.Tween(this.element,{duration:this.SHOW_TIME,transition:"linear",onComplete:function(){this.enable();this.startMatchIndicator.delay(250,this);this.fireEvent("showComplete")}.bind(this)});fadeFx.start("opacity",1)},hide:function(){this.log("Suggestion::hide()");var fadeFx=new Fx.Tween(this.element,{duration:this.HIDE_TIME,transition:"linear",onComplete:function(){this.element.dispose()}.bind(this)});fadeFx.start("opacity",0)},enable:function(){this.addEvents();this.hideDisableState()},disable:function(){this.removeEvents();this.showDisableState()},addEvents:function(){this.log("Suggestion::addEvents()");this.removeEvents();this.element.addEvent("mouseenter",function(event){event.preventDefault();if(this.element.showDetailFx){this.element.showDetailFx.start(1)}}.bind(this));this.element.addEvent("mouseleave",function(event){event.preventDefault();if(this.element.showDetailFx){this.element.showDetailFx.start(0)}}.bind(this));this.element.getElement(".show-detail").addEvent("click",function(event){event.preventDefault();Broadcaster.fireEvent("showDetailPane",this.getId())}.bind(this));this.element.getElement(".offer-request").addEvent("click",function(event){event.preventDefault();event.stopPropagation();if(this.element.getElement(".offer-request").hasClass("disabled")){return}var status=true;if(this.element.getElement(".offer-request").hasClass("selected")){status=false}this.setOfferRequestStatus(status)}.bind(this))},removeEvents:function(){this.element.removeEvents("mouseenter");this.element.removeEvents("mouseleave");this.element.getElement(".show-detail").removeEvents("click");this.element.getElement(".offer-request").removeEvents("click")},setOfferRequestStatus:function(status){this.log("Suggestion::setOfferRequestStatus("+status+")");if(status){this.element.getElement(".offer-request").addClass("selected")}else{this.element.getElement(".offer-request").removeClass("selected")}this.log("fireEvent::offerRequest id: "+this.id+" status: "+status);this.fireEvent("offerRequest",[this.id,status])},setOfferRequestDisabled:function(disabled){this.log("Suggestion::setOfferRequestDisabled("+disabled+")");if(disabled){this.element.getElement(".offer-request").addClass("disabled")}else{this.element.getElement(".offer-request").removeClass("disabled")}},preloadImage:function(){this.log("Suggestion::preloadImage()");this.showImageLoadState();var image=[this.image];var loadedImage=new Asset.images(image,{onProgress:function(counter,index){}.bind(this),onComplete:function(){var image=loadedImage[0];image.title=this.name;image.alt=this.name;this.element.getElement("div.image").adopt(image);var imageElement=this.element.getElement("div.image img").setStyle("opacity",0);imageElement.fade("in");this.hideImageLoadState()}.bind(this),onAbort:function(counter,index){this.hideImageLoadState()}.bind(this),onError:function(counter,index){this.hideImageLoadState()}.bind(this)})},startMatchIndicator:function(){this.log("Suggestion::startMatchIndicator()");this.element.matchIndicatorFx.start(this.score)},showDisableState:function(){this.log("Suggestion::showDisableState()");this.element.getElement(".disable").show()},hideDisableState:function(){this.log("Suggestion::hideDisableState()");this.element.getElement(".disable").hide()},showImageLoadState:function(){this.log("Suggestion::showImageLoadState()");this.element.getElement("div.image").getElement("div.loader").fade("in")},hideImageLoadState:function(){this.log("Suggestion::hideImageLoadState()");this.element.getElement("div.image").getElement("div.loader").fade("out")},getId:function(){this.log("Suggestion::getId()");return this.id}});Suggestion.SHOW_DELAY=100;Suggestion.HIDE_DELAY=50;var HighlightSuggestion=new Class({Implements:[Options,Events,Log],Extends:Suggestion,options:{},matches:null,actions:null,initialize:function(position,id,name,description,image,matches,score,actions){this.log("HighlightSuggestion::initialize("+position+", "+id+", "+name+", "+description+", "+image+", "+matches+", "+score+", "+actions+")");this.matches=matches;this.actions=actions;this.descriptionTruncated=description.truncate(170,".."," ");this.parent(position,id,name,description,image,score)},build:function(){this.log("Suggestion::build()");var element=new Element("div",{"class":"suggestion highlight"});var title=new Element("div",{"class":"title"});title.adopt(new Element("h3",{"class":"rank",text:this.rank}));title.adopt(new Element("h3",{"class":"name",text:this.name}));element.adopt(title);var infoContainer=new Element("div",{"class":"info-container"});var description=new Element("div",{"class":"description"});description.adopt(new Element("p",{text:this.descriptionTruncated}));infoContainer.adopt(description);var imageContainer=new Element("div",{"class":"image-container"});var image=new Element("div",{"class":"image"});image.adopt(new Element("div",{"class":"loader"}));imageContainer.adopt(image);var match=new Element("div",{"class":"match"});var indicator=new Element("div",{"class":"indicator"});match.adopt(indicator);imageContainer.adopt(match);infoContainer.adopt(imageContainer);element.adopt(infoContainer);var matchesList=new Element("div",{"class":"matches-list"});if(this.matches.length>0){var matches=new Element("ul",{"class":"matches"});this.matches.each(function(match,index){var li=new Element("li",{html:'<span class="icon"></span>'+match.text});if(!match.match){li.addClass("no-match")}matches.adopt(li)});matchesList.adopt(matches)}var showDetail=new Element("a",{href:"#",text:"Lees meer","class":"show-detail button"});matchesList.adopt(showDetail);element.adopt(matchesList);var offerRequest=new Element("a",{href:"#",text:"Opnemen in offerte","class":"offer-request"});element.adopt(offerRequest);var disable=new Element("div",{"class":"disable"});element.adopt(disable);this.element=element;this.element.hide();this.element.matchIndicatorFx=new Fx.Tween(indicator,{duration:500,unit:"%",transition:Fx.Transitions.Expo.easeOut,property:"width",link:"cancel"});this.element.matchIndicatorFx.set(0)},addEvents:function(){this.log("HighlightSuggestion::addEvents()");this.parent()},removeEvents:function(){this.log("HighlightSuggestion::removeEvents()");this.parent()}});var PaneManager=new Class({Implements:[Events,Log],printerSelector:null,element:null,background:null,backgroundFx:null,detailPane:null,initialize:function(){this.log("PaneManager::initialize()");this.printerSelector=new PrinterSelector();this.element=this.printerSelector.getContainer().getElementById("pane");this.detailPane=new DetailPane(this.element);Broadcaster.addEvent("hidePanes",this.hidePanes.bind(this));Broadcaster.addEvent("showDetailPane",this.showDetailPane.bind(this));Broadcaster.addEvent("hideDetailPane",this.hideDetailPane.bind(this));Broadcaster.addEvent("enable",this.enable.bind(this));Broadcaster.addEvent("disable",this.disable.bind(this))},build:function(){this.log("PaneManager::build()");this.background=this.element.getElement("div.background");this.backgroundFx=new Fx.Tween(this.background,{duration:400,transition:Fx.Transitions.Quad.easeOut,wait:false});this.background.set("opacity",0);this.enable()},reset:function(){this.log("PaneManager::reset()");this.detailPane.reset()},show:function(){this.log("PaneManager::show()");this.element.show()},hide:function(){this.log("PaneManager::hide()");if(this.detailPane.getStatus()=="close"){this.element.hide()}},showDetailPane:function(id){this.log("PaneManager::showDetailPane("+id+")");var position=this.printerSelector.getSuggestionPositionById(id);var suggestionData=this.printerSelector.getSuggestionData()[position];this.detailPane.build(suggestionData.id,suggestionData.name,suggestionData.description,suggestionData.specifications,suggestionData.options,suggestionData.images.detail,suggestionData.actions,suggestionData.matches,suggestionData.matchScore);this.detailPane.show();this.showBackground("detail")},hideDetailPane:function(){this.log("PaneManager::hideDetailPane()");this.detailPane.hide();this.hideBackground("detail")},showBackground:function(pane){this.log("PaneManager::showBackground()");this.show();this.backgroundFx.removeEvents("complete");this.backgroundFx.start("opacity",1)},hideBackground:function(pane){this.log("PaneManager::hideBackground()");var animateBackground=true;if(animateBackground){this.backgroundFx.removeEvents("complete");this.backgroundFx.addEvent("complete",function(event){this.hide()}.bind(this));this.backgroundFx.start("opacity",0)}},hidePanes:function(){this.log("PaneManager::hidePanes()");if(this.detailPane.getStatus()=="open"){this.hideDetailPane()}},enable:function(){this.log("PaneManager::enable()");this.addEvents()},disable:function(){this.log("PaneManager::disable()");this.removeEvents()},addEvents:function(){this.log("PaneManager::addEvents()");this.log("this.background: "+this.background);this.background.addEvent("click",function(event){event.preventDefault();this.hidePanes()}.bind(this))},removeEvents:function(){this.log("PaneManager::removeEvents()");this.background.removeEvents("click")}});var Pane=new Class({Implements:[Options,Events,Log],options:{},printerSelector:null,container:null,element:null,elementFx:null,elementWidth:null,scrollBar:null,status:"close",initialize:function(container){this.log("Pane::initialize("+container+")");this.printerSelector=new PrinterSelector();this.container=$(container)},build:function(){this.log("Pane::build()");this.elementWidth=this.element.getStyle("width").toInt();this.elementFx=new Fx.Tween(this.element,{duration:250,transition:Fx.Transitions.Quad.easeOut,link:"cancel"});this.elementFx.set("left",-this.elementWidth);this.scrollBar=new ScrollBar(this.element.getElement(".content-container"));this.scrollBar.build();this.scrollBar.update()},reset:function(){this.log("Pane::reset()")},show:function(){this.log("Pane::show()");this.elementFx.removeEvents("complete");this.elementFx.addEvent("complete",function(event){this.setStatus("open");this.enable();this.scrollBar.show()}.bind(this));this.elementFx.start("left",0)},hide:function(){this.log("Pane::hide()");this.elementFx.removeEvents("complete");this.elementFx.addEvent("complete",function(event){this.setStatus("close");this.disable();this.scrollBar.hide();this.reset()}.bind(this));this.log("this.elementWidth: "+this.elementWidth);this.elementFx.start("left",-this.elementWidth)},enable:function(){this.addEvents()},disable:function(){this.removeEvents()},addEvents:function(){this.log("Pane::addEvents()")},removeEvents:function(){this.log("Pane::removeEvents()")},setStatus:function(status){this.log("Pane::setStatus("+status+")");this.status=status},getStatus:function(){this.log("Pane::getStatus()");return this.status}});var DetailPane=new Class({Implements:[Options,Events,Log],Extends:Pane,options:{},id:null,name:null,image:null,matches:null,score:null,initialize:function(container){this.log("DetailPane::initialize("+container+")");this.parent(container)},build:function(id,name,description,specifications,options,image,actions,matches,score){this.log("DetailPane::build("+id+", "+name+", "+description+", "+specifications+", "+options+", "+image+", "+actions+", "+matches+", "+score+")");this.id=id;this.name=name;this.image=image;this.matches=matches;this.score=score;var descriptionTruncated=description.truncate(800,".",". ");if(this.element){this.element.dispose()}var element=new Element("div",{id:"suggestion-detail","class":"pane"});var header=new Element("div",{"class":"header"});header.adopt(new Element("a",{href:"#",text:"Terug","class":"hide-pane"}));header.adopt(new Element("a",{href:"#","class":"close"}));var body=new Element("div",{"class":"body"});body.adopt(new Element("div",{"class":"shadow-header"}));body.adopt(new Element("div",{"class":"shadow-footer"}));var contentContainer=new Element("div",{"class":"content-container"});contentContainer.adopt(new Element("h2",{"class":"name",text:name}));var descriptionElement=new Element("div",{"class":"description"});var imageElement=new Element("div",{"class":"image"});imageElement.adopt(new Element("div",{"class":"loader"}));descriptionElement.adopt(imageElement);descriptionElement.adopt(new Element("p",{text:descriptionTruncated}));contentContainer.adopt(descriptionElement);if(specifications.length>0){var specsContainer=new Element("div",{"class":"specifications"});specsContainer.adopt(new Element("h4",{text:"Specificaties"}));var specificationsList=new Element("ul");specifications.each(function(specification,index){specificationsList.adopt(new Element("li",{html:'<span class="icon"></span>'+specification}))});specsContainer.adopt(specificationsList);contentContainer.adopt(specsContainer)}if(actions.readMore){var viewFolder=new Element("a",{href:actions.readMore,"class":"view-folder button",text:"Bekijk de folder (PDF)",target:"_blank"});contentContainer.adopt(viewFolder)}if(options.length>0){var optionsContainer=new Element("div",{"class":"options"});optionsContainer.adopt(new Element("h4",{text:"Uitbreidingsopties"}));var optionsList=new Element("ul");options.each(function(option,index){optionsList.adopt(new Element("li",{html:'<span class="icon"></span>'+option}))});optionsContainer.adopt(optionsList);contentContainer.adopt(optionsContainer)}var matchesList=new Element("div",{"class":"matches-list"});if(this.matches.length>0){var matches=new Element("ul",{"class":"matches"});this.matches.each(function(match,index){var li=new Element("li",{html:'<span class="icon"></span>'+match.text});if(!match.match){li.addClass("no-match")}matches.adopt(li)});matchesList.adopt(matches)}var match=new Element("div",{"class":"match"});var indicator=new Element("div",{"class":"indicator"});match.adopt(indicator);matchesList.adopt(match);contentContainer.adopt(matchesList);body.adopt(contentContainer);var footer=new Element("div",{"class":"footer"});footer.adopt(new Element("a",{href:"#","class":"hide-pane",text:"Terug"}));footer.adopt(new Element("a",{href:"#","class":"print",target:"_blank"}));footer.adopt(new Element("a",{href:"#","class":"offer-request button action",text:"Offerte aanvragen"}));element.adopt(header);element.adopt(body);element.adopt(footer);this.element=element;this.container.adopt(element);this.element.matchIndicatorFx=new Fx.Tween(indicator,{duration:500,unit:"%",transition:Fx.Transitions.Expo.easeOut,property:"width",link:"cancel"});this.element.matchIndicatorFx.set(0);this.parent();this.preloadImage()},show:function(){this.log("DetailPane::show()");this.parent();this.elementFx.addEvent("complete",function(event){this.startMatchIndicator.delay(250,this)}.bind(this))},addEvents:function(){this.log("DetailPane::addEvents()");this.element.getElement(".close").addEvent("click",function(event){event.preventDefault();Broadcaster.fireEvent("hideDetailPane")}.bind(this));this.element.getElements(".hide-pane").addEvent("click",function(event){event.preventDefault();Broadcaster.fireEvent("hideDetailPane")}.bind(this));this.element.getElement(".print").addEvent("click",function(event){event.preventDefault();var link=this.printerSelector.createPrintLink("one",this.id);window.open(link)}.bind(this));this.element.getElement(".offer-request").addEvent("click",function(event){event.preventDefault();this.printerSelector.requestOffer(this.id)}.bind(this))},removeEvents:function(){this.log("DetailPane::removeEvents()");this.element.getElement(".close").removeEvents("click");this.element.getElements(".hide-pane").removeEvents("click");this.element.getElement(".print").removeEvents("click");this.element.getElement(".offer-request").removeEvents("click")},preloadImage:function(){this.log("DetailPane::preloadImage()");this.showImageLoadState();var image=[this.image];var loadedImage=new Asset.images(image,{onProgress:function(counter,index){}.bind(this),onComplete:function(){var image=loadedImage[0];image.title=this.name;image.alt=this.name;this.element.getElement("div.image").adopt(image);var imageElement=this.element.getElement("div.image img").setStyle("opacity",0);imageElement.fade("in");this.hideImageLoadState()}.bind(this),onAbort:function(counter,index){this.hideImageLoadState()}.bind(this),onError:function(counter,index){this.hideImageLoadState()}.bind(this)})},startMatchIndicator:function(){this.log("DetailPane::startMatchIndicator()");this.log("this.score: "+this.score);this.element.matchIndicatorFx.start(this.score)},showImageLoadState:function(){this.log("DetailPane::showImageLoadState()");this.element.getElement(".image").getElement(".loader").fade("in")},hideImageLoadState:function(){this.log("DetailPane::hideImageLoadState()");this.element.getElement(".image").getElement(".loader").fade("out")}});function twitterCallback2(twitters){var statusHTML=[];for(var i=0;i<twitters.length;i++){var username=twitters[i].user.screen_name;var status=twitters[i].text.replace(/((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g,function(url){return'<a href="'+url+'" target="_blank" class="link">'+url+"</a>"}).replace(/\B@([_a-z0-9]+)/ig,function(reply){return reply.charAt(0)+'<a href="http://twitter.com/'+reply.substring(1)+'" target="_blank">'+reply.substring(1)+"</a>"}).replace(/#(\w*[a-zA-Z_]+\w*)/g,function(hash){return'<a href="https://twitter.com/#!/search/realtime/'+hash.replace("#","%23")+'" target="_blank" class="hash-tag">'+hash+"</a>"});var tweet;if(i==twitters.length-1){tweet='<li class="last-child" onmouseover="mouseOver(this, \'last-child\')" onmouseout="mouseOut(this, \'last-child\')">'}else{tweet='<li onmouseover="mouseOver(this)" onmouseout="mouseOut(this)">'}tweet+='<span class="tweet"><span class="status">'+status+'</span><a href="http://twitter.com/'+username+"/statuses/"+twitters[i].id_str+'" target="_blank" class="date">'+relative_time(twitters[i].created_at)+'</a><span class="actions"><a href="http://twitter.com/intent/tweet?in_reply_to='+twitters[i].id_str+'" target="_blank">reply</a> &bull; <a href="http://twitter.com/intent/retweet?tweet_id='+twitters[i].id_str+'" target="_blank">retweet</a> &bull; <a href="http://twitter.com/intent/favorite?tweet_id='+twitters[i].id_str+'" target="_blank">favorite</a></span></span></li>';statusHTML.push(tweet)}document.getElementById("twitter_update_list").innerHTML=statusHTML.join("")}function relative_time(time_value){var values=time_value.split(" ");time_value=values[1]+" "+values[2]+", "+values[5]+" "+values[3];var parsed_date=Date.parse(time_value);var relative_to=(arguments.length>1)?arguments[1]:new Date();var delta=parseInt((relative_to.getTime()-parsed_date)/1000);delta=delta+(relative_to.getTimezoneOffset()*60);if(delta<60){return"minder dan een minuut geleden"}else{if(delta<120){return"ongeveer een minuut geleden"}else{if(delta<(60*60)){return(parseInt(delta/60)).toString()+" minuten geleden"}else{if(delta<(120*60)){return"ongeveer een uur geleden"}else{if(delta<(24*60*60)){return"ongeveer "+(parseInt(delta/3600)).toString()+" uur geleden"}else{if(delta<(48*60*60)){return"1 dag geleden"}else{return(parseInt(delta/86400)).toString()+" dagen geleden"}}}}}}}function mouseOver(element){element.className+=" hover"}function mouseOut(element,defaultClass){if(defaultClass){element.className=defaultClass}else{element.className=""}};
