
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(hash,property){hash.set(property,css[property]);return hash;});if(!styles.opacity)styles.set('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(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'))).hide().addClassName('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')];}

if(typeof Effect=='undefined')
throw("controls.js requires including script.aculo.us' effects.js library");var Autocompleter={}
Autocompleter.Base=Class.create({baseInitialize:function(element,update,options){element=$(element)
this.element=element;this.update=$(update);this.hasFocus=false;this.changed=false;this.active=false;this.index=0;this.entryCount=0;this.oldElementValue=this.element.value;if(this.setOptions)
this.setOptions(options);else
this.options=options||{};this.options.paramName=this.options.paramName||this.element.name;this.options.tokens=this.options.tokens||[];this.options.frequency=this.options.frequency||0.4;this.options.minChars=this.options.minChars||1;this.options.onShow=this.options.onShow||function(element,update){if(!update.style.position||update.style.position=='absolute'){update.style.position='absolute';Position.clone(element,update,{setHeight:false,offsetTop:element.offsetHeight});}
Effect.Appear(update,{duration:0.15});};this.options.onHide=this.options.onHide||function(element,update){new Effect.Fade(update,{duration:0.15})};if(typeof(this.options.tokens)=='string')
this.options.tokens=new Array(this.options.tokens);if(!this.options.tokens.include('\n'))
this.options.tokens.push('\n');this.observer=null;this.element.setAttribute('autocomplete','off');Element.hide(this.update);Event.observe(this.element,'blur',this.onBlur.bindAsEventListener(this));Event.observe(this.element,'keydown',this.onKeyPress.bindAsEventListener(this));},show:function(){if(Element.getStyle(this.update,'display')=='none')this.options.onShow(this.element,this.update);if(!this.iefix&&(Prototype.Browser.IE)&&(Element.getStyle(this.update,'position')=='absolute')){new Insertion.After(this.update,'<iframe id="'+this.update.id+'_iefix" '+'style="display:none;position:absolute;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);" '+'src="javascript:false;" frameborder="0" scrolling="no"></iframe>');this.iefix=$(this.update.id+'_iefix');}
if(this.iefix)setTimeout(this.fixIEOverlapping.bind(this),50);},fixIEOverlapping:function(){Position.clone(this.update,this.iefix,{setTop:(!this.update.style.height)});this.iefix.style.zIndex=1;this.update.style.zIndex=2;Element.show(this.iefix);},hide:function(){this.stopIndicator();if(Element.getStyle(this.update,'display')!='none')this.options.onHide(this.element,this.update);if(this.iefix)Element.hide(this.iefix);},startIndicator:function(){if(this.options.indicator)Element.show(this.options.indicator);},stopIndicator:function(){if(this.options.indicator)Element.hide(this.options.indicator);},onKeyPress:function(event){if(this.active)
switch(event.keyCode){case Event.KEY_TAB:case Event.KEY_RETURN:this.selectEntry();Event.stop(event);case Event.KEY_ESC:this.hide();this.active=false;Event.stop(event);return;case Event.KEY_LEFT:case Event.KEY_RIGHT:return;case Event.KEY_UP:this.markPrevious();this.render();Event.stop(event);return;case Event.KEY_DOWN:this.markNext();this.render();Event.stop(event);return;}
else
if(event.keyCode==Event.KEY_TAB||event.keyCode==Event.KEY_RETURN||(Prototype.Browser.WebKit>0&&event.keyCode==0))return;this.changed=true;this.hasFocus=true;if(this.observer)clearTimeout(this.observer);this.observer=setTimeout(this.onObserverEvent.bind(this),this.options.frequency*1000);},activate:function(){this.changed=false;this.hasFocus=true;this.getUpdatedChoices();},onHover:function(event){var element=Event.findElement(event,'LI');if(this.index!=element.autocompleteIndex)
{this.index=element.autocompleteIndex;this.render();}
Event.stop(event);},onClick:function(event){var element=Event.findElement(event,'LI');this.index=element.autocompleteIndex;this.selectEntry();this.hide();},onBlur:function(event){setTimeout(this.hide.bind(this),250);this.hasFocus=false;this.active=false;},render:function(){if(this.entryCount>0){for(var i=0;i<this.entryCount;i++)
this.index==i?Element.addClassName(this.getEntry(i),"selected"):Element.removeClassName(this.getEntry(i),"selected");if(this.hasFocus){this.show();this.active=true;}}else{this.active=false;this.hide();}},markPrevious:function(){if(this.index>0)this.index--
else this.index=this.entryCount-1;this.getEntry(this.index).scrollIntoView(true);},markNext:function(){if(this.index<this.entryCount-1)this.index++
else this.index=0;this.getEntry(this.index).scrollIntoView(false);},getEntry:function(index){return this.update.firstChild.childNodes[index];},getCurrentEntry:function(){return this.getEntry(this.index);},selectEntry:function(){this.active=false;this.updateElement(this.getCurrentEntry());},updateElement:function(selectedElement){if(this.options.updateElement){this.options.updateElement(selectedElement);return;}
var value='';if(this.options.select){var nodes=$(selectedElement).select('.'+this.options.select)||[];if(nodes.length>0)value=Element.collectTextNodes(nodes[0],this.options.select);}else
value=Element.collectTextNodesIgnoreClass(selectedElement,'informal');var bounds=this.getTokenBounds();if(bounds[0]!=-1){var newValue=this.element.value.substr(0,bounds[0]);var whitespace=this.element.value.substr(bounds[0]).match(/^\s+/);if(whitespace)
newValue+=whitespace[0];this.element.value=newValue+value+this.element.value.substr(bounds[1]);}else{this.element.value=value;}
this.oldElementValue=this.element.value;this.element.focus();if(this.options.afterUpdateElement)
this.options.afterUpdateElement(this.element,selectedElement);},updateChoices:function(choices){if(!this.changed&&this.hasFocus){this.update.innerHTML=choices;Element.cleanWhitespace(this.update);Element.cleanWhitespace(this.update.down());if(this.update.firstChild&&this.update.down().childNodes){this.entryCount=this.update.down().childNodes.length;for(var i=0;i<this.entryCount;i++){var entry=this.getEntry(i);entry.autocompleteIndex=i;this.addObservers(entry);}}else{this.entryCount=0;}
this.stopIndicator();this.index=0;if(this.entryCount==1&&this.options.autoSelect){this.selectEntry();this.hide();}else{this.render();}}},addObservers:function(element){Event.observe(element,"mouseover",this.onHover.bindAsEventListener(this));Event.observe(element,"click",this.onClick.bindAsEventListener(this));},onObserverEvent:function(){this.changed=false;this.tokenBounds=null;if(this.getToken().length>=this.options.minChars){this.getUpdatedChoices();}else{this.active=false;this.hide();}
this.oldElementValue=this.element.value;},getToken:function(){var bounds=this.getTokenBounds();return this.element.value.substring(bounds[0],bounds[1]).strip();},getTokenBounds:function(){if(null!=this.tokenBounds)return this.tokenBounds;var value=this.element.value;if(value.strip().empty())return[-1,0];var diff=arguments.callee.getFirstDifferencePos(value,this.oldElementValue);var offset=(diff==this.oldElementValue.length?1:0);var prevTokenPos=-1,nextTokenPos=value.length;var tp;for(var index=0,l=this.options.tokens.length;index<l;++index){tp=value.lastIndexOf(this.options.tokens[index],diff+offset-1);if(tp>prevTokenPos)prevTokenPos=tp;tp=value.indexOf(this.options.tokens[index],diff+offset);if(-1!=tp&&tp<nextTokenPos)nextTokenPos=tp;}
return(this.tokenBounds=[prevTokenPos+1,nextTokenPos]);}});Autocompleter.Base.prototype.getTokenBounds.getFirstDifferencePos=function(newS,oldS){var boundary=Math.min(newS.length,oldS.length);for(var index=0;index<boundary;++index)
if(newS[index]!=oldS[index])
return index;return boundary;};Ajax.Autocompleter=Class.create(Autocompleter.Base,{initialize:function(element,update,url,options){this.baseInitialize(element,update,options);this.options.asynchronous=true;this.options.onComplete=this.onComplete.bind(this);this.options.defaultParams=this.options.parameters||null;this.url=url;},getUpdatedChoices:function(){this.startIndicator();var entry=encodeURIComponent(this.options.paramName)+'='+
encodeURIComponent(this.getToken());this.options.parameters=this.options.callback?this.options.callback(this.element,entry):entry;if(this.options.defaultParams)
this.options.parameters+='&'+this.options.defaultParams;new Ajax.Request(this.url,this.options);},onComplete:function(request){this.updateChoices(request.responseText);}});Autocompleter.Local=Class.create(Autocompleter.Base,{initialize:function(element,update,array,options){this.baseInitialize(element,update,options);this.options.array=array;},getUpdatedChoices:function(){this.updateChoices(this.options.selector(this));},setOptions:function(options){this.options=Object.extend({choices:10,partialSearch:true,partialChars:2,ignoreCase:true,fullSearch:false,selector:function(instance){var ret=[];var partial=[];var entry=instance.getToken();var count=0;for(var i=0;i<instance.options.array.length&&ret.length<instance.options.choices;i++){var elem=instance.options.array[i];var foundPos=instance.options.ignoreCase?elem.toLowerCase().indexOf(entry.toLowerCase()):elem.indexOf(entry);while(foundPos!=-1){if(foundPos==0&&elem.length!=entry.length){ret.push("<li><strong>"+elem.substr(0,entry.length)+"</strong>"+
elem.substr(entry.length)+"</li>");break;}else if(entry.length>=instance.options.partialChars&&instance.options.partialSearch&&foundPos!=-1){if(instance.options.fullSearch||/\s/.test(elem.substr(foundPos-1,1))){partial.push("<li>"+elem.substr(0,foundPos)+"<strong>"+
elem.substr(foundPos,entry.length)+"</strong>"+elem.substr(foundPos+entry.length)+"</li>");break;}}
foundPos=instance.options.ignoreCase?elem.toLowerCase().indexOf(entry.toLowerCase(),foundPos+1):elem.indexOf(entry,foundPos+1);}}
if(partial.length)
ret=ret.concat(partial.slice(0,instance.options.choices-ret.length))
return"<ul>"+ret.join('')+"</ul>";}},options||{});}});Field.scrollFreeActivate=function(field){setTimeout(function(){Field.activate(field);},1);}
Ajax.InPlaceEditor=Class.create({initialize:function(element,url,options){this.url=url;this.element=element=$(element);this.prepareOptions();this._controls={};arguments.callee.dealWithDeprecatedOptions(options);Object.extend(this.options,options||{});if(!this.options.formId&&this.element.id){this.options.formId=this.element.id+'-inplaceeditor';if($(this.options.formId))
this.options.formId='';}
if(this.options.externalControl)
this.options.externalControl=$(this.options.externalControl);if(!this.options.externalControl)
this.options.externalControlOnly=false;this._originalBackground=this.element.getStyle('background-color')||'transparent';this.element.title=this.options.clickToEditText;this._boundCancelHandler=this.handleFormCancellation.bind(this);this._boundComplete=(this.options.onComplete||Prototype.emptyFunction).bind(this);this._boundFailureHandler=this.handleAJAXFailure.bind(this);this._boundSubmitHandler=this.handleFormSubmission.bind(this);this._boundWrapperHandler=this.wrapUp.bind(this);this.registerListeners();},checkForEscapeOrReturn:function(e){if(!this._editing||e.ctrlKey||e.altKey||e.shiftKey)return;if(Event.KEY_ESC==e.keyCode)
this.handleFormCancellation(e);else if(Event.KEY_RETURN==e.keyCode)
this.handleFormSubmission(e);},createControl:function(mode,handler,extraClasses){var control=this.options[mode+'Control'];var text=this.options[mode+'Text'];if('button'==control){var btn=document.createElement('input');btn.type='submit';btn.value=text;btn.className='editor_'+mode+'_button';if('cancel'==mode)
btn.onclick=this._boundCancelHandler;this._form.appendChild(btn);this._controls[mode]=btn;}else if('link'==control){var link=document.createElement('a');link.href='#';link.appendChild(document.createTextNode(text));link.onclick='cancel'==mode?this._boundCancelHandler:this._boundSubmitHandler;link.className='editor_'+mode+'_link';if(extraClasses)
link.className+=' '+extraClasses;this._form.appendChild(link);this._controls[mode]=link;}},createEditField:function(){var text=(this.options.loadTextURL?this.options.loadingText:this.getText());var fld;if(1>=this.options.rows&&!/\r|\n/.test(this.getText())){fld=document.createElement('input');fld.type='text';var size=this.options.size||this.options.cols||0;if(0<size)fld.size=size;}else{fld=document.createElement('textarea');fld.rows=(1>=this.options.rows?this.options.autoRows:this.options.rows);fld.cols=this.options.cols||40;}
fld.name=this.options.paramName;fld.value=text;fld.className='editor_field';if(this.options.submitOnBlur)
fld.onblur=this._boundSubmitHandler;this._controls.editor=fld;if(this.options.loadTextURL)
this.loadExternalText();this._form.appendChild(this._controls.editor);},createForm:function(){var ipe=this;function addText(mode,condition){var text=ipe.options['text'+mode+'Controls'];if(!text||condition===false)return;ipe._form.appendChild(document.createTextNode(text));};this._form=$(document.createElement('form'));this._form.id=this.options.formId;this._form.addClassName(this.options.formClassName);this._form.onsubmit=this._boundSubmitHandler;this.createEditField();if('textarea'==this._controls.editor.tagName.toLowerCase())
this._form.appendChild(document.createElement('br'));if(this.options.onFormCustomization)
this.options.onFormCustomization(this,this._form);addText('Before',this.options.okControl||this.options.cancelControl);this.createControl('ok',this._boundSubmitHandler);addText('Between',this.options.okControl&&this.options.cancelControl);this.createControl('cancel',this._boundCancelHandler,'editor_cancel');addText('After',this.options.okControl||this.options.cancelControl);},destroy:function(){if(this._oldInnerHTML)
this.element.innerHTML=this._oldInnerHTML;this.leaveEditMode();this.unregisterListeners();},enterEditMode:function(e){if(this._saving||this._editing)return;this._editing=true;this.triggerCallback('onEnterEditMode');if(this.options.externalControl)
this.options.externalControl.hide();this.element.hide();this.createForm();this.element.parentNode.insertBefore(this._form,this.element);if(!this.options.loadTextURL)
this.postProcessEditField();if(e)Event.stop(e);},enterHover:function(e){if(this.options.hoverClassName)
this.element.addClassName(this.options.hoverClassName);if(this._saving)return;this.triggerCallback('onEnterHover');},getText:function(){return this.element.innerHTML;},handleAJAXFailure:function(transport){this.triggerCallback('onFailure',transport);if(this._oldInnerHTML){this.element.innerHTML=this._oldInnerHTML;this._oldInnerHTML=null;}},handleFormCancellation:function(e){this.wrapUp();if(e)Event.stop(e);},handleFormSubmission:function(e){var form=this._form;var value=$F(this._controls.editor);this.prepareSubmission();var params=this.options.callback(form,value)||'';if(Object.isString(params))
params=params.toQueryParams();params.editorId=this.element.id;if(this.options.htmlResponse){var options=Object.extend({evalScripts:true},this.options.ajaxOptions);Object.extend(options,{parameters:params,onComplete:this._boundWrapperHandler,onFailure:this._boundFailureHandler});new Ajax.Updater({success:this.element},this.url,options);}else{var options=Object.extend({method:'get'},this.options.ajaxOptions);Object.extend(options,{parameters:params,onComplete:this._boundWrapperHandler,onFailure:this._boundFailureHandler});new Ajax.Request(this.url,options);}
if(e)Event.stop(e);},leaveEditMode:function(){this.element.removeClassName(this.options.savingClassName);this.removeForm();this.leaveHover();this.element.style.backgroundColor=this._originalBackground;this.element.show();if(this.options.externalControl)
this.options.externalControl.show();this._saving=false;this._editing=false;this._oldInnerHTML=null;this.triggerCallback('onLeaveEditMode');},leaveHover:function(e){if(this.options.hoverClassName)
this.element.removeClassName(this.options.hoverClassName);if(this._saving)return;this.triggerCallback('onLeaveHover');},loadExternalText:function(){this._form.addClassName(this.options.loadingClassName);this._controls.editor.disabled=true;var options=Object.extend({method:'get'},this.options.ajaxOptions);Object.extend(options,{parameters:'editorId='+encodeURIComponent(this.element.id),onComplete:Prototype.emptyFunction,onSuccess:function(transport){this._form.removeClassName(this.options.loadingClassName);var text=transport.responseText;if(this.options.stripLoadedTextTags)
text=text.stripTags();this._controls.editor.value=text;this._controls.editor.disabled=false;this.postProcessEditField();}.bind(this),onFailure:this._boundFailureHandler});new Ajax.Request(this.options.loadTextURL,options);},postProcessEditField:function(){var fpc=this.options.fieldPostCreation;if(fpc)
$(this._controls.editor)['focus'==fpc?'focus':'activate']();},prepareOptions:function(){this.options=Object.clone(Ajax.InPlaceEditor.DefaultOptions);Object.extend(this.options,Ajax.InPlaceEditor.DefaultCallbacks);[this._extraDefaultOptions].flatten().compact().each(function(defs){Object.extend(this.options,defs);}.bind(this));},prepareSubmission:function(){this._saving=true;this.removeForm();this.leaveHover();this.showSaving();},registerListeners:function(){this._listeners={};var listener;$H(Ajax.InPlaceEditor.Listeners).each(function(pair){listener=this[pair.value].bind(this);this._listeners[pair.key]=listener;if(!this.options.externalControlOnly)
this.element.observe(pair.key,listener);if(this.options.externalControl)
this.options.externalControl.observe(pair.key,listener);}.bind(this));},removeForm:function(){if(!this._form)return;this._form.remove();this._form=null;this._controls={};},showSaving:function(){this._oldInnerHTML=this.element.innerHTML;this.element.innerHTML=this.options.savingText;this.element.addClassName(this.options.savingClassName);this.element.style.backgroundColor=this._originalBackground;this.element.show();},triggerCallback:function(cbName,arg){if('function'==typeof this.options[cbName]){this.options[cbName](this,arg);}},unregisterListeners:function(){$H(this._listeners).each(function(pair){if(!this.options.externalControlOnly)
this.element.stopObserving(pair.key,pair.value);if(this.options.externalControl)
this.options.externalControl.stopObserving(pair.key,pair.value);}.bind(this));},wrapUp:function(transport){this.leaveEditMode();this._boundComplete(transport,this.element);}});Object.extend(Ajax.InPlaceEditor.prototype,{dispose:Ajax.InPlaceEditor.prototype.destroy});Ajax.InPlaceCollectionEditor=Class.create(Ajax.InPlaceEditor,{initialize:function($super,element,url,options){this._extraDefaultOptions=Ajax.InPlaceCollectionEditor.DefaultOptions;$super(element,url,options);},createEditField:function(){var list=document.createElement('select');list.name=this.options.paramName;list.size=1;this._controls.editor=list;this._collection=this.options.collection||[];if(this.options.loadCollectionURL)
this.loadCollection();else
this.checkForExternalText();this._form.appendChild(this._controls.editor);},loadCollection:function(){this._form.addClassName(this.options.loadingClassName);this.showLoadingText(this.options.loadingCollectionText);var options=Object.extend({method:'get'},this.options.ajaxOptions);Object.extend(options,{parameters:'editorId='+encodeURIComponent(this.element.id),onComplete:Prototype.emptyFunction,onSuccess:function(transport){var js=transport.responseText.strip();if(!/^\[.*\]$/.test(js))
throw'Server returned an invalid collection representation.';this._collection=eval(js);this.checkForExternalText();}.bind(this),onFailure:this.onFailure});new Ajax.Request(this.options.loadCollectionURL,options);},showLoadingText:function(text){this._controls.editor.disabled=true;var tempOption=this._controls.editor.firstChild;if(!tempOption){tempOption=document.createElement('option');tempOption.value='';this._controls.editor.appendChild(tempOption);tempOption.selected=true;}
tempOption.update((text||'').stripScripts().stripTags());},checkForExternalText:function(){this._text=this.getText();if(this.options.loadTextURL)
this.loadExternalText();else
this.buildOptionList();},loadExternalText:function(){this.showLoadingText(this.options.loadingText);var options=Object.extend({method:'get'},this.options.ajaxOptions);Object.extend(options,{parameters:'editorId='+encodeURIComponent(this.element.id),onComplete:Prototype.emptyFunction,onSuccess:function(transport){this._text=transport.responseText.strip();this.buildOptionList();}.bind(this),onFailure:this.onFailure});new Ajax.Request(this.options.loadTextURL,options);},buildOptionList:function(){this._form.removeClassName(this.options.loadingClassName);this._collection=this._collection.map(function(entry){return 2===entry.length?entry:[entry,entry].flatten();});var marker=('value'in this.options)?this.options.value:this._text;var textFound=this._collection.any(function(entry){return entry[0]==marker;}.bind(this));this._controls.editor.update('');var option;this._collection.each(function(entry,index){option=document.createElement('option');option.value=entry[0];option.selected=textFound?entry[0]==marker:0==index;option.appendChild(document.createTextNode(entry[1]));this._controls.editor.appendChild(option);}.bind(this));this._controls.editor.disabled=false;Field.scrollFreeActivate(this._controls.editor);}});Ajax.InPlaceEditor.prototype.initialize.dealWithDeprecatedOptions=function(options){if(!options)return;function fallback(name,expr){if(name in options||expr===undefined)return;options[name]=expr;};fallback('cancelControl',(options.cancelLink?'link':(options.cancelButton?'button':options.cancelLink==options.cancelButton==false?false:undefined)));fallback('okControl',(options.okLink?'link':(options.okButton?'button':options.okLink==options.okButton==false?false:undefined)));fallback('highlightColor',options.highlightcolor);fallback('highlightEndColor',options.highlightendcolor);};Object.extend(Ajax.InPlaceEditor,{DefaultOptions:{ajaxOptions:{},autoRows:3,cancelControl:'link',cancelText:'cancel',clickToEditText:'Click to edit',externalControl:null,externalControlOnly:false,fieldPostCreation:'activate',formClassName:'inplaceeditor-form',formId:null,highlightColor:'#ffff99',highlightEndColor:'#ffffff',hoverClassName:'',htmlResponse:true,loadingClassName:'inplaceeditor-loading',loadingText:'Loading...',okControl:'button',okText:'ok',paramName:'value',rows:1,savingClassName:'inplaceeditor-saving',savingText:'Saving...',size:0,stripLoadedTextTags:false,submitOnBlur:false,textAfterControls:'',textBeforeControls:'',textBetweenControls:''},DefaultCallbacks:{callback:function(form){return Form.serialize(form);},onComplete:function(transport,element){new Effect.Highlight(element,{startcolor:this.options.highlightColor,keepBackgroundImage:true});},onEnterEditMode:null,onEnterHover:function(ipe){ipe.element.style.backgroundColor=ipe.options.highlightColor;if(ipe._effect)
ipe._effect.cancel();},onFailure:function(transport,ipe){alert('Error communication with the server: '+transport.responseText.stripTags());},onFormCustomization:null,onLeaveEditMode:null,onLeaveHover:function(ipe){ipe._effect=new Effect.Highlight(ipe.element,{startcolor:ipe.options.highlightColor,endcolor:ipe.options.highlightEndColor,restorecolor:ipe._originalBackground,keepBackgroundImage:true});}},Listeners:{click:'enterEditMode',keydown:'checkForEscapeOrReturn',mouseover:'enterHover',mouseout:'leaveHover'}});Ajax.InPlaceCollectionEditor.DefaultOptions={loadingCollectionText:'Loading options...'};Form.Element.DelayedObserver=Class.create({initialize:function(element,delay,callback){this.delay=delay||0.5;this.element=$(element);this.callback=callback;this.timer=null;this.lastValue=$F(this.element);Event.observe(this.element,'keyup',this.delayedListener.bindAsEventListener(this));},delayedListener:function(event){if(this.lastValue==$F(this.element))return;if(this.timer)clearTimeout(this.timer);this.timer=setTimeout(this.onTimerEvent.bind(this),this.delay*1000);this.lastValue=$F(this.element);},onTimerEvent:function(){this.timer=null;this.callback(this.element,$F(this.element));}});

var supported=document.getElementById&&document.childNodes&&document.createElement&&document.getElementsByTagName;function addEventSimple(obj,evt,fn){if(obj.addEventListener)
obj.addEventListener(evt,fn,false);else if(obj.attachEvent)
obj.attachEvent('on'+evt,fn);}
addEventSimple(window,'load',function(){checkBrowserWidth();prepareOverhoorOptiesFormulier();prepareTabelformulierUitbreiden();wrtsSpeechWoordenlijst.initialize();wrtsSpeechOverhoring.initialize();wrtsSpeech.initialize();});addEventSimple(window,'resize',function(){checkBrowserWidth();});function prepareOverhoorOptiesFormulier(){if(!supported){return false;}
var spellingKeuze=$("overhoortype_spelling");if(spellingKeuze){var dl=spellingKeuze;while(dl.nodeName!="DL")dl=dl.parentNode;for(var i=0;i<dl.childNodes.length;i++){if(dl.childNodes[i].nodeName=="DT"||dl.childNodes[i].nodeName=="DD"&&dl.childNodes[i].className.match("taalVolgorde")){dl.childNodes[i].className="taalVolgorde "+
(spellingKeuze.checked?"taalVolgordeEenTaal":"taalVolgorde");}}
var dd=spellingKeuze;while(dd.nodeName!="DD")dd=dd.parentNode;var inputs=dd.getElementsByTagName("input");for(var i=0;i<inputs.length;i++){inputs[i].onchange=prepareOverhoorOptiesFormulier;inputs[i].onclick=prepareOverhoorOptiesFormulier;}
$("verbergVraagNaDT").style.display=spellingKeuze.checked?"":"none";$("verbergVraagNaDD").style.display=spellingKeuze.checked?"":"none";}
return true;}
function prepareTabelformulierUitbreiden(){if(!supported){return false;}
var tables=document.getElementsByTagName("table");for(var i=0;i<tables.length;i++){if(tables[i].className.match("uitbreidbareTabel")){var trs=tables[i].getElementsByTagName("tr");for(var j=trs.length-1;j>=0;j--){if(trs[j].className.match("einde")){var tds=trs[j].getElementsByTagName("td");for(var k=0;k<tds.length;k++){if(tds[k].className.match("uitbreidLink")){var label=tds[k].getElementsByTagName("label")[0]
var labelTekst=label.innerHTML;var a=document.createElement("a");a.innerHTML=labelTekst;a.href="#";a.onclick=function(){for(var i=0;i<5;i++){tabelformulierUitbreiden(this,false);}return false;};a.tabIndex=1000;var span=label.parentNode;span.innerHTML="";span.appendChild(a);break;}}}else{setLaatsteUitbreidRegel(tables[i],trs[j]);break;}}
for(var j=trs.length-1;j>=0;j--){if(trs[j].className.match("deletable")){var inputs=trs[j].getElementsByTagName("input");var allesVol=true;for(var k=0;k<inputs.length;k++){if(inputs[k].value=="")allesVol=false;}
if(allesVol){var image=document.createElement("img");image.src="http://assets.wrts.nl/images/delete-kruisje.gif";image.width=12;image.height=12;image.alt=imageVerwijderenAlt;image.onclick=function(){var tr=this.parentNode.parentNode;var inputs=tr.getElementsByTagName("input");for(var i=0;i<inputs.length;i++){if(inputs[i].type=="text"){inputs[i].value="";inputs[i].disabled=true;inputs[i].style.background="#ddd";}}
this.parentNode.removeChild(this);};image.style.padding="11px 0 0 3px";image.style.position="absolute";inputs[inputs.length-1].parentNode.appendChild(image);}}}}}}
function setLaatsteUitbreidRegel(tabel,laatsteUitbreidRegelTr){if(tabel.laatsteUitbreidRegel){var inputs=tabel.laatsteUitbreidRegel.getElementsByTagName("input");inputs[inputs.length-1].onkeydown=function(){};}
tabel.laatsteUitbreidRegel=laatsteUitbreidRegelTr;var inputs=tabel.laatsteUitbreidRegel.getElementsByTagName("input");inputs[inputs.length-1].onkeydown=function(e){var code;if(!e)var e=window.event;if(e.keyCode)code=e.keyCode;else if(e.which)code=e.which;if(code==9&&!e.shiftKey){if(this.value!=""){tabelformulierUitbreiden(this,true);return false;}}
return true;};}
function tabelformulierUitbreiden(nieuwTD,zetFocus){if(!supported){return false;}
var huidigeTabel=nieuwTD;while(huidigeTabel.nodeName!="TABLE")huidigeTabel=huidigeTabel.parentNode;var inputs=huidigeTabel.laatsteUitbreidRegel.getElementsByTagName("INPUT");var naamParts=inputs[0].name.match(/^([^[]+)\[([0-9]+)\](.+)$/);var oudRegelNummer=naamParts[2];var nieuweTR=huidigeTabel.laatsteUitbreidRegel.cloneNode(true);for(var i=0;i<nieuweTR.childNodes.length;i++){var curNode=nieuweTR.childNodes[i];if(curNode.nodeName=='TD'){if(curNode.innerHTML.match(/^[0-9]+\.$/)){var nummer=curNode.innerHTML.match(/^[0-9]+/);curNode.innerHTML=""+(nummer*1+1)+".";}else{for(var x=0;x<curNode.childNodes.length;x++){var curInput=curNode.childNodes[x];if(curInput.nodeName=='INPUT'){curInput.value='';}else if(curInput.nodeName=='SELECT'){curInput.selectedIndex=0;}
if(curInput.nodeName=="INPUT"||curInput.nodeName=="SELECT"){var naamParts=curInput.name.match(/^([^[]+)\[([0-9]+)\](.+)$/);curInput.name=naamParts[1]+"["+(oudRegelNummer*1+1)+"]"+naamParts[3];break;}}}}}
var volgendeRegel=huidigeTabel.laatsteUitbreidRegel.nextSibling;huidigeTabel.laatsteUitbreidRegel.parentNode.insertBefore(nieuweTR,volgendeRegel);setLaatsteUitbreidRegel(huidigeTabel,nieuweTR);if(document.getElementById("midcolOnder")){document.getElementById("midcolOnder").style.position="relative";document.getElementById("midcolOnder").style.position="";}
if(zetFocus){for(var i=0;i<nieuweTR.childNodes.length;i++){var inputs=nieuweTR.childNodes[i].getElementsByTagName("INPUT");if(inputs.length>0){inputs[0].focus();break;}}}
return false;}
var curCaroussel=null;var carousselTimeout=false;function prepareCaroussel(){var caroussel=document.getElementById("caroussel");if(caroussel){setCarousselFocus(caroussel.firstChild);document.onkeydown=function(e){var code;if(!e)var e=window.event;if(e.keyCode)code=e.keyCode;else if(e.which)code=e.which;if(code==32&&curCaroussel){geefAntwoord(curCaroussel.getElementsByTagName("a")[0].innerHTML);}
if(49<=code&&code<=57){var pos=code-48;var link=document.getElementById("antwoord"+pos);if(link)geefAntwoord(link.innerHTML);}};}}
function setCarousselFocus(node){while(node.nextSibling&&node.nextSibling.nodeName!="LI")node=node.nextSibling;if(!node.nextSibling){increaseCarousselSpeed();node=node.parentNode.firstChild;}else{node=node.nextSibling;}
while(node.nodeName!="LI"){if(!node.nextSibling){increaseCarousselSpeed();node=node.parentNode.firstChild;}else{node=node.nextSibling;}}
removeCarousselBehaviour(curCaroussel);addCarousselBehaviour(node);curCaroussel=node;carousselTimeout=setTimeout("setCarousselFocus(curCaroussel);",curCarousselSpeed);}
function increaseCarousselSpeed(){}
function addCarousselBehaviour(li){li.getElementsByTagName("a")[0].className="actief";li.getElementsByTagName("a")[0].focus();li.getElementsByTagName("a")[0].onblur=function(){removeCarousselBehaviour(curCaroussel);document.onkeydown="";clearTimeout(carousselTimeout);};}
function removeCarousselBehaviour(li){if(li)li.getElementsByTagName("a")[0].className="";if(li)li.getElementsByTagName("a")[0].onblur="";}
function geefAntwoord(antwoord){if(carousselTimeout)clearTimeout(carousselTimeout);document.forms.overhoor_antwoord.antwoord.value=antwoord;document.forms.overhoor_antwoord.submit();return false;}
function smoothScrollTo(destinationLink){var destx=destinationLink.offsetLeft;var desty=destinationLink.offsetTop;var thisNode=destinationLink;while(thisNode.offsetParent&&(thisNode.offsetParent!=document.body)){thisNode=thisNode.offsetParent;destx+=thisNode.offsetLeft;desty+=thisNode.offsetTop;}
clearInterval(ss_INTERVAL);cypos=ss_getCurrentYPos();ss_stepsize=parseInt((desty-cypos)/ss_STEPS);ss_INTERVAL=setInterval('ss_scrollWindow('+ss_stepsize+','+desty+')',10);}
function ss_scrollWindow(scramount,dest){wascypos=ss_getCurrentYPos();isAbove=(wascypos<dest);window.scrollTo(0,wascypos+scramount);iscypos=ss_getCurrentYPos();isAboveNow=(iscypos<dest);if((isAbove!=isAboveNow)||(wascypos==iscypos)){window.scrollTo(0,dest);clearInterval(ss_INTERVAL);}}
function ss_getCurrentYPos(){if(document.body&&document.body.scrollTop)
return document.body.scrollTop;if(document.documentElement&&document.documentElement.scrollTop)
return document.documentElement.scrollTop;if(window.pageYOffset)
return window.pageYOffset;return 0;}
var ss_INTERVAL;var ss_STEPS=20;function prepareerUitklapResultaten(){var divs=$('eerdereOverhoringenContainer').getElementsByTagName("div");for(var i=0;i<divs.length;i++){if(divs[i].className.match(/overhoringResultaatErna/)){divs[i].getElementsByTagName("h2")[0].onclick=function(){var divs=this.parentNode.getElementsByTagName("div");var div=false;for(var i=0;i<divs.length;i++){if(divs[i].className=="inhoud")div=divs[i];}
if(this.parentNode.className.match(/overhoringResultaatIngeklapt/)){this.parentNode.className=this.parentNode.className.replace(/\s*overhoringResultaatIngeklapt\s*/,"");new Effect.BlindDown(div,{duration:0.5,afterFinish:function(eobj){smoothScrollTo(eobj.element.parentNode);}});}else{this.parentNode.className=this.parentNode.className+=" overhoringResultaatIngeklapt";new Effect.BlindUp(div,{duration:0.8});}};}}}
function checkBrowserWidth(){if(!document.getElementById)return true;var theWidth=getBrowserWidth();var s=document.getElementById("minderDan800Styles");if(s)s.disabled=true;if(s)s.disabled=(theWidth>850);var s=document.getElementById("minderDan1024Styles");if(s)s.disabled=true;if(s)s.disabled=(theWidth>990);return true;}
function getBrowserWidth(){if(window.innerWidth){return window.innerWidth;}else if(document.documentElement&&document.documentElement.clientWidth!=0){return document.documentElement.clientWidth;}else if(document.body){return document.body.clientWidth;}
return 0;}
function createCookie(name,value,days){if(days){var date=new Date();date.setTime(date.getTime()+(days*24*60*60*1000));var expires="; expires="+date.toGMTString();}
else var expires="";document.cookie=name+"="+value+expires+"; path=/";}
function readCookie(name){var nameEQ=name+"=";var ca=document.cookie.split(';');for(var i=0;i<ca.length;i++){var c=ca[i];while(c.charAt(0)==' ')c=c.substring(1,c.length);if(c.indexOf(nameEQ)==0)return c.substring(nameEQ.length,c.length);}
return null;}
function eraseCookie(name){createCookie(name,"",-1);}
function uitklapLijstenContentTrs(kop,animate){var trs=new Array();var finished=false;var next=kop;while(next.nextSibling&&!finished){next=next.nextSibling;if(next.nodeName=="TR"){if(next.className.match("uitklapContent")){trs[trs.length]=next;}else{finished=true;}}}
return trs;}
var contentTrs=null;function uitklapLijstenKlapIn(kop,animate){kop.className=kop.className.replace(" uitgeklapt","");contentTrs=uitklapLijstenContentTrs(kop);for(var i=0;i<contentTrs.length;i++){if(animate){var tim=30*i;window.setTimeout('contentTrs['+i+'].style.display = "none"',tim);}else{contentTrs[i].style.display="none";}}
var laatsteTr=contentTrs[contentTrs.length-1];if(laatsteTr.className.match("uitklapEinde")){laatsteTr.className=laatsteTr.className.replace(" uitklapEinde","");kop.className+=" uitklapEinde";}
kop.onclick=function(){var lijstId=kop.className.match(/lijstId([a-z0-9]+)/)[1];uitklapLijstenKlapUit(this,true)
updateLijstenUitklapCookie();};}
function uitklapLijstenKlapUit(kop,animate){kop.className+=" uitgeklapt";contentTrs=uitklapLijstenContentTrs(kop);for(var i=0;i<contentTrs.length;i++){if(animate){var tim=30*i;window.setTimeout('contentTrs['+i+'].style.display = ""',tim);}else{contentTrs[i].style.display="";}}
var laatsteTr=contentTrs[contentTrs.length-1];if(kop.className.match("uitklapEinde")){kop.className=kop.className.replace(" uitklapEinde","");laatsteTr.className+=" uitklapEinde";}
kop.onclick=function(){var lijstId=kop.className.match(/lijstId([a-z0-9]+)/)[1];uitklapLijstenKlapIn(this,true);updateLijstenUitklapCookie();};}
function prepareLijstenUitklap(){var tabel=$("uitklapbareWoordenlijsten");if(!tabel)return;var vorigeCookie=readCookie("wrtsOpenLijsten");if(vorigeCookie==null)vorigeCookie=".";createCookie("wrtsOpenLijsten",vorigeCookie,100);var trs=tabel.getElementsByTagName("tr");for(var i=0;i<trs.length;i++){if(trs[i].className.match("uitklapLijst")){var lijstId=trs[i].className.match(/lijstId([a-z0-9]+)/)[1];if(vorigeCookie.match("."+lijstId+".")){uitklapLijstenKlapUit(trs[i],false);}else{uitklapLijstenKlapIn(trs[i],false);}}}
updateLijstenUitklapCookie();}
function updateLijstenUitklapCookie(){var tabel=$("uitklapbareWoordenlijsten");if(!tabel)return;var cookie="";var trs=tabel.getElementsByTagName("tr");for(var i=0;i<trs.length;i++){if(trs[i].className.match("uitklapLijst")){var lijstId=trs[i].className.match(/lijstId([a-z0-9]+)/)[1];if(trs[i].className.match(/uitgeklapt/)){cookie=cookie+"."+lijstId+".";}}}
createCookie("wrtsOpenLijsten",cookie,100);}
function spreekEngelsTTSModeId(agent,tekst){agent.TTSModeId="{227A0E41-A92A-11d1-B17B-0020AFED142E}";agent.Speak(tekst);}
function wrtsWoordSort(taal){var inputs=document.getElementsByTagName("input");var woordenA=new Array();var woordenB=new Array();var woordenSortA=new Array();var woordenSortB=new Array();var woordenNrs=new Array();for(var i=0;i<inputs.length;i++){var nrs=inputs[i].name.match(/\[([0-9]+)\]/);if(nrs)nr=nrs[1];if(inputs[i].name.match(/woord_a/)){woordenA[nr]=inputs[i].value;woordenSortA[nr]=wrtsVervangBijzondereTekens(woordenA[nr]).toLowerCase();if(woordenSortA[nr].match(/^\s*$/))woordenSortA[nr]="}";woordenNrs.push(nr);}
if(inputs[i].name.match(/woord_b/)){woordenB[nr]=inputs[i].value;woordenSortB[nr]=wrtsVervangBijzondereTekens(woordenB[nr]).toLowerCase();if(woordenSortB[nr].match(/^\s*$/))woordenSortB[nr]="}";}}
if(taal=="b"){var tmp=woordenSortA;woordenSortA=woordenSortB;woordenSortB=tmp;}
var wrtsWoordCompare=function(a,b){var wrdAA=woordenSortA[a];var wrdAB=woordenSortA[b];var wrdBA=woordenSortB[a];var wrdBB=woordenSortB[b];if(wrdAA==wrdAB){if(wrdBA==wrdBB)return 0;if(wrdBA<wrdBB)return-1;return 1;}
if(wrdAA<wrdAB)return-1;return 1;}
woordenNrs=woordenNrs.sort(wrtsWoordCompare);var x=0;for(var i=0;i<inputs.length;i++){if(inputs[i].name.match(/woord_a/)){inputs[i].value=woordenA[woordenNrs[x]];}
if(inputs[i].name.match(/woord_b/)){inputs[i].value=woordenB[woordenNrs[x]];x++;}}}
function prepareWoordenSorteren(){if(!supported)return true;var lijst_taal_a=document.getElementById("lijst_taal_a");var lijst_taal_b=document.getElementById("lijst_taal_b");if(lijst_taal_a&&lijst_taal_b){var td,label,lnk;td=lijst_taal_a.parentNode;label=td.getElementsByTagName("label")[0];lnk=document.createElement("span");lnk.className="sorteren";lnk.innerHTML="sorteren";lnk.onclick=function(){wrtsWoordSort("a");return false;};td.insertBefore(lnk,label.nextSibling);td=lijst_taal_b.parentNode;label=td.getElementsByTagName("label")[0];lnk=document.createElement("span");lnk.className="sorteren";lnk.innerHTML="sorteren";lnk.onclick=function(){wrtsWoordSort("b");return false;};td.insertBefore(lnk,label.nextSibling);}}
var safePostLoginCallback=null;function keepSession(keepSessionUrl){new PeriodicalExecuter(function(){new Ajax.Request(keepSessionUrl,{method:'get'});},15*60);}
function prepareSafePost(params){if(supported&&$(params.formulierId).request){if(params.keepSessionUrl){new PeriodicalExecuter(function(){new Ajax.Request(params.keepSessionUrl,{method:'get'});},15*60);}
$(params.formulierId).safeSubmit=function(){if(params.beforeRequest)params.beforeRequest();this.request({onSuccess:function(response){if(response.responseText.match(/^OK:/)){document.location.href=response.responseText.split(':')[1];}else if(response.responseText.match(/^NOLOGIN/)){var iframe=document.createElement('iframe');iframe.src=params.loginIframeSrc;iframe.width='90%';iframe.height='500';iframe.frameBorder=0;iframe.border=0;iframe.spacing=0;iframe.frameSpacing=0;iframe.scrolling='no';iframe.align='center';var body=document.getElementsByTagName('body')[0];body.appendChild(iframe);body.className+=' hide-all-elements';safePostLoginCallback=function(){iframe.parentNode.removeChild(iframe);body.className=body.className.replace(/hide-all-elements/,'');$(params.formulierId).safeSubmit();};}else{if(params.onError)params.onError();}},onFailure:function(response){if(params.onError)params.onError();},onException:function(response){if(params.onError)params.onError();},parameters:{safe_post:true}});};$(params.formulierId).onsubmit=function(){this.safeSubmit();return false;};}}
function logtts(taal,woord){if(pageTracker&&pageTracker._trackEvent){pageTracker._trackEvent("TTS","Speak",(""+taal).toLowerCase(),(""+woord).length);}}

function updateVraagContainer(originalRequest){if(originalRequest.responseText.match(/^\/overhoor\/klaar\/[0-9]+$/)){document.location.href=originalRequest.responseText;}else{$('vraagContainer').innerHTML=originalRequest.responseText;doeVerbergVraag();activeerAntwoordVeld();}}
function activeerAntwoordVeld(spreekNiet){if(document.getElementById){var antwoordVeld=document.getElementById("antwoord");if(antwoordVeld&&antwoordVeld.type=="text"){if(!antwoordVeld.disabled)antwoordVeld.focus();if(antwoordVeld.select)antwoordVeld.select();}else if(document.getElementById("controleerKnop")){setTimeout('document.getElementById("controleerKnop").focus();',100);}
if(document.getElementById("vraagTekst")&&!spreekNiet){wrtsSpeechOverhoring.speakAuto(document.getElementById("vraagTekst"));}}}
function doeVerbergVraag(){var antwoordVeld=$("antwoord");if(antwoordVeld&&verbergVraagNa){antwoordVeld.disabled=true;antwoordVeld.className+=" disabled";setTimeout('Effect.Fade("vraagTekst", {to:0.001,afterFinish:function(){var antwoordVeld = $("antwoord");if(antwoordVeld){antwoordVeld.disabled = false;antwoordVeld.className=antwoordVeld.className.replace(" disabled","");}activeerAntwoordVeld(true);}});',verbergVraagNa);}}
function updateMidcolOnderPosition(){var midcolOnder=document.getElementById("midcolOnder");if(midcolOnder){midcolOnder.style.position="relative";midcolOnder.style.position="absolute";}}
function toonAntwoord(antwoordLink){antwoordLink.parentNode.getElementsByTagName("span")[0].style.display="inline";antwoordLink.parentNode.removeChild(antwoordLink);document.getElementById("hadjehetgoedKop").style.display="inline";document.getElementById("hadjehetgoed").style.display="inline";}
function geefResultaat(resultaat){document.forms.overhoor_antwoord.resultaat.value=resultaat;if(enableXmlHttpRequestOverhoring){if(isXhrOverhoorLock())return false;setXhrOverhoorLock();new Ajax.Request(document.forms.overhoor_antwoord.action,{asynchronous:true,evalScripts:true,onLoading:function(request){Element.show('indicator');},onComplete:function(request){freeXhrOverhoorLock();Element.hide('indicator');updateVraagContainer(request);},parameters:Form.serialize(document.forms.overhoor_antwoord)});}else{document.forms.overhoor_antwoord.submit();}
return false;}
function geefAntwoord(antwoord){document.forms.overhoor_antwoord.antwoord.value=antwoord;if(enableXmlHttpRequestOverhoring){if(isXhrOverhoorLock())return false;setXhrOverhoorLock();new Ajax.Request(document.forms.overhoor_antwoord.action,{asynchronous:true,evalScripts:true,onLoading:function(request){Element.show('indicator');},onComplete:function(request){freeXhrOverhoorLock();Element.hide('indicator');updateVraagContainer(request);},parameters:Form.serialize(document.forms.overhoor_antwoord)});}else{document.forms.overhoor_antwoord.submit();}
return false;}
function prepareMultiplechoice(){if(document.getElementById){document.onkeydown=function(e){var code;if(!e)var e=window.event;if(e.keyCode)code=e.keyCode;else if(e.which)code=e.which;if(97<=code&&code<=105)code=code-48;if(49<=code&&code<=57){var pos=code-48;var link=document.getElementById("antwoord"+pos);if(link)geefAntwoord(link.innerHTML);}};}}
var xhrOverhoorLock=0;function setXhrOverhoorLock(){xhrOverhoorLock=new Date().getTime();}
function freeXhrOverhoorLock(){xhrOverhoorLock=0;}
function isXhrOverhoorLock(){return((new Date()).getTime()-4<xhrOverhoorLock);}

var wrtsUnicodeDiacrConv=[['%u03aa','%u0399'],['%u00c8','%u0045'],['%u00ed','%u0069'],['%u03ab','%u03a5'],['%u00c9','%u0045'],['%u00dc','%u0055'],['%u0386','%u0391'],['%u00ee','%u0069'],['%u00dd','%u0059'],['%u00ef','%u0069'],['%u03ac','%u03b1'],['%u00ca','%u0045'],['%u0388','%u0395'],['%u03ad','%u03b5'],['%u00cb','%u0045'],['%u00df','%u0073%u0073'],['%u0389','%u0397'],['%u00f1','%u006e'],['%u00cc','%u0049'],['%u038a','%u0399'],['%u00f2','%u006f'],['%u03d3','%u03a5'],['%u03ae','%u03b7'],['%u00cd','%u0049'],['%u00e0','%u0061'],['%u00f3','%u006f'],['%u03d4','%u03a5'],['%u03af','%u03b9'],['%u00ce','%u0049'],['%u00e1','%u0061'],['%u03b0','%u03c5'],['%u00f4','%u006f'],['%u00cf','%u0049'],['%u00e2','%u0061'],['%u038c','%u039f'],['%u00d0','%u0044'],['%u00f5','%u006f'],['%u00d1','%u004e'],['%u00e3','%u0061'],['%u00f6','%u006f'],['%u00d2','%u004f'],['%u00e4','%u0061'],['%u038f','%u03a9'],['%u00d3','%u004f'],['%u00e5','%u0061'],['%u00f8','%u006f'],['%u0390','%u03b9'],['%u00d4','%u004f'],['%u00e6','%u0061%u0065'],['%u00f9','%u0075'],['%u00e7','%u0063'],['%u00fa','%u0075'],['%u00d5','%u004f'],['%u00e8','%u0065'],['%u03ca','%u03b9'],['%u00fb','%u0075'],['%u00d6','%u004f'],['%u00e9','%u0065'],['%u03cb','%u03c5'],['%u00fc','%u0075'],['%u03cc','%u03bf'],['%u00fd','%u0079'],['%u00d8','%u004f'],['%u00ea','%u0065'],['%u00c6','%u0041%u0045'],['%u00d9','%u0055'],['%u00eb','%u0065'],['%u03cd','%u03c5'],['%u00ff','%u0079'],['%u00c7','%u0043'],['%u00da','%u0055'],['%u00ec','%u0069'],['%u03ce','%u03c9']];var wrtsUnicodeKlinkers=['%u03bf','%u0399','%u00da','%u0055','%u00ed','%u0386','%u03ac','%u0390','%u00e4','%u03c9','%u00d1','%u00c8','%u00ee','%u0069','%u03ad','%u03d3','%u03ca','%u03b7','%u00e5','%u00d2','%u00f8','%u0391','%u0388','%u03ae','%u03d4','%u00c9','%u00ef','%u00dc','%u03cb','%u00e6','%u0061','%u03a5','%u00d3','%u0389','%u03af','%u00ca','%u0045','%u03cc','%u03b9','%u00d4','%u00fa','%u004f','%u0075','%u038a','%u03b0','%u00de','%u00cb','%u00d5','%u00fb','%u00e8','%u03cd','%u03b1','%u00cc','%u00f2','%u0395','%u00e9','%u03ce','%u00d6','%u00e0','%u039f','%u03c5','%u00cd','%u00f3','%u038c','%u03a9','%u00ea','%u0065','%u00ce','%u00f4','%u0049','%u006f','%u00e1','%u03aa','%u0397','%u00eb','%u00d8','%u00cf','%u00f5','%u00e2','%u03ab','%u0041','%u00d9','%u00c6','%u00ec','%u038f','%u03b5','%u00f6','%u00e3'];var wrtsUnicodeDiacrRegexp=new RegExp(unescape("[%u03aa%u00c8%u00ed%u03ab%u00c9%u00dc%u0386%u00ee%u00dd%u00ef%u03ac%u00ca%u0388%u03ad%u00cb%u00df%u0389%u00f1%u00cc%u038a%u00f2%u03d3%u03ae%u00cd%u00e0%u00f3%u03d4%u03af%u00ce%u00e1%u03b0%u00f4%u00cf%u00e2%u038c%u00d0%u00f5%u00d1%u00e3%u00f6%u00d2%u00e4%u038f%u00d3%u00e5%u00f8%u0390%u00d4%u00e6%u00f9%u00e7%u00fa%u00d5%u00e8%u03ca%u00fb%u00d6%u00e9%u03cb%u00fc%u03cc%u00fd%u00d8%u00ea%u00c6%u00d9%u00eb%u03cd%u00ff%u00c7%u00da%u00ec%u03ce]"),"g");var wrtsUnicodeKlinkersRegexp=new RegExp(unescape("[%u03bf%u0399%u00da%u0055%u00ed%u0386%u03ac%u0390%u00e4%u03c9%u00d1%u00c8%u00ee%u0069%u03ad%u03d3%u03ca%u03b7%u00e5%u00d2%u00f8%u0391%u0388%u03ae%u03d4%u00c9%u00ef%u00dc%u03cb%u00e6%u0061%u03a5%u00d3%u0389%u03af%u00ca%u0045%u03cc%u03b9%u00d4%u00fa%u004f%u0075%u038a%u03b0%u00de%u00cb%u00d5%u00fb%u00e8%u03cd%u03b1%u00cc%u00f2%u0395%u00e9%u03ce%u00d6%u00e0%u039f%u03c5%u00cd%u00f3%u038c%u03a9%u00ea%u0065%u00ce%u00f4%u0049%u006f%u00e1%u03aa%u0397%u00eb%u00d8%u00cf%u00f5%u00e2%u03ab%u0041%u00d9%u00c6%u00ec%u038f%u03b5%u00f6%u00e3]"),"g");

function fisherYates(myArray){var i=myArray.length;if(i==0)return false;while(--i){var j=Math.floor(Math.random()*(i+1));var tempi=myArray[i];var tempj=myArray[j];myArray[i]=tempj;myArray[j]=tempi;}}
function ontdubbel(queue){var ontdubbeld=new Array();for(var i=0;i<queue.length;i++){if(i==0||ontdubbeld[ontdubbeld.length-1]!=queue[i]){ontdubbeld.push(queue[i]);}}
return ontdubbeld;}
function wrtsVervangBijzondereTekens(tekst){if(!tekst.match(wrtsUnicodeDiacrRegexp))return tekst;for(var i=0;i<wrtsUnicodeDiacrConv.length;i++){tekst=tekst.replace(new RegExp(unescape(wrtsUnicodeDiacrConv[i][0]),"g"),unescape(wrtsUnicodeDiacrConv[i][1]));}
return tekst;}
function wrtsVerbergKlinkers(tekst){tekst=tekst.replace(wrtsUnicodeKlinkersRegexp,".");return tekst;}
function wrtsShuffleLetters(tekst){var tekens=tekst.split("");var buffer=new Array();var resultaat=new Array();for(var i=0;i<tekens.length;i++){if(tekens[i].match(/[a-z0-9]/i)||tekens[i].match(wrtsUnicodeDiacrRegexp)){buffer.push(tekens[i]);}else{if(buffer.length>0){fisherYates(buffer);resultaat.push(buffer.join(""));buffer=new Array();}
resultaat.push(tekens[i]);}}
fisherYates(buffer);if(buffer.length>0)resultaat.push(buffer.join(""));return resultaat.join("");}
function wrtsAlleenEersteLetter(tekst){if(tekst.length==0)return"";return tekst.substring(0,1)+tekst.substring(1,tekst.length).replace(/[^ ]/g,".");}
function wrtsGeenSpatiesEnLeestekens(tekst){return tekst.replace(/[~`#!@\$%\^&\*\(\)_=\+\|;"'\[\]\}\{?><,\.\\\\\/:-]/g,"").replace(/\s+/," ");}
Array.prototype.unshift=function(n){var tmp=n;for(var i=0;i<this.length;i++){var swap=this[i];this[i]=tmp;tmp=swap;}
this.push(tmp);return this;};function wrtsSchermSetVisibility(schermnaam,visible){var scherm=$("scherm-"+schermnaam);if(scherm)scherm.style.display=visible?"block":"none";}
function wrtsSchermIsVisible(schermnaam){var scherm=$("scherm-"+schermnaam);return scherm.style.display!="none";}
function wrtsGetVraag(vraagId){return getWrtsDataStore().getVraag(vraagId);}
function wrtsGetAntwoord(vraagId){return getWrtsDataStore().getAntwoord(vraagId);}
function wrtsGetLaatstGegevenAntwoord(){return getWrtsDataStore().getLaatstGegevenAntwoord();}
function wrtsGetLaatstVerwerkteVraag(){return getWrtsDataStore().getLaatstVerwerkteVraag();}
function wrtsGetMultipleChoiceAntwoorden(vraagId,aantal){return getWrtsDataStore().getMultipleChoiceAntwoorden(vraagId,aantal);}
function wrtsGetRonde(vraagId){return getWrtsDataStore().getRonde(vraagId);}
function wrtsUpdateScore(ronde,goed){getWrtsDataStore().updateScore(ronde,goed);}
function wrtsBewaarFoutAntwoord(ronde){getWrtsDataStore().bewaarFoutAntwoord(ronde);}
function wrtsIsGoedeAntwoord(gegevenAntwoord){var goedeAntwoord=getWrtsDataStore().getHuidigeAntwoord();if(wrtsPrepareerAntwoord(gegevenAntwoord)==wrtsPrepareerAntwoord(goedeAntwoord)){return true;}
var alleGoedeAntwoorden=getWrtsDataStore().getAlleGoedeAntwoorden(getWrtsDataStore().getHuidigeVraagId());for(var i=0;i<alleGoedeAntwoorden.length;i++){var goedeAntwoord=alleGoedeAntwoorden[i];if(wrtsPrepareerAntwoord(gegevenAntwoord)==wrtsPrepareerAntwoord(goedeAntwoord)){return true;}}
return false;}
function wrtsFoutherkennerCalculateEditDistance(fout,goed){if(goed==fout)return 0;if(goed==""||fout=="")return Math.abs(goed.length-fout.length);var m=[[0]];for(var i=1;i<=fout.length;i++){m[i]=[i];}
for(var j=1;j<=goed.length;j++){m[0][j]=j;}
for(var i=1;i<=fout.length;i++){for(var j=1;j<=goed.length;j++){var d=fout.charAt(i-1)==goed.charAt(j-1)?0:1;m[i][j]=Math.min(m[i-1][j-1]+d,Math.min(m[i-1][j]+1,m[i][j-1]+1));}}
var inpRows=[[],"",[]];var rows=wrtsFoutherkennerTrackbackEditDistance(inpRows,m,fout.length,goed.length,fout.split(""),goed.split(""));var edit_distance=m[fout.length][goed.length];return[edit_distance,rows];}
function wrtsFoutherkennerTrackbackEditDistance(rows,m,i,j,a,b){if(i>0&&j>0){var diag=m[i-1][j-1];var diag_ch="|";if(a[i-1]!=b[j-1]){diag=1+diag;diag_ch="c";}
if(m[i][j]==diag){rows=[rows[0].unshift(a[i-1]),diag_ch+rows[1],rows[2].unshift(b[j-1])];return wrtsFoutherkennerTrackbackEditDistance(rows,m,i-1,j-1,a,b);}else if(m[i][j]==m[i-1][j]+1){rows=[rows[0].unshift(a[i-1]),"x"+rows[1],rows[2].unshift("-")];return wrtsFoutherkennerTrackbackEditDistance(rows,m,i-1,j,a,b);}else{rows=[rows[0].unshift("."),"i"+rows[1],rows[2].unshift(b[j-1])];return wrtsFoutherkennerTrackbackEditDistance(rows,m,i,j-1,a,b);}}else if(i>0){rows=[rows[0].unshift(a[i-1]),"x"+rows[1],rows[2].unshift(".")]
return wrtsFoutherkennerTrackbackEditDistance(rows,m,i-1,j,a,b);}else if(j>0){rows=[rows[0].unshift("."),"i"+rows[1],rows[2].unshift(b[j-1])];return wrtsFoutherkennerTrackbackEditDistance(rows,m,i,j-1,a,b);}else{return rows;}}
function wrtsFoutherkennerEditDistanceHerkansingTekst(fout,goed){var data=wrtsFoutherkennerCalculateEditDistance(fout,goed);var rows=data[1];var tekst=rows[0];for(var i=0;i<tekst.length;i++){if(rows[1].charAt(i)=="x".charAt(0)){}else if(rows[1].charAt(i)=="c".charAt(0)){tekst[i]=(goed.charAt(i)==" ".charAt(0))?" ":".";}else if(rows[1].charAt(i)=="i".charAt(0)){tekst[i]=(goed.charAt(i)==" ".charAt(0))?" ":".";}}
return tekst.join("").replace(/^\s+|\s+$/g,"");}
function wrtsFoutherkennerEditDistanceFoutType(fout,goed){var data=wrtsFoutherkennerCalculateEditDistance(fout,goed);var fouten=data[1][1];if(fouten.match(/^[c|]+$/)){return"change";}else if(fouten.match(/^[i|]+$/)){return"insert";}else if(fouten.match(/^[x|]+$/)){return"delete";}else{return"mixed";}}
function wrtsFoutherkennerEditDistanceScore(fout,goed){var data=wrtsFoutherkennerCalculateEditDistance(fout,goed);var fouten=data[1][1];return fouten.replace(/[^xci]/g,"").length+0.5*fouten.replace(/[^c]/g,"").length;}
var wrtsFoutherkennerLidwoorden=new Object();wrtsFoutherkennerLidwoorden.duits=new Array("der ","die ","das ");wrtsFoutherkennerLidwoorden.nederlands=new Array("de ","het ","een ");wrtsFoutherkennerLidwoorden.frans=new Array("le ","la ","les ","l'");wrtsFoutherkennerLidwoorden.engels=new Array("an ","a ","the ");function wrtsFoutherkennerLidwoord(woord,taal){var lidwoorden=wrtsFoutherkennerLidwoorden[taal.toLowerCase()];if(!lidwoorden)return"";for(var i=0;i<lidwoorden.length;i++){if(woord.length>=lidwoorden[i].length&&woord.substr(0,lidwoorden[i].length).toLowerCase()==lidwoorden[i]){return lidwoorden[i].replace(/^\s+|\s+$/g,"");}}
return"";}
function wrtsFoutherkennerZonderLidwoord(woord,taal){var lidwoord=wrtsFoutherkennerLidwoord(woord,taal);return woord.substr(lidwoord,100);}
function wrtsFoutherkennerLidwoordFout(fout,goed,taal){var lwFout=wrtsFoutherkennerLidwoord(fout,taal);var lwGoed=wrtsFoutherkennerLidwoord(goed,taal);var zonderLidwoordFout=fout.substr(lwFout.length,100);var zonderLidwoordGoed=goed.substr(lwGoed.length,100);if(lwFout!=""&&lwGoed!=""&&zonderLidwoordFout==zonderLidwoordGoed){return true;}else{return false;}}
function wrtsFoutherkennerHoofdletterFout(fout,goed){return fout.toLowerCase()==goed.toLowerCase();}
function wrtsFoutherkennerAccentFout(fout,goed){return wrtsVervangBijzondereTekens(fout)==wrtsVervangBijzondereTekens(goed);}
function wrtsFoutherkennerLettersFout(fout,goed){var editDistance=wrtsFoutherkennerEditDistanceScore(fout,goed);var relDistance=1.0*editDistance/(fout.length+goed.length);if(relDistance<0.5){var foutType=wrtsFoutherkennerEditDistanceFoutType(fout,goed);if(foutType!="mixed"){return true;}}
return false;}
function wrtsFoutherkennerFoutType(fout,goed,taal){if(fout==goed)return null;if(fout==""||goed=="")return null;if(wrtsFoutherkennerLidwoordFout(fout,goed,taal)){return["lidwoord",wrtsFoutherkennerZonderLidwoord(fout,taal)];}else if(wrtsFoutherkennerHoofdletterFout(fout,goed)){return["hoofdletter"];}else if(wrtsFoutherkennerAccentFout(fout,goed)){return["accent"];}else if(wrtsFoutherkennerLettersFout(fout,goed)){var foutType=wrtsFoutherkennerEditDistanceFoutType(fout,goed);var herkansingTekst=wrtsFoutherkennerEditDistanceHerkansingTekst(fout,goed);var editDistance=wrtsFoutherkennerCalculateEditDistance(fout,goed);return["spelling",foutType,herkansingTekst,editDistance[0]];}else{return[false];}}
function wrtsShowHuidigeVraag(){wrtsSchermVraagShow(getWrtsDataStore().getHuidigeVraagId());}
function wrtsVerwerkAntwoord(gegevenAntwoord){var goed=wrtsIsGoedeAntwoord(gegevenAntwoord);getWrtsDataStore().verwerkAntwoord(gegevenAntwoord);if(goed){wrtsNaarVolgendeVraag();}else{wrtsSchermVerbeterShow(getWrtsDataStore().getLaatstVerwerkteVraag(),gegevenAntwoord);}}
function wrtsVerwerkVerbeterAntwoord(verbeterdAntwoord){var goed=wrtsIsGoedeAntwoord(verbeterdAntwoord);getWrtsDataStore().verwerkVerbeterAntwoord();wrtsQueueBijwerkenNaFout();if(goed){wrtsNaarVolgendeVraag();}else{if($("scherm-vraag-toon-antwoord-link")){wrtsNaarVolgendeVraag();}else{wrtsSchermFoutShow(getWrtsDataStore().getLaatstVerwerkteVraag());}}}
function wrtsNaarVolgendeVraag(){getWrtsDataStore().naarVolgendeVraag();}
var wrtsDataStore=new Object();wrtsDataStore.overhoorType=null;wrtsDataStore.lijstTitel=null;wrtsDataStore.taalVraag=null;wrtsDataStore.taalAntwoord=null;wrtsDataStore.vragenIds=new Array();wrtsDataStore.queue=new Array();wrtsDataStore.verwerkteVragen=new Array();wrtsDataStore.gegevenAntwoorden=new Array();wrtsDataStore.scores=new Array();wrtsDataStore.fouten=new Array();wrtsDataStore.laatsteAntwoordGoed=null;wrtsDataStore.anderScores=new Array();wrtsDataStore.anderLaatsteAntwoordGoed=null;wrtsDataStore.getOverhoorType=function(){return this.overhoorType;}
wrtsDataStore.getLijstTitel=function(){return this.lijstTitel;}
wrtsDataStore.getTaalVraag=function(){return this.taalVraag;}
wrtsDataStore.getTaalAntwoord=function(){return this.taalAntwoord;}
wrtsDataStore.getVraag=function(vraagId){return this._getVraagData(vraagId,"vraag");}
wrtsDataStore.getAntwoord=function(vraagId){return this._getVraagData(vraagId,"antwoord");}
wrtsDataStore._getVraagData=function(vraagId,theClassName){var tds=$(vraagId).childNodes;for(var i=0;i<tds.length;i++){if(tds[i].nodeName=="TD"&&tds[i].className==theClassName){return tds[i].innerHTML.unescapeHTML();}}}
wrtsDataStore.getScores=function(){return this.scores;}
wrtsDataStore.getAnderScores=function(){return this.anderScores;}
wrtsDataStore.getFouten=function(){return this.fouten;}
wrtsDataStore.getLaatsteAntwoordGoed=function(){return this.laatsteAntwoordGoed;}
wrtsDataStore.getAnderLaatsteAntwoordGoed=function(){return this.anderLaatsteAntwoordGoed;}
wrtsDataStore.initialize=function(){this.loadVragenIds();this.fillQueue();if(pageTracker&&pageTracker._trackEvent){pageTracker._trackEvent("Overhoring","Start",this.getOverhoorType(),this.vragenIds.length);}}
wrtsDataStore.loadVragenIds=function(){var woordenTable=$("woorden");var thead=woordenTable.getElementsByTagName("thead")[0];var ths=thead.getElementsByTagName("th");for(var i=0;i<ths.length;i++){if(ths[i].className=="overhoorType")this.overhoorType=ths[i].innerHTML.unescapeHTML();if(ths[i].className=="lijstTitel")this.lijstTitel=ths[i].innerHTML.unescapeHTML();if(ths[i].className=="vraag")this.taalVraag=ths[i].innerHTML.unescapeHTML();if(ths[i].className=="antwoord")this.taalAntwoord=ths[i].innerHTML.unescapeHTML();}
var tbody=woordenTable.getElementsByTagName("tbody")[0];for(var i=0;i<tbody.childNodes.length;i++){var tr=tbody.childNodes[i];if(tr.nodeName=="TR"){this.vragenIds.push(tr.id);}}}
wrtsDataStore.fillQueue=function(){for(var i=0;i<this.vragenIds.length;i++){this.queue.push(this.vragenIds[i]);}
fisherYates(this.queue);}
wrtsDataStore.aantalWoordenInQueue=function(){return this.queue.length;}
wrtsDataStore.ontdubbelQueue=function(){this.queue=ontdubbel(this.queue);}
wrtsDataStore.stelVraagOpnieuw=function(fouteVraag){this.queue.push(fouteVraag);if(this.queue.length>7){var prev=fouteVraag;for(var i=2;i<this.queue.length;i++){var tmp=this.queue[i];this.queue[i]=prev;prev=tmp;}
this.queue.push(prev);}
this.queue.push(fouteVraag);this.ontdubbelQueue();}
wrtsDataStore.getHuidigeAntwoord=function(){return this.getAntwoord(this.queue[0]);}
wrtsDataStore.getHuidigeVraag=function(){return this.getVraag(this.queue[0]);}
wrtsDataStore.getHuidigeVraagId=function(){return this.queue[0];}
wrtsDataStore.getLaatstGegevenAntwoord=function(){return this.gegevenAntwoorden[this.gegevenAntwoorden.length-1];}
wrtsDataStore.getLaatstVerwerkteVraag=function(){return this.verwerkteVragen[this.verwerkteVragen.length-1];}
wrtsDataStore.getMultipleChoiceAntwoorden=function(vraagId,aantal){var vragen=new Array();for(var i=0;i<this.vragenIds.length;i++){if(this.vragenIds[i]!=vraagId)vragen.push(this.vragenIds[i]);}
fisherYates(vragen);var antwoorden=new Array();antwoorden.push(this.getAntwoord(vraagId));for(var i=0;i<aantal-1&&i<vragen.length;i++){antwoorden.push(this.getAntwoord(vragen[i]));}
fisherYates(antwoorden);return antwoorden;}
wrtsDataStore.getAlleGoedeAntwoorden=function(vraagId){var antwoorden=new Array();var dezeVraag=this.getVraag(vraagId);for(var i=0;i<this.vragenIds.length;i++){if(wrtsGetVraag(this.vragenIds[i])==dezeVraag){var goedeAntwoord=this.getAntwoord(this.vragenIds[i]);antwoorden.push(goedeAntwoord);}}
return antwoorden;}
wrtsDataStore.getRonde=function(vraagId){var ronde=1;for(var i=0;i<this.verwerkteVragen.length;i++){if(this.verwerkteVragen[i]==vraagId)ronde++;}
return ronde;}
wrtsDataStore.updateScore=function(ronde,goed){var rondeIdx=ronde-1;for(var i=this.scores.length;i<=rondeIdx;i++){this.scores.push([0,0]);}
this.scores[rondeIdx][goed?0:1]++;}
wrtsDataStore.updateAnderScore=function(ronde,goed){var rondeIdx=ronde-1;for(var i=this.anderScores.length;i<=rondeIdx;i++){this.anderScores.push([0,0]);}
this.anderScores[rondeIdx][goed?0:1]++;}
wrtsDataStore.verwerkAntwoord=function(gegevenAntwoord,ander){var goed=wrtsIsGoedeAntwoord(gegevenAntwoord);var ronde=this.getRonde(this.getHuidigeVraagId());this.verwerkteVragen.push(this.queue[0]);this.gegevenAntwoorden.push(gegevenAntwoord);this.laatsteAntwoordGoed=goed;this.updateScore(ronde,goed);if(goed){this.queue.shift();}else{this.bewaarFoutAntwoord(ronde);}}
wrtsDataStore.verwerkVerbeterAntwoord=function(verbeterdAntwoord){this.queue.shift();}
wrtsDataStore.bewaarFoutAntwoord=function(ronde){var fouteVraag=this.queue[0];var rondeIdx=ronde-1;for(var i=this.fouten.length;i<=rondeIdx;i++){this.fouten.push(new Array());}
this.fouten[rondeIdx].push([this.getVraag(fouteVraag),this.getLaatstGegevenAntwoord(),this.getAntwoord(fouteVraag)]);}
wrtsDataStore.naarVolgendeVraag=function(){if(this.aantalWoordenInQueue()==0){if(pageTracker&&pageTracker._trackEvent){pageTracker._trackEvent("Overhoring","Stop",this.getOverhoorType(),this.vragenIds.length);}
wrtsPaneelFormResultaatVerzend();}else{wrtsShowHuidigeVraag();}}
function getWrtsDataStore(){return wrtsDataStore;}
function wrtsInit(){var schermen=new Array("vraag","fout");for(var i=0;i<schermen.length;i++){wrtsSchermSetVisibility(schermen[i],false);}
getWrtsDataStore().initialize();wrtsNaarVolgendeVraag();}

var swfobject=function(){var D="undefined",r="object",S="Shockwave Flash",W="ShockwaveFlash.ShockwaveFlash",q="application/x-shockwave-flash",R="SWFObjectExprInst",x="onreadystatechange",O=window,j=document,t=navigator,T=false,U=[h],o=[],N=[],I=[],l,Q,E,B,J=false,a=false,n,G,m=true,M=function(){var aa=typeof j.getElementById!=D&&typeof j.getElementsByTagName!=D&&typeof j.createElement!=D,ah=t.userAgent.toLowerCase(),Y=t.platform.toLowerCase(),ae=Y?/win/.test(Y):/win/.test(ah),ac=Y?/mac/.test(Y):/mac/.test(ah),af=/webkit/.test(ah)?parseFloat(ah.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,X=!+"\v1",ag=[0,0,0],ab=null;if(typeof t.plugins!=D&&typeof t.plugins[S]==r){ab=t.plugins[S].description;if(ab&&!(typeof t.mimeTypes!=D&&t.mimeTypes[q]&&!t.mimeTypes[q].enabledPlugin)){T=true;X=false;ab=ab.replace(/^.*\s+(\S+\s+\S+$)/,"$1");ag[0]=parseInt(ab.replace(/^(.*)\..*$/,"$1"),10);ag[1]=parseInt(ab.replace(/^.*\.(.*)\s.*$/,"$1"),10);ag[2]=/[a-zA-Z]/.test(ab)?parseInt(ab.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else{if(typeof O.ActiveXObject!=D){try{var ad=new ActiveXObject(W);if(ad){ab=ad.GetVariable("$version");if(ab){X=true;ab=ab.split(" ")[1].split(",");ag=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}}catch(Z){}}}return{w3:aa,pv:ag,wk:af,ie:X,win:ae,mac:ac}}(),k=function(){if(!M.w3){return}if((typeof j.readyState!=D&&j.readyState=="complete")||(typeof j.readyState==D&&(j.getElementsByTagName("body")[0]||j.body))){f()}if(!J){if(typeof j.addEventListener!=D){j.addEventListener("DOMContentLoaded",f,false)}if(M.ie&&M.win){j.attachEvent(x,function(){if(j.readyState=="complete"){j.detachEvent(x,arguments.callee);f()}});if(O==top){(function(){if(J){return}try{j.documentElement.doScroll("left")}catch(X){setTimeout(arguments.callee,0);return}f()})()}}if(M.wk){(function(){if(J){return}if(!/loaded|complete/.test(j.readyState)){setTimeout(arguments.callee,0);return}f()})()}s(f)}}();function f(){if(J){return}try{var Z=j.getElementsByTagName("body")[0].appendChild(C("span"));Z.parentNode.removeChild(Z)}catch(aa){return}J=true;var X=U.length;for(var Y=0;Y<X;Y++){U[Y]()}}function K(X){if(J){X()}else{U[U.length]=X}}function s(Y){if(typeof O.addEventListener!=D){O.addEventListener("load",Y,false)}else{if(typeof j.addEventListener!=D){j.addEventListener("load",Y,false)}else{if(typeof O.attachEvent!=D){i(O,"onload",Y)}else{if(typeof O.onload=="function"){var X=O.onload;O.onload=function(){X();Y()}}else{O.onload=Y}}}}}function h(){if(T){V()}else{H()}}function V(){var X=j.getElementsByTagName("body")[0];var aa=C(r);aa.setAttribute("type",q);var Z=X.appendChild(aa);if(Z){var Y=0;(function(){if(typeof Z.GetVariable!=D){var ab=Z.GetVariable("$version");if(ab){ab=ab.split(" ")[1].split(",");M.pv=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}else{if(Y<10){Y++;setTimeout(arguments.callee,10);return}}X.removeChild(aa);Z=null;H()})()}else{H()}}function H(){var ag=o.length;if(ag>0){for(var af=0;af<ag;af++){var Y=o[af].id;var ab=o[af].callbackFn;var aa={success:false,id:Y};if(M.pv[0]>0){var ae=c(Y);if(ae){if(F(o[af].swfVersion)&&!(M.wk&&M.wk<312)){w(Y,true);if(ab){aa.success=true;aa.ref=z(Y);ab(aa)}}else{if(o[af].expressInstall&&A()){var ai={};ai.data=o[af].expressInstall;ai.width=ae.getAttribute("width")||"0";ai.height=ae.getAttribute("height")||"0";if(ae.getAttribute("class")){ai.styleclass=ae.getAttribute("class")}if(ae.getAttribute("align")){ai.align=ae.getAttribute("align")}var ah={};var X=ae.getElementsByTagName("param");var ac=X.length;for(var ad=0;ad<ac;ad++){if(X[ad].getAttribute("name").toLowerCase()!="movie"){ah[X[ad].getAttribute("name")]=X[ad].getAttribute("value")}}P(ai,ah,Y,ab)}else{p(ae);if(ab){ab(aa)}}}}}else{w(Y,true);if(ab){var Z=z(Y);if(Z&&typeof Z.SetVariable!=D){aa.success=true;aa.ref=Z}ab(aa)}}}}}function z(aa){var X=null;var Y=c(aa);if(Y&&Y.nodeName=="OBJECT"){if(typeof Y.SetVariable!=D){X=Y}else{var Z=Y.getElementsByTagName(r)[0];if(Z){X=Z}}}return X}function A(){return!a&&F("6.0.65")&&(M.win||M.mac)&&!(M.wk&&M.wk<312)}function P(aa,ab,X,Z){a=true;E=Z||null;B={success:false,id:X};var ae=c(X);if(ae){if(ae.nodeName=="OBJECT"){l=g(ae);Q=null}else{l=ae;Q=X}aa.id=R;if(typeof aa.width==D||(!/%$/.test(aa.width)&&parseInt(aa.width,10)<310)){aa.width="310"}if(typeof aa.height==D||(!/%$/.test(aa.height)&&parseInt(aa.height,10)<137)){aa.height="137"}j.title=j.title.slice(0,47)+" - Flash Player Installation";var ad=M.ie&&M.win?"ActiveX":"PlugIn",ac="MMredirectURL="+O.location.toString().replace(/&/g,"%26")+"&MMplayerType="+ad+"&MMdoctitle="+j.title;if(typeof ab.flashvars!=D){ab.flashvars+="&"+ac}else{ab.flashvars=ac}if(M.ie&&M.win&&ae.readyState!=4){var Y=C("div");X+="SWFObjectNew";Y.setAttribute("id",X);ae.parentNode.insertBefore(Y,ae);ae.style.display="none";(function(){if(ae.readyState==4){ae.parentNode.removeChild(ae)}else{setTimeout(arguments.callee,10)}})()}u(aa,ab,X)}}function p(Y){if(M.ie&&M.win&&Y.readyState!=4){var X=C("div");Y.parentNode.insertBefore(X,Y);X.parentNode.replaceChild(g(Y),X);Y.style.display="none";(function(){if(Y.readyState==4){Y.parentNode.removeChild(Y)}else{setTimeout(arguments.callee,10)}})()}else{Y.parentNode.replaceChild(g(Y),Y)}}function g(ab){var aa=C("div");if(M.win&&M.ie){aa.innerHTML=ab.innerHTML}else{var Y=ab.getElementsByTagName(r)[0];if(Y){var ad=Y.childNodes;if(ad){var X=ad.length;for(var Z=0;Z<X;Z++){if(!(ad[Z].nodeType==1&&ad[Z].nodeName=="PARAM")&&!(ad[Z].nodeType==8)){aa.appendChild(ad[Z].cloneNode(true))}}}}}return aa}function u(ai,ag,Y){var X,aa=c(Y);if(M.wk&&M.wk<312){return X}if(aa){if(typeof ai.id==D){ai.id=Y}if(M.ie&&M.win){var ah="";for(var ae in ai){if(ai[ae]!=Object.prototype[ae]){if(ae.toLowerCase()=="data"){ag.movie=ai[ae]}else{if(ae.toLowerCase()=="styleclass"){ah+=' class="'+ai[ae]+'"'}else{if(ae.toLowerCase()!="classid"){ah+=" "+ae+'="'+ai[ae]+'"'}}}}}var af="";for(var ad in ag){if(ag[ad]!=Object.prototype[ad]){af+='<param name="'+ad+'" value="'+ag[ad]+'" />'}}aa.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+ah+">"+af+"</object>";N[N.length]=ai.id;X=c(ai.id)}else{var Z=C(r);Z.setAttribute("type",q);for(var ac in ai){if(ai[ac]!=Object.prototype[ac]){if(ac.toLowerCase()=="styleclass"){Z.setAttribute("class",ai[ac])}else{if(ac.toLowerCase()!="classid"){Z.setAttribute(ac,ai[ac])}}}}for(var ab in ag){if(ag[ab]!=Object.prototype[ab]&&ab.toLowerCase()!="movie"){e(Z,ab,ag[ab])}}aa.parentNode.replaceChild(Z,aa);X=Z}}return X}function e(Z,X,Y){var aa=C("param");aa.setAttribute("name",X);aa.setAttribute("value",Y);Z.appendChild(aa)}function y(Y){var X=c(Y);if(X&&X.nodeName=="OBJECT"){if(M.ie&&M.win){X.style.display="none";(function(){if(X.readyState==4){b(Y)}else{setTimeout(arguments.callee,10)}})()}else{X.parentNode.removeChild(X)}}}function b(Z){var Y=c(Z);if(Y){for(var X in Y){if(typeof Y[X]=="function"){Y[X]=null}}Y.parentNode.removeChild(Y)}}function c(Z){var X=null;try{X=j.getElementById(Z)}catch(Y){}return X}function C(X){return j.createElement(X)}function i(Z,X,Y){Z.attachEvent(X,Y);I[I.length]=[Z,X,Y]}function F(Z){var Y=M.pv,X=Z.split(".");X[0]=parseInt(X[0],10);X[1]=parseInt(X[1],10)||0;X[2]=parseInt(X[2],10)||0;return(Y[0]>X[0]||(Y[0]==X[0]&&Y[1]>X[1])||(Y[0]==X[0]&&Y[1]==X[1]&&Y[2]>=X[2]))?true:false}function v(ac,Y,ad,ab){if(M.ie&&M.mac){return}var aa=j.getElementsByTagName("head")[0];if(!aa){return}var X=(ad&&typeof ad=="string")?ad:"screen";if(ab){n=null;G=null}if(!n||G!=X){var Z=C("style");Z.setAttribute("type","text/css");Z.setAttribute("media",X);n=aa.appendChild(Z);if(M.ie&&M.win&&typeof j.styleSheets!=D&&j.styleSheets.length>0){n=j.styleSheets[j.styleSheets.length-1]}G=X}if(M.ie&&M.win){if(n&&typeof n.addRule==r){n.addRule(ac,Y)}}else{if(n&&typeof j.createTextNode!=D){n.appendChild(j.createTextNode(ac+" {"+Y+"}"))}}}function w(Z,X){if(!m){return}var Y=X?"visible":"hidden";if(J&&c(Z)){c(Z).style.visibility=Y}else{v("#"+Z,"visibility:"+Y)}}function L(Y){var Z=/[\\\"<>\.;]/;var X=Z.exec(Y)!=null;return X&&typeof encodeURIComponent!=D?encodeURIComponent(Y):Y}var d=function(){if(M.ie&&M.win){window.attachEvent("onunload",function(){var ac=I.length;for(var ab=0;ab<ac;ab++){I[ab][0].detachEvent(I[ab][1],I[ab][2])}var Z=N.length;for(var aa=0;aa<Z;aa++){y(N[aa])}for(var Y in M){M[Y]=null}M=null;for(var X in swfobject){swfobject[X]=null}swfobject=null})}}();return{registerObject:function(ab,X,aa,Z){if(M.w3&&ab&&X){var Y={};Y.id=ab;Y.swfVersion=X;Y.expressInstall=aa;Y.callbackFn=Z;o[o.length]=Y;w(ab,false)}else{if(Z){Z({success:false,id:ab})}}},getObjectById:function(X){if(M.w3){return z(X)}},embedSWF:function(ab,ah,ae,ag,Y,aa,Z,ad,af,ac){var X={success:false,id:ah};if(M.w3&&!(M.wk&&M.wk<312)&&ab&&ah&&ae&&ag&&Y){w(ah,false);K(function(){ae+="";ag+="";var aj={};if(af&&typeof af===r){for(var al in af){aj[al]=af[al]}}aj.data=ab;aj.width=ae;aj.height=ag;var am={};if(ad&&typeof ad===r){for(var ak in ad){am[ak]=ad[ak]}}if(Z&&typeof Z===r){for(var ai in Z){if(typeof am.flashvars!=D){am.flashvars+="&"+ai+"="+Z[ai]}else{am.flashvars=ai+"="+Z[ai]}}}if(F(Y)){var an=u(aj,am,ah);if(aj.id==ah){w(ah,true)}X.success=true;X.ref=an}else{if(aa&&A()){aj.data=aa;P(aj,am,ah,ac);return}else{w(ah,true)}}if(ac){ac(X)}})}else{if(ac){ac(X)}}},switchOffAutoHideShow:function(){m=false},ua:M,getFlashPlayerVersion:function(){return{major:M.pv[0],minor:M.pv[1],release:M.pv[2]}},hasFlashPlayerVersion:F,createSWF:function(Z,Y,X){if(M.w3){return u(Z,Y,X)}else{return undefined}},showExpressInstall:function(Z,aa,X,Y){if(M.w3&&A()){P(Z,aa,X,Y)}},removeSWF:function(X){if(M.w3){y(X)}},createCSS:function(aa,Z,Y,X){if(M.w3){v(aa,Z,Y,X)}},addDomLoadEvent:K,addLoadEvent:s,getQueryParamValue:function(aa){var Z=j.location.search||j.location.hash;if(Z){if(/\?/.test(Z)){Z=Z.split("?")[1]}if(aa==null){return L(Z)}var Y=Z.split("&");for(var X=0;X<Y.length;X++){if(Y[X].substring(0,Y[X].indexOf("="))==aa){return L(Y[X].substring((Y[X].indexOf("=")+1)))}}}return""},expressInstallCallback:function(){if(a){var X=c(R);if(X&&l){X.parentNode.replaceChild(l,X);if(Q){w(Q,true);if(M.ie&&M.win){l.style.display="block"}}if(E){E(B)}}a=false}}}}();

var wrtsSpeech={enabled:false,isPlaying:false,onInitializeHandlers:[],addOnInitializeHandler:function(handler){this.onInitializeHandlers.push(handler);if(this.isSupported()){handler();}},callOnInitializeHandlers:function(){if(!this.isSupported())return false;for(var i=0;i<this.onInitializeHandlers.length;i++){this.onInitializeHandlers[i]();}},onStatusHandlers:[],addOnStatusHandler:function(handler){this.onStatusHandlers.push(handler);},callOnStatusHandlers:function(theStatus){for(var i=0;i<this.onStatusHandlers.length;i++){this.onStatusHandlers[i](theStatus);}},initialize:function(){if(!this.enabled)return false;if(swfobject&&document.getElementById&&document.getElementById('wrtsSpeechPlayer')){swfobject.registerObject('wrtsSpeechPlayer','8.0.0');swfobject.embedSWF('http://speech.wrts.nl/speech_player.swf?1','wrtsSpeechPlayer','150','32','8.0.0',false,false,{allowscriptaccess:'always',wmode:'transparent'});}
this.addOnStatusHandler(function(theStatus){if(theStatus=='complete'){this.isPlaying=false;}}.bind(this));},isSupported:function(){if(!this.enabled)return false;if(!document.getElementById)return false;if(!swfobject)return false;var wrtsSpeechPlayerObj=swfobject.getObjectById('wrtsSpeechPlayer');if(!wrtsSpeechPlayerObj)return false;if(!wrtsSpeechPlayerObj._speak)return false;return true;},canSpeakLanguage:function(langStr){if(this.isSupported()&&this.langToCode(langStr))return true;if(wrtsSpeechMsAgent.canSpeakLanguage(langStr))return true;return false;},langToCode:function(langStr){if(langStr.strip().match(/^(nederlands|nl|ne|dutch)$/i)){return'nl';}else if(langStr.strip().match(/^(frans|fr|fa|fran.+ais|french)$/i)){return'fr';}else if(langStr.strip().match(/^(engels|en|english)$/i)){return'en';}else if(langStr.strip().match(/^(duits|de|du|german|deutsch)$/i)){return'de';}else if(langStr.strip().match(/^(spaans|sp|es|espa.+ol|spanish)$/i)){return'es';}else{return false;}},speak:function(langStr,word){if(this.isSupported()&&this.langToCode(langStr)){var wrtsSpeechPlayerObj=swfobject.getObjectById('wrtsSpeechPlayer');var lang=this.langToCode(langStr);wrtsSpeechPlayerObj._speak(lang,word);this.isPlaying=true;return true;}else if(wrtsSpeechMsAgent.canSpeakLanguage(langStr)){wrtsSpeechMsAgent.speak(langStr,word);window.setTimeout(function(){wrtsSpeech.callOnStatusHandlers('complete');},1000);this.isPlaying=true;return true;}else{alert('Wrts kent de taal "'+langStr+'" niet. Het woord kan niet worden uitgesproken.');return false;}}};function wrtsSpeechPlayer_loaded(){wrtsSpeech.callOnInitializeHandlers();}
function wrtsSpeechPlayer_status(theStatus){wrtsSpeech.callOnStatusHandlers(theStatus);}

var wrtsSpeechMsAgent={initialize:function(){},isSupported:function(){if(!window.Agent)return false;if(!window.TruVoice)return false;return true;},canSpeakLanguage:function(langStr){if(!this.isSupported())return false;if(!this.langToCode(langStr))return false;if(!this.loadPeedy())return false;if(!this.canSetPeedyLanguage(this.langToCode(langStr)))return false;return true;},peedy:null,loadPeedy:function(){if(!this.isSupported())return false;if(this.peedy)return true;try{var loadRequest=Agent.characters.load('Peedy','Peedy.acs');this.peedy=Agent.characters('Peedy');}catch(err){}
return true;},showPeedy:function(){this.loadPeedy();if(this.peedy&&!this.peedy.visible){this.peedy.show();this.peedy.play('Announce');}},langToCode:function(langStr){if(langStr.strip().match(/^(nederlands|nl|ne|dutch)$/i)){return'nl';}else if(langStr.strip().match(/^(engels|en|english)$/i)){return'en';}else if(langStr.strip().match(/^(duits|de|du|german|deutsch)$/i)){return'de';}else if(langStr.strip().match(/^(frans|fr|fa|fran.*ais|french)$/i)){return'fr';}else if(langStr.strip().match(/^(italiaans|it|italiano|italian)$/i)){return'it';}else if(langStr.strip().match(/^(portugees|pt|portug.*s|portuguese)$/i)){return'pt';}else if(langStr.strip().match(/^(russisch|ru|russian)$/i)){return'ru';}else{return false;}},cacheCanSetPeedyLanguage:{},canSetPeedyLanguage:function(langCode){if(this.cacheCanSetPeedyLanguage[langCode]==true)return true;if(this.cacheCanSetPeedyLanguage[langCode]==false)return false;try{this.setPeedyLanguage(langCode);}catch(e){this.cacheCanSetPeedyLanguage[langCode]=false;return false;}
this.cacheCanSetPeedyLanguage[langCode]=true;return true;},setPeedyLanguage:function(langCode){var speed='130';if(langCode=='nl'){this.peedy.languageId=1043;this.peedy.ttsModeId='{A0DDCA41-A92C-11d1-B17B-0020AFED142E}';}else if(langCode=='en'){this.peedy.languageId=2057;this.peedy.ttsModeId='{227A0E41-A92A-11d1-B17B-0020AFED142E}';}else if(langCode=='de'){this.peedy.languageId=1031;this.peedy.ttsModeId='{3A1FB761-A92B-11d1-B17B-0020AFED142E}';}else if(langCode=='fr'){this.peedy.languageId=1036;this.peedy.ttsModeId='{0879A4E1-A92C-11d1-B17B-0020AFED142E}';}else if(langCode=='it'){this.peedy.languageId=1040;this.peedy.ttsModeId='{7EF71701-A92D-11d1-B17B-0020AFED142E}';speed='160';}else if(langCode=='es'){this.peedy.languageId=3082;this.peedy.ttsModeId='{2CE326E1-A935-11d1-B17B-0020AFED142E}';}else if(langCode=='pt'){this.peedy.languageId=2070;this.peedy.ttsModeId='{8AA08CA1-A1AE-11d3-9BC5-00A0C967A2D1}';}else if(langCode=='ru'){this.peedy.languageId=1049;this.peedy.ttsModeId='{06377F81-D48E-11d1-B17B-0020AFED142E}';}
return speed;},speak:function(langStr,word){var lang=this.langToCode(langStr);if(!lang)return false;this.showPeedy();if(this.peedy){try{var speed=this.setPeedyLanguage(lang);var chr34=String.fromCharCode(34);var speechText='\\Spd='+speed+'\\\\Map='+chr34+word+chr34+'='+chr34+chr34+'\\';this.peedy.speak(speechText);}catch(e){}}}};

var wrtsSpeechWoordenlijst={currentPlayingTd:null,initialize:function(){if(!this.getWoordenlijstTable())return;wrtsSpeech.addOnInitializeHandler(function(){wrtsSpeechWoordenlijst.loadLanguages();wrtsSpeechWoordenlijst.initializeEventHandlers();});},initializeEventHandlers:function(){var tbody=this.getWoordenlijstTbody();addEventSimple(tbody,'mouseover',function(e){return wrtsSpeechWoordenlijst.onTbodyMouseover(e);});addEventSimple(tbody,'click',function(e){return wrtsSpeechWoordenlijst.onTbodyClick(e);});wrtsSpeech.addOnStatusHandler(function(theStatus){return wrtsSpeechWoordenlijst.onSpeechStatus(theStatus);});},getWoordenlijstTable:function(){return document.getElementById('woordenlijst');},getWoordenlijstThead:function(){return this.getWoordenlijstTable().getElementsByTagName('thead')[0];},getWoordenlijstTbody:function(){return this.getWoordenlijstTable().getElementsByTagName('tbody')[0];},languages:null,loadLanguages:function(){var thead=this.getWoordenlijstThead();var ths=thead.getElementsByTagName('th');this.languages=[];for(var i=0;i<ths.length;i++){var langStr=ths[i].innerHTML.strip();if(!wrtsSpeech.canSpeakLanguage(langStr))langStr=false;this.languages.push(langStr);}},onTbodyMouseover:function(e){var td=e.target;if(!td)td=e.srcElement;if(td&&td.nodeName=='SPAN')td=td.parentNode;if(td&&td.nodeName=='TD'){var col=0;var prev=td;while(prev){prev=prev.previousSibling;col++;}
var langCode=this.languages[col-1];if(langCode&&!td.langCode){td.className='speechSpeakable';td.langCode=langCode;td.appendChild(document.createElement('span'));}}},onTbodyClick:function(e){var td=e.target;if(!td)td=e.srcElement;if(td&&td.nodeName=='SPAN')td=td.parentNode;if(td&&td.langCode){td.className='speechSpeaking';wrtsSpeech.speak(td.langCode,td.firstChild.nodeValue);if(this.currentPlayingTd){this.currentPlayingTd.className='speechSpeakable';}
this.currentPlayingTd=td;}},onSpeechStatus:function(theStatus){if(theStatus=='complete'||theStatus=='timeout'){if(this.currentPlayingTd){this.currentPlayingTd.className='speechSpeakable';this.currentPlayingTd=null;}}}};

var wrtsSpeechOverhoring={automatischSpreken:false,currentPlayingSpeechButton:null,initialize:function(){wrtsSpeech.addOnInitializeHandler(function(){wrtsSpeechOverhoring.initializeButtons();wrtsSpeech.addOnStatusHandler(function(theStatus){return wrtsSpeechOverhoring.onSpeechStatus(theStatus);});});},initializeButtons:function(){var schermVraagTaalVraag=document.getElementById('scherm-vraag-taal-vraag');var schermVraagSpeechButton=document.getElementById('scherm-vraag-speechbutton');var schermVraagVraag=document.getElementById('scherm-vraag-vraag');if(schermVraagVraag){if(schermVraagSpeechButton){this.createButton(schermVraagSpeechButton,schermVraagVraag);}else if(schermVraagTaalVraag){this.createButton(schermVraagTaalVraag.parentNode,schermVraagVraag);}}
var schermVerbeterTaalVraag=document.getElementById('scherm-verbeter-taal-vraag');var schermVerbeterSpeechButton=document.getElementById('scherm-verbeter-speechbutton');var schermVerbeterVraag=document.getElementById('scherm-verbeter-vraag');if(schermVerbeterVraag){if(schermVerbeterSpeechButton){this.createButton(schermVerbeterSpeechButton,schermVerbeterVraag);}else if(schermVerbeterTaalVraag){this.createButton(schermVerbeterTaalVraag.parentNode,schermVerbeterVraag);}}
var schermFoutTaalVraag=document.getElementById('scherm-fout-taal-vraag');var schermFoutVraag=document.getElementById('scherm-fout-vraag');if(schermFoutVraag&&schermFoutTaalVraag){this.createButton(schermFoutTaalVraag.parentNode,schermFoutVraag);}
var schermFoutGoedeAntwoordCaption=document.getElementById('scherm-fout-goede-antwoord-caption');var schermFoutGoedeAntwoord=document.getElementById('scherm-fout-goede-antwoord');if(schermFoutGoedeAntwoordCaption&&schermFoutGoedeAntwoord){this.createButton(schermFoutGoedeAntwoordCaption,schermFoutGoedeAntwoord);}},createButton:function(buttonParentElement,wordElement){var span=document.createElement('span');span.className='speechButton';buttonParentElement.appendChild(span);addEventSimple(span,'click',function(e){wrtsSpeechOverhoring.speak(span,wordElement);});},speak:function(buttonSpan,element){var word=element.innerHTML;var lang=element.getAttribute('taal');var success=wrtsSpeech.speak(lang,word);if(success){buttonSpan.className=buttonSpan.className.replace(/speechButtonSpeaking/,'').strip();buttonSpan.className+=' speechButtonSpeaking';this.currentPlayingSpeechButton=buttonSpan;}},speakAuto:function(element,langCode){if(this.automatischSpreken){this.resetCurrentPlayingSpeechButton();if((typeof element)=='string'&&langCode){wrtsSpeech.speak(langCode,element);return true;}else{var word=element.innerHTML;var lang=element.getAttribute('taal');wrtsSpeech.speak(lang,word);return true;}}
return false;},onSpeechStatus:function(theStatus){if(theStatus=='complete'||theStatus=='timeout'){this.resetCurrentPlayingSpeechButton();}},resetCurrentPlayingSpeechButton:function(){if(this.currentPlayingSpeechButton){this.currentPlayingSpeechButton.className=this.currentPlayingSpeechButton.className.replace(/speechButtonSpeaking/,'').strip();this.currentPlayingSpeechButton=null;}}};
