
var MooTools = { version: '1.11' };
function $defined(obj) {
    return (obj != undefined);
};
function $type(obj) {
    if (!$defined(obj)) return false;
    if (obj.htmlElement) return 'element';
    var type = typeof obj;
    if (type == 'object' && obj.nodeName) {
        switch (obj.nodeType) {
            case 1: return 'element';
            case 3: return (/\S/).test(obj.nodeValue) ? 'textnode' : 'whitespace';
        }
}
if (type == 'object' || type == 'function') {
    switch (obj.constructor) {
        case Array: return 'array';
        case RegExp: return 'regexp';
        case Class: return 'class';
}
if (typeof obj.length == 'number') {
    if (obj.item) return 'collection';
    if (obj.callee) return 'arguments';
}
}
return type;
};
function $merge(){var mix={};for(var i=0;i<arguments.length;i++){for(var property in arguments[i]){var ap=arguments[i][property];var mp=mix[property];if(mp&&$type(ap)=='object'&&$type(mp)=='object')mix[property]=$merge(mp,ap);else mix[property]=ap;}}
return mix;};var $extend=function(){var args=arguments;if(!args[1])args=[this,args[0]];for(var property in args[1])args[0][property]=args[1][property];return args[0];};var $native=function(){for(var i=0,l=arguments.length;i<l;i++){arguments[i].extend=function(props){for(var prop in props){if(!this.prototype[prop])this.prototype[prop]=props[prop];if(!this[prop])this[prop]=$native.generic(prop);}};}};$native.generic=function(prop){return function(bind){return this.prototype[prop].apply(bind,Array.prototype.slice.call(arguments,1));};};$native(Function,Array,String,Number);function $chk(obj){return!!(obj||obj===0);};function $pick(obj,picked){return $defined(obj)?obj:picked;};function $random(min,max){return Math.floor(Math.random()*(max-min+1)+min);};function $time(){return new Date().getTime();};function $clear(timer){clearTimeout(timer);clearInterval(timer);return null;};var Abstract=function(obj){obj=obj||{};obj.extend=$extend;return obj;};var Window=new Abstract(window);var Document=new Abstract(document);document.head=document.getElementsByTagName('head')[0];window.xpath=!!(document.evaluate);if(window.ActiveXObject)window.ie=window[window.XMLHttpRequest?'ie7':'ie6']=true;else if(document.childNodes&&!document.all&&!navigator.taintEnabled)window.webkit=window[window.xpath?'webkit420':'webkit419']=true;else if(document.getBoxObjectFor!=null)window.gecko=true;window.khtml=window.webkit;Object.extend=$extend;if(typeof HTMLElement=='undefined'){var HTMLElement=function(){};if(window.webkit)document.createElement("iframe");HTMLElement.prototype=(window.webkit)?window["[[DOMElement.prototype]]"]:{};}
HTMLElement.prototype.htmlElement=function(){};if(window.ie6)try{document.execCommand("BackgroundImageCache",false,true);}catch(e){};var Class=function(properties){var klass=function(){return(arguments[0]!==null&&this.initialize&&$type(this.initialize)=='function')?this.initialize.apply(this,arguments):this;};$extend(klass,this);klass.prototype=properties;klass.constructor=Class;return klass;};Class.empty=function(){};Class.prototype={extend:function(properties){var proto=new this(null);for(var property in properties){var pp=proto[property];proto[property]=Class.Merge(pp,properties[property]);}
return new Class(proto);},implement:function(){for(var i=0,l=arguments.length;i<l;i++)$extend(this.prototype,arguments[i]);}};Class.Merge=function(previous,current){if(previous&&previous!=current){var type=$type(current);if(type!=$type(previous))return current;switch(type){case'function':var merged=function(){this.parent=arguments.callee.parent;return current.apply(this,arguments);};merged.parent=previous;return merged;case'object':return $merge(previous,current);}}
return current;};var Chain=new Class({chain:function(fn){this.chains=this.chains||[];this.chains.push(fn);return this;},callChain:function(){if(this.chains&&this.chains.length)this.chains.shift().delay(10,this);},clearChain:function(){this.chains=[];}});var Events=new Class({addEvent:function(type,fn){if(fn!=Class.empty){this.$events=this.$events||{};this.$events[type]=this.$events[type]||[];this.$events[type].include(fn);}
return this;},fireEvent:function(type,args,delay){if(this.$events&&this.$events[type]){this.$events[type].each(function(fn){fn.create({'bind':this,'delay':delay,'arguments':args})();},this);}
return this;},removeEvent:function(type,fn){if(this.$events&&this.$events[type])this.$events[type].remove(fn);return this;}});var Options=new Class({setOptions:function(){this.options=$merge.apply(null,[this.options].extend(arguments));if(this.addEvent){for(var option in this.options){if($type(this.options[option]=='function')&&(/^on[A-Z]/).test(option))this.addEvent(option,this.options[option]);}}
return this;}});Array.extend({forEach:function(fn,bind){for(var i=0,j=this.length;i<j;i++)fn.call(bind,this[i],i,this);},filter:function(fn,bind){var results=[];for(var i=0,j=this.length;i<j;i++){if(fn.call(bind,this[i],i,this))results.push(this[i]);}
return results;},map:function(fn,bind){var results=[];for(var i=0,j=this.length;i<j;i++)results[i]=fn.call(bind,this[i],i,this);return results;},every:function(fn,bind){for(var i=0,j=this.length;i<j;i++){if(!fn.call(bind,this[i],i,this))return false;}
return true;},some:function(fn,bind){for(var i=0,j=this.length;i<j;i++){if(fn.call(bind,this[i],i,this))return true;}
return false;},indexOf:function(item,from){var len=this.length;for(var i=(from<0)?Math.max(0,len+from):from||0;i<len;i++){if(this[i]===item)return i;}
return-1;},copy:function(start,length){start=start||0;if(start<0)start=this.length+start;length=length||(this.length-start);var newArray=[];for(var i=0;i<length;i++)newArray[i]=this[start++];return newArray;},remove:function(item){var i=0;var len=this.length;while(i<len){if(this[i]===item){this.splice(i,1);len--;}else{i++;}}
return this;},contains:function(item,from){return this.indexOf(item,from)!=-1;},associate:function(keys){var obj={},length=Math.min(this.length,keys.length);for(var i=0;i<length;i++)obj[keys[i]]=this[i];return obj;},extend:function(array){for(var i=0,j=array.length;i<j;i++)this.push(array[i]);return this;},merge:function(array){for(var i=0,l=array.length;i<l;i++)this.include(array[i]);return this;},include:function(item){if(!this.contains(item))this.push(item);return this;},getRandom:function(){return this[$random(0,this.length-1)]||null;},getLast:function(){return this[this.length-1]||null;}});Array.prototype.each=Array.prototype.forEach;Array.each=Array.forEach;function $A(array){return Array.copy(array);};function $each(iterable,fn,bind){if(iterable&&typeof iterable.length=='number'&&$type(iterable)!='object'){Array.forEach(iterable,fn,bind);}else{for(var name in iterable)fn.call(bind||iterable,iterable[name],name);}};Array.prototype.test=Array.prototype.contains;String.extend({test:function(regex,params){return(($type(regex)=='string')?new RegExp(regex,params):regex).test(this);},toInt:function(){return parseInt(this,10);},toFloat:function(){return parseFloat(this);},camelCase:function(){return this.replace(/-\D/g,function(match){return match.charAt(1).toUpperCase();});},hyphenate:function(){return this.replace(/\w[A-Z]/g,function(match){return(match.charAt(0)+'-'+match.charAt(1).toLowerCase());});},capitalize:function(){return this.replace(/\b[a-z]/g,function(match){return match.toUpperCase();});},trim:function(){return this.replace(/^\s+|\s+$/g,'');},clean:function(){return this.replace(/\s{2,}/g,' ').trim();},rgbToHex:function(array){var rgb=this.match(/\d{1,3}/g);return(rgb)?rgb.rgbToHex(array):false;},hexToRgb:function(array){var hex=this.match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/);return(hex)?hex.slice(1).hexToRgb(array):false;},contains:function(string,s){return(s)?(s+this+s).indexOf(s+string+s)>-1:this.indexOf(string)>-1;},escapeRegExp:function(){return this.replace(/([.*+?^${}()|[\]\/\\])/g,'\\$1');}});Array.extend({rgbToHex:function(array){if(this.length<3)return false;if(this.length==4&&this[3]==0&&!array)return'transparent';var hex=[];for(var i=0;i<3;i++){var bit=(this[i]-0).toString(16);hex.push((bit.length==1)?'0'+bit:bit);}
return array?hex:'#'+hex.join('');},hexToRgb:function(array){if(this.length!=3)return false;var rgb=[];for(var i=0;i<3;i++){rgb.push(parseInt((this[i].length==1)?this[i]+this[i]:this[i],16));}
return array?rgb:'rgb('+rgb.join(',')+')';}});Function.extend({create:function(options){var fn=this;options=$merge({'bind':fn,'event':false,'arguments':null,'delay':false,'periodical':false,'attempt':false},options);if($chk(options.arguments)&&$type(options.arguments)!='array')options.arguments=[options.arguments];return function(event){var args;if(options.event){event=event||window.event;args=[(options.event===true)?event:new options.event(event)];if(options.arguments)args.extend(options.arguments);}
else args=options.arguments||arguments;var returns=function(){return fn.apply($pick(options.bind,fn),args);};if(options.delay)return setTimeout(returns,options.delay);if(options.periodical)return setInterval(returns,options.periodical);if(options.attempt)try{return returns();}catch(err){return false;};return returns();};},pass:function(args,bind){return this.create({'arguments':args,'bind':bind});},attempt:function(args,bind){return this.create({'arguments':args,'bind':bind,'attempt':true})();},bind:function(bind,args){return this.create({'bind':bind,'arguments':args});},bindAsEventListener:function(bind,args){return this.create({'bind':bind,'event':true,'arguments':args});},delay:function(delay,bind,args){return this.create({'delay':delay,'bind':bind,'arguments':args})();},periodical:function(interval,bind,args){return this.create({'periodical':interval,'bind':bind,'arguments':args})();}});Number.extend({toInt:function(){return parseInt(this);},toFloat:function(){return parseFloat(this);},limit:function(min,max){return Math.min(max,Math.max(min,this));},round:function(precision){precision=Math.pow(10,precision||0);return Math.round(this*precision)/precision;},times:function(fn){for(var i=0;i<this;i++)fn(i);}});var Element=new Class({initialize:function(el,props){if($type(el)=='string'){if(window.ie&&props&&(props.name||props.type)){var name=(props.name)?' name="'+props.name+'"':'';var type=(props.type)?' type="'+props.type+'"':'';delete props.name;delete props.type;el='<'+el+name+type+'>';}
el=document.createElement(el);}
el=$(el);return(!props||!el)?el:el.set(props);}});var Elements=new Class({initialize:function(elements){return(elements)?$extend(elements,this):this;}});Elements.extend=function(props){for(var prop in props){this.prototype[prop]=props[prop];this[prop]=$native.generic(prop);}};function $(el){if(!el)return null;if(el.htmlElement)return Garbage.collect(el);if([window,document].contains(el))return el;var type=$type(el);if(type=='string'){el=document.getElementById(el);type=(el)?'element':false;}
if(type!='element')return null;if(el.htmlElement)return Garbage.collect(el);if(['object','embed'].contains(el.tagName.toLowerCase()))return el;$extend(el,Element.prototype);el.htmlElement=function(){};return Garbage.collect(el);};document.getElementsByKevin=document.getElementsByTagName;function $$(){var elements=[];for(var i=0,j=arguments.length;i<j;i++){var selector=arguments[i];switch($type(selector)){case'element':elements.push(selector);case'boolean':break;case false:break;case'string':selector=document.getElementsByKevin(selector,true);default:elements.extend(selector);}}
return $$.unique(elements);};$$.unique=function(array){var elements=[];for(var i=0,l=array.length;i<l;i++){if(array[i].$included)continue;var element=$(array[i]);if(element&&!element.$included){element.$included=true;elements.push(element);}}
for(var n=0,d=elements.length;n<d;n++)elements[n].$included=null;return new Elements(elements);};Elements.Multi=function(property){return function(){var args=arguments;var items=[];var elements=true;for(var i=0,j=this.length,returns;i<j;i++){returns=this[i][property].apply(this[i],args);if($type(returns)!='element')elements=false;items.push(returns);};return(elements)?$$.unique(items):items;};};Element.extend=function(properties){for(var property in properties){HTMLElement.prototype[property]=properties[property];Element.prototype[property]=properties[property];Element[property]=$native.generic(property);var elementsProperty=(Array.prototype[property])?property+'Elements':property;Elements.prototype[elementsProperty]=Elements.Multi(property);}};Element.extend({set:function(props){for(var prop in props){var val=props[prop];switch(prop){case'styles':this.setStyles(val);break;case'events':if(this.addEvents)this.addEvents(val);break;case'properties':this.setProperties(val);break;default:this.setProperty(prop,val);}}
return this;},inject:function(el,where){el=$(el);switch(where){case'before':el.parentNode.insertBefore(this,el);break;case'after':var next=el.getNext();if(!next)el.parentNode.appendChild(this);else el.parentNode.insertBefore(this,next);break;case'top':var first=el.firstChild;if(first){el.insertBefore(this,first);break;}
default:el.appendChild(this);}
return this;},injectBefore:function(el){return this.inject(el,'before');},injectAfter:function(el){return this.inject(el,'after');},injectInside:function(el){return this.inject(el,'bottom');},injectTop:function(el){return this.inject(el,'top');},adopt:function(){var elements=[];$each(arguments,function(argument){elements=elements.concat(argument);});$$(elements).inject(this);return this;},remove:function(){return this.parentNode.removeChild(this);},clone:function(contents){var el=$(this.cloneNode(contents!==false));if(!el.$events)return el;el.$events={};for(var type in this.$events)el.$events[type]={'keys':$A(this.$events[type].keys),'values':$A(this.$events[type].values)};return el.removeEvents();},replaceWith:function(el){el=$(el);this.parentNode.replaceChild(el,this);return el;},appendText:function(text){this.appendChild(document.createTextNode(text));return this;},hasClass:function(className){return this.className.contains(className,' ');},addClass:function(className){if(!this.hasClass(className))this.className=(this.className+' '+className).clean();return this;},removeClass:function(className){this.className=this.className.replace(new RegExp('(^|\\s)'+className+'(?:\\s|$)'),'$1').clean();return this;},toggleClass:function(className){return this.hasClass(className)?this.removeClass(className):this.addClass(className);},setStyle:function(property,value){switch(property){case'opacity':return this.setOpacity(parseFloat(value));case'float':property=(window.ie)?'styleFloat':'cssFloat';}
property=property.camelCase();switch($type(value)){case'number':if(!['zIndex','zoom'].contains(property))value+='px';break;case'array':value='rgb('+value.join(',')+')';}
this.style[property]=value;return this;},setStyles:function(source){switch($type(source)){case'object':Element.setMany(this,'setStyle',source);break;case'string':this.style.cssText=source;}
return this;},setOpacity:function(opacity){if(opacity==0){if(this.style.visibility!="hidden")this.style.visibility="hidden";}else{if(this.style.visibility!="visible")this.style.visibility="visible";}
if(!this.currentStyle||!this.currentStyle.hasLayout)this.style.zoom=1;if(window.ie)this.style.filter=(opacity==1)?'':"alpha(opacity="+opacity*100+")";this.style.opacity=this.$tmp.opacity=opacity;return this;},getStyle:function(property){property=property.camelCase();var result=this.style[property];if(!$chk(result)){if(property=='opacity')return this.$tmp.opacity;result=[];for(var style in Element.Styles){if(property==style){Element.Styles[style].each(function(s){var style=this.getStyle(s);result.push(parseInt(style)?style:'0px');},this);if(property=='border'){var every=result.every(function(bit){return(bit==result[0]);});return(every)?result[0]:false;}
return result.join(' ');}}
if(property.contains('border')){if(Element.Styles.border.contains(property)){return['Width','Style','Color'].map(function(p){return this.getStyle(property+p);},this).join(' ');}else if(Element.borderShort.contains(property)){return['Top','Right','Bottom','Left'].map(function(p){return this.getStyle('border'+p+property.replace('border',''));},this).join(' ');}}
if(document.defaultView)result=document.defaultView.getComputedStyle(this,null).getPropertyValue(property.hyphenate());else if(this.currentStyle)result=this.currentStyle[property];}
if(window.ie)result=Element.fixStyle(property,result,this);if(result&&property.test(/color/i)&&result.contains('rgb')){return result.split('rgb').splice(1,4).map(function(color){return color.rgbToHex();}).join(' ');}
return result;},getStyles:function(){return Element.getMany(this,'getStyle',arguments);},walk:function(brother,start){brother+='Sibling';var el=(start)?this[start]:this[brother];while(el&&$type(el)!='element')el=el[brother];return $(el);},getPrevious:function(){return this.walk('previous');},getNext:function(){return this.walk('next');},getFirst:function(){return this.walk('next','firstChild');},getLast:function(){return this.walk('previous','lastChild');},getParent:function(){return $(this.parentNode);},getChildren:function(){return $$(this.childNodes);},hasChild:function(el){return!!$A(this.getElementsByTagName('*')).contains(el);},getProperty:function(property){var index=Element.Properties[property];if(index)return this[index];var flag=Element.PropertiesIFlag[property]||0;if(!window.ie||flag)return this.getAttribute(property,flag);var node=this.attributes[property];return(node)?node.nodeValue:null;},removeProperty:function(property){var index=Element.Properties[property];if(index)this[index]='';else this.removeAttribute(property);return this;},getProperties:function(){return Element.getMany(this,'getProperty',arguments);},setProperty:function(property,value){var index=Element.Properties[property];if(index)this[index]=value;else this.setAttribute(property,value);return this;},setProperties:function(source){return Element.setMany(this,'setProperty',source);},setHTML:function(){this.innerHTML=$A(arguments).join('');return this;},setText:function(text){var tag=this.getTag();if(['style','script'].contains(tag)){if(window.ie){if(tag=='style')this.styleSheet.cssText=text;else if(tag=='script')this.setProperty('text',text);return this;}else{this.removeChild(this.firstChild);return this.appendText(text);}}
this[$defined(this.innerText)?'innerText':'textContent']=text;return this;},getText:function(){var tag=this.getTag();if(['style','script'].contains(tag)){if(window.ie){if(tag=='style')return this.styleSheet.cssText;else if(tag=='script')return this.getProperty('text');}else{return this.innerHTML;}}
return($pick(this.innerText,this.textContent));},getTag:function(){return this.tagName.toLowerCase();},empty:function(){Garbage.trash(this.getElementsByTagName('*'));return this.setHTML('');}});Element.fixStyle=function(property,result,element){if($chk(parseInt(result)))return result;if(['height','width'].contains(property)){var values=(property=='width')?['left','right']:['top','bottom'];var size=0;values.each(function(value){size+=element.getStyle('border-'+value+'-width').toInt()+element.getStyle('padding-'+value).toInt();});return element['offset'+property.capitalize()]-size+'px';}else if(property.test(/border(.+)Width|margin|padding/)){return'0px';}
return result;};Element.Styles={'border':[],'padding':[],'margin':[]};['Top','Right','Bottom','Left'].each(function(direction){for(var style in Element.Styles)Element.Styles[style].push(style+direction);});Element.borderShort=['borderWidth','borderStyle','borderColor'];Element.getMany=function(el,method,keys){var result={};$each(keys,function(key){result[key]=el[method](key);});return result;};Element.setMany=function(el,method,pairs){for(var key in pairs)el[method](key,pairs[key]);return el;};Element.Properties=new Abstract({'class':'className','for':'htmlFor','colspan':'colSpan','rowspan':'rowSpan','accesskey':'accessKey','tabindex':'tabIndex','maxlength':'maxLength','readonly':'readOnly','frameborder':'frameBorder','value':'value','disabled':'disabled','checked':'checked','multiple':'multiple','selected':'selected'});Element.PropertiesIFlag={'href':2,'src':2};Element.Methods={Listeners:{addListener:function(type,fn){if(this.addEventListener)this.addEventListener(type,fn,false);else this.attachEvent('on'+type,fn);return this;},removeListener:function(type,fn){if(this.removeEventListener)this.removeEventListener(type,fn,false);else this.detachEvent('on'+type,fn);return this;}}};window.extend(Element.Methods.Listeners);document.extend(Element.Methods.Listeners);Element.extend(Element.Methods.Listeners);var Garbage={elements:[],collect:function(el){if(!el.$tmp){Garbage.elements.push(el);el.$tmp={'opacity':1};}
return el;},trash:function(elements){for(var i=0,j=elements.length,el;i<j;i++){if(!(el=elements[i])||!el.$tmp)continue;if(el.$events)el.fireEvent('trash').removeEvents();for(var p in el.$tmp)el.$tmp[p]=null;for(var d in Element.prototype)el[d]=null;Garbage.elements[Garbage.elements.indexOf(el)]=null;el.htmlElement=el.$tmp=el=null;}
Garbage.elements.remove(null);},empty:function(){Garbage.collect(window);Garbage.collect(document);Garbage.trash(Garbage.elements);}};window.addListener('beforeunload',function(){if(!window.ie){window.addListener('unload',Garbage.empty);if(window.ie)window.addListener('unload',CollectGarbage);}});var Event=new Class({initialize:function(event){if(event&&event.$extended)return event;this.$extended=true;event=event||window.event;this.event=event;this.type=event.type;this.target=event.target||event.srcElement;if(this.target.nodeType==3)this.target=this.target.parentNode;this.shift=event.shiftKey;this.control=event.ctrlKey;this.alt=event.altKey;this.meta=event.metaKey;if(['DOMMouseScroll','mousewheel'].contains(this.type)){this.wheel=(event.wheelDelta)?event.wheelDelta/120:-(event.detail||0)/3;}else if(this.type.contains('key')){this.code=event.which||event.keyCode;for(var name in Event.keys){if(Event.keys[name]==this.code){this.key=name;break;}}
if(this.type=='keydown'){var fKey=this.code-111;if(fKey>0&&fKey<13)this.key='f'+fKey;}
this.key=this.key||String.fromCharCode(this.code).toLowerCase();}else if(this.type.test(/(click|mouse|menu)/)){this.page={'x':event.pageX||event.clientX+document.documentElement.scrollLeft,'y':event.pageY||event.clientY+document.documentElement.scrollTop};this.client={'x':event.pageX?event.pageX-window.pageXOffset:event.clientX,'y':event.pageY?event.pageY-window.pageYOffset:event.clientY};this.rightClick=(event.which==3)||(event.button==2);switch(this.type){case'mouseover':this.relatedTarget=event.relatedTarget||event.fromElement;break;case'mouseout':this.relatedTarget=event.relatedTarget||event.toElement;}
this.fixRelatedTarget();}
return this;},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;}});Event.fix={relatedTarget:function(){if(this.relatedTarget&&this.relatedTarget.nodeType==3)this.relatedTarget=this.relatedTarget.parentNode;},relatedTargetGecko:function(){try{Event.fix.relatedTarget.call(this);}catch(e){this.relatedTarget=this.target;}}};Event.prototype.fixRelatedTarget=(window.gecko)?Event.fix.relatedTargetGecko:Event.fix.relatedTarget;Event.keys=new Abstract({'enter':13,'up':38,'down':40,'left':37,'right':39,'esc':27,'space':32,'backspace':8,'tab':9,'delete':46});Element.Methods.Events={addEvent:function(type,fn){if(type=='load'||type=='domready'){EventCenter.add(fn,'domready');return false;}this.$events=this.$events||{};this.$events[type]=this.$events[type]||{'keys':[],'values':[]};if(this.$events[type].keys.contains(fn))return this;this.$events[type].keys.push(fn);var realType=type;var custom=Element.Events[type];if(custom){if(custom.add)custom.add.call(this,fn);if(custom.map)fn=custom.map;if(custom.type)realType=custom.type;}
if(!this.addEventListener)fn=fn.create({'bind':this,'event':true});this.$events[type].values.push(fn);return(Element.NativeEvents.contains(realType))?this.addListener(realType,fn):this;},removeEvent:function(type,fn){if(!this.$events||!this.$events[type])return this;var pos=this.$events[type].keys.indexOf(fn);if(pos==-1)return this;var key=this.$events[type].keys.splice(pos,1)[0];var value=this.$events[type].values.splice(pos,1)[0];var custom=Element.Events[type];if(custom){if(custom.remove)custom.remove.call(this,fn);if(custom.type)type=custom.type;}
return(Element.NativeEvents.contains(type))?this.removeListener(type,value):this;},addEvents:function(source){return Element.setMany(this,'addEvent',source);},removeEvents:function(type){if(!this.$events)return this;if(!type){for(var evType in this.$events)this.removeEvents(evType);this.$events=null;}else if(this.$events[type]){this.$events[type].keys.each(function(fn){this.removeEvent(type,fn);},this);this.$events[type]=null;}
return this;},fireEvent:function(type,args,delay){if(this.$events&&this.$events[type]){this.$events[type].keys.each(function(fn){fn.create({'bind':this,'delay':delay,'arguments':args})();},this);}
return this;},cloneEvents:function(from,type){if(!from.$events)return this;if(!type){for(var evType in from.$events)this.cloneEvents(from,evType);}else if(from.$events[type]){from.$events[type].keys.each(function(fn){this.addEvent(type,fn);},this);}
return this;}};window.extend(Element.Methods.Events);document.extend(Element.Methods.Events);Element.extend(Element.Methods.Events);Element.Events=new Abstract({'mouseenter':{type:'mouseover',map:function(event){event=new Event(event);if(event.relatedTarget!=this&&!this.hasChild(event.relatedTarget))this.fireEvent('mouseenter',event);}},'mouseleave':{type:'mouseout',map:function(event){event=new Event(event);if(event.relatedTarget!=this&&!this.hasChild(event.relatedTarget))this.fireEvent('mouseleave',event);}},'mousewheel':{type:(window.gecko)?'DOMMouseScroll':'mousewheel'}});Element.NativeEvents=['click','dblclick','mouseup','mousedown','mousewheel','DOMMouseScroll','mouseover','mouseout','mousemove','keydown','keypress','keyup','load','unload','beforeunload','resize','move','focus','blur','change','submit','reset','select','error','abort','contextmenu','scroll'];Function.extend({bindWithEvent:function(bind,args){return this.create({'bind':bind,'arguments':args,'event':Event});}});Elements.extend({filterByTag:function(tag){return new Elements(this.filter(function(el){return(Element.getTag(el)==tag);}));},filterByClass:function(className,nocash){var elements=this.filter(function(el){return(el.className&&el.className.contains(className,' '));});return(nocash)?elements:new Elements(elements);},filterById:function(id,nocash){var elements=this.filter(function(el){return(el.id==id);});return(nocash)?elements:new Elements(elements);},filterByAttribute:function(name,operator,value,nocash){var elements=this.filter(function(el){var current=Element.getProperty(el,name);if(!current)return false;if(!operator)return true;switch(operator){case'=':return(current==value);case'*=':return(current.contains(value));case'^=':return(current.substr(0,value.length)==value);case'$=':return(current.substr(current.length-value.length)==value);case'!=':return(current!=value);case'~=':return current.contains(value,' ');}
return false;});return(nocash)?elements:new Elements(elements);}});function $E(selector,filter){return($(filter)||document).getElement(selector);};function $ES(selector,filter){return($(filter)||document).getElementsByKevin(selector);};$$.shared={'regexp':/^(\w*|\*)(?:#([\w-]+)|\.([\w-]+))?(?:\[(\w+)(?:([!*^$]?=)["']?([^"'\]]*)["']?)?])?$/,'xpath':{getParam:function(items,context,param,i){var temp=[context.namespaceURI?'xhtml:':'',param[1]];if(param[2])temp.push('[@id="',param[2],'"]');if(param[3])temp.push('[contains(concat(" ", @class, " "), " ',param[3],' ")]');if(param[4]){if(param[5]&&param[6]){switch(param[5]){case'*=':temp.push('[contains(@',param[4],', "',param[6],'")]');break;case'^=':temp.push('[starts-with(@',param[4],', "',param[6],'")]');break;case'$=':temp.push('[substring(@',param[4],', string-length(@',param[4],') - ',param[6].length,' + 1) = "',param[6],'"]');break;case'=':temp.push('[@',param[4],'="',param[6],'"]');break;case'!=':temp.push('[@',param[4],'!="',param[6],'"]');}}else{temp.push('[@',param[4],']');}}
items.push(temp.join(''));return items;},getItems:function(items,context,nocash){var elements=[];var xpath=document.evaluate('.//'+items.join('//'),context,$$.shared.resolver,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);for(var i=0,j=xpath.snapshotLength;i<j;i++)elements.push(xpath.snapshotItem(i));return(nocash)?elements:new Elements(elements.map($));}},'normal':{getParam:function(items,context,param,i){if(i==0){if(param[2]){var el=context.getElementById(param[2]);if(!el||((param[1]!='*')&&(Element.getTag(el)!=param[1])))return false;items=[el];}else{items=$A(context.getElementsByTagName(param[1]));}}else{items=$$.shared.getElementsByTagName(items,param[1]);if(param[2])items=Elements.filterById(items,param[2],true);}
if(param[3])items=Elements.filterByClass(items,param[3],true);if(param[4])items=Elements.filterByAttribute(items,param[4],param[5],param[6],true);return items;},getItems:function(items,context,nocash){return(nocash)?items:$$.unique(items);}},resolver:function(prefix){return(prefix=='xhtml')?'http://www.w3.org/1999/xhtml':false;},getElementsByTagName:function(context,tagName){var found=[];for(var i=0,j=context.length;i<j;i++)found.extend(context[i].getElementsByTagName(tagName));return found;}};$$.shared.method=(window.xpath)?'xpath':'normal';Element.Methods.Dom={getElements:function(selector,nocash){var items=[];selector=selector.trim().split(' ');for(var i=0,j=selector.length;i<j;i++){var sel=selector[i];var param=sel.match($$.shared.regexp);if(!param)break;param[1]=param[1]||'*';var temp=$$.shared[$$.shared.method].getParam(items,this,param,i);if(!temp)break;items=temp;}
return $$.shared[$$.shared.method].getItems(items,this,nocash);},getElement:function(selector){return $(this.getElements(selector,true)[0]||false);},getElementsByKevin:function(selector,nocash){var elements=[];selector=selector.split(',');for(var i=0,j=selector.length;i<j;i++)elements=elements.concat(this.getElements(selector[i],true));return(nocash)?elements:$$.unique(elements);}};Element.extend({getElementById:function(id){var el=document.getElementById(id);if(!el)return false;for(var parent=el.parentNode;parent!=this;parent=parent.parentNode){if(!parent)return false;}
return el;},getElementsByClassName:function(className){return this.getElements('.'+className);}});document.extend(Element.Methods.Dom);Element.extend(Element.Methods.Dom);Element.extend({getValue:function(){switch(this.getTag()){case'select':var values=[];$each(this.options,function(option){if(option.selected)values.push($pick(option.value,option.text));});return(this.multiple)?values:values[0];case'input':if(!(this.checked&&['checkbox','radio'].contains(this.type))&&!['hidden','text','password'].contains(this.type))break;case'textarea':return this.value;}
return false;},getFormElements:function(){return $$(this.getElementsByTagName('input'),this.getElementsByTagName('select'),this.getElementsByTagName('textarea'));},toQueryString:function(){var queryString=[];this.getFormElements().each(function(el){var name=el.name;var value=el.getValue();if(value===false||!name||el.disabled)return;var qs=function(val){queryString.push(name+'='+encodeURIComponent(val));};if($type(value)=='array')value.each(qs);else qs(value);});return queryString.join('&');}});Element.extend({scrollTo:function(x,y){this.scrollLeft=x;this.scrollTop=y;},getSize:function(){return{'scroll':{'x':this.scrollLeft,'y':this.scrollTop},'size':{'x':this.offsetWidth,'y':this.offsetHeight},'scrollSize':{'x':this.scrollWidth,'y':this.scrollHeight}};},getPosition:function(overflown){overflown=overflown||[];var el=this,left=0,top=0;do{left+=el.offsetLeft||0;top+=el.offsetTop||0;el=el.offsetParent;}while(el);overflown.each(function(element){left-=element.scrollLeft||0;top-=element.scrollTop||0;});return{'x':left,'y':top};},getTop:function(overflown){return this.getPosition(overflown).y;},getLeft:function(overflown){return this.getPosition(overflown).x;},getCoordinates:function(overflown){var position=this.getPosition(overflown);var obj={'width':this.offsetWidth,'height':this.offsetHeight,'left':position.x,'top':position.y};obj.right=obj.left+obj.width;obj.bottom=obj.top+obj.height;return obj;}});Element.Events.domready={add:function(fn){if(window.loaded){fn.call(this);return;}
var domReady=function(){if(window.loaded)return;window.loaded=true;window.timer=$clear(window.timer);this.fireEvent('domready');}.bind(this);if(document.readyState&&window.webkit){window.timer=function(){if(['loaded','complete'].contains(document.readyState))domReady();}.periodical(50);}else if(document.readyState&&window.ie){if(!$('ie_ready')){var src=(window.location.protocol=='https:')?'://0':'javascript:void(0)';document.write('<script id="ie_ready" defer src="'+src+'"><\/script>');$('ie_ready').onreadystatechange=function(){if(this.readyState=='complete')domReady();};}}else{window.addListener("load",domReady);document.addListener("DOMContentLoaded",domReady);}}};window.onDomReady=function(fn){return this.addEvent('domready',fn);};window.extend({getWidth:function(){if(this.webkit419)return this.innerWidth;if(this.opera)return document.body.clientWidth;return document.documentElement.clientWidth;},getHeight:function(){if(this.webkit419)return this.innerHeight;if(this.opera)return document.body.clientHeight;return document.documentElement.clientHeight;},getScrollWidth:function(){if(this.ie)return Math.max(document.documentElement.offsetWidth,document.documentElement.scrollWidth);if(this.webkit)return document.body.scrollWidth;return document.documentElement.scrollWidth;},getScrollHeight:function(){if(this.ie)return Math.max(document.documentElement.offsetHeight,document.documentElement.scrollHeight);if(this.webkit)return document.body.scrollHeight;return document.documentElement.scrollHeight;},getScrollLeft:function(){return this.pageXOffset||document.documentElement.scrollLeft;},getScrollTop:function(){return this.pageYOffset||document.documentElement.scrollTop;},getSize:function(){return{'size':{'x':this.getWidth(),'y':this.getHeight()},'scrollSize':{'x':this.getScrollWidth(),'y':this.getScrollHeight()},'scroll':{'x':this.getScrollLeft(),'y':this.getScrollTop()}};},getPosition:function(){return{'x':0,'y':0};}});var Fx={};Fx.Base=new Class({options:{onStart:Class.empty,onComplete:Class.empty,onCancel:Class.empty,transition:function(p){return-(Math.cos(Math.PI*p)-1)/2;},duration:500,unit:'px',wait:true,fps:50},initialize:function(options){this.element=this.element||null;this.setOptions(options);if(this.options.initialize)this.options.initialize.call(this);},step:function(){var time=$time();if(time<this.time+this.options.duration){this.delta=this.options.transition((time-this.time)/this.options.duration);this.setNow();this.increase();}else{this.stop(true);this.set(this.to);this.fireEvent('onComplete',this.element,10);this.callChain();}},set:function(to){this.now=to;this.increase();return this;},setNow:function(){this.now=this.compute(this.from,this.to);},compute:function(from,to){return(to-from)*this.delta+from;},start:function(from,to){if(!this.options.wait)this.stop();else if(this.timer)return this;this.from=from;this.to=to;this.change=this.to-this.from;this.time=$time();this.timer=this.step.periodical(Math.round(1000/this.options.fps),this);this.fireEvent('onStart',this.element);return this;},stop:function(end){if(!this.timer)return this;this.timer=$clear(this.timer);if(!end)this.fireEvent('onCancel',this.element);return this;},custom:function(from,to){return this.start(from,to);},clearTimer:function(end){return this.stop(end);}});Fx.Base.implement(new Chain,new Events,new Options);Fx.CSS={select:function(property,to){if(property.test(/color/i))return this.Color;var type=$type(to);if((type=='array')||(type=='string'&&to.contains(' ')))return this.Multi;return this.Single;},parse:function(el,property,fromTo){if(!fromTo.push)fromTo=[fromTo];var from=fromTo[0],to=fromTo[1];if(!$chk(to)){to=from;from=el.getStyle(property);}
var css=this.select(property,to);return{'from':css.parse(from),'to':css.parse(to),'css':css};}};Fx.CSS.Single={parse:function(value){return parseFloat(value);},getNow:function(from,to,fx){return fx.compute(from,to);},getValue:function(value,unit,property){if(unit=='px'&&property!='opacity')value=Math.round(value);return value+unit;}};Fx.CSS.Multi={parse:function(value){return value.push?value:value.split(' ').map(function(v){return parseFloat(v);});},getNow:function(from,to,fx){var now=[];for(var i=0;i<from.length;i++)now[i]=fx.compute(from[i],to[i]);return now;},getValue:function(value,unit,property){if(unit=='px'&&property!='opacity')value=value.map(Math.round);return value.join(unit+' ')+unit;}};Fx.CSS.Color={parse:function(value){return value.push?value:value.hexToRgb(true);},getNow:function(from,to,fx){var now=[];for(var i=0;i<from.length;i++)now[i]=Math.round(fx.compute(from[i],to[i]));return now;},getValue:function(value){return'rgb('+value.join(',')+')';}};Fx.Style=Fx.Base.extend({initialize:function(el,property,options){this.element=$(el);this.property=property;this.parent(options);},hide:function(){return this.set(0);},setNow:function(){this.now=this.css.getNow(this.from,this.to,this);},set:function(to){this.css=Fx.CSS.select(this.property,to);return this.parent(this.css.parse(to));},start:function(from,to){if(this.timer&&this.options.wait)return this;var parsed=Fx.CSS.parse(this.element,this.property,[from,to]);this.css=parsed.css;return this.parent(parsed.from,parsed.to);},increase:function(){this.element.setStyle(this.property,this.css.getValue(this.now,this.options.unit,this.property));}});Element.extend({effect:function(property,options){return new Fx.Style(this,property,options);}});Fx.Styles=Fx.Base.extend({initialize:function(el,options){this.element=$(el);this.parent(options);},setNow:function(){for(var p in this.from)this.now[p]=this.css[p].getNow(this.from[p],this.to[p],this);},set:function(to){var parsed={};this.css={};for(var p in to){this.css[p]=Fx.CSS.select(p,to[p]);parsed[p]=this.css[p].parse(to[p]);}
return this.parent(parsed);},start:function(obj){if(this.timer&&this.options.wait)return this;this.now={};this.css={};var from={},to={};for(var p in obj){var parsed=Fx.CSS.parse(this.element,p,obj[p]);from[p]=parsed.from;to[p]=parsed.to;this.css[p]=parsed.css;}
return this.parent(from,to);},increase:function(){for(var p in this.now)this.element.setStyle(p,this.css[p].getValue(this.now[p],this.options.unit,p));}});Element.extend({effects:function(options){return new Fx.Styles(this,options);}});Fx.Elements=Fx.Base.extend({initialize:function(elements,options){this.elements=$$(elements);this.parent(options);},setNow:function(){for(var i in this.from){var iFrom=this.from[i],iTo=this.to[i],iCss=this.css[i],iNow=this.now[i]={};for(var p in iFrom)iNow[p]=iCss[p].getNow(iFrom[p],iTo[p],this);}},set:function(to){var parsed={};this.css={};for(var i in to){var iTo=to[i],iCss=this.css[i]={},iParsed=parsed[i]={};for(var p in iTo){iCss[p]=Fx.CSS.select(p,iTo[p]);iParsed[p]=iCss[p].parse(iTo[p]);}}
return this.parent(parsed);},start:function(obj){if(this.timer&&this.options.wait)return this;this.now={};this.css={};var from={},to={};for(var i in obj){var iProps=obj[i],iFrom=from[i]={},iTo=to[i]={},iCss=this.css[i]={};for(var p in iProps){var parsed=Fx.CSS.parse(this.elements[i],p,iProps[p]);iFrom[p]=parsed.from;iTo[p]=parsed.to;iCss[p]=parsed.css;}}
return this.parent(from,to);},increase:function(){for(var i in this.now){var iNow=this.now[i],iCss=this.css[i];for(var p in iNow)this.elements[i].setStyle(p,iCss[p].getValue(iNow[p],this.options.unit,p));}}});Fx.Scroll=Fx.Base.extend({options:{overflown:[],offset:{'x':0,'y':0},wheelStops:true},initialize:function(element,options){this.now=[];this.element=$(element);this.bound={'stop':this.stop.bind(this,false)};this.parent(options);if(this.options.wheelStops){this.addEvent('onStart',function(){document.addEvent('mousewheel',this.bound.stop);}.bind(this));this.addEvent('onComplete',function(){document.removeEvent('mousewheel',this.bound.stop);}.bind(this));}},setNow:function(){for(var i=0;i<2;i++)this.now[i]=this.compute(this.from[i],this.to[i]);},scrollTo:function(x,y){if(this.timer&&this.options.wait)return this;var el=this.element.getSize();var values={'x':x,'y':y};for(var z in el.size){var max=el.scrollSize[z]-el.size[z];if($chk(values[z]))values[z]=($type(values[z])=='number')?values[z].limit(0,max):max;else values[z]=el.scroll[z];values[z]+=this.options.offset[z];}
return this.start([el.scroll.x,el.scroll.y],[values.x,values.y]);},toTop:function(){return this.scrollTo(false,0);},toBottom:function(){return this.scrollTo(false,'full');},toLeft:function(){return this.scrollTo(0,false);},toRight:function(){return this.scrollTo('full',false);},toElement:function(el){var parent=this.element.getPosition(this.options.overflown);var target=$(el).getPosition(this.options.overflown);return this.scrollTo(target.x-parent.x,target.y-parent.y);},increase:function(){this.element.scrollTo(this.now[0],this.now[1]);}});Fx.Slide=Fx.Base.extend({options:{mode:'vertical'},initialize:function(el,options){this.element=$(el);this.wrapper=new Element('div',{'styles':$extend(this.element.getStyles('margin'),{'overflow':'hidden'})}).injectAfter(this.element).adopt(this.element);this.element.setStyle('margin',0);this.setOptions(options);this.now=[];this.parent(this.options);this.open=true;this.addEvent('onComplete',function(){this.open=(this.now[0]===0);});if(window.webkit419)this.addEvent('onComplete',function(){if(this.open)this.element.remove().inject(this.wrapper);});},setNow:function(){for(var i=0;i<2;i++)this.now[i]=this.compute(this.from[i],this.to[i]);},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;},slideIn:function(mode){this[mode||this.options.mode]();return this.start([this.element.getStyle(this.margin).toInt(),this.wrapper.getStyle(this.layout).toInt()],[0,this.offset]);},slideOut:function(mode){this[mode||this.options.mode]();return this.start([this.element.getStyle(this.margin).toInt(),this.wrapper.getStyle(this.layout).toInt()],[-this.offset,0]);},hide:function(mode){this[mode||this.options.mode]();this.open=false;return this.set([-this.offset,0]);},show:function(mode){this[mode||this.options.mode]();this.open=true;return this.set([0,this.offset]);},toggle:function(mode){if(this.wrapper.offsetHeight==0||this.wrapper.offsetWidth==0)return this.slideIn(mode);return this.slideOut(mode);},increase:function(){this.element.setStyle(this.margin,this.now[0]+this.options.unit);this.wrapper.setStyle(this.layout,this.now[1]+this.options.unit);}});Fx.Transition=function(transition,params){params=params||[];if($type(params)!='array')params=[params];return $extend(transition,{easeIn:function(pos){return transition(pos,params);},easeOut:function(pos){return 1-transition(1-pos,params);},easeInOut:function(pos){return(pos<=0.5)?transition(2*pos,params)/2:(2-transition(2*(1-pos),params))/2;}});};Fx.Transitions=new Abstract({linear:function(p){return p;}});Fx.Transitions.extend=function(transitions){for(var transition in transitions){Fx.Transitions[transition]=new Fx.Transition(transitions[transition]);Fx.Transitions.compat(transition);}};Fx.Transitions.compat=function(transition){['In','Out','InOut'].each(function(easeType){Fx.Transitions[transition.toLowerCase()+easeType]=Fx.Transitions[transition]['ease'+easeType];});};Fx.Transitions.extend({Pow:function(p,x){return Math.pow(p,x[0]||6);},Expo:function(p){return Math.pow(2,8*(p-1));},Circ:function(p){return 1-Math.sin(Math.acos(p));},Sine:function(p){return 1-Math.sin((1-p)*Math.PI/2);},Back:function(p,x){x=x[0]||1.618;return Math.pow(p,2)*((x+1)*p-x);},Bounce:function(p){var value;for(var a=0,b=1;1;a+=b,b/=2){if(p>=(7-4*a)/11){value=-Math.pow((11-6*a-11*p)/4,2)+b*b;break;}}
return value;},Elastic:function(p,x){return Math.pow(2,10*--p)*Math.cos(20*p*Math.PI*(x[0]||1)/3);}});['Quad','Cubic','Quart','Quint'].each(function(transition,i){Fx.Transitions[transition]=new Fx.Transition(function(p){return Math.pow(p,[i+2]);});Fx.Transitions.compat(transition);});var Drag={};Drag.Base=new Class({options:{handle:false,unit:'px',onStart:Class.empty,onBeforeStart:Class.empty,onComplete:Class.empty,onSnap:Class.empty,onDrag:Class.empty,limit:false,modifiers:{x:'left',y:'top'},grid:false,snap:6},initialize:function(el,options){this.setOptions(options);this.element=$(el);this.handle=$(this.options.handle)||this.element;this.mouse={'now':{},'pos':{}};this.value={'start':{},'now':{}};this.bound={'start':this.start.bindWithEvent(this),'check':this.check.bindWithEvent(this),'drag':this.drag.bindWithEvent(this),'stop':this.stop.bind(this)};this.attach();if(this.options.initialize)this.options.initialize.call(this);},attach:function(){this.handle.addEvent('mousedown',this.bound.start);return this;},detach:function(){this.handle.removeEvent('mousedown',this.bound.start);return this;},start:function(event){this.fireEvent('onBeforeStart',this.element);this.mouse.start=event.page;var limit=this.options.limit;this.limit={'x':[],'y':[]};for(var z in this.options.modifiers){if(!this.options.modifiers[z])continue;this.value.now[z]=this.element.getStyle(this.options.modifiers[z]).toInt();this.mouse.pos[z]=event.page[z]-this.value.now[z];if(limit&&limit[z]){for(var i=0;i<2;i++){if($chk(limit[z][i]))this.limit[z][i]=($type(limit[z][i])=='function')?limit[z][i]():limit[z][i];}}}
if($type(this.options.grid)=='number')this.options.grid={'x':this.options.grid,'y':this.options.grid};document.addListener('mousemove',this.bound.check);document.addListener('mouseup',this.bound.stop);this.fireEvent('onStart',this.element);event.stop();},check:function(event){var distance=Math.round(Math.sqrt(Math.pow(event.page.x-this.mouse.start.x,2)+Math.pow(event.page.y-this.mouse.start.y,2)));if(distance>this.options.snap){document.removeListener('mousemove',this.bound.check);document.addListener('mousemove',this.bound.drag);this.drag(event);this.fireEvent('onSnap',this.element);}
event.stop();},drag:function(event){this.out=false;this.mouse.now=event.page;for(var z in this.options.modifiers){if(!this.options.modifiers[z])continue;this.value.now[z]=this.mouse.now[z]-this.mouse.pos[z];if(this.limit[z]){if($chk(this.limit[z][1])&&(this.value.now[z]>this.limit[z][1])){this.value.now[z]=this.limit[z][1];this.out=true;}else if($chk(this.limit[z][0])&&(this.value.now[z]<this.limit[z][0])){this.value.now[z]=this.limit[z][0];this.out=true;}}
if(this.options.grid[z])this.value.now[z]-=(this.value.now[z]%this.options.grid[z]);this.element.setStyle(this.options.modifiers[z],this.value.now[z]+this.options.unit);}
this.fireEvent('onDrag',this.element);event.stop();},stop:function(){document.removeListener('mousemove',this.bound.check);document.removeListener('mousemove',this.bound.drag);document.removeListener('mouseup',this.bound.stop);this.fireEvent('onComplete',this.element);}});Drag.Base.implement(new Events,new Options);Element.extend({makeResizable:function(options){return new Drag.Base(this,$merge({modifiers:{x:'width',y:'height'}},options));}});Drag.Move=Drag.Base.extend({options:{droppables:[],container:false,overflown:[]},initialize:function(el,options){this.setOptions(options);this.element=$(el);this.droppables=$$(this.options.droppables);this.container=$(this.options.container);this.position={'element':this.element.getStyle('position'),'container':false};if(this.container)this.position.container=this.container.getStyle('position');if(!['relative','absolute','fixed'].contains(this.position.element))this.position.element='absolute';var top=this.element.getStyle('top').toInt();var left=this.element.getStyle('left').toInt();if(this.position.element=='absolute'&&!['relative','absolute','fixed'].contains(this.position.container)){top=$chk(top)?top:this.element.getTop(this.options.overflown);left=$chk(left)?left:this.element.getLeft(this.options.overflown);}else{top=$chk(top)?top:0;left=$chk(left)?left:0;}
this.element.setStyles({'top':top,'left':left,'position':this.position.element});this.parent(this.element);},start:function(event){this.overed=null;if(this.container){var cont=this.container.getCoordinates();var el=this.element.getCoordinates();if(this.position.element=='absolute'&&!['relative','absolute','fixed'].contains(this.position.container)){this.options.limit={'x':[cont.left,cont.right-el.width],'y':[cont.top,cont.bottom-el.height]};}else{this.options.limit={'y':[0,cont.height-el.height],'x':[0,cont.width-el.width]};}}
this.parent(event);},drag:function(event){this.parent(event);var overed=this.out?false:this.droppables.filter(this.checkAgainst,this).getLast();if(this.overed!=overed){if(this.overed)this.overed.fireEvent('leave',[this.element,this]);this.overed=overed?overed.fireEvent('over',[this.element,this]):null;}
return this;},checkAgainst:function(el){el=el.getCoordinates(this.options.overflown);var now=this.mouse.now;return(now.x>el.left&&now.x<el.right&&now.y<el.bottom&&now.y>el.top);},stop:function(){if(this.overed&&!this.out)this.overed.fireEvent('drop',[this.element,this]);else this.element.fireEvent('emptydrop',this);this.parent();return this;}});Element.extend({makeDraggable:function(options){return new Drag.Move(this,options);}});var XHR=new Class({options:{method:'post',async:true,onRequest:Class.empty,onSuccess:Class.empty,onFailure:Class.empty,urlEncoded:true,encoding:'utf-8',autoCancel:false,headers:{}},setTransport:function(){this.transport=(window.XMLHttpRequest)?new XMLHttpRequest():(window.ie?new ActiveXObject('Microsoft.XMLHTTP'):false);return this;},initialize:function(options){this.setTransport().setOptions(options);this.options.isSuccess=this.options.isSuccess||this.isSuccess;this.headers={};if(this.options.urlEncoded&&this.options.method=='post'){var encoding=(this.options.encoding)?'; charset='+this.options.encoding:'';this.setHeader('Content-type','application/x-www-form-urlencoded'+encoding);}
if(this.options.initialize)this.options.initialize.call(this);},onStateChange:function(){if(this.transport.readyState!=4||!this.running)return;this.running=false;var status=0;try{status=this.transport.status;}catch(e){};if(this.options.isSuccess.call(this,status))this.onSuccess();else this.onFailure();this.transport.onreadystatechange=Class.empty;},isSuccess:function(status){return((status>=200)&&(status<300));},onSuccess:function(){this.response={'text':this.transport.responseText,'xml':this.transport.responseXML};this.fireEvent('onSuccess',[this.response.text,this.response.xml]);this.callChain();},onFailure:function(){this.fireEvent('onFailure',this.transport);},setHeader:function(name,value){this.headers[name]=value;return this;},send:function(url,data){if(this.options.autoCancel)this.cancel();else if(this.running)return this;this.running=true;if(data&&this.options.method=='get'){url=url+(url.contains('?')?'&':'?')+data;data=null;}
this.transport.open(this.options.method.toUpperCase(),url,this.options.async);this.transport.onreadystatechange=this.onStateChange.bind(this);if((this.options.method=='post')&&this.transport.overrideMimeType)this.setHeader('Connection','close');$extend(this.headers,this.options.headers);for(var type in this.headers)try{this.transport.setRequestHeader(type,this.headers[type]);}catch(e){};this.fireEvent('onRequest');this.transport.send($pick(data,null));return this;},cancel:function(){if(!this.running)return this;this.running=false;this.transport.abort();this.transport.onreadystatechange=Class.empty;this.setTransport();this.fireEvent('onCancel');return this;}});XHR.implement(new Chain,new Events,new Options);var Ajax=XHR.extend({options:{data:null,update:null,onComplete:Class.empty,evalScripts:false,evalResponse:false},initialize:function(url,options){this.addEvent('onSuccess',this.onComplete);this.setOptions(options);this.options.data=this.options.data||this.options.postBody;if(!['post','get'].contains(this.options.method)){this._method='_method='+this.options.method;this.options.method='post';}
this.parent();this.setHeader('X-Requested-With','XMLHttpRequest');this.setHeader('Accept','text/javascript, text/html, application/xml, text/xml, */*');this.url=url;},onComplete:function(){if(this.options.update)$(this.options.update).empty().setHTML(this.response.text);if(this.options.evalScripts||this.options.evalResponse)this.evalScripts();this.fireEvent('onComplete',[this.response.text,this.response.xml],20);},request:function(data){data=data||this.options.data;switch($type(data)){case'element':data=$(data).toQueryString();break;case'object':data=Object.toQueryString(data);}
if(this._method)data=(data)?[this._method,data].join('&'):this._method;return this.send(this.url,data);},evalScripts:function(){var script,scripts;if(this.options.evalResponse||(/(ecma|java)script/).test(this.getHeader('Content-type')))scripts=this.response.text;else{scripts=[];var regexp=/<script[^>]*>([\s\S]*?)<\/script>/gi;while((script=regexp.exec(this.response.text)))scripts.push(script[1]);scripts=scripts.join('\n');}
if(scripts)(window.execScript)?window.execScript(scripts):window.setTimeout(scripts,0);},getHeader:function(name){try{return this.transport.getResponseHeader(name);}catch(e){};return null;}});Object.toQueryString=function(source){var queryString=[];for(var property in source)queryString.push(encodeURIComponent(property)+'='+encodeURIComponent(source[property]));return queryString.join('&');};Element.extend({send:function(options){return new Ajax(this.getProperty('action'),$merge({data:this.toQueryString()},options,{method:'post'})).request();}});var Cookie=new Abstract({options:{domain:false,path:false,duration:false,secure:false},set:function(key,value,options){options=$merge(this.options,options);value=encodeURIComponent(value);if(options.domain)value+='; domain='+options.domain;if(options.path)value+='; path='+options.path;if(options.duration){var date=new Date();date.setTime(date.getTime()+options.duration*24*60*60*1000);value+='; expires='+date.toGMTString();}
if(options.secure)value+='; secure';document.cookie=key+'='+value;return $extend(options,{'key':key,'value':value});},get:function(key){var value=document.cookie.match('(?:^|;)\\s*'+key.escapeRegExp()+'=([^;]*)');return value?decodeURIComponent(value[1]):false;},remove:function(cookie,options){if($type(cookie)=='object')this.set(cookie.key,'',$merge(cookie,{duration:-1}));else this.set(cookie,'',$merge(options,{duration:-1}));}});var Json={toString:function(obj){switch($type(obj)){case'string':return'"'+obj.replace(/(["\\])/g,'\\$1')+'"';case'array':return'['+obj.map(Json.toString).join(',')+']';case'object':var string=[];for(var property in obj)string.push(Json.toString(property)+':'+Json.toString(obj[property]));return'{'+string.join(',')+'}';case'number':if(isFinite(obj))break;case false:return'null';}
return String(obj);},evaluate:function(str,secure){return(($type(str)!='string')||(secure&&!str.test(/^("(\\.|[^"\\\n\r])*?"|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/)))?null:eval('('+str+')');}};Json.Remote=XHR.extend({initialize:function(url,options){this.url=url;this.addEvent('onSuccess',this.onComplete);this.parent(options);this.setHeader('X-Request','JSON');},send:function(obj){return this.parent(this.url,'json='+Json.toString(obj));},onComplete:function(){this.fireEvent('onComplete',[Json.evaluate(this.response.text,this.options.secure)]);}});var Asset=new Abstract({javascript:function(source,properties){properties=$merge({'onload':Class.empty},properties);var script=new Element('script',{'src':source}).addEvents({'load':properties.onload,'readystatechange':function(){if(this.readyState=='complete')this.fireEvent('load');}});delete properties.onload;return script.setProperties(properties).inject(document.head);},css:function(source,properties){return new Element('link',$merge({'rel':'stylesheet','media':'screen','type':'text/css','href':source},properties)).inject(document.head);},image:function(source,properties){properties=$merge({'onload':Class.empty,'onabort':Class.empty,'onerror':Class.empty},properties);var image=new Image();image.src=source;var element=new Element('img',{'src':source});['load','abort','error'].each(function(type){var event=properties['on'+type];delete properties['on'+type];element.addEvent(type,function(){this.removeEvent(type,arguments.callee);event.call(this);});});if(image.width&&image.height)element.fireEvent('load',element,1);return element.setProperties(properties);},images:function(sources,options){options=$merge({onComplete:Class.empty,onProgress:Class.empty},options);if(!sources.push)sources=[sources];var images=[];var counter=0;sources.each(function(source){var img=new Asset.image(source,{'onload':function(){options.onProgress.call(this,counter);counter++;if(counter==sources.length)options.onComplete();}});images.push(img);});return new Elements(images);}});var Hash=new Class({length:0,initialize:function(object){this.obj=object||{};this.setLength();},get:function(key){return(this.hasKey(key))?this.obj[key]:null;},hasKey:function(key){return(key in this.obj);},set:function(key,value){if(!this.hasKey(key))this.length++;this.obj[key]=value;return this;},setLength:function(){this.length=0;for(var p in this.obj)this.length++;return this;},remove:function(key){if(this.hasKey(key)){delete this.obj[key];this.length--;}
return this;},each:function(fn,bind){$each(this.obj,fn,bind);},extend:function(obj){$extend(this.obj,obj);return this.setLength();},merge:function(){this.obj=$merge.apply(null,[this.obj].extend(arguments));return this.setLength();},empty:function(){this.obj={};this.length=0;return this;},keys:function(){var keys=[];for(var property in this.obj)keys.push(property);return keys;},values:function(){var values=[];for(var property in this.obj)values.push(this.obj[property]);return values;}});function $H(obj){return new Hash(obj);};Hash.Cookie=Hash.extend({initialize:function(name,options){this.name=name;this.options=$extend({'autoSave':true},options||{});this.load();},save:function(){if(this.length==0){Cookie.remove(this.name,this.options);return true;}
var str=Json.toString(this.obj);if(str.length>4096)return false;Cookie.set(this.name,str,this.options);return true;},load:function(){this.obj=Json.evaluate(Cookie.get(this.name),true)||{};this.setLength();}});Hash.Cookie.Methods={};['extend','set','merge','empty','remove'].each(function(method){Hash.Cookie.Methods[method]=function(){Hash.prototype[method].apply(this,arguments);if(this.options.autoSave)this.save();return this;};});Hash.Cookie.implement(Hash.Cookie.Methods);var Color=new Class({initialize:function(color,type){type=type||(color.push?'rgb':'hex');var rgb,hsb;switch(type){case'rgb':rgb=color;hsb=rgb.rgbToHsb();break;case'hsb':rgb=color.hsbToRgb();hsb=color;break;default:rgb=color.hexToRgb(true);hsb=rgb.rgbToHsb();}
rgb.hsb=hsb;rgb.hex=rgb.rgbToHex();return $extend(rgb,Color.prototype);},mix:function(){var colors=$A(arguments);var alpha=($type(colors[colors.length-1])=='number')?colors.pop():50;var rgb=this.copy();colors.each(function(color){color=new Color(color);for(var i=0;i<3;i++)rgb[i]=Math.round((rgb[i]/100*(100-alpha))+(color[i]/100*alpha));});return new Color(rgb,'rgb');},invert:function(){return new Color(this.map(function(value){return 255-value;}));},setHue:function(value){return new Color([value,this.hsb[1],this.hsb[2]],'hsb');},setSaturation:function(percent){return new Color([this.hsb[0],percent,this.hsb[2]],'hsb');},setBrightness:function(percent){return new Color([this.hsb[0],this.hsb[1],percent],'hsb');}});function $RGB(r,g,b){return new Color([r,g,b],'rgb');};function $HSB(h,s,b){return new Color([h,s,b],'hsb');};Array.extend({rgbToHsb:function(){var red=this[0],green=this[1],blue=this[2];var hue,saturation,brightness;var max=Math.max(red,green,blue),min=Math.min(red,green,blue);var delta=max-min;brightness=max/255;saturation=(max!=0)?delta/max:0;if(saturation==0){hue=0;}else{var rr=(max-red)/delta;var gr=(max-green)/delta;var br=(max-blue)/delta;if(red==max)hue=br-gr;else if(green==max)hue=2+rr-br;else hue=4+gr-rr;hue/=6;if(hue<0)hue++;}
return[Math.round(hue*360),Math.round(saturation*100),Math.round(brightness*100)];},hsbToRgb:function(){var br=Math.round(this[2]/100*255);if(this[1]==0){return[br,br,br];}else{var hue=this[0]%360;var f=hue%60;var p=Math.round((this[2]*(100-this[1]))/10000*255);var q=Math.round((this[2]*(6000-this[1]*f))/600000*255);var t=Math.round((this[2]*(6000-this[1]*(60-f)))/600000*255);switch(Math.floor(hue/60)){case 0:return[br,t,p];case 1:return[q,br,p];case 2:return[p,br,t];case 3:return[p,q,br];case 4:return[t,p,br];case 5:return[br,p,q];}}
return false;}});var Scroller=new Class({options:{area:20,velocity:1,onChange:function(x,y){this.element.scrollTo(x,y);}},initialize:function(element,options){this.setOptions(options);this.element=$(element);this.mousemover=([window,document].contains(element))?$(document.body):this.element;},start:function(){this.coord=this.getCoords.bindWithEvent(this);this.mousemover.addListener('mousemove',this.coord);},stop:function(){this.mousemover.removeListener('mousemove',this.coord);this.timer=$clear(this.timer);},getCoords:function(event){this.page=(this.element==window)?event.client:event.page;if(!this.timer)this.timer=this.scroll.periodical(50,this);},scroll:function(){var el=this.element.getSize();var pos=this.element.getPosition();var change={'x':0,'y':0};for(var z in this.page){if(this.page[z]<(this.options.area+pos[z])&&el.scroll[z]!=0)
change[z]=(this.page[z]-this.options.area-pos[z])*this.options.velocity;else if(this.page[z]+this.options.area>(el.size[z]+pos[z])&&el.scroll[z]+el.size[z]!=el.scrollSize[z])
change[z]=(this.page[z]-el.size[z]+this.options.area-pos[z])*this.options.velocity;}
if(change.y||change.x)this.fireEvent('onChange',[el.scroll.x+change.x,el.scroll.y+change.y]);}});Scroller.implement(new Events,new Options);var Slider=new Class({options:{onChange:Class.empty,onComplete:Class.empty,onTick:function(pos){this.knob.setStyle(this.p,pos);},mode:'horizontal',steps:100,offset:0},initialize:function(el,knob,options){this.element=$(el);this.knob=$(knob);this.setOptions(options);this.previousChange=-1;this.previousEnd=-1;this.step=-1;this.element.addEvent('mousedown',this.clickedElement.bindWithEvent(this));var mod,offset;switch(this.options.mode){case'horizontal':this.z='x';this.p='left';mod={'x':'left','y':false};offset='offsetWidth';break;case'vertical':this.z='y';this.p='top';mod={'x':false,'y':'top'};offset='offsetHeight';}
this.max=this.element[offset]-this.knob[offset]+(this.options.offset*2);this.half=this.knob[offset]/2;this.getPos=this.element['get'+this.p.capitalize()].bind(this.element);this.knob.setStyle('position','relative').setStyle(this.p,-this.options.offset);var lim={};lim[this.z]=[-this.options.offset,this.max-this.options.offset];this.drag=new Drag.Base(this.knob,{limit:lim,modifiers:mod,snap:0,onStart:function(){this.draggedKnob();}.bind(this),onDrag:function(){this.draggedKnob();}.bind(this),onComplete:function(){this.draggedKnob();this.end();}.bind(this)});if(this.options.initialize)this.options.initialize.call(this);},set:function(step){this.step=step.limit(0,this.options.steps);this.checkStep();this.end();this.fireEvent('onTick',this.toPosition(this.step));return this;},clickedElement:function(event){var position=event.page[this.z]-this.getPos()-this.half;position=position.limit(-this.options.offset,this.max-this.options.offset);this.step=this.toStep(position);this.checkStep();this.end();this.fireEvent('onTick',position);},draggedKnob:function(){this.step=this.toStep(this.drag.value.now[this.z]);this.checkStep();},checkStep:function(){if(this.previousChange!=this.step){this.previousChange=this.step;this.fireEvent('onChange',this.step);}},end:function(){if(this.previousEnd!==this.step){this.previousEnd=this.step;this.fireEvent('onComplete',this.step+'');}},toStep:function(position){return Math.round((position+this.options.offset)/this.max*this.options.steps);},toPosition:function(step){return this.max*step/this.options.steps;}});Slider.implement(new Events);Slider.implement(new Options);var SmoothScroll=Fx.Scroll.extend({initialize:function(options){this.parent(window,options);this.links=(this.options.links)?$$(this.options.links):$$(document.links);var location=window.location.href.match(/^[^#]*/)[0]+'#';this.links.each(function(link){if(link.href.indexOf(location)!=0)return;var anchor=link.href.substr(location.length);if(anchor&&$(anchor))this.useLink(link,anchor);},this);if(!window.webkit419)this.addEvent('onComplete',function(){window.location.hash=this.anchor;});},useLink:function(link,anchor){link.addEvent('click',function(event){this.anchor=anchor;this.toElement(anchor);event.stop();}.bindWithEvent(this));}});var Sortables=new Class({options:{handles:false,onStart:Class.empty,onComplete:Class.empty,ghost:true,snap:3,onDragStart:function(element,ghost){ghost.setStyle('opacity',0.7);element.setStyle('opacity',0.7);},onDragComplete:function(element,ghost){element.setStyle('opacity',1);ghost.remove();this.trash.remove();}},initialize:function(list,options){this.setOptions(options);this.list=$(list);this.elements=this.list.getChildren();this.handles=(this.options.handles)?$$(this.options.handles):this.elements;this.bound={'start':[],'moveGhost':this.moveGhost.bindWithEvent(this)};for(var i=0,l=this.handles.length;i<l;i++){this.bound.start[i]=this.start.bindWithEvent(this,this.elements[i]);}
this.attach();if(this.options.initialize)this.options.initialize.call(this);this.bound.move=this.move.bindWithEvent(this);this.bound.end=this.end.bind(this);},attach:function(){this.handles.each(function(handle,i){handle.addEvent('mousedown',this.bound.start[i]);},this);},detach:function(){this.handles.each(function(handle,i){handle.removeEvent('mousedown',this.bound.start[i]);},this);},start:function(event,el){this.active=el;this.coordinates=this.list.getCoordinates();if(this.options.ghost){var position=el.getPosition();this.offset=event.page.y-position.y;this.trash=new Element('div').inject(document.body);this.ghost=el.clone().inject(this.trash).setStyles({'position':'absolute','left':position.x,'top':event.page.y-this.offset});document.addListener('mousemove',this.bound.moveGhost);this.fireEvent('onDragStart',[el,this.ghost]);}
document.addListener('mousemove',this.bound.move);document.addListener('mouseup',this.bound.end);this.fireEvent('onStart',el);event.stop();},moveGhost:function(event){var value=event.page.y-this.offset;value=value.limit(this.coordinates.top,this.coordinates.bottom-this.ghost.offsetHeight);this.ghost.setStyle('top',value);event.stop();},move:function(event){var now=event.page.y;this.previous=this.previous||now;var up=((this.previous-now)>0);var prev=this.active.getPrevious();var next=this.active.getNext();if(prev&&up&&now<prev.getCoordinates().bottom)this.active.injectBefore(prev);if(next&&!up&&now>next.getCoordinates().top)this.active.injectAfter(next);this.previous=now;},serialize:function(converter){return this.list.getChildren().map(converter||function(el){return this.elements.indexOf(el);},this);},end:function(){this.previous=null;document.removeListener('mousemove',this.bound.move);document.removeListener('mouseup',this.bound.end);if(this.options.ghost){document.removeListener('mousemove',this.bound.moveGhost);this.fireEvent('onDragComplete',[this.active,this.ghost]);}
this.fireEvent('onComplete',this.active);}});Sortables.implement(new Events,new Options);var Tips=new Class({options:{onShow:function(tip){tip.setStyle('visibility','visible');},onHide:function(tip){tip.setStyle('visibility','hidden');},maxTitleChars:30,showDelay:100,hideDelay:100,className:'tool',offsets:{'x':16,'y':16},fixed:false},initialize:function(elements,options){this.setOptions(options);this.toolTip=new Element('div',{'class':this.options.className+'-tip','styles':{'position':'absolute','top':'0','left':'0','visibility':'hidden'}}).inject(document.body);this.wrapper=new Element('div').inject(this.toolTip);$$(elements).each(this.build,this);if(this.options.initialize)this.options.initialize.call(this);},build:function(el){el.$tmp.myTitle=(el.href&&el.getTag()=='a')?el.href.replace('http://',''):(el.rel||false);if(el.title){var dual=el.title.split('::');if(dual.length>1){el.$tmp.myTitle=dual[0].trim();el.$tmp.myText=dual[1].trim();}else{el.$tmp.myText=el.title;}
el.removeAttribute('title');}else{el.$tmp.myText=false;}
if(el.$tmp.myTitle&&el.$tmp.myTitle.length>this.options.maxTitleChars)el.$tmp.myTitle=el.$tmp.myTitle.substr(0,this.options.maxTitleChars-1)+"&hellip;";el.addEvent('mouseenter',function(event){this.start(el);if(!this.options.fixed)this.locate(event);else this.position(el);}.bind(this));if(!this.options.fixed)el.addEvent('mousemove',this.locate.bindWithEvent(this));var end=this.end.bind(this);el.addEvent('mouseleave',end);el.addEvent('trash',end);},start:function(el){this.wrapper.empty();if(el.$tmp.myTitle){this.title=new Element('span').inject(new Element('div',{'class':this.options.className+'-title'}).inject(this.wrapper)).setHTML(el.$tmp.myTitle);}
if(el.$tmp.myText){this.text=new Element('span').inject(new Element('div',{'class':this.options.className+'-text'}).inject(this.wrapper)).setHTML(el.$tmp.myText);}
$clear(this.timer);this.timer=this.show.delay(this.options.showDelay,this);},end:function(event){$clear(this.timer);this.timer=this.hide.delay(this.options.hideDelay,this);},position:function(element){var pos=element.getPosition();this.toolTip.setStyles({'left':pos.x+this.options.offsets.x,'top':pos.y+this.options.offsets.y});},locate:function(event){var win={'x':window.getWidth(),'y':window.getHeight()};var scroll={'x':window.getScrollLeft(),'y':window.getScrollTop()};var tip={'x':this.toolTip.offsetWidth,'y':this.toolTip.offsetHeight};var prop={'x':'left','y':'top'};for(var z in prop){var pos=event.page[z]+this.options.offsets[z];if((pos+tip[z]-scroll[z])>win[z])pos=event.page[z]-this.options.offsets[z]-tip[z];this.toolTip.setStyle(prop[z],pos);};},show:function(){if(this.options.timeout)this.timer=this.hide.delay(this.options.timeout,this);this.fireEvent('onShow',[this.toolTip]);},hide:function(){this.fireEvent('onHide',[this.toolTip]);}});Tips.implement(new Events,new Options);var Group=new Class({initialize:function(){this.instances=$A(arguments);this.events={};this.checker={};},addEvent:function(type,fn){this.checker[type]=this.checker[type]||{};this.events[type]=this.events[type]||[];if(this.events[type].contains(fn))return false;else this.events[type].push(fn);this.instances.each(function(instance,i){instance.addEvent(type,this.check.bind(this,[type,instance,i]));},this);return this;},check:function(type,instance,i){this.checker[type][i]=true;var every=this.instances.every(function(current,j){return this.checker[type][j]||false;},this);if(!every)return;this.checker[type]={};this.events[type].each(function(event){event.call(this,this.instances,instance);},this);}});window.ff=navigator.userAgent.search("Firefox")>=0;window.ff3=navigator.userAgent.search("Firefox/3")>=0;Sortables=Sortables.extend({initialize:function(list,options){this.parent(list,options);this.last_state=this.serialize_string();},moveGhost:function(event){var value=event.page.y-this.offset;value=value.limit(this.coordinates.top,this.coordinates.bottom);this.ghost.setStyle('top',value);event.stop();},serialize_string:function(){var serial='';this.list.getChildren().each(function(el,i){serial+=el.id+',';},this);return serial;},serialize:function(){var serial=[];this.list.getChildren().each(function(el,i){serial[serial.length]=el.id;},this);return serial;},end:function(){this.previous=null;document.removeListener('mousemove',this.bound.move);document.removeListener('mouseup',this.bound.end);if(this.options.ghost){document.removeListener('mousemove',this.bound.moveGhost);this.fireEvent('onDragComplete',[this.active,this.ghost]);}
this.cur_state=this.serialize_string();if(this.last_state!=this.cur_state&&this.last_state!=''){this.last_state=this.cur_state;this.fireEvent('onComplete',this.active);}}});Element.extend({toggle:function(){if(this.getStyle('display')!='none')this.setStyle('display','none');else this.setStyle('display','');},lift:function(){this.toggle();},toggleVis:function(){if(this.getStyle('visibility')!='hidden')this.setStyle('visibility','hidden');else this.setStyle('visibility','visible');},hide:function(){this.setStyle('display','none');},show:function(){this.setStyle('display','');},moveToBottom:function(){var w=this.clone();this.remove();$(document.body).adopt(w);},disable:function(txt){if(this.type=='button'||this.type=='submit'){this.addClass('grey_button');if(txt)this.value=txt;this.disabled=true;this.blur();return;}
$$('#'+this.id+' select, #'+this.id+' input').setProperty('disabled',true);if(!window.ie){this.setStyle('position','relative');if(!$(this.id+'_disable')){var coords=this.getSize();this.adopt(new Element('div',{'id':this.id+'_disable','styles':{'background-color':'#fff','width':coords.size.x,'height':coords.size.y,'top':'0','left':'0','position':'absolute','opacity':0.7}}));}}else{this.addClass('grey_out');if(txt)this.value=txt;}},enable:function(txt){if(this.type=='button'||this.type=='submit'){this.disabled=false;this.removeClass('grey_button');if(txt)this.value=txt;return;}
$$('#'+this.id+' select, #'+this.id+' input').setProperty('disabled',false);if(!window.ie){this.setStyle('position','');if($(this.id+'_disable')){$(this.id+'_disable').remove();}}else{this.removeClass('grey_out');}},setWidth:function(w){this.setStyle('width',w+'px');},getWidth:function(){return this.getStyle('width').toInt();},setHeight:function(h){this.setStyle('height',h+'px');},getHeight:function(){return this.getStyle('height').toInt();},setTop:function(t){this.setStyle('top',t+'px');},setLeft:function(l){this.setStyle('left',l+'px');}});Fx.Slide.implement({getStatus:function(){return this.wrapper.offsetHeight==0||this.wrapper.offsetWidth==0;}});var EventCenterClass=new Class({options:{onLoad:Class.empty},initialize:function(){this.types=['global'];this.calls=[];this.calls[0]=[];},add:function(fn,type){if(!type){type='global';}
var index=this.types.indexOf(type)
if(index<0){index=this.types.length;this.types[index]=type;this.calls[index]=[];}
if($type(fn)=='function'){this.calls[index][this.calls[index].length]=fn;}},fire:function(type){if(!type){type='global';}
var index=this.types.indexOf(type);if(index>=0){for(var i=0;i<this.calls[index].length;i++){var fn=this.calls[index][i];this.calls[index][i]=false;if($type(fn)=='function')fn();}}},fireAll:function(){for(var i=0;i<this.calls.length;i++){for(var j=0;j<this.calls[i].length;j++){var fn=this.calls[i][j];this.calls[i][j]=false;if($type(fn)=='function')fn();}}}});var EventCenter=new EventCenterClass();var Accordion=Fx.Elements.extend({options:{onActive:Class.empty,onBackground:Class.empty,display:0,show:false,height:true,width:false,opacity:true,fixedHeight:false,fixedWidth:false,overflow:'hidden',wait:false,alwaysHide:false},initialize:function(){var options,togglers,elements,container;$each(arguments,function(argument,i){switch($type(argument)){case'object':options=argument;break;case'element':container=$(argument);break;default:var temp=$$(argument);if(!togglers)togglers=temp;else elements=temp;}});this.togglers=togglers||[];this.elements=elements||[];this.container=$(container);this.setOptions(options);this.previous=-1;if(this.options.alwaysHide)this.options.wait=true;if($chk(this.options.show)){this.options.display=false;this.previous=this.options.show;}
if(this.options.start){this.options.display=false;this.options.show=false;}
this.effects={};if(this.options.opacity)this.effects.opacity='fullOpacity';if(this.options.width)this.effects.width=this.options.fixedWidth?'fullWidth':'offsetWidth';if(this.options.height)this.effects.height=this.options.fixedHeight?'fullHeight':'scrollHeight';for(var i=0,l=this.togglers.length;i<l;i++)this.addSection(this.togglers[i],this.elements[i]);this.elements.each(function(el,i){if(this.options.show===i){this.fireEvent('onActive',[this.togglers[i],el]);}else{for(var fx in this.effects)el.setStyle(fx,0);}},this);this.parent(this.elements);if($chk(this.options.display))this.display(this.options.display);},addSection:function(toggler,element,pos){toggler=$(toggler);element=$(element);var test=this.togglers.contains(toggler);var len=this.togglers.length;this.togglers.include(toggler);this.elements.include(element);if(len&&(!test||pos)){pos=$pick(pos,len-1);toggler.injectBefore(this.togglers[pos]);element.injectAfter(toggler);}else if(this.container&&!test){toggler.inject(this.container);element.inject(this.container);}
var idx=this.togglers.indexOf(toggler);toggler.addEvent('click',this.display.bind(this,idx));if(this.options.height)element.setStyles({'padding-top':0,'border-top':'none','padding-bottom':0,'border-bottom':'none'});if(this.options.width)element.setStyles({'padding-left':0,'border-left':'none','padding-right':0,'border-right':'none'});element.fullOpacity=1;if(this.options.fixedWidth)element.fullWidth=this.options.fixedWidth;if(this.options.fixedHeight)element.fullHeight=this.options.fixedHeight;element.setStyle('overflow',this.options.overflow);if(!test){for(var fx in this.effects)element.setStyle(fx,0);}
return this;
}, display: function(index) { index = ($type(index) == 'element') ? this.elements.indexOf(index) : index; if ((this.timer && this.options.wait) || (index === this.previous && !this.options.alwaysHide)) return this; this.previous = index; var obj = {}; this.elements.each(function(el, i) { obj[i] = {}; var hide = (i != index) || (this.options.alwaysHide && (el.offsetHeight > 0)); this.fireEvent(hide ? 'onBackground' : 'onActive', [this.togglers[i], el]); for (var fx in this.effects) obj[i][fx] = hide ? 0 : el[this.effects[fx]]; }, this); return this.start(obj); }, showThisHideOpen: function(index) { return this.display(index); } 
});
Fx.Accordion = Accordion;

var scroller;
window.addEvents({'domready':function(){if(!window.ie6)
{
var sun=new Element('img',{'src':'Images/Sun.png','id':'sun'}).inject(document.body);
var cloud=new Element('img',{'src':'Images/Cloud2.png','id':'cloud'}).inject(document.body);
var plane=new Element('img',{'src':'Images/Plane.png','id':'plane'}).inject(document.body);
var cloud2=new Element('img',{'src':'Images/Cloud.png','id':'cloud2'}).inject(document.body);
var balloon=new Element('img',{'src':'Images/Birds.png','id':'balloon'}).inject(document.body);

var sun_style=new Fx.Style($('sun'),'top',{duration:2500,transition:Fx.Transitions.Quad.easeOut});
var cloud_style=new Fx.Style($('cloud'),'top',{duration:2500,transition:Fx.Transitions.Quad.easeOut});
var plane_style=new Fx.Style($('plane'),'top',{duration:3500,transition:Fx.Transitions.Quad.easeOut});
var cloud2_style=new Fx.Style($('cloud2'),'top',{duration:2500,transition:Fx.Transitions.Quad.easeOut});
var balloon_style=new Fx.Style($('balloon'),'top',{duration:3500,transition:Fx.Transitions.Quad.easeOut});

scroller=function(){var distance=(window.getScrollTop()/(window.getScrollHeight()-window.getHeight()));
sun_style.stop().start($('sun').getCoordinates().top,(10-(distance*275)));
cloud_style.stop().start($('cloud').getCoordinates().top,(48-(distance*300)));
plane_style.stop().start($('plane').getCoordinates().top,(150-(distance*500)));
cloud2_style.stop().start($('cloud2').getCoordinates().top,(325-(distance*425)));
balloon_style.stop().start($('balloon').getCoordinates().top,(525-(distance*520)));}

scroller.periodical(100);
}

if ($('sign_ups') !== null) { $('sign_up_basic').addEvents({ 'mouseenter': function() { $('sign_up_header_basic').src = 'http://bitcast.vimeo.com/vimeo/assets/images/sign_up_header_basic_hover.png'; $('sign_up_footer_basic').src = 'http://bitcast.vimeo.com/vimeo/assets/images/sign_up_footer_basic_hover.png'; $('sign_up_details_basic').setStyle('background', '#8aac42'); }, 'mouseleave': function() { $('sign_up_header_basic').src = 'http://bitcast.vimeo.com/vimeo/assets/images/sign_up_header_basic.png'; $('sign_up_footer_basic').src = 'http://bitcast.vimeo.com/vimeo/assets/images/sign_up_footer_basic.png'; $('sign_up_details_basic').setStyle('background', '#9fc54e'); }, 'click': function() { window.location = '/sign_up'; } }); $('sign_up_plus').addEvents({ 'mouseenter': function() { $('sign_up_header_plus').src = 'http://bitcast.vimeo.com/vimeo/assets/images/sign_up_header_plus_hover.png'; $('sign_up_footer_plus').src = 'http://bitcast.vimeo.com/vimeo/assets/images/sign_up_footer_plus_hover.png'; $('sign_up_details_plus').setStyle('background', '#48a8e7'); }, 'mouseleave': function() { $('sign_up_header_plus').src = 'http://bitcast.vimeo.com/vimeo/assets/images/sign_up_header_plus.png'; $('sign_up_footer_plus').src = 'http://bitcast.vimeo.com/vimeo/assets/images/sign_up_footer_plus.png'; $('sign_up_details_plus').setStyle('background', '#4ebaff'); }, 'click': function() { window.location = '/cart/plus'; } }); } 
}, 'resize': function() { if (!window.ie6) { if ($('cloud')) $('cloud').setStyle('right', ((window.getWidth() - $('main').getCoordinates().right) - 65) + 'px'); } } 
}); var ajaxing = false; function tab_stream(o) { $('tabs').getElements('li').removeClass('active'); $(o).getParent().addClass('active'); $('videos_content').hide(); $('explore_content').hide(); $('activity_content').hide(); $(o.id + '_content').show(); if ($(o.id + '_content').innerHTML == '') { ajaxing = true; $('stream_loading').show(); refresh_page({ url: '/ajax/user/home_' + o.id, div: o.id + '_content', evalScripts: true, onComplete: function() { $('stream_loading').hide(); ajaxing = false; } }); } }
function page_home_videos(page) { if (ajaxing == false) { ajaxing = true; refresh_page({ url: '/ajax/user/home_videos', jdata: { page: page }, div: 'clips', onComplete: function() { self.scrollTo(0, $('clips').getPosition().y - 10); ajaxing = false; } }); } }
var activity_id; var current_activity_filter = 'all'; function activity_filter(id) { ajaxing = true; current_activity_filter = id; refresh_page({ url: '/ajax/activity/log', jdata: { log_view: 'logged_out', type: 'everyone_did_home', filter: current_activity_filter }, evalScripts: true, onComplete: function(data) { var data = json_response(data); if (data.activity_id) activity_id = data.activity_id; if (data.activity) $('log').innerHTML = data.activity; ajaxing = false; } }); }
function activity_update() {
    if (!ajaxing && ($('activity_content').getStyle('display') != 'none')) {
        ajaxing = true; refresh_page({ jdata: { last_activity_id: activity_id, log_view: 'logged_out', type: 'everyone_did_latest', filter: current_activity_filter }, url: '/ajax/activity/log', evalScripts: true, onComplete: function(data) {
            var data = json_response(data); if (data.activity_id) { activity_id = data.activity_id; }
            if (data.activity) { var li = new Element('div').setHTML(data.activity); li = li.getFirst(); li.injectTop($('log')); var fx_slide = new Fx.Slide(li.id, { duration: 500 }); fx_slide.hide(); fx_slide.slideIn(); }
            ajaxing = false;
        } 
        });
    } 
}
var Forage = new Class({ options: { initial_pool: { results: [] }, initial_bucket: { results: [] }, container: '', everyone: false, search_everyone: true, show_finish: true, show_clear: true, add_email: false, bucket_action: { text: '', callback: Class.empty }, onComplete: Class.empty, onAdd: Class.empty, onRemove: Class.empty, loggedIn: false, delay_image_load: false }, initialize: function(options) {
    this.setOptions(options); this.el_container = $(this.options.container); this.el_left = $E('.forage_left', this.el_container); this.el_right = $E('.forage_right', this.el_container); this.el_search_input = $E('.forage_search_input', this.el_container); this.el_search_clear_btn = $E('.forage_input_clear', this.el_container); this.el_bucket = $E('.forage_bucket', this.el_container); this.el_pool = $E('.forage_pool', this.el_container); this.el_buttonhole = $E('.forage_buttonhole', this.el_container); this.el_bucket_clear_btn = $E('.forage_bucket_clear', this.el_container); this.el_bucket_finish_btn = $E('.forage_bucket_finish', this.el_container); this.el_message = $E('.forage_message', this.el_container); this.el_search_what = $E('.forage_slctbox', this.el_container); this.pool = []; this.bucket = []; this.filter = []; this.everyone = []; this.everyone_poll = new Poll(this.el_search_input, this.searchEveryone, { allow_empty: true, bind: this }); this.everyone_poll.stop(); this.everyone_ajax = false; this.images_loaded = false; this.search_str = ''; this.opt_everyone = this.options.everyone; this.opt_bucket_action_text = this.options.bucket_action.text; this.opt_bucket_action_callback = this.options.bucket_action.callback; this.el_search_clear_btn.addEvent('click', this.input_clear.bind(this)); if (this.el_bucket_finish_btn) { if (this.options.show_finish) this.el_bucket_finish_btn.addEvent('click', this.finish.bind(this)); else this.el_bucket_finish_btn.remove(); }
    if (this.options.show_clear) this.el_bucket_clear_btn.addEvent('click', this.clear_bucket.bind(this)); else this.el_bucket_clear_btn.remove(); this.layout_adjust(); this.input_clear(); this.pool = this.options.initial_pool.results ? this.options.initial_pool.results : []; this.bucket = this.options.initial_bucket.results; if (!this.bucket) this.bucket = []; if (this.bucket.length) this.bucket_redraw(); if (this.pool.length || this.options.add_email) { this.pool_redraw(); new Poll(this.el_search_input, this.search, { bind: this, interval: 250, allow_empty: true }); } else { this.pool_redraw(); this.el_pool.getFirst().setHTML('No contacts found!'); }
    if (!this.options.delay_image_load) { this.loadImages(); } 
}, layout_adjust: function() {
    if (this.el_right.style.display == 'none') return false; var padding = this.el_right.getStyle('padding-top').toInt(); if (!window.ie)
        this.el_right.setStyle('height', this.el_left.getCoordinates().height - (padding * 2) - 5); this.el_bucket.setStyle('top', this.el_message.getCoordinates().height + padding * 2); if (!window.ie)
        this.el_bucket.setStyle('height', this.el_buttonhole.getCoordinates().top - this.el_bucket.getCoordinates().top - padding + 5);
}, loadImages: function() { if (!this.images_loaded) { this.images_loaded = true; var portraits = $ES('.portrait', this.el_pool); for (var i = 0; i < portraits.length; i++) { portraits[i].src = portraits[i].alt; portraits[i].alt = ''; } } }, searchEveryone: function(search_string) {
    this.everyone = []; if (this.everyone_ajax) this.everyone_ajax.cancel(); if (search_string == '') { this.pool_redraw(); return false; }
    this.everyone_ajax = refresh_page({ url: '/ajax/user/search_autocomplete', jdata: { search_term: search_string, limit: 8 }, bind: this, onComplete: function(json_data) { if (json_data) this.everyone = Json.evaluate(json_data).results; this.pool_redraw(); } });
}, search: function(search_string) {
    if (!search_string) search_string = this.el_search_input.value ? this.el_search_input.value : ''; this.search_str = search_string; if (this.opt_everyone) { this.everyone_poll.stop(); this.searchEveryone(this.search_str); }
    else {
        this.everyone_poll.stop(); this.filter = []; var terms = search_string.split(' '); for (i = 0; i < this.pool.length; i++) { for (j = 0; j < terms.length; j++) { var rx = new RegExp(terms[j], 'i'); var match = rx.test(this.pool[i].display_name) || rx.test(this.pool[i].url_name); if (!match && !this.filter.contains(this.pool[i])) this.filter.push(this.pool[i]); } }
        this.pool_redraw();
    } 
}, pool_redraw: function() {
    var users = this.pool; if (this.opt_everyone)
        users = this.everyone; else
        users = this.pool; if (this.options.add_email && checkEmail(this.search_str)) { users = [{ id: strip_punctuation(this.search_str), display_name: this.search_str, caption: 'Click to add this email', portrait: '', removable: true, is_email: true}]; }
    if (!users) users = []; this.el_pool.empty(); for (i = 0; i < users.length; i++) {
        var in_bucket = false; for (j = 0; j < this.bucket.length; j++) { if (this.bucket[j].id == users[i].id) { in_bucket = true; j = this.bucket.length - 1; } }
        var in_filter = false; for (j = 0; j < this.filter.length; j++) { if (this.filter[j].id == users[i].id) { in_filter = true; j = this.filter.length - 1; } }
        if (!in_bucket && !in_filter) { this.el_pool.adopt(new Element('li', { 'class': (users[i].has_plus && !this.options.add_plus) ? 'id_' + users[i].id + ' disabled_plus' : 'id_' + users[i].id, 'events': { 'click': (users[i].has_plus && !this.options.add_plus) ? function() { } : this.bucket_add.pass(users[i], this), 'mouseover': function() { this.addClass('hover'); }, 'mouseout': function() { this.removeClass('hover'); } } }).adopt(new Element('div', { 'class': 'container' }).adopt(!users[i].is_email ? new Element('img', { 'class': 'portrait', 'src': this.images_loaded ? users[i].portrait : 'http://bitcast.vimeo.com/vimeo/assets/images/blank.gif', 'alt': this.images_loaded ? '' : users[i].portrait }) : new Element('span')).adopt(new Element('div', { 'class': !users[i].is_email ? 'digest' : 'digest digest_no_portrait' }).adopt(new Element('div', { 'class': 'name' }).setHTML(users[i].display_name)).adopt(new Element('div', { 'class': 'caption' }).setHTML(users[i].caption ? users[i].caption : '&nbsp;'))).adopt(new Element('div', { 'class': 'clear' })))); } 
    }
    if (this.el_pool.getChildren().length < 1 && this.options.loggedIn) { this.el_pool.adopt(new Element('li', { 'class': '' }).setHTML('No results for &lsquo;' + this.el_search_input.value + '&rsquo;')); }
    if (this.options.search_everyone && this.options.loggedIn) { this.el_pool.adopt(new Element('li', { 'class': 'faux_link', 'id': 'search_toggle', 'events': { 'click': this.who_search_toggle.bind(this)} }).setHTML((this.opt_everyone) ? 'Search my contacts' : 'Search all of Vimeo')); } 
}, bucket_redraw: function() {
    this.el_bucket.empty(); for (i = 0; i < this.bucket.length; i++) {
        var user = this.bucket[i]; var undertaker = new Element('span', { 'class': 'undertaker' }); if (user.removable) undertaker.setHTML('&nbsp;&times;').addEvent('click', this.bucket_remove.pass(user, this)); var caption = new Element('div', { 'class': 'caption' }); var caption_txt = new Element('span').setHTML(user.caption ? user.caption : ''); caption.adopt(caption_txt); if (this.opt_bucket_action_text) { caption.adopt(new Element('div', { 'id': this.options.container + '_bucket_' + user.id, 'class': 'faux_link', 'events': { 'mouseover': function(ev) { faux_link(this); }, 'mouseout': function(ev) { faux_link(this); }, 'click': function(ev) { var e = new Event(ev); var user = this.get_user(e.target.id.substring(this.options.container.length + 8)); this.opt_bucket_action_callback(user, e.target.getPrevious()); } .bind(this)} }).setHTML(this.opt_bucket_action_text)); }
        this.el_bucket.adopt(new Element('li', { 'class': 'id_' + user.id + (i == 0 ? ' first' : '') }).adopt(new Element('div', { 'class': 'container' }).adopt(new Element('div', { 'class': 'img_holder' }).adopt(!user.is_email ? new Element('img', { 'class': 'portrait', 'src': user.portrait }) : new Element('span')).adopt(new Element('span'))).adopt(new Element('div', { 'class': !user.is_email ? 'digest' : 'digest digest_no_portrait' }).setHTML(user.display_name).adopt(!user.is_email ? caption : '')).adopt(undertaker).adopt(new Element('div', { 'class': 'clear' }))));
    }
    if (this.bucket.length) this.el_buttonhole.setStyle('visibility', 'visible'); else this.el_buttonhole.setStyle('visibility', 'hidden');
}, bucket_add: function(user) {
    user.caption = ''; try { $E('.id_' + user.id, this.el_pool).setStyle('display', 'none'); } catch (e) { this.pool_redraw(); }
    this.bucket.unshift(user); this.bucket_redraw(); this.fireEvent('onAdd', [user, this]);
}, bucket_remove: function(user) {
    if (!user.is_email) { try { $E('.id_' + user.id, this.el_pool).setStyle('display', ''); } catch (e) { this.pool_redraw(); } }
    this.bucket.remove(user); this.bucket_redraw(); this.fireEvent('onRemove', [user, this]);
}, get_user: function(user_id) {
    for (var i = 0; i < this.bucket.length; i++) { if (this.bucket[i].id == user_id) { return this.bucket[i]; } }
    return false;
}, set_user: function(user) {
    for (var i = 0; i < this.bucket.length; i++) { if (this.bucket[i].id == user.id) { this.bucket[i] = user; } }
    return false;
}, input_clear: function() { this.el_search_input.value = ''; }, clear_bucket: function() { this.bucket = []; this.bucket_redraw(); this.pool_redraw(); }, everyone_toggle: function() { this.opt_everyone = true; this.search(); }, contacts_toggle: function() { this.opt_everyone = false; this.el_pool.empty(); this.search(); }, who_search_toggle: function() {
    if (this.opt_everyone)
    { this.contacts_toggle(); }
    else
    { this.everyone_toggle(); } 
}, finish: function() {
    var final_bucket = []; var k = 0; var j = 0; for (i = 0; i < this.bucket.length; i++) { final_bucket[j] = this.bucket[i].is_email ? this.bucket[i].display_name : this.bucket[i].id; j++; }
    this.fireEvent('onComplete', [final_bucket]); return final_bucket;
} 
}); Forage.implement(new Options, new Events); var share_forager = true; var facebook_template_data = null; function share_send(users) {
    if (users.length < 1) { alert('You must select some users to share this.'); return false; }
    var type = ''; if ($('share_object_type').value == 'video') { type = 'clip'; } else if ($('share_object_type').value == 'album') { type = 'playlist'; }
    else { type = $('share_object_type').value; }
    $('share_btn').blur(); $('share_btn').disable('Sending...'); $('or_cancel').setHTML(''); refresh_page({ form: 'personal_message', jdata: { users: users, object_id: $('share_object_id').value, object_type: type }, url: '/ajax/misc/share_send', onComplete: function(url) { $('share_btn').disable('Shared!'); $('or_cancel').setHTML('<br /><br /><span class="faux_link more" onmouseover="faux_link(this)" onmouseout="faux_link(this)" onclick="share_reset()">Share this again?</span> or <span class="faux_link more" onmouseover="faux_link(this)" onmouseout="faux_link(this)" onclick="closeLightbox()">close window</span>'); } });
}
function share_reset()
{ $('share_btn').enable('Share'); $('or_cancel').setHTML('or <span class="faux_link" onmouseover="faux_link(this)" onmouseout="faux_link(this)" onclick="closeLightbox()">cancel</span>'); }
function share_submit()
{ share_forager.finish(); }
function myspace_share(title, content, url, loc) {
    var target_url = 'http://www.myspace.com/Modules/PostTo/Pages/?'
+ 't=' + encodeURIComponent(title)
+ '&c=' + encodeURIComponent(content)
+ '&u=' + encodeURIComponent(url)
+ '&l=' + loc; window.open(target_url);
}
var MooRainbow = new Class({ options: { id: 'mooRainbow', input: false, prefix: 'moor-', imgPath: 'http://bitcast.vimeo.com/vimeo/assets/images/moorainbow/', startColor: [255, 0, 0], wheel: false, onOpen: Class.empty, onClose: Class.empty, onChange: Class.empty, onCancel: Class.empty, onComplete: Class.empty }, initialize: function(el, options) { this.element = $(el); if (!this.element) return; this.setOptions(options); this.sliderPos = 0; this.pickerPos = { x: 0, y: 0 }; this.backupColor = this.options.startColor; this.currentColor = this.options.startColor; this.sets = { rgb: [], hsb: [], hex: [] }; this.pickerClick = this.sliderClick = false; if (!this.layout) this.doLayout(); this.OverlayEvents(); this.sliderEvents(); this.backupEvent(); if (this.options.wheel) this.wheelEvents(); this.element.addEvent('click', function(e) { this.toggle(e); } .bind(this)); this.layout.overlay.setStyle('background-color', this.options.startColor.rgbToHex()); this.layout.backup.setStyle('background-color', this.backupColor.rgbToHex()); this.pickerPos.x = this.snippet('curPos').l + this.snippet('curSize', 'int').w; this.pickerPos.y = this.snippet('curPos').t + this.snippet('curSize', 'int').h; this.manualSet(this.options.startColor); this.pickerPos.x = this.snippet('curPos').l + this.snippet('curSize', 'int').w; this.pickerPos.y = this.snippet('curPos').t + this.snippet('curSize', 'int').h; this.sliderPos = this.snippet('arrPos') - this.snippet('arrSize', 'int'); if (window.khtml) this.hide(); }, toggle: function() { this[this.visible ? 'hide' : 'show']() }, show: function() {
    this.fireEvent('onOpen', [this.sets, this]); this.rePosition(); this.layout.setStyle('display', 'block'); this.layout.setStyle('zIndex', 100005); this.visible = true; if (this.options.input)
        this.manualSet($(this.options.input).value, 'hex');
}, hide: function() { this.fireEvent('onClose', [this.sets, this]); this.layout.setStyles({ 'display': 'none' }); this.visible = false; }, manualSet: function(color, type) {
    if (!type || (type != 'hsb' && type != 'hex')) type = 'rgb'; var rgb, hsb, hex; if (type == 'rgb') { rgb = color; hsb = color.rgbToHsb(); hex = color.rgbToHex(); }
    else if (type == 'hsb') { hsb = color; rgb = color.hsbToRgb(); hex = rgb.rgbToHex(); }
    else { hex = color; rgb = color.hexToRgb(true); hsb = rgb.rgbToHsb(); }
    this.setMooRainbow(rgb); this.autoSet(hsb);
}, autoSet: function(hsb) { var curH = this.snippet('curSize', 'int').h; var curW = this.snippet('curSize', 'int').w; var oveH = this.layout.overlay.height; var oveW = this.layout.overlay.width; var sliH = this.layout.slider.height; var arwH = this.snippet('arrSize', 'int'); var hue; var posx = Math.round(((oveW * hsb[1]) / 100) - curW); var posy = Math.round(-((oveH * hsb[2]) / 100) + oveH - curH); var c = Math.round(((sliH * hsb[0]) / 360)); c = (c == 360) ? 0 : c; var position = sliH - c + this.snippet('slider') - arwH; hue = [this.sets.hsb[0], 100, 100].hsbToRgb().rgbToHex(); this.layout.cursor.setStyles({ 'top': posy, 'left': posx }); this.layout.arrows.setStyle('top', position); this.layout.overlay.setStyle('background-color', hue); this.sliderPos = this.snippet('arrPos') - arwH; this.pickerPos.x = this.snippet('curPos').l + curW; this.pickerPos.y = this.snippet('curPos').t + curH; }, setMooRainbow: function(color, type) {
    if (!type || (type != 'hsb' && type != 'hex')) type = 'rgb'; var rgb, hsb, hex; if (type == 'rgb') { rgb = color; hsb = color.rgbToHsb(); hex = color.rgbToHex(); }
    else if (type == 'hsb') { hsb = color; rgb = color.hsbToRgb(); hex = rgb.rgbToHex(); }
    else { hex = color; rgb = color.hexToRgb(); hsb = rgb.rgbToHsb(); }
    this.sets = { rgb: rgb, hsb: hsb, hex: hex }; if (!$chk(this.pickerPos.x))
        this.autoSet(hsb); this.RedInput.value = rgb[0]; this.GreenInput.value = rgb[1]; this.BlueInput.value = rgb[2]; this.HueInput.value = hsb[0]; this.SatuInput.value = hsb[1]; this.BrighInput.value = hsb[2]; this.hexInput.value = hex; this.currentColor = rgb; this.chooseColor.setStyle('background-color', rgb.rgbToHex());
}, parseColors: function(x, y, z) { var s = Math.round((x * 100) / this.layout.overlay.width); var b = 100 - Math.round((y * 100) / this.layout.overlay.height); var h = 360 - Math.round((z * 360) / this.layout.slider.height) + this.snippet('slider') - this.snippet('arrSize', 'int'); h -= this.snippet('arrSize', 'int'); h = (h >= 360) ? 0 : (h < 0) ? 0 : h; s = (s > 100) ? 100 : (s < 0) ? 0 : s; b = (b > 100) ? 100 : (b < 0) ? 0 : b; return [h, s, b]; }, OverlayEvents: function() {
    var lim, curH, curW, inputs; curH = this.snippet('curSize', 'int').h; curW = this.snippet('curSize', 'int').w; inputs = this.arrRGB.copy().concat(this.arrHSB, this.hexInput); document.addEvent('click', function() { if (this.visible) this.hide(this.layout); } .bind(this)); inputs.each(function(el) { el.addEvent('keydown', this.eventKeydown.bindWithEvent(this, el)); el.addEvent('keyup', this.eventKeyup.bindWithEvent(this, el)); }, this); [this.element, this.layout].each(function(el) { el.addEvents({ 'click': function(e) { new Event(e).stop(); }, 'keyup': function(e) { e = new Event(e); if (e.key == 'esc' && this.visible) this.hide(this.layout); } .bind(this) }, this); }, this); lim = { x: [0 - curW, (this.layout.overlay.width - curW)], y: [0 - curH, (this.layout.overlay.height - curH)] }; this.layout.drag = new Drag.Base(this.layout.cursor, { limit: lim, onStart: this.overlayDrag.bind(this), onDrag: this.overlayDrag.bind(this), snap: 0 }); this.layout.overlay2.addEvent('mousedown', function(e) { e = new Event(e); this.layout.cursor.setStyles({ 'top': e.page.y - this.layout.overlay.getTop() - curH, 'left': e.page.x - this.layout.overlay.getLeft() - curW }); this.layout.drag.start(e); } .bind(this)); this.okButton.addEvent('click', function() {
        if (this.currentColor == this.options.startColor) { this.fireEvent('onComplete', [this.sets, this]); this.hide(); }
        else { this.backupColor = this.currentColor; this.layout.backup.setStyle('background-color', this.backupColor.rgbToHex()); this.fireEvent('onComplete', [this.sets, this]); this.hide(); } 
    } .bind(this));
}, overlayDrag: function() { var curH = this.snippet('curSize', 'int').h; var curW = this.snippet('curSize', 'int').w; this.pickerPos.x = this.snippet('curPos').l + curW; this.pickerPos.y = this.snippet('curPos').t + curH; this.setMooRainbow(this.parseColors(this.pickerPos.x, this.pickerPos.y, this.sliderPos), 'hsb'); this.fireEvent('onChange', [this.sets, this]); }, sliderEvents: function() { var arwH = this.snippet('arrSize', 'int'), lim; lim = [0 + this.snippet('slider') - arwH, this.layout.slider.height - arwH + this.snippet('slider')]; this.layout.sliderDrag = new Drag.Base(this.layout.arrows, { limit: { y: lim }, modifiers: { x: false }, onStart: this.sliderDrag.bind(this), onDrag: this.sliderDrag.bind(this), snap: 0 }); this.layout.slider.addEvent('mousedown', function(e) { e = new Event(e); this.layout.arrows.setStyle('top', e.page.y - this.layout.slider.getTop() + this.snippet('slider') - arwH); this.layout.sliderDrag.start(e); } .bind(this)); }, sliderDrag: function() { var arwH = this.snippet('arrSize', 'int'), hue; this.sliderPos = this.snippet('arrPos') - arwH; this.setMooRainbow(this.parseColors(this.pickerPos.x, this.pickerPos.y, this.sliderPos), 'hsb'); hue = [this.sets.hsb[0], 100, 100].hsbToRgb().rgbToHex(); this.layout.overlay.setStyle('background-color', hue); this.fireEvent('onChange', [this.sets, this]); }, backupEvent: function() { this.layout.backup.addEvent('click', function() { this.manualSet(this.backupColor); this.fireEvent('onChange', [this.sets, this]); } .bind(this)); }, wheelEvents: function() { var arrColors = this.arrRGB.copy().extend(this.arrHSB); arrColors.each(function(el) { el.addEvents({ 'mousewheel': this.eventKeys.bindWithEvent(this, el), 'keydown': this.eventKeys.bindWithEvent(this, el) }); }, this); [this.layout.arrows, this.layout.slider].each(function(el) { el.addEvents({ 'mousewheel': this.eventKeys.bindWithEvent(this, [this.arrHSB[0], 'slider']), 'keydown': this.eventKeys.bindWithEvent(this, [this.arrHSB[0], 'slider']) }); }, this); }, eventKeys: function(e, el, id) {
    var wheel, type; id = (!id) ? el.id : this.arrHSB[0]; if (e.type == 'keydown') { if (e.key == 'up') wheel = 1; else if (e.key == 'down') wheel = -1; else return; } else if (e.type == Element.Events.mousewheel.type) wheel = (e.wheel > 0) ? 1 : -1; if (this.arrRGB.test(el)) type = 'rgb'; else if (this.arrHSB.test(el)) type = 'hsb'; else type = 'hsb'; if (type == 'rgb') {
        var rgb = this.sets.rgb, hsb = this.sets.hsb, prefix = this.options.prefix, pass; var value = el.value.toInt() + wheel; value = (value > 255) ? 255 : (value < 0) ? 0 : value; switch (el.className) { case prefix + 'rInput': pass = [value, rgb[1], rgb[2]]; break; case prefix + 'gInput': pass = [rgb[0], value, rgb[2]]; break; case prefix + 'bInput': pass = [rgb[0], rgb[1], value]; break; default: pass = rgb; }
        this.manualSet(pass); this.fireEvent('onChange', [this.sets, this]);
    } else {
        var rgb = this.sets.rgb, hsb = this.sets.hsb, prefix = this.options.prefix, pass; var value = el.value.toInt() + wheel; if (el.className.test(/(HueInput)/)) value = (value > 359) ? 0 : (value < 0) ? 0 : value; else value = (value > 100) ? 100 : (value < 0) ? 0 : value; switch (el.className) { case prefix + 'HueInput': pass = [value, hsb[1], hsb[2]]; break; case prefix + 'SatuInput': pass = [hsb[0], value, hsb[2]]; break; case prefix + 'BrighInput': pass = [hsb[0], hsb[1], value]; break; default: pass = hsb; }
        this.manualSet(pass, 'hsb'); this.fireEvent('onChange', [this.sets, this]);
    }
    e.stop();
}, eventKeydown: function(e, el) {
    var n = e.code, k = e.key; if ((!el.className.test(/hexInput/) && !(n >= 48 && n <= 57)) && (k != 'backspace' && k != 'tab' && k != 'delete' && k != 'left' && k != 'right'))
        e.stop();
}, eventKeyup: function(e, el) {
    var n = e.code, k = e.key, pass, prefix, chr = el.value.charAt(0); if (!$chk(el.value)) return; if (el.className.test(/hexInput/)) { if (chr != "#" && el.value.length != 6) return; if (chr == '#' && el.value.length != 7) return; } else { if (!(n >= 48 && n <= 57) && (!['backspace', 'tab', 'delete', 'left', 'right'].test(k)) && el.value.length > 3) return; }
    prefix = this.options.prefix; if (el.className.test(/(rInput|gInput|bInput)/)) {
        if (el.value < 0 || el.value > 255) return; switch (el.className) { case prefix + 'rInput': pass = [el.value, this.sets.rgb[1], this.sets.rgb[2]]; break; case prefix + 'gInput': pass = [this.sets.rgb[0], el.value, this.sets.rgb[2]]; break; case prefix + 'bInput': pass = [this.sets.rgb[0], this.sets.rgb[1], el.value]; break; default: pass = this.sets.rgb; }
        this.manualSet(pass); this.fireEvent('onChange', [this.sets, this]);
    }
    else if (!el.className.test(/hexInput/)) {
        if (el.className.test(/HueInput/) && el.value < 0 || el.value > 360) return; else if (el.className.test(/HueInput/) && el.value == 360) el.value = 0; else if (el.className.test(/(SatuInput|BrighInput)/) && el.value < 0 || el.value > 100) return; switch (el.className) { case prefix + 'HueInput': pass = [el.value, this.sets.hsb[1], this.sets.hsb[2]]; break; case prefix + 'SatuInput': pass = [this.sets.hsb[0], el.value, this.sets.hsb[2]]; break; case prefix + 'BrighInput': pass = [this.sets.hsb[0], this.sets.hsb[1], el.value]; break; default: pass = this.sets.hsb; }
        this.manualSet(pass, 'hsb'); this.fireEvent('onChange', [this.sets, this]);
    } else { pass = el.value.hexToRgb(true); if (isNaN(pass[0]) || isNaN(pass[1]) || isNaN(pass[2])) return; if ($chk(pass)) { this.manualSet(pass); this.fireEvent('onChange', [this.sets, this]); } } 
}, doLayout: function() {
    var id = this.options.id, prefix = this.options.prefix; var idPrefix = id + ' .' + prefix; this.layout = new Element('div', { 'styles': { 'display': 'block', 'position': 'absolute' }, 'id': id }).inject(document.body); var box = new Element('div', { 'styles': { 'position': 'relative' }, 'class': prefix + 'box' }).inject(this.layout); var div = new Element('div', { 'styles': { 'position': 'absolute', 'overflow': 'hidden' }, 'class': prefix + 'overlayBox' }).inject(box); var ar = new Element('div', { 'styles': { 'position': 'absolute', 'zIndex': 1 }, 'class': prefix + 'arrows' }).inject(box); ar.width = ar.getStyle('width').toInt(); ar.height = ar.getStyle('height').toInt(); var ov = new Element('img', { 'styles': { 'background-color': '#fff', 'position': 'relative', 'zIndex': 2 }, 'src': this.options.imgPath + 'moor_woverlay.png', 'class': prefix + 'overlay' }).inject(div); var ov2 = new Element('img', { 'styles': { 'position': 'absolute', 'top': 0, 'left': 0, 'zIndex': 2 }, 'src': this.options.imgPath + 'moor_boverlay.png', 'class': prefix + 'overlay' }).inject(div); if (window.ie6) { div.setStyle('overflow', ''); var src = ov.src; ov.src = this.options.imgPath + 'blank.gif'; ov.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='scale')"; src = ov2.src; ov2.src = this.options.imgPath + 'blank.gif'; ov2.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='scale')"; }
    ov.width = ov2.width = div.getStyle('width').toInt(); ov.height = ov2.height = div.getStyle('height').toInt(); var cr = new Element('div', { 'styles': { 'overflow': 'hidden', 'position': 'absolute', 'zIndex': 2 }, 'class': prefix + 'cursor' }).inject(div); cr.width = cr.getStyle('width').toInt(); cr.height = cr.getStyle('height').toInt(); var sl = new Element('img', { 'styles': { 'position': 'absolute', 'z-index': 2 }, 'src': this.options.imgPath + 'moor_slider.png', 'class': prefix + 'slider' }).inject(box); this.layout.slider = $E('#' + idPrefix + 'slider'); sl.width = sl.getStyle('width').toInt(); sl.height = sl.getStyle('height').toInt(); new Element('div', { 'styles': { 'position': 'absolute' }, 'class': prefix + 'colorBox' }).inject(box); new Element('div', { 'styles': { 'zIndex': 2, 'position': 'absolute' }, 'class': prefix + 'chooseColor' }).inject(box); this.layout.backup = new Element('div', { 'styles': { 'zIndex': 2, 'position': 'absolute', 'cursor': 'pointer' }, 'class': prefix + 'currentColor' }).inject(box); var R = new Element('label').inject(box).setStyle('position', 'absolute'); var G = R.clone().inject(box).addClass(prefix + 'gLabel').appendText('G: '); var B = R.clone().inject(box).addClass(prefix + 'bLabel').appendText('B: '); R.appendText('R: ').addClass(prefix + 'rLabel'); var inputR = new Element('input'); var inputG = inputR.clone().inject(G).addClass(prefix + 'gInput'); var inputB = inputR.clone().inject(B).addClass(prefix + 'bInput'); inputR.inject(R).addClass(prefix + 'rInput'); var HU = new Element('label').inject(box).setStyle('position', 'absolute'); var SA = HU.clone().inject(box).addClass(prefix + 'SatuLabel').appendText('S: '); var BR = HU.clone().inject(box).addClass(prefix + 'BrighLabel').appendText('B: '); HU.appendText('H: ').addClass(prefix + 'HueLabel'); var inputHU = new Element('input'); var inputSA = inputHU.clone().inject(SA).addClass(prefix + 'SatuInput'); var inputBR = inputHU.clone().inject(BR).addClass(prefix + 'BrighInput'); inputHU.inject(HU).addClass(prefix + 'HueInput'); SA.appendText(' %'); BR.appendText(' %'); new Element('span', { 'styles': { 'position': 'absolute' }, 'class': prefix + 'ballino' }).setHTML(" &deg;").injectAfter(HU); var hex = new Element('label').inject(box).setStyle('display', 'none').addClass(prefix + 'hexLabel').appendText('#hex: ').adopt(new Element('input').addClass(prefix + 'hexInput')); var or = new Element('label', { 'class': prefix + 'orLabel' }).inject(box).appendText('or'); var cancel = new Element('a', { 'class': prefix + 'cancelButton' }).appendText('cancel').inject(box); var arrow = new Element('div', { 'class': prefix + 'arrow' }).inject(box); var ok = new Element('input', { 'styles': { 'position': 'absolute' }, 'type': 'button', 'value': 'Select', 'class': prefix + 'okButton blue_button' }).inject(box); this.rePosition(); var overlays = $$('#' + idPrefix + 'overlay'); this.layout.overlay = overlays[0]; this.layout.overlay2 = overlays[1]; this.layout.cursor = $E('#' + idPrefix + 'cursor'); this.layout.arrows = $E('#' + idPrefix + 'arrows'); this.chooseColor = $E('#' + idPrefix + 'chooseColor'); this.layout.backup = $E('#' + idPrefix + 'currentColor'); this.RedInput = $E('#' + idPrefix + 'rInput'); this.GreenInput = $E('#' + idPrefix + 'gInput'); this.BlueInput = $E('#' + idPrefix + 'bInput'); this.HueInput = $E('#' + idPrefix + 'HueInput'); this.SatuInput = $E('#' + idPrefix + 'SatuInput'); this.BrighInput = $E('#' + idPrefix + 'BrighInput'); this.hexInput = $E('#' + idPrefix + 'hexInput'); this.arrRGB = [this.RedInput, this.GreenInput, this.BlueInput]; this.arrHSB = [this.HueInput, this.SatuInput, this.BrighInput]; this.okButton = $E('#' + idPrefix + 'okButton'); if (!window.khtml) this.hide(); this.cancelButton = $E('#' + idPrefix + 'cancelButton'); this.cancelButton.addEvent('click', function() { this.fireEvent('onCancel', [this.sets, this]); this.hide(); this.fireEvent('onClose', [this.sets, this]); } .bind(this));
}, rePosition: function() { var coords = this.element.getCoordinates(); this.layout.setStyles({ 'left': coords.left + coords.width, 'top': coords.top - 13 }); }, snippet: function(mode, type) { var size; type = (type) ? type : 'none'; switch (mode) { case 'arrPos': var t = this.layout.arrows.getStyle('top').toInt(); size = t; break; case 'arrSize': var h = this.layout.arrows.height; h = (type == 'int') ? (h / 2).toInt() : h; size = h; break; case 'curPos': var l = this.layout.cursor.getStyle('left').toInt(); var t = this.layout.cursor.getStyle('top').toInt(); size = { 'l': l, 't': t }; break; case 'slider': var t = this.layout.slider.getStyle('marginTop').toInt(); size = t; break; default: var h = this.layout.cursor.height; var w = this.layout.cursor.width; h = (type == 'int') ? (h / 2).toInt() : h; w = (type == 'int') ? (w / 2).toInt() : w; size = { w: w, h: h }; }; return size; } 
}); MooRainbow.implement(new Options); MooRainbow.implement(new Events); function embed_preview(clip_id) {
    if (!clip_id)
        clip_id = $('embed_clip_id').value; var color = $('embed_color').value; var width = $('embed_width').value; var height = $('embed_height').value; if (width > 400) {
        width = 400; height = Math.round(width / ($('embed_orig_width').value / $('embed_orig_height').value)); if ($('embed_preview').getStyle('display') != 'none')
            $('size_embed_alert').show(); $('embed_preview_width').innerHTML = $('embed_width').value;
    }
    else { $('size_embed_alert').hide(); }
    new Moogaloop('embed_preview', { clip_id: clip_id, server: $('embed_server').value, width: width, height: height, show_title: $('embed_title').checked ? 1 : 0, show_byline: $('embed_byline').checked ? 1 : 0, show_portrait: $('embed_portrait').checked ? 1 : 0, color: color.substr(0, 1) == '#' ? color.substr(1) : color, force_embed: 1 });
}
function embed_preview_api(id, value) { try { switch (id) { default: document.getElementById('vimeo_clip_' + $('embed_clip_id').value).api_toggleElement(id, value); break; case 'color': if (value.substr(0, 1) == '#') value = value.substr(1); document.getElementById('vimeo_clip_' + $('embed_clip_id').value).api_changeColor(value); break; } } catch (e) { } }
function embed_update(clip_id) {
    if ($('embed_width').value == '' || $('embed_height').value == '') embed_size_reset(); if (!clip_id) clip_id = $('embed_clip_id').value; if ($('embed_link').checked || $('embed_caption').checked) {
        $('desc_embed_alert').show(); $('embed_link_txt').hide(); $('embed_desc_txt').hide(); $('embed_desc_and_link_txt').hide(); if ($('embed_link').checked && $('embed_caption').checked) { $('embed_desc_and_link_txt').show(); }
        else if ($('embed_caption').checked) { $('embed_desc_txt').show(); }
        else if ($('embed_link').checked) { $('embed_link_txt').show(); } 
    } else
        $('desc_embed_alert').hide(); refresh_page({ jdata: { clip_id: clip_id, width: $('embed_width').value, height: $('embed_height').value, title: $('embed_title').checked, byline: $('embed_byline').checked, portrait: $('embed_portrait').checked, link: $('embed_link').checked, caption: $('embed_caption').checked, color: $('embed_color').value }, url: '/ajax/clip/embed_code', onComplete: function(data) { $('embed_code').value = data; $('embed_code').focus(); $('embed_code').select(); } });
}
function embed_resize_width(width) { if (width == '') return false; width = width.toInt(); if (width) { $('embed_height').value = Math.round(width * ($('embed_orig_height').value / $('embed_orig_width').value)); } else { embed_size_reset(); } }
function embed_resize_height(height) { if (height == '') return false; height = height.toInt(); if (height) { $('embed_width').value = Math.round(height * ($('embed_orig_width').value / $('embed_orig_height').value)); } else { embed_size_reset(); } }
function embed_size_reset() { $('embed_height').value = $('embed_orig_height').value; $('embed_width').value = $('embed_orig_width').value; }
function embed_reset_to_defaults() {
    $('embed_width').value = 400; $('embed_height').value = Math.floor(400 / ($('embed_orig_width').value / $('embed_orig_height').value)); if (!$('embed_portrait').disabled) $('embed_portrait').setProperty('checked', ''); if (!$('embed_title').disabled) $('embed_title').setProperty('checked', 'checked'); if (!$('embed_byline').disabled) $('embed_byline').setProperty('checked', 'checked'); if ($('embed_color_dropdown')) { $('embed_color').value = '#00ADEF'; $('embed_color_dropdown').setStyle('color', '#00ADEF'); }
    embed_preview(); embed_update();
}
var isIE = window.ie; var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false; var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false; function ControlVersion() {
    var version; var axo; var e; try { axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7"); version = axo.GetVariable("$version"); } catch (e) { }
    if (!version)
    { try { axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6"); version = "WIN 6,0,21,0"; axo.AllowScriptAccess = "always"; version = axo.GetVariable("$version"); } catch (e) { } }
    if (!version)
    { try { axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3"); version = axo.GetVariable("$version"); } catch (e) { } }
    if (!version)
    { try { axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3"); version = "WIN 3,0,18,0"; } catch (e) { } }
    if (!version)
    { try { axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash"); version = "WIN 2,0,0,11"; } catch (e) { version = -1; } }
    return version;
}
function GetSwfVer() {
    var flashVer = -1; if (navigator.plugins != null && navigator.plugins.length > 0) {
        if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
            var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : ""; var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description; var descArray = flashDescription.split(" "); var tempArrayMajor = descArray[2].split("."); var versionMajor = tempArrayMajor[0]; var versionMinor = tempArrayMajor[1]; if (descArray[3] != "") { var splitter = descArray[3].indexOf("d") != -1 ? 'd' : 'r'; tempArrayMinor = descArray[3].split(splitter); } else { var splitter = descArray[4].indexOf("d") != -1 ? 'd' : 'r'; tempArrayMinor = descArray[4].split(splitter); }
            var versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0; var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
        } 
    }
    else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4; else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3; else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2; else if (isIE && isWin && !isOpera) { flashVer = ControlVersion(); }
    return flashVer;
}
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision) {
    versionStr = GetSwfVer(); if (versionStr == -1) { return false; } else if (versionStr != 0) {
        if (window.ie && isWin && !isOpera) { tempArray = versionStr.split(" "); tempString = tempArray[1]; versionArray = tempString.split(","); } else { versionArray = versionStr.split("."); }
        var versionMajor = versionArray[0]; var versionMinor = versionArray[1]; var versionRevision = versionArray[2]; if (versionMajor > parseFloat(reqMajorVer)) { return true; } else if (versionMajor == parseFloat(reqMajorVer)) {
            if (versionMinor > parseFloat(reqMinorVer))
                return true; else if (versionMinor == parseFloat(reqMinorVer)) {
                if (versionRevision >= parseFloat(reqRevision))
                    return true;
            } 
        }
        return false;
    } 
}
function AC_AddExtension(src, ext) {
    if (src.indexOf('?') != -1)
        return src.replace(/\?/, ext + '?'); else
        return src + ext;
}
function AC_Generateobj(objAttrs, params, embedAttrs) {
    var str = ''; if (isIE && isWin && !isOpera) {
        str += '<object '; for (var i in objAttrs)
            str += i + '="' + objAttrs[i] + '" '; for (var i in params)
            str += '><param name="' + i + '" value="' + params[i] + '" /> '; str += '></object>';
    } else {
        str += '<embed '; for (var i in embedAttrs)
            str += i + '="' + embedAttrs[i] + '" '; str += '> </embed>';
    }
    document.write(str);
}
function AC_FL_RunContent() {
    var ret = AC_GetArgs
(arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000", "application/x-shockwave-flash"); AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
function AC_GetArgs(args, ext, srcParamName, classid, mimeType) {
    var ret = new Object(); ret.embedAttrs = new Object(); ret.params = new Object(); ret.objAttrs = new Object(); for (var i = 0; i < args.length; i = i + 2) { var currArg = args[i].toLowerCase(); switch (currArg) { case "classid": break; case "pluginspage": ret.embedAttrs[args[i]] = args[i + 1]; break; case "src": case "movie": args[i + 1] = AC_AddExtension(args[i + 1], ext); ret.embedAttrs["src"] = args[i + 1]; ret.params[srcParamName] = args[i + 1]; break; case "onafterupdate": case "onbeforeupdate": case "onblur": case "oncellchange": case "onclick": case "ondblClick": case "ondrag": case "ondragend": case "ondragenter": case "ondragleave": case "ondragover": case "ondrop": case "onfinish": case "onfocus": case "onhelp": case "onmousedown": case "onmouseup": case "onmouseover": case "onmousemove": case "onmouseout": case "onkeypress": case "onkeydown": case "onkeyup": case "onload": case "onlosecapture": case "onpropertychange": case "onreadystatechange": case "onrowsdelete": case "onrowenter": case "onrowexit": case "onrowsinserted": case "onstart": case "onscroll": case "onbeforeeditfocus": case "onactivate": case "onbeforedeactivate": case "ondeactivate": case "type": case "codebase": case "id": ret.objAttrs[args[i]] = args[i + 1]; break; case "width": case "height": case "align": case "vspace": case "hspace": case "class": case "title": case "accesskey": case "name": case "tabindex": ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i + 1]; break; default: ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i + 1]; } }
    ret.objAttrs["classid"] = classid; if (mimeType) ret.embedAttrs["type"] = mimeType; return ret;
}
if (typeof deconcept == "undefined") { var deconcept = new Object(); } if (typeof deconcept.util == "undefined") { deconcept.util = new Object(); } if (typeof deconcept.SWFObjectUtil == "undefined") { deconcept.SWFObjectUtil = new Object(); } deconcept.SWFObject = function(_1, id, w, h, _5, c, _7, _8, _9, _a) { if (!document.getElementById) { return; } this.DETECT_KEY = _a ? _a : "detectflash"; this.skipDetect = deconcept.util.getRequestParameter(this.DETECT_KEY); this.params = new Object(); this.variables = new Object(); this.attributes = new Array(); if (_1) { this.setAttribute("swf", _1); } if (id) { this.setAttribute("id", id); } if (w) { this.setAttribute("width", w); } if (h) { this.setAttribute("height", h); } if (_5) { this.setAttribute("version", new deconcept.PlayerVersion(_5.toString().split("."))); } this.installedVer = deconcept.SWFObjectUtil.getPlayerVersion(); if (!window.opera && document.all && this.installedVer.major > 7) { deconcept.SWFObject.doPrepUnload = true; } if (c) { this.addParam("bgcolor", c); } var q = _7 ? _7 : "high"; this.addParam("quality", q); this.setAttribute("useExpressInstall", false); this.setAttribute("doExpressInstall", false); var _c = (_8) ? _8 : window.location; this.setAttribute("xiRedirectUrl", _c); this.setAttribute("redirectUrl", ""); if (_9) { this.setAttribute("redirectUrl", _9); } }; deconcept.SWFObject.prototype = { useExpressInstall: function(_d) { this.xiSWFPath = !_d ? "expressinstall.swf" : _d; this.setAttribute("useExpressInstall", true); }, setAttribute: function(_e, _f) { this.attributes[_e] = _f; }, getAttribute: function(_10) { return this.attributes[_10]; }, addParam: function(_11, _12) { this.params[_11] = _12; }, getParams: function() { return this.params; }, addVariable: function(_13, _14) { this.variables[_13] = _14; }, getVariable: function(_15) { return this.variables[_15]; }, getVariables: function() { return this.variables; }, getVariablePairs: function() { var _16 = new Array(); var key; var _18 = this.getVariables(); for (key in _18) { _16[_16.length] = key + "=" + _18[key]; } return _16; }, getSWFHTML: function() { var _19 = ""; if (navigator.plugins && navigator.mimeTypes && navigator.mimeTypes.length) { if (this.getAttribute("doExpressInstall")) { this.addVariable("MMplayerType", "PlugIn"); this.setAttribute("swf", this.xiSWFPath); } _19 = "<embed type=\"application/x-shockwave-flash\" src=\"" + this.getAttribute("swf") + "\" width=\"" + this.getAttribute("width") + "\" height=\"" + this.getAttribute("height") + "\" style=\"" + this.getAttribute("style") + "\""; _19 += " id=\"" + this.getAttribute("id") + "\" name=\"" + this.getAttribute("id") + "\" "; var _1a = this.getParams(); for (var key in _1a) { _19 += [key] + "=\"" + _1a[key] + "\" "; } var _1c = this.getVariablePairs().join("&"); if (_1c.length > 0) { _19 += "flashvars=\"" + _1c + "\""; } _19 += "/>"; } else { if (this.getAttribute("doExpressInstall")) { this.addVariable("MMplayerType", "ActiveX"); this.setAttribute("swf", this.xiSWFPath); } _19 = "<object id=\"" + this.getAttribute("id") + "\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\"" + this.getAttribute("width") + "\" height=\"" + this.getAttribute("height") + "\" style=\"" + this.getAttribute("style") + "\">"; _19 += "<param name=\"movie\" value=\"" + this.getAttribute("swf") + "\" />"; var _1d = this.getParams(); for (var key in _1d) { _19 += "<param name=\"" + key + "\" value=\"" + _1d[key] + "\" />"; } var _1f = this.getVariablePairs().join("&"); if (_1f.length > 0) { _19 += "<param name=\"flashvars\" value=\"" + _1f + "\" />"; } _19 += "</object>"; } return _19; }, write: function(_20) { if (this.getAttribute("useExpressInstall")) { var _21 = new deconcept.PlayerVersion([6, 0, 65]); if (this.installedVer.versionIsValid(_21) && !this.installedVer.versionIsValid(this.getAttribute("version"))) { this.setAttribute("doExpressInstall", true); this.addVariable("MMredirectURL", escape(this.getAttribute("xiRedirectUrl"))); document.title = document.title.slice(0, 47) + " - Flash Player Installation"; this.addVariable("MMdoctitle", document.title); } } if (this.skipDetect || this.getAttribute("doExpressInstall") || this.installedVer.versionIsValid(this.getAttribute("version"))) { var n = (typeof _20 == "string") ? document.getElementById(_20) : _20; n.innerHTML = this.getSWFHTML(); return true; } else { if (this.getAttribute("redirectUrl") != "") { document.location.replace(this.getAttribute("redirectUrl")); } } return false; } }; deconcept.SWFObjectUtil.getPlayerVersion = function() { var _23 = new deconcept.PlayerVersion([0, 0, 0]); if (navigator.plugins && navigator.mimeTypes.length) { var x = navigator.plugins["Shockwave Flash"]; if (x && x.description) { _23 = new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/, "").replace(/(\s+r|\s+b[0-9]+)/, ".").split(".")); } } else { if (navigator.userAgent && navigator.userAgent.indexOf("Windows CE") >= 0) { var axo = 1; var _26 = 3; while (axo) { try { _26++; axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash." + _26); _23 = new deconcept.PlayerVersion([_26, 0, 0]); } catch (e) { axo = null; } } } else { try { var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7"); } catch (e) { try { var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6"); _23 = new deconcept.PlayerVersion([6, 0, 21]); axo.AllowScriptAccess = "always"; } catch (e) { if (_23.major == 6) { return _23; } } try { axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash"); } catch (e) { } } if (axo != null) { _23 = new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(",")); } } } return _23; }; deconcept.PlayerVersion = function(_29) { this.major = _29[0] != null ? parseInt(_29[0]) : 0; this.minor = _29[1] != null ? parseInt(_29[1]) : 0; this.rev = _29[2] != null ? parseInt(_29[2]) : 0; }; deconcept.PlayerVersion.prototype.versionIsValid = function(fv) { if (this.major < fv.major) { return false; } if (this.major > fv.major) { return true; } if (this.minor < fv.minor) { return false; } if (this.minor > fv.minor) { return true; } if (this.rev < fv.rev) { return false; } return true; }; deconcept.util = { getRequestParameter: function(_2b) { var q = document.location.search || document.location.hash; if (_2b == null) { return q; } if (q) { var _2d = q.substring(1).split("&"); for (var i = 0; i < _2d.length; i++) { if (_2d[i].substring(0, _2d[i].indexOf("=")) == _2b) { return _2d[i].substring((_2d[i].indexOf("=") + 1)); } } } return ""; } }; deconcept.SWFObjectUtil.cleanupSWFs = function() { var _2f = document.getElementsByTagName("OBJECT"); for (var i = _2f.length - 1; i >= 0; i--) { _2f[i].style.display = "none"; for (var x in _2f[i]) { if (typeof _2f[i][x] == "function") { _2f[i][x] = function() { }; } } } }; if (deconcept.SWFObject.doPrepUnload) { if (!deconcept.unloadSet) { deconcept.SWFObjectUtil.prepUnload = function() { __flash_unloadHandler = function() { }; __flash_savedUnloadHandler = function() { }; window.attachEvent("onunload", deconcept.SWFObjectUtil.cleanupSWFs); }; window.attachEvent("onbeforeunload", deconcept.SWFObjectUtil.prepUnload); deconcept.unloadSet = true; } } if (!document.getElementById && document.all) { document.getElementById = function(id) { return document.all[id]; }; } var getQueryParamValue = deconcept.util.getRequestParameter; var FlashObject = deconcept.SWFObject; var SWFObject = deconcept.SWFObject; var paginate_selected = false; var paginator_disabled = false; var paginator_total; window.addEvent(window.webkit ? 'load' : 'domready', function() {
    if ($('paginate_input')) {
        document.onkeydown = paginator_type; $('paginate_input').onfocus = function() { paginate_selected = true; }
        $('paginate_input').onblur = function() { paginate_selected = false; }
        paginator_total = $('total_pages').innerHTML; paginator_total_length = paginator_total.length - 2; paginator_total = parseInt(paginator_total.substring(2, paginator_total.length));
    } 
}); function disable_paginator() { paginator_disabled = true; }
function enable_paginator() { paginator_disabled = false; }
function paginator_type(e) {
    var e = new Event(e); var field = $('paginate_input'); if (!paginate_selected && !paginator_disabled) {
        if (e.code >= 48 && e.code <= 57) { e.stop(); if (field.value.length == paginator_total_length) { field.value = e.key; } else { field.value = field.value + e.key; } }
        else if (e.key == 'left') {
            e.stop(); if (field.value > 1)
                field.value--; else
                field.value = 1;
        }
        else if (e.key == 'right') {
            e.stop(); if (field.value < paginator_total)
                field.value++; else
                field.value = paginator_total;
        } 
    }
    if (e.key == 'enter' && field.value > 0 && !paginator_disabled) { paginator_enter(); } 
}
function paginator_enter() { window.location = $('paginator_base_href').value + '/page:' + $('paginate_input').value + $('paginator_suffix_href').value; }