function getAllChildren(e){return e.all?e.all:e.getElementsByTagName('*');}
$S=document.getElementsBySelector=function(selector,parentElement){if(!document.getElementsByTagName){return new Array();}
var tokens=selector.split(' ');var currentContext=(parentElement)?new Array($(parentElement)):new Array(document);for(var i=0;i<tokens.length;i++){token=tokens[i].replace(/^\s+/,'').replace(/\s+$/,'');;if(token.indexOf('#')>-1){var bits=token.split('#');var tagName=bits[0];var id=bits[1];var element=document.getElementById(id);if(tagName&&element.nodeName.toLowerCase()!=tagName){return new Array();}
currentContext=new Array(element);continue;}
if(token.indexOf('.')>-1){var bits=token.split('.');var tagName=bits[0];var className=bits[1];if(!tagName){tagName='*';}
var found=new Array;var foundCount=0;for(var h=0;h<currentContext.length;h++){var elements;if(tagName=='*'){elements=getAllChildren(currentContext[h]);}else{elements=currentContext[h].getElementsByTagName(tagName);}
for(var j=0;j<elements.length;j++){found[foundCount++]=elements[j];}}
currentContext=new Array;var currentContextIndex=0;for(var k=0;k<found.length;k++){if(found[k].className&&found[k].className.match(new RegExp('\\b'+className+'\\b'))){currentContext[currentContextIndex++]=found[k];}}
continue;}
if(token.match(/^(\w*)\[(\w+)([=~\|\^\$\*]?)=?"?([^\]"]*)"?\]$/)){var tagName=RegExp.$1;var attrName=RegExp.$2;var attrOperator=RegExp.$3;var attrValue=RegExp.$4;if(!tagName){tagName='*';}
var found=new Array;var foundCount=0;for(var h=0;h<currentContext.length;h++){var elements;if(tagName=='*'){elements=getAllChildren(currentContext[h]);}else{elements=currentContext[h].getElementsByTagName(tagName);}
for(var j=0;j<elements.length;j++){found[foundCount++]=elements[j];}}
currentContext=new Array;var currentContextIndex=0;var checkFunction;switch(attrOperator){case'=':checkFunction=function(e){return(e.getAttribute(attrName)==attrValue);};break;case'~':checkFunction=function(e){return(e.getAttribute(attrName).match(new RegExp('\\b'+attrValue+'\\b')));};break;case'|':checkFunction=function(e){return(e.getAttribute(attrName).match(new RegExp('^'+attrValue+'-?')));};break;case'^':checkFunction=function(e){return(e.getAttribute(attrName).indexOf(attrValue)==0);};break;case'$':checkFunction=function(e){return(e.getAttribute(attrName).lastIndexOf(attrValue)==e.getAttribute(attrName).length-attrValue.length);};break;case'*':checkFunction=function(e){return(e.getAttribute(attrName).indexOf(attrValue)>-1);};break;default:checkFunction=function(e){return e.getAttribute(attrName);};}
currentContext=new Array;var currentContextIndex=0;for(var k=0;k<found.length;k++){if(checkFunction(found[k])){currentContext[currentContextIndex++]=found[k];}}
continue;}
if(!currentContext[0]){return;}
tagName=token;var found=new Array;var foundCount=0;for(var h=0;h<currentContext.length;h++){var elements=currentContext[h].getElementsByTagName(tagName);for(var j=0;j<elements.length;j++){found[foundCount++]=elements[j];}}
currentContext=found;}
return currentContext;}
var Scriptaculous={Version:'1.8.1',require:function(libraryName){document.write('<script type="text/javascript" src="'+libraryName+'"><\/script>');},REQUIRED_PROTOTYPE:'1.6.0',load:function(){function convertVersionString(versionString){var r=versionString.split('.');return parseInt(r[0])*100000+parseInt(r[1])*1000+parseInt(r[2]);}
if((typeof Prototype=='undefined')||(typeof Element=='undefined')||(typeof Element.Methods=='undefined')||(convertVersionString(Prototype.Version)<convertVersionString(Scriptaculous.REQUIRED_PROTOTYPE)))
throw("script.aculo.us requires the Prototype JavaScript framework >= "+
Scriptaculous.REQUIRED_PROTOTYPE);$A(document.getElementsByTagName("script")).findAll(function(s){return(s.src&&s.src.match(/scriptaculous\.js(\?.*)?$/))}).each(function(s){var path=s.src.replace(/scriptaculous\.js(\?.*)?$/,'');var includes=s.src.match(/\?.*load=([a-z,]*)/);(includes?includes[1]:'builder,effects,dragdrop,controls,slider,sound').split(',').each(function(include){Scriptaculous.require(path+include+'.js')});});}}
Scriptaculous.load();var aonloadFunctions=$A({});function registerOnLoad(func)
{aonloadFunctions.push(func);}
function invokeOnLoad()
{aonloadFunctions.each(function(func)
{if(func!=null&&typeof func=="function")
{try
{func();}
catch(e)
{console.error("Problem when invoking "+func+": "+e.message+" / "+e.description);}}})}
registerOnLoad(window.onload);window.onload=invokeOnLoad;String.prototype.parseColor=function(){var color='#';if(this.slice(0,4)=='rgb('){var cols=this.slice(4,this.length-1).split(',');var i=0;do{color+=parseInt(cols[i]).toColorPart()}while(++i<3);}else{if(this.slice(0,1)=='#'){if(this.length==4)for(var i=1;i<4;i++)color+=(this.charAt(i)+this.charAt(i)).toLowerCase();if(this.length==7)color=this.toLowerCase();}}
return(color.length==7?color:(arguments[0]||this));};Element.collectTextNodes=function(element){return $A($(element).childNodes).collect(function(node){return(node.nodeType==3?node.nodeValue:(node.hasChildNodes()?Element.collectTextNodes(node):''));}).flatten().join('');};Element.collectTextNodesIgnoreClass=function(element,className){return $A($(element).childNodes).collect(function(node){return(node.nodeType==3?node.nodeValue:((node.hasChildNodes()&&!Element.hasClassName(node,className))?Element.collectTextNodesIgnoreClass(node,className):''));}).flatten().join('');};Element.setContentZoom=function(element,percent){element=$(element);element.setStyle({fontSize:(percent/100)+'em'});if(Prototype.Browser.WebKit)window.scrollBy(0,0);return element;};Element.getInlineOpacity=function(element){return $(element).style.opacity||'';};Element.forceRerendering=function(element){try{element=$(element);var n=document.createTextNode(' ');element.appendChild(n);element.removeChild(n);}catch(e){}};var Effect={_elementDoesNotExistError:{name:'ElementDoesNotExistError',message:'The specified DOM element does not exist, but is required for this effect to operate'},Transitions:{linear:Prototype.K,sinoidal:function(pos){return(-Math.cos(pos*Math.PI)/2)+0.5;},reverse:function(pos){return 1-pos;},flicker:function(pos){var pos=((-Math.cos(pos*Math.PI)/4)+0.75)+Math.random()/4;return pos>1?1:pos;},wobble:function(pos){return(-Math.cos(pos*Math.PI*(9*pos))/2)+0.5;},pulse:function(pos,pulses){pulses=pulses||5;return(((pos%(1/pulses))*pulses).round()==0?((pos*pulses*2)-(pos*pulses*2).floor()):1-((pos*pulses*2)-(pos*pulses*2).floor()));},spring:function(pos){return 1-(Math.cos(pos*4.5*Math.PI)*Math.exp(-pos*6));},none:function(pos){return 0;},full:function(pos){return 1;}},DefaultOptions:{duration:1.0,fps:100,sync:false,from:0.0,to:1.0,delay:0.0,queue:'parallel'},tagifyText:function(element){var tagifyStyle='position:relative';if(Prototype.Browser.IE)tagifyStyle+=';zoom:1';element=$(element);$A(element.childNodes).each(function(child){if(child.nodeType==3){child.nodeValue.toArray().each(function(character){element.insertBefore(new Element('span',{style:tagifyStyle}).update(character==' '?String.fromCharCode(160):character),child);});Element.remove(child);}});},multiple:function(element,effect){var elements;if(((typeof element=='object')||Object.isFunction(element))&&(element.length))
elements=element;else
elements=$(element).childNodes;var options=Object.extend({speed:0.1,delay:0.0},arguments[2]||{});var masterDelay=options.delay;$A(elements).each(function(element,index){new effect(element,Object.extend(options,{delay:index*options.speed+masterDelay}));});},PAIRS:{'slide':['SlideDown','SlideUp'],'blind':['BlindDown','BlindUp'],'appear':['Appear','Fade']},toggle:function(element,effect){element=$(element);effect=(effect||'appear').toLowerCase();var options=Object.extend({queue:{position:'end',scope:(element.id||'global'),limit:1}},arguments[2]||{});Effect[element.visible()?Effect.PAIRS[effect][1]:Effect.PAIRS[effect][0]](element,options);}};Effect.DefaultOptions.transition=Effect.Transitions.sinoidal;Effect.ScopedQueue=Class.create(Enumerable,{initialize:function(){this.effects=[];this.interval=null;},_each:function(iterator){this.effects._each(iterator);},add:function(effect){var timestamp=new Date().getTime();var position=Object.isString(effect.options.queue)?effect.options.queue:effect.options.queue.position;switch(position){case'front':this.effects.findAll(function(e){return e.state=='idle'}).each(function(e){e.startOn+=effect.finishOn;e.finishOn+=effect.finishOn;});break;case'with-last':timestamp=this.effects.pluck('startOn').max()||timestamp;break;case'end':timestamp=this.effects.pluck('finishOn').max()||timestamp;break;}
effect.startOn+=timestamp;effect.finishOn+=timestamp;if(!effect.options.queue.limit||(this.effects.length<effect.options.queue.limit))
this.effects.push(effect);if(!this.interval)
this.interval=setInterval(this.loop.bind(this),15);},remove:function(effect){this.effects=this.effects.reject(function(e){return e==effect});if(this.effects.length==0){clearInterval(this.interval);this.interval=null;}},loop:function(){var timePos=new Date().getTime();for(var i=0,len=this.effects.length;i<len;i++)
this.effects[i]&&this.effects[i].loop(timePos);}});Effect.Queues={instances:$H(),get:function(queueName){if(!Object.isString(queueName))return queueName;return this.instances.get(queueName)||this.instances.set(queueName,new Effect.ScopedQueue());}};Effect.Queue=Effect.Queues.get('global');Effect.Base=Class.create({position:null,start:function(options){function codeForEvent(options,eventName){return((options[eventName+'Internal']?'this.options.'+eventName+'Internal(this);':'')+
(options[eventName]?'this.options.'+eventName+'(this);':''));}
if(options&&options.transition===false)options.transition=Effect.Transitions.linear;this.options=Object.extend(Object.extend({},Effect.DefaultOptions),options||{});this.currentFrame=0;this.state='idle';this.startOn=this.options.delay*1000;this.finishOn=this.startOn+(this.options.duration*1000);this.fromToDelta=this.options.to-this.options.from;this.totalTime=this.finishOn-this.startOn;this.totalFrames=this.options.fps*this.options.duration;eval('this.render = function(pos){ '+'if (this.state=="idle"){this.state="running";'+
codeForEvent(this.options,'beforeSetup')+
(this.setup?'this.setup();':'')+
codeForEvent(this.options,'afterSetup')+'};if (this.state=="running"){'+'pos=this.options.transition(pos)*'+this.fromToDelta+'+'+this.options.from+';'+'this.position=pos;'+
codeForEvent(this.options,'beforeUpdate')+
(this.update?'this.update(pos);':'')+
codeForEvent(this.options,'afterUpdate')+'}}');this.event('beforeStart');if(!this.options.sync)
Effect.Queues.get(Object.isString(this.options.queue)?'global':this.options.queue.scope).add(this);},loop:function(timePos){if(timePos>=this.startOn){if(timePos>=this.finishOn){this.render(1.0);this.cancel();this.event('beforeFinish');if(this.finish)this.finish();this.event('afterFinish');return;}
var pos=(timePos-this.startOn)/this.totalTime,frame=(pos*this.totalFrames).round();if(frame>this.currentFrame){this.render(pos);this.currentFrame=frame;}}},cancel:function(){if(!this.options.sync)
Effect.Queues.get(Object.isString(this.options.queue)?'global':this.options.queue.scope).remove(this);this.state='finished';},event:function(eventName){if(this.options[eventName+'Internal'])this.options[eventName+'Internal'](this);if(this.options[eventName])this.options[eventName](this);},inspect:function(){var data=$H();for(property in this)
if(!Object.isFunction(this[property]))data.set(property,this[property]);return'#<Effect:'+data.inspect()+',options:'+$H(this.options).inspect()+'>';}});Effect.Parallel=Class.create(Effect.Base,{initialize:function(effects){this.effects=effects||[];this.start(arguments[1]);},update:function(position){this.effects.invoke('render',position);},finish:function(position){this.effects.each(function(effect){effect.render(1.0);effect.cancel();effect.event('beforeFinish');if(effect.finish)effect.finish(position);effect.event('afterFinish');});}});Effect.Tween=Class.create(Effect.Base,{initialize:function(object,from,to){object=Object.isString(object)?$(object):object;var args=$A(arguments),method=args.last(),options=args.length==5?args[3]:null;this.method=Object.isFunction(method)?method.bind(object):Object.isFunction(object[method])?object[method].bind(object):function(value){object[method]=value};this.start(Object.extend({from:from,to:to},options||{}));},update:function(position){this.method(position);}});Effect.Event=Class.create(Effect.Base,{initialize:function(){this.start(Object.extend({duration:0},arguments[0]||{}));},update:Prototype.emptyFunction});Effect.Opacity=Class.create(Effect.Base,{initialize:function(element){this.element=$(element);if(!this.element)throw(Effect._elementDoesNotExistError);if(Prototype.Browser.IE&&(!this.element.currentStyle.hasLayout))
this.element.setStyle({zoom:1});var options=Object.extend({from:this.element.getOpacity()||0.0,to:1.0},arguments[1]||{});this.start(options);},update:function(position){this.element.setOpacity(position);}});Effect.Move=Class.create(Effect.Base,{initialize:function(element){this.element=$(element);if(!this.element)throw(Effect._elementDoesNotExistError);var options=Object.extend({x:0,y:0,mode:'relative'},arguments[1]||{});this.start(options);},setup:function(){this.element.makePositioned();this.originalLeft=parseFloat(this.element.getStyle('left')||'0');this.originalTop=parseFloat(this.element.getStyle('top')||'0');if(this.options.mode=='absolute'){this.options.x=this.options.x-this.originalLeft;this.options.y=this.options.y-this.originalTop;}},update:function(position){this.element.setStyle({left:(this.options.x*position+this.originalLeft).round()+'px',top:(this.options.y*position+this.originalTop).round()+'px'});}});Effect.MoveBy=function(element,toTop,toLeft){return new Effect.Move(element,Object.extend({x:toLeft,y:toTop},arguments[3]||{}));};Effect.Scale=Class.create(Effect.Base,{initialize:function(element,percent){this.element=$(element);if(!this.element)throw(Effect._elementDoesNotExistError);var options=Object.extend({scaleX:true,scaleY:true,scaleContent:true,scaleFromCenter:false,scaleMode:'box',scaleFrom:100.0,scaleTo:percent},arguments[2]||{});this.start(options);},setup:function(){this.restoreAfterFinish=this.options.restoreAfterFinish||false;this.elementPositioning=this.element.getStyle('position');this.originalStyle={};['top','left','width','height','fontSize'].each(function(k){this.originalStyle[k]=this.element.style[k];}.bind(this));this.originalTop=this.element.offsetTop;this.originalLeft=this.element.offsetLeft;var fontSize=this.element.getStyle('font-size')||'100%';['em','px','%','pt'].each(function(fontSizeType){if(fontSize.indexOf(fontSizeType)>0){this.fontSize=parseFloat(fontSize);this.fontSizeType=fontSizeType;}}.bind(this));this.factor=(this.options.scaleTo-this.options.scaleFrom)/100;this.dims=null;if(this.options.scaleMode=='box')
this.dims=[this.element.offsetHeight,this.element.offsetWidth];if(/^content/.test(this.options.scaleMode))
this.dims=[this.element.scrollHeight,this.element.scrollWidth];if(!this.dims)
this.dims=[this.options.scaleMode.originalHeight,this.options.scaleMode.originalWidth];},update:function(position){var currentScale=(this.options.scaleFrom/100.0)+(this.factor*position);if(this.options.scaleContent&&this.fontSize)
this.element.setStyle({fontSize:this.fontSize*currentScale+this.fontSizeType});this.setDimensions(this.dims[0]*currentScale,this.dims[1]*currentScale);},finish:function(position){if(this.restoreAfterFinish)this.element.setStyle(this.originalStyle);},setDimensions:function(height,width){var d={};if(this.options.scaleX)d.width=width.round()+'px';if(this.options.scaleY)d.height=height.round()+'px';if(this.options.scaleFromCenter){var topd=(height-this.dims[0])/2;var leftd=(width-this.dims[1])/2;if(this.elementPositioning=='absolute'){if(this.options.scaleY)d.top=this.originalTop-topd+'px';if(this.options.scaleX)d.left=this.originalLeft-leftd+'px';}else{if(this.options.scaleY)d.top=-topd+'px';if(this.options.scaleX)d.left=-leftd+'px';}}
this.element.setStyle(d);}});Effect.Highlight=Class.create(Effect.Base,{initialize:function(element){this.element=$(element);if(!this.element)throw(Effect._elementDoesNotExistError);var options=Object.extend({startcolor:'#ffff99'},arguments[1]||{});this.start(options);},setup:function(){if(this.element.getStyle('display')=='none'){this.cancel();return;}
this.oldStyle={};if(!this.options.keepBackgroundImage){this.oldStyle.backgroundImage=this.element.getStyle('background-image');this.element.setStyle({backgroundImage:'none'});}
if(!this.options.endcolor)
this.options.endcolor=this.element.getStyle('background-color').parseColor('#ffffff');if(!this.options.restorecolor)
this.options.restorecolor=this.element.getStyle('background-color');this._base=$R(0,2).map(function(i){return parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16)}.bind(this));this._delta=$R(0,2).map(function(i){return parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i]}.bind(this));},update:function(position){this.element.setStyle({backgroundColor:$R(0,2).inject('#',function(m,v,i){return m+((this._base[i]+(this._delta[i]*position)).round().toColorPart());}.bind(this))});},finish:function(){this.element.setStyle(Object.extend(this.oldStyle,{backgroundColor:this.options.restorecolor}));}});Effect.ScrollTo=function(element){var options=arguments[1]||{},scrollOffsets=document.viewport.getScrollOffsets(),elementOffsets=$(element).cumulativeOffset(),max=(window.height||document.body.scrollHeight)-document.viewport.getHeight();if(options.offset)elementOffsets[1]+=options.offset;return new Effect.Tween(null,scrollOffsets.top,elementOffsets[1]>max?max:elementOffsets[1],options,function(p){scrollTo(scrollOffsets.left,p.round())});};Effect.Fade=function(element){element=$(element);var oldOpacity=element.getInlineOpacity();var options=Object.extend({from:element.getOpacity()||1.0,to:0.0,afterFinishInternal:function(effect){if(effect.options.to!=0)return;effect.element.hide().setStyle({opacity:oldOpacity});}},arguments[1]||{});return new Effect.Opacity(element,options);};Effect.Appear=function(element){element=$(element);var options=Object.extend({from:(element.getStyle('display')=='none'?0.0:element.getOpacity()||0.0),to:1.0,afterFinishInternal:function(effect){effect.element.forceRerendering();},beforeSetup:function(effect){effect.element.setOpacity(effect.options.from).show();}},arguments[1]||{});return new Effect.Opacity(element,options);};Effect.Puff=function(element){element=$(element);var oldStyle={opacity:element.getInlineOpacity(),position:element.getStyle('position'),top:element.style.top,left:element.style.left,width:element.style.width,height:element.style.height};return new Effect.Parallel([new Effect.Scale(element,200,{sync:true,scaleFromCenter:true,scaleContent:true,restoreAfterFinish:true}),new Effect.Opacity(element,{sync:true,to:0.0})],Object.extend({duration:1.0,beforeSetupInternal:function(effect){Position.absolutize(effect.effects[0].element)},afterFinishInternal:function(effect){effect.effects[0].element.hide().setStyle(oldStyle);}},arguments[1]||{}));};Effect.BlindUp=function(element){element=$(element);element.makeClipping();return new Effect.Scale(element,0,Object.extend({scaleContent:false,scaleX:false,restoreAfterFinish:true,afterFinishInternal:function(effect){effect.element.hide().undoClipping();}},arguments[1]||{}));};Effect.BlindDown=function(element){element=$(element);var elementDimensions=element.getDimensions();return new Effect.Scale(element,100,Object.extend({scaleContent:false,scaleX:false,scaleFrom:0,scaleMode:{originalHeight:elementDimensions.height,originalWidth:elementDimensions.width},restoreAfterFinish:true,afterSetup:function(effect){effect.element.makeClipping().setStyle({height:'0px'}).show();},afterFinishInternal:function(effect){effect.element.undoClipping();}},arguments[1]||{}));};Effect.SwitchOff=function(element){element=$(element);var oldOpacity=element.getInlineOpacity();return new Effect.Appear(element,Object.extend({duration:0.4,from:0,transition:Effect.Transitions.flicker,afterFinishInternal:function(effect){new Effect.Scale(effect.element,1,{duration:0.3,scaleFromCenter:true,scaleX:false,scaleContent:false,restoreAfterFinish:true,beforeSetup:function(effect){effect.element.makePositioned().makeClipping();},afterFinishInternal:function(effect){effect.element.hide().undoClipping().undoPositioned().setStyle({opacity:oldOpacity});}})}},arguments[1]||{}));};Effect.DropOut=function(element){element=$(element);var oldStyle={top:element.getStyle('top'),left:element.getStyle('left'),opacity:element.getInlineOpacity()};return new Effect.Parallel([new Effect.Move(element,{x:0,y:100,sync:true}),new Effect.Opacity(element,{sync:true,to:0.0})],Object.extend({duration:0.5,beforeSetup:function(effect){effect.effects[0].element.makePositioned();},afterFinishInternal:function(effect){effect.effects[0].element.hide().undoPositioned().setStyle(oldStyle);}},arguments[1]||{}));};Effect.Shake=function(element){element=$(element);var options=Object.extend({distance:20,duration:0.5},arguments[1]||{});var distance=parseFloat(options.distance);var split=parseFloat(options.duration)/10.0;var oldStyle={top:element.getStyle('top'),left:element.getStyle('left')};return new Effect.Move(element,{x:distance,y:0,duration:split,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:-distance*2,y:0,duration:split*2,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:distance*2,y:0,duration:split*2,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:-distance*2,y:0,duration:split*2,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:distance*2,y:0,duration:split*2,afterFinishInternal:function(effect){new Effect.Move(effect.element,{x:-distance,y:0,duration:split,afterFinishInternal:function(effect){effect.element.undoPositioned().setStyle(oldStyle);}})}})}})}})}})}});};Effect.SlideDown=function(element){element=$(element).cleanWhitespace();var oldInnerBottom=element.down().getStyle('bottom');var elementDimensions=element.getDimensions();return new Effect.Scale(element,100,Object.extend({scaleContent:false,scaleX:false,scaleFrom:window.opera?0:1,scaleMode:{originalHeight:elementDimensions.height,originalWidth:elementDimensions.width},restoreAfterFinish:true,afterSetup:function(effect){effect.element.makePositioned();effect.element.down().makePositioned();if(window.opera)effect.element.setStyle({top:''});effect.element.makeClipping().setStyle({height:'0px'}).show();},afterUpdateInternal:function(effect){effect.element.down().setStyle({bottom:(effect.dims[0]-effect.element.clientHeight)+'px'});},afterFinishInternal:function(effect){effect.element.undoClipping().undoPositioned();effect.element.down().undoPositioned().setStyle({bottom:oldInnerBottom});}},arguments[1]||{}));};Effect.SlideUp=function(element){element=$(element).cleanWhitespace();var oldInnerBottom=element.down().getStyle('bottom');var elementDimensions=element.getDimensions();return new Effect.Scale(element,window.opera?0:1,Object.extend({scaleContent:false,scaleX:false,scaleMode:'box',scaleFrom:100,scaleMode:{originalHeight:elementDimensions.height,originalWidth:elementDimensions.width},restoreAfterFinish:true,afterSetup:function(effect){effect.element.makePositioned();effect.element.down().makePositioned();if(window.opera)effect.element.setStyle({top:''});effect.element.makeClipping().show();},afterUpdateInternal:function(effect){effect.element.down().setStyle({bottom:(effect.dims[0]-effect.element.clientHeight)+'px'});},afterFinishInternal:function(effect){effect.element.hide().undoClipping().undoPositioned();effect.element.down().undoPositioned().setStyle({bottom:oldInnerBottom});}},arguments[1]||{}));};Effect.Squish=function(element){return new Effect.Scale(element,window.opera?1:0,{restoreAfterFinish:true,beforeSetup:function(effect){effect.element.makeClipping();},afterFinishInternal:function(effect){effect.element.hide().undoClipping();}});};Effect.Grow=function(element){element=$(element);var options=Object.extend({direction:'center',moveTransition:Effect.Transitions.sinoidal,scaleTransition:Effect.Transitions.sinoidal,opacityTransition:Effect.Transitions.full},arguments[1]||{});var oldStyle={top:element.style.top,left:element.style.left,height:element.style.height,width:element.style.width,opacity:element.getInlineOpacity()};var dims=element.getDimensions();var initialMoveX,initialMoveY;var moveX,moveY;switch(options.direction){case'top-left':initialMoveX=initialMoveY=moveX=moveY=0;break;case'top-right':initialMoveX=dims.width;initialMoveY=moveY=0;moveX=-dims.width;break;case'bottom-left':initialMoveX=moveX=0;initialMoveY=dims.height;moveY=-dims.height;break;case'bottom-right':initialMoveX=dims.width;initialMoveY=dims.height;moveX=-dims.width;moveY=-dims.height;break;case'center':initialMoveX=dims.width/2;initialMoveY=dims.height/2;moveX=-dims.width/2;moveY=-dims.height/2;break;}
return new Effect.Move(element,{x:initialMoveX,y:initialMoveY,duration:0.01,beforeSetup:function(effect){effect.element.hide().makeClipping().makePositioned();},afterFinishInternal:function(effect){new Effect.Parallel([new Effect.Opacity(effect.element,{sync:true,to:1.0,from:0.0,transition:options.opacityTransition}),new Effect.Move(effect.element,{x:moveX,y:moveY,sync:true,transition:options.moveTransition}),new Effect.Scale(effect.element,100,{scaleMode:{originalHeight:dims.height,originalWidth:dims.width},sync:true,scaleFrom:window.opera?1:0,transition:options.scaleTransition,restoreAfterFinish:true})],Object.extend({beforeSetup:function(effect){effect.effects[0].element.setStyle({height:'0px'}).show();},afterFinishInternal:function(effect){effect.effects[0].element.undoClipping().undoPositioned().setStyle(oldStyle);}},options))}});};Effect.Shrink=function(element){element=$(element);var options=Object.extend({direction:'center',moveTransition:Effect.Transitions.sinoidal,scaleTransition:Effect.Transitions.sinoidal,opacityTransition:Effect.Transitions.none},arguments[1]||{});var oldStyle={top:element.style.top,left:element.style.left,height:element.style.height,width:element.style.width,opacity:element.getInlineOpacity()};var dims=element.getDimensions();var moveX,moveY;switch(options.direction){case'top-left':moveX=moveY=0;break;case'top-right':moveX=dims.width;moveY=0;break;case'bottom-left':moveX=0;moveY=dims.height;break;case'bottom-right':moveX=dims.width;moveY=dims.height;break;case'center':moveX=dims.width/2;moveY=dims.height/2;break;}
return new Effect.Parallel([new Effect.Opacity(element,{sync:true,to:0.0,from:1.0,transition:options.opacityTransition}),new Effect.Scale(element,window.opera?1:0,{sync:true,transition:options.scaleTransition,restoreAfterFinish:true}),new Effect.Move(element,{x:moveX,y:moveY,sync:true,transition:options.moveTransition})],Object.extend({beforeStartInternal:function(effect){effect.effects[0].element.makePositioned().makeClipping();},afterFinishInternal:function(effect){effect.effects[0].element.hide().undoClipping().undoPositioned().setStyle(oldStyle);}},options));};Effect.Pulsate=function(element){element=$(element);var options=arguments[1]||{};var oldOpacity=element.getInlineOpacity();var transition=options.transition||Effect.Transitions.sinoidal;var reverser=function(pos){return transition(1-Effect.Transitions.pulse(pos,options.pulses))};reverser.bind(transition);return new Effect.Opacity(element,Object.extend(Object.extend({duration:2.0,from:0,afterFinishInternal:function(effect){effect.element.setStyle({opacity:oldOpacity});}},options),{transition:reverser}));};Effect.Fold=function(element){element=$(element);var oldStyle={top:element.style.top,left:element.style.left,width:element.style.width,height:element.style.height};element.makeClipping();return new Effect.Scale(element,5,Object.extend({scaleContent:false,scaleX:false,afterFinishInternal:function(effect){new Effect.Scale(element,1,{scaleContent:false,scaleY:false,afterFinishInternal:function(effect){effect.element.hide().undoClipping().setStyle(oldStyle);}});}},arguments[1]||{}));};Effect.Morph=Class.create(Effect.Base,{initialize:function(element){this.element=$(element);if(!this.element)throw(Effect._elementDoesNotExistError);var options=Object.extend({style:{}},arguments[1]||{});if(!Object.isString(options.style))this.style=$H(options.style);else{if(options.style.include(':'))
this.style=options.style.parseStyle();else{this.element.addClassName(options.style);this.style=$H(this.element.getStyles());this.element.removeClassName(options.style);var css=this.element.getStyles();this.style=this.style.reject(function(style){return style.value==css[style.key];});options.afterFinishInternal=function(effect){effect.element.addClassName(effect.options.style);effect.transforms.each(function(transform){effect.element.style[transform.style]='';});}}}
this.start(options);},setup:function(){function parseColor(color){if(!color||['rgba(0, 0, 0, 0)','transparent'].include(color))color='#ffffff';color=color.parseColor();return $R(0,2).map(function(i){return parseInt(color.slice(i*2+1,i*2+3),16)});}
this.transforms=this.style.map(function(pair){var property=pair[0],value=pair[1],unit=null;if(value.parseColor('#zzzzzz')!='#zzzzzz'){value=value.parseColor();unit='color';}else if(property=='opacity'){value=parseFloat(value);if(Prototype.Browser.IE&&(!this.element.currentStyle.hasLayout))
this.element.setStyle({zoom:1});}else if(Element.CSS_LENGTH.test(value)){var components=value.match(/^([\+\-]?[0-9\.]+)(.*)$/);value=parseFloat(components[1]);unit=(components.length==3)?components[2]:null;}
var originalValue=this.element.getStyle(property);return{style:property.camelize(),originalValue:unit=='color'?parseColor(originalValue):parseFloat(originalValue||0),targetValue:unit=='color'?parseColor(value):value,unit:unit};}.bind(this)).reject(function(transform){return((transform.originalValue==transform.targetValue)||(transform.unit!='color'&&(isNaN(transform.originalValue)||isNaN(transform.targetValue))))});},update:function(position){var style={},transform,i=this.transforms.length;while(i--)
style[(transform=this.transforms[i]).style]=transform.unit=='color'?'#'+
(Math.round(transform.originalValue[0]+
(transform.targetValue[0]-transform.originalValue[0])*position)).toColorPart()+
(Math.round(transform.originalValue[1]+
(transform.targetValue[1]-transform.originalValue[1])*position)).toColorPart()+
(Math.round(transform.originalValue[2]+
(transform.targetValue[2]-transform.originalValue[2])*position)).toColorPart():(transform.originalValue+
(transform.targetValue-transform.originalValue)*position).toFixed(3)+
(transform.unit===null?'':transform.unit);this.element.setStyle(style,true);}});Effect.Transform=Class.create({initialize:function(tracks){this.tracks=[];this.options=arguments[1]||{};this.addTracks(tracks);},addTracks:function(tracks){tracks.each(function(track){track=$H(track);var data=track.values().first();this.tracks.push($H({ids:track.keys().first(),effect:Effect.Morph,options:{style:data}}));}.bind(this));return this;},play:function(){return new Effect.Parallel(this.tracks.map(function(track){var ids=track.get('ids'),effect=track.get('effect'),options=track.get('options');var elements=[$(ids)||$$(ids)].flatten();return elements.map(function(e){return new effect(e,Object.extend({sync:true},options))});}).flatten(),this.options);}});Element.CSS_PROPERTIES=$w('backgroundColor backgroundPosition borderBottomColor borderBottomStyle '+'borderBottomWidth borderLeftColor borderLeftStyle borderLeftWidth '+'borderRightColor borderRightStyle borderRightWidth borderSpacing '+'borderTopColor borderTopStyle borderTopWidth bottom clip color '+'fontSize fontWeight height left letterSpacing lineHeight '+'marginBottom marginLeft marginRight marginTop markerOffset maxHeight '+'maxWidth minHeight minWidth opacity outlineColor outlineOffset '+'outlineWidth paddingBottom paddingLeft paddingRight paddingTop '+'right textIndent top width wordSpacing zIndex');Element.CSS_LENGTH=/^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/;String.__parseStyleElement=document.createElement('div');String.prototype.parseStyle=function(){var style,styleRules=$H();if(Prototype.Browser.WebKit)
style=new Element('div',{style:this}).style;else{String.__parseStyleElement.innerHTML='<div style="'+this+'"></div>';style=String.__parseStyleElement.childNodes[0].style;}
Element.CSS_PROPERTIES.each(function(property){if(style[property])styleRules.set(property,style[property]);});if(Prototype.Browser.IE&&this.include('opacity'))
styleRules.set('opacity',this.match(/opacity:\s*((?:0|1)?(?:\.\d*)?)/)[1]);return styleRules;};if(document.defaultView&&document.defaultView.getComputedStyle){Element.getStyles=function(element){var css=document.defaultView.getComputedStyle($(element),null);return Element.CSS_PROPERTIES.inject({},function(styles,property){styles[property]=css[property];return styles;});};}else{Element.getStyles=function(element){element=$(element);var css=element.currentStyle,styles;styles=Element.CSS_PROPERTIES.inject({},function(results,property){results[property]=css[property];return results;});if(!styles.opacity)styles.opacity=element.getOpacity();return styles;};};Effect.Methods={morph:function(element,style){element=$(element);new Effect.Morph(element,Object.extend({style:style},arguments[2]||{}));return element;},visualEffect:function(element,effect,options){element=$(element)
var s=effect.dasherize().camelize(),klass=s.charAt(0).toUpperCase()+s.substring(1);new Effect[klass](element,options);return element;},highlight:function(element,options){element=$(element);new Effect.Highlight(element,options);return element;}};$w('fade appear grow shrink fold blindUp blindDown slideUp slideDown '+'pulsate shake puff squish switchOff dropOut').each(function(effect){Effect.Methods[effect]=function(element,options){element=$(element);Effect[effect.charAt(0).toUpperCase()+effect.substring(1)](element,options);return element;}});$w('getInlineOpacity forceRerendering setContentZoom collectTextNodes collectTextNodesIgnoreClass getStyles').each(function(f){Effect.Methods[f]=Element[f];});Element.addMethods(Effect.Methods);if(!Control)var Control={};Control.Slider=Class.create({initialize:function(handle,track,options){var slider=this;if(Object.isArray(handle)){this.handles=handle.collect(function(e){return $(e)});}else{this.handles=[$(handle)];}
this.track=$(track);this.options=options||{};this.axis=this.options.axis||'horizontal';this.increment=this.options.increment||1;this.step=parseInt(this.options.step||'1');this.range=this.options.range||$R(0,1);this.value=0;this.values=this.handles.map(function(){return 0});this.spans=this.options.spans?this.options.spans.map(function(s){return $(s)}):false;this.options.startSpan=$(this.options.startSpan||null);this.options.endSpan=$(this.options.endSpan||null);this.restricted=this.options.restricted||false;this.maximum=this.options.maximum||this.range.end;this.minimum=this.options.minimum||this.range.start;this.alignX=parseInt(this.options.alignX||'0');this.alignY=parseInt(this.options.alignY||'0');this.trackLength=this.maximumOffset()-this.minimumOffset();this.handleLength=this.isVertical()?(this.handles[0].offsetHeight!=0?this.handles[0].offsetHeight:this.handles[0].style.height.replace(/px$/,"")):(this.handles[0].offsetWidth!=0?this.handles[0].offsetWidth:this.handles[0].style.width.replace(/px$/,""));this.active=false;this.dragging=false;this.disabled=false;if(this.options.disabled)this.setDisabled();this.allowedValues=this.options.values?this.options.values.sortBy(Prototype.K):false;if(this.allowedValues){this.minimum=this.allowedValues.min();this.maximum=this.allowedValues.max();}
this.eventMouseDown=this.startDrag.bindAsEventListener(this);this.eventMouseUp=this.endDrag.bindAsEventListener(this);this.eventMouseMove=this.update.bindAsEventListener(this);this.handles.each(function(h,i){i=slider.handles.length-1-i;slider.setValue(parseFloat((Object.isArray(slider.options.sliderValue)?slider.options.sliderValue[i]:slider.options.sliderValue)||slider.range.start),i);h.makePositioned().observe("mousedown",slider.eventMouseDown);});this.track.observe("mousedown",this.eventMouseDown);document.observe("mouseup",this.eventMouseUp);document.observe("mousemove",this.eventMouseMove);this.initialized=true;},dispose:function(){var slider=this;Event.stopObserving(this.track,"mousedown",this.eventMouseDown);Event.stopObserving(document,"mouseup",this.eventMouseUp);Event.stopObserving(document,"mousemove",this.eventMouseMove);this.handles.each(function(h){Event.stopObserving(h,"mousedown",slider.eventMouseDown);});},setDisabled:function(){this.disabled=true;},setEnabled:function(){this.disabled=false;},getNearestValue:function(value){if(this.allowedValues){if(value>=this.allowedValues.max())return(this.allowedValues.max());if(value<=this.allowedValues.min())return(this.allowedValues.min());var offset=Math.abs(this.allowedValues[0]-value);var newValue=this.allowedValues[0];this.allowedValues.each(function(v){var currentOffset=Math.abs(v-value);if(currentOffset<=offset){newValue=v;offset=currentOffset;}});return newValue;}
if(value>this.range.end)return this.range.end;if(value<this.range.start)return this.range.start;return value;},setValue:function(sliderValue,handleIdx){if(!this.active){this.activeHandleIdx=handleIdx||0;this.activeHandle=this.handles[this.activeHandleIdx];this.updateStyles();}
handleIdx=handleIdx||this.activeHandleIdx||0;if(this.initialized&&this.restricted){if((handleIdx>0)&&(sliderValue<this.values[handleIdx-1]))
sliderValue=this.values[handleIdx-1];if((handleIdx<(this.handles.length-1))&&(sliderValue>this.values[handleIdx+1]))
sliderValue=this.values[handleIdx+1];}
sliderValue=this.getNearestValue(sliderValue);this.values[handleIdx]=sliderValue;this.value=this.values[0];this.handles[handleIdx].style[this.isVertical()?'top':'left']=this.translateToPx(sliderValue);this.drawSpans();if(!this.dragging||!this.event)this.updateFinished();},setValueBy:function(delta,handleIdx){this.setValue(this.values[handleIdx||this.activeHandleIdx||0]+delta,handleIdx||this.activeHandleIdx||0);},translateToPx:function(value){return Math.round(((this.trackLength-this.handleLength)/(this.range.end-this.range.start))*(value-this.range.start))+"px";},translateToValue:function(offset){return((offset/(this.trackLength-this.handleLength)*(this.range.end-this.range.start))+this.range.start);},getRange:function(range){var v=this.values.sortBy(Prototype.K);range=range||0;return $R(v[range],v[range+1]);},minimumOffset:function(){return(this.isVertical()?this.alignY:this.alignX);},maximumOffset:function(){return(this.isVertical()?(this.track.offsetHeight!=0?this.track.offsetHeight:this.track.style.height.replace(/px$/,""))-this.alignY:(this.track.offsetWidth!=0?this.track.offsetWidth:this.track.style.width.replace(/px$/,""))-this.alignX);},isVertical:function(){return(this.axis=='vertical');},drawSpans:function(){var slider=this;if(this.spans)
$R(0,this.spans.length-1).each(function(r){slider.setSpan(slider.spans[r],slider.getRange(r))});if(this.options.startSpan)
this.setSpan(this.options.startSpan,$R(0,this.values.length>1?this.getRange(0).min():this.value));if(this.options.endSpan)
this.setSpan(this.options.endSpan,$R(this.values.length>1?this.getRange(this.spans.length-1).max():this.value,this.maximum));},setSpan:function(span,range){if(this.isVertical()){span.style.top=this.translateToPx(range.start);span.style.height=this.translateToPx(range.end-range.start+this.range.start);}else{span.style.left=this.translateToPx(range.start);span.style.width=this.translateToPx(range.end-range.start+this.range.start);}},updateStyles:function(){this.handles.each(function(h){Element.removeClassName(h,'selected')});Element.addClassName(this.activeHandle,'selected');},startDrag:function(event){if(Event.isLeftClick(event)){if(!this.disabled){this.active=true;var handle=Event.element(event);var pointer=[Event.pointerX(event),Event.pointerY(event)];var track=handle;if(track==this.track){var offsets=Position.cumulativeOffset(this.track);this.event=event;this.setValue(this.translateToValue((this.isVertical()?pointer[1]-offsets[1]:pointer[0]-offsets[0])-(this.handleLength/2)));var offsets=Position.cumulativeOffset(this.activeHandle);this.offsetX=(pointer[0]-offsets[0]);this.offsetY=(pointer[1]-offsets[1]);}else{while((this.handles.indexOf(handle)==-1)&&handle.parentNode)
handle=handle.parentNode;if(this.handles.indexOf(handle)!=-1){this.activeHandle=handle;this.activeHandleIdx=this.handles.indexOf(this.activeHandle);this.updateStyles();var offsets=Position.cumulativeOffset(this.activeHandle);this.offsetX=(pointer[0]-offsets[0]);this.offsetY=(pointer[1]-offsets[1]);}}}
Event.stop(event);}},update:function(event){if(this.active){if(!this.dragging)this.dragging=true;this.draw(event);if(Prototype.Browser.WebKit)window.scrollBy(0,0);Event.stop(event);}},draw:function(event){var pointer=[Event.pointerX(event),Event.pointerY(event)];var offsets=Position.cumulativeOffset(this.track);pointer[0]-=this.offsetX+offsets[0];pointer[1]-=this.offsetY+offsets[1];this.event=event;this.setValue(this.translateToValue(this.isVertical()?pointer[1]:pointer[0]));if(this.initialized&&this.options.onSlide)
this.options.onSlide(this.values.length>1?this.values:this.value,this);},endDrag:function(event){if(this.active&&this.dragging){this.finishDrag(event,true);Event.stop(event);}
this.active=false;this.dragging=false;},finishDrag:function(event,success){this.active=false;this.dragging=false;this.updateFinished();},updateFinished:function(){if(this.initialized&&this.options.onChange)
this.options.onChange(this.values.length>1?this.values:this.value,this);this.event=null;}});if(Object.isUndefined(Effect))
throw("dragdrop.js requires including script.aculo.us' effects.js library");var Droppables={drops:[],remove:function(element){this.drops=this.drops.reject(function(d){return d.element==$(element)});},add:function(element){element=$(element);var options=Object.extend({greedy:true,hoverclass:null,tree:false},arguments[1]||{});if(options.containment){options._containers=[];var containment=options.containment;if(Object.isArray(containment)){containment.each(function(c){options._containers.push($(c))});}else{options._containers.push($(containment));}}
if(options.accept)options.accept=[options.accept].flatten();Element.makePositioned(element);options.element=element;this.drops.push(options);},findDeepestChild:function(drops){deepest=drops[0];for(i=1;i<drops.length;++i)
if(Element.isParent(drops[i].element,deepest.element))
deepest=drops[i];return deepest;},isContained:function(element,drop){var containmentNode;if(drop.tree){containmentNode=element.treeNode;}else{containmentNode=element.parentNode;}
return drop._containers.detect(function(c){return containmentNode==c});},isAffected:function(point,element,drop){return((drop.element!=element)&&((!drop._containers)||this.isContained(element,drop))&&((!drop.accept)||(Element.classNames(element).detect(function(v){return drop.accept.include(v)})))&&Position.within(drop.element,point[0],point[1]));},deactivate:function(drop){if(drop.hoverclass)
Element.removeClassName(drop.element,drop.hoverclass);this.last_active=null;},activate:function(drop){if(drop.hoverclass)
Element.addClassName(drop.element,drop.hoverclass);this.last_active=drop;},show:function(point,element){if(!this.drops.length)return;var drop,affected=[];this.drops.each(function(drop){if(Droppables.isAffected(point,element,drop))
affected.push(drop);});if(affected.length>0)
drop=Droppables.findDeepestChild(affected);if(this.last_active&&this.last_active!=drop)this.deactivate(this.last_active);if(drop){Position.within(drop.element,point[0],point[1]);if(drop.onHover)
drop.onHover(element,drop.element,Position.overlap(drop.overlap,drop.element));if(drop!=this.last_active)Droppables.activate(drop);}},fire:function(event,element){if(!this.last_active)return;Position.prepare();if(this.isAffected([Event.pointerX(event),Event.pointerY(event)],element,this.last_active))
if(this.last_active.onDrop){this.last_active.onDrop(element,this.last_active.element,event);return true;}},reset:function(){if(this.last_active)
this.deactivate(this.last_active);}}
var Draggables={drags:[],observers:[],register:function(draggable){if(this.drags.length==0){this.eventMouseUp=this.endDrag.bindAsEventListener(this);this.eventMouseMove=this.updateDrag.bindAsEventListener(this);this.eventKeypress=this.keyPress.bindAsEventListener(this);Event.observe(document,"mouseup",this.eventMouseUp);Event.observe(document,"mousemove",this.eventMouseMove);Event.observe(document,"keypress",this.eventKeypress);}
this.drags.push(draggable);},unregister:function(draggable){this.drags=this.drags.reject(function(d){return d==draggable});if(this.drags.length==0){Event.stopObserving(document,"mouseup",this.eventMouseUp);Event.stopObserving(document,"mousemove",this.eventMouseMove);Event.stopObserving(document,"keypress",this.eventKeypress);}},activate:function(draggable){if(draggable.options.delay){this._timeout=setTimeout(function(){Draggables._timeout=null;window.focus();Draggables.activeDraggable=draggable;}.bind(this),draggable.options.delay);}else{window.focus();this.activeDraggable=draggable;}},deactivate:function(){this.activeDraggable=null;},updateDrag:function(event){if(!this.activeDraggable)return;var pointer=[Event.pointerX(event),Event.pointerY(event)];if(this._lastPointer&&(this._lastPointer.inspect()==pointer.inspect()))return;this._lastPointer=pointer;this.activeDraggable.updateDrag(event,pointer);},endDrag:function(event){if(this._timeout){clearTimeout(this._timeout);this._timeout=null;}
if(!this.activeDraggable)return;this._lastPointer=null;this.activeDraggable.endDrag(event);this.activeDraggable=null;},keyPress:function(event){if(this.activeDraggable)
this.activeDraggable.keyPress(event);},addObserver:function(observer){this.observers.push(observer);this._cacheObserverCallbacks();},removeObserver:function(element){this.observers=this.observers.reject(function(o){return o.element==element});this._cacheObserverCallbacks();},notify:function(eventName,draggable,event){if(this[eventName+'Count']>0)
this.observers.each(function(o){if(o[eventName])o[eventName](eventName,draggable,event);});if(draggable.options[eventName])draggable.options[eventName](draggable,event);},_cacheObserverCallbacks:function(){['onStart','onEnd','onDrag'].each(function(eventName){Draggables[eventName+'Count']=Draggables.observers.select(function(o){return o[eventName];}).length;});}}
var Draggable=Class.create({initialize:function(element){var defaults={handle:false,reverteffect:function(element,top_offset,left_offset){var dur=Math.sqrt(Math.abs(top_offset^2)+Math.abs(left_offset^2))*0.02;new Effect.Move(element,{x:-left_offset,y:-top_offset,duration:dur,queue:{scope:'_draggable',position:'end'}});},endeffect:function(element){var toOpacity=Object.isNumber(element._opacity)?element._opacity:1.0;new Effect.Opacity(element,{duration:0.2,from:0.7,to:toOpacity,queue:{scope:'_draggable',position:'end'},afterFinish:function(){Draggable._dragging[element]=false}});},zindex:1000,revert:false,quiet:false,scroll:false,scrollSensitivity:20,scrollSpeed:15,snap:false,delay:0};if(!arguments[1]||Object.isUndefined(arguments[1].endeffect))
Object.extend(defaults,{starteffect:function(element){element._opacity=Element.getOpacity(element);Draggable._dragging[element]=true;new Effect.Opacity(element,{duration:0.2,from:element._opacity,to:0.7});}});var options=Object.extend(defaults,arguments[1]||{});this.element=$(element);if(options.handle&&Object.isString(options.handle))
this.handle=this.element.down('.'+options.handle,0);if(!this.handle)this.handle=$(options.handle);if(!this.handle)this.handle=this.element;if(options.scroll&&!options.scroll.scrollTo&&!options.scroll.outerHTML){options.scroll=$(options.scroll);this._isScrollChild=Element.childOf(this.element,options.scroll);}
Element.makePositioned(this.element);this.options=options;this.dragging=false;this.eventMouseDown=this.initDrag.bindAsEventListener(this);Event.observe(this.handle,"mousedown",this.eventMouseDown);Draggables.register(this);},destroy:function(){Event.stopObserving(this.handle,"mousedown",this.eventMouseDown);Draggables.unregister(this);},currentDelta:function(){return([parseInt(Element.getStyle(this.element,'left')||'0'),parseInt(Element.getStyle(this.element,'top')||'0')]);},initDrag:function(event){if(!Object.isUndefined(Draggable._dragging[this.element])&&Draggable._dragging[this.element])return;if(Event.isLeftClick(event)){var src=Event.element(event);if((tag_name=src.tagName.toUpperCase())&&(tag_name=='INPUT'||tag_name=='SELECT'||tag_name=='OPTION'||tag_name=='BUTTON'||tag_name=='TEXTAREA'))return;var pointer=[Event.pointerX(event),Event.pointerY(event)];var pos=Position.cumulativeOffset(this.element);this.offset=[0,1].map(function(i){return(pointer[i]-pos[i])});Draggables.activate(this);Event.stop(event);}},startDrag:function(event){this.dragging=true;if(!this.delta)
this.delta=this.currentDelta();if(this.options.zindex){this.originalZ=parseInt(Element.getStyle(this.element,'z-index')||0);this.element.style.zIndex=this.options.zindex;}
if(this.options.ghosting){this._clone=this.element.cloneNode(true);this.element._originallyAbsolute=(this.element.getStyle('position')=='absolute');if(!this.element._originallyAbsolute)
Position.absolutize(this.element);this.element.parentNode.insertBefore(this._clone,this.element);}
if(this.options.scroll){if(this.options.scroll==window){var where=this._getWindowScroll(this.options.scroll);this.originalScrollLeft=where.left;this.originalScrollTop=where.top;}else{this.originalScrollLeft=this.options.scroll.scrollLeft;this.originalScrollTop=this.options.scroll.scrollTop;}}
Draggables.notify('onStart',this,event);if(this.options.starteffect)this.options.starteffect(this.element);},updateDrag:function(event,pointer){if(!this.dragging)this.startDrag(event);if(!this.options.quiet){Position.prepare();Droppables.show(pointer,this.element);}
Draggables.notify('onDrag',this,event);this.draw(pointer);if(this.options.change)this.options.change(this);if(this.options.scroll){this.stopScrolling();var p;if(this.options.scroll==window){with(this._getWindowScroll(this.options.scroll)){p=[left,top,left+width,top+height];}}else{p=Position.page(this.options.scroll);p[0]+=this.options.scroll.scrollLeft+Position.deltaX;p[1]+=this.options.scroll.scrollTop+Position.deltaY;p.push(p[0]+this.options.scroll.offsetWidth);p.push(p[1]+this.options.scroll.offsetHeight);}
var speed=[0,0];if(pointer[0]<(p[0]+this.options.scrollSensitivity))speed[0]=pointer[0]-(p[0]+this.options.scrollSensitivity);if(pointer[1]<(p[1]+this.options.scrollSensitivity))speed[1]=pointer[1]-(p[1]+this.options.scrollSensitivity);if(pointer[0]>(p[2]-this.options.scrollSensitivity))speed[0]=pointer[0]-(p[2]-this.options.scrollSensitivity);if(pointer[1]>(p[3]-this.options.scrollSensitivity))speed[1]=pointer[1]-(p[3]-this.options.scrollSensitivity);this.startScrolling(speed);}
if(Prototype.Browser.WebKit)window.scrollBy(0,0);Event.stop(event);},finishDrag:function(event,success){this.dragging=false;if(this.options.quiet){Position.prepare();var pointer=[Event.pointerX(event),Event.pointerY(event)];Droppables.show(pointer,this.element);}
if(this.options.ghosting){if(!this.element._originallyAbsolute)
Position.relativize(this.element);delete this.element._originallyAbsolute;Element.remove(this._clone);this._clone=null;}
var dropped=false;if(success){dropped=Droppables.fire(event,this.element);if(!dropped)dropped=false;}
if(dropped&&this.options.onDropped)this.options.onDropped(this.element);Draggables.notify('onEnd',this,event);var revert=this.options.revert;if(revert&&Object.isFunction(revert))revert=revert(this.element);var d=this.currentDelta();if(revert&&this.options.reverteffect){if(dropped==0||revert!='failure')
this.options.reverteffect(this.element,d[1]-this.delta[1],d[0]-this.delta[0]);}else{this.delta=d;}
if(this.options.zindex)
this.element.style.zIndex=this.originalZ;if(this.options.endeffect)
this.options.endeffect(this.element);Draggables.deactivate(this);Droppables.reset();},keyPress:function(event){if(event.keyCode!=Event.KEY_ESC)return;this.finishDrag(event,false);Event.stop(event);},endDrag:function(event){if(!this.dragging)return;this.stopScrolling();this.finishDrag(event,true);Event.stop(event);},draw:function(point){var pos=Position.cumulativeOffset(this.element);if(this.options.ghosting){var r=Position.realOffset(this.element);pos[0]+=r[0]-Position.deltaX;pos[1]+=r[1]-Position.deltaY;}
var d=this.currentDelta();pos[0]-=d[0];pos[1]-=d[1];if(this.options.scroll&&(this.options.scroll!=window&&this._isScrollChild)){pos[0]-=this.options.scroll.scrollLeft-this.originalScrollLeft;pos[1]-=this.options.scroll.scrollTop-this.originalScrollTop;}
var p=[0,1].map(function(i){return(point[i]-pos[i]-this.offset[i])}.bind(this));if(this.options.snap){if(Object.isFunction(this.options.snap)){p=this.options.snap(p[0],p[1],this);}else{if(Object.isArray(this.options.snap)){p=p.map(function(v,i){return(v/this.options.snap[i]).round()*this.options.snap[i]}.bind(this))}else{p=p.map(function(v){return(v/this.options.snap).round()*this.options.snap}.bind(this))}}}
var style=this.element.style;if((!this.options.constraint)||(this.options.constraint=='horizontal'))
style.left=p[0]+"px";if((!this.options.constraint)||(this.options.constraint=='vertical'))
style.top=p[1]+"px";if(style.visibility=="hidden")style.visibility="";},stopScrolling:function(){if(this.scrollInterval){clearInterval(this.scrollInterval);this.scrollInterval=null;Draggables._lastScrollPointer=null;}},startScrolling:function(speed){if(!(speed[0]||speed[1]))return;this.scrollSpeed=[speed[0]*this.options.scrollSpeed,speed[1]*this.options.scrollSpeed];this.lastScrolled=new Date();this.scrollInterval=setInterval(this.scroll.bind(this),10);},scroll:function(){var current=new Date();var delta=current-this.lastScrolled;this.lastScrolled=current;if(this.options.scroll==window){with(this._getWindowScroll(this.options.scroll)){if(this.scrollSpeed[0]||this.scrollSpeed[1]){var d=delta/1000;this.options.scroll.scrollTo(left+d*this.scrollSpeed[0],top+d*this.scrollSpeed[1]);}}}else{this.options.scroll.scrollLeft+=this.scrollSpeed[0]*delta/1000;this.options.scroll.scrollTop+=this.scrollSpeed[1]*delta/1000;}
Position.prepare();Droppables.show(Draggables._lastPointer,this.element);Draggables.notify('onDrag',this);if(this._isScrollChild){Draggables._lastScrollPointer=Draggables._lastScrollPointer||$A(Draggables._lastPointer);Draggables._lastScrollPointer[0]+=this.scrollSpeed[0]*delta/1000;Draggables._lastScrollPointer[1]+=this.scrollSpeed[1]*delta/1000;if(Draggables._lastScrollPointer[0]<0)
Draggables._lastScrollPointer[0]=0;if(Draggables._lastScrollPointer[1]<0)
Draggables._lastScrollPointer[1]=0;this.draw(Draggables._lastScrollPointer);}
if(this.options.change)this.options.change(this);},_getWindowScroll:function(w){var T,L,W,H;with(w.document){if(w.document.documentElement&&documentElement.scrollTop){T=documentElement.scrollTop;L=documentElement.scrollLeft;}else if(w.document.body){T=body.scrollTop;L=body.scrollLeft;}
if(w.innerWidth){W=w.innerWidth;H=w.innerHeight;}else if(w.document.documentElement&&documentElement.clientWidth){W=documentElement.clientWidth;H=documentElement.clientHeight;}else{W=body.offsetWidth;H=body.offsetHeight}}
return{top:T,left:L,width:W,height:H};}});Draggable._dragging={};var SortableObserver=Class.create({initialize:function(element,observer){this.element=$(element);this.observer=observer;this.lastValue=Sortable.serialize(this.element);},onStart:function(){this.lastValue=Sortable.serialize(this.element);},onEnd:function(){Sortable.unmark();if(this.lastValue!=Sortable.serialize(this.element))
this.observer(this.element)}});var Sortable={SERIALIZE_RULE:/^[^_\-](?:[A-Za-z0-9\-\_]*)[_](.*)$/,sortables:{},_findRootElement:function(element){while(element.tagName.toUpperCase()!="BODY"){if(element.id&&Sortable.sortables[element.id])return element;element=element.parentNode;}},options:function(element){element=Sortable._findRootElement($(element));if(!element)return;return Sortable.sortables[element.id];},destroy:function(element){var s=Sortable.options(element);if(s){Draggables.removeObserver(s.element);s.droppables.each(function(d){Droppables.remove(d)});s.draggables.invoke('destroy');delete Sortable.sortables[s.element.id];}},create:function(element){element=$(element);var options=Object.extend({element:element,tag:'li',dropOnEmpty:false,tree:false,treeTag:'ul',overlap:'vertical',constraint:'vertical',containment:element,handle:false,only:false,delay:0,hoverclass:null,ghosting:false,quiet:false,scroll:false,scrollSensitivity:20,scrollSpeed:15,format:this.SERIALIZE_RULE,elements:false,handles:false,onChange:Prototype.emptyFunction,onUpdate:Prototype.emptyFunction},arguments[1]||{});this.destroy(element);var options_for_draggable={revert:true,quiet:options.quiet,scroll:options.scroll,scrollSpeed:options.scrollSpeed,scrollSensitivity:options.scrollSensitivity,delay:options.delay,ghosting:options.ghosting,constraint:options.constraint,handle:options.handle};if(options.starteffect)
options_for_draggable.starteffect=options.starteffect;if(options.reverteffect)
options_for_draggable.reverteffect=options.reverteffect;else
if(options.ghosting)options_for_draggable.reverteffect=function(element){element.style.top=0;element.style.left=0;};if(options.endeffect)
options_for_draggable.endeffect=options.endeffect;if(options.zindex)
options_for_draggable.zindex=options.zindex;var options_for_droppable={overlap:options.overlap,containment:options.containment,tree:options.tree,hoverclass:options.hoverclass,onHover:Sortable.onHover}
var options_for_tree={onHover:Sortable.onEmptyHover,overlap:options.overlap,containment:options.containment,hoverclass:options.hoverclass}
Element.cleanWhitespace(element);options.draggables=[];options.droppables=[];if(options.dropOnEmpty||options.tree){Droppables.add(element,options_for_tree);options.droppables.push(element);}
(options.elements||this.findElements(element,options)||[]).each(function(e,i){var handle=options.handles?$(options.handles[i]):(options.handle?$(e).select('.'+options.handle)[0]:e);options.draggables.push(new Draggable(e,Object.extend(options_for_draggable,{handle:handle})));Droppables.add(e,options_for_droppable);if(options.tree)e.treeNode=element;options.droppables.push(e);});if(options.tree){(Sortable.findTreeElements(element,options)||[]).each(function(e){Droppables.add(e,options_for_tree);e.treeNode=element;options.droppables.push(e);});}
this.sortables[element.id]=options;Draggables.addObserver(new SortableObserver(element,options.onUpdate));},findElements:function(element,options){return Element.findChildren(element,options.only,options.tree?true:false,options.tag);},findTreeElements:function(element,options){return Element.findChildren(element,options.only,options.tree?true:false,options.treeTag);},onHover:function(element,dropon,overlap){if(Element.isParent(dropon,element))return;if(overlap>.33&&overlap<.66&&Sortable.options(dropon).tree){return;}else if(overlap>0.5){Sortable.mark(dropon,'before');if(dropon.previousSibling!=element){var oldParentNode=element.parentNode;element.style.visibility="hidden";dropon.parentNode.insertBefore(element,dropon);if(dropon.parentNode!=oldParentNode)
Sortable.options(oldParentNode).onChange(element);Sortable.options(dropon.parentNode).onChange(element);}}else{Sortable.mark(dropon,'after');var nextElement=dropon.nextSibling||null;if(nextElement!=element){var oldParentNode=element.parentNode;element.style.visibility="hidden";dropon.parentNode.insertBefore(element,nextElement);if(dropon.parentNode!=oldParentNode)
Sortable.options(oldParentNode).onChange(element);Sortable.options(dropon.parentNode).onChange(element);}}},onEmptyHover:function(element,dropon,overlap){var oldParentNode=element.parentNode;var droponOptions=Sortable.options(dropon);if(!Element.isParent(dropon,element)){var index;var children=Sortable.findElements(dropon,{tag:droponOptions.tag,only:droponOptions.only});var child=null;if(children){var offset=Element.offsetSize(dropon,droponOptions.overlap)*(1.0-overlap);for(index=0;index<children.length;index+=1){if(offset-Element.offsetSize(children[index],droponOptions.overlap)>=0){offset-=Element.offsetSize(children[index],droponOptions.overlap);}else if(offset-(Element.offsetSize(children[index],droponOptions.overlap)/2)>=0){child=index+1<children.length?children[index+1]:null;break;}else{child=children[index];break;}}}
dropon.insertBefore(element,child);Sortable.options(oldParentNode).onChange(element);droponOptions.onChange(element);}},unmark:function(){if(Sortable._marker)Sortable._marker.hide();},mark:function(dropon,position){var sortable=Sortable.options(dropon.parentNode);if(sortable&&!sortable.ghosting)return;if(!Sortable._marker){Sortable._marker=($('dropmarker')||Element.extend(document.createElement('DIV'))).Element.addClassName(hide(),'dropmarker').setStyle({position:'absolute'});document.getElementsByTagName("body").item(0).appendChild(Sortable._marker);}
var offsets=Position.cumulativeOffset(dropon);Sortable._marker.setStyle({left:offsets[0]+'px',top:offsets[1]+'px'});if(position=='after')
if(sortable.overlap=='horizontal')
Sortable._marker.setStyle({left:(offsets[0]+dropon.clientWidth)+'px'});else
Sortable._marker.setStyle({top:(offsets[1]+dropon.clientHeight)+'px'});Sortable._marker.show();},_tree:function(element,options,parent){var children=Sortable.findElements(element,options)||[];for(var i=0;i<children.length;++i){var match=children[i].id.match(options.format);if(!match)continue;var child={id:encodeURIComponent(match?match[1]:null),element:element,parent:parent,children:[],position:parent.children.length,container:$(children[i]).down(options.treeTag)}
if(child.container)
this._tree(child.container,options,child)
parent.children.push(child);}
return parent;},tree:function(element){element=$(element);var sortableOptions=this.options(element);var options=Object.extend({tag:sortableOptions.tag,treeTag:sortableOptions.treeTag,only:sortableOptions.only,name:element.id,format:sortableOptions.format},arguments[1]||{});var root={id:null,parent:null,children:[],container:element,position:0}
return Sortable._tree(element,options,root);},_constructIndex:function(node){var index='';do{if(node.id)index='['+node.position+']'+index;}while((node=node.parent)!=null);return index;},sequence:function(element){element=$(element);var options=Object.extend(this.options(element),arguments[1]||{});return $(this.findElements(element,options)||[]).map(function(item){return item.id.match(options.format)?item.id.match(options.format)[1]:'';});},setSequence:function(element,new_sequence){element=$(element);var options=Object.extend(this.options(element),arguments[2]||{});var nodeMap={};this.findElements(element,options).each(function(n){if(n.id.match(options.format))
nodeMap[n.id.match(options.format)[1]]=[n,n.parentNode];n.parentNode.removeChild(n);});new_sequence.each(function(ident){var n=nodeMap[ident];if(n){n[1].appendChild(n[0]);delete nodeMap[ident];}});},serialize:function(element){element=$(element);var options=Object.extend(Sortable.options(element),arguments[1]||{});var name=encodeURIComponent((arguments[1]&&arguments[1].name)?arguments[1].name:element.id);if(options.tree){return Sortable.tree(element,arguments[1]).children.map(function(item){return[name+Sortable._constructIndex(item)+"[id]="+
encodeURIComponent(item.id)].concat(item.children.map(arguments.callee));}).flatten().join('&');}else{return Sortable.sequence(element,arguments[1]).map(function(item){return name+"[]="+encodeURIComponent(item);}).join('&');}}}
Element.isParent=function(child,element){if(!child.parentNode||child==element)return false;if(child.parentNode==element)return true;return Element.isParent(child.parentNode,element);}
Element.findChildren=function(element,only,recursive,tagName){if(!element.hasChildNodes())return null;tagName=tagName.toUpperCase();if(only)only=[only].flatten();var elements=[];$A(element.childNodes).each(function(e){if(e.tagName&&e.tagName.toUpperCase()==tagName&&(!only||(Element.classNames(e).detect(function(v){return only.include(v)}))))
elements.push(e);if(recursive){var grandchildren=Element.findChildren(e,only,recursive,tagName);if(grandchildren)elements.push(grandchildren);}});return(elements.length>0?elements.flatten():[]);}
Element.offsetSize=function(element,type){return element['offset'+((type=='vertical'||type=='height')?'Height':'Width')];}
Showcase=Class.create(Abstract,{initialize:function(sections,controls,options){this.allSections=this.sections=sections;this.controls=controls;this.options=Object.extend({ratio:0.5,initialDelay:1,duration:0.5,size:this.sections.size(),onFinish:null,onStart:null},options||{});this.running=false;this.queue=new Array;this.computeMetrics();this.sections=this.allSections.slice(this.currentIndex-this.half,this.currentIndex+this.half+1);this.allSections.each((function(section,index){section.setStyle({position:'absolute',zIndex:Math.abs(index-this.sections.size()),left:'50%',top:'50%',marginLeft:-Math.round(section.getWidth()/2)+'px',marginTop:-Math.round(section.getHeight()/2)+'px'}).initialIndex=index;section.observe('click',this.jump.bind(this)).observe('mouseover',function(event){section.setOpacity(1);}).observe('mouseout',function(){section.setOpacity(section.opacity);}).opacity=1;if(!this.sections.member(section)){this.queue.push(section.hide());}}).bind(this));for(i=0;i<=this.half;i++){this.sections.push(this.sections.shift());}
this.controls.invoke('observe','click',this.click.bind(this));(this.animate.bind(this)).delay(this.options.initialDelay);},computeMetrics:function(){this.half=this.currentIndex=(this.options.size-1)/2;this.ratioStep=Math.round(((1-this.options.ratio)/this.currentIndex)*100)/100;this.positionStep=Math.round(50/this.half*100)/100;this.maxDimensions=this.sections.first().getDimensions();},click:function(event){event.stop();var element=event.findElement('a');if(!this.running){eval("this."+element.rel+"()");}
this.animate(element.rel);},previous:function(){if(this.options.size<this.allSections.size()){var sectionIn=this.queue.shift();var sectionOut=this.sections.pop();this.sections.unshift(sectionIn);this.queue.push(sectionOut.fade({duration:this.options.duration}));}else{this.sections.unshift(this.sections.pop());}},next:function(){if(this.options.size<this.allSections.size()){var sectionIn=this.queue.shift();var sectionOut=this.sections.shift();this.sections.push(sectionIn);this.queue.push(sectionOut.fade({duration:this.options.duration}));}else{this.sections.push(this.sections.shift());}},jump:function(event){event.stop();if(!this.running){var section=this.sections[this.sections.indexOf(event.findElement('li'))];var direction='';if(section.index<this.half){(this.half-section.index).times((function(){this.previous();}).bind(this));direction='previous';}else if(section.index==this.half){}else{(section.index-this.half).times((function(){this.next();}).bind(this));direction='next';}}
this.animate(direction);},runEffects:function(){this.stackSections.bind(this).delay(this.options.duration/2);this.running=new Effect.Parallel(this.effects.map(function(effect){return new Effect.Parallel([new Effect.Morph(effect.section,{style:effect.style,sync:true,delay:1,transition:Effect.Transitions.linear}),new Effect.Appear(effect.section,{to:Math.min(effect.section.ratio,1),sync:true})],{sync:true,beforeStart:function(){}});}),{duration:this.options.duration,afterFinish:(function(){this.running=false;if(this.options.onFinish!=null)
this.options.onFinish(this.currentIndex);}).bind(this)});},stackSections:function(){this.sections.each(function(section){section.setStyle({zIndex:section.stackIndex});});},indexSections:function(){this.sections.each((function(section,index){section.index=index;section.modifier=Math.abs(Math.abs((section.index-(this.sections.size()-1)/2))-this.half);section.ratio=Math.round(((section.modifier*this.ratioStep)+this.options.ratio)*100)/100;section.width=Math.min(Math.round(this.maxDimensions.width*section.ratio),this.maxDimensions.width);section.height=Math.min(Math.round(this.maxDimensions.height*section.ratio),this.maxDimensions.height);section.positionIndex=(section.index-(this.sections.size()-1)/2);section.stackIndex=Math.abs(Math.abs((section.index-(this.sections.size()-1)/2))-this.half)+1;section.left=section.top=Math.round((this.half+section.positionIndex)*this.positionStep);section.opacity=Math.min(section.ratio,1);}).bind(this));}});Showcase.Horizontal=Class.create(Showcase,{animate:function(direction){this.indexSections();this.effects=new Array();this.sections.each((function(section){var style={left:section.left+'%',top:'50%',marginTop:-Math.abs(section.height/2)+'px',width:section.width+'px',height:section.height+'px'};if(section.left==0){style.marginLeft='0px';}else if(section.left==50){style.marginLeft=-Math.round(section.width/2)+'px';}else if(section.left==100){style.marginLeft=-section.width+'px';}else{style.marginLeft=-Math.round(section.width/2)+'px';}
this.effects.push({section:section,style:style});}).bind(this));this.currentIndex=this.sections[this.half].initialIndex;if(this.options.onStart!=null)
this.options.onStart(this.currentIndex);this.runEffects();}});Showcase.Vertical=Class.create(Showcase,{animate:function(direction){if(this.options.onStart!=null)
this.options.onStart(-1);this.indexSections();this.effects=new Array();this.sections.each((function(section){var style={top:section.top+'%',left:'50%',marginLeft:-Math.abs(section.width/2)+'px',width:section.width+'px',height:section.height+'px'};if(section.top==0){style.marginTop='0px';}else if(section.top==50){style.marginTop=-Math.round(section.height/2)+'px';}else if(section.top==100){style.marginTop=-section.height+'px';}else{style.marginTop=-Math.round(section.height/2)+'px';}
this.effects.push({section:section,style:style});}).bind(this));this.currentIndex=this.sections[this.half].initialIndex;if(this.options.onStart!=null)
this.options.onStart(this.currentIndex);this.runEffects();}});Showcase.Diagonal=Class.create(Showcase,{animate:function(direction){if(this.options.onStart!=null)
this.options.onStart(-1);this.indexSections();this.effects=new Array();this.sections.each((function(section){var style={left:section.left+'%',top:section.top+'%',width:section.width+'px',height:section.height+'px'};if(section.left==0){style.marginLeft='0px';}else if(section.left==50){style.marginLeft=-Math.round(section.width/2)+'px';}else if(section.left==100){style.marginLeft=-section.width+'px';}else{style.marginLeft=-Math.round(section.width/2)+'px';}
if(section.top==0){style.marginTop='0px';}else if(section.top==50){style.marginTop=-Math.round(section.height/2)+'px';}else if(section.top==100){style.marginTop=-section.height+'px';}else{style.marginTop=-Math.round(section.height/2)+'px';}
this.effects.push({section:section,style:style});}).bind(this));this.currentIndex=this.sections[this.half].initialIndex;this.runEffects();}});var Growl={};Growl.Base=Class.create({options:null,showing:false,create:function(class_names){var elem=new Element('div',{'class':class_names}).hide();elem.insert({bottom:new Element('img')});elem.insert({bottom:new Element('h3')});elem.insert({bottom:new Element('p')});$(document.body).insert({bottom:elem});elem.setOpacity(this.options.opacity);return elem;},show:function(elem,options){if(this.options.animated&&this.options.animation.show)
{this.showing=true;new this.options.animation.show(elem,{duration:this.options.animated,afterFinishInternal:this.finishShowing.bind(this)});}
else
{elem.show();}
if(this.options.autohide)
this.hide.bind(this,elem).delay(options.autohide);else{elem.observe('click',function(event)
{this.hide(event.findElement('div'));}.bindAsEventListener(this));}
return elem;},finishShowing:function()
{this.showing=false;},hide:function(elem){if(this.showing)
{this.hide.delay(100,elem);}
else
{if(this.options.animated&&this.options.animation.hide)
{new this.options.animation.hide(elem,{duration:this.options.animated,afterFinishInternal:elem.remove.bind(elem)})}
else
{elem.remove();}}},initialize:function(options){this.options=Object.extend({image:l10n.URLStatic+'/images/digime-logo-48.png',title:'Default popup title',text:'',autohide:2,animated:0.75,animation:{show:Effect.Appear,hide:Effect.Fade},opacity:1},options||{});}});Growl.Smoke=Class.create(Growl.Base,{cache:$H({}),from_top:0,show:function($super){var options=Object.extend(this.options,arguments[1]||{});var elem=this.create(options.class_names||'growl-smoke');var delta=this.from_top;elem.setStyle({top:delta+'px'});elem.down('img').setAttribute('src',options.image);elem.down('h3').update(options.title);elem.down('p').update(options.text);this.from_top+=elem.getHeight();this.cache.set(elem.identify(),true);return $super(elem,options);},hide:function($super,elem)
{if(this.showing)
{this.hide.delay(100,elem);}
else
{$super(elem);this.cache.unset(elem.identify());if(this.cache.keys().length==0)
this.from_top=0;}},initialize:function($super,options){$super(options);}});Growl.Bezel=Class.create(Growl.Base,{cache:$H({}),queue:$A({}),from_top:0,show:function($super)
{if(this.cache.keys().length==0)
{this.options.animation.hide=Effect.DropOut;var options=Object.extend(this.options,arguments[1]||{});var elem=this.create(options.class_names||'growl-bezel');var offsets=document.viewport.getDimensions();var top=(offsets['height']/2)-105;var left=(offsets['width']/2)-103;elem.setStyle({top:top+'px',left:left+'px'});elem.down('img').setAttribute('src',options.image);elem.down('h3').update(options.title);elem.down('p').update(options.text);this.cache.set(elem.identify(),true);return $super(elem,options);}
else
{this.queue.push(arguments[1]||{});}},hide:function($super,elem)
{if(this.showing)
{window.setTimeout(this.hide.bind(this,elem),100);}
else
{$super(elem);this.cache.unset(elem.identify());if(this.queue.length>0)
{var options=this.queue.first();this.queue=this.queue.without(options);this.show.bind(this,options).delay(0.5);}}},initialize:function($super,options){$super(options);}});Growl.SmokeError=Class.create(Growl.Smoke,{initialize:function($super,options){$super(Object.extend({image:l10n.URLStatic+'/images/error48.png',class_names:'growl-smoke growl-smoke-error'},options||{}));}});Growl.BezelError=Class.create(Growl.Bezel,{initialize:function($super,options){$super(Object.extend({image:l10n.URLStatic+'/images/error48.png',class_names:'growl-bezel growl-bezel-error'},options||{}));}});var Facebox=Class.create({initialize:function(extra_set){if($('facebox')){Element.remove('facebox');}
this.settings={loading_image:l10n.URLStatic+'/images/facebox/loading.gif',close_image:l10n.URLStatic+'/images/'+l10n.LangCode+'/closebox.png',image_types:new RegExp('\.'+['png','jpg','jpeg','gif'].join('|')+'$','i'),inited:true,facebox_html:new Template('\
   <div id="facebox" style="display:none;"> \
     <div class="popup"> \
       <table> \
         <tbody> \
           <tr> \
             <td class="tl"/><td class="b"/><td class="tr"/> \
           </tr> \
           <tr> \
             <td class="b"/> \
             <td class="body"> \
               <div class="content" id="facebox_content"> \
               </div> \
               <div class="footer"> \
                 <a href="#" class="close"> \
                   <img src="#{close_image}" title="close" class="close_image" /> \
                 </a> \
               </div> \
             </td> \
             <td class="b"/> \
           </tr> \
           <tr> \
             <td class="bl"/><td class="b"/><td class="br"/> \
           </tr> \
         </tbody> \
       </table> \
     </div> \
   </div>')};if(extra_set)Object.extend(this.settings,extra_set);$$('body').first().insert({bottom:this.settings.facebox_html.evaluate({close_image:this.settings.close_image})});this.preload=[new Image(),new Image()];this.preload[0].src=this.settings.close_image;this.preload[1].src=this.settings.loading_image;f=this;$$('#facebox .b:first, #facebox .bl, #facebox .br, #facebox .tl, #facebox .tr').each(function(elem){f.preload.push(new Image());f.preload.slice(-1).src=elem.getStyle('background-image').replace(/url\((.+)\)/,'$1');});this.watchClickEvents();fb=this;Event.observe($$('#facebox .close').first(),'click',function(e){Event.stop(e);fb.close()});Event.observe($$('#facebox .close_image').first(),'click',function(e){Event.stop(e);fb.close()});Event.observe(window,'resize',function(e){fb.setLocation();});},watchClickEvents:function(e){var f=this;$$('a[rel=facebox]').each(function(elem,i){Event.observe(elem,'click',function(e){Event.stop(e);f.click_handler(elem,e);});});},loading:function(){if($$('#facebox .loading').length==1)return true;contentWrapper=$$('#facebox .content').first();contentWrapper.childElements().each(function(elem,i){elem.remove();});contentWrapper.insert({bottom:'<div class="loading"><img src="'+this.settings.loading_image+'"/></div>'});this.setLocation();Event.observe(document,'keypress',this.keyPressListener);},reveal:function(data,klass){this.loading();box=$('facebox');if(!box.visible())fb.open();contentWrapper=$$('#facebox .content').first();if(klass)contentWrapper.addClassName(klass);contentWrapper.innerHTML='';contentWrapper.insert({bottom:data});load=$$('#facebox .loading').first();if(load)load.remove();$$('#facebox .body').first().childElements().each(function(elem,i){elem.show();});this.setLocation();Event.observe(document,'keypress',this.keyPressListener);},open:function(){new Effect.Appear('facebox');},close:function(){new Effect.Fade('facebox');},setLocation:function(){var pageScroll=document.viewport.getScrollOffsets();$('facebox').setStyle({'top':(document.viewport.getHeight()/10)+'px','left':String((document.viewport.getWidth()/2)-($('facebox').getWidth())+($('facebox').getWidth()/2))+'px'});},new_box_for_url:function(url){var fb=this;fb.open();var klass='';fb.ajax(url,klass);},ajax:function(url,klass){var fb=this;new Ajax.Request(url,{method:'get',onFailure:function(transport){fb.reveal(transport.responseText,klass);},onSuccess:function(transport){fb.reveal(transport.responseText,klass);}});},click_handler:function(elem,e){this.loading();Event.stop(e);var klass=elem.rel.match(/facebox\[\.(\w+)\]/);if(klass)klass=klass[1];this.open();if(elem.href.match(/#/)){var url=window.location.href.split('#')[0];var target=elem.href.replace(url+'#','');var d=$(target);var data=new Element(d.tagName);data.innerHTML=d.innerHTML;this.reveal(data,klass);}else if(elem.href.match(this.settings.image_types)){var image=new Image();fb=this;image.onload=function(){fb.reveal('<div class="image"><img src="'+image.src+'" /></div>',klass)}
image.src=elem.href;}else{fb=this;url=elem.href;fb.ajax(url,klass);}}});var facebox;Event.observe(window,'load',function(e){facebox=new Facebox();});var SimpleAutoComplete=Class.create({selector:null,input:null,_timeout:null,visible:false,drawn:false,_hideTimeout:null,options:null,holderClass:"ac_field",initialize:function(input,action,options)
{this.action=action;this.input=$(input);this.input.autocomplete="off";this.options=new SimpleAutoComplete.Options(options||{});if(!this.input)
alert('No input field/binding field given or found')
if(!this.action)
alert('No action url specified');this.selector=document.createElement('select');Event.observe(this.input,'focus',this._onInputFocus.bindAsEventListener(this));Event.observe(this.input,'keydown',this._onInputKeyDown.bindAsEventListener(this));Event.observe(this.input,'blur',this._onInputBlur.bindAsEventListener(this));Event.observe(this.selector,'blur',this._onSelectorBlur.bindAsEventListener(this));Event.observe(this.selector,'focus',this._onSelectorFocus.bindAsEventListener(this));Event.observe(this.selector,'change',this._onSelectorChange.bindAsEventListener(this));Event.observe(window,'resize',this._reposition.bind(this));Event.observe(window,'scroll',this._reposition.bind(this));},_onInputFocus:function(event)
{this._onSelectorFocus(event);},_onSelectorBlur:function(event)
{this._onInputBlur(event);},_onInputBlur:function(event)
{this._hideTimeout=setTimeout(this._checkOnBlur.bind(this),100);},_checkOnBlur:function()
{this._hideTimeout=null
this.hide();},_onInputKeyUp:function(event)
{this._suggest(event)&&Event.stop(event);},_onInputKeyDown:function(event)
{this._suggest(event)&&Event.stop(event);},_onSelectorFocus:function(event)
{if(this._hideTimeout)
{clearTimeout(this._hideTimeout);this._hideTimeout=null;}},_onSelectorChange:function(event)
{this.select();},draw:function()
{if(this.drawn)return;if(this.options.cssClass)
this.selector.className=this.options.cssClass;Element.setStyle(this.selector,{display:'none',position:'absolute',zIndex:100,width:this.input.offsetWidth+'px'});this.selector.size=this.options.size;document.body.appendChild(this.selector);this.input.autocomplete='off';this.drawn=true;},hide:function()
{if(!this.drawn||!this.visible)return;this.visible=false;if(window.Scriptaculous)
{new Effect.BlindUp(this.selector,{duration:this.options.delay,queue:'end',afterFinish:function(event){Element.setStyle(this.selector,{display:'none'});this.selector.options.length=0;setTimeout(this._restoreFocus.bind(this),50);}.bind(this)});}
else
{Element.setStyle(this.selector,{display:'none'});this.selector.options.length=0;setTimeout(this._restoreFocus.bind(this),50);}},_restoreFocus:function(){this.input.focus();},show:function()
{if(!this.drawn)this.draw();var trigger=null;if(this.selector.options.length)
{if(window.Scriptaculous)
{new Effect.BlindDown(this.selector,{duration:this.options.delay,queue:'end'});}
else
{Element.setStyle(this.selector,{display:'inline'});}
this._reposition();this.visible=true;}},_cancelTimeout:function()
{if(this._timeout)
{clearTimeout(this._timeout);this._timeout=null;}},_suggest:function(event)
{this._cancelTimeout();var key=Event.keyPressed(event);var ignoreKeys=[20,16,17,91,121,122,123,124,125,126,127,128,129,130,131,132,45,36,35,33,34,144,145,44,19,93,];if(ignoreKeys.indexOf(key)>-1)
return false;switch(key)
{case Event.KEY_LEFT:case Event.KEY_RIGHT:return false;break;case Event.KEY_TAB:case Event.KEY_BACKSPACE:case 46:this.cancel();return false;break;case Event.KEY_RETURN:if(this.visible)
{this.select();return true;}
return false;break;case Event.KEY_ESC:this.cancel();return true;break;case Event.KEY_UP:case Event.KEY_DOWN:this._interact(event);return true;break;default:break;}
if(this.input.value.match(/^[\s*]*$/)==null)
{this._setHolderClassName("ac_field_waitinput");if(this.input.value.strip().length>=this.options.threshold-1)
{this._timeout=this._sendRequest.bind(this).delay(1);}}
else
{window.clearTimeout(this._timeout);this._timeout=null;this._setHolderClassName("ac_field");}
return false;},_setHolderClassName:function(className)
{Element.removeClassName(this.input,this.holderClass);Element.addClassName(this.input,className);this.holderClass=className;},_sendRequest:function()
{this._setHolderClassName("ac_field_busy");this._request=new Ajax.Request(this.action+this.input.value,{onComplete:this._process.bind(this),method:this.options.requestMethod});},_reposition:function()
{if(!this.drawn)return;var pos=Position.cumulativeOffset(this.input);pos.push(pos[0]+this.input.offsetWidth);pos.push(pos[1]+this.input.offsetHeight);Element.setStyle(this.selector,{left:pos[0]+'px',top:pos[3]+'px'});},_process:function(objXML,jsonHeader)
{try{this.selector.options.length=0;switch(this.options.resultFormat)
{case SimpleAutoComplete.Options.RESULT_FORMAT_XML:this._parseXML(objXML.responseXML);break;case SimpleAutoComplete.Options.RESULT_FORMAT_JSON:if(!jsonHeader)
{jsonHeader=objXML.responseText&&objXML.responseText.isJSON()?objXML.responseText.evalJSON():null;}
if(!jsonHeader)jsonHeader=[];if(objXML.getHeader("Content-Type")=="application/x-suggestions+json"&&jsonHeader.length==3)
{this._processSuggestions(jsonHeader[0],jsonHeader[1],jsonHeader[2]);}else{this._parseJSON(jsonHeader);}
break;case SimpleAutoComplete.Options.RESULT_FORMAT_TEXT:this._parseText(objXML.responseText);break;default:alert("Unable to parse result type. Make sure you've set the resultFormat option correctly");break;}
if(this.selector.options.length>(this.options.size))
this.selector.size=this.options.size;else
this.selector.size=this.selector.options.length>1?this.selector.options.length:2;if(this.selector.options.length)
{this.selector.selectedIndex=-1;this.show();}
else
this.cancel();}finally{this._setHolderClassName("ac_field_");}},_parseXML:function(xml)
{var suggestions=null;for(var i=0;i<xml.childNodes.length;i++)
{if(xml.childNodes[i].tagName)
{suggestions=xml.childNodes[i].childNodes;}}
if(!suggestions)
{alert("Could not parse response XML.");return;}
for(i=0;i<suggestions.length;i++)
{suggestion=suggestions.item(i).firstChild.nodeValue;this._addOption(suggestion);}},_parseJSON:function(json)
{if(!json)json=[];for(i=0;i<json.length;i++)
this._addOption(json[i]);},_processSuggestions:function(query,suggestions,sizes)
{for(var i=0;i<suggestions.length;i++)
{var len=suggestions[i].length+(""+sizes[i]).length+3;var _label=JS_MESSAGES["Search.suggestion"].gsub("{0}",suggestions[i]).gsub("{1}",sizes[i]);this._addOption(suggestions[i],_label);}},_parseText:function(text)
{var suggestions=(text||"").split(/\n/);for(i=0;i<suggestions.length;i++)
this._addOption(suggestions[i]);},_addOption:function(suggestion,_label)
{var opt=new Option(_label||suggestion,suggestion);Prototype.Browser.IE?this.selector.add(opt):this.selector.add(opt,null);},cancel:function()
{this.hide();},select:function()
{if(this.selector.options.length)
this.input.value=this.selector.options[this.selector.selectedIndex].value;this.cancel();if(typeof this.options.onSelect=='function')
{this.options['onSelect'](this.input);}},_interact:function(event)
{if(!this.visible)return;var key=Event.keyPressed(event);if(key!=Event.KEY_UP&&key!=Event.KEY_DOWN)return;var mx=this.selector.options.length;if(key==Event.KEY_UP)
{if(this.selector.selectedIndex==0)
this.selector.selectedIndex=this.selector.options.length-1;else
this.selector.selectedIndex--;}
else
{if(this.selector.selectedIndex==this.selector.options.length-1)
this.selector.selectedIndex=0;else
this.selector.selectedIndex++;}}});SimpleAutoComplete.Options=Class.create({size:10,cssClass:null,onSelect:null,threshold:3,delay:.2,requestMethod:'GET',resultFormat:'xml',initialize:function(overrides)
{Object.extend(this,overrides||{});}});Object.extend(SimpleAutoComplete.Options,{RESULT_FORMAT_XML:'xml',RESULT_FORMAT_JSON:'json',RESULT_FORMAT_TEXT:'text'});Object.extend(Event,{KEY_BACKSPACE:8,KEY_TAB:9,KEY_RETURN:13,KEY_ESC:27,KEY_LEFT:37,KEY_UP:38,KEY_RIGHT:39,KEY_DOWN:40,KEY_DELETE:46,KEY_SHIFT:16,KEY_CONTROL:17,KEY_CAPSLOCK:20,KEY_SPACE:32,keyPressed:function(event)
{return Prototype.Browser.IE?window.event.keyCode:event.which;}});var SearchWebShot=Class.create();SearchWebShot.prototype={ali:null,checkLi:function(li){var thiz=this;new Ajax.Request("/services/webshotchecker/"+li.uuid,{method:'get',onComplete:function(transport){thiz.onComplete(transport,li)}});},onComplete:function(transport,li){var isprocessing="true"==transport.getHeader("X-WebShot-Processing");if(isprocessing){li.isprocessing=true;window.setTimeout(function()
{this.checkLi(li);}.bind(this),10000);}else{li.style.backgroundImage="url("+li.url+"&refresh=true)";li.searchicon.src=li.searchicon.src+"&refresh=true";li.onload=this.processNextWebshot.bindAsEventListener(this);}},processNextWebshot:function()
{var li=this.ali.pop();if(li!=null)
{li.isprocessing=false;var asearchicon=$A(li.childNodes).find(function(node){return"A"==node.tagName&&"searchicon"==node.className;});var href=asearchicon.href;var uid=href.substring(href.indexOf("#")+1);if($(uid))
{li.searchicon=$A($(uid).childNodes).find(function(img){return"IMG"==img.tagName;});try{console.log("#processNextWebshot: "+href);}catch(e){};this.checkLi(li);}}},initialize:function(alis){this.ali=alis;this.processNextWebshot();$$('a.searchicon').each(function(el){zooms.push(new FancyZoom(el));});}}
var zooms=$A([]);var Notifications=Class.create();Notifications.info={smoke:new Growl.Smoke(),bezel:new Growl.Bezel()};Notifications.error={smoke:new Growl.SmokeError(),bezel:new Growl.BezelError()};Notifications.info.bezel.options.text=JS_MESSAGES["Messages.clicktoclose"];Notifications.error.bezel.options.text=JS_MESSAGES["Messages.clicktoclose"];Notifications.prototype={growler:null,options:null,element:null,show:function(){if(this.element==null){if(this.options._title)
this.options.title=JS_MESSAGES[this.options._title];this.element=this.growler.show(this.options);}},hide:function(){if(this.element!=null){this.growler.hide(this.element);this.element=null;}},initialize:function(type,shape,_options){eval("this.growler = Notifications."+type+"."+shape);this.options=_options||{};}};Notifications.WORKING=new Notifications("info","bezel",{_title:"working",text:"<img src='"+l10n.URLStatic+"/images/growlwait.gif' />",autohide:0,opacity:0.6});Notifications.TIMEOUT=new Notifications("error","smoke",{_title:"connection_problem",text:JS_MESSAGES["try_later"],autohide:15});function elementByTagName(root,tagName){return $A(root.childNodes).find(function(item){return tagName==item.tagName});}
function elementByClassName(root,className){return $A(root.childNodes).find(function(item){return className==item.className});}
function createElement(tagName,className){var el=document.createElement(tagName);Element.addClassName(el,className);return el;}
var TermCloud=Class.create();TermCloud.prototype={main_:null,size_:null,spread_:null,ul_:null,less5_:null,more5_:null,updateCloud:function(oCloud){$A(this.ul_.childNodes).each(function(node){this.ul_.removeChild(node);}.bind(this));$A(oCloud.terms).each(function(term){var li=document.createElement("li");Element.addClassName(li,"font"+term.cloudSize);var a=document.createElement("a");a.setAttribute("href","/terms/filter?term="+term.uri);a.setAttribute("title",JS_MESSAGES["TermCloud.clicktoselect"]+" ("+term.size+")");a.appendChild(document.createTextNode(term.label));li.appendChild(a);this.ul_.appendChild(li);this.ul_.appendChild(document.createTextNode(" "));}.bind(this));},updateSize:function(event,diff){if(this.size_+diff>0)
this.size_+=diff;var params={size:this.size_,spread:this.spread_};var thiz=this;var ajax=new Ajax.Request("/widgets/termcloud",{method:"get",parameters:params,onComplete:function(resp){try{if(resp.responseJSON==null)
resp.responseJSON=resp.responseText.evalJSON();}catch(e){resp.responseJSON=(resp.responseText+"}").evalJSON();}
thiz.updateCloud(resp.responseJSON);},onException:function(resp,ex){},onFailure:function(resp){}});},disableSelection:function(event){return false;},initialize:function(id,size,spread){this.main_=$(id);this.size_=size;this.spread_=spread;this.ul_=elementByTagName(this.main_,"UL");var navig=elementByClassName(this.main_,"navigation");if(navig!=null){var right=elementByTagName(navig,"DIV");this.less5_=elementByClassName(right,"less5");this.more5_=elementByClassName(right,"more5");try{this.less5_.onclick=this.updateSize.bindAsEventListener(this,-5);this.less5_.onmousedown=this.disableSelection.bindAsEventListener(this);this.less5_.onselectstart=this.disableSelection.bindAsEventListener(this);}catch(e){}
try{this.more5_.onclick=this.updateSize.bindAsEventListener(this,5);this.more5_.onmousedown=this.disableSelection.bindAsEventListener(this);this.more5_.onselectstart=this.disableSelection.bindAsEventListener(this);}catch(e){}}}}
var RelatedTermCloud=Class.create();RelatedTermCloud.prototype={main_:null,spread_:null,ul_:null,showall_:null,calluri_:null,id_:null,updateCloud:function(oCloud){if(oCloud.terms==null||oCloud.terms.length==0){this.main_.style.display="none";return;}
$A(this.ul_.childNodes).each(function(node){this.ul_.removeChild(node);}.bind(this));$A(oCloud.terms).each(function(term){var li=document.createElement("li");Element.addClassName(li,"font"+term.cloudSize);var a=document.createElement("a");a.setAttribute("href","/terms/filter?term="+term.uri);a.setAttribute("title",JS_MESSAGES["TermCloud.clicktoselect"]+" ("+term.count+")");a.appendChild(document.createTextNode(term.label));li.appendChild(a);this.ul_.appendChild(li);this.ul_.appendChild(document.createTextNode(" "));}.bind(this));if(!oCloud.ismore)
this.showall_.ancestors()[1].style.display="none";},load:function(size_){$(this.id_+"_wait").style.display="block";var params={type:"relatedterms",size:size_,spread:this.spread_};var thiz=this;var ajax=new Ajax.Request(this.calluri_,{method:"get",parameters:params,onComplete:function(resp){$(thiz.id_+"_wait").style.display="none";try{if(resp.responseJSON==null)
resp.responseJSON=resp.responseText.evalJSON();}catch(e){resp.responseJSON=(resp.responseText+"}").evalJSON();}
thiz.updateCloud(resp.responseJSON);},onException:function(resp,ex){},onFailure:function(resp){}});},loadAll:function(event){this.load(null);this.showall_.ancestors()[1].style.display="none";},disableSelection:function(event){return false;},initialize:function(id,spread,calluri){this.id_=id;this.main_=$(id);this.spread_=spread;this.calluri_=calluri;this.ul_=elementByTagName(this.main_,"UL");var navig=elementByClassName(this.main_,"navigation");if(navig!=null){var right=elementByTagName(navig,"DIV");this.showall_=elementByClassName(right,"showall");try{this.showall_.onclick=this.loadAll.bindAsEventListener(this);this.showall_.onmousedown=this.disableSelection.bindAsEventListener(this);this.showall_.onselectstart=this.disableSelection.bindAsEventListener(this);}catch(e){}}}}
var RelatedTaggerCloud=Class.create();RelatedTaggerCloud.sizes=[13,16,19,22,25,29,32];RelatedTaggerCloud.prototype={main_:null,spread_:null,ul_:null,showall_:null,calluri_:null,id_:null,updateCloud:function(oCloud){if(oCloud.taggers==null||oCloud.taggers.length==0){this.main_.style.display="none";return;}
$A(this.ul_.childNodes).each(function(node){this.ul_.removeChild(node);}.bind(this));$A(oCloud.taggers).each(function(tagger){var li=document.createElement("li");Element.addClassName(li,"font"+tagger.cloudSize);var w=RelatedTaggerCloud.sizes[tagger.cloudSize];if(tagger.depiction!=null&&typeof tagger.depiction!="undefined")
li.style.backgroundImage="url(/image?width="+w+"&height="+w+"&url="+tagger.depiction+")";var a=document.createElement("a");a.setAttribute("href",l10n.URLUsers+tagger.uid);a.setAttribute("title",JS_MESSAGES["TaggerCloud.clicktoselect"].gsub(/[$]1/,tagger.related));a.appendChild(document.createTextNode(tagger.name));li.appendChild(a);this.ul_.appendChild(li);this.ul_.appendChild(document.createTextNode(" "));}.bind(this));if(!oCloud.ismore){this.showall_.ancestors()[1].style.display="none";this.fallback.style.display="block";}},load:function(size_){$(this.id_+"_wait").style.display="block";var params={type:"relatedtaggers",size:size_,spread:this.spread_};var thiz=this;var ajax=new Ajax.Request(this.calluri_,{method:"get",parameters:params,onComplete:function(resp){$(thiz.id_+"_wait").style.display="none";try{if(resp.responseJSON==null)
resp.responseJSON=resp.responseText.evalJSON();}catch(e){resp.responseJSON=(resp.responseText+"}").evalJSON();}
thiz.updateCloud(resp.responseJSON);},onException:function(resp,ex){},onFailure:function(resp){}});},loadAll:function(event){this.load(null);this.showall_.ancestors()[1].style.display="none";},disableSelection:function(event){return false;},initialize:function(id,spread,calluri){this.id_=id;this.main_=$(id);this.spread_=spread;this.calluri_=calluri;this.fallback=$("fallback_"+id);this.ul_=elementByTagName(this.main_,"UL");var navig=elementByClassName(this.main_,"navigation");if(navig!=null){var right=elementByTagName(navig,"DIV");this.showall_=elementByClassName(right,"showall");try{this.showall_.onclick=this.loadAll.bindAsEventListener(this);this.showall_.onmousedown=this.disableSelection.bindAsEventListener(this);this.showall_.onselectstart=this.disableSelection.bindAsEventListener(this);}catch(e){}}}}
var ShowCaseEx=Class.create();ShowCaseEx.prototype={mainform:null,showcase:null,componentId:null,controls:null,pages:null,previousPage:null,previousIndex:null,onFinished:function(selectionId){if(selectionId!=null&&typeof selectionId!="undefined"){this.previousPage=this.pages[selectionId];this.previousIndex=selectionId;$(this.previousPage.div).appear();this.pages[this.previousIndex].maina.href="javascript:void(0)";this.pages[selectionId].maina.href=this.pages[selectionId].a.href;}else{this.previousPage=this.pages[0];this.previousIndex=0;this.pages[0].maina.href=this.pages[0].a.href;}},onStart:function(index){if(this.previousPage!=null&&this.previousIndex!=index&&typeof index!="object"&&typeof index!="undefined"){$(this.previousPage.div).fade();this.pages[this.previousIndex].maina.href="javascript:void(0)";this.pages[index].maina.href=this.pages[index].a.href;}else if(!this.showcase.running&&this.previousPage!=null&&(this.previousIndex==index||((typeof index=="object"||typeof index=="undefined")&&this.previousIndex==0))){this.onLoadUrl(this.previousPage);}},onLoadUrl:function(page){Effect.Puff(page.img,{duration:3});page.div.hide();window.setTimeout(function(href){this.mainform.action=page.maina.href;this.mainform.submit();return false;}.bind(this),2500,page);window.setTimeout(function(href){page.img.appear({duration:1})
return false;}.bind(this),3500,page);},initialize:function(componentId,controls,_ratio,_size,mainid_){this.componentId=componentId;this.controls=controls;this.pages=$A();this.mainform=$(mainid_+"_form");var first=true;var onLoadUrl=this.onLoadUrl;$A($$('#'+this.componentId+' li')).each(function(li){var img_=li.firstDescendant();var div_=img_.next(0);var a_=div_.firstDescendant();var maina_=img_.descendants()[1];var page={img:img_,div:div_,a:a_,maina:maina_};if(!first)
$(div_).hide();else{$(div_).appear();first=false;}
this.pages.push(page);}.bind(this));var _onfinish=this.onFinished.bindAsEventListener(this);var _onstart=this.onStart.bindAsEventListener(this);this.showcase=new Showcase.Horizontal($$('#'+this.componentId+' li'),$$(this.controls),{ratio:_ratio,size:_size,onFinish:_onfinish,onStart:_onstart});}}
var Friendship=Class.create();Friendship.onclickfn=$A();Friendship.friendships=new Object();Friendship.sortByLevel=false;Friendship.register=function(fn){Friendship.onclickfn.push(fn);};Friendship.findFriend=function(uid){return Friendship.friendships[uid];}
Friendship.addFriend=function(widgetid,frienduid){var ajax=new Ajax.Request("/friendships/"+frienduid,{method:"get",onComplete:function(resp){if(resp.responseJSON==null)
resp.responseJSON=resp.responseText.evalJSON();var resources=resp.responseJSON["friendships"];Friendship._addFriend(widgetid,resources[0]);},onException:function(resp,ex){YAHOO.log("SEVERE: [Friendship::addFriend] "+ex);},onFailure:function(resp){YAHOO.log("FAILURE: [Friendship::addFriend] "+resp);}});}
Friendship._addFriend=function(widgetid,resource){if(resource!=null&&typeof resource!="undefined"&&resource.name!=null&&typeof resource.name!="undefined"&&resource.uid!=null&&typeof resource.uid!="undefined"){if(resource.level==null||typeof resource.level=="undefined")
resource.level="0.5";new Friendship(resource.name,resource.uid,resource.level,resource.depiction);Friendship.updateWidget(widgetid);}}
Friendship.reloadWidget=function(widgetid,sortbylevel){var params={"sortbylevel":(sortbylevel!=null&&typeof sortbylevel!="undefined")?sortbylevel:false};var ajax=new Ajax.Request("/friendships",{method:"get",parameters:params,onComplete:function(resp){$H(Friendship.friendships).keys().clear();$H(Friendship.friendships).values().clear();if(resp.responseJSON==null)
resp.responseJSON=resp.responseText.evalJSON();Friendship.sortByLevel=resp.responseJSON["sortbylevel"];$A(resp.responseJSON["friendships"]).each(function(friendship){new Friendship(friendship.name,friendship.uid,friendship.level,friendship.depiction);})
Friendship.updateWidget(widgetid);},onException:function(resp,ex){YAHOO.log("SEVERE: [Friendship::addFriend] "+ex);},onFailure:function(resp){YAHOO.log("FAILURE: [Friendship::addFriend] "+resp);}});}
Friendship.updateWidget=function(id){var divf=$(id);var fs=elementByClassName(divf,"friendships");var tableold=elementByTagName(fs,"TABLE");tableold.remove();table=createElement("table","friendships");var i=0;var trimg;var trlabel;$H(Friendship.friendships).keys().each(function(friendid){if(i==0){trimg=createElement("tr","depictions");trlabel=createElement("tr","names");table.appendChild(trimg);table.appendChild(trlabel);}
var friend=Friendship.findFriend(friendid);var td=document.createElement("td");var a=createElement("a","activefriend");Element.addClassName(a,"friend");a.title=JS_MESSAGES["UsersList.friendshipLevel"].gsub("\\{0\\}",friend.level);a.id="friend_"+friendid;a.href="javascript:void(0)";var img=document.createElement("img");img.src=(friend.depiction!=null)?"/image?width=50&height=50&url="+friend.depiction:(l10n.URLStatic+"/images/user.png");img.border="0";img.alt=JS_MESSAGES["UsersList.depictionof"].gsub("\\{0\\}",friend.name);a.appendChild(img);td.appendChild(a);trimg.appendChild(td);var td2=document.createElement("td");var a2=document.createElement("a","activefriend");a2.title=JS_MESSAGES["UsersList.friendshipLevel"].gsub("\\{0\\}",friend.level);a2.id="friendname_"+friendid;a2.href="javascript:void(0)";a2.appendChild(document.createTextNode(friend.name))
td2.appendChild(a2);trlabel.appendChild(td2);friend.ahtml=a;friend.aname=a2;friend.img=img;friend.ahtml.onclick=friend.onclick.bindAsEventListener(friend);friend.aname.onclick=friend.onclick.bindAsEventListener(friend);i=(i+1)%3;});fs.appendChild(table);}
Friendship.prototype={name:null,uid:null,level:null,depiction:null,ahtml:null,aname:null,img:null,onclick:function(event){Friendship.onclickfn.each(function(fn){fn(this.uid,this);}.bind(this));},initialize:function(name,uid,level,depiction){this.name=name;this.uid=uid;this.level=level;this.depiction=(depiction==null||typeof depiction=="undefined")?null:depiction;try{this.ahtml=$('friend_'+uid);this.aname=$('friendname_'+uid);this.img=elementByTagName(this.ahtml,"IMG");this.ahtml.onclick=this.onclick.bindAsEventListener(this);this.aname.onclick=this.onclick.bindAsEventListener(this);}catch(e){this.ahtml=null;this.aname=null;this.img=null;}
Friendship.friendships[uid]=this;}}
var WebShotImage=Class.create();WebShotImage.prototype={image:null,isprocessing:false,url:null,uuid:null,checkImg:function()
{var thiz=this;if(Object.isUndefined(this.uuid)||this.uuid=="undefined")
{if(console)
{console.error("Undefined UUID");}
return;}
new Ajax.Request("/services/webshotchecker/"+thiz.uuid,{method:'get',onComplete:function(transport){thiz.onComplete(transport,200)},on503:function(transport){thiz.onComplete(transport,503)}});},onComplete:function(transport,code)
{var isprocessing="true"==transport.getHeader("X-WebShot-Processing");var age=transport.getHeader("X-WebShot-Age");var finished=!isprocessing&&this.isprocessing&&age<1000;if(isprocessing)
{this.isprocessing=true;window.setTimeout(function()
{this.checkImg();}.bind(this),(code==200)?100:600000);}
else if(finished)
{this.image.src=l10n.URLWebShot+"webshot?_ref=true&url="+urlencode(this.url);this.image.onload=WebShot.processNextWebshot;}},initialize:function(image,url,uuid,isprocessing){this.image=image;if(url!=null&&!Object.isUndefined(url))
{this.url=url;}
else if(this.image.url!=null&&!Object.isUndefined(this.image.url))
{this.url=this.image.url;}
else
{this.url=this.image.src.substr(this.image.src.indexOf("url=")+4);}
if(uuid!=null&&!Object.isUndefined(uuid))
{this.uuid=uuid;}
else if(this.image.uuid!=null&&!Object.isUndefined(this.image.uuid))
{this.uuid=this.image.uuid;}
this.isprocessing=(isprocessing!=null&&!Object.isUndefined(isprocessing))?isprocessing:false;WebShot.register(this);}}
var WebShot=new Object();WebShot.images=null;WebShot.isprocessing=false;WebShot.processNextWebshot=function()
{var img=WebShot.images.pop();if(img!=null)
{try{console.log("WebShot.processing: "+img.url)}catch(e){};img.checkImg();WebShot.isprocessing=true;}
else
{WebShot.isprocessing=false;}};WebShot.register=function(img)
{try{console.log("WebShot.register: "+img.url)}catch(e){};if(WebShot.images!=null)
{WebShot.images.push(img);}
else
{WebShot.register.delay(2,img);}}
WebShot.init=function()
{var imgs=$A($$("img.webshot"));WebShot.images=$A();imgs.each(function(image)
{var img=new WebShotImage(image,null,null);}.bind(this));WebShot.processNextWebshot();};function urlencode(str)
{return escape(str).replace(/\+/g,'%2B').replace(/%20/g,'+').replace(/\*/g,'%2A').replace(/\//g,'%2F').replace(/@/g,'%40');}
if(typeof YAHOO=="undefined"){var YAHOO={};}YAHOO.namespace=function(){var A=arguments,E=null,C,B,D;for(C=0;C<A.length;C=C+1){D=A[C].split(".");E=YAHOO;for(B=(D[0]=="YAHOO")?1:0;B<D.length;B=B+1){E[D[B]]=E[D[B]]||{};E=E[D[B]];}}return E;};YAHOO.log=function(D,A,C){var B=YAHOO.widget.Logger;if(B&&B.log){return B.log(D,A,C);}else{return false;}};YAHOO.register=function(A,E,D){var I=YAHOO.env.modules;if(!I[A]){I[A]={versions:[],builds:[]};}var B=I[A],H=D.version,G=D.build,F=YAHOO.env.listeners;B.name=A;B.version=H;B.build=G;B.versions.push(H);B.builds.push(G);B.mainClass=E;for(var C=0;C<F.length;C=C+1){F[C](B);}if(E){E.VERSION=H;E.BUILD=G;}else{YAHOO.log("mainClass is undefined for module "+A,"warn");}};YAHOO.env=YAHOO.env||{modules:[],listeners:[]};YAHOO.env.getVersion=function(A){return YAHOO.env.modules[A]||null;};YAHOO.env.ua=function(){var C={ie:0,opera:0,gecko:0,webkit:0};var B=navigator.userAgent,A;if((/KHTML/).test(B)){C.webkit=1;}A=B.match(/AppleWebKit\/([^\s]*)/);if(A&&A[1]){C.webkit=parseFloat(A[1]);}if(!C.webkit){A=B.match(/Opera[\s\/]([^\s]*)/);if(A&&A[1]){C.opera=parseFloat(A[1]);}else{A=B.match(/MSIE\s([^;]*)/);if(A&&A[1]){C.ie=parseFloat(A[1]);}else{A=B.match(/Gecko\/([^\s]*)/);if(A){C.gecko=1;A=B.match(/rv:([^\s\)]*)/);if(A&&A[1]){C.gecko=parseFloat(A[1]);}}}}}return C;}();(function(){YAHOO.namespace("util","widget","example");if("undefined"!==typeof YAHOO_config){var B=YAHOO_config.listener,A=YAHOO.env.listeners,D=true,C;if(B){for(C=0;C<A.length;C=C+1){if(A[C]==B){D=false;break;}}if(D){A.push(B);}}}})();YAHOO.lang={isArray:function(B){if(B){var A=YAHOO.lang;return A.isNumber(B.length)&&A.isFunction(B.splice)&&!A.hasOwnProperty(B.length);}return false;},isBoolean:function(A){return typeof A==="boolean";},isFunction:function(A){return typeof A==="function";},isNull:function(A){return A===null;},isNumber:function(A){return typeof A==="number"&&isFinite(A);},isObject:function(A){return(A&&(typeof A==="object"||YAHOO.lang.isFunction(A)))||false;},isString:function(A){return typeof A==="string";},isUndefined:function(A){return typeof A==="undefined";},hasOwnProperty:function(A,B){if(Object.prototype.hasOwnProperty){return A.hasOwnProperty(B);}return!YAHOO.lang.isUndefined(A[B])&&A.constructor.prototype[B]!==A[B];},_IEEnumFix:function(C,B){if(YAHOO.env.ua.ie){var E=["toString","valueOf"],A;for(A=0;A<E.length;A=A+1){var F=E[A],D=B[F];if(YAHOO.lang.isFunction(D)&&D!=Object.prototype[F]){C[F]=D;}}}},extend:function(D,E,C){if(!E||!D){throw new Error("YAHOO.lang.extend failed, please check that all dependencies are included.");}var B=function(){};B.prototype=E.prototype;D.prototype=new B();D.prototype.constructor=D;D.superclass=E.prototype;if(E.prototype.constructor==Object.prototype.constructor){E.prototype.constructor=E;}if(C){for(var A in C){D.prototype[A]=C[A];}YAHOO.lang._IEEnumFix(D.prototype,C);}},augmentObject:function(E,D){if(!D||!E){throw new Error("Absorb failed, verify dependencies.");}var A=arguments,C,F,B=A[2];if(B&&B!==true){for(C=2;C<A.length;C=C+1){E[A[C]]=D[A[C]];}}else{for(F in D){if(B||!E[F]){E[F]=D[F];}}YAHOO.lang._IEEnumFix(E,D);}},augmentProto:function(D,C){if(!C||!D){throw new Error("Augment failed, verify dependencies.");}var A=[D.prototype,C.prototype];for(var B=2;B<arguments.length;B=B+1){A.push(arguments[B]);}YAHOO.lang.augmentObject.apply(this,A);},dump:function(A,G){var C=YAHOO.lang,D,F,I=[],J="{...}",B="f(){...}",H=", ",E=" => ";if(!C.isObject(A)){return A+"";}else{if(A instanceof Date||("nodeType"in A&&"tagName"in A)){return A;}else{if(C.isFunction(A)){return B;}}}G=(C.isNumber(G))?G:3;if(C.isArray(A)){I.push("[");for(D=0,F=A.length;D<F;D=D+1){if(C.isObject(A[D])){I.push((G>0)?C.dump(A[D],G-1):J);}else{I.push(A[D]);}I.push(H);}if(I.length>1){I.pop();}I.push("]");}else{I.push("{");for(D in A){if(C.hasOwnProperty(A,D)){I.push(D+E);if(C.isObject(A[D])){I.push((G>0)?C.dump(A[D],G-1):J);}else{I.push(A[D]);}I.push(H);}}if(I.length>1){I.pop();}I.push("}");}return I.join("");},substitute:function(Q,B,J){var G,F,E,M,N,P,D=YAHOO.lang,L=[],C,H="dump",K=" ",A="{",O="}";for(;;){G=Q.lastIndexOf(A);if(G<0){break;}F=Q.indexOf(O,G);if(G+1>=F){break;}C=Q.substring(G+1,F);M=C;P=null;E=M.indexOf(K);if(E>-1){P=M.substring(E+1);M=M.substring(0,E);}N=B[M];if(J){N=J(M,N,P);}if(D.isObject(N)){if(D.isArray(N)){N=D.dump(N,parseInt(P,10));}else{P=P||"";var I=P.indexOf(H);if(I>-1){P=P.substring(4);}if(N.toString===Object.prototype.toString||I>-1){N=D.dump(N,parseInt(P,10));}else{N=N.toString();}}}else{if(!D.isString(N)&&!D.isNumber(N)){N="~-"+L.length+"-~";L[L.length]=C;}}Q=Q.substring(0,G)+N+Q.substring(F+1);}for(G=L.length-1;G>=0;G=G-1){Q=Q.replace(new RegExp("~-"+G+"-~"),"{"+L[G]+"}","g");}return Q;},trim:function(A){try{return A.replace(/^\s+|\s+$/g,"");}catch(B){return A;}},merge:function(){var C={},A=arguments,B;for(B=0;B<A.length;B=B+1){YAHOO.lang.augmentObject(C,A[B],true);}return C;},isValue:function(B){var A=YAHOO.lang;return(A.isObject(B)||A.isString(B)||A.isNumber(B)||A.isBoolean(B));}};YAHOO.util.Lang=YAHOO.lang;YAHOO.lang.augment=YAHOO.lang.augmentProto;YAHOO.augment=YAHOO.lang.augmentProto;YAHOO.extend=YAHOO.lang.extend;YAHOO.register("yahoo",YAHOO,{version:"2.3.1",build:"541"});YAHOO.util.CustomEvent=function(D,B,C,A){this.type=D;this.scope=B||window;this.silent=C;this.signature=A||YAHOO.util.CustomEvent.LIST;this.subscribers=[];if(!this.silent){}var E="_YUICEOnSubscribe";if(D!==E){this.subscribeEvent=new YAHOO.util.CustomEvent(E,this,true);}this.lastError=null;};YAHOO.util.CustomEvent.LIST=0;YAHOO.util.CustomEvent.FLAT=1;YAHOO.util.CustomEvent.prototype={subscribe:function(B,C,A){if(!B){throw new Error("Invalid callback for subscriber to '"+this.type+"'");}if(this.subscribeEvent){this.subscribeEvent.fire(B,C,A);}this.subscribers.push(new YAHOO.util.Subscriber(B,C,A));},unsubscribe:function(D,F){if(!D){return this.unsubscribeAll();}var E=false;for(var B=0,A=this.subscribers.length;B<A;++B){var C=this.subscribers[B];if(C&&C.contains(D,F)){this._delete(B);E=true;}}return E;},fire:function(){var E=this.subscribers.length;if(!E&&this.silent){return true;}var H=[],G=true,D,I=false;for(D=0;D<arguments.length;++D){H.push(arguments[D]);}var A=H.length;if(!this.silent){}for(D=0;D<E;++D){var L=this.subscribers[D];if(!L){I=true;}else{if(!this.silent){}var K=L.getScope(this.scope);if(this.signature==YAHOO.util.CustomEvent.FLAT){var B=null;if(H.length>0){B=H[0];}try{G=L.fn.call(K,B,L.obj);}catch(F){this.lastError=F;}}else{try{G=L.fn.call(K,this.type,H,L.obj);}catch(F){this.lastError=F;}}if(false===G){if(!this.silent){}return false;}}}if(I){var J=[],C=this.subscribers;for(D=0,E=C.length;D<E;D=D+1){J.push(C[D]);}this.subscribers=J;}return true;},unsubscribeAll:function(){for(var B=0,A=this.subscribers.length;B<A;++B){this._delete(A-1-B);}this.subscribers=[];return B;},_delete:function(A){var B=this.subscribers[A];if(B){delete B.fn;delete B.obj;}this.subscribers[A]=null;},toString:function(){return"CustomEvent: '"+this.type+"', scope: "+this.scope;}};YAHOO.util.Subscriber=function(B,C,A){this.fn=B;this.obj=YAHOO.lang.isUndefined(C)?null:C;this.override=A;};YAHOO.util.Subscriber.prototype.getScope=function(A){if(this.override){if(this.override===true){return this.obj;}else{return this.override;}}return A;};YAHOO.util.Subscriber.prototype.contains=function(A,B){if(B){return(this.fn==A&&this.obj==B);}else{return(this.fn==A);}};YAHOO.util.Subscriber.prototype.toString=function(){return"Subscriber { obj: "+this.obj+", override: "+(this.override||"no")+" }";};if(!YAHOO.util.Event){YAHOO.util.Event=function(){var H=false;var J=false;var I=[];var K=[];var G=[];var E=[];var C=0;var F=[];var B=[];var A=0;var D={63232:38,63233:40,63234:37,63235:39};return{POLL_RETRYS:4000,POLL_INTERVAL:10,EL:0,TYPE:1,FN:2,WFN:3,UNLOAD_OBJ:3,ADJ_SCOPE:4,OBJ:5,OVERRIDE:6,lastError:null,isSafari:YAHOO.env.ua.webkit,webkit:YAHOO.env.ua.webkit,isIE:YAHOO.env.ua.ie,_interval:null,startInterval:function(){if(!this._interval){var L=this;var M=function(){L._tryPreloadAttach();};this._interval=setInterval(M,this.POLL_INTERVAL);}},onAvailable:function(N,L,O,M){F.push({id:N,fn:L,obj:O,override:M,checkReady:false});C=this.POLL_RETRYS;this.startInterval();},onDOMReady:function(L,N,M){if(J){setTimeout(function(){var O=window;if(M){if(M===true){O=N;}else{O=M;}}L.call(O,"DOMReady",[],N);},0);}else{this.DOMReadyEvent.subscribe(L,N,M);}},onContentReady:function(N,L,O,M){F.push({id:N,fn:L,obj:O,override:M,checkReady:true});C=this.POLL_RETRYS;this.startInterval();},addListener:function(N,L,W,R,M){if(!W||!W.call){return false;}if(this._isValidCollection(N)){var X=true;for(var S=0,U=N.length;S<U;++S){X=this.on(N[S],L,W,R,M)&&X;}return X;}else{if(YAHOO.lang.isString(N)){var Q=this.getEl(N);if(Q){N=Q;}else{this.onAvailable(N,function(){YAHOO.util.Event.on(N,L,W,R,M);});return true;}}}if(!N){return false;}if("unload"==L&&R!==this){K[K.length]=[N,L,W,R,M];return true;}var Z=N;if(M){if(M===true){Z=R;}else{Z=M;}}var O=function(a){return W.call(Z,YAHOO.util.Event.getEvent(a,N),R);};var Y=[N,L,W,O,Z,R,M];var T=I.length;I[T]=Y;if(this.useLegacyEvent(N,L)){var P=this.getLegacyIndex(N,L);if(P==-1||N!=G[P][0]){P=G.length;B[N.id+L]=P;G[P]=[N,L,N["on"+L]];E[P]=[];N["on"+L]=function(a){YAHOO.util.Event.fireLegacyEvent(YAHOO.util.Event.getEvent(a),P);};}E[P].push(Y);}else{try{this._simpleAdd(N,L,O,false);}catch(V){this.lastError=V;this.removeListener(N,L,W);return false;}}return true;},fireLegacyEvent:function(P,N){var R=true,L,T,S,U,Q;T=E[N];for(var M=0,O=T.length;M<O;++M){S=T[M];if(S&&S[this.WFN]){U=S[this.ADJ_SCOPE];Q=S[this.WFN].call(U,P);R=(R&&Q);}}L=G[N];if(L&&L[2]){L[2](P);}return R;},getLegacyIndex:function(M,N){var L=this.generateId(M)+N;if(typeof B[L]=="undefined"){return-1;}else{return B[L];}},useLegacyEvent:function(M,N){if(this.webkit&&("click"==N||"dblclick"==N)){var L=parseInt(this.webkit,10);if(!isNaN(L)&&L<418){return true;}}return false;},removeListener:function(M,L,U){var P,S,W;if(typeof M=="string"){M=this.getEl(M);}else{if(this._isValidCollection(M)){var V=true;for(P=0,S=M.length;P<S;++P){V=(this.removeListener(M[P],L,U)&&V);}return V;}}if(!U||!U.call){return this.purgeElement(M,false,L);}if("unload"==L){for(P=0,S=K.length;P<S;P++){W=K[P];if(W&&W[0]==M&&W[1]==L&&W[2]==U){K[P]=null;return true;}}return false;}var Q=null;var R=arguments[3];if("undefined"===typeof R){R=this._getCacheIndex(M,L,U);}if(R>=0){Q=I[R];}if(!M||!Q){return false;}if(this.useLegacyEvent(M,L)){var O=this.getLegacyIndex(M,L);var N=E[O];if(N){for(P=0,S=N.length;P<S;++P){W=N[P];if(W&&W[this.EL]==M&&W[this.TYPE]==L&&W[this.FN]==U){N[P]=null;break;}}}}else{try{this._simpleRemove(M,L,Q[this.WFN],false);}catch(T){this.lastError=T;return false;}}delete I[R][this.WFN];delete I[R][this.FN];I[R]=null;return true;},getTarget:function(N,M){var L=N.target||N.srcElement;return this.resolveTextNode(L);},resolveTextNode:function(L){if(L&&3==L.nodeType){return L.parentNode;}else{return L;}},getPageX:function(M){var L=M.pageX;if(!L&&0!==L){L=M.clientX||0;if(this.isIE){L+=this._getScrollLeft();}}return L;},getPageY:function(L){var M=L.pageY;if(!M&&0!==M){M=L.clientY||0;if(this.isIE){M+=this._getScrollTop();}}return M;},getXY:function(L){return[this.getPageX(L),this.getPageY(L)];},getRelatedTarget:function(M){var L=M.relatedTarget;if(!L){if(M.type=="mouseout"){L=M.toElement;}else{if(M.type=="mouseover"){L=M.fromElement;}}}return this.resolveTextNode(L);},getTime:function(N){if(!N.time){var M=new Date().getTime();try{N.time=M;}catch(L){this.lastError=L;return M;}}return N.time;},stopEvent:function(L){this.stopPropagation(L);this.preventDefault(L);},stopPropagation:function(L){if(L.stopPropagation){L.stopPropagation();}else{L.cancelBubble=true;}},preventDefault:function(L){if(L.preventDefault){L.preventDefault();}else{L.returnValue=false;}},getEvent:function(Q,O){var P=Q||window.event;if(!P){var R=this.getEvent.caller;while(R){P=R.arguments[0];if(P&&Event==P.constructor){break;}R=R.caller;}}if(P&&this.isIE){try{var N=P.srcElement;if(N){var M=N.type;}}catch(L){P.target=O;}}return P;},getCharCode:function(M){var L=M.keyCode||M.charCode||0;if(YAHOO.env.ua.webkit&&(L in D)){L=D[L];}return L;},_getCacheIndex:function(P,Q,O){for(var N=0,M=I.length;N<M;++N){var L=I[N];if(L&&L[this.FN]==O&&L[this.EL]==P&&L[this.TYPE]==Q){return N;}}return-1;},generateId:function(L){var M=L.id;if(!M){M="yuievtautoid-"+A;++A;L.id=M;}return M;},_isValidCollection:function(M){try{return(typeof M!=="string"&&M.length&&!M.tagName&&!M.alert&&typeof M[0]!=="undefined");}catch(L){return false;}},elCache:{},getEl:function(L){return(typeof L==="string")?document.getElementById(L):L;},clearCache:function(){},DOMReadyEvent:new YAHOO.util.CustomEvent("DOMReady",this),_load:function(M){if(!H){H=true;var L=YAHOO.util.Event;L._ready();L._tryPreloadAttach();}},_ready:function(M){if(!J){J=true;var L=YAHOO.util.Event;L.DOMReadyEvent.fire();L._simpleRemove(document,"DOMContentLoaded",L._ready);}},_tryPreloadAttach:function(){if(this.locked){return false;}if(this.isIE){if(!J){this.startInterval();return false;}}this.locked=true;var Q=!H;if(!Q){Q=(C>0);}var P=[];var R=function(T,U){var S=T;if(U.override){if(U.override===true){S=U.obj;}else{S=U.override;}}U.fn.call(S,U.obj);};var M,L,O,N;for(M=0,L=F.length;M<L;++M){O=F[M];if(O&&!O.checkReady){N=this.getEl(O.id);if(N){R(N,O);F[M]=null;}else{P.push(O);}}}for(M=0,L=F.length;M<L;++M){O=F[M];if(O&&O.checkReady){N=this.getEl(O.id);if(N){if(H||N.nextSibling){R(N,O);F[M]=null;}}else{P.push(O);}}}C=(P.length===0)?0:C-1;if(Q){this.startInterval();}else{clearInterval(this._interval);this._interval=null;}this.locked=false;return true;},purgeElement:function(O,P,R){var Q=this.getListeners(O,R),N,L;if(Q){for(N=0,L=Q.length;N<L;++N){var M=Q[N];this.removeListener(O,M.type,M.fn,M.index);}}if(P&&O&&O.childNodes){for(N=0,L=O.childNodes.length;N<L;++N){this.purgeElement(O.childNodes[N],P,R);}}},getListeners:function(N,L){var Q=[],M;if(!L){M=[I,K];}else{if(L=="unload"){M=[K];}else{M=[I];}}for(var P=0;P<M.length;P=P+1){var T=M[P];if(T&&T.length>0){for(var R=0,S=T.length;R<S;++R){var O=T[R];if(O&&O[this.EL]===N&&(!L||L===O[this.TYPE])){Q.push({type:O[this.TYPE],fn:O[this.FN],obj:O[this.OBJ],adjust:O[this.OVERRIDE],scope:O[this.ADJ_SCOPE],index:R});}}}}return(Q.length)?Q:null;},_unload:function(S){var R=YAHOO.util.Event,P,O,M,L,N;for(P=0,L=K.length;P<L;++P){M=K[P];if(M){var Q=window;if(M[R.ADJ_SCOPE]){if(M[R.ADJ_SCOPE]===true){Q=M[R.UNLOAD_OBJ];}else{Q=M[R.ADJ_SCOPE];}}M[R.FN].call(Q,R.getEvent(S,M[R.EL]),M[R.UNLOAD_OBJ]);K[P]=null;M=null;Q=null;}}K=null;if(I&&I.length>0){O=I.length;while(O){N=O-1;M=I[N];if(M){R.removeListener(M[R.EL],M[R.TYPE],M[R.FN],N);}O=O-1;}M=null;R.clearCache();}for(P=0,L=G.length;P<L;++P){G[P][0]=null;G[P]=null;}G=null;R._simpleRemove(window,"unload",R._unload);},_getScrollLeft:function(){return this._getScroll()[1];},_getScrollTop:function(){return this._getScroll()[0];},_getScroll:function(){var L=document.documentElement,M=document.body;if(L&&(L.scrollTop||L.scrollLeft)){return[L.scrollTop,L.scrollLeft];}else{if(M){return[M.scrollTop,M.scrollLeft];}else{return[0,0];}}},regCE:function(){},_simpleAdd:function(){if(window.addEventListener){return function(N,O,M,L){N.addEventListener(O,M,(L));};}else{if(window.attachEvent){return function(N,O,M,L){N.attachEvent("on"+O,M);};}else{return function(){};}}}(),_simpleRemove:function(){if(window.removeEventListener){return function(N,O,M,L){N.removeEventListener(O,M,(L));};}else{if(window.detachEvent){return function(M,N,L){M.detachEvent("on"+N,L);};}else{return function(){};}}}()};}();(function(){var D=YAHOO.util.Event;D.on=D.addListener;if(D.isIE){YAHOO.util.Event.onDOMReady(YAHOO.util.Event._tryPreloadAttach,YAHOO.util.Event,true);var B,E=document,A=E.body;if(("undefined"!==typeof YAHOO_config)&&YAHOO_config.injecting){B=document.createElement("script");var C=E.getElementsByTagName("head")[0]||A;C.insertBefore(B,C.firstChild);}else{E.write("<script id=\"_yui_eu_dr\" defer=\"true\" src=\"//:\"></script>");B=document.getElementById("_yui_eu_dr");}if(B){B.onreadystatechange=function(){if("complete"===this.readyState){this.parentNode.removeChild(this);YAHOO.util.Event._ready();}};}else{}B=null;}else{if(D.webkit){D._drwatch=setInterval(function(){var F=document.readyState;if("loaded"==F||"complete"==F){clearInterval(D._drwatch);D._drwatch=null;D._ready();}},D.POLL_INTERVAL);}else{D._simpleAdd(document,"DOMContentLoaded",D._ready);}}D._simpleAdd(window,"load",D._load);D._simpleAdd(window,"unload",D._unload);D._tryPreloadAttach();})();}YAHOO.util.EventProvider=function(){};YAHOO.util.EventProvider.prototype={__yui_events:null,__yui_subscribers:null,subscribe:function(A,C,F,E){this.__yui_events=this.__yui_events||{};var D=this.__yui_events[A];if(D){D.subscribe(C,F,E);}else{this.__yui_subscribers=this.__yui_subscribers||{};var B=this.__yui_subscribers;if(!B[A]){B[A]=[];}B[A].push({fn:C,obj:F,override:E});}},unsubscribe:function(C,E,G){this.__yui_events=this.__yui_events||{};var A=this.__yui_events;if(C){var F=A[C];if(F){return F.unsubscribe(E,G);}}else{var B=true;for(var D in A){if(YAHOO.lang.hasOwnProperty(A,D)){B=B&&A[D].unsubscribe(E,G);}}return B;}return false;},unsubscribeAll:function(A){return this.unsubscribe(A);},createEvent:function(G,D){this.__yui_events=this.__yui_events||{};var A=D||{};var I=this.__yui_events;if(I[G]){}else{var H=A.scope||this;var E=(A.silent);var B=new YAHOO.util.CustomEvent(G,H,E,YAHOO.util.CustomEvent.FLAT);I[G]=B;if(A.onSubscribeCallback){B.subscribeEvent.subscribe(A.onSubscribeCallback);}this.__yui_subscribers=this.__yui_subscribers||{};var F=this.__yui_subscribers[G];if(F){for(var C=0;C<F.length;++C){B.subscribe(F[C].fn,F[C].obj,F[C].override);}}}return I[G];},fireEvent:function(E,D,A,C){this.__yui_events=this.__yui_events||{};var G=this.__yui_events[E];if(!G){return null;}var B=[];for(var F=1;F<arguments.length;++F){B.push(arguments[F]);}return G.fire.apply(G,B);},hasEvent:function(A){if(this.__yui_events){if(this.__yui_events[A]){return true;}}return false;}};YAHOO.util.KeyListener=function(A,F,B,C){if(!A){}else{if(!F){}else{if(!B){}}}if(!C){C=YAHOO.util.KeyListener.KEYDOWN;}var D=new YAHOO.util.CustomEvent("keyPressed");this.enabledEvent=new YAHOO.util.CustomEvent("enabled");this.disabledEvent=new YAHOO.util.CustomEvent("disabled");if(typeof A=="string"){A=document.getElementById(A);}if(typeof B=="function"){D.subscribe(B);}else{D.subscribe(B.fn,B.scope,B.correctScope);}function E(K,J){if(!F.shift){F.shift=false;}if(!F.alt){F.alt=false;}if(!F.ctrl){F.ctrl=false;}if(K.shiftKey==F.shift&&K.altKey==F.alt&&K.ctrlKey==F.ctrl){var H;var G;if(F.keys instanceof Array){for(var I=0;I<F.keys.length;I++){H=F.keys[I];if(H==K.charCode){D.fire(K.charCode,K);break;}else{if(H==K.keyCode){D.fire(K.keyCode,K);break;}}}}else{H=F.keys;if(H==K.charCode){D.fire(K.charCode,K);}else{if(H==K.keyCode){D.fire(K.keyCode,K);}}}}}this.enable=function(){if(!this.enabled){YAHOO.util.Event.addListener(A,C,E);this.enabledEvent.fire(F);}this.enabled=true;};this.disable=function(){if(this.enabled){YAHOO.util.Event.removeListener(A,C,E);this.disabledEvent.fire(F);}this.enabled=false;};this.toString=function(){return"KeyListener ["+F.keys+"] "+A.tagName+(A.id?"["+A.id+"]":"");};};YAHOO.util.KeyListener.KEYDOWN="keydown";YAHOO.util.KeyListener.KEYUP="keyup";YAHOO.register("event",YAHOO.util.Event,{version:"2.3.1",build:"541"});Object.extend(String.prototype,{ensureEndsWith:function(str){return this.endsWith(str)?this:this+str;},px:function(){return this.ensureEndsWith('px');}});Object.extend(Number.prototype,{px:function(){return this.toString().px();}});var Window={size:function(){var width=window.innerWidth||(window.document.documentElement.clientWidth||window.document.body.clientWidth);var height=window.innerHeight||(window.document.documentElement.clientHeight||window.document.body.clientHeight);var x=window.pageXOffset||(window.document.documentElement.scrollLeft||window.document.body.scrollLeft);var y=window.pageYOffset||(window.document.documentElement.scrollTop||window.document.body.scrollTop);return{'width':width,'height':height,'x':x,'y':y}}}
var FancyZoomBox={directory:l10n.URLStatic+'/images',zooming:false,setup:false,init:function(directory){if(FancyZoomBox.setup)return;FancyZoomBox.setup=true;var ie=navigator.userAgent.match(/MSIE\s(\d)+/);if(ie){var version=parseInt(ie[1]);Prototype.Browser['IE'+version.toString()]=true;Prototype.Browser.ltIE7=(version<7)?true:false;}
var html='<div id="zoom" style="display:none; z-index: 10001; "> \
                  <table id="zoom_table" style="border-collapse:collapse; width:100%; height:100%;"> \
                    <tbody> \
                      <tr> \
                        <td class="tl" style="background:url('+FancyZoomBox.directory+'/tl.png) 0 0 no-repeat; width:20px; height:20px; overflow:hidden;" /> \
                        <td class="tm" style="background:url('+FancyZoomBox.directory+'/tm.png) 0 0 repeat-x; height:20px; overflow:hidden;" /> \
                        <td class="tr" style="background:url('+FancyZoomBox.directory+'/tr.png) 100% 0 no-repeat; width:20px; height:20px; overflow:hidden;" /> \
                      </tr> \
                      <tr> \
                        <td class="ml" style="background:url('+FancyZoomBox.directory+'/ml.png) 0 0 repeat-y; width:20px; overflow:hidden;" /> \
                        <td class="mm" style="background:#fff; vertical-align:top; padding:10px;"> \
                          <div id="zoom_content"> \
                          </div> \
                        </td> \
                        <td class="mr" style="background:url('+FancyZoomBox.directory+'/mr.png) 100% 0 repeat-y;  width:20px; overflow:hidden;" /> \
                      </tr> \
                      <tr> \
                        <td class="bl" style="background:url('+FancyZoomBox.directory+'/bl.png) 0 100% no-repeat; width:20px; height:20px; overflow:hidden;" /> \
                        <td class="bm" style="background:url('+FancyZoomBox.directory+'/bm.png) 0 100% repeat-x; height:20px; overflow:hidden;" /> \
                        <td class="br" style="background:url('+FancyZoomBox.directory+'/br.png) 100% 100% no-repeat; width:20px; height:20px; overflow:hidden;" /> \
                      </tr> \
                    </tbody> \
                  </table> \
                  <a href="#" title="Close" id="zoom_close" style="position:absolute; top:0; left:0;"> \
                    <img src="'+FancyZoomBox.directory+'/closebox.png" alt="'+JS_MESSAGES["FancyZoom.close"]+'" style="border:none; margin:0; padding:0;" /> \
                  </a> \
                </div>';var body=$$('body').first();body.insert(html);FancyZoomBox.zoom=$('zoom');FancyZoomBox.zoom_table=$('zoom_table');FancyZoomBox.zoom_close=$('zoom_close');FancyZoomBox.zoom_content=$('zoom_content');FancyZoomBox.zoom_close.observe('click',FancyZoomBox.hide);FancyZoomBox.middle_row=$A([$$('td.ml'),$$('td.mm'),$$('td.mr')]).flatten();FancyZoomBox.cells=FancyZoomBox.zoom_table.select('td');$$('html').first().observe('click',function(e){var click_in_zoom=e.findElement('#zoom'),zoom_display=FancyZoomBox.zoom.getStyle('display');if(zoom_display=='block'&&!click_in_zoom){FancyZoomBox.hide(e);}});$(document).observe('keyup',function(e){var zoom_display=FancyZoomBox.zoom.getStyle('display');if(e.keyCode==Event.KEY_ESC&&zoom_display=='block'){FancyZoomBox.hide(e);}});if(Prototype.Browser.ltIE7){FancyZoomBox.switchBackgroundImagesTo('gif');}},show:function(e){e.stop();if(FancyZoomBox.zooming)return;FancyZoomBox.zooming=true;var element=e.findElement('a');var related_div=element.content_div;var width=(element.zoom_width||related_div.getWidth())+60;var height=(element.zoom_height||related_div.getHeight())+60;var d=Window.size();var yOffset=0;var newTop=Math.max((d.height/2)-(height/2)+yOffset,0);var newLeft=(d.width/2)-(width/2);FancyZoomBox.curTop=e.pointerY();FancyZoomBox.curLeft=e.pointerX();FancyZoomBox.moveX=-(FancyZoomBox.curLeft-newLeft);FancyZoomBox.moveY=-(FancyZoomBox.curTop-newTop);FancyZoomBox.zoom.hide().setStyle({position:'fixed',top:FancyZoomBox.curTop.px(),left:FancyZoomBox.curLeft.px()});new Effect.Parallel([new Effect.Appear(FancyZoomBox.zoom,{sync:true}),new Effect.Move(FancyZoomBox.zoom,{x:FancyZoomBox.moveX,y:FancyZoomBox.moveY,sync:true}),new Effect.Morph(FancyZoomBox.zoom,{style:{width:width.px(),height:height.px()},sync:true,beforeStart:function(effect){if(Prototype.Browser.IE){FancyZoomBox.middle_row.invoke('setStyle',{height:(height-40).px()});}
FancyZoomBox.fixBackgroundsForIE();},afterFinish:function(effect){FancyZoomBox.zoom_content.innerHTML=related_div.innerHTML;FancyZoomBox.unfixBackgroundsForIE();FancyZoomBox.zoom_close.show();FancyZoomBox.zooming=false;}})],{duration:0.5});},hide:function(e){e.stop();if(FancyZoomBox.zooming)return;FancyZoomBox.zooming=true;new Effect.Parallel([new Effect.Move(FancyZoomBox.zoom,{x:FancyZoomBox.moveX*-1,y:FancyZoomBox.moveY*-1,sync:true}),new Effect.Morph(FancyZoomBox.zoom,{style:{width:'1'.px(),height:'1'.px()},sync:true,beforeStart:function(effect){FancyZoomBox.fixBackgroundsForIE();FancyZoomBox.zoom_content.innerHTML='';FancyZoomBox.zoom_close.hide();},afterFinish:function(effect){FancyZoomBox.unfixBackgroundsForIE();FancyZoomBox.zooming=false;}}),new Effect.Fade(FancyZoomBox.zoom,{sync:true})],{duration:0.5});},switchBackgroundImagesTo:function(to){FancyZoomBox.cells.each(function(td){var bg=td.getStyle('background-image').gsub(/\.(png|gif|none)\)$/,'.'+to+')');td.setStyle('background-image: '+bg);});var close_img=FancyZoomBox.zoom_close.firstDescendant();var new_img=close_img.readAttribute('src').gsub(/\.(png|gif|none)$/,'.'+to);close_img.writeAttribute('src',new_img);},fixBackgroundsForIE:function(){if(Prototype.Browser.IE7){FancyZoomBox.switchBackgroundImagesTo('gif');}},unfixBackgroundsForIE:function(){if(Prototype.Browser.IE7){FancyZoomBox.switchBackgroundImagesTo('png');}}}
var FancyZoom=Class.create({initialize:function(element){this.options=arguments.length>1?arguments[1]:{};FancyZoomBox.init();this.element=$(element);if(this.element){this.element.content_div=$(this.element.readAttribute('href').gsub(/^#/,''));this.element.content_div.hide();this.element.zoom_width=this.options.width;this.element.zoom_height=this.options.height;this.element.observe('click',FancyZoomBox.show);}}});var Feedback=Class.create();Feedback.prototype={initialize:function(){new FancyZoom($("feedbacka"));$("feedbackbtn").style.top=$("feedbackbtn").getStyle("top");$("feedbackbtn").onmouseover=function(event){if(Prototype.Browser.IE){$("feedbackbtn").style.left="-5px";}else{new Effect.Move($("feedbackbtn"),{x:-5,y:$("feedbackbtn").style.top,mode:'absolute',duration:0.5});}};$("feedbackbtn").onmouseout=function(event){if(Prototype.Browser.IE){$("feedbackbtn").style.left="-15px";}else{new Effect.Move($("feedbackbtn"),{x:-10,y:$("feedbackbtn").style.top,mode:'absolute',duration:1});}};$$("a.dynemail").each(function(el){var aemail=el.id.split("_");el.innerHTML=aemail[1]+"@"+aemail[2];el.href="mailto:"+aemail[1]+"@"+aemail[2];});}}
var feedback=null;var loadFeedback=function(){feedback=new Feedback();}
registerOnLoad(loadFeedback);window.tooltips=[];TooltipFactory=Class.create();TooltipFactory.prototype={initialize:function(selector,options){this.selector=selector;this.elements=[];this.tooltips=[];this.options=options||{};},areSupported:function(){return(document.getElementById!=null);},activate:function(elements,options){this.elements=document.getElementsBySelector(this.selector);Object.extend(this.options,options||{});for(var i=0;i<this.elements.length;i++){var tooltip=new Tooltip(this.elements[i],this);if(tooltip){this.tooltips.push(tooltip);}}},activateOnLoad:function(options){if(this.areSupported()){Object.extend(this.options,options||{});Event.observe(window,"load",this.activate.bind(this));}}}
Tooltip=Class.create();Tooltip.prototype={lazyLoad:false,initialize:function(trigger,options,_lazyload){this.trigger=trigger;if(options instanceof TooltipFactory){this.factory=options;options=options.options;}
this.setOptions(options);if(this.options.getPopUp){this.popUp=this.options.getPopUp.bind(this)(event);}else if(!this.popUp&&this.options.popUp){this.popUp=$(this.options.popUp);}else if(this.trigger.href&&this.trigger.href.indexOf("#")!=-1){this.popUp=$(this.trigger.href.split("#").pop());}
if(!this.popUp&&this.trigger.id)this.popUp=$(this.trigger.id+"PopUp");if(!this.popUp&&this.trigger.title){this.popUp=document.createElement("div");document.body.appendChild(this.popUp);this.popUp.className=this.options.popUpClassName;this.popUp.innerHTML=this.trigger.title;this.trigger.removeAttribute("title");}
if(!this.popUp)return;if(!Object.isUndefined(_lazyload))
{this.lazyLoad=_lazyload;}
this.addCloseButton();window.tooltips.push(this);this.runningEffect=null;if(this.options.openingEvent==this.options.closingEvent){Event.observe(this.trigger,this.options.openingEvent||'click',this.toggle.bind(this));}else{Event.observe(this.trigger,this.options.openingEvent||'mouseover',this.open.bind(this));Event.observe(this.trigger,this.options.closingEvent||'mouseout',this.close.bind(this));}
if(this.options.onInitialize)this.options.onInitialize.bind(this)();},addCloseButton:function(){var img=document.createElement("img");Element.addClassName(img,"closebut");img.onmouseup=this.close.bindAsEventListener(this);img.src=l10n.URLStatic+"/images/closebox.png";img.width=16;this.popUp.appendChild(img);},setOptions:function(options){this.options={queue:{position:"end",scope:"tooltip"+window.tooltips.length,limit:1}};Object.extend(this.options,Tooltips.options);Object.extend(this.options,options||{});if(this.setInitialPosition)this.setInitialPosition=this.options.setInitialPosition.bind(this);if(this.getPosition)this.getPosition=this.options.getPosition.bind(this);if(window.opera&&this.options.effect.toLowerCase()=="appear"){this.options.duration=0;}},open:function(event)
{var duration=this.options.duration;if(this.runningEffect){var queue=Effect.Queues.get(this.options.queue.scope);duration=Math.min(new Date().getTime()-this.runningEffect.startOn,duration);queue.remove(this.runningEffect);}
if(this.options.setPosition)this.options.setPosition.bind(this)(event);this.runningEffect=Effect[Effect.PAIRS[this.options.effect][0]](this.popUp,Object.extend(Object.extend(Object.extend({},this.options),{duration:duration}),this.options.open||{}));if(this.options.onOpen)
{if(!Object.isUndefined(this.lazyLoad)&&this.lazyLoad&&!this.lazyLoad.isloaded&&!this.lazyLoad.isloading)
{var tooltipwait=new Image();tooltipwait.src=l10n.URLStatic+"/images/tooltipwait.gif";Element.addClassName(tooltipwait,"tooltipwait");this.popUp.insert({"top":tooltipwait});this.lazyLoad.contentLoad(this.options.onOpen.bind(this,event));}
else
{this.options.onOpen.bind(this)(event);}}},close:function(event){var duration=this.options.duration;if(this.runningEffect){var queue=Effect.Queues.get(this.options.queue.scope);duration=Math.min(new Date().getTime()-this.runningEffect.startOn,duration);queue.remove(this.runningEffect);}
this.runningEffect=Effect[Effect.PAIRS[this.options.effect][1]](this.popUp,Object.extend(Object.extend(Object.extend({},this.options),{duration:duration}),this.options.close||{}));if(this.options.onClose)this.options.onClose.bind(this)(event);},toggle:function(event){Element.visible(this.popUp)?this.close(event):this.open(event);}};Tooltips=new TooltipFactory(".tooltipTrigger",{popUpClassName:"tooltip",offsetLeft:20,offsetTop:10,effect:"appear",duration:0.7,openingEvent:"mouseover",closingEvent:"mouseout",onInitialize:function(){this.popUp.style.position="absolute";this.popUp.style.left="0";this.popUp.style.top="0";Element.hide(this.popUp);},onOpen:function(event){var x=Event.pointerX(event)+this.options.offsetLeft;var triggerY=Position.cumulativeOffset(this.trigger)[1];var y=triggerY+this.trigger.offsetHeight+this.options.offsetTop;Position.prepare();var popUp=Element.getDimensions(this.popUp);if(x+popUp.width+this.options.offsetLeft>(Position.deltaX+document.viewport.getWidth()))
x=Math.max(this.options.offsetLeft,((Position.deltaX+document.viewport.getWidth())-popUp.width-this.options.offsetLeft));if(y+popUp.height+this.options.offsetTop>(Position.deltaY+document.viewport.getHeight())){y=triggerY-popUp.height-this.options.offsetTop;}
this.popUp.style.left=x+"px";this.popUp.style.top=y+"px";console.debug("showing: "+this);}});ActionHints=new TooltipFactory(".actionHintTrigger",{popUpClassName:"tooltip",offsetLeft:20,offsetTop:40,effect:"appear",openingEvent:"click",closingEvent:"click",open:{duration:0.5},close:{delay:0.0,duration:0.5},onInitialize:function(){this.popUp.style.position="absolute";this.popUp.style.left="0";this.popUp.style.top="0";Element.hide(this.popUp);},onOpen:function(event){var triggerPos=Position.cumulativeOffset(this.trigger);var x=triggerPos[0]+this.options.offsetLeft;var y=triggerPos[1]-this.options.offsetTop-this.trigger.offsetHeight;Position.prepare();var popUp=Element.getDimensions(this.popUp);if(x+popUp.width+this.options.offsetLeft>(Position.deltaX+Position.visibleWidth))
x=Math.max(this.options.offsetLeft,((Position.deltaX+Position.visibleWidth)-popUp.width-this.options.offsetLeft));this.popUp.style.left=x+"px";this.popUp.style.top=y+"px";}});StickyTooltips=new TooltipFactory(".actionHintTrigger",{popUpClassName:"tooltip",offsetLeft:20,offsetTop:20,effect:"appear",openingEvent:"mouseover",closingEvent:"click",open:{duration:0.5},close:{delay:0.0,duration:0.5},onInitialize:function(){this.popUp.style.position="absolute";this.popUp.style.left="0";this.popUp.style.top="0";Element.hide(this.popUp);},onOpen:function(event){var triggerPos=Position.cumulativeOffset(this.trigger);var x=triggerPos[0]+this.options.offsetLeft;var y=triggerPos[1]-this.options.offsetTop-this.trigger.offsetHeight;Position.prepare();var popUp=Element.getDimensions(this.popUp);if(x+popUp.width+this.options.offsetLeft>(Position.deltaX+Position.visibleWidth))
x=Math.max(this.options.offsetLeft,((Position.deltaX+Position.visibleWidth)-popUp.width-this.options.offsetLeft));this.popUp.style.left=x+"px";this.popUp.style.top=y+"px";}});SectionTriggers=new TooltipFactory(".sectionTrigger",{effect:"appear",openingEvent:"click",closingEvent:"click",text:{show:"show",hide:"hide"},duration:1.0,onInitialize:function(){},onOpen:function(event){this.trigger.innerHTML=this.trigger.getAttribute("hide")||this.options.text.hide;Event.stop(event);},onClose:function(event){this.trigger.innerHTML=this.trigger.getAttribute("show")||this.options.text.show;Event.stop(event);}});var TooltipLazyLoader=Class.create();TooltipLazyLoader.prototype={isloaded:false,isloading:false,_onContentLoad:null,onContentLoaded:null,tooltipContent:null,contentLoad:function(_onContentLoaded)
{this.isloading=true;if(_onContentLoaded!=null&&!Object.isUndefined(_onContentLoaded))
{this.onContentLoaded=_onContentLoaded;}
if(this._onContentLoad!=null&&!Object.isUndefined(this._onContentLoad))
{this._onContentLoad();}
else
this.contentLoaded();},contentLoaded:function()
{this.isloading=false;this.isloaded=true;if(this.onContentLoaded!=null&&!Object.isUndefined(this.onContentLoaded))
{this.onContentLoaded();}},initialize:function(_content)
{this.tooltipContent=_content;}};var loadSearch=function(){if($("searchAdvancedShow")!=null)
$("searchAdvancedShow").onmouseup=function(event){$("resulttypes").style.display=($("resulttypes").style.display=="none"||$("resulttypes").style.display=="")?"block":"none";};};registerOnLoad(loadSearch);var ShadowyWindow=Class.create();ShadowyWindow.prototype={windowDiv_:null,shadowWindowDiv_:null,backgroundDiv_:null,hide:function()
{if(this.backgroundDiv_)
{this.backgroundDiv_.fade({duration:0.5});}
Effect.multiple([this.shadowWindowDiv_,this.windowDiv_],Effect.SlideUp,{speed:0});},show:function(fonShow)
{var pageSize=document.viewport.getDimensions();var leftForWindow=pageSize['width']/2-300;if(leftForWindow<0)
{leftForWindow=0;}
this.shadowWindowDiv_.style.left=leftForWindow+"px";this.windowDiv_.style.top="0px";if(this.backgroundDiv_)
{this.backgroundDiv_.style.height=pageSize['height']+"px";Effect.Appear(this.backgroundDiv_,{duration:1.0,to:0.8});}
if(Object.isUndefined(fonShow))
{Effect.multiple([this.shadowWindowDiv_,this.windowDiv_],Effect.SlideDown,{speed:0,duration:0.5});}
else
{Effect.multiple([this.shadowWindowDiv_,this.windowDiv_],Effect.SlideDown,{speed:0,duration:0.5,afterFinish:fonShow});}},createShadow:function(width,inId,align)
{div=new Element('div',{"class":"shadow-top"});div1=new Element('div',{"class":"left"});div2=new Element('div',{"class":"center"});div3=new Element('div',{"class":"right"});div.appendChild(div1);div.appendChild(div2);div.appendChild(div3);this.shadowWindowDiv_.appendChild(div);div=new Element('div',{"class":"shadow-middle"});div1=new Element('div',{"class":"left"});div3=new Element('div',{"class":"right"});div.appendChild(div1);div.appendChild(div3);this.shadowWindowDiv_.appendChild(div);div=new Element('div',{"class":"shadow-bottom"});div1=new Element('div',{"class":"left"});div2=new Element('div',{"class":"center"});div3=new Element('div',{"class":"right"});div.appendChild(div1);div.appendChild(div2);div.appendChild(div3);this.shadowWindowDiv_.appendChild(div);},initialize:function(windowDiv,showBackground)
{this.windowDiv_=$(windowDiv);this.shadowWindowDiv_=new Element("div");this.windowDiv_.insert({"before":this.shadowWindowDiv_});this.shadowWindowDiv_.appendChild(this.windowDiv_);Element.addClassName(this.windowDiv_,"windowDiv");this.windowDiv_.setStyle({width:"600px",position:"relative",left:"0px",visibility:"visible",margin:"0pt 0pt",paddingTop:"25px",display:"none"});Element.addClassName(this.shadowWindowDiv_,"forshadow");Element.addClassName(this.shadowWindowDiv_,"shadowWindowDiv");this.shadowWindowDiv_.setStyle({zIndex:"110",top:"-20px",position:"fixed",textAlign:"left",visibility:"visible",display:"none"});if(showBackground)
{this.backgroundDiv_=new Element("div");this.shadowWindowDiv_.insert({"before":this.backgroundDiv_});Element.addClassName(this.backgroundDiv_,"backgroundDiv");this.backgroundDiv_.setStyle({"float":"left","left":"0pt","top":"0pt",margin:"0px",padding:"0px",width:"100%",height:"500px",position:"fixed",visibility:"visible",zIndex:"100",textAlign:"center",opacity:"0.8",backgroundColor:"rgb(250,255,250)",filter:"alpha(opacity=60)"});this.backgroundDiv_.fade({duration:0.0});}
else
{this.backgroundDiv_=false;}
this.createShadow();}}
var ResizableTextbox=Class.create({data:null,options:$H({min:5,max:150,step:7}),initialize:function(element,options){var that=this;this.options.update(options);this.el=$(element);this.width=this.el.offsetWidth;Element.observe(this.el,'keydown',function(){this.cacheData('rt-value',$F(this).length);});Element.observe(this.el,'keyup',function(){var newsize=that.options.get('step')*$F(this).length;if(newsize<=that.options.get('min'))newsize=that.options.get('min');if(!($F(this).length==this.retrieveData('rt-value')||newsize<=that.options.min||newsize>=that.options.max))
this.setStyle({'width':newsize});});}});var TextboxList=Class.create({entries:null,onChange:null,options:$H({resizable:{},className:'bit',separator:',',extrainputs:true,startinput:true,hideempty:true}),initialize:function(element,options){this.entries=$A([]);this.options.update(options);this.element=$(element).setStyle({'display':'none'});this.bits=new Hash();this.events=new Hash();this.current=false;this.maininput=this.createInput({'class':'maininput'});this.holder=new Element('ul');Element.insert(this.holder,this.maininput);Element.addClassName(this.holder,'holder');Element.addClassName(this.maininput,'maininput');this.element.insert({'before':this.holder});Element.observe(this.holder,'click',function(event){Event.stop(event);if(this.maininput!=this.current)this.focus(this.maininput);}.bind(this));this.makeResizable(this.maininput);this.setEvents();},setEvents:function(){Element.observe(document,Prototype.Browser.IE?'keydown':'keypress',function(e){if(!this.current)return;if(this.current.retrieveData('type')=='box'&&e.keyCode==Event.KEY_BACKSPACE)Event.stop(e);}.bind(this));Element.observe(document,'keyup',function(e){Event.stop(e);if(!this.current)return;switch(e.keyCode){case Event.KEY_LEFT:return this.move('left');case Event.KEY_RIGHT:return this.move('right');case Event.KEY_BACKSPACE:return this.moveDispose();}}.bind(this));Element.observe(document,'click',function(){document.fire('blur');}.bindAsEventListener(this));},update:function(){this.element.value="["+this.bits.values().join()+"]";return this;},add:function(text,html,data)
{var id=this.options.get('className')+'-'+TextboxList.count++;var el=this.createBox($pick(html,text),{'id':id});(this.current||this.maininput).insert({'before':el});if(!Object.isUndefined(data))
{el.cacheData("data",data);}
Element.observe(el,'click',function(e)
{Event.stop(e);this.focus(el);}.bind(this));this.bits.set(id,(data||"{label: "+text+"}"));if(this.options.get('extrainputs')&&(this.options.get('startinput')||el.previous()))
{this.addSmallInput(el,'before');}
this.entries.push(el);if(this.onChange)
this.onChange(data,true);return el;},addSmallInput:function(el,where)
{var input=this.createInput({'class':'smallinput'});el.insert({}[where]=input);input.cacheData('small',true);this.makeResizable(input);if(this.options.get('hideempty'))
{Element.setStyle(input,{'display':'none'});}
return input;},dispose:function(el)
{var removed=this.bits.get(el.id);this.bits.unset(el.id);this.entries=this.entries.without(el);if(el.previous()&&el.previous().retrieveData('small'))
{el.previous().remove();}
if(this.current==el)
{this.focus(el.next());}
if(el.retrieveData('type')=='box')
{Element.fire(el,'onBoxDispose');}
el.remove();if(this.onChange)
this.onChange(removed,false);return this;},clear:function()
{$A(this.entries).each(function(el)
{this.dispose(el);}.bind(this));},focus:function(el,nofocus){if(!this.current)
{Element.fire(el,'focus');}
else if(this.current==el)
{return this;}
this.blur();Element.addClassName(el,this.options.get('className')+'-'+el.retrieveData('type')+'-focus');if(el.retrieveData('small'))
{Element.setStyle(el,{'display':'block'});}
if(el.retrieveData('type')=='input')
{Element.fire(el,'onInputFocus');if(!nofocus)
{this.callEvent(el.retrieveData('input'),'focus');}}
else Element.fire(el,'onBoxFocus');this.current=el;return this;},blur:function(noblur){if(!this.current)
{return this;}
if(this.current.retrieveData('type')=='input')
{var input=this.current.retrieveData('input');if(!noblur)
{this.callEvent(input,'blur');}
input.onInputBlur(this);}
else
{Element.fire(this.current,'onBoxBlur');}
if(this.current.retrieveData('small')&&!input.get('value')&&this.options.get('hideempty'))
{Element.setStyle(this.current,{'display':'none'});}
Element.removeClassName(this.current,this.options.get('className')+'-'+this.current.retrieveData('type')+'-focus');this.current=false;return this;},createBox:function(text,options){var el=new Element('li',options);Element.addClassName(el,this.options.get('className')+'-box').update(text).cacheData('type','box');return el;},createInput:function(options){var li=new Element('li',{'class':this.options.get('className')+'-input'});var el=new Element('input',Object.extend(options,{'type':'text'}));Element.addClassName(el,options['class']);Element.observe(el,'click',function(e){Event.stop(e);});Element.observe(el,'focus',function(e){if(!this.isSelfEvent('focus'))this.focus(li,true);}.bind(this));Element.observe(el,'blur',function(){if(!this.isSelfEvent('blur'))this.blur(true);}.bind(this));Element.observe(el,'keydown',function(e){this.cacheData('lastvalue',this.value).cacheData('lastcaret',this.getCaretPosition());});var tmp=li.cacheData('type','input').cacheData('input',el).insert(el);return tmp;},callEvent:function(el,type){this.events.set(type,el);el[type]();},isSelfEvent:function(type){return(this.events.get(type))?!!this.events.unset(type):false;},makeResizable:function(li){var el=li.retrieveData('input');el.cacheData('resizable',new ResizableTextbox(el,Object.extend(this.options.get('resizable'),{min:el.offsetWidth,max:(this.element.getWidth()?this.element.getWidth():0)})));return this;},checkInput:function(){var input=this.current.retrieveData('input');return(!input.retrieveData('lastvalue')||(input.getCaretPosition()===0&&input.retrieveData('lastcaret')===0));},move:function(direction){var el=this.current[(direction=='left'?'previous':'next')]();if(el&&(!this.current.retrieveData('input')||((this.checkInput()||direction=='right'))))this.focus(el);return this;},moveDispose:function()
{if(this.current.retrieveData('type')=='box')
{return this.dispose(this.current);}
if(this.checkInput()&&this.bits.keys().length&&this.current.previous())
{return this.focus(this.current.previous());}}});TextboxList.count=0;Element.addMethods({getCaretPosition:function(){if(this.createTextRange){var r=document.selection.createRange().duplicate();r.moveEnd('character',this.value.length);if(r.text==='')return this.value.length;return this.value.lastIndexOf(r.text);}else return this.selectionStart;},cacheData:function(element,key,value){if(Object.isUndefined(this[$(element).identify()])||!Object.isHash(this[$(element).identify()]))
this[$(element).identify()]=$H();this[$(element).identify()].set(key,value);return element;},retrieveData:function(element,key){return this[$(element).identify()].get(key);}});function $pick()
{for(var B=0,A=arguments.length;B<A;B++)
{if(!Object.isUndefined(arguments[B])&&arguments[B]!=null)
{return arguments[B];}}
return null;}
var EntrySelector=Class.create(TextboxList,{isprocessing:false,delayref:null,holderClass:null,services:{lookup:null,search:null,create:null},texts:{addtag:"Add {1} as a tag (WARNING: no meaning attached)",warningtag:"(WARNING: this is a tag, no meaning attached)",subcategory:" subcategory of: ",inhierarchy:" in hierarchy: ",saveddescr:"Tag saved"},searchCache:$H({}),loptions:$H({autocomplete:{'opacity':0.8,'maxresults':10,'minchars':2}}),preload:function(preloaded){$A(preloaded).each(function(entry)
{if(Object.isString(entry))
{this.addEntryByURI(entry);}
else
{this.addEntry(entry);}},this);},prepareToShow:function(input)
{if(this.dosearch&&input.value.match(/^[\s*]*$/)===null)
{if(this.delayref!==null)
{window.clearTimeout(this.delayref);}
this.setHolderClassName("selector_waitinput");this.delayref=this.autoShowInit.bind(this,input.value).delay(1);}
else
{window.clearTimeout(this.delayref);this.delayref=null;this.setHolderClassName("selector_inactive");}},addEntryByURI:function(entry)
{if(this.services.lookup!=null)
{var req=new Ajax.Request(this.services.lookup+entry,{method:"get",onSuccess:function(resp)
{if(resp.responseJSON===null)
{resp.responseJSON=resp.responseText.evalJSON();}
this.addEntry(resp.responseJSON);}.bind(this),onFailure:function(transport,problem)
{try
{console.debug(problem);}
catch(e){}}.bind(this)});}},autoShowInit:function(search)
{this.delayref=null;this.autoholder.setStyle({'display':'block'});this.autoholder.descendants().each(function(e){e.setStyle({'display':'none'})});if(!search||!search.strip()||(!search.length||search.length<this.loptions.get('autocomplete').minchars))
{this.autoholder.select('.default').first().setStyle({'display':'block'});this.resultsshown=false;}
else
if(!this.isprocessing){this.setHolderClassName("selector_active");if(this.searchCache[search]!=null)
{this.data=this.searchCache[search];this.autoShow(search);}
else
{this.isprocessing=true;this.data=[];if(this.services.search!=null)
{new Ajax.Request(this.services.search.gsub(/\{1\}/,search),{method:"get",onSuccess:function(resp)
{if(resp.responseJSON==null)
{resp.responseJSON=resp.responseText.evalJSON();}
resp.responseJSON.results.each(function(t){this.autoFeed(t)}.bind(this));this.searchCache[search]=this.data;this.autoShow(resp.responseJSON.label);}.bind(this),onComplete:function(transport)
{this.isprocessing=false;this.setHolderClassName("selector_inactive");}.bind(this),onFailure:function(transport,problem)
{try
{console.debug(problem)}
catch(e){};}.bind(this)});}
else
{this.isprocessing=false;this.setHolderClassName("selector_inactive");}}}
return this;},autoShow:function(search)
{this.resultsshown=true;this.autoresults.setStyle({'display':'block'}).update('');var areresults=false;this.data.each(function(result,ti)
{if(ti<this.loptions.get('autocomplete').maxresults)
{var el=this.createElement(result,search);if(ti==0)
{this.autoFocus(el);areresults=true;}}},this);this.autoShowNewEntry(search,areresults);this.oldSearch=search;},createElement:function(result,search)
{var that=this;var el=new Element('li');var eldiv=new Element("div");Element.addClassName(eldiv,"element");el.appendChild(eldiv);var label=this.autoHighlight(result.label,search);var ellabel=new Element("div").update(label);Element.addClassName(ellabel,"label");eldiv.appendChild(ellabel);},autoHighlight:function(html,highlight)
{if(html==null){return"";}
return html.gsub(new RegExp(highlight,'i'),function(match)
{return'<em>'+match[0]+'</em>';});},autoHide:function()
{this.resultsshown=false;this.autoholder.setStyle({'display':'none'});this.setHolderClassName("selector_inactive");return this;},autoFocus:function(el)
{if(!el)
{return;}
if(this.autocurrent)
{this.autocurrent.removeClassName('auto-focus');}
this.autocurrent=el.addClassName('auto-focus');return this;},autoMove:function(direction)
{if(!this.resultsshown)
{return;}
this.autoFocus(this.autocurrent[(direction=='up'?'previous':'next')]());return this;},autoFeed:function(text)
{if(this.data.indexOf(text)==-1)
this.data.push(text);return this;},autoAdd:function(el)
{if(!el||!el.retrieveData('result'))
{return;}
this.addEntry(el.retrieveData('result'));delete this.data[this.data.indexOf(el.retrieveData('result'))];this.autoHide();var input=this.lastinput||this.current.retrieveData('input');input.clear().focus();return this;},addEntry:function(entry)
{if(entry.label)
{entry.toString=function(){return this.label;}}
var el=this.add(entry.toString(),null,entry);this.createTooltip(entry,el,ActionHints);return el;},addEntryParent:function(event,entry,tooltip)
{tooltip.parentNode.style.display="none";this.addEntry(entry);},createTooltip:function(entry,el,tooltipType)
{return this._createTooltip(entry,el,tooltipType,entry,true);},_createTooltip:function(entry,el,tooltipType,calluri,skipPath)
{var divTooltip=new Element("div");Element.addClassName(divTooltip,"info");Element.addClassName(divTooltip,"tooltip");divTooltip.id=el.identify()+"PopUp";divTooltip.style.display="none";document.getElementsByTagName("body")[0].appendChild(divTooltip);var lazyload=new TooltipLazyLoader(divTooltip);lazyload._onContentLoad=this.lazyContentLoad.bind(this,calluri,lazyload,skipPath);var tooltip=new Tooltip(el,tooltipType,lazyload);if(tooltip)
{tooltipType.tooltips.push(tooltip);}
return divTooltip;},createDescriptionElement:function(result)
{var that=this;var eldiv=new Element("div");Element.addClassName(eldiv,"element");var ellabel=new Element("div").update(result.label);Element.addClassName(ellabel,"label");eldiv.appendChild(ellabel);},lazyContentLoad:function(aboutUrl,lazyload,skipPath)
{if(Object.isString(aboutUrl))
{var uri=(skipPath)?aboutUrl:(this.services.lookup+aboutUrl);new Ajax.Request(uri,{method:"get",onSuccess:function(resp)
{if(resp.responseJSON==null)
{resp.responseJSON=resp.responseText.evalJSON();}
var el=this.createDescriptionElement(resp.responseJSON);lazyload.tooltipContent.insert({"top":el});}.bind(this),onComplete:function(transport)
{var tooltiploader=lazyload.tooltipContent.childElements().find(function(el)
{return el.hasClassName("tooltipwait");});if(tooltiploader!=null)
{try{lazyload.tooltipContent.removeChild(tooltiploader);}catch(e){};}
lazyload.onContentLoaded();}.bind(this),onFailure:function(transport,problem)
{lazyload.tooltipContent.style.display="none";try
{console.debug(problem)}
catch(e){};}.bind(this)});}
else
{lazyload.tooltipContent.insert({"top":this.createDescriptionElement(aboutUrl)});var tooltiploader=lazyload.tooltipContent.childElements().find(function(el)
{return el.hasClassName("tooltipwait");});lazyload.tooltipContent.removeChild(tooltiploader);lazyload.onContentLoaded();}},createInput:function($super,options)
{var li=$super(options);var input=li.retrieveData('input');Element.observe(input,'keydown',function(e){this.dosearch=false;switch(e.keyCode){case Event.KEY_UP:return this.autoMove('up');case Event.KEY_DOWN:return this.autoMove('down');case Event.KEY_RETURN:if(!this.autocurrent)
{break;}
this.autoAdd(this.autocurrent);this.autocurrent=false;this.autoenter=true;break;case Event.KEY_ESC:this.autoHide();if(this.current&&this.current.retrieveData('input'))
{this.current.retrieveData('input').clear();}
break;default:this.dosearch=true;}}.bind(this));Element.observe(input,'keyup',this.prepareToShow.bind(this,input));Element.observe(input,Prototype.Browser.IE?'keydown':'keypress',function(e)
{if(this.autoenter)
{Event.stop(e);}
this.autoenter=false;}.bind(this));return li;},createBox:function($super,text,options)
{var li=$super(text,options);Element.observe(li,'mouseover',function(){this.addClassName('bit-hover');});Element.observe(li,'mouseout',function(){this.removeClassName('bit-hover')});var a=new Element('a',{'href':'#'});Element.addClassName(a,'closebutton');Element.observe(a,'click',function(e)
{Event.stop(e);if(!this.current)
{this.focus(this.maininput);}
this.dispose(li);}.bind(this));li.insert(a).cacheData('text',text);return li;},setHolderClassName:function(className)
{Element.removeClassName(this.holder,this.holderClass);Element.addClassName(this.holder,className);this.holderClass=className;},copyProperties:function(newtag,responseJSON)
{newtag.uri=responseJSON.uri;},isEntryNew:function(newtag)
{return newtag.uri==null;},createNewEntry:function(newtag,fcallback)
{if(this.services.create!=null)
{var hnewtag=$H(newtag);hnewtag.unset("description");var req=new Ajax.Request(this.services.create+newtag.label,{method:"put",contentType:"application/json",postBody:hnewtag.toJSON(),onSuccess:function(resp)
{if(resp.responseJSON===null)
{resp.responseJSON=resp.responseText.evalJSON();}
this.copyProperties(newtag,resp.responseJSON);if(!Object.isUndefined(fcallback)&&fcallback!=null&&!this.hasNewEntries())
{fcallback();}}.bind(this),onFailure:function(transport,problem)
{try
{console.debug(problem);}
catch(e){}}.bind(this)});}},hasNewEntries:function()
{return null!=this.bits.values().find(function(newtag)
{return this.isEntryNew(newtag);}.bind(this));},saveNewConcepts:function(fcallback)
{this.bits.values().each(function(newtag)
{if(this.isEntryNew(newtag))
{this.createNewEntry(newtag,fcallback);}}.bind(this));},getEntries:function()
{return this.bits.values();},initialize:function($super,element,autoholder,options,preloaded)
{$super(element,options);this.data=[];this.autoholder=$(autoholder).setOpacity(this.loptions.get('autocomplete').opacity);this.autoresults=this.autoholder.select('ul').first();if(preloaded)
{this.preload(preloaded);}
this.setHolderClassName("selector_inactive");EntrySelector.instances.set(element,this);}});EntrySelector.instances=$H({});Element.addMethods({onBoxDispose:function(item,obj)
{obj.autoFeed(item.retrieveData('text'));},onInputFocus:function(el,obj)
{obj.autoShowInit();},onInputBlur:function(el,obj)
{obj.lastinput=el;obj.blurhide=obj.autoHide.bind(obj).delay(0.1);},filter:function(D,E)
{var C=[];for(var B=0,A=this.length;B<A;B++)
{if(D.call(E,this[B],B,this))
{C.push(this[B]);}}
return C;}});var KOSSelector=Class.create(EntrySelector,{copyProperties:function(newtag,responseJSON)
{newtag.context=responseJSON.context;newtag.description=(responseJSON.description!=null)?responseJSON.context:this.texts.saveddescr;newtag.lang=responseJSON.lang;newtag.type=responseJSON.type;newtag.uri=responseJSON.uri;},isEntryNew:function(newtag)
{return newtag.context==null;},getLocalCallPath:function(url)
{var regex=/^(\w+[:][\/]*\w+(?:[.]\w+)*(?:[:]\d+)?[\/])(.*)$/;return url.gsub(regex,"/json/$2");},autoShowNewEntry:function(search,areresults)
{var existstag=this.data.any(function(result)
{return"tagging"==result.type&&search==result.label;});if(!existstag)
{var addtag=this.createAddTagElement(search);if(!areresults)
{this.autoFocus(addtag);}}},createAddTagElement:function(search)
{var tag={label:search,lang:null,rank:0,uri:"#"+search,description:this.texts.addtag.gsub(/\{1\}/,search),context:null,type:"new"};return this.createElement(tag,search);},createElement:function(result,search)
{var that=this;var el=new Element('li');var eldiv=new Element("div");Element.addClassName(eldiv,"type_"+result.type);Element.addClassName(eldiv,"term");el.appendChild(eldiv);if(result.lang!=null)
{var ellang=new Element("div").update("["+result.lang+"]");Element.addClassName(ellang,"lang");eldiv.appendChild(ellang);}
var label=this.autoHighlight(result.label,search);var ellabel=new Element("div").update(label);Element.addClassName(ellabel,"label");eldiv.appendChild(ellabel);var eldescr=new Element("div");switch(result.type)
{case"new":eldescr.appendChild(document.createTextNode(result.description));break;case"tagging":eldescr.appendChild(document.createTextNode(this.texts.warningtag));break;case"taxonomy":case"thesaurus":var elContext=new Element("span");Element.addClassName(elContext,"context");Element.update(elContext,"["+result.contextName+"]");eldescr.appendChild(elContext);if(result.description!=null)
{eldescr.appendChild(document.createTextNode(result.description));}
else if(result.parent!=null)
{eldescr.appendChild(document.createTextNode(this.texts.subcategory));var elLabel=new Element("span");Element.addClassName(elLabel,"parentLabel");Element.update(elLabel,result.parent.label);eldescr.appendChild(elLabel);}
break;}
Element.addClassName(eldescr,"tipdescription");eldiv.appendChild(eldescr);Element.observe(el,'mouseover',function()
{that.autoFocus(this);});Element.observe(el,'click',function(e)
{Event.stop(e);that.autoAdd(this);});this.autoresults.insert(el);el.cacheData('result',result,1);return el;},createDescriptionElement:function(result)
{var that=this;var eldiv=new Element("div");Element.addClassName(eldiv,"type_"+result.type);Element.addClassName(eldiv,"term");if(result.lang!=null)
{var ellang=new Element("div").update("["+result.lang+"]");Element.addClassName(ellang,"lang");eldiv.appendChild(ellang);}
var ellabel=new Element("div").update(result.label);Element.addClassName(ellabel,"label");eldiv.appendChild(ellabel);var eldescr=new Element("div");switch(result.type)
{case"new":case"tagging":eldescr.appendChild(document.createTextNode(this.texts.warningtag));break;case"taxonomy":case"thesaurus":var elContext=new Element("span");Element.addClassName(elContext,"context");elContext.update("["+result.contextName+"]");eldescr.appendChild(elContext);if(result.description!=null)
{eldescr.appendChild(document.createTextNode(result.description));}
else if(result.pathToRoot!=null)
{var ol=new Element("ol");Element.addClassName(ol,"pathtoroot");eldescr.appendChild(document.createTextNode(this.texts.inhierarchy));eldescr.appendChild(ol);var li,ali;var last=result.pathToRoot.last();$A(result.pathToRoot).each(function(entry)
{li=new Element("li");ali=new Element("span");ali.appendChild(document.createTextNode(entry.label));li.appendChild(ali);ol.appendChild(li);if(entry!=last)
{Element.addClassName(ali,"actionHintTrigger")
var tooltip=this.createTooltip(entry,ali,ActionHints);Element.addClassName(tooltip,"pathtoroot");var kosadd=new Image();kosadd.src=l10n.URLStatic+"/images/kosadd.png";kosadd.onclick=this.addEntryParent.bindAsEventListener(this,entry,eldiv);li.insert({"top":kosadd});}}.bind(this));Element.addClassName(li,"last");}
break;}
Element.addClassName(eldescr,"tipdescription");eldiv.appendChild(eldescr);return eldiv;},createTooltip:function(entry,el,tooltipType)
{if(entry.uri==null||entry.uri=="")
{return this._createTooltip(entry,el,tooltipType,entry,true);}
else
{return this._createTooltip(entry,el,tooltipType,entry.uri,false);}},initialize:function($super,element,autoholder,options,preloaded)
{this.services=KOSSelector.services;if(KOSSelector.texts!=null)
{this.texts=KOSSelector.texts;}
$super(element,autoholder,options,preloaded);KOSSelector.instances.set(element,this);}});KOSSelector.instances=$H({});KOSSelector.services={lookup:'/vocabularies/lookup?uri=',search:'/vocabularies/search?size=10&label={1}',create:'/json/tags/?_method=put&label='};KOSSelector.texts=null;var DirSelector=Class.create(EntrySelector,{creatorName:null,copyProperties:function(newdir,responseJSON)
{newdir.uuid=responseJSON.uuid;newdir.description=(responseJSON.description!=null)?responseJSON.context:this.texts.saveddescr;newdir.lang=responseJSON.lang;newdir.type=responseJSON.type;newdir.creator=responseJSON.creator;newdir.uri=responseJSON.uri;},isEntryNew:function(newdir)
{return newdir.uuid==null||newdir.uuid=="";},getLocalCallPath:function(url)
{var regex=/^(\w+[:][\/]*\w+(?:[.]\w+)*(?:[:]\d+)?)([\/].*)$/;return url.gsub(regex,"$2");},preload:function(preloaded){$A(preloaded).each(function(entry)
{if(Object.isString(entry)&&entry.startsWith("http"))
{this.addEntryByURI(entry);}
else if(Object.isString(entry))
{this.addEntryByUUID(entry);}
else
{this.addEntry(entry);}},this);},addEntryByUUID:function(uuid)
{var req=new Ajax.Request('/directories/'+uuid,{method:"get",onSuccess:function(resp)
{if(resp.responseJSON===null)
{resp.responseJSON=resp.responseText.evalJSON();}
this.addEntry(resp.responseJSON);}.bind(this),onFailure:function(transport,problem)
{try
{console.debug(problem);}
catch(e){}}.bind(this)});},autoShowNewEntry:function(search,areresults)
{var adddir=this.createAddDirElement(search);if(!areresults)
{this.autoFocus(adddir);}},createAddDirElement:function(search)
{var dir={label:search,rank:0,uuid:"",uri:l10n.URLDirectories,creator:this.creatorName,description:"Create new directory "+search+" (INFO: remember to describe it later)"};return this.createElement(dir,search);},createElement:function(result,search)
{var that=this;var el=new Element('li');var eldiv=new Element("div");Element.addClassName(eldiv,"dir");if(result.uuid=="")
{Element.addClassName(eldiv,"type_new");}
el.appendChild(eldiv);var label=this.autoHighlight(result.label,search);var ellabel=new Element("div").update(label);Element.addClassName(ellabel,"label");eldiv.appendChild(ellabel);if(result.description!=null)
{var eldescr=new Element("div");eldescr.appendChild(document.createTextNode(result.description));eldiv.appendChild(eldescr);}
el.observe('mouseover',function()
{that.autoFocus(this);});el.observe('click',function(e)
{Event.stop(e);that.autoAdd(this);});this.autoresults.insert(el);el.cacheData('result',result,1);return el;},createDescriptionElement:function(result)
{var that=this;var eldiv=new Element("div");Element.addClassName(eldiv,"dir");if(result.uuid=="")
{Element.addClassName(eldiv,"type_new");}
var ellabel=new Element("div").update(result.label);Element.addClassName(ellabel,"label");eldiv.appendChild(ellabel);var eldescr=new Element("div");if(result.tagger!=null)
{var elTagger=new Element("div");Element.addClassName(elTagger,"tagger");elTagger.update("<b>owner:</b>&nbsp;<span>"+result.tagger.name+"</span>");eldescr.appendChild(elTagger);}
if(result.terms!=null&&result.terms.length>0)
{var elTerms=new Element("div");Element.addClassName(elTerms,"terms");elTerms.update("<b>terms:</b>");eldescr.appendChild(elTerms);var ulTerms=new Element("ul");elTerms.appendChild(ulTerms);$A(result.terms).each(function(term){var elterm=new Element("li");elterm.update(term.label);ulTerms.appendChild(elterm);});}
if(result.description!=null)
{eldescr.appendChild(document.createTextNode(result.description));}
if(result.pathToRoot!=null)
{var ol=new Element("ol");Element.addClassName(ol,"pathtoroot");eldescr.appendChild(document.createTextNode(" in hierarchy: "));eldescr.appendChild(ol);var li,ali;var last=result.pathToRoot.last();$A(result.pathToRoot).each(function(entry)
{li=new Element("li");ali=new Element("span");ali.appendChild(document.createTextNode(entry.label));li.appendChild(ali);ol.appendChild(li);if(entry!=last)
{Element.addClassName(ali,"actionHintTrigger")
var tooltip=this.createTooltip(entry,ali,ActionHints);Element.addClassName(tooltip,"pathtoroot");var kosadd=new Image();kosadd.src=l10n.URLStatic+"/images/kosadd.png";kosadd.onclick=this.addEntryParent.bindAsEventListener(this,entry,eldiv);li.insert({"top":kosadd});}}.bind(this));Element.addClassName(li,"last");}
Element.addClassName(eldescr,"description");eldiv.appendChild(eldescr);return eldiv;},createTooltip:function(entry,el,tooltipType)
{if(entry.uuid==null||entry.uuid=="")
{return this._createTooltip(entry,el,tooltipType,entry,true);}
else
{return this._createTooltip(entry,el,tooltipType,"/directories/"+entry.uuid,true);}},initialize:function($super,element,autoholder,options,preloaded,creatorName)
{this.creatorName=creatorName;this.services=DirSelector.services;if(DirSelector.texts!=null)
{this.texts=DirSelector.texts;}
$super(element,autoholder,options,preloaded);DirSelector.instances.set(element,this);}});DirSelector.instances=$H({});DirSelector.services={lookup:'',search:'/filter/directories?size=10&matching={1}',create:'/directories/?_method=PUT&label='};DirSelector.texts=null;var BreadCrumbsList=Class.create({breadcrumbslistul:null,awaitingMenuHide:null,breadcrumbs:null,crumb:null,show:function(crumb,breadcrumbs)
{if(crumb!=null)
{var pos=crumb.licrumb.positionedOffset();this.breadcrumbslistul.style.left=(pos[0]-8)+"px";this.breadcrumbslistul.style.top=(pos[1]+crumb.licrumb.getHeight())+"px";if(breadcrumbs!=null)
{this.crumb=crumb;this.breadcrumbs=breadcrumbs;this.breadcrumbs.isfocusing=true;this.breadcrumbs.previousFocused=null;}}
this.breadcrumbslistul.appear();},hide:function()
{if(this.breadcrumbs!=null)
{this.breadcrumbs.previousFocused=this.crumb;this.breadcrumbs.isfocusing=false;this.breadcrumbs.focusOn(null,null);this.breadcrumbs=null;}
this.breadcrumbslistul.fade();},hideMenu:function()
{this.clearHideMenu();this.awaitingMenuHide=window.setTimeout(this.hide.bind(this),100);},clearHideMenu:function()
{if(this.awaitingMenuHide!=null)
{window.clearTimeout(this.awaitingMenuHide);this.awaitingMenuHide=null;}},prepareList:function(lielement)
{var cont=Element.descendants(lielement).detect(function(el)
{return el.tagName=="A";});if(cont.descendantOf(lielement))
{var div=document.createElement("div");Element.addClassName(div,"listitem");div.appendChild(cont);lielement.appendChild(div);}
return{fontSize:parseInt(cont.getStyle("font-size")),len:cont.getText().length,text:cont.getText()};Event.observe(lielement,"mouseover",this.clearHideMenu.bindAsEventListener(this));},initialize:function(crumblistid)
{this.breadcrumbslistul=$(crumblistid);var maxLen=0;var maxEl=null;$A(this.breadcrumbslistul.childNodes).findAll(function(node)
{return node.tagName=="LI";}).each(function(lielement)
{var ael=this.prepareList(lielement);if(ael.len*ael.fontSize>maxLen)
{maxLen=ael.len*ael.fontSize;maxEl=ael;}}.bind(this));var span=document.createElement("span");span.style.fontSize=maxEl.fontSize;span.innerHTML=maxEl.text.gsub(/\s+/,"&nbsp;");span.hide();$$("body")[0].appendChild(span);maxLen=span.getWidth()+40;$$("body")[0].removeChild(span);this.breadcrumbslistul.style.width=maxLen+"px";this.hide();Event.observe(this.breadcrumbslistul,"mouseout",this.hideMenu.bindAsEventListener(this));Event.observe(this.breadcrumbslistul,"mouseover",this.clearHideMenu.bindAsEventListener(this));}});BreadCrumbsList.collection=$H({});BreadCrumbsList.preload=function()
{$$("ul.breadcrumblist").each(function(element)
{var breadcrumbslist=new BreadCrumbsList(element);BreadCrumbsList.collection.set(element,breadcrumbslist);});}
Event.observe(window,"load",BreadCrumbsList.preload);var Crumb=Class.create({licrumb:null,breadcrumbs:null,acrumb:null,crumbmenu:null,origdim:null,dimensions:null,tmpwidth:null,text:null,isresizing:false,isresized:false,showMenu:function()
{if(this.crumbmenu!=null)
{BreadCrumbsList.collection.get(this.crumbmenu).show(this,this.breadcrumbs);}},expand:function()
{if(this.isresized)
{this.resetWidth();}},shrink:function()
{if(this.isresized&&this.tmpwidth!=null)
{this.setWidth(this.tmpwidth+BreadCrumbs.separatorWidth);}},setWidth:function(width)
{this.isresized=true;var w=((width<BreadCrumbs.separatorWidth)?0:(width-BreadCrumbs.separatorWidth));new Effect.Morph(this.licrumb,{style:'width:'+w+'px',duration:0.5,afterFinish:this.afterSetWidth.bind(this)});},afterSetWidth:function()
{this.dimensions=this.licrumb.getDimensions();this.tmpwidth=parseInt(this.licrumb.style.width,10);if(this.acrumb!=null)
{var fsize=parseInt(this.acrumb.getStyle("font-size"),10);var len=Math.floor(this.dimensions.width/fsize);if(len>this.text.length)
{this.acrumb.innerHTML=this.text;}
else if(len>0)
{this.acrumb.innerHTML=this.text.substr(0,len);}
else
{this.acrumb.innerHTML="&nbsp;";}}
this.breadcrumbs.isfocusing=false;},resetWidth:function()
{var w=this.origdim.width;var newwidth='width:'+w+'px';new Effect.Morph(this.licrumb,{style:newwidth,duration:0.5,afterFinish:this.afterResetWidth.bind(this)});},afterResetWidth:function()
{this.dimensions=this.origdim;this.acrumb.innerHTML=this.text;this.breadcrumbs.isfocusing=false;},initialize:function(licrumb,breadcrumbs)
{this.licrumb=licrumb;this.breadcrumbs=breadcrumbs;this.origdim=this.licrumb.getDimensions();this.dimensions=this.origdim;this.acrumb=$A(this.licrumb.childNodes).find(function(node)
{return node.tagName=="A";});this.crumbmenu=$(this.acrumb.readAttribute("rel"));if(Object.isUndefined(this.acrumb))
{this.acrumb=null;}
this.text=(this.acrumb!=null)?(this.acrumb.getText()):"";Event.observe(this.licrumb,"mouseover",this.breadcrumbs.focusOn.bindAsEventListener(this.breadcrumbs,this,this));}});Object.extend(Element.prototype,{getText:function(){return(!Object.isUndefined(this.textContent))?this.textContent:this.innerText;}});var BreadCrumbs=Class.create({breadcrumbs:null,crumbs:null,homecrumb:null,currentcrumb:null,isfocusing:false,previousFocused:null,awaitingFocus:null,awaitingMenuShow:null,adjustSize:function()
{var ulwidth=this.breadcrumbs.getDimensions().width;var twidth=0;var lastwidth=this.currentcrumb.origdim.width;var firstwidth=this.homecrumb.origdim.width;this.crumbs.each(function(crumb)
{twidth+=crumb.origdim.width;});if(twidth+lastwidth+firstwidth>ulwidth)
{var remainwidth=ulwidth-lastwidth-firstwidth;if(remainwidth>BreadCrumbs.separatorWidth*this.crumbs.length)
{var widthpercrumb=Math.floor(remainwidth/this.crumbs.length);this.crumbs.each(function(crumb)
{crumb.setWidth(widthpercrumb);});}
else
{this.crumbs.each(function(crumb)
{crumb.setWidth(0);});}}
else
{this.crumbs.each(function(crumb)
{crumb.resetWidth();});}},focusOn:function(event,crumb)
{if(!this.isfocusing)
{this.awaitingFocus=null;if(this.previousFocused!=null)
{this.isfocusing=true;this.previousFocused.shrink();if(this.awaitingMenuShow!=null)
{window.clearTimeout(this.awaitingMenuShow);this.awaitingMenuShow=null;}}
this.previousFocused=crumb;if(crumb!=null)
{this.isfocusing=true;this.previousFocused.expand();this.clearAwaitingMenuShow();this.awaitingMenuShow=window.setTimeout(crumb.showMenu.bind(crumb),1000);}}
else if(crumb!=null)
{if(this.awaitingFocus!=null)
{window.clearTimeout(this.awaitingFocus);}
this.clearAwaitingMenuShow();this.awaitingFocus=window.setTimeout(this.focusOn.bind(this,event,crumb),200);}},clearAwaitingMenuShow:function()
{if(this.awaitingMenuShow!=null)
{window.clearTimeout(this.awaitingMenuShow);this.awaitingMenuShow=null;}},notFocusing:function()
{this.isfocusing=false;},initialize:function(crumbsid)
{this.breadcrumbs=$(crumbsid);var _crumbs=$A(this.breadcrumbs.childNodes).findAll(function(node)
{return node.tagName=="LI";});this.homecrumb=new Crumb(_crumbs.first(),this);this.currentcrumb=new Crumb(_crumbs.last(),this);this.crumbs=$A();_crumbs.without(this.homecrumb.licrumb,this.currentcrumb.licrumb).each(function(li)
{this.crumbs.push(new Crumb(li,this));}.bind(this));this.adjustSize();Event.observe(this.breadcrumbs,"mouseout",this.focusOn.bindAsEventListener(this,null));}});BreadCrumbs.separatorWidth=10;BreadCrumbs.collection=$A();BreadCrumbs.preload=function()
{$$('ul.breadcrumbs').each(function(element)
{BreadCrumbs.collection.push(new BreadCrumbs(element));});}
BreadCrumbs.adjustSizeAll=function()
{BreadCrumbs.collection.each(function(breadcrumb)
{breadcrumb.adjustSize();});}
Event.observe(window,"load",BreadCrumbs.preload);Event.observe(window,"resize",BreadCrumbs.adjustSizeAll);DigimeBookmark=Class.create();DigimeBookmark.prototype={id:null,isnew:true,isloaded:false,tagger:null,element:null,loadBookmark:function(bookmark)
{this.element.uri.value=bookmark.document.url;this.element.uuid.value=bookmark.uuid;this.element.title.value=bookmark.label;this.element.origtitle.value=bookmark.document.title;this.element.description.value=bookmark.description;this.element.tagger.uri.value=bookmark.tagger.uri;this.element.tagger.name.value=bookmark.tagger.name;this.element.terms.clear();this.element.directories.clear();if(bookmark.terms!=null)
{this.element.terms.preload(bookmark.terms);}
if(bookmark.parents!=null)
{this.element.directories.preload(bookmark.parents);}
if(this.element.permissionType==null&&bookmark.permissionType!=null)
{var perm=this.element.permissionType.find(function(el)
{return el.value==bookmark.permissionType;});if(perm!=null)
{perm.checked=true;}}
this.isnew=(this.element.uuid.value=="");this.isloaded=(this.element.tagger.uri.value!="");},loadTitle:function(url,changeTitle)
{if(url!=null&&url!="")
{var req=new Ajax.Request("/services/helpers/document?url="+urlencode(url),{method:"get",onSuccess:function(resp)
{if(resp.responseJSON===null)
{resp.responseJSON=resp.responseText.evalJSON();}
this.processLoadTitle(resp.responseJSON,changeTitle);}.bind(this),onComplete:function(resp)
{Element.removeClassName(this.element.uri,"uri_active");Element.addClassName(this.element.uri,"uri_inactive");}.bind(this),onFailure:function(transport,problem)
{try{console.debug(problem);}catch(e){};}.bind(this)});}},processLoadTitle:function(aboutDoc,changeTitle)
{$A(this.element.suggestedterms.children).clear();this.element.origtitle.value=aboutDoc.title;this.element.uri.value=aboutDoc.url;if(changeTitle)
{this.element.title.value=aboutDoc.title;}
$A(aboutDoc.termcloud).each(function(el)
{var li=document.createElement("li");Element.addClassName(li,"font"+el["::size"]);var a=document.createElement("a");a.href="#";a.onclick=this.clickAddTerm.bindAsEventListener(this,el);Element.update(a,el.label);li.appendChild(a);this.element.suggestedterms.appendChild(li);this.element.suggestedterms.appendChild(document.createTextNode(" "));}.bind(this));if(aboutDoc.termcloud.length>0)
{this.element.termcloud.style.display="block";this.element.termcloud.style.display="table-row";}
else
{this.element.termcloud.style.display="none";}},clickAddTerm:function(event,term)
{this.addTerm(term);},load:function()
{var req=new Ajax.Request("/bookmarks/"+this.element.uuid.value,{method:"get",onSuccess:function(resp)
{if(resp.responseJSON===null)
{resp.responseJSON=resp.responseText.evalJSON();}
this.loadBookmark(resp.responseJSON);if(this.onLoad!=null)
{this.onLoad(this,true);}}.bind(this),onFailure:function(transport,problem)
{try{console.debug(problem);}catch(e){};if(this.onLoad!=null)
{this.onLoad(this,false);}}.bind(this)});},save:function(isfirstcall)
{if(isfirstcall)
{DigimeBookmark.notifications.WORKING.show();}
if(this.element.terms.hasNewEntries())
{this.element.terms.saveNewConcepts(this.save.bind(this,false));}
else if(this.element.directories.hasNewEntries())
{this.element.directories.saveNewConcepts(this.save.bind(this,false));}
else if(this.isnew)
{this.createDocument();}
else
{this.saveBookmark();}},createDocument:function()
{var doc=$H({url:this.element.uri.value,title:(this.isnew)?this.element.title.value:this.element.origtitle.value});var req=new Ajax.Request("/documents/?_method=put",{method:"put",contentType:"application/json",postBody:doc.toJSON(),onSuccess:function(resp)
{if(resp.responseJSON===null)
{resp.responseJSON=resp.responseText.evalJSON();}
this.element.origtitle.value=resp.responseJSON.title;this.saveBookmark();}.bind(this),onFailure:function(transport,problem)
{DigimeBookmark.notifications.TIMEOUT.show();try{console.debug(problem);}catch(e){};}.bind(this)});},saveBookmark:function()
{var bookmark=$H({document:{url:this.element.uri.value,title:(this.isnew)?this.element.title.value:this.element.origtitle.value},tagger:{uri:this.element.tagger.uri.value,name:this.element.tagger.name.value},uuid:this.element.uuid.value,label:this.element.title.value,description:this.element.description.value,terms:this.element.terms.getEntries(),parents:this.element.directories.getEntries()});var _method=(this.isnew)?"put":"post";var additionalParameter=(this.isnew)?"?_method=put":"";var req=new Ajax.Request("/bookmarks/"+this.element.uuid.value+additionalParameter,{method:_method,contentType:"application/json",postBody:bookmark.toJSON(),onSuccess:this.onSuccessSave.bind(this),onComplete:function(resp)
{DigimeBookmark.notifications.WORKING.hide();},onFailure:function(transport,problem)
{DigimeBookmark.notifications.TIMEOUT.show();try{console.debug(problem);}catch(e){};if(this.onSave!=null)
{this.onSave(this,false);}}.bind(this)});},onSuccessSave:function(resp){if(resp.responseJSON===null)
{resp.responseJSON=resp.responseText.evalJSON();}
this.loadBookmark(resp.responseJSON);if(this.onSave!=null)
{this.onSave(this,true);}},addToDirectory:function(parentDir)
{if(Object.isArray(parentDir))
{$A(parentDir).each(function(dir)
{this.addToDirectory(dir);}.bind(this));}
else if(Object.isString(parentDir))
{this.element.directories.addEntryByUUID(parentDir);}
else
{this.element.directories.addEntry(parentDir);}},removeDirectory:function(parentDir)
{if(Object.isArray(parentDir))
{$A(parentDir).each(function(dir)
{this.removeDirectory(dir);}.bind(this));}
else if(parentDir.uuid!=null)
{this.removeDirectory(parentDir.uuid);}
else if(Object.isString(parentDir))
{var rmbit=this.element.directories.bits.find(function(bit)
{return(bit.value.uuid==parentDir);});this.element.directories.bits.unset(rmbit.key);}},addTerm:function(term)
{if(Object.isArray(term))
{$A(term).each(function(t)
{this.addTerm(t);}.bind(this));}
else if(Object.isString(term))
{this.element.terms.addEntryByURI(term);}
else
{this.element.terms.addEntry(term);}},removeTerm:function(term)
{if(Object.isArray(term))
{$A(term).each(function(t)
{this.removeTerm(t);}.bind(this));}
else if(term.uri!=null)
{this.removeTerm(term.uri);}
else if(Object.isString(term))
{var rmbit=this.element.terms.bits.find(function(bit)
{return(bit.value.uri==term);});this.element.terms.bits.unset(rmbit.key);}},onSubmit:function(event)
{return false;},clear:function()
{this.element.uri.value="";this.element.uuid.value="";this.element.tagger.uri.value="";this.element.tagger.name.value="";this.element.origtitle.value="";this.element.title.value="";this.element.description.value="";$A(this.element.suggestedterms.childNodes).each(function(el)
{this.element.suggestedterms.removeChild(el);}.bind(this));this.element.terms.clear();this.element.directories.clear();this.isnew=true;this.isloaded=false;},onSave:null,onLoad:null,autoLoadTitle:function(event)
{Element.removeClassName(this.element.uri,"uri_inactive");Element.addClassName(this.element.uri,"uri_active");this.loadTitle(this.element.uri.value,true);},initialize:function(formElement)
{this.id=Element.identify(formElement);if(KOSSelector.instances.get(this.id+"_terms")==null||DirSelector.instances.get(this.id+"_directories")==null)
{setTimeout(this.initialize.bind(this,formElement),1000);}
else
{this.element={uri:$(this.id+"_uri"),uuid:$(this.id+"_uuid"),tagger:{uri:$(this.id+"_taggeruri"),name:$(this.id+"_taggername")},origtitle:$(this.id+"_origtitle"),title:$(this.id+"_title"),description:$(this.id+"_description"),suggestedterms:$(this.id+"_suggestedterms"),termcloud:$(this.id+"_termcloud"),terms:KOSSelector.instances.get(this.id+"_terms"),directories:DirSelector.instances.get(this.id+"_directories"),permissionType:null,permissions:null};try
{this.element.permissionType=document.getElementsByName(this.id+"_")}
catch(e){};this.isnew=(this.element.uuid.value=="");this.isloaded=(this.element.origtitle.value!="");if(!this.isnew&&!this.isloaded)
{this.load();}
this.element.uri.disabled=!this.isnew;if(!this.isnew)
{this.loadTitle(this.element.uri.value);}
else
{Event.observe(this.element.uri,'blur',this.autoLoadTitle.bindAsEventListener(this));}
Event.observe(formElement,"submit",this.onSubmit.bindAsEventListener(this));Event.observe($(this.id+"_savebut"),"mouseup",this.save.bindAsEventListener(this))
DigimeBookmark.instances.set(this.id,this);}}}
DigimeBookmark.instances=$H({});DigimeBookmark.preload=function()
{$$("form.bookmark").each(function(bookmarkForm)
{new DigimeBookmark(bookmarkForm);});}
DigimeBookmark.notifications={WORKING:new Notifications("info","bezel",{_title:"working",text:JS_MESSAGES["DigimeBookmark.saving"],autohide:0,opacity:0.6}),TIMEOUT:new Notifications("error","smoke",{_title:"connection_problem",text:JS_MESSAGES["DigimeBookmark.connectionproblem"],autohide:5})};Event.observe(window,"load",DigimeBookmark.preload);DigimeDirectory=Class.create();DigimeDirectory.prototype={id:null,isnew:true,isloaded:false,tagger:null,element:null,loadDirectory:function(directory)
{this.element.uuid.value=directory.uuid;this.element.title.value=directory.label;this.element.description.value=directory.description;this.element.tagger.uri.value=directory.tagger.uri;this.element.tagger.name.value=directory.tagger.name;this.element.terms.clear();this.element.directories.clear();if(directory.terms!=null)
{this.element.terms.preload(directory.terms);}
if(directory.parents!=null)
{this.element.directories.preload(directory.parents);}
if(this.element.permissionType==null&&directory.permissionType!=null)
{var perm=this.element.permissionType.find(function(el)
{return el.value==directory.permissionType;});if(perm!=null)
{perm.checked=true;}}
this.isnew=(this.element.uuid.value=="");this.isloaded=(this.element.tagger.uri.value!="");},loadSuggestedTerms:function(uuid)
{if(uuid!=null&&uuid!="")
{var req=new Ajax.Request("/services/helpers/directory?uuid="+urlencode(uuid),{method:"get",onSuccess:function(resp)
{if(resp.responseJSON===null)
{resp.responseJSON=resp.responseText.evalJSON();}
this.processLoadSuggestedTerms(resp.responseJSON);}.bind(this),onFailure:function(transport,problem)
{try{console.debug(problem);}catch(e){};}.bind(this)});}},processLoadSuggestedTerms:function(aboutDir)
{$A(this.element.suggestedterms.children).clear();$A(aboutDir.termcloud).each(function(el)
{var li=document.createElement("li");Element.addClassName(li,"font"+el["::size"]);var a=document.createElement("a");a.href="#";a.onclick=this.clickAddTerm.bindAsEventListener(this,el);Element.update(a,el.label);li.appendChild(a);this.element.suggestedterms.appendChild(li);this.element.suggestedterms.appendChild(document.createTextNode(" "));}.bind(this));if(aboutDir.termcloud.length>0)
{this.element.termcloud.style.display="block";this.element.termcloud.style.display="table-row";}
else
{this.element.termcloud.style.display="none";}},clickAddTerm:function(event,term)
{this.addTerm(term);},load:function()
{var req=new Ajax.Request("/directories/"+this.element.uuid.value,{method:"get",onSuccess:function(resp)
{if(resp.responseJSON===null)
{resp.responseJSON=resp.responseText.evalJSON();}
this.loadDirectory(resp.responseJSON);if(this.onLoad!=null)
{this.onLoad(this,true);}}.bind(this),onFailure:function(transport,problem)
{try{console.debug(problem);}catch(e){};if(this.onLoad!=null)
{this.onLoad(this,true);}}.bind(this)});},save:function(isfirstcall)
{if(isfirstcall)
{DigimeDirectory.notifications.WORKING.show();}
if(this.element.terms.hasNewEntries())
{this.element.terms.saveNewConcepts(this.save.bind(this,false));}
else if(this.element.directories.hasNewEntries())
{this.element.directories.saveNewConcepts(this.save.bind(this,false));}
else
{var directory=$H({tagger:{uri:this.element.tagger.uri.value,name:this.element.tagger.name.value},uuid:this.element.uuid.value,label:this.element.title.value,description:this.element.description.value,terms:this.element.terms.getEntries(),parents:this.element.directories.getEntries()});var _method=(this.isnew)?"put":"post";var additionalParameter="";if(this.isnew)additionalParameter="?_method=put";var req=new Ajax.Request("/directories/"+this.element.uuid.value+additionalParameter,{method:_method,contentType:"application/json",postBody:directory.toJSON(),onSuccess:function(resp)
{if(resp.responseJSON===null)
{resp.responseJSON=resp.responseText.evalJSON();}
this.loadDirectory(resp.responseJSON);if(this.onSave!=null)
{this.onSave(this,true);}}.bind(this),onComplete:function(resp)
{DigimeDirectory.notifications.WORKING.hide();},onFailure:function(transport,problem)
{DigimeDirectory.notifications.TIMEOUT.show();try{console.debug(problem);}catch(e){};if(this.onSave!=null)
{this.onSave(this,false);}}.bind(this)});}},addToDirectory:function(parentDir)
{if(Object.isArray(parentDir))
{$A(parentDir).each(function(dir)
{this.addToDirectory(dir);}.bind(this));}
else if(Object.isString(parentDir))
{this.element.directories.addEntryByUUID(parentDir);}
else
{this.element.directories.addEntry(parentDir);}},removeDirectory:function(parentDir)
{if(Object.isArray(parentDir))
{$A(parentDir).each(function(dir)
{this.removeDirectory(dir);}.bind(this));}
else if(parentDir.uuid!=null)
{this.removeDirectory(parentDir.uuid);}
else if(Object.isString(parentDir))
{var rmbit=this.element.directories.bits.find(function(bit)
{return(bit.value.uuid==parentDir);});this.element.directories.bits.unset(rmbit.key);}},addTerm:function(term)
{if(Object.isArray(term))
{$A(term).each(function(t)
{this.addTerm(t);}.bind(this));}
else if(Object.isString(term))
{this.element.terms.addEntryByURI(term);}
else
{this.element.terms.addEntry(term);}},removeTerm:function(term)
{if(Object.isArray(term))
{$A(term).each(function(t)
{this.removeTerm(t);}.bind(this));}
else if(term.uri!=null)
{this.removeTerm(term.uri);}
else if(Object.isString(term))
{var rmbit=this.element.terms.bits.find(function(bit)
{return(bit.value.uri==term);});this.element.terms.bits.unset(rmbit.key);}},onSubmit:function(event)
{return false;},onSave:null,onLoad:null,clear:function()
{this.element.uuid.value="";this.element.title.value="";this.element.description.value="";$A(this.element.suggestedterms.childNodes).each(function(el)
{this.element.suggestedterms.removeChild(el);}.bind(this));this.element.terms.clear();this.element.directories.clear();this.isnew=true;this.isloaded=false;},initialize:function(formElement)
{this.id=Element.identify(formElement);if(KOSSelector.instances.get(this.id+"_terms")==null||DirSelector.instances.get(this.id+"_directories")==null)
{setTimeout(this.initialize.bind(this,formElement),1000);}
else
{this.element={uuid:$(this.id+"_uuid"),tagger:{uri:$(this.id+"_taggeruri"),name:$(this.id+"_taggername")},title:$(this.id+"_title"),description:$(this.id+"_description"),suggestedterms:$(this.id+"_suggestedterms"),termcloud:$(this.id+"_termcloud"),terms:KOSSelector.instances.get(this.id+"_terms"),directories:DirSelector.instances.get(this.id+"_directories"),permissionType:null,permissions:null};try
{this.element.permissionType=document.getElementsByName(this.id+"_")}
catch(e){};this.isnew=(this.element.uuid.value=="");this.isloaded=(this.element.tagger.uri.value!="");if(!this.isnew&&!this.isloaded)
{this.load();}
if(!this.isnew)
{this.loadSuggestedTerms(this.element.uuid.value);}
Event.observe(formElement,"submit",this.onSubmit.bindAsEventListener(this));Event.observe($(this.id+"_savebut"),"mouseup",this.save.bindAsEventListener(this));Event.observe($(this.id+"_closebut"),"mouseup","");DigimeDirectory.instances.set(this.id,this);}}}
DigimeDirectory.instances=$H({});DigimeDirectory.preload=function()
{$$("form.directory").each(function(directoryForm)
{new DigimeDirectory(directoryForm);});}
DigimeDirectory.notifications={WORKING:new Notifications("info","bezel",{_title:"working",text:JS_MESSAGES["DigimeDirectory.saving"],autohide:0,opacity:0.6}),TIMEOUT:new Notifications("error","smoke",{_title:"connection_problem",text:JS_MESSAGES["DigimeDirectory.connectionproblem"],autohide:5})};Event.observe(window,"load",DigimeDirectory.preload);