
/* The MIT License
*
* Copyright (c) <year> <copyright holders>
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/


/*  Copyright 2007, ontoprise GmbH
*  This file is part of the halo-Extension.
*
*   The halo-Extension is free software; you can redistribute it and/or modify
*   it under the terms of the GNU General Public License as published by
*   the Free Software Foundation; either version 3 of the License, or
*   (at your option) any later version.
*
*   The halo-Extension is distributed in the hope that it will be useful,
*   but WITHOUT ANY WARRANTY; without even the implied warranty of
*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
*   GNU General Public License for more details.
*
*   You should have received a copy of the GNU General Public License
*   along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/


/* WICK License

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
Neither the name of the Christopher T. Holland, nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

*/


/* Wlater Zorn Tooltip License

This notice must be untouched at all times.

wz_tooltip.js	 v. 4.12

The latest version is available at
http://www.walterzorn.com
or http://www.devira.com
or http://www.walterzorn.de

Copyright (c) 2002-2007 Walter Zorn. All rights reserved.
Created 1.12.2002 by Walter Zorn (Web: http://www.walterzorn.com )
Last modified: 13.7.2007

Easy-to-use cross-browser tooltips.
Just include the script at the beginning of the <body> section, and invoke
Tip('Tooltip text') from within the desired HTML onmouseover eventhandlers.
No container DIV, no onmouseouts required.
By default, width of tooltips is automatically adapted to content.
Is even capable of dynamically converting arbitrary HTML elements to tooltips
by calling TagToTip('ID_of_HTML_element_to_be_converted') instead of Tip(),
which means you can put important, search-engine-relevant stuff into tooltips.
Appearance of tooltips can be individually configured
via commands passed to Tip() or TagToTip().

Tab Width: 4
LICENSE: LGPL

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License (LGPL) as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

For more details on the GNU Lesser General Public License,
see http://www.gnu.org/copyleft/lesser.html
*/


/*
SMWHalo/skins/QueryInterface/Images/add.png and
SMWHalo/skins/QueryInterface/Images/delete.png

are taken from the Silk Icon Set 1.3

Silk icon set 1.3
_________________________________________
Mark James
http://www.famfamfam.com/lab/icons/silk/
_________________________________________

This work is licensed under a
Creative Commons Attribution 2.5 License.
[ http://creativecommons.org/licenses/by/2.5/ ]

This means you may use it for any purpose,
and make any changes you like.
All I ask is that you include a link back
to this page in your credits.

Are you using this icon set? Send me an email
(including a link or picture if available) to
mjames@gmail.com

Any other questions about this icon set please
contact mjames@gmail.com

*/

/*
SMWHalo/skins/QueryInterface/Images/subquery.png

is part of the Nuvola Icon Set available on
[ http://www.icon-king.com/v2/goodies.php ]
and released under a LGPL License

TITLE:	NUVOLA ICON THEME for KDE 3.x
AUTHOR:	David Vignoni | ICON KING
SITE:	http://www.icon-king.com
MAILING LIST: http://mail.icon-king.com/mailman/listinfo/nuvola_icon-king.com

Copyright (c)  2003-2004  David Vignoni.

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation,
version 2.1 of the License.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.
*/
// effects.js
// under MIT-License; Copyright (c) 2005, 2006 Thomas Fuchs
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); 

// slider.js
// under MIT-License; Copyright (c) 2005, 2006 Thomas Fuchs
if(!Control)var Control={};Control.Slider=Class.create({initialize:function(handle,track,options){var slider=this;if(Object.isArray(handle)){this.handles=handle.collect(function(e){return $(e)});}else{this.handles=[$(handle)];}this.track=$(track);this.options=options||{};this.axis=this.options.axis||'horizontal';this.increment=this.options.increment||1;this.step=parseInt(this.options.step||'1');this.range=this.options.range||$R(0,1);this.value=0;this.values=this.handles.map(function(){return 0});this.spans=this.options.spans?this.options.spans.map(function(s){return $(s)}):false;this.options.startSpan=$(this.options.startSpan||null);this.options.endSpan=$(this.options.endSpan||null);this.restricted=this.options.restricted||false;this.maximum=this.options.maximum||this.range.end;this.minimum=this.options.minimum||this.range.start;this.alignX=parseInt(this.options.alignX||'0');this.alignY=parseInt(this.options.alignY||'0');this.trackLength=this.maximumOffset()-this.minimumOffset();this.handleLength=this.isVertical()?(this.handles[0].offsetHeight!=0?this.handles[0].offsetHeight:this.handles[0].style.height.replace(/px$/,"")):(this.handles[0].offsetWidth!=0?this.handles[0].offsetWidth:this.handles[0].style.width.replace(/px$/,""));this.active=false;this.dragging=false;this.disabled=false;if(this.options.disabled)this.setDisabled();this.allowedValues=this.options.values?this.options.values.sortBy(Prototype.K):false;if(this.allowedValues){this.minimum=this.allowedValues.min();this.maximum=this.allowedValues.max();}this.eventMouseDown=this.startDrag.bindAsEventListener(this);this.eventMouseUp=this.endDrag.bindAsEventListener(this);this.eventMouseMove=this.update.bindAsEventListener(this);this.handles.each(function(h,i){i=slider.handles.length-1-i;slider.setValue(parseFloat((Object.isArray(slider.options.sliderValue)?slider.options.sliderValue[i]:slider.options.sliderValue)||slider.range.start),i);h.makePositioned().observe("mousedown",slider.eventMouseDown);});this.track.observe("mousedown",this.eventMouseDown);document.observe("mouseup",this.eventMouseUp);document.observe("mousemove",this.eventMouseMove);this.initialized=true;},dispose:function(){var slider=this;Event.stopObserving(this.track,"mousedown",this.eventMouseDown);Event.stopObserving(document,"mouseup",this.eventMouseUp);Event.stopObserving(document,"mousemove",this.eventMouseMove);this.handles.each(function(h){Event.stopObserving(h,"mousedown",slider.eventMouseDown);});},setDisabled:function(){this.disabled=true;},setEnabled:function(){this.disabled=false;},getNearestValue:function(value){if(this.allowedValues){if(value>=this.allowedValues.max())return(this.allowedValues.max());if(value<=this.allowedValues.min())return(this.allowedValues.min());var offset=Math.abs(this.allowedValues[0]-value);var newValue=this.allowedValues[0];this.allowedValues.each(function(v){var currentOffset=Math.abs(v-value);if(currentOffset<=offset){newValue=v;offset=currentOffset;}});return newValue;}if(value>this.range.end)return this.range.end;if(value<this.range.start)return this.range.start;return value;},setValue:function(sliderValue,handleIdx){if(!this.active){this.activeHandleIdx=handleIdx||0;this.activeHandle=this.handles[this.activeHandleIdx];this.updateStyles();}handleIdx=handleIdx||this.activeHandleIdx||0;if(this.initialized&&this.restricted){if((handleIdx>0)&&(sliderValue<this.values[handleIdx-1]))sliderValue=this.values[handleIdx-1];if((handleIdx<(this.handles.length-1))&&(sliderValue>this.values[handleIdx+1]))sliderValue=this.values[handleIdx+1];}sliderValue=this.getNearestValue(sliderValue);this.values[handleIdx]=sliderValue;this.value=this.values[0];this.handles[handleIdx].style[this.isVertical()?'top':'left']=this.translateToPx(sliderValue);this.drawSpans();if(!this.dragging|| !this.event)this.updateFinished();},setValueBy:function(delta,handleIdx){this.setValue(this.values[handleIdx||this.activeHandleIdx||0]+delta,handleIdx||this.activeHandleIdx||0);},translateToPx:function(value){return Math.round(((this.trackLength-this.handleLength)/(this.range.end-this.range.start))*(value-this.range.start))+"px";},translateToValue:function(offset){return((offset/(this.trackLength-this.handleLength)*(this.range.end-this.range.start))+this.range.start);},getRange:function(range){var v=this.values.sortBy(Prototype.K);range=range||0;return $R(v[range],v[range+1]);},minimumOffset:function(){return(this.isVertical()?this.alignY:this.alignX);},maximumOffset:function(){return(this.isVertical()?(this.track.offsetHeight!=0?this.track.offsetHeight:this.track.style.height.replace(/px$/,""))-this.alignY:(this.track.offsetWidth!=0?this.track.offsetWidth:this.track.style.width.replace(/px$/,""))-this.alignX);},isVertical:function(){return(this.axis=='vertical');},drawSpans:function(){var slider=this;if(this.spans)$R(0,this.spans.length-1).each(function(r){slider.setSpan(slider.spans[r],slider.getRange(r))});if(this.options.startSpan)this.setSpan(this.options.startSpan,$R(0,this.values.length>1?this.getRange(0).min():this.value));if(this.options.endSpan)this.setSpan(this.options.endSpan,$R(this.values.length>1?this.getRange(this.spans.length-1).max():this.value,this.maximum));},setSpan:function(span,range){if(this.isVertical()){span.style.top=this.translateToPx(range.start);span.style.height=this.translateToPx(range.end-range.start+this.range.start);}else{span.style.left=this.translateToPx(range.start);span.style.width=this.translateToPx(range.end-range.start+this.range.start);}},updateStyles:function(){this.handles.each(function(h){Element.removeClassName(h,'selected')});Element.addClassName(this.activeHandle,'selected');},startDrag:function(event){if(Event.isLeftClick(event)){if(!this.disabled){this.active=true;var handle=Event.element(event);var pointer=[Event.pointerX(event),Event.pointerY(event)];var track=handle;if(track==this.track){var offsets=Position.cumulativeOffset(this.track);this.event=event;this.setValue(this.translateToValue((this.isVertical()?pointer[1]-offsets[1]:pointer[0]-offsets[0])-(this.handleLength/2)));var offsets=Position.cumulativeOffset(this.activeHandle);this.offsetX=(pointer[0]-offsets[0]);this.offsetY=(pointer[1]-offsets[1]);}else{while((this.handles.indexOf(handle)== -1)&&handle.parentNode)handle=handle.parentNode;if(this.handles.indexOf(handle)!= -1){this.activeHandle=handle;this.activeHandleIdx=this.handles.indexOf(this.activeHandle);this.updateStyles();var offsets=Position.cumulativeOffset(this.activeHandle);this.offsetX=(pointer[0]-offsets[0]);this.offsetY=(pointer[1]-offsets[1]);}}}Event.stop(event);}},update:function(event){if(this.active){if(!this.dragging)this.dragging=true;this.draw(event);if(Prototype.Browser.WebKit)window.scrollBy(0,0);Event.stop(event);}},draw:function(event){var pointer=[Event.pointerX(event),Event.pointerY(event)];var offsets=Position.cumulativeOffset(this.track);pointer[0]-=this.offsetX+offsets[0];pointer[1]-=this.offsetY+offsets[1];this.event=event;this.setValue(this.translateToValue(this.isVertical()?pointer[1]:pointer[0]));if(this.initialized&&this.options.onSlide)this.options.onSlide(this.values.length>1?this.values:this.value,this);},endDrag:function(event){if(this.active&&this.dragging){this.finishDrag(event,true);Event.stop(event);}this.active=false;this.dragging=false;},finishDrag:function(event,success){this.active=false;this.dragging=false;this.updateFinished();},updateFinished:function(){if(this.initialized&&this.options.onChange)this.options.onChange(this.values.length>1?this.values:this.value,this);this.event=null;}}); 

// dragdrop.js
// under MIT-License; Copyright (c) 2005, 2006 Thomas Fuchs
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.withinIncludingScrolloffsets(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.withinIncludingScrolloffsets(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')];} 

// STB_Framework.js
// under GPL-License; Copyright (c) 2007 Ontoprise GmbH
var ToolbarFramework=Class.create();var FACTCONTAINER=0;var EDITCONTAINER=1;var TYPECONTAINER=2;var CATEGORYCONTAINER=3;var ATTRIBUTECONTAINER=4;var RELATIONCONTAINER=5;var PROPERTIESCONTAINER=6;var CBSRCHCONTAINER=7;var COMBINEDSEARCHCONTAINER=8;var HELPCONTAINER=9;var ANNOTATIONHINTCONTAINER=10;var SAVEANNOTATIONSCONTAINER=11;var DBGCONTAINER=12;var LASTCONTAINERIDX=12;ToolbarFramework.prototype={stbconstructor:function(){if(this.isToolbarAvailable()){this.getCookieTab();if(this.cookiePrefTab!=null){for(var i=0;i<this.cookiePrefTab.length;i++){if(this.cookiePrefTab[i]==1){this.curtabShown=i;}}}else{this.curtabShown=0;}this.isCollapsed=false;this.var_onto.innerHTML+="<div id=\"tabcontainer\"></div>";this.var_onto.innerHTML+="<div id=\"activetabcontainer\"></div>";this.var_onto.innerHTML+="<div id=\"semtoolbar\"></div>";this.var_stb=$("semtoolbar");if(this.var_stb){for(var i=0;i<=LASTCONTAINERIDX;i++){this.var_stb.innerHTML+="<div id=\"stb_cont"+i+"-headline\" class=\"generic_headline\"></div>";this.var_stb.innerHTML+="<div id=\"stb_cont"+i+"-content\" class=\"generic_content\"></div>";$("stb_cont"+i+"-headline").hide();$("stb_cont"+i+"-content").hide();}}}},isToolbarAvailable:function(){if($("ontomenuanchor")!=null){this.var_onto=$("ontomenuanchor");return true;}return false;},initialize:function(){this.contarray=new Array();this.tabarray=new Array();this.tabnames=new Array("Tools","Links to Other Pages","Facts about this Article");},createDivContainer:function(contnum,tabnr){if(this.tabarray[tabnr]==null){if(this.curtabShown==tabnr){this.tabarray[tabnr]=1;}else{this.tabarray[tabnr]=0;}if(this.tabarray.length>1){this.createTabHeader();}else if(wgAction=="annotate"){this.frameworkForceHeader;this.createForcedHeader();}}this.contarray[contnum]=new DivContainer();this.contarray[contnum].createContainer(contnum,tabnr);if(contnum==HELPCONTAINER){if(this.cookieHelpTab!=null){this.contarray[contnum].setVisibility(this.cookieHelpTab);}else{this.contarray[contnum].setVisibility(0);}}else{this.contarray[contnum].setVisibility(1);}return this.contarray[contnum];},showSemanticToolbarContainer:function(container){if(container!=null){if(this.contarray[container].getTab()==this.curtabShown){if(this.contarray[container].headline!=null){$("stb_cont"+container+"-headline").show();document.getElementById("stb_cont"+container+"-link").className='minusplus';}if(this.contarray[container].isVisible()){$("stb_cont"+container+"-content").show();}else{$("stb_cont"+container+"-content").hide();document.getElementById("stb_cont"+container+"-link").className='plusminus';}}}else{for(var i=0;i<this.contarray.length;i++){if(this.contarray[i]&&this.contarray[i].getTab()==this.curtabShown){if(this.contarray[i].headline!=null){$("stb_cont"+i+"-headline").show();document.getElementById("stb_cont"+i+"-link").className='minusplus';}if(this.contarray[i].isVisible()){$("stb_cont"+i+"-content").show();}else{$("stb_cont"+i+"-content").hide();document.getElementById("stb_cont"+i+"-link").className='plusminus';}}}}},contentChanged:function(contnum){this.showSemanticToolbarContainer(contnum);this.resizeToolbar();},notify:function(container){},getDivContainer:function(){},createTabHeader:function(){var tabHeader="";if(this.tabarray.length>1){for(var i=0;i<(this.tabarray.length);i++){if(this.curtabShown!=i){tabHeader+="<div id=\"expandable\" style=\"cursor:pointer;cursor:hand;\" onclick=stb_control.switchTab("+i+")><img src=\""+wgScriptPath+"/skins/ontoskin/expandable.gif\" onmouseover=\"(src='"+wgScriptPath+"/skins/ontoskin/expandable-act.gif')\" onmouseout=\"(src='"+wgScriptPath+"/skins/ontoskin/expandable.gif')\"></div><div id=\"tab_"+i+"\" style=\"cursor:pointer;cursor:hand;\" onclick=stb_control.switchTab("+i+")>"+this.tabnames[i]+"</div>";}else{$("activetabcontainer").update("<div id=\"expandable\"><img src=\""+wgScriptPath+"/skins/ontoskin/expanded.gif\"></div><div id=\"tab_"+i+"\">"+this.tabnames[i]+"</div>");}}}$("tabcontainer").update(tabHeader);},createForcedHeader:function(){tabHeader="<div id=\"expandable\" style=\"cursor:pointer;cursor:hand;\" onclick=stb_control.collapse()><img src=\""+wgScriptPath+"/skins/ontoskin/expandable.gif\" onmouseover=\"(src='"+wgScriptPath+"/skins/ontoskin/expandable-act.gif')\" onmouseout=\"(src='"+wgScriptPath+"/skins/ontoskin/expandable.gif')\"></div><div id=\"tab_0\" onclick=stb_control.collapse() style=\"cursor:pointer;cursor:hand;\" style=\"cursor:pointer;cursor:hand;\">Annotations & Help</div>";$("tabcontainer").update(tabHeader);},switchTab:function(tabnr){this.hideSemanticToolbarContainerTab(tabnr);this.tabarray[this.curtabShown]=0;this.tabarray[tabnr]=1;this.curtabShown=tabnr;this.createTabHeader();this.showSemanticToolbarContainer();this.resizeToolbar();this.setCookie(this.tabarray);},hideSemanticToolbarContainerTab:function(tabnr){if(tabnr!=null){for(var i=0;i<this.contarray.length;i++){if(this.contarray[i]&&this.contarray[i].getTab()==this.curtabShown){$("stb_cont"+i+"-headline").hide();$("stb_cont"+i+"-content").hide();}}}},setDragging:function(dragging){this.dragging=dragging;},collapse:function(){if(this.dragging==true){return;}if(this.isCollapsed){for(var i=0;i<this.contarray.length;i++){if(this.contarray[i]&&this.contarray[i].getTab()==this.curtabShown&&i!=SAVEANNOTATIONSCONTAINER){$("stb_cont"+i+"-headline").show();$("stb_cont"+i+"-content").show();this.isCollapsed=false;}}}else{for(var i=0;i<this.contarray.length;i++){if(this.contarray[i]&&this.contarray[i].getTab()==this.curtabShown&&i!=SAVEANNOTATIONSCONTAINER){$("stb_cont"+i+"-headline").hide();$("stb_cont"+i+"-content").hide();this.isCollapsed=true;}}}},resizeToolbar:function(){var maxUsableHeight=this.getWindowHeight()-150;if(maxUsableHeight>150){if($('activetabcontainer')){maxUsableHeight-=($('tabcontainer').scrollHeight+10+$('activetabcontainer').scrollHeight);}this.countNumOfDisplayedContainers();var neededHeight=this.calculateNeededHeightOfContainers();if(this.contarray[HELPCONTAINER]!=null&&this.contarray[HELPCONTAINER].isVisible()){maxUsableHeight-=this.contarray[HELPCONTAINER].getNeededHeight();}if(neededHeight>=maxUsableHeight){var j=this.numOfVisibleContainers;maxUsableHeight-=j*22;if((this.numOfContainers-1)==0){if(neededHeight>maxUsableHeight){for(var i=0;i<this.contarray.length;i++){if(this.contarray[i]&&this.contarray[i].getTab()==this.curtabShown&&this.contarray[i].getContainerNr()!=HELPCONTAINER){this.contarray[i].setContentStyle({maxHeight:maxUsableHeight+'px'});}}}}else{for(var i=0;i<this.contarray.length;i++){if(this.contarray[i]&&this.contarray[i].getTab()==this.curtabShown&&this.contarray[i].getContainerNr()!=HELPCONTAINER&&this.contarray[i].isVisible()){if(this.contarray[i].getNeededHeight()<maxUsableHeight/this.numOfVisibleContainers){this.contarray[i].setContentStyle({maxHeight:this.contarray[i].getNeededHeight()+'px'});maxUsableHeight-=this.contarray[i].getNeededHeight();}else{this.contarray[i].setContentStyle({maxHeight:maxUsableHeight/(this.numOfVisibleContainers)+'px'});}}}}}else{for(var i=0;i<this.contarray.length;i++){if(this.contarray[i]&&this.contarray[i].getTab()==this.curtabShown&&this.contarray[i].getContainerNr()!=HELPCONTAINER){this.contarray[i].setContentStyle({maxHeight:''});}}}}},calculateNeededHeightOfContainers:function(){var j=0;for(var i=0;i<this.contarray.length;i++){if(this.contarray[i]&&this.contarray[i].getTab()==this.curtabShown&&this.contarray[i].isVisible()){j+=this.contarray[i].getNeededHeight();}}return j;},countNumOfDisplayedContainers:function(){var j=0;var d=0;if(this.contarray){for(var i=0;i<this.contarray.length;i++){if(this.contarray[i]&&this.contarray[i].getTab()==this.curtabShown){j++;if(this.contarray[i].isVisible()){d++;}}}}this.numOfContainers=j;this.numOfVisibleContainers=d;},getWindowHeight:function(){if(window.innerHeight){return window.innerHeight;}else{if(window.document.documentElement&&window.document.documentElement.clientHeight){return typeof(window)=='undefined'?0:window.document.documentElement.clientHeight;}else{if(document.body&&document.body.offsetHeight){return typeof(win)=='undefined'?0:document.body.offsetHeight;}return 0;}}},getCookieTab:function(){var cookie=document.cookie;var length=cookie.length-1;if(cookie.charAt(length)!=";")cookie+=";";var a=cookie.split(";");for(var i=0;i<a.length;i++){var cookiename=this.trim(a[i].substring(0,a[i].search('=')));var cookievalue=a[i].substring(a[i].search('=')+1,a[i].length);if(cookiename=="stbpreftab"){var cookievalue=cookievalue.split(",");var retval=new Array();for(var j=0;j<cookievalue.length;j++){retval[j]=parseInt(cookievalue[j]);}this.cookiePrefTab=retval;}else if(cookiename=="stbprefhelp"){this.cookieHelpTab=parseInt(cookievalue);}}},trim:function(string){return string.replace(/(^\s+|\s+$)/g,"");},setCookie:function(curtabpos){var a=new Date();a=new Date(a.getTime()+1000*60*60*24*365);var implode='';var first=true;for(var i=0;i<curtabpos.length;i++){if(first==true)first=false;else implode+=",";implode+=curtabpos[i];}document.cookie='stbpreftab='+implode+'; expires='+a.toGMTString()+';';},setHelpCookie:function(helpshown){var a=new Date();a=new Date(a.getTime()+1000*60*60*24*365);document.cookie='stbprefhelp='+helpshown+'; expires='+a.toGMTString()+';';}};var stb_control=new ToolbarFramework();Event.observe(window,'load',stb_control.stbconstructor.bindAsEventListener(stb_control));Event.observe(window,'resize',stb_control.resizeToolbar.bindAsEventListener(stb_control));var Slider=Class.create();Slider.prototype={initialize:function(){this.sliderObj=null;this.oldHeight=0;this.oldWidth=0;},activateResizing:function(){if(!stb_control.isToolbarAvailable()||wgAction=='annotate')return;if(!$('slider'))return;$('slider').innerHTML='<img id="sliderHandle" src="'+wgScriptPath+'/extensions/SMWHalo/skins/slider.gif"/>';var initialvalue=0.65;this.slide(initialvalue);if(this.sliderObj!=null){this.sliderObj.setDisabled();this.sliderObj=null;}this.sliderObj=new Control.Slider('sliderHandle','slider',{sliderValue:initialvalue,minimum:0.5,maximum:0.75,onSlide:this.slide,onChange:this.slide});},slide:function(v){var leftmin=0.25;var rightmin=0.20;if(v<leftmin){smwhg_slider.sliderObj.setValue(leftmin);return;}if(v>1-rightmin){smwhg_slider.sliderObj.setValue(1-rightmin);return;}var currLeftDiv=100*v;var currRightDiv=95-currLeftDiv;$('contentcol1').style.width=currLeftDiv+"%";$('contentcol2').style.width=currRightDiv+"%";if(window.editAreaLoader){editAreaLoader.execCommand("wpTextbox1","update_size();");}if(typeof smwhg_marker!='undefined'){smwhg_marker.markNodes();}},resizeTextbox:function(){if(OB_bd.isIE==true){if(typeof document.documentElement!='undefined'&&document.documentElement.clientHeight!=this.oldHeight&&document.documentElement.clientHeight!=this.oldWidth){this.activateResizing();this.oldHeight=document.documentElement.clientHeight;this.oldWidth=document.documentElement.clientWidth;}else{if(typeof window.innerHeight!='undefined'&&window.innerHeight!=this.oldHeight&&window.innerWidth!=this.oldWidth){alert('resize');this.activateResizing();this.oldHeight=window.innerHeight;this.oldWidth=window.innerWidth;}}}else{this.activateResizing();}}};var smwhg_slider=new Slider();Event.observe(window,'load',smwhg_slider.activateResizing.bind(smwhg_slider));Event.observe(window,'resize',smwhg_slider.resizeTextbox.bind(smwhg_slider));

// STB_Divcontainer.js
// under GPL-License; Copyright (c) 2007 Ontoprise GmbH
var DivContainer=Class.create();DivContainer.prototype={initialize:function(){this.visibility=true;},createContainer:function(contnum,tabnr){this.contnum=contnum;this.tabnr=tabnr;},contentChanged:function(){stb_control.contentChanged(this.getContainerNr());},setTab:function(tabnr){this.tabnr=tabnr;},getTab:function(){return this.tabnr;},setContainerNr:function(contnum){this.contnum=contnum;},getContainerNr:function(){return this.contnum;},setVisibility:function(visibility){this.visibility=visibility;},isVisible:function(){return this.visibility;},setHeadline:function(headline){this.headline=headline;$("stb_cont"+this.getContainerNr()+"-headline").update("<div style=\"cursor:pointer;cursor:hand;\" onclick=\"stb_control.contarray["+this.getContainerNr()+"].switchVisibility()\"><a id=\"stb_cont"+this.getContainerNr()+"-link\" class=\"minusplus\" href=\"javascript:void(0)\">&nbsp;</a>"+headline);},setContent:function(content){this.content=content;$("stb_cont"+this.getContainerNr()+"-content").update(content);},setContentStyle:function(style){$("stb_cont"+this.getContainerNr()+"-content").setStyle(style);},switchVisibility:function(container){if(this.isVisible()){if(this.getContainerNr()==HELPCONTAINER){stb_control.setHelpCookie(0);}this.setVisibility(0);}else{if(this.getContainerNr()==HELPCONTAINER){stb_control.setHelpCookie(1);}this.setVisibility(1);}stb_control.contentChanged(this.getContainerNr());},getVisibleHeight:function(){return $('stb_cont'+this.getContainerNr()+"-content").offsetHeight;},getNeededHeight:function(){return $('stb_cont'+this.getContainerNr()+"-content").scrollHeight;}} 

// wick.js
// under WICK-License; Copyright (c) 2004, Christopher T. Holland
 var SMW_CATEGORY_NS=14;var SMW_PROPERTY_NS=102;var SMW_INSTANCE_NS=0;var SMW_TEMPLATE_NS=10;var SMW_TYPE_NS=104;var SMW_ENUM_POSSIBLE_VALUE_OR_UNIT=200;var SMW_AC_MANUAL_TRIGGERING_TIME=500;var SMW_AC_AUTO_TRIGGERING_TIME=800;var SMW_AJAX_AC=1;function autoCompletionsOptions(request){autoCompleter.autoTriggering=request.responseText.indexOf('auto')!= -1;document.cookie="AC_mode="+request.responseText+";path="+wgScriptPath+"/;"};var AutoCompleter=Class.create();AutoCompleter.prototype={initialize:function(){this.currentInputBox;this.typeHint;this.userInputToMatch=null;this.userContext=null;this.collection=[];this.ignorePending=false;this.articleRegEx=/((([\w\d])+\:)?([\w\d][\w\d\.\(\)\-\s]*)|(([\w\d])+\:))$/;this.timer=null;this.autoTriggering=false;this.allInputs=null;this.textAreas=null;this.siw=null;this.mousePressed=false;this.AC_idCounter=0;this.AC_yDiff=0;this.AC_xDiff=0;this.AC_userDefinedY=0;this.AC_userDefinedX=0;this.notMoved=false;this.currentIESelection=null;var AC_mode=GeneralBrowserTools.getCookie("AC_mode");if(AC_mode==null){sajax_do_call('smwfAutoCompletionOptions',[],autoCompletionsOptions);}else{this.autoTriggering=(AC_mode=='auto');}},freezeEvent:function(e){if(e.preventDefault)e.preventDefault();e.returnValue=false;e.cancelBubble=true;if(e.stopPropagation)e.stopPropagation();return false;},isWithinNode:function(e,i,c,t,obj){var answer=false;var te=e;while(te&& !answer){if((te.id&&(te.id==i))||(te.className&&(te.className==i+"Class"))||(!t&&c&&te.className&&(te.className==c))||(!t&&c&&te.className&&(te.className.indexOf(c)!= -1))||(t&&te.tagName&&(te.tagName.toLowerCase()==t))||(obj&&(te==obj))){answer=te;}else{te=te.parentNode;}}return te;},getEventElement:function(e){return(e.srcElement?e.srcElement:(e.target?e.target:e.currentTarget));},findElementPosX:function(obj){var curleft=0;if(obj.offsetParent){while(obj.offsetParent){curleft+=obj.offsetLeft;obj=obj.offsetParent;}}else if(obj.x)curleft+=obj.x;return curleft;},findElementPosY:function(obj){var curtop=0;if(obj.offsetParent){while(obj.offsetParent){curtop+=obj.offsetTop;obj=obj.offsetParent;}}else if(obj.y)curtop+=obj.y;return curtop;},handleKeyPress:function(event){var e=GeneralTools.getEvent(event);var eL=this.getEventElement(e);var upEl=eL.className.indexOf("wickEnabled")>=0?eL:undefined;var kc=e["keyCode"];var isFloaterVisible=(this.siw&&this.siw.floater.style.visibility=='visible');if(OB_bd.isIE)this.currentIESelection=document.selection.createRange();if(isFloaterVisible&&this.siw&&((kc==13)||(kc==9))){this.siw.selectingSomething=true;if(OB_bd.isSafari)this.siw.inputBox.blur();this.siw.inputBox.focus();this.hideSmartInputFloater();}else if(upEl&&(kc!=38)&&(kc!=40)&&(kc!=37)&&(kc!=39)&&(kc!=13)&&(kc!=27)){if(!this.siw||(this.siw&& !this.siw.selectingSomething)){if((e["ctrlKey"]&&(kc==32))||isFloaterVisible){if(OB_bd.isIE&& !isFloaterVisible&& !e["altKey"]){var userInput=this.getUserInputToMatch();var selection_range=document.selection.createRange();selection_range.moveStart("character",-userInput.length-1);selection_range.text=userInput.substr(0,userInput.length-1);selection_range.collapse(false);}if(!this.siw)this.siw=new SmartInputWindow();this.siw.inputBox=upEl;this.currentInputBox=upEl;this.typeHint=this.siw.inputBox.getAttribute("typeHint");this.userInputToMatch=this.getUserInputToMatch();if(this.userInputToMatch.length>=0){this.userContext=this.getUserContext();if(this.timer){window.clearTimeout(this.timer);}this.timer=window.setTimeout("autoCompleter.timedAC(autoCompleter.userInputToMatch, autoCompleter.userContext, autoCompleter.currentInputBox, autoCompleter.typeHint)",SMW_AC_MANUAL_TRIGGERING_TIME);}else{//-->
this.hideSmartInputFloater();return;}}else if(this.autoTriggering){if(kc==17||kc==18)return;if(!this.siw)this.siw=new SmartInputWindow();this.siw.inputBox=upEl;this.currentInputBox=upEl;this.typeHint=this.siw.inputBox.getAttribute("typeHint");if(GeneralBrowserTools.isTextSelected(this.siw.inputBox)){this.hideSmartInputFloater();return;}this.userContext=this.getUserContext();if((this.userContext.match(/^\[\[/)||this.userContext.match(/^\{\{/)||this.siw.inputBox.tagName!='TEXTAREA')){this.userInputToMatch=this.getUserInputToMatch();if(this.userInputToMatch.length>=1){if(this.timer){window.clearTimeout(this.timer);}this.timer=window.setTimeout("autoCompleter.timedAC(autoCompleter.userInputToMatch, autoCompleter.userContext, autoCompleter.currentInputBox, autoCompleter.typeHint)",SMW_AC_AUTO_TRIGGERING_TIME);}else{//-->
this.hideSmartInputFloater();return;}}else{//-->
this.siw.inputBox.focus();this.hideSmartInputFloater();return;}}}}else if(kc==27){this.hideSmartInputFloater();this.freezeEvent(e);this.resetCursorinIE();}else if(this.siw&&this.siw.inputBox){if(eL!=null&&eL.tagName=='HTML'&&isFloaterVisible){this.siw.inputBox.focus();}}},timedAC:function(userInputToMatch,userContext,inputBox,typeHint){function userInputToMatchResult(request){this.hidePendingAJAXIndicator();if(this.ignorePending){return;}if(request.status!=200){this.hideSmartInputFloater();return;}if(request.responseText.indexOf('noResult')!= -1){this.hideSmartInputFloater();return;}var result=request.responseText;this.collection=this.getMatchItems(request.responseText);if(this.collection.length>0){AC_matchCache.addLookup(userContext+userInputToMatch,this.collection,typeHint);}this.processSmartInput(inputBox,userInputToMatch);};this.notMoved=true;this.ignorePending=false;var cacheResult=AC_matchCache.getLookup(userContext+userInputToMatch,typeHint);if(cacheResult==null){if(userInputToMatch==null)return;this.showPendingAJAXIndicator(inputBox);this.resetCursorinIE();sajax_do_call('smwfAutoCompletionDispatcher',[wgTitle,userInputToMatch,userContext,typeHint],userInputToMatchResult.bind(this),SMW_AJAX_AC);}else{this.collection=cacheResult;this.processSmartInput(inputBox,userInputToMatch);}},handleKeyDown:function(event){var e=GeneralTools.getEvent(event);var eL=this.getEventElement(e);if(this.siw&&(kc=e["keyCode"])){if(kc==40&&this.siw.floater.style.visibility=='visible'){this.siw.selectingSomething=true;this.freezeEvent(e);this.selectNextSmartInputMatchItem();}else if(kc==38&&this.siw.floater.style.visibility=='visible'){this.siw.selectingSomething=true;this.freezeEvent(e);this.selectPreviousSmartInputMatchItem();}else if(((kc==13)||(kc==9))&&this.siw.floater.style.visibility=='visible'){this.siw.selectingSomething=true;this.activateCurrentSmartInputMatch();this.hideSmartInputFloater();this.freezeEvent(e);}else if(kc==27){ajaxRequestManager.stopCalls(SMW_AJAX_AC,this.hidePendingAJAXIndicator);smwhgLogger.log("","AC","close_without_selection");this.hideSmartInputFloater();this.freezeEvent(e);this.resetCursorinIE();}else{this.siw.selectingSomething=false;}}},handleFocus:function(event){},handleBlur:function(event){var e=GeneralTools.getEvent(event);var eL=this.getEventElement(e);if(blurEl=this.isWithinNode(eL,null,"wickEnabled",null,null)){if(this.siw&& !this.siw.selectingSomething)this.hideSmartInputFloater();}if(this.timer){window.clearTimeout(this.timer);}ajaxRequestManager.stopCalls(SMW_AJAX_AC,this.hidePendingAJAXIndicator);},handleClick:function(event){var e2=GeneralTools.getEvent(event);var eL2=this.getEventElement(e2);this.mousePressed=false;if(this.siw&&this.siw.selectingSomething){this.resetCursorinIE();this.selectFromMouseClick();}},handleMouseOver:function(event){if(this.notMoved)return;var e=GeneralTools.getEvent(event);var eL=this.getEventElement(e);if(this.siw&&(mEl=this.isWithinNode(eL,null,"matchedSmartInputItem",null,null))){this.siw.selectingSomething=true;this.selectFromMouseOver(mEl);}else if(this.isWithinNode(eL,null,"siwCredit",null,null)){this.siw.selectingSomething=true;}else if(this.siw){this.siw.selectingSomething=false;}},handleMouseDown:function(event){var e=GeneralTools.getEvent(event);var eL=this.getEventElement(e);var elementClicked=Event.element(event);if(this.siw&&elementClicked&&(Element.hasClassName(elementClicked,"MWFloaterContentHeader")||(Element.hasClassName(elementClicked.parentNode,"MWFloaterContentHeader")))){this.mousePressed=true;var x=this.findElementPosX(this.siw.inputBox);var y=this.findElementPosY(this.siw.inputBox);this.AC_yDiff=(e.pageY-y)-parseInt(this.siw.floater.style.top);this.AC_xDiff=(e.pageX-x)-parseInt(this.siw.floater.style.left);}},handleMouseMove:function(event){this.notMoved=false;if(OB_bd.isIE)return;var e=GeneralTools.getEvent(event);var eL=this.getEventElement(e);if(this.mousePressed&&this.siw){var x=this.findElementPosX(this.siw.inputBox);var y=this.findElementPosY(this.siw.inputBox);this.siw.floater.style.top=(e.pageY-y-this.AC_yDiff)+"px";this.siw.floater.style.left=(e.pageX-x-this.AC_xDiff)+"px";this.AC_userDefinedY=(e.pageY-y-this.AC_yDiff);this.AC_userDefinedX=(e.pageX-x-this.AC_xDiff);document.cookie="this.AC_userDefinedX="+this.AC_userDefinedX;document.cookie="this.AC_userDefinedY="+this.AC_userDefinedY;}},showSmartInputFloater:function(){if(!this.siw.floater.style.display||(this.siw.floater.style.display=="none")){if(!this.siw.customFloater){var x=Position.cumulativeOffset(this.siw.inputBox)[0];var y=Position.cumulativeOffset(this.siw.inputBox)[1]+this.siw.inputBox.offsetHeight;if(!OB_bd.isGecko&& !OB_bd.isIE)x+=8;if(!OB_bd.isGecko&& !OB_bd.isIE)y+=10;var posStyle=this.currentInputBox!=null?this.currentInputBox.getAttribute("position"):null;if(posStyle==null||posStyle=='absolute'){Element.setStyle(this.siw.floater,{position:'absolute'});x=x-Position.page($("globalWrapper"))[0]-Position.realOffset($("globalWrapper"))[0];y=y-Position.page($("globalWrapper"))[1]-Position.realOffset($("globalWrapper"))[1];}else if(posStyle=='fixed'){Element.setStyle(this.siw.floater,{position:'fixed'});}var alignment=this.currentInputBox!=null?this.currentInputBox.getAttribute("alignfloater"):null;if(alignment==null||alignment=='left'){this.siw.floater.style.left=x+"px";this.siw.floater.style.top=y+"px";}else{var globalWrapperWidth=$("globalWrapper");this.siw.floater.style.right=(globalWrapperWidth.offsetWidth-x-this.currentInputBox.offsetWidth)+"px";this.siw.floater.style.top=y+"px";}}else{if(!this.siw.inputBox)return;var advancedEditor=$('edit_area_toggle_checkbox_wpTextbox1')?$('edit_area_toggle_checkbox_wpTextbox1').checked:false;if(OB_bd.isIE&&this.siw.inputBox.tagName=='TEXTAREA'){var textarea=advancedEditor?$('frame_wpTextbox1'):this.siw.inputBox;var posY=this.findElementPosY(textarea);var posX=this.findElementPosX(textarea);textarea.focus();var textScrollTop=textarea.scrollTop;var documentScrollPos=document.documentElement.scrollTop;var selection_range=this.currentIESelection;selection_range.collapse(true);if(advancedEditor){var iFrameOfAdvEditor=document.getElementById('frame_wpTextbox1');this.siw.floater.style.left=(parseInt(iFrameOfAdvEditor.style.width)-360)+"px";this.siw.floater.style.top=(parseInt(iFrameOfAdvEditor.style.height)-160)+"px";}else{this.siw.floater.style.left=selection_range.boundingLeft-posX;this.siw.floater.style.top=selection_range.boundingTop+documentScrollPos+textScrollTop-20;this.siw.floater.style.height=25*Math.min(this.collection.length,this.siw.MAX_MATCHES)+20;}}if(OB_bd.isGecko&&this.siw.inputBox.tagName=='TEXTAREA'){var x=GeneralBrowserTools.getCookie("this.AC_userDefinedX");var y=GeneralBrowserTools.getCookie("this.AC_userDefinedY");if(x!=null&&y!=null){this.siw.floater.style.left=x+"px";this.siw.floater.style.top=y+"px";}else{if(advancedEditor){var iFrameOfAdvEditor=document.getElementById('frame_wpTextbox1');this.siw.floater.style.left=(parseInt(iFrameOfAdvEditor.style.width)-360)+"px";this.siw.floater.style.top=(parseInt(iFrameOfAdvEditor.style.height)-160)+"px";}else{this.siw.floater.style.left=(this.siw.inputBox.offsetWidth-360)+"px";this.siw.floater.style.top=(this.siw.inputBox.offsetHeight-160)+"px";}}}}this.siw.floater.style.display="block";this.siw.floater.style.visibility="visible";this.resetCursorinIE();}},resetCursorinIE:function(){if(!OB_bd.isIE)return;this.currentIESelection.scrollIntoView(true);this.currentIESelection.collapse(false);this.currentIESelection.select();},showPendingAJAXIndicator:function(inputBox){var pending=$("pendingAjaxIndicator");if(!this.siw)this.siw=new SmartInputWindow();var advancedEditor=$('edit_area_toggle_checkbox_wpTextbox1')?$('edit_area_toggle_checkbox_wpTextbox1').checked:false;var iFrameOfAdvEditor=document.getElementById('frame_wpTextbox1');if(OB_bd.isIE&&inputBox.tagName=='TEXTAREA'){var posY=this.findElementPosY(inputBox);var posX=this.findElementPosX(inputBox);inputBox.focus();var textScrollTop=inputBox.scrollTop;var documentScrollPos=document.documentElement.scrollTop;var selection_range=document.selection.createRange().duplicate();selection_range.collapse(true);if(advancedEditor){pending.style.left=(this.findElementPosX(iFrameOfAdvEditor)+parseInt(iFrameOfAdvEditor.style.width)-360)+"px";pending.style.top=(this.findElementPosY(iFrameOfAdvEditor)+parseInt(iFrameOfAdvEditor.style.height)-160)+"px";}else{pending.style.left=selection_range.boundingLeft-posX;pending.style.top=selection_range.boundingTop+documentScrollPos+textScrollTop-20;}}if(OB_bd.isGecko&&inputBox.tagName=='TEXTAREA'){var x=GeneralBrowserTools.getCookie("this.AC_userDefinedX");var y=GeneralBrowserTools.getCookie("this.AC_userDefinedY");if(x!=null&&y!=null){var posY=this.findElementPosY(advancedEditor?iFrameOfAdvEditor:inputBox);var posX=this.findElementPosX(advancedEditor?iFrameOfAdvEditor:inputBox);pending.style.left=(parseInt(x)+posX)+"px";pending.style.top=(parseInt(y)+posY)+"px";}else{if(advancedEditor){pending.style.left=(this.findElementPosX(iFrameOfAdvEditor)+parseInt(iFrameOfAdvEditor.style.width)-360)+"px";pending.style.top=(this.findElementPosY(iFrameOfAdvEditor)+parseInt(iFrameOfAdvEditor.style.height)-160)+"px";}else{pending.style.left=(this.findElementPosX(inputBox)+inputBox.offsetWidth-360)+"px";pending.style.top=(this.findElementPosY(inputBox)+inputBox.offsetHeight-160)+"px";}}}if(inputBox.tagName!='TEXTAREA'){pending.style.left=(Position.cumulativeOffset(inputBox)[0])+"px";pending.style.top=(Position.cumulativeOffset(inputBox)[1])+"px";}pending.style.display="block";pending.style.visibility="visible";},hidePendingAJAXIndicator:function(){var pending=$("pendingAjaxIndicator");pending.style.display="none";pending.style.visibility="hidden";},hideSmartInputFloater:function(){if(this.siw){this.siw.floater.style.display="none";this.siw.floater.style.visibility="hidden";this.siw=null;}},processSmartInput:function(inputBox,userInput){if(!this.siw)return;var classData=inputBox.className.split(" ");var siwDirectives=null;for(i=0;(!siwDirectives&&classData[i]);i++){if(classData[i].indexOf("wickEnabled")!= -1)siwDirectives=classData[i];}if(siwDirectives&&(siwDirectives.indexOf(":")!= -1)){this.siw.customFloater=true;var newFloaterId=siwDirectives.split(":")[1];this.siw.floater=document.getElementById(newFloaterId);this.siw.floaterContent=this.siw.floater.getElementsByTagName("div")[OB_bd.isGecko?1:0];}this.setSmartInputData(userInput);var content1=this.getSmartInputBoxContent();if(content1){this.modifySmartInputBoxContent(content1);this.showSmartInputFloater();if(OB_bd.isIE){this.siw.floater.style.height=25*Math.min(this.collection.length,this.siw.MAX_MATCHES)+20;this.siw.floater.firstChild.style.height=25*Math.min(this.collection.length,this.siw.MAX_MATCHES)+20;}}else this.hideSmartInputFloater();},simplify:function(s){var nopipe=s.indexOf("|")!= -1?s.substring(0,s.indexOf("|")).strip():s;return nopipe.replace(/^[ \s\f\t\n\r]+/,'').replace(/[ \s\f\t\n\r]+$/,'');},getUserInputToMatch:function(){if(!this.siw)return "";if(this.siw.inputBox.tagName=='TEXTAREA'){var textBeforeCursor=this.getTextBeforeCursor();var userInputToMatch=textBeforeCursor.match(this.articleRegEx);return userInputToMatch?userInputToMatch[0].replace(/\s/,"_").replace(/category\:/i,""):"";}else{a=this.siw.inputBox.value;fields=this.siw.inputBox.value.split(";");if(fields.length>0)a=fields[fields.length-1];return a.strip();}},getUserContext:function(){if(this.siw!=null&&this.siw.inputBox!=null&&this.siw.inputBox.tagName=='TEXTAREA'){var textBeforeCursor=this.getTextBeforeCursor();var userContextStart=Math.max(textBeforeCursor.lastIndexOf("[["),textBeforeCursor.lastIndexOf("{{"));var closingSemTag=Math.max(textBeforeCursor.lastIndexOf("]]"),textBeforeCursor.lastIndexOf("}}"));if(userContextStart!= -1&&userContextStart>closingSemTag){var userInputToMatch=this.getUserInputToMatch();if(userInputToMatch!=null){var lengthOfContext=textBeforeCursor.length-userInputToMatch.length;return textBeforeCursor.substring(userContextStart,lengthOfContext);}}return "";}else{return "";}},getTextBeforeCursor:function(){if(OB_bd.isIE){this.siw.inputBox.focus();var selection_range=document.selection.createRange();var selection_rangeWhole=document.selection.createRange();selection_rangeWhole.moveToElementText(this.siw.inputBox);selection_range.setEndPoint("StartToStart",selection_rangeWhole);return selection_range.text;}else if(OB_bd.isGecko){var start=this.siw.inputBox.selectionStart;return this.siw.inputBox.value.substring(0,start);}return "";},getTextAfterCursor:function(){if(OB_bd.isIE){var selection_range=document.selection.createRange();var selection_rangeWhole=document.selection.createRange();selection_rangeWhole.moveToElementText(this.siw.inputBox);selection_range.setEndPoint("EndToEnd",selection_rangeWhole);return selection_range.text;}else if(OB_bd.isGecko){var start=this.siw.inputBox.selectionStart;return this.siw.inputBox.value.substring(start);}return "";},getUserInputBase:function(){var s=this.siw.inputBox.value;var lastComma=s.lastIndexOf(";");return s.substr(0,lastComma+1);},highlightMatches:function(userInput){var userInput=this.simplify(userInput);userInput=userInput.replace(/\s/,"_");if(this.siw)this.siw.matchCollection=new Array();var pointerToCollectionToUse=this.collection;var re1m=new RegExp("([ \"\>\<\-]*)("+userInput+")","i");var re2m=new RegExp("([ \"\>\<\-]+)("+userInput+")","i");var re1=new RegExp("([ \"\}\{\-]*)("+userInput+")","gi");var re2=new RegExp("([ \"\}\{\-]+)("+userInput+")","gi");var reMeasure=new RegExp("(([+-]?\d*(\.\d+([eE][+-]?\d*)?)?)\s+)?(.*)","gi");for(i=0,j=0;(i<pointerToCollectionToUse.length);i++){var displayMatches=(j<this.siw.MAX_MATCHES);var entry=pointerToCollectionToUse[i];var mEntry=this.simplify(entry.getText());if((mEntry.indexOf(userInput)==0)){userInput=userInput.replace(/\>/gi,'\\}').replace(/\< ?/gi,'\\{');re=new RegExp("("+userInput+")","i");if(displayMatches){this.siw.matchCollection[j]=new SmartInputMatch(entry.getText(),mEntry.replace(/\>/gi,'}').replace(/\< ?/gi,'{').replace(re,"<b>$1</b>").replace(/_/g,' '),entry.getType());}j++;}else if(mEntry.match(re1m)||mEntry.match(re2m)){if(displayMatches){this.siw.matchCollection[j]=new SmartInputMatch(entry.getText(),mEntry.replace(/\>/gi,'}').replace(/\</gi,'{').replace(re1,"$1<b>$2</b>").replace(re2,"$1<b>$2</b>").replace(/_/g,' '),entry.getType());}j++;}else if(mEntry.match(reMeasure)){if(displayMatches){this.siw.matchCollection[j]=new SmartInputMatch(entry.getText(),mEntry.replace(/\>/gi,'}').replace(/\</gi,'{').replace(re1,"$1<b>$2</b>").replace(re2,"$1<b>$2</b>").replace(/_/g,' '),entry.getType());}j++;}}},setSmartInputData:function(orgUserInput){if(this.siw){var userInput=orgUserInput.toLowerCase().replace(/[\r\n\t\f\s]+/gi,' ').replace(/^ +/gi,'').replace(/ +$/gi,'').replace(/ +/gi,' ').replace(/\\/gi,'').replace(/\[/gi,'').replace(/\(/gi,'\\(').replace(/\./gi,'\.').replace(/\?/gi,'').replace(/\)/gi,'\\)');if(userInput!=null&&(userInput!='"')){this.highlightMatches(userInput);}else{this.siw.matchCollection=null;}}},getSmartInputBoxContent:function(){var a=null;if(this.siw&&this.siw.matchCollection&&(this.siw.matchCollection.length>0)){a='';for(i=0;i<this.siw.matchCollection.length;i++){selectedString=this.siw.matchCollection[i].isSelected?' selectedSmartInputItem':'';var id=("selected"+i);a+='<p id="'+id+'" class="matchedSmartInputItem'+selectedString+'">'+this.siw.matchCollection[i].getImageTag()+"\t"+this.siw.matchCollection[i].value.replace(/\{ */gi,"&lt;").replace(/\} */gi,"&gt;")+'</p>';}}return a;},modifySmartInputBoxContent:function(content){this.siw.floaterContent.innerHTML='<div id="smartInputResults">'+content+(this.siw.showCredit?('<p class="siwCredit">Powered By: <a target="PhrawgBlog" href="http://chrisholland.blogspot.com/?from=smartinput&ref='+escape(location.href)+'">Chris Holland</a></p>'):'')+'</div>';this.siw.matchListDisplay=document.getElementById("smartInputResults");if(OB_bd.isGecko){this.scrollToSelectedItem();}},scrollToSelectedItem:function(){for(i=0;i<this.siw.matchCollection.length;i++){if(this.siw.matchCollection[i].isSelected){var selElement=document.getElementById("selected"+i);selElement.scrollIntoView(false);return;}}},selectFromMouseOver:function(o){var currentIndex=this.getCurrentlySelectedSmartInputItem();if(currentIndex!=null)this.deSelectSmartInputMatchItem(currentIndex);var newIndex=this.getIndexFromElement(o);this.selectSmartInputMatchItem(newIndex);this.modifySmartInputBoxContent(this.getSmartInputBoxContent());},selectFromMouseClick:function(){this.activateCurrentSmartInputMatch();this.siw.inputBox.focus();this.siw.inputBox.blur();this.hideSmartInputFloater();},getIndexFromElement:function(o){var index=0;while(o=o.previousSibling){index++;}return index;},getCurrentlySelectedSmartInputItem:function(){var answer=null;if(!this.siw.matchCollection)return;for(i=0;((i<this.siw.matchCollection.length)&& !answer);i++){if(this.siw.matchCollection[i].isSelected)answer=i;}return answer;},selectSmartInputMatchItem:function(index){if(!this.siw.matchCollection)return;this.siw.matchCollection[index].isSelected=true;},deSelectSmartInputMatchItem:function(index){if(!this.siw.matchCollection)return;this.siw.matchCollection[index].isSelected=false;},selectNextSmartInputMatchItem:function(){if(!this.siw.matchCollection)return;currentIndex=this.getCurrentlySelectedSmartInputItem();if(currentIndex!=null){this.deSelectSmartInputMatchItem(currentIndex);if((currentIndex+1)<this.siw.matchCollection.length)this.selectSmartInputMatchItem(currentIndex+1);else this.selectSmartInputMatchItem(0);}else{this.selectSmartInputMatchItem(0);}this.modifySmartInputBoxContent(this.getSmartInputBoxContent());},selectPreviousSmartInputMatchItem:function(){if(!this.siw.matchCollection)return;var currentIndex=this.getCurrentlySelectedSmartInputItem();if(currentIndex!=null){this.deSelectSmartInputMatchItem(currentIndex);if((currentIndex-1)>=0)this.selectSmartInputMatchItem(currentIndex-1);else this.selectSmartInputMatchItem(this.siw.matchCollection.length-1);}else{this.selectSmartInputMatchItem(this.siw.matchCollection.length-1);}this.modifySmartInputBoxContent(this.getSmartInputBoxContent());},activateCurrentSmartInputMatch:function(){var baseValue=this.getUserInputBase();if((selIndex=this.getCurrentlySelectedSmartInputItem())!=null){addedValue=this.siw.matchCollection[selIndex].cleanValue;this.insertTerm(addedValue,baseValue,this.siw.matchCollection[selIndex].getType());this.ignorePending=true;}else{smwhgLogger.log("","AC","close_without_selection");}},insertTerm:function(addedValue,baseValue,type){addedValue=addedValue.replace(/_/g," ");var userContext=this.getUserContext();if(this.siw.customFloater){if((userContext.match(/:=/)||userContext.match(/::/)||userContext.match(/category:/i))&& !this.getTextAfterCursor().match(/^(\s|\r|\n)*\]\]|^(\s|\r|\n)*\||^(\s|\r|\n)*;/)){addedValue+="]]";}else if(type==SMW_PROPERTY_NS){addedValue+="::";}else if(type==SMW_INSTANCE_NS){if(!userContext.match(/|(\s|\r|\n)*$/)){addedValue+="]]";}}else if(addedValue.match(/category/i)){addedValue+=":";}}if(OB_bd.isIE&&this.siw.inputBox.tagName=='TEXTAREA'){this.siw.inputBox.focus();this.currentIESelection.collapse(false);this.currentIESelection.select();var userInput=this.getUserInputToMatch();if(type==SMW_ENUM_POSSIBLE_VALUE_OR_UNIT){userInput=this.removeNumberFromMeasure(userInput);}var selection_range=document.selection.createRange();selection_range.moveStart("character",-userInput.length);selection_range.text=addedValue;selection_range.collapse(false);this.resetCursorinIE();if(refreshSTB)refreshSTB.changed();smwhgLogger.log(userInput+addedValue,"AC","close_with_selection");}else if(OB_bd.isGecko&&this.siw.inputBox.tagName=='TEXTAREA'){var userInput=this.getUserInputToMatch();if(type==SMW_ENUM_POSSIBLE_VALUE_OR_UNIT){userInput=this.removeNumberFromMeasure(userInput);}var scrollTop=this.siw.inputBox.scrollTop;var start=this.siw.inputBox.selectionStart;var pre=this.siw.inputBox.value.substring(0,start-userInput.length);var suf=this.siw.inputBox.value.substring(start);var theString=pre+addedValue+suf;this.siw.inputBox.value=theString;this.siw.inputBox.selectionStart=start+addedValue.length-userInput.length;this.siw.inputBox.selectionEnd=start+addedValue.length-userInput.length;this.siw.inputBox.scrollTop=scrollTop;if(refreshSTB)refreshSTB.changed();smwhgLogger.log(userInput+addedValue,"AC","close_with_selection");}else{var pasteNS=this.currentInputBox!=null?this.currentInputBox.getAttribute("pasteNS"):null;var theString=(baseValue?baseValue:"")+addedValue;if(pasteNS!=null){switch(type){case SMW_PROPERTY_NS:theString=gLanguage.getMessage('PROPERTY')+theString;break;case SMW_CATEGORY_NS:theString=gLanguage.getMessage('CATEGORY')+theString;break;case SMW_TEMPLATE_NS:theString=gLanguage.getMessage('TEMPLATE')+theString;break;case SMW_TYPE_NS:theString=gLanguage.getMessage('TYPE')+theString;break;}}this.siw.inputBox.value=theString;smwhgLogger.log(theString,"AC","close_with_selection");}},removeNumberFromMeasure:function(measure){var result=measure;var matches=result.match(/[+-]?\d+(\.\d+([eE][+-]?\d*)?)?_+/gi);if(matches){result=result.substr(matches[0].length);}return result;},registerSmartInputListeners:function(){var inputs=document.getElementsByTagName("input");var texts=Array();texts[0]=document.getElementById("wpTextbox1");AC_matchCache=new MatchCache();this.registerAllInputs();this.textAreas=new Array();var y=0;if(texts){while(texts[y]){this.textAreas.push(texts[y]);this.createEmbeddingContainer(texts[y]);y++;}}var contentElement=document.getElementById("globalWrapper");contentElement.appendChild(this.createFloater());var pending=this.createPendingAJAXIndicator();contentElement.appendChild(pending);this.siw=null;Event.observe(document,"keydown",this.handleKeyDown.bindAsEventListener(this),false);Event.observe(document,"keyup",this.handleKeyPress.bindAsEventListener(this),false);Event.observe(document,"mouseup",this.handleClick.bindAsEventListener(this),false);Event.observe(document,"mousemove",this.handleMouseMove.bindAsEventListener(this),false);if(OB_bd.isGecko){Event.observe(document,"mousedown",this.handleMouseDown.bindAsEventListener(this),false);}Event.observe(document,"mouseover",this.handleMouseOver.bindAsEventListener(this),false);},registerAllInputs:function(){var inputs=document.getElementsByTagName("input");this.allInputs=new Array();var x=0;var z=0;var c=null;if(inputs){while(inputs[x]){if((c=inputs[x].className)&&(c.indexOf("wickEnabled")!= -1)){this.allInputs[z]=new Array();this.allInputs[z][0]=inputs[x];z++;}x++;}}for(i=0;i<this.allInputs.length;i++){if((c=this.allInputs[i][0].className)&&(c.indexOf("wickEnabled")!= -1)){this.allInputs[i][0].setAttribute("autocomplete","OFF");this.allInputs[i][1]=this.handleBlur.bindAsEventListener(this);Event.observe(this.allInputs[i][0],"blur",this.allInputs[i][1]);}}},deregisterAllInputs:function(){if(this.allInputs!=null){for(i=0;i<this.allInputs.length;i++){Event.stopObserving(this.allInputs[i][0],"blur",this.allInputs[i][1]);}}},registerTextArea:function(textAreaID,iFrame){if(iFrame&&textAreaID){var textArea=iFrame.document.getElementById(textAreaID);if(textArea){if(this.textAreas.indexOf(textArea)!= -1){return;}this.textAreas.push(textArea);var iFrameDocument=iFrame.document;Event.observe(iFrameDocument,"keydown",this.handleKeyDown.bindAsEventListener(this),false);Event.observe(iFrameDocument,"keyup",this.handleKeyPress.bindAsEventListener(this),false);Event.observe(iFrameDocument,"mouseup",this.handleClick.bindAsEventListener(this),false);if(OB_bd.isGecko){Event.observe(iFrameDocument,"mousedown",this.handleMouseDown.bindAsEventListener(this),false);Event.observe(iFrameDocument,"mousemove",this.handleMouseMove.bindAsEventListener(this),false);}Event.observe(iFrameDocument,"mouseover",this.handleMouseOver.bindAsEventListener(this),false);}}},createEmbeddingContainer:function(textarea){var container=document.createElement("div");container.setAttribute("style","position:relative;text-align:left");var mwFloater=document.createElement("div");mwFloater.setAttribute("id","MWFloater"+this.AC_idCounter);Element.addClassName(mwFloater,"MWFloater");var mwContent=document.createElement("div");Element.addClassName(mwContent,"MWFloaterContent");if(OB_bd.isGecko){var mwContentHeader=document.createElement("div");Element.addClassName(mwContentHeader,"MWFloaterContentHeader");var textinHeader=document.createElement("span");textinHeader.setAttribute("style","margin-left:5px;");textinHeader.innerHTML=gLanguage.getMessage('AC_CLICK_TO_DRAG');var cross=document.createElement("img");Element.addClassName(cross,"closeFloater");cross.setAttribute("src",wgServer+wgScriptPath+"/extensions/SMWHalo/skins/Autocompletion/close.gif");cross.setAttribute("onclick","javascript:autoCompleter.hideSmartInputFloater()");cross.setAttribute("style","margin-left:4px;margin-bottom:3px;");mwContentHeader.appendChild(cross);mwContentHeader.appendChild(textinHeader);mwFloater.appendChild(mwContentHeader);}container.appendChild(mwFloater);mwFloater.appendChild(mwContent);var parent=textarea.parentNode;var f=parent.replaceChild(container,textarea);Element.addClassName(f,"wickEnabled:MWFloater"+this.AC_idCounter);container.appendChild(f);var acMessage=document.createElement("span");Element.addClassName(acMessage,"acMessage");acMessage.innerHTML=gLanguage.getMessage('AUTOCOMPLETION_HINT');container.appendChild(acMessage);this.AC_idCounter++;},createFloater:function(){var tableElement=document.createElement("table");var tbodyElement=document.createElement("tbody");tableElement.setAttribute("id","smartInputFloater");Element.addClassName(tableElement,"floater");tableElement.setAttribute("cellpadding","0");tableElement.setAttribute("cellspacing","0");var trElement=document.createElement("tr");var tdElement=document.createElement("td");tdElement.setAttribute("id","smartInputFloaterContent");tdElement.setAttribute("nowrap","nowrap");trElement.appendChild(tdElement);tbodyElement.appendChild(trElement);tableElement.appendChild(tbodyElement);return tableElement;},createPendingAJAXIndicator:function(){var pending=document.createElement("img");Element.addClassName(pending,"pendingElement");pending.setAttribute("src",wgServer+wgScriptPath+"/extensions/SMWHalo/skins/Autocompletion/pending.gif");pending.setAttribute("id","pendingAjaxIndicator");return pending;},getMatchItems:function(xml){var list=GeneralXMLTools.createDocumentFromString(xml);var children=list.firstChild.childNodes;var collection=new Array();for(var i=0,n=children.length;i<n;i++){collection[i]=new MatchItem(children[i].firstChild.nodeValue,parseInt(children[i].getAttribute("type")));}return collection;}};function MatchItem(text,type){var _text=text;var _type=type;this.getText=function(){return _text;};this.getType=function(){return _type;}};function SmartInputWindow(){this.customFloater=false;this.floater=document.getElementById("smartInputFloater");this.floaterContent=document.getElementById("smartInputFloaterContent");this.selectedSmartInputItem=null;this.MAX_MATCHES=15;this.showCredit=false;};function SmartInputMatch(cleanValue,value,type){this.cleanValue=cleanValue;this.value=value;this.isSelected=false;var _type=type;this.getImageTag=function(){if(_type==SMW_INSTANCE_NS){return "<img src=\""+wgServer+wgScriptPath+"/extensions/SMWHalo/skins/instance.gif\">";}else if(_type==SMW_CATEGORY_NS){return "<img src=\""+wgServer+wgScriptPath+"/extensions/SMWHalo/skins/concept.gif\">";}else if(_type==SMW_PROPERTY_NS){return "<img src=\""+wgServer+wgScriptPath+"/extensions/SMWHalo/skins/property.gif\">";}else if(_type==SMW_TEMPLATE_NS){return "<img src=\""+wgServer+wgScriptPath+"/extensions/SMWHalo/skins/template.gif\">";}else if(_type==SMW_TYPE_NS){return "<img src=\""+wgServer+wgScriptPath+"/extensions/SMWHalo/skins/template.gif\">";}else if(_type==SMW_ENUM_POSSIBLE_VALUE_OR_UNIT){return "<img src=\""+wgServer+wgScriptPath+"/extensions/SMWHalo/skins/enum.gif\">";}return "";};this.getType=function(){return _type;}};function MatchCache(){var generalCache=$H({});var typeFilteredCache=$H({14:$H({}),102:$H({}),100:$H({}),0:$H({}),10:$H({})});var nextToReplace=0;var MAX_CACHE=10;this.addLookup=function(matchText,matches,typeHint){if(matchText==""||matchText==null)return;if(typeHint==null){if(generalCache.keys().length==MAX_CACHE){generalCache.remove(generalCache.keys()[nextToReplace]);nextToReplace++;if(nextToReplace==MAX_CACHE){nextToReplace=0;}}generalCache[matchText]=matches;}else{var cache=typeFilteredCache[parseInt(typeHint)];if(!cache)return;if(cache.keys().length==MAX_CACHE){cache.remove(cache.keys()[nextToReplace]);nextToReplace++;if(nextToReplace==MAX_CACHE){nextToReplace=0;}}cache[matchText]=matches;}};this.getLookup=function(matchText,typeHint){if(typeHint==null){if(generalCache[matchText]&&typeof(generalCache[matchText])=='object'){return generalCache[matchText];}}else{var cache=typeFilteredCache[parseInt(typeHint)];if(!cache)return null;return typeof(cache[matchText])=='object'?cache[matchText]:null;}return null;}};autoCompleter=new AutoCompleter();Event.observe(window,'load',autoCompleter.registerSmartInputListeners.bind(autoCompleter)); 

// SMW_Help.js
// under GPL-License; Copyright (c) 2007 Ontoprise GmbH
Event.observe(window,'load',smw_help_callme);var initHelp=function(){var ns=wgNamespaceNumber==0?"Main":wgCanonicalNamespace;if(wgNamespaceNumber== -1&&wgCanonicalSpecialPageName=="Search"){ns="Search";}else if(wgNamespaceNumber== -1&&wgCanonicalSpecialPageName=="QueryInterface"){ns="QueryInterface";}else if(wgNamespaceNumber== -1&&wgCanonicalSpecialPageName=="Gardening"){ns="Gardening";}else if(wgNamespaceNumber== -1&&wgCanonicalSpecialPageName=="GardeningLog"){ns="Gardening";}else if(wgNamespaceNumber== -1&&wgCanonicalSpecialPageName=="OntologyBrowser"){ns="OntologyBrowser";}sajax_do_call('smwfGetHelp',[ns,wgAction],displayHelp.bind(this));};function smw_help_callme(){if((wgAction=="edit"||wgAction=="annotate"||wgCanonicalSpecialPageName=="Search")&&stb_control.isToolbarAvailable()){helpcontainer=stb_control.createDivContainer(HELPCONTAINER,0);helpcontainer.setHeadline('<img src="'+wgScriptPath+'/extensions/SMWHalo/skins/help.gif"/> Help');initHelp();}else if(wgCanonicalSpecialPageName=="QueryInterface"){initHelp();}};function displayHelp(request){if(wgCanonicalSpecialPageName=="QueryInterface"){if(request.responseText!=''){$('qi-help-content').innerHTML=request.responseText;}}else{if(request.responseText!=''){helpcontainer.setContent(request.responseText);}else{helpcontainer.setHeadline=' ';}helpcontainer.contentChanged();}};function askQuestion(){$('questionLoaderIcon').show();var ns=wgNamespaceNumber==0?"Main":wgCanonicalNamespace;if(wgNamespaceNumber== -1&&wgCanonicalSpecialPageName=="Search"){ns="Search";}else if(wgNamespaceNumber== -1&&wgCanonicalSpecialPageName=="QueryInterface"){ns="QueryInterface";}else if(wgNamespaceNumber== -1&&wgCanonicalSpecialPageName=="Gardening"){ns="Gardening";}else if(wgNamespaceNumber== -1&&wgCanonicalSpecialPageName=="GardeningLog"){ns="Gardening";}else if(wgNamespaceNumber== -1&&wgCanonicalSpecialPageName=="OntologyBrowser"){ns="OntologyBrowser";}sajax_do_call('smwfAskQuestion',[ns,wgAction,$('question').value],hideQuestionForm.bind(this));};function hideQuestionForm(request){initHelp();$('questionLoaderIcon').hide();$('askHelp').hide();alert(request.responseText);};function submitenter(myfield,e){var keycode;if(window.event){keycode=window.event.keyCode;}else if(e){keycode=e.which;}else{return true;}if(keycode==13){askQuestion();return false;}else{return true;}};function helplog(question,action){if(window.smwhgLogger){var logmsg="Opened Help Page "+question+" with action "+action;smwhgLogger.log(logmsg,"CSH","help_clickedtopic");}return true;}

// SMW_Links.js
// under GPL-License; Copyright (c) 2007 Ontoprise GmbH
Event.observe(window,'load',smw_links_callme);var createLinkList=function(){sajax_do_call('getLinks',[wgArticleId],addLinks);};function smw_links_callme(){if(wgAction=="edit"&&stb_control.isToolbarAvailable()){editcontainer=stb_control.createDivContainer(EDITCONTAINER,1);createLinkList();}};function addLinks(request){if(request.responseText!=''){editcontainer.setContent(request.responseText);editcontainer.contentChanged();}else{editcontainer.setContent("<p>There are no links on this page.</p>");editcontainer.contentChanged();}};function filter(term,_id,cellNr){var suche=term.value.toLowerCase();var table=document.getElementById(_id);var ele;for(var r=0;r<table.rows.length;r++){ele=table.rows[r].cells[cellNr].innerHTML.replace(/<[^>]+>/g,"");if(ele.toLowerCase().indexOf(suche)>=0)table.rows[r].style.display='';else table.rows[r].style.display='none';}};function update(){$("linkfilter").value="";filter($("linkfilter"),"linktable",0);};function linklog(link,action){if(window.smwhgLogger){var logmsg="Opened Page "+link+" with action "+action;smwhgLogger.log(logmsg,"info","link_opened");}return true;}

// Annotation.js
// under GPL-License; Copyright (c) 2007 Ontoprise GmbH
var WtpAnnotation=Class.create();WtpAnnotation.prototype={initialize:function(annotation,start,end,wtp,prefix){this.WtpAnnotation(annotation,start,end,wtp);},WtpAnnotation:function(annotation,start,end,wtp,prefix){this.annotation=annotation;this.start=start;this.end=end;this.wikiTextParser=wtp;this.prefix=prefix?prefix:"";this.name=null;this.representation=null;},getAnnotation:function(){return this.annotation;},getName:function(){return this.name;},getRepresentation:function(){if(this.representation==null){return "";}else{return this.representation;}},getStart:function(){return this.start;},getEnd:function(){return this.end;},getPrefix:function(){return this.prefix;},select:function(){this.wikiTextParser.setSelection(this.start,this.end);},replaceAnnotation:function(newAnnotation){this.wikiTextParser.replaceAnnotation(this,newAnnotation);var oldLen=this.annotation.length;var newLen=newAnnotation.length;this.end+=newLen-oldLen;this.annotation=newAnnotation;},move:function(offset,start){if(this.start>start){this.start+=offset;this.end+=offset;}},remove:function(replacementText){this.replaceAnnotation(replacementText);this.wikiTextParser.removeAnnotation(this);}};var WtpRelation=Class.create();WtpRelation.prototype=Object.extend(new WtpAnnotation(),{initialize:function(annotation,start,end,wtp,prefix,relationName,relationValue,representation){this.WtpAnnotation(annotation,start,end,wtp,prefix);this.WtpRelation(relationName,relationValue,representation);},WtpRelation:function(relationName,relationValue,representation){this.name=relationName;this.value=relationValue;this.representation=representation;this.splitValues=this.value.split(";");this.arity=this.splitValues.length+1;},getValue:function(){return this.value;},getSplitValues:function(){return this.splitValues;},getArity:function(){return this.arity;},rename:function(newRelationName){var newAnnotation="[["+this.prefix+newRelationName+"::"+this.value;if(this.representation){newAnnotation+="|"+this.representation;}newAnnotation+="]]";this.name=newRelationName;this.replaceAnnotation(newAnnotation);},changeValue:function(newValue){var newAnnotation="[["+this.prefix+this.name+"::"+newValue;if(this.representation&&newValue!=this.representation){newAnnotation+="|"+this.representation;}newAnnotation+="]]";this.value=newValue;this.replaceAnnotation(newAnnotation);},changeRepresentation:function(newRepresentation){var newAnnotation="[["+this.prefix+this.name+"::"+this.value;if(newRepresentation&&newRepresentation!=""&&newRepresentation!=this.value){newAnnotation+="|"+newRepresentation;}newAnnotation+="]]";this.representation=newRepresentation;this.replaceAnnotation(newAnnotation);},inspect:function(){var content="Annotation: "+this.annotation+"<br />"+"Name : "+this.name+"<br />"+"Value: "+this.value+"<br />"+"Rep. : "+this.representation+"<br />"+"Start: "+this.start+"<br />"+"End  : "+this.end+"<br />";return content;}});var WtpCategory=Class.create();WtpCategory.prototype=Object.extend(new WtpAnnotation(),{initialize:function(annotation,start,end,wtp,prefix,categoryName,representation){this.WtpAnnotation(annotation,start,end,wtp,prefix);this.WtpCategory(categoryName,representation);},WtpCategory:function(categoryName,representation){this.name=categoryName;this.representation=representation;},changeCategory:function(newCategoryName){var newAnnotation="[["+this.prefix+gLanguage.getMessage('CATEGORY')+newCategoryName;if(this.representation){newAnnotation+="|"+this.representation;}newAnnotation+="]]";this.name=newCategoryName;this.replaceAnnotation(newAnnotation);},changeRepresentation:function(newRepresentation){var newAnnotation="[["+this.prefix+gLanguage.getMessage('CATEGORY')+this.name;if(newRepresentation&&newRepresentation!=""){newAnnotation+="|"+newRepresentation;}newAnnotation+="]]";this.representation=newRepresentation;this.replaceAnnotation(newAnnotation);},inspect:function(){var content="Annotation: "+this.annotation+"<br />"+"Name : "+this.name+"<br />"+"Rep. : "+this.representation+"<br />"+"Start: "+this.start+"<br />"+"End  : "+this.end+"<br />";return content;}});var WtpLink=Class.create();WtpLink.prototype=Object.extend(new WtpAnnotation(),{initialize:function(annotation,start,end,wtp,prefix,link,representation){this.WtpAnnotation(annotation,start,end,wtp,prefix);this.WtpLink(link,representation);},WtpLink:function(link,representation){this.name=link;this.representation=representation;},changeLink:function(newLink){var newAnnotation="[["+this.prefix+newLink;if(this.representation){newAnnotation+="|"+this.representation;}newAnnotation+="]]";this.name=newLink;this.replaceAnnotation(newAnnotation);},changeRepresentation:function(newRepresentation){var newAnnotation="[["+this.prefix+this.name;if(newRepresentation&&newRepresentation!=""){newAnnotation+="|"+newRepresentation;}newAnnotation+="]]";this.representation=newRepresentation;this.replaceAnnotation(newAnnotation);},inspect:function(){var content="Annotation: "+this.annotation+"<br />"+"Name : "+this.name+"<br />"+"Rep. : "+this.representation+"<br />"+"Start: "+this.start+"<br />"+"End  : "+this.end+"<br />";return content;}}); 

// WikiTextParser.js
// under GPL-License; Copyright (c) 2007 Ontoprise GmbH
var nativeSplit=nativeSplit||String.prototype.split;String.prototype.split=function(s,limit){if(!(s instanceof RegExp))return nativeSplit.apply(this,arguments);if(limit===undefined|| +limit<0){limit=false;}else{limit=Math.floor(+limit);if(!limit)return[];}var flags=(s.global?"g":"")+(s.ignoreCase?"i":"")+(s.multiline?"m":""),s2=new RegExp("^"+s.source+"$",flags),output=[],lastLastIndex=0,i=0,match;if(!s.global)s=new RegExp(s.source,"g"+flags);while((!limit||i++ <=limit)&&(match=s.exec(this))){var zeroLengthMatch= !match[0].length;if(zeroLengthMatch&&s.lastIndex>match.index)s.lastIndex=match.index;if(s.lastIndex>lastLastIndex){if(match.length>1){match[0].replace(s2,function(){for(var j=1;j<arguments.length-2;j++){if(arguments[j]===undefined)match[j]=undefined;}});}output=output.concat(this.slice(lastLastIndex,match.index),(match.index===this.length?[]:match.slice(1)));lastLastIndex=s.lastIndex;}if(zeroLengthMatch)s.lastIndex++;}return(lastLastIndex===this.length)?(s.test("")?output:output.concat("")):(limit?output:output.concat(this.slice(lastLastIndex)));};var WTP_NO_ERROR=0;var WTP_UNMATCHED_BRACKETS=1;var WTP_WIKITEXT_MODE=1;var WTP_EDITAREA_MODE=2;var WikiTextParser=Class.create();var gEditInterface=null;WikiTextParser.prototype={initialize:function(wikiText){if(wikiText==""){wikiText=" ";}if(this.parserMode==WTP_WIKITEXT_MODE){if(!wikiText){wikiText=this.text;}}if(!wikiText||this.parserMode==WTP_EDITAREA_MODE){var txtarea;if(document.editform){txtarea=document.editform.wpTextbox1;}else{var areas=document.getElementsByTagName('textarea');txtarea=areas[0];}if(gEditInterface==null){gEditInterface=new SMWEditInterface();}this.editInterface=gEditInterface;this.text=this.editInterface.getValue();this.parserMode=WTP_EDITAREA_MODE;}else if(!this.parserMode){this.editInterface=null;this.text=wikiText;this.parserMode=WTP_WIKITEXT_MODE;this.wtsStart= -1;this.wtsEnd= -1}if(!this.textChangedHooks){this.textChangedHooks=new Array();this.categoryAddedHooks=new Array();this.relationAddedHooks=new Array();this.annotationRemovedHooks=new Array();}this.relations=null;this.categories=null;this.links=null;this.error=WTP_NO_ERROR;},getError:function(){return this.error;},getWikiText:function(){return this.text;},getRelation:function(name){if(this.relations==null){this.parseAnnotations();}var matching=new Array();for(var i=0,num=this.relations.length;i<num;++i){var rel=this.relations[i];if(this.equalWikiName(rel.getName(),name)){matching.push(rel);}}return matching.length==0?null:matching;},getRelations:function(){if(this.relations==null){this.parseAnnotations();}return this.relations;},getCategories:function(){if(this.categories==null){this.parseAnnotations();}return this.categories;},getCategory:function(name){if(this.categories==null){this.parseAnnotations();}for(var i=0,num=this.categories.length;i<num;++i){var cat=this.categories[i];if(this.equalWikiName(cat.getName(),name)){return cat;}}return null;},getLinks:function(){if(this.links==null){this.parseAnnotations();}return this.links;},addTextChangedHook:function(hookFnc){this.textChangedHooks.push(hookFnc);},addCategoryAddedHook:function(hookFnc){this.categoryAddedHooks.push(hookFnc);},addRelationAddedHook:function(hookFnc){this.relationAddedHooks.push(hookFnc);},addAnnotationRemovedHook:function(hookFnc){this.annotationRemovedHooks.push(hookFnc);},addRelation:function(name,value,representation,append){var anno="[["+name+"::"+value;if(representation&&value!=representation){anno+="|"+representation;}anno+="]]";var posInfo=this.addAnnotation(anno,append);for(var i=0;i<this.relationAddedHooks.size();++i){this.relationAddedHooks[i](posInfo[0],posInfo[0]+posInfo[2],name);}},addCategory:function(name,append){var anno="[["+gLanguage.getMessage('CATEGORY')+name;anno+="]]";var posInfo=this.addAnnotation(anno,append);for(var i=0;i<this.categoryAddedHooks.size();++i){this.categoryAddedHooks[i](posInfo[0],posInfo[0]+posInfo[2],name);}},addLink:function(link,representation,append){var anno="[["+link;if(representation){anno+="|"+representation;}anno+="]]";this.addAnnotation(anno,append);},replaceAnnotation:function(annoObj,newAnnotation){var startText=this.text.substring(0,annoObj.getStart());var endText=this.text.substr(annoObj.getEnd());var diffLen=newAnnotation.length-annoObj.getAnnotation().length;this.text=startText+newAnnotation+endText;if(this.editInterface){this.editInterface.setValue(this.text);}var result=[annoObj.getStart(),annoObj.getEnd(),newAnnotation.length];for(var i=0;i<this.textChangedHooks.size();++i){this.textChangedHooks[i](result);}this.updateAnnotationPositions(annoObj.getStart(),diffLen);},getSelection:function(trim){var text="";if(this.editInterface){trim=true;var text=this.editInterface.getSelectedText();if(trim==true&&text&&text.length>0){var regex=/^(\s*(\[\[)?)\s*(.*?)\s*((\]\])?\s*)$/;var parts=text.match(regex);if(parts){var rng=this.editInterface.selectCompleteAnnotation();return parts[3];}}}else{if(this.wtsStart>=0&&this.wtsEnd>=0){text=this.text.substring(this.wtsStart,this.wtsEnd);}}return text;},setSelection:function(start,end){if(this.editInterface){this.editInterface.setSelectionRange(start,end);}else{this.wtsStart=start;this.wtsEnd=end;}},findText:function(text,start,end,context){this.wtsStart= -1;this.wtsEnd= -1;if(end== -1){end=this.text.length;}var withContext=text;var preContext="";if(typeof(context)=="object"){preContext=context[0]+context[1];withContext=preContext+text+context[2]+context[3];}var pos=this.text.indexOf(withContext,start);if(pos>=0&&pos<end){this.wtsStart=pos+preContext.length;this.wtsEnd=this.wtsStart+text.length;return true;}var wikitext=this.text.substring(start,end);var pureText='';var pti=0;var wti=0;var map=new Array();var parts=wikitext.split(/('{2,})|(&nbsp;)|(\[\[.*?\]\])|(\[http.*?\])|(\s+)/);parts=parts.compact();var openApos=0;var rules=[[0,'a',5,3,2],[2,'a',3],[3,'c',3],[3,'a',2],[5,'c',5,3,2],[3,'c',3,2],[2,'c',2]];var closingRulesStart=4;var numApos=0;for(var i=0;i<parts.length;++i){if(parts[i].charAt(0)=="'"){numApos+=parts[i].length;}}var lastWasSpace=false;for(var i=0;i<parts.length;++i){var part=parts[i];if(part.length==0){continue;}if(part.charAt(0)=="'"){var num=part.length;var rulesStart=0;if(openApos+num>numApos){rulesStart=closingRulesStart;}numApos-=num;var ruleApplied=false;for(var r=rulesStart;r<rules.length&& !ruleApplied;++r){var rule=rules[r];var writeApos=0;if(openApos==rule[0]){for(var j=2;j<rule.length;++j){if(num>=rule[j]){ruleApplied=true;if(rule[1]=='a'){openApos+=rule[j];}else if(rule[1]=='c'){openApos-=rule[j];}writeApos=num-rule[j];if(writeApos!=0){map.push([pti,wti+writeApos,openApos]);pti+=writeApos;while(writeApos-- >0){pureText+="'";}lastWasSpace=false;}break;}}}}}else if(link=part.match(/\[\[(.*?)(\|.*?)?\]\]/)){var pt=link[2];if(!pt){pt=link[1];}pureText+=pt;map.push([pti,wti,openApos]);pti+=pt.length;lastWasSpace=false;}else if(part.match(/\s+/)||part=='&nbsp;'){if(!lastWasSpace){pureText+=' ';map.push([pti,wti+part.length-1,openApos]);pti++;}lastWasSpace=true;}else if(part.charAt(0)=='['){}else{pureText+=part;map.push([pti,wti,openApos]);pti+=part.length;lastWasSpace=false;}wti+=part.length;}pos=pureText.indexOf(withContext);if(pos== -1){pos=pureText.indexOf(text);}else{pos+=preContext.length;}if(pos== -1){var msg=gLanguage.getMessage('WTP_TEXT_NOT_FOUND');msg=msg.replace(/\$1/g,'<b>'+text+'</b>');return msg;}var wtStart= -1;var wtEnd= -1;var startLevel=0;var endLevel=0;var endMapIdx= -1;pos+=text.length;for(var i=map.length-1;i>=0;--i){if(pos>=map[i][0]){if(wtEnd== -1){wtEnd=map[i][1]+(pos-map[i][0]);endLevel=map[i][2];endMapIdx=i;pos-=text.length;++i;}else{wtStart=map[i][1]+(pos-map[i][0]);startLevel=map[i][2];if(startLevel!=endLevel){if(pos==map[i][0]){if(i-1>=0&&map[i-1][2]==endLevel&&wikitext.charAt(map[i][1]-1)=="'"){wtStart=map[i-1][1]+(pos-map[i-1][0]);startLevel=map[i-1][2];}else if(i==0&&endLevel==0){wtStart=0;startLevel=endLevel;}}if(startLevel!=endLevel){if(pos+text.length==map[endMapIdx][0]){if(endMapIdx>0&&map[endMapIdx-1][2]==startLevel){wtEnd-=startLevel;endLevel=startLevel;}}else if(pos+text.length==pureText.length&&startLevel==0){wtEnd=wikitext.length;endLevel=startLevel;}}}break;}}}if(startLevel!=endLevel){var msg=gLanguage.getMessage('WTP_SELECTION_OVER_FORMATS');msg=msg.replace(/\$1/g,'<b>'+text+'</b>');return msg;}this.wtsStart=wtStart+start;this.wtsEnd=wtEnd+start;return true;},parseAnnotations:function(){this.relations=new Array();this.categories=new Array();this.links=new Array();this.error=WTP_NO_ERROR;var state=0;var bracketCount=0;var nowikiCount=0;var askCount=0;var currentPos=0;var bracketStart= -1;var parsing=true;while(parsing){switch(state){case 0:var findings=this.findFirstOf(currentPos,["[[","<nowiki>","<ask","{{#ask:"]);if(findings[1]==null){parsing=false;break;}currentPos=findings[0]+1;if(findings[1]=="[["){bracketStart=findings[0];bracketCount++;state=1;}else if(findings[1]=="<nowiki>"){bracketStart= -1;nowikiCount++;state=2;}else if(findings[1]=="<ask"){bracketStart= -1;askCount++;state=3;}else if(findings[1]=="{{#ask:"){bracketStart= -1;state=4;}break;case 1:var findings=this.findFirstOf(currentPos,["[[","]]"]);if(findings[1]==null){parsing=false;break;}currentPos=findings[0]+2;if(findings[1]=="[["){bracketCount++;}else{bracketCount--;if(bracketCount==0){var anno=this.createAnnotation(this.text.substring(bracketStart,findings[0]+2),bracketStart,findings[0]+2);if(anno){if(anno instanceof WtpRelation){this.relations.push(anno);}else if(anno instanceof WtpCategory){this.categories.push(anno);}else if(anno instanceof WtpLink){this.links.push(anno);}}state=0;}}break;case 2:var findings=this.findFirstOf(currentPos,["</nowiki>","<nowiki>"]);if(findings[1]==null){parsing=false;break;}currentPos=findings[0]+7;if(findings[1]=="<nowiki>"){nowikiCount++;}else{nowikiCount--;if(nowikiCount==0){state=0;}}break;case 3:var findings=this.findFirstOf(currentPos,["</ask>","<ask"]);if(findings[1]==null){parsing=false;break;}currentPos=findings[0]+4;if(findings[1]=="<ask"){askCount++;}else{askCount--;if(askCount==0){state=0;}}break;case 4:currentPos=this.parseAskTemplate(currentPos);state=0;break;}}if(bracketCount!=0){this.error=WTP_UNMATCHED_BRACKETS;}},parseAskTemplate:function(currentPos){var parserTable=new Object();parserTable['ask']=["{{#ask:","{{{","{{","}}"];parserTable['tparam']=["}}}"];parserTable['tmplt']=["{{#ask:","{{{","}}"];var actionTable=new Object();actionTable['ask']=new Object();actionTable['ask']["{{#ask:"]=["push","ask"];actionTable['ask']["{{"]=["push","tmplt"];actionTable['ask']["{{{"]=["push","tparam"];actionTable['ask']["}}"]=["pop"];actionTable['tparam']=new Object();actionTable['tparam']["}}}"]=["pop"];actionTable['tmplt']=new Object();actionTable['tmplt']["{{#ask:"]=["push","ask"];actionTable['tmplt']["{{{"]=["push","tparam"];actionTable['tmplt']["}}"]=["pop"];var stack=new Array();stack.push('ask');while(stack.size()>0){var ct=stack[stack.size()-1];var findings=this.findFirstOf(currentPos,parserTable[ct]);if(findings[1]==null){return-1;}var action=actionTable[ct];if(!action){return-1;}action=action[findings[1]];if(!action){return-1;}if(action[0]==='push'){stack.push(action[1]);}else if(action[0]==='pop'){stack.pop();}currentPos=findings[0]+findings[1].length;}return currentPos;},createAnnotation:function(annotation,start,end){var relRE=/\[\[\s*(:?)([^:]*)(::|:=)([\s\S\n\r]*)\]\]/;var catRE=/\[\[\s*[C|c]ategory:([\s\S\n\r]*)\]\]/;var relation=annotation.match(relRE);if(relation){var relName=relation[2].match(/[\s\n\r]*(.*)[\s\n\r]*/);var valRep=this.getValueAndRepresentation(relation[4]);return new WtpRelation(annotation,start,end,this,relation[1],relName[1],valRep[0],valRep[1]);}var category=annotation.match(catRE);if(category){var catName=category[1].match(/[\s\n\r]*(.*)[\s\n\r]*/);var valRep=this.getValueAndRepresentation(catName[1]);return new WtpCategory(annotation,start,end,this,"",valRep[0],valRep[1]);}var linkName=annotation.match(/\[\[[\s\n\r]*((.|\n)*)[\s\n\r]*\]\]/);var valRep=this.getValueAndRepresentation(linkName[1]);return new WtpLink(annotation,start,end,this,null,valRep[0],valRep[1]);return null;},updateAnnotationPositions:function(start,offset){if(offset==0){return;}var i;for(i=0,len=this.relations.length;i<len;i++){this.relations[i].move(offset,start);}for(i=0,len=this.categories.length;i<len;i++){this.categories[i].move(offset,start);}for(i=0,len=this.links.length;i<len;i++){this.links[i].move(offset,start);}},addAnnotation:function(annotation,append){var result=false;if(append){if(this.editInterface){this.editInterface.setValue(this.editInterface.getValue()+annotation);}else{result=[this.text.length,this.text.length,annotation.length];this.text+=annotation}}else{result=this.replaceText(annotation);}this.initialize(this.text);return result;},removeAnnotation:function(annotation){var annoArray=null;if(annotation instanceof WtpRelation){annoArray=this.relations;}else if(annotation instanceof WtpCategory){annoArray=this.categories;}else if(annotation instanceof WtpLink){annoArray=this.links;}else{return;}for(var i=0,len=annoArray.length;i<len;i++){if(annoArray[i]==annotation){annoArray.splice(i,1);break;}}for(var i=0;i<this.annotationRemovedHooks.size();++i){this.annotationRemovedHooks[i](annotation);}},findFirstOf:function(startPos,searchStrings,findIn){var firstPos= -1;var firstMatch=null;for(var i=0,len=searchStrings.length;i<len;++i){var ss=searchStrings[i];var pos=findIn?findIn.indexOf(ss,startPos):this.text.indexOf(ss,startPos);if(pos!= -1&&(pos<firstPos||firstPos== -1)){firstPos=pos;firstMatch=ss;}}return[firstPos,firstMatch];},getValueAndRepresentation:function(valrep){var state=0;var bracketCount=0;var curlyCount=0;var currentPos=0;var parsing=true;while(parsing){switch(state){case 0:var findings=this.findFirstOf(currentPos,["[[","{{","|"],valrep);if(findings[1]==null){parsing=false;break;}currentPos=findings[0]+1;if(findings[1]=="[["){bracketCount++;state=1;}else if(findings[1]=="{{"){curlyCount++;state=2;}else{if(bracketCount==0){var val=valrep.substring(0,findings[0]);var rep=valrep.substring(findings[0]+1);return[val,rep];}}break;case 1:var findings=this.findFirstOf(currentPos,["[[","]]"],valrep);if(findings[1]==null){parsing=false;break;}currentPos=findings[0]+2;if(findings[1]=="[["){bracketCount++;}else{bracketCount--;if(bracketCount==0){state=0;}}break;case 2:var findings=this.findFirstOf(currentPos,["{{","}}"],valrep);if(findings[1]==null){parsing=false;break;}currentPos=findings[0]+2;if(findings[1]=="{{"){curlyCount++;}else{curlyCount--;if(curlyCount==0){state=0;}}break;}}return[valrep,null];},replaceText:function(text){if(this.editInterface){this.editInterface.setSelectedText(text);}else if(this.wtsStart>=0){this.text=this.text.substring(0,this.wtsStart)+text+this.text.substring(this.wtsEnd);var result=[this.wtsStart,this.wtsEnd,text.length];for(var i=0;i<this.textChangedHooks.size();++i){this.textChangedHooks[i](result);}this.wtsStart= -1;this.wtsEnd= -1;return result;}return false;},equalWikiName:function(name1,name2){if(name1.substring(1)==name2.substring(1)){if(name1.charAt(0).toLowerCase()==name2.charAt(0).toLowerCase()){return true;}}return false;}}; 

// SMW_Ontology.js
// under GPL-License; Copyright (c) 2007 Ontoprise GmbH
var OntologyModifier=Class.create();OntologyModifier.prototype={initialize:function(){this.redirect=false;this.editArticleHooks=new Array();},addEditArticleHook:function(hook){this.editArticleHooks.push(hook);},existsArticle:function(pageName,callback,title,optparam,domElementID){function ajaxResponseExistsArticle(request){var answer=request.responseText;var regex=/(true|false)/;var parts=answer.match(regex);if(parts==null){callback(pageName,false,title,optparam,domElementID);return;}callback(pageName,parts[1]=='true'?true:false,title,optparam,domElementID);};if(pageName.length<255){sajax_do_call('smwfExistsArticle',[pageName],ajaxResponseExistsArticle.bind(this));return true;}else{return false;}},createArticle:function(title,content,optionalText,creationComment,redirect){this.redirect=redirect;sajax_do_call('smwfCreateArticle',[title,content,optionalText,creationComment],this.ajaxResponseCreateArticle.bind(this));},editArticle:function(title,content,editComment,redirect){this.redirect=redirect;sajax_do_call('smwfEditArticle',[title,content,editComment],this.ajaxResponseEditArticle.bind(this));},touchArticle:function(title){function touchArticleCallback(request){};sajax_do_call('smwfTouchArticle',[title],touchArticleCallback.bind(this));},createAttribute:function(title,initialContent,domain,type){var schema="";if(domain!=null&&domain!=""){schema+="\n[[SMW_SSP_HAS_DOMAIN_HINT::"+gLanguage.getMessage('CATEGORY')+domain+"]]";}if(type!=null&&type!=""){schema+="\n[[SMW_SP_HAS_TYPE::"+gLanguage.getMessage('TYPE')+type+"]]";}this.createArticle(gLanguage.getMessage('PROPERTY')+title,initialContent,schema,"Create a property for category "+domain,true);},createRelation:function(title,initialContent,domain,ranges){var schema="";if(domain!=null&&domain!=""){domain=gLanguage.getMessage('CATEGORY')+domain;}else{domain='';}if(ranges!=null){if(ranges.length>=1){var rangeStr="\n[[SMW_SP_HAS_TYPE:=";for(var i=0,n=ranges.length;i<n;i++){if(ranges[i].indexOf(gLanguage.getMessage('TYPE'))==0){rangeStr+=ranges[i];}else{rangeStr+=gLanguage.getMessage('TYPE_PAGE');if(ranges[i]){schema+="\n[[SMW_SSP_HAS_DOMAIN_AND_RANGE_HINT::"+domain+";"+ranges[i]+"]]";}else{schema+="\n[[SMW_SSP_HAS_DOMAIN_AND_RANGE_HINT::"+domain+";]]";}}if(i<n-1){rangeStr+=';';}}schema+=rangeStr+"]]";}}this.createArticle(gLanguage.getMessage('PROPERTY')+title,initialContent,schema,gLanguage.getMessage('CREATE_PROP_FOR_CAT').replace(/\$cat/g,domain),true);},createCategory:function(title,initialContent){this.createArticle(gLanguage.getMessage('CATEGORY')+title,initialContent,"",gLanguage.getMessage('CREATE_CATEGORY'),true);},createSubProperty:function(title,initialContent,openNewArticle){if(openNewArticle==undefined){openNewArticle=true;}var schemaProp=this.getSchemaProperties();if(wgNamespaceNumber==102||wgNamespaceNumber==100){this.createArticle(gLanguage.getMessage('PROPERTY')+title,initialContent,schemaProp+"\n[[SMW_SP_SUBPROPERTY_OF::"+wgPageName+"]]",gLanguage.getMessage('CREATE_SUB_PROPERTY'),openNewArticle);}else{alert(gLanguage.getMessage('NOT_A_PROPERTY'))}},createSuperProperty:function(title,initialContent,openNewArticle,wtp){if(openNewArticle==undefined){openNewArticle=true;}var schemaProp=this.getSchemaProperties();if(!wtp){wtp=new WikiTextParser();}if(wgNamespaceNumber==102||wgNamespaceNumber==100){this.createArticle(gLanguage.getMessage('PROPERTY')+title,initialContent,schemaProp,gLanguage.getMessage('CREATE_SUPER_PROPERTY'),openNewArticle);wtp.addRelation("subproperty of",gLanguage.getMessage('PROPERTY')+title,"",true);}else{alert(gLanguage.getMessage('NOT_A_PROPERTY'));}},createSuperCategory:function(title,initialContent,openNewArticle,wtp){if(openNewArticle==undefined){openNewArticle=true;}if(!wtp){wtp=new WikiTextParser();}if(wgNamespaceNumber==14){this.createArticle(gLanguage.getMessage('CATEGORY')+title,initialContent,"",gLanguage.getMessage('CREATE_SUPER_CATEGORY'),openNewArticle);wtp.addCategory(title,"",true);}else{alert(gLanguage.getMessage('NOT_A_CATEGORY'))}},createSubCategory:function(title,initialContent){if(wgNamespaceNumber==14){this.createArticle(gLanguage.getMessage('CATEGORY')+title,initialContent,"[["+gLanguage.getMessage('CATEGORY')+wgTitle+"]]",gLanguage.getMessage('CREATE_SUB_CATEGORY'),true);}else{alert(gLanguage.getMessage('NOT_A_CATEGORY'))}},getSchemaProperties:function(){var wtp=new WikiTextParser();var props=new Array();props.push(wtp.getRelation("has type"));props.push(wtp.getRelation("Has domain hint"));props.push(wtp.getRelation("Has range hint"));props.push(wtp.getRelation("Has max cardinality"));props.push(wtp.getRelation("Has min cardinality"));var schemaAnnotations="";for(var typeIdx=0,nt=props.length;typeIdx<nt;++typeIdx){var type=props[typeIdx];if(type!=null){for(var annoIdx=0,na=type.length;annoIdx<na;++annoIdx){var anno=type[annoIdx];schemaAnnotations+=anno.getAnnotation()+"\n";}}}var transitive=wtp.getCategory("Transitive relations");var symmetric=wtp.getCategory("Symmetrical relations");if(transitive){schemaAnnotations+=transitive.getAnnotation()+"\n";}if(symmetric){schemaAnnotations+=symmetric.getAnnotation()+"\n";}return schemaAnnotations;},ajaxResponseCreateArticle:function(request){if(request.status!=200){alert(gLanguage.getMessage('ERROR_CREATING_ARTICLE'));return;}var answer=request.responseText;var regex=/(true|false),(true|false),(.*)/;var parts=answer.match(regex);if(parts==null){alert(gLanguage.getMessage('ERROR_CREATING_ARTICLE'));return;}var success=parts[1];var created=parts[2];var title=parts[3];if(success=="true"){if(this.redirect){window.open("index.php?title="+title,"_blank");}}},ajaxResponseEditArticle:function(request){if(request.status!=200){alert(gLanguage.getMessage('ERROR_EDITING_ARTICLE'));return;}var answer=request.responseText;var regex=/(true|false),(true|false),(.*)/;var parts=answer.match(regex);if(parts==null){alert(gLanguage.getMessage('ERROR_EDITING_ARTICLE'));return;}var success=parts[1];var created=parts[2];var title=parts[3];if(success=="true"){if(this.redirect){window.open("index.php?title="+title,"_blank");}}success=(success=='true');created=(created=='true');for(var i=0;i<this.editArticleHooks.length;++i){this.editArticleHooks[i](success,created,title);}}} 

// SMW_DataTypes.js
// under GPL-License; Copyright (c) 2007 Ontoprise GmbH
var DataTypes=Class.create();DataTypes.prototype={initialize:function(){this.builtinTypes=null;this.userTypes=null;this.callback=new Array();this.refresh();this.refreshPending=false;},getBuiltinTypes:function(){return this.builtinTypes;},getUserDefinedTypes:function(){return this.userTypes;},refresh:function(callback){if(callback){this.callback.push(callback);}if(!this.refreshPending){this.refreshPending=true;sajax_do_call('smwfGetUserDatatypes',[],this.ajaxResponseGetDatatypes.bind(this));if(!this.builtinTypes){sajax_do_call('smwfGetBuiltinDatatypes',[],this.ajaxResponseGetDatatypes.bind(this));}}},ajaxResponseGetDatatypes:function(request){if(request.status!=200){return;}var types=request.responseText.split(",");if(types[0].indexOf("User defined types")>=0){this.userTypes=new Array(types.length-1);for(var i=1,len=types.length;i<len;++i){this.userTypes[i-1]=types[i];}}else{this.builtinTypes=new Array(types.length-1);for(var i=1,len=types.length;i<len;++i){this.builtinTypes[i-1]=types[i];}}if(this.userTypes&&this.builtinTypes){for(var i=0;i<this.callback.length;++i){this.callback[i]();}this.callback.clear();this.refreshPending=false;}}};var gDataTypes=new DataTypes(); 

// SMW_GenericToolbarFunctions.js
// under GPL-License; Copyright (c) 2007 Ontoprise GmbH
var GenericToolBar=Class.create();GenericToolBar.prototype={initialize:function(){},createList:function(list,id){var len=list==null?0:list.length;var divlist="";switch(id){case "category":divlist='<div id="'+id+'-tools">';divlist+='<a id="cat-menu-annotate" href="javascript:catToolBar.newItem()" class="menulink">'+gLanguage.getMessage('ANNOTATE')+'</a>';if(wgAction!='annotate'){divlist+='<a href="javascript:catToolBar.newCategory()" class="menulink">'+gLanguage.getMessage('CREATE')+'</a>';}if(wgNamespaceNumber==14){divlist+='<a href="javascript:catToolBar.CreateSubSup()" class="menulink">'+gLanguage.getMessage('SUB_SUPER')+'</a>';}divlist+='</div>';break;case "relation":divlist='<div id="'+id+'-tools">';if(wgAction!='annotate'){divlist+='<a id="rel-menu-annotate" href="javascript:relToolBar.newItem()" class="menulink">'+gLanguage.getMessage('ANNOTATE')+'</a>';}divlist+='<a href="javascript:relToolBar.newRelation()" class="menulink">'+gLanguage.getMessage('CREATE')+'</a>';var attrregex=new RegExp("Attribute:.*");if(wgNamespaceNumber==100||wgNamespaceNumber==102||attrregex.exec(wgPageName)!=null){divlist+="<a href=\"javascript:relToolBar.CreateSubSup()\" class=\"menulink\">"+gLanguage.getMessage('SUB_SUPER')+"</a>";}divlist+='<a id="rel-menu-has-part" href="javascript:relToolBar.newPart()" class="menulink">'+gLanguage.getMessage('MHAS_PART')+'</a>';divlist+='</div>';break;}divlist+="<div id=\""+id+"-itemlist\"><table id=\""+id+"-table\">";var path=wgArticlePath;var dollarPos=path.indexOf('$1');if(dollarPos>0){path=path.substring(0,dollarPos);}var maxlen1=0;var maxlen2=0;if(id=="relation"){for(var i=0;i<len;i++){list[i].getName().length>maxlen2?maxlen2=list[i].getName().length:"";var propertyvalues=list[i].getSplitValues();for(var j=0,n=list[i].getArity()-1;j<n;j++){propertyvalues[j].length>maxlen1?maxlen1=propertyvalues[j].length:"";}}}var len1="";var len2="";if(id=="relation"&&maxlen2!=0){len2=20+100*(0.55*(maxlen1/(maxlen2+maxlen1)));len2='style="width:'+len2+'%;"';len1=20+100*(0.55-0.55*(maxlen1/(maxlen2+maxlen1)));len1='style="width:'+len1+'%;"';}for(var i=0;i<len;i++){var rowSpan="";var firstValue="";var multiValue="";var value="";var prefix="";switch(id){case "category":fn="catToolBar.getselectedItem("+i+")";firstValue=list[i].getValue?list[i].getValue().escapeHTML():"";prefix=gLanguage.getMessage('CATEGORY');break;case "relation":fn="relToolBar.getselectedItem("+i+")";prefix=gLanguage.getMessage('PROPERTY');var rowSpan='rowspan="'+(list[i].getArity()-1)+'"';var values=list[i].getSplitValues();firstValue=values[0].escapeHTML();var valueLink;valueLink='<span title="'+firstValue+'">'+firstValue+'<span>';firstValue=valueLink;for(var j=1,n=list[i].getArity()-1;j<n;j++){var v=values[j].escapeHTML();valueLink='<span title="'+v+'">'+v+'</span>';multiValue+="<tr>"+"<td class=\""+id+"-col2\">"+valueLink+" </td>"+"</tr>";}break}var shortName=list[i].getName().escapeHTML();var elemName;elemName='<a href="'+wgServer+path+prefix+list[i].getName().escapeHTML();elemName+='" target="blank" title="'+shortName+'">'+shortName+'</a>';divlist+="<tr>"+"<td "+rowSpan+" class=\""+id+"-col1\" "+len1+">"+elemName+" </td>"+"<td class=\""+id+"-col2\"  "+len2+">"+firstValue+" </td>"+"<td "+rowSpan+" class=\""+id+"-col3\">"+'<a href=\"javascript:'+fn+'">'+'<img src="'+wgScriptPath+'/extensions/SMWHalo/skins/edit.gif"/></a>'+'</tr>'+multiValue;}divlist+="</table></div>";return divlist;},cutdowntosize:function(word,size){return word;var result;var subparts=new Array();var from;var to;arguments.length==3?maxrows=arguments[2]:maxrows=0;var partscount=parseInt(word.length/size);if((word.length%size)!=0){partscount++;}for(var part=0;part<partscount;part++){from=((part)*size);to=(((part)*size)+(size));if(to>word.length){to=word.length;};if(maxrows!=0&&maxrows==part+1){if((to-from)<size-3){subparts[part]=word.substring(from,to)+"...";}else{subparts[part]=word.substring(from,from+size-3)+"...";}break;}else{subparts[part]=word.substring(from,to);}}result=subparts[0].replace(/\s/g,'&nbsp;');;for(var part=1;part<subparts.length;part++){result+="<br>"+subparts[part].replace(/\s/g,'&nbsp;');}return(result?result:"");},triggerEvent:function(element){if(element){element.focus();element.blur();element.focus();}}};var EventManager=Class.create();EventManager.prototype={initialize:function(){this.eventlist=new Array();},registerEvent:function(element,eventName,handler){var event=new Array(element,eventName,handler);this.eventlist.push(event);Event.observe(element,eventName,handler);},deregisterAllEvents:function(){this.eventlist.each(this.stopEvent);this.eventlist=new Array();},stopEvent:function(item){if(item==null){return;}var obj=$(item[0]);if(!obj){return;}Event.stopObserving(item[0],item[1],item[2])},deregisterEventsFromItem:function(itemID){for(var i=0;i<this.eventlist.length;i++){if(this.eventlist[i]!=null&&this.eventlist[i][0]==itemID){this.stopEvent(this.eventlist[i]);this.eventlist[i]=null;}}}};var EventActions=Class.create();EventActions.prototype={initialize:function(){},eventActions:function(){this.istyping=false;this.registered=false},setIsTyping:function(bool){this.istyping=bool;},getIsTyping:function(){return this.istyping;},isEmpty:function(element){if(element.getValue().strip()!=''&&element.getValue()!=null){return false;}else{return true;}},targetelement:function(event){return(event.srcElement?event.srcElement:(event.target?event.target:event.currentTarget));},timedcallback:function(fnc){if(!this.registered){this.registered=true;var cb=this.callback.bind(this,fnc);setTimeout(cb,500);}},callback:function(fnc){if(this.istyping){this.istyping=false;var cb=this.callback.bind(this,fnc);setTimeout(cb,500);}else{fnc();this.registered=false;this.istyping=false;}}};var STBEventActions=Class.create();STBEventActions.prototype=Object.extend(new EventActions(),{initialize:function(){this.om=new OntologyModifier();this.keyUpEvent=null;this.pendingIndicator=null;},onKeyUp:function(event){this.setIsTyping(true);var key=event.which||event.keyCode;if(key==Event.KEY_RETURN){var elem=$(event.target);if(elem.type=='a'){return true;}var tabIndex=elem.getAttribute("tabIndex");if(!tabIndex){return false;}tabIndex=tabIndex*1+1;var div=elem.up('div');var children=div.descendants();for(var i=0;i<children.length;++i){var child=children[i];var ti=child.getAttribute("tabIndex");if(ti&&ti*1==tabIndex){if(child.disabled==true|| !child.visible()){tabIndex++;}else{child.focus();break;}}}return false;}this.keyUpEvent=event;this.timedcallback(this.delayedKeyUp.bind(this));},onBlur:function(event){var target=$(event.target);var oldValue=target.getAttribute("smwOldValue");if(oldValue&&oldValue==target.value){return;}target.setAttribute("smwOldValue",target.value);if(this.checkIfEmpty(target)==false&&this.handleValidValue(target)){this.handleCheck(target);}this.doFinalCheck(target);},onClick:function(event){var target=$(event.target);if(target.type=='radio'){this.doFinalCheck(target);}},onChange:function(event){var target=$(event.target);if(this.checkIfEmpty(target)==false&&this.handleValidValue(target)){this.handleCheck(target);}this.handleChange(target);this.doFinalCheck(target);},initialCheck:function(target){var children=target.descendants();var elem;for(var i=0,len=children.length;i<len;++i){elem=children[i];var oldValue=elem.getAttribute("smwOldValue");if(!oldValue||oldValue!=elem.value){if(this.checkIfEmpty(elem)==false&&this.handleValidValue(elem)){this.handleCheck(elem);}elem.setAttribute("smwOldValue",elem.value);}}this.doFinalCheck(elem);},delayedKeyUp:function(){var target=$(this.keyUpEvent.target);var oldValue=target.getAttribute("smwOldValue");if(oldValue&&oldValue==target.value){return;}target.setAttribute("smwOldValue",target.value);if(this.checkIfEmpty(target)==false&&this.handleValidValue(target)){this.handleCheck(target);this.handleChange(target);}this.doFinalCheck(target);},checkIfEmpty:function(target){var value=target.value;if(target.type=='select-one'){value=target.options[target.selectedIndex].text;}var empty=value=="";var cie=target.getAttribute("smwCheckEmpty");if(!cie){return empty;}var actions=this.parseConditional("empty",cie);if(actions){this.performActions(empty?actions[0]:actions[1],target);}return empty;},handleValidValue:function(target){var check=target.getAttribute("smwValidValue");if(!check){return true;}var regexStr=check.match(/(.*?):\s*(valid\s*\?.*)/);if(regexStr){var regex=new RegExp(regexStr[1]);var actions=regexStr[2];return this.checkWithRegEx(target.value,regex,actions,target);}return true;},handleCheck:function(target){var check=target.getAttribute("smwCheckType");if(!check){return;}var type=check;var actions="";var pos=check.indexOf(":");if(pos!= -1){type=check.substring(0,pos);actions=check.substring(pos+1);}type=type.toLowerCase();if(type.indexOf("regex")==0){var regexStr=check.match(/regex\s*=\s*(.*?):\s*valid\s*\?/);if(regexStr){var regex=new RegExp(regexStr[1]);pos=check.search(/:\s*valid\s*\?/);actions=check.substring(pos+1);this.checkWithRegEx(target.value,regex,actions,target);}}else{switch(type){case 'integer':this.checkWithRegEx(target.value,/^\d+$/,actions,target);break;case 'float':this.checkWithRegEx(target.value,/^[+-]?\d+(\.\d+)?([Ee][+-]?\d+)?$/,actions,target);break;case 'category':case 'property':this.handleSchemaCheck(type,check,target);break;}}},handleChange:function(target){var changeActions=target.getAttribute("smwChanged");if(!changeActions){return;}changeActions=changeActions.match(/\s*\((.*?)\)\s*$/);if(changeActions){this.performActions(changeActions[1],target);}},doFinalCheck:function(target){if(!target){return;}var parentDiv=target.up('div');if(!parentDiv){return;}var allValidCndtl=parentDiv.getAttribute("smwAllValid");if(allValidCndtl){var children=parentDiv.descendants();var allValid=true;for(var i=0,len=children.length;i<len;++i){var elem=children[i];var valid=elem.getAttribute("smwValid");if(valid){if(valid=="false"){allValid=false;}else if(valid!="true"){var qPos=valid.indexOf('?');var func=valid;var cond=null;if(qPos> -1){func=valid.substring(0,qPos);cond=this.parseConditional(func,valid);}valid=eval(func+'("'+elem.id+'")');if(cond){this.performActions(valid?cond[0]:cond[1],elem);}if(!valid){allValid=false;}}}}var c=this.parseConditional("allValid",allValidCndtl);this.performActions(allValid?c[0]:c[1],parentDiv);}},checkWithRegEx:function(value,regex,conditional,target){var valid=value.match(regex);var c=this.parseConditional("valid",conditional);this.performActions(valid?c[0]:c[1],target);return valid;},handleSchemaCheck:function(type,check,target){var value=target.value;var checkName;switch(type){case 'category':checkName=gLanguage.getMessage('CATEGORY')+value;break;case 'property':checkName=gLanguage.getMessage('PROPERTY')+value;break;}this.showPendingIndicator(target);if(!this.om.existsArticle(checkName,this.ajaxCbSchemaCheck.bind(this),value,[type,check],target.id)){this.ajaxCbSchemaCheck(checkName,false,value,[type,check],target);}},ajaxCbSchemaCheck:function(pageName,exists,title,param,elementID){this.hidePendingIndicator();var check=param[1];var pos=check.indexOf(":");if(pos!= -1){var conditional=check.substring(pos+1);var actions=this.parseConditional("exists",conditional);if(actions){this.performActions(exists?actions[0]:actions[1],$(elementID))}}this.doFinalCheck($(elementID));},parseConditional:function(name,conditional){var regex=new RegExp("\\s*"+name+"\\s*\\?\\s*\\(([^)]*)\\)\\s*:\\s*\\(([^)]*)\\)");var parts=conditional.match(regex);if(parts){return[parts[1],parts[2]];}return null;},performActions:function(actions,element){var allActions=actions.split(",");for(var i=0,len=allActions.length;i<len;i++){var actionAndParam=allActions[i].split(":");var act="";var param="";if(actionAndParam.length>0){act=actionAndParam[0].match(/^\s*(.*?)\s*$/);if(act){act=act[1];}}if(actionAndParam.length>1){param=actionAndParam[1].match(/^\s*(.*?)\s*$/);if(param){param=param[1];}}this.performSingleAction(act.toLowerCase(),param,element);}},performSingleAction:function(action,parameter,element){switch(action){case 'color':if(element){element.setStyle({background:parameter});}break;case 'show':var tbc=smw_ctbHandler.findContainer(parameter);if(tbc){tbc.show(parameter,true);}break;case 'hide':var tbc=smw_ctbHandler.findContainer(parameter);if(tbc){tbc.show(parameter,false);}break;case 'call':eval(parameter+'("'+element.id+'")');break;case 'showmessage':if(element){var msgElem=$(element.id+'-msg');if(msgElem){var msg=gLanguage.getMessage(parameter);var value=element.value;msg=msg.replace(/\$c/g,value);var tbc=smw_ctbHandler.findContainer(msgElem);tbc.replace(msgElem.id,tbc.createText(msgElem.id,msg,'',true));tbc.show(msgElem.id,true);}}break;case 'hidemessage':if(element){var msgElem=$(element.id+'-msg');if(msgElem){var tbc=smw_ctbHandler.findContainer(msgElem.id);tbc.show(msgElem.id,false);}}break;case 'valid':if(element){element.setAttribute("smwValid",parameter);}break;case 'attribute':var attrValue=parameter.split("=");if(attrValue&&attrValue.length==2&&element){element.setAttribute(attrValue[0],attrValue[1]);}break;}},showPendingIndicator:function(onElement){this.hidePendingIndicator();this.pendingIndicator=new OBPendingIndicator($(onElement));this.pendingIndicator.show();},hidePendingIndicator:function(){if(this.pendingIndicator!=null){this.pendingIndicator.hide();this.pendingIndicator=null;}}});var gSTBEventActions=new STBEventActions(); 

// SMW_Container.js
// under GPL-License; Copyright (c) 2007 Ontoprise GmbH
var ContainerToolBar=Class.create();ContainerToolBar.prototype={initialize:function(id,tabindex,frameworkcontainer){this.id=id;this.startindex=tabindex;this.lastindex=tabindex;this.cointainerlist=new Array();this.frameworkcontainer=frameworkcontainer;this.sandglass=new OBPendingIndicator();this.eventManager=new EventManager();if(smw_ctbHandler){smw_ctbHandler.addContainer(this.id,this);}},showSandglass:function(element){this.sandglass.hide();this.sandglass.show(element);},hideSandglass:function(){this.sandglass.hide();},createContainerBody:function(attributes,containertype,headline){var header='<div id="'+this.id+'-box" '+attributes+'>';var footer='</div>';this.frameworkcontainer.setContent(header+footer,containertype,headline);this.frameworkcontainer.contentChanged();},createInput:function(id,description,initialContent,deleteCallback,attributes,visibility,autoCompletion){var ac="wickEnabled";if(typeof autoCompletion=="boolean"){if(autoCompletion==false){ac="";}}var containercontent='<table class="stb-table stb-input-table '+this.id+'-table '+this.id+'-input-table"'+(visibility?'':'style="display:none;"')+'id="'+this.id+'-table-'+id+'">'+'<tr>'+'<td class="stb-input-col1 '+this.id+'-input-col1">'+description+'</td>'+'<td class="stb-input-col2 '+this.id+'-input-col2">';if(initialContent){initialContent=initialContent.escapeHTML();initialContent=initialContent.replace(/"/g,"&quot;");}if(deleteCallback){containercontent+='<input class="'+ac+' stb-delinput '+this.id+'-delinput" '+'id="'+id+'" '+attributes+' type="text" '+' alignfloater="right" '+'value="'+initialContent+'" '+'tabindex="'+this.lastindex++ +'" />'+'</td>'+'<td class="stb-input-col3 '+this.id+'-input-col3">'+'<a href="javascript:'+deleteCallback+'">'+'<img src="'+wgScriptPath+'/extensions/SMWHalo/skins/redcross.gif"/>';}else{containercontent+='<input class="'+ac+' stb-input '+this.id+'-input" '+'id="'+id+'" '+attributes+' type="text" '+' alignfloater="right" '+'value="'+initialContent+'" '+'tabindex="'+this.lastindex++ +'" />';}containercontent+='</td>'+'</tr>'+'</table>';return containercontent;},createDropDown:function(id,description,options,deleteCallback,selecteditem,attributes,visibility){var containercontent='<table class="stb-table stb-select-table '+this.id+'-table '+this.id+'-select-table"'+(visibility?'':'style="display:none;"')+'id="'+this.id+'-table-'+id+'">'+'<tr>'+'<td class="stb-select-col1 '+this.id+'-select-col1">'+description+'</td>'+'<td class="stb-select-col2 '+this.id+'-select-col2">';if(deleteCallback){containercontent+='<select class="stb-delselect '+this.id+'-delselect" id="'+id+'"  '+attributes+' tabindex="'+this.lastindex++ +'">';}else{containercontent+='<select class="stb-select '+this.id+'-select" id="'+id+'"  '+attributes+' tabindex="'+this.lastindex++ +'">';}for(var i=0;i<options.length;i++){if(i!=selecteditem){containercontent+='<option>'+options[i]+'</option>'}else{containercontent+='<option selected="selected">'+options[i]+'</option>'}}containercontent+='</select>';if(deleteCallback){containercontent+='</td>';containercontent+='<td class="stb-select-col3 '+this.id+'-select-col3">';;containercontent+='<a href="javascript:'+deleteCallback+'"><img src="'+wgScriptPath+'/extensions/SMWHalo/skins/redcross.gif"/>';}containercontent+='</td>'+'</tr>'+'</table>';return containercontent;},createRadio:function(id,description,options,selecteditem,attributes,visibility){var containercontent='<table class="stb-table stb-radio-table '+this.id+'-table '+this.id+'-radio-table"'+(visibility?'':'style="display:none;"')+'id="'+this.id+'-table-'+id+'">'+'<tr>'+'<td class="stb-radio-col1 '+this.id+'-input-radio1">'+description+'</td>'+'</tr><tr>'+'<td class="stb-radio-col2 '+this.id+'-radio-col2">'+'<form class="stb-radio '+this.id+'-radio" id="'+id+'"  '+attributes+' tabindex="'+this.lastindex++ +'">';for(var i=0;i<options.length;i++){if(i!=selecteditem){containercontent+='<input type="radio" name="'+id+'" value="'+options[i]+'">'+options[i]+'<br>'}else{containercontent+='<input type="radio" name="'+id+'" value="'+options[i]+'" checked="checked">'+options[i]+'</br>'}}containercontent+='</form>'+'</td>'+'</tr>'+'</table>';return containercontent;},createCheckBox:function(id,description,options,selecteditems,attributes,visibility){var containercontent='<table class="stb-table stb-checkbox-table '+this.id+'-table '+this.id+'-checkbox-table"'+(visibility?'':'style="display:none;"')+'id="'+this.id+'-table-'+id+'">'+'<tr>'+'<td class="stb-checkbox-col1 '+this.id+'-checkbox-col1">'+description+'</td>'+'</tr><tr>'+'<td class="stb-checkbox-col2 '+this.id+'-checkbox-col2">'+'<form class="stb-checkbox '+this.id+'-checkbox" id="'+id+'"  '+attributes+'>';for(var i=0;i<options.length;i++){if(!this.isInArray(i,selecteditems)){containercontent+='<input type="checkbox" '+'name="'+id+'"'+' tabindex="'+this.lastindex++ +'"'+' value="'+options[i]+'">'+options[i]+'<br>'}else{containercontent+='<input type="checkbox" '+'name="'+id+'"'+' tabindex="'+this.lastindex++ +'" '+' value="'+options[i]+'" checked="checked">'+options[i]+'<br>'}}containercontent+='</form>'+'</td>'+'</tr>'+'</table>';return containercontent;},isInArray:function(item,array){for(var j=0;j<array.length;j++){if(item==array[j])return true;}return false;},createText:function(id,description,attributes,visibility){var imgtag='';var imgregex=/(\([iwe]\))(.*)/;var regexresult;if(regexresult=imgregex.exec(description)){switch(regexresult[1]){case(image='(i)'):imgtag='<img src="'+wgScriptPath+'/extensions/SMWHalo/skins/info.gif"/>';break;case(image='(w)'):imgtag='<img src="'+wgScriptPath+'/extensions/SMWHalo/skins/warning.png"/>';break;case(image='(e)'):imgtag='<img src="'+wgScriptPath+'/extensions/SMWHalo/skins/delete_icon.png"/>';break;default:imgtag='';}description=regexresult[2];}var containercontent='<table class="stb-table stb-text-table '+this.id+'-table '+this.id+'-text-table"'+(visibility?'':'style="display:none;"')+'id="'+this.id+'-table-'+id+'">'+'<tr>'+'<td class="stb-text-col1 '+this.id+'-text-col1">'+imgtag+'&#32<span class="stb-text '+this.id+'-radio" id="'+id+'" id="'+id+'" '+attributes+'>'+description+'</span>'+'</td>'+'</tr>'+'</table>';return containercontent;},createButton:function(id,btLabel,callback,attributes,visibility){var containercontent='<table class="stb-table stb-button-table '+this.id+'-table '+this.id+'-button-table"'+(visibility?'':'style="display:none;"')+'id="'+this.id+'-table-'+id+'">'+'<tr>'+'<td class="stb-button-col '+this.id+'-button-col">'+'<input type="button" id="'+id+'" name="'+id+'" value="'+btLabel+'" '+attributes+'onclick="'+callback+'">'+'</td>'+'</tr>'+'</table>';return containercontent;},createLink:function(id,functions,attributes,visibility){var containercontent='<table class="stb-table stb-link-table '+this.id+'-table '+this.id+'-link-table"'+(visibility?'':'style="display:none;"')+'id="'+this.id+'-table-'+id+'">';switch(functions.length){case 1:var tablelayout=1;break;case 2:var tablelayout=2;break;case 4:var tablelayout=2;break;default:var tablelayout=3;}var i=0;for(var row=0;row*tablelayout<functions.length;row++){containercontent+='<tr class=" ln-tr-'+tablelayout+' '+this.id+'-ln-tr-'+tablelayout+' '+id+'-ln-tr-'+tablelayout+'">';for(var column=0;column<tablelayout;column++){containercontent+='<td class=" ln-td-'+tablelayout+'-'+column+' '+this.id+'-ln-td-'+tablelayout+'-'+column+' '+id+'-ln-td-'+tablelayout+'-'+column+'">';if(i<functions.length){switch(functions[i].length){case 2:containercontent+='<a tabindex="'+this.lastindex++ +'" + href="javascript:'+functions[i][0]+'">'+functions[i][1]+'&#32</a>';break;case 3:containercontent+='<a tabindex="'+this.lastindex++ +'" + id="'+functions[i][2]+'" href="javascript:'+functions[i][0]+'">'+functions[i][1]+'&#32</a>';break;case 5:containercontent+='<a tabindex="'+this.lastindex++ +'" + id="'+functions[i][2]+'" href="javascript:'+functions[i][0]+'">'+functions[i][1]+'&#32</a>';containercontent+='<span id="'+functions[i][4]+'" style="display: none;">'+functions[i][3]+'</span>';break;default:}i++;}containercontent+='</td>';}containercontent+='</tr>';}containercontent+='</table>';return containercontent;},changeID:function(obj,newID){var oldID=obj.id;var table=$(this.id+'-table-'+oldID);if(table){table.id=this.id+'-table-'+newID;}obj.id=newID;},remove:function(element){if(element instanceof Array){for(var i=0;i<element.length;i++){$(this.id+'-table-'+element[i]).remove();this.eventManager.deregisterEventsFromItem(element[i]);}}else{$(this.id+'-table-'+element).remove();this.eventManager.deregisterEventsFromItem(element);}this.rebuildTabindex($(this.id+'-box'));autoCompleter.deregisterAllInputs();autoCompleter.registerAllInputs();},rebuildTabindex:function(rootnode){if(rootnode==null)return;this.lastindex=this.startindex;var elements=rootnode.descendants();elements.each(this.updateTabindex.bind(this));},updateTabindex:function(element){if(element.readAttribute('tabindex')!=null&&element.readAttribute('tabindex')!=0){element.writeAttribute('tabindex',this.lastindex++);}},append:function(content){if(content instanceof Array){for(var i=0;i<content.length;i++){new Insertion.Bottom($(this.id+'-box'),content[i]);}}else{new Insertion.Bottom($(this.id+'-box'),content);}},insert:function(id,content){if(content instanceof Array){for(var i=0;i<content.length;i++){new Insertion.After($(this.id+'-table-'+id),content[i]);}}else{new Insertion.After($(this.id+'-table-'+id),content);}},replace:function(id,content){$(this.id+'-table-'+id).replace(content);},show:function(id,visibility){var obj=$(this.id+'-table-'+id);if(!obj){obj=$(id);}if(obj){if(visibility){obj.show();}else{obj.hide();}}},finishCreation:function(){this.eventManager.deregisterAllEvents();var desc=$(this.id+'-box').descendants();for(var i=0,len=desc.length;i<len;i++){var elem=desc[i];if(elem.type=='text'){this.eventManager.registerEvent(elem,'blur',gSTBEventActions.onBlur.bindAsEventListener(gSTBEventActions));this.eventManager.registerEvent(elem,'keyup',gSTBEventActions.onKeyUp.bindAsEventListener(gSTBEventActions));}else if(elem.type=='radio'){this.eventManager.registerEvent(elem,'click',gSTBEventActions.onClick.bindAsEventListener(gSTBEventActions));this.eventManager.registerEvent(elem,'keyup',gSTBEventActions.onKeyUp.bindAsEventListener(gSTBEventActions));}else if(elem.type=='select-one'){this.eventManager.registerEvent(elem,'change',gSTBEventActions.onChange.bindAsEventListener(gSTBEventActions));this.eventManager.registerEvent(elem,'keyup',gSTBEventActions.onKeyUp.bindAsEventListener(gSTBEventActions));}else if(elem.type=='checkbox'){this.eventManager.registerEvent(elem,'keyup',gSTBEventActions.onKeyUp.bindAsEventListener(gSTBEventActions));}}autoCompleter.deregisterAllInputs();autoCompleter.registerAllInputs();this.frameworkcontainer.contentChanged();this.rebuildTabindex($(this.id+'-box'));},release:function(){this.eventManager.deregisterAllEvents();autoCompleter.deregisterAllInputs();autoCompleter.registerAllInputs();},foo:function(){this.createContainerBody('',RELATIONCONTAINER,"Ueberschrift");this.showSandglass($(this.id+'-box'));this.append(this.createInput(700,'Test','','alert(\'loeschmich\')','',true));this.append(this.createText(701,'Test','',true));this.append(this.createDropDown(702,'Test',['Opt1','Opt2','Opt3'],'alert(\'loeschmich\')',2,'',true));this.insert('702',this.createRadio(703,'Test',['val1','val2','val3'],2,'',true));this.append(this.createCheckBox(704,'Test',['val1','val2','val3','val4'],[1,3],'',true));this.append(this.createLink(705,[['smwhgLogger.log(\'Testlog\',\'error\',\'log\');','Log']],'',true));this.append(this.createLink(706,[['alert(\'f1\')','function1'],['alert(\'f2\')','function2','fid2']],'',true));this.append(this.createLink(707,[['alert(\'f1\')','function1'],['alert(\'f2\')','function2','fid2'],['alert(\'f3\')','function3','fid3','alt-f3','faltid3']],'',true));this.append(this.createLink(708,[['alert(\'f1\')','function1'],['alert(\'f2\')','function2','fid2'],['alert(\'f3\')','function3','fid3','alt-f3','faltid3'],['alert(\'f4\')','function4']],'',true));this.append(this.createLink(709,[['alert(\'f1\')','function1'],['alert(\'f2\')','function2','fid2'],['alert(\'f3\')','function3','fid3','alt-f3','faltid3'],['alert(\'f4\')','function5'],['alert(\'f5\')','function5']],'',true));this.rebuildTabindex($(this.id+'-box'));this.hideSandglass();this.showSandglass($(this.id+'-box'));ctbHandler=new CTBHandler();ctbHandler.addContainer('category',this);var obj=smw_ctbHandler.findContainer('703');obj.replace('701',obj.createText(701,'(e) Testreplace','',true));this.hideSandglass();}};var CTBHandler=Class.create();CTBHandler.prototype={initialize:function(){this.containerlist=new Array();},addContainer:function(containerid,containerobj){var pos=this.posInArray(containerid);if(pos<0){this.containerlist.push([containerid,containerobj])}else{this.containerlist[pos]=[containerid,containerobj];}},posInArray:function(containerid){for(var j=0;j<this.containerlist.length;j++){if(containerid==this.containerlist[j][0])return j;}return-1;},findContainer:function(elementid){var elem=$(elementid);if(!elem){return false;}var ancestorlist=elem.ancestors();for(var j=0;j<ancestorlist.length;j++){var elementid=ancestorlist[j].readAttribute('id');var regexsearch=/(.*)-box/g;var regexresult;if(regexresult=regexsearch.exec(elementid)){var pos=this.posInArray(regexresult[1]);if(pos>=0)return this.containerlist[pos][1];}}return false;}};var smw_ctbHandler=new CTBHandler();

// SMW_Marker.js
// under GPL-License; Copyright (c) 2007 Ontoprise GmbH
var Marker=Class.create();Marker.prototype={initialize:function(rootnode){this.rootnode=rootnode;this.markerindex=0;this.transparencymarkerlist=new Array();this.iconmarkerlist=new Array();},insertMarkers:function(){$(this.rootnode).hide();for(var index=0;index<this.transparencymarkerlist.length;index++){if($(this.transparencymarkerlist[index][2])){if($(this.iconmarkerlist[index][2]).tagName.toLowerCase()=='div'){if($(this.iconmarkerlist[index][2]).style.position==""){$(this.iconmarkerlist[index][2]).style.position="relative";}new Insertion.Bottom($(this.transparencymarkerlist[index][2]),this.transparencymarkerlist[index][1]);$(this.transparencymarkerlist[index][0]).setStyle({top:"0px"});$(this.transparencymarkerlist[index][0]).setStyle({left:"0px"});}else{new Insertion.After(this.transparencymarkerlist[index][2],this.transparencymarkerlist[index][1]);$(this.transparencymarkerlist[index][0]).setStyle({top:this.transparencymarkerlist[index][3]+"px"});$(this.transparencymarkerlist[index][0]).setStyle({left:this.transparencymarkerlist[index][4]+"px"});}var borderwidth=Number(this.getBorderWidth($(this.transparencymarkerlist[index][0]),"left"))+Number(this.getBorderWidth($(this.transparencymarkerlist[index][0]),"right"));if(isNaN(Number(borderwidth)))return;var borderheight=Number(this.getBorderWidth($(this.transparencymarkerlist[index][0]),"top"))+Number(this.getBorderWidth($(this.transparencymarkerlist[index][0]),"bottom"));if(isNaN(Number(borderheight)))return;var mheight=this.transparencymarkerlist[index][5]-borderheight;var mwidth=this.transparencymarkerlist[index][6]-borderwidth;if(mheight>0&&mwidth>0){$(this.transparencymarkerlist[index][0]).setStyle({height:mheight+"px"});$(this.transparencymarkerlist[index][0]).setStyle({width:mwidth+"px"});}}}for(var index=0;index<this.iconmarkerlist.length;index++){if($(this.iconmarkerlist[index][2]).tagName.toLowerCase()=='div'){if($(this.iconmarkerlist[index][2]).style.position==""){$(this.iconmarkerlist[index][2]).style.position="relative";}new Insertion.Bottom(this.iconmarkerlist[index][2],this.iconmarkerlist[index][1]);$(this.iconmarkerlist[index][0]).setStyle({top:"0px"});$(this.iconmarkerlist[index][0]).setStyle({left:"0px"});}else{new Insertion.After($(this.iconmarkerlist[index][2]),this.iconmarkerlist[index][1]);$(this.iconmarkerlist[index][0]).setStyle({top:this.iconmarkerlist[index][3]+"px"});$(this.iconmarkerlist[index][0]).setStyle({left:this.iconmarkerlist[index][4]+"px"});}}$(this.rootnode).show();},transparencyMarker:function(divtomark){if(divtomark==null)return;var marker='<div id="'+this.markerindex+'-marker" class="div-marker"></div>';var width=divtomark.offsetWidth;var height=divtomark.offsetHeight;var top=divtomark.offsetTop;var left=divtomark.offsetLeft;this.transparencymarkerlist.push(new Array(this.markerindex+"-marker",marker,$(divtomark).identify(),top,left,height,width));this.markerindex++;},iconMarker:function(divtomark,links){if(divtomark==null)return;var marker='<div id="'+this.markerindex+'-marker" class="icon-marker">';if(links instanceof Array){links.each(function(link){marker+='<a href="'+wgServer+wgScript+"/"+link+'"><img src="'+wgScriptPath+'/extensions/SMWHalo/skins/templatemarker.png"/></a>';});}else if(links instanceof String||typeof(links)=="string"){marker+='<a href="'+wgServer+wgScript+"/"+links+'"><img src="'+wgScriptPath+'/extensions/SMWHalo/skins/templatemarker.png"/></a>';}else{marker+='<img src="'+wgScriptPath+'/extensions/SMWHalo/skins/templatemarker.png"/>';}marker+='</div>';var top=divtomark.offsetTop;var left=divtomark.offsetLeft;this.iconmarkerlist.push(new Array(this.markerindex+"-marker",marker,$(divtomark).identify(),top,left));this.markerindex++;},textMarker:function(node,links){var span=document.createElement('span');var idattr=document.createAttribute("id");idattr.nodeValue=this.markerindex+"-textmarker";span.setAttributeNode(idattr);var classattr=document.createAttribute("class");classattr.nodeValue="aam_template_highlight text-marker";span.setAttributeNode(classattr);if(node.nodeValue.blank()==true)return;var textdata=document.createTextNode(node.nodeValue);span.appendChild(textdata);node.parentNode.replaceChild(span,node);this.iconMarker($(this.markerindex+"-textmarker"),links);},getBorderWidth:function(el,borderposition){var borderwidth=$(el).getStyle("border-"+borderposition+"-width");var borderregex=/(\d*)(px)/;var regexresult;if(regexresult=borderregex.exec(borderwidth)){return regexresult[1];}else{return "";}},removeMarkers:function(){$$('.icon-marker').each(function(node){node.remove();});$$('.div-marker').each(function(node){node.remove();});$$('.text-marker').each(function(node){node.replace(node.innerHTML);});this.transparencymarkerlist=new Array();this.iconmarkerlist=new Array();return;},markNodes:function(){this.removeMarkers();this.mark($(this.rootnode),true);this.insertMarkers();},mark:function(rootnode,mark){var templates=Array();templates.push(0);var currentTmpl=null;var element=rootnode.firstChild;while(element!=null){var node=element;element=element.nextSibling;if(node.nodeType==3&&currentTmpl!=null){if(mark==true)this.textMarker(node,wgServer+wgScript+"/"+currentTmpl);}else if(node.nodeType==1){var tag=node.tagName.toLowerCase();if(tag=='a'){if($(node).readAttribute('type')=='template'){currentTmpl=node.readAttribute('tmplname');templates.push(currentTmpl);continue;}if($(node).readAttribute('type')=='templateend'){currentTmpl=null;templates[0]= -1;continue;}}var result;if(currentTmpl!=null){result=this.mark(node,false);var links=currentTmpl;if(result[0]!=0&&result[0]!= -1)links=Array(currentTmpl).push(result[0]);if(result.length>1){result.shift();links=Array(links).concat(result);}if(mark==true&&$(node).visible()){this.transparencyMarker(node);this.iconMarker(node,links);}}else{(mark==true)?result=this.mark(node,true):result=this.mark(node,false);}switch(result[0]){case-1:currentTmpl=null;break;case 0:break;default:templates.push(result[0]);currentTmpl=result[0];}if(result.length>1){result.shift();templates=templates.concat(result);};}}if(currentTmpl!=null){templates[0]=currentTmpl;}return templates;},samplePage:function(){$("innercontent").replace('<div id="innercontent">'+'<a id="1" type="template" tmplname="Template:1"></a>normal text<br><a id="1_end" type="templateend"></a>'+'normal text<br>'+'<a id="2" type="template" tmplname="Template:2"></a>Text vor der Tabelle'+'<table><tr><td>Eins</td><td>Zwei</td></tr><a id="2_end" type="templateend"/></a>'+'<a id="3" type="template" tmplname="Template:3"></a><tr><td>Drei</td><td>Vier</td></tr></table>'+'<br>Hier kommt noch eine schoene Tabellen unterschrift<a id="3_end" type="templateend"/></a>'+'<br>normal text<br>'+'normal text<br>'+'normal text<br>'+'<a id="4" type="template" tmplname="Template:4"></a>normal text<br><a id="4_end" type="templateend"></a>'+'</div>');this.markNodes();}};var smwhg_marker=new Marker('bodyContent');Event.observe(window,'resize',smwhg_marker.markNodes.bind(smwhg_marker));Event.observe(window,'load',smwhg_marker.markNodes.bind(smwhg_marker));

// SMW_Category.js
// under GPL-License; Copyright (c) 2007 Ontoprise GmbH
var SMW_CAT_VALID_CATEGORY_NAME='smwValidValue="^[^<>\|!&$%&\/=\?]{1,255}$: valid '+'? (color: white, hideMessage, valid:true) '+': (color: red, showMessage:CATEGORY_NAME_TOO_LONG, valid:false)" ';var SMW_CAT_CHECK_CATEGORY='smwCheckType="category: exists '+'? (color: lightgreen, hideMessage, valid:true, attribute:catExists=true) '+': (color: orange, showMessage:CATEGORY_DOES_NOT_EXIST, valid:true, attribute:catExists=false)" ';var SMW_CAT_CHECK_CATEGORY_CREATE='smwCheckType="category: exists '+'? (color: lightgreen, hideMessage, valid:true, attribute:catExists=true, hide:cat-addandcreate, show:cat-confirm) '+': (color: orange, showMessage:CATEGORY_DOES_NOT_EXIST, valid:true, attribute:catExists=false, show:cat-confirm, show:cat-addandcreate)" ';var SMW_CAT_CHECK_CATEGORY_IIE='smwCheckType="category:exists '+'? (color: red, showMessage:CATEGORY_ALREADY_EXISTS, valid:false) '+': (color: lightgreen, hideMessage, valid:true)" ';var SMW_CAT_CHECK_EMPTY='smwCheckEmpty="empty'+'? (color:red, showMessage:MUST_NOT_BE_EMPTY, valid:false) '+': (color:white, hideMessage)"';var SMW_CAT_CHECK_EMPTY_CM='smwCheckEmpty="empty'+'? (color:red, showMessage:MUST_NOT_BE_EMPTY, valid:false, hide:cat-confirm, hide:cat-addandcreate) '+': (color:white, hideMessage)"';var SMW_CAT_ALL_VALID='smwAllValid="allValid '+'? (show:cat-confirm, hide:cat-invalid) '+': (show:cat-invalid, hide:cat-confirm, hide:cat-addandcreate)"';var SMW_CAT_ALL_VALID_ANNOTATED='smwAllValid="allValid '+'? (show:cat-confirm, call:catToolBar.finalCategoryCheck) '+': (hide:cat-confirm, hide:cat-addandcreate, call:catToolBar.finalCategoryCheck)"';var SMW_CAT_HINT_CATEGORY='typeHint = "'+SMW_CATEGORY_NS+'" position="fixed"';var SMW_CAT_SUB_SUPER_CHECK_CATEGORY='smwCheckType="category: exists '+'? (color: lightgreen, hideMessage, valid:true, attribute:catExists=true) '+': (color: orange, hideMessage, valid:true, attribute:catExists=false)" ';var SMW_CAT_SUB_SUPER_ALL_VALID='smwAllValid="allValid '+'? (call:catToolBar.createSubSuperLinks) '+': (call:catToolBar.createSubSuperLinks)"';var CategoryToolBar=Class.create();CategoryToolBar.prototype={initialize:function(){this.genTB=new GenericToolBar();this.toolbarContainer=null;this.showList=true;this.currentAction="";},showToolbar:function(){this.categorycontainer.setHeadline(gLanguage.getMessage('CATEGORIES'));if(wgAction=='edit'){this.wtp=new WikiTextParser();}this.om=new OntologyModifier();this.fillList(true);},callme:function(event){if((wgAction=="edit"||wgAction=="annotate")&&stb_control.isToolbarAvailable()){this.categorycontainer=stb_control.createDivContainer(CATEGORYCONTAINER,0);this.showToolbar();}},fillList:function(forceShowList){if(forceShowList==true){this.showList=true;}if(!this.showList){return;}if(this.wtp){this.wtp.initialize();this.categorycontainer.setContent(this.genTB.createList(this.wtp.getCategories(),"category"));this.categorycontainer.contentChanged();}},setWikiTextParser:function(wtp){this.wtp=wtp;},cancel:function(){smwhgLogger.log("","STB-Categories",this.currentAction+"_canceled");this.currentAction="";this.toolbarContainer.hideSandglass();this.toolbarContainer.release();this.toolbarContainer=null;this.fillList(true);},enableAnnotation:function(enable){if($('cat-menu-annotate')){if(enable){$('cat-menu-annotate').show();}else{$('cat-menu-annotate').hide();}}},createToolbar:function(attributes){if(this.toolbarContainer){this.toolbarContainer.release();}this.toolbarContainer=new ContainerToolBar('category-content',600,this.categorycontainer);var tb=this.toolbarContainer;tb.createContainerBody(attributes);return tb;},createContextMenu:function(contextMenuContainer){if(this.toolbarContainer){this.toolbarContainer.release();}this.toolbarContainer=new ContainerToolBar('category-content',600,contextMenuContainer);var tb=this.toolbarContainer;tb.createContainerBody(SMW_CAT_ALL_VALID_ANNOTATED,CATEGORYCONTAINER,gLanguage.getMessage('ANNOTATE_CATEGORY'));this.currentAction="annotate";this.wtp.initialize();var selection=this.wtp.getSelection(true);smwhgLogger.log(selection,"STB-Categories","annotate_clicked");tb.append(tb.createInput('cat-name',gLanguage.getMessage('CATEGORY'),selection,'',SMW_CAT_CHECK_CATEGORY_CREATE+SMW_CAT_CHECK_EMPTY_CM+SMW_CAT_VALID_CATEGORY_NAME+SMW_CAT_HINT_CATEGORY,true));tb.append(tb.createText('cat-name-msg',gLanguage.getMessage('ENTER_NAME'),'',true));var links=[['catToolBar.addItem(false)',gLanguage.getMessage('ADD'),'cat-confirm',gLanguage.getMessage('INVALID_VALUES'),'cat-invalid'],['catToolBar.addItem(true)',gLanguage.getMessage('ADD_AND_CREATE_CAT'),'cat-addandcreate']];tb.append(tb.createLink('cat-links',links,'',true));tb.finishCreation();$('cat-addandcreate').hide();gSTBEventActions.initialCheck($("category-content-box"));},finalCategoryCheck:function(target){var catName=$('cat-name').value;var cat=this.wtp.getCategory(catName);if(cat){gSTBEventActions.performSingleAction('showmessage','CATEGORY_ALREADY_ANNOTATED',$('cat-name'));gSTBEventActions.performSingleAction('hide','cat-confirm');gSTBEventActions.performSingleAction('hide','cat-addandcreate');}},addItem:function(create){var catName=$("cat-name");smwhgLogger.log(catName.value,"STB-Categories","annotate_added");this.wtp.initialize();var name=catName.value;this.wtp.addCategory(name,true);this.fillList(true);if(create&&catName.getAttribute("catexists")=="false"){this.om.createCategory(name,"");smwhgLogger.log(name,"STB-Categories","create_added");}},newItem:function(){this.showList=false;this.currentAction="annotate";this.wtp.initialize();var selection=this.wtp.getSelection(true);smwhgLogger.log(selection,"STB-Categories","annotate_clicked");var tb=this.createToolbar(SMW_CAT_ALL_VALID_ANNOTATED);if(wgAction=='edit'){tb.append(tb.createText('cat-help-msg',gLanguage.getMessage('ANNOTATE_CATEGORY'),'',true));}tb.append(tb.createInput('cat-name',gLanguage.getMessage('CATEGORY'),selection,'',SMW_CAT_CHECK_CATEGORY_CREATE+SMW_CAT_CHECK_EMPTY_CM+SMW_CAT_VALID_CATEGORY_NAME+SMW_CAT_HINT_CATEGORY,true));tb.append(tb.createText('cat-name-msg',gLanguage.getMessage('ENTER_NAME'),'',true));var links=[['catToolBar.addItem(false)',gLanguage.getMessage('ADD'),'cat-confirm',gLanguage.getMessage('INVALID_VALUES'),'cat-invalid'],['catToolBar.addItem(true)',gLanguage.getMessage('ADD_AND_CREATE_CAT'),'cat-addandcreate'],['catToolBar.cancel()',gLanguage.getMessage('CANCEL')]];tb.append(tb.createLink('cat-links',links,'',true));tb.finishCreation();$('cat-addandcreate').hide();gSTBEventActions.initialCheck($("category-content-box"));setTimeout("$('cat-name').focus();",50);},CreateSubSup:function(){this.currentAction="sub/super-category";this.showList=false;this.wtp.initialize();var selection=this.wtp.getSelection(true);smwhgLogger.log(selection,"STB-Categories","sub/super-category_clicked");var tb=this.createToolbar(SMW_CAT_SUB_SUPER_ALL_VALID);tb.append(tb.createText('cat-help-msg',gLanguage.getMessage('DEFINE_SUB_SUPER_CAT'),'',true));tb.append(tb.createInput('cat-subsuper',gLanguage.getMessage('CATEGORY'),selection,'',SMW_CAT_SUB_SUPER_CHECK_CATEGORY+SMW_CAT_CHECK_EMPTY+SMW_CAT_HINT_CATEGORY,true));tb.append(tb.createText('cat-subsuper-msg',gLanguage.getMessage('ENTER_NAME'),'',true));tb.append(tb.createLink('cat-make-sub-link',[['catToolBar.createSubItem()',gLanguage.getMessage('CREATE_SUB'),'cat-make-sub']],'',false));tb.append(tb.createLink('cat-make-super-link',[['catToolBar.createSuperItem()',gLanguage.getMessage('CREATE_SUPER'),'cat-make-super']],'',false));var links=[['catToolBar.cancel()',gLanguage.getMessage('CANCEL')]];tb.append(tb.createLink('cat-links',links,'',true));tb.finishCreation();gSTBEventActions.initialCheck($("category-content-box"));setTimeout("$('cat-subsuper').focus();",50);},createSubSuperLinks:function(elementID){var exists=$("cat-subsuper").getAttribute("catExists");exists=(exists&&exists=='true');var tb=this.toolbarContainer;var title=$("cat-subsuper").value;if(title==''){$('cat-make-sub').hide();$('cat-make-super').hide();return;}var superContent;var sub;if(!exists){sub=gLanguage.getMessage('CREATE_SUB_CATEGORY');superContent=gLanguage.getMessage('CREATE_SUPER_CATEGORY');}else{sub=gLanguage.getMessage('MAKE_SUB_CATEGORY');superContent=gLanguage.getMessage('MAKE_SUPER_CATEGORY');}sub=sub.replace(/\$-title/g,title);superContent=superContent.replace(/\$-title/g,title);if($('cat-make-sub').innerHTML!=sub){var lnk=tb.createLink('cat-make-sub-link',[['catToolBar.createSuperItem('+(exists?'false':'true')+')',sub,'cat-make-sub']],'',true);tb.replace('cat-make-sub-link',lnk);lnk=tb.createLink('cat-make-super-link',[['catToolBar.createSubItem()',superContent,'cat-make-super']],'',true);tb.replace('cat-make-super-link',lnk);}},createSubItem:function(){var name=$("cat-subsuper").value;smwhgLogger.log(wgTitle+":"+name,"STB-Categories","sub-category_created");if(name==""||name==null){alert(gLanguage.getMessage('INPUT_BOX_EMPTY'));return;}this.om.createSubCategory(name,"");this.fillList(true);},createSuperItem:function(openTargetArticle){if(openTargetArticle==undefined){openTargetArticle=true;}var name=$("cat-subsuper").value;smwhgLogger.log(name+":"+wgTitle,"STB-Categories","super-category_created");if(name==""||name==null){alert(gLanguage.getMessage('INPUT_BOX_EMPTY'));return;}this.om.createSuperCategory(name,"",openTargetArticle,this.wtp);this.fillList(true);},changeItem:function(selindex){this.wtp.initialize();var name=$("cat-name").value;var annotatedElements=this.wtp.getCategories();if((selindex!=null)&&(selindex>=0)&&(selindex<=annotatedElements.length)){var oldName=annotatedElements[selindex].getName();smwhgLogger.log(oldName+"->"+name,"STB-Categories","edit_category_change");annotatedElements[selindex].changeCategory(name);}this.fillList(true);},deleteItem:function(selindex){this.wtp.initialize();var annotatedElements=this.wtp.getCategories();if((selindex!=null)&&(selindex>=0)&&(selindex<=annotatedElements.length)){var anno=annotatedElements[selindex];smwhgLogger.log(anno.getName(),"STB-Categories","edit_category_delete");anno.remove("");}this.fillList(true);},newCategory:function(){this.currentAction="create";this.showList=false;this.wtp.initialize();var selection=this.wtp.getSelection(true);smwhgLogger.log(selection,"STB-Categories","create_clicked");var tb=this.createToolbar(SMW_CAT_ALL_VALID);tb.append(tb.createText('cat-help-msg',gLanguage.getMessage('CREATE_NEW_CATEGORY'),'',true));tb.append(tb.createInput('cat-name',gLanguage.getMessage('CATEGORY'),selection,'',SMW_CAT_CHECK_CATEGORY_IIE+SMW_CAT_CHECK_EMPTY+SMW_CAT_VALID_CATEGORY_NAME+SMW_CAT_HINT_CATEGORY,true));tb.append(tb.createText('cat-name-msg',gLanguage.getMessage('ENTER_NAME'),'',true));var links=[['catToolBar.createNewCategory()',gLanguage.getMessage('CREATE'),'cat-confirm',gLanguage.getMessage('INVALID_NAME'),'cat-invalid'],['catToolBar.cancel()',gLanguage.getMessage('CANCEL')]];tb.append(tb.createLink('cat-links',links,'',true));tb.finishCreation();gSTBEventActions.initialCheck($("category-content-box"));setTimeout("$('cat-name').focus();",50);},createNewCategory:function(){var catName=$("cat-name").value;smwhgLogger.log(catName,"STB-Categories","create_added");this.om.createCategory(catName,"");this.fillList(true);},getselectedItem:function(selindex){this.wtp.initialize();var annotatedElements=this.wtp.getCategories();if(selindex==null||selindex<0||selindex>=annotatedElements.length){return;}this.currentAction="edit_category";this.showList=false;smwhgLogger.log(annotatedElements[selindex].getName(),"STB-Categories","edit_category_clicked");var tb=this.createToolbar(SMW_CAT_ALL_VALID);tb.append(tb.createText('cat-help-msg',gLanguage.getMessage('CHANGE_ANNO_OF_CAT'),'',true));tb.append(tb.createInput('cat-name',gLanguage.getMessage('CATEGORY'),annotatedElements[selindex].getName(),'',SMW_CAT_CHECK_CATEGORY+SMW_CAT_CHECK_EMPTY+SMW_CAT_VALID_CATEGORY_NAME+SMW_CAT_HINT_CATEGORY,true));tb.append(tb.createText('cat-name-msg',gLanguage.getMessage('ENTER_NAME'),'',true));var links=[['catToolBar.changeItem('+selindex+')',gLanguage.getMessage('CHANGE'),'cat-confirm',gLanguage.getMessage('INVALID_NAME'),'cat-invalid'],['catToolBar.deleteItem('+selindex+')',gLanguage.getMessage('DELETE')],['catToolBar.cancel()',gLanguage.getMessage('CANCEL')]];tb.append(tb.createLink('cat-links',links,'',true));tb.finishCreation();gSTBEventActions.initialCheck($("category-content-box"));annotatedElements[selindex].select();setTimeout("$('cat-name').focus();",50);}};var catToolBar=new CategoryToolBar();Event.observe(window,'load',catToolBar.callme.bindAsEventListener(catToolBar)); 

// SMW_Relation.js
// under GPL-License; Copyright (c) 2007 Ontoprise GmbH
var RelationToolBar=Class.create();var SMW_REL_VALID_PROPERTY_NAME='smwValidValue="^[^<>\|!&$%&\/=\?]{1,255}$: valid '+'? (color: white, hideMessage, valid:true) '+': (color: red, showMessage:PROPERTY_NAME_TOO_LONG, valid:false)" ';var SMW_REL_VALID_PROPERTY_VALUE='smwValidValue="^.{1,255}$: valid '+'? (color: white, hideMessage, valid:true) '+': (color: orange, showMessage:PROPERTY_VALUE_TOO_LONG, valid:true)" ';var SMW_REL_CHECK_PROPERTY='smwCheckType="property: exists '+'? (color: lightgreen, hideMessage, valid:true) '+': (color: orange, showMessage:PROPERTY_DOES_NOT_EXIST, valid:true)" ';var SMW_REL_CHECK_PROPERTY_UPDATE_SCHEMA='smwCheckType="property: exists '+'? (color: lightgreen, hideMessage, valid:true, call:relToolBar.updateSchema) '+': (color: orange, showMessage:PROPERTY_DOES_NOT_EXIST, valid:true)" ';var SMW_REL_SUB_SUPER_CHECK_PROPERTY='smwCheckType="property: exists '+'? (color: lightgreen, hideMessage, valid:true, attribute:propExists=true) '+': (color: orange, hideMessage, valid:true, attribute:propExists=false)" ';var SMW_REL_CHECK_PROPERTY_IIE='smwCheckType="property: exists '+'? (color: red, showMessage:PROPERTY_ALREADY_EXISTS, valid:false) '+': (color: lightgreen, hideMessage, valid:true)" ';var SMW_REL_VALID_CATEGORY_NAME='smwValidValue="^[^<>\|!&$%&\/=\?]{1,255}$: valid '+'? (color: white, hideMessage, valid:true) '+': (color: red, showMessage:CATEGORY_NAME_TOO_LONG, valid:false)" ';var SMW_REL_CHECK_CATEGORY='smwCheckType="category: exists '+'? (color: lightgreen, hideMessage, valid:true) '+': (color: orange, showMessage:CATEGORY_DOES_NOT_EXIST, valid:true)" ';var SMW_REL_CHECK_EMPTY='smwCheckEmpty="empty'+'? (color:red, showMessage:MUST_NOT_BE_EMPTY, valid:false) '+': (color:white, hideMessage)"';var SMW_REL_CHECK_EMPTY_NEV='smwCheckEmpty="empty'+'? (color:red, showMessage:MUST_NOT_BE_EMPTY, valid:false, call:relToolBar.updateTypeHint) '+': (color:white, hideMessage, valid:true, call:relToolBar.updateTypeHint)"';var SMW_REL_CHECK_EMPTY_WIE='smwCheckEmpty="empty'+'? (color:orange, showMessage:VALUE_IMPROVES_QUALITY) '+': (color:white, hideMessage)"';var SMW_REL_NO_EMPTY_SELECTION='smwCheckEmpty="empty'+'? (color:red, showMessage:SELECTION_MUST_NOT_BE_EMPTY, valid:false) '+': (color:white, hideMessage, valid:true)"';var SMW_REL_ALL_VALID='smwAllValid="allValid '+'? (show:rel-confirm, hide:rel-invalid) '+': (show:rel-invalid, hide:rel-confirm)"';var SMW_REL_SUB_SUPER_ALL_VALID='smwAllValid="allValid '+'? (call:relToolBar.createSubSuperLinks) '+': (call:relToolBar.createSubSuperLinks)"';var SMW_REL_CHECK_PART_OF_RADIO='smwValid="relToolBar.checkPartOfRadio"';var SMW_REL_HINT_CATEGORY='typeHint = "'+SMW_CATEGORY_NS+'" position="fixed"';var SMW_REL_HINT_PROPERTY='typeHint="'+SMW_PROPERTY_NS+'" position="fixed"';var SMW_REL_HINT_INSTANCE='typeHint="'+SMW_INSTANCE_NS+'" position="fixed"';RelationToolBar.prototype={initialize:function(){this.genTB=new GenericToolBar();this.toolbarContainer=null;this.showList=true;this.currentAction="";},showToolbar:function(){this.relationcontainer.setHeadline(gLanguage.getMessage('PROPERTIES'));if(wgAction=='edit'){this.wtp=new WikiTextParser();}this.om=new OntologyModifier();this.fillList(true);},callme:function(event){if((wgAction=="edit"||wgAction=="annotate")&&stb_control.isToolbarAvailable()){this.relationcontainer=stb_control.createDivContainer(RELATIONCONTAINER,0);this.showToolbar();}},fillList:function(forceShowList){if(forceShowList==true){this.showList=true;}if(!this.showList){return;}if(this.wtp){this.wtp.initialize();this.relationcontainer.setContent(this.genTB.createList(this.wtp.getRelations(),"relation"));this.relationcontainer.contentChanged();}},setWikiTextParser:function(wtp){this.wtp=wtp;},cancel:function(){smwhgLogger.log("","STB-Properties",this.currentAction+"_canceled");this.currentAction="";this.toolbarContainer.hideSandglass();this.toolbarContainer.release();this.toolbarContainer=null;this.fillList(true);},createToolbar:function(attributes){if(this.toolbarContainer){this.toolbarContainer.release();}this.toolbarContainer=new ContainerToolBar('relation-content',700,this.relationcontainer);var tb=this.toolbarContainer;tb.createContainerBody(attributes);return tb;},createContextMenu:function(contextMenuContainer,value){if(this.toolbarContainer){this.toolbarContainer.release();}this.toolbarContainer=new ContainerToolBar('relation-content',500,contextMenuContainer);var tb=this.toolbarContainer;tb.createContainerBody(SMW_REL_ALL_VALID,RELATIONCONTAINER,gLanguage.getMessage('SPECIFY_PROPERTY'));this.wtp.initialize();this.currentAction="annotate";if(!value){value=this.wtp.getSelection(true);value=value.replace(/\n/,' ');}smwhgLogger.log(value,"AAM-Properties","annotate_clicked");tb.append(tb.createInput('rel-name',gLanguage.getMessage('PROPERTY'),'','',SMW_REL_CHECK_PROPERTY_UPDATE_SCHEMA+SMW_REL_CHECK_EMPTY+SMW_REL_VALID_PROPERTY_NAME+SMW_REL_HINT_PROPERTY,true));tb.append(tb.createText('rel-name-msg',gLanguage.getMessage('ENTER_NAME'),'',true));tb.append(tb.createInput('rel-value-0',gLanguage.getMessage('PAGE'),value,'',SMW_REL_CHECK_EMPTY_NEV+SMW_REL_HINT_INSTANCE+SMW_REL_VALID_PROPERTY_VALUE,true));tb.append(tb.createText('rel-value-0-msg',gLanguage.getMessage('ANNO_PAGE_VALUE'),'',true));var repr=value;tb.append(tb.createInput('rel-show',gLanguage.getMessage('SHOW'),repr,'','',true));var links=[['relToolBar.addItem()',gLanguage.getMessage('ADD'),'rel-confirm',gLanguage.getMessage('INVALID_VALUES'),'rel-invalid']];tb.append(tb.createLink('rel-links',links,'',true));tb.finishCreation();$('relation-content-table-rel-show').hide();gSTBEventActions.initialCheck($("relation-content-box"));setTimeout("if ($('rel-name')) $('rel-name').focus();",250);},addItem:function(){this.wtp.initialize();var name=$("rel-name").value;var value=this.getRelationValue();var text=$("rel-show").value;smwhgLogger.log(name+':'+value,"STB-Properties","annotate_added");if(name==""||name==null){alert(gLanguage.getMessage('INPUT_BOX_EMPTY'));return;}this.wtp.addRelation(name,value,text);this.fillList(true);},getRelationValue:function(){var i=0;var value="";while($("rel-value-"+i)!=null){value+=$("rel-value-"+i).value+";";i++;}value=value.substr(0,value.length-1);return value;},newItem:function(){this.wtp.initialize();this.showList=false;this.currentAction="annotate";var selection=this.wtp.getSelection(true);smwhgLogger.log(selection,"STB-Properties","annotate_clicked");var tb=this.createToolbar(SMW_REL_ALL_VALID);tb.append(tb.createText('rel-help_msg',gLanguage.getMessage('ANNOTATE_PROPERTY'),'',true));tb.append(tb.createInput('rel-name',gLanguage.getMessage('PROPERTY'),'','',SMW_REL_CHECK_PROPERTY_UPDATE_SCHEMA+SMW_REL_CHECK_EMPTY+SMW_REL_VALID_PROPERTY_NAME+SMW_REL_HINT_PROPERTY,true));tb.append(tb.createText('rel-name-msg',gLanguage.getMessage('ENTER_NAME'),'',true));tb.append(tb.createInput('rel-value-0',gLanguage.getMessage('PAGE'),selection,'',SMW_REL_CHECK_EMPTY_NEV+SMW_REL_HINT_INSTANCE+SMW_REL_VALID_PROPERTY_VALUE,true));tb.append(tb.createText('rel-value-0-msg',gLanguage.getMessage('ANNO_PAGE_VALUE'),'',true));tb.append(tb.createInput('rel-show',gLanguage.getMessage('SHOW'),'','','',true));var links=[['relToolBar.addItem()',gLanguage.getMessage('ADD'),'rel-confirm',gLanguage.getMessage('INVALID_VALUES'),'rel-invalid'],['relToolBar.cancel()',gLanguage.getMessage('CANCEL')]];tb.append(tb.createLink('rel-links',links,'',true));tb.finishCreation();gSTBEventActions.initialCheck($("relation-content-box"));setTimeout("$('rel-name').focus();",50);},updateSchema:function(elementID){relToolBar.toolbarContainer.showSandglass(elementID);sajax_do_call('smwfRelationSchemaData',[$('rel-name').value],relToolBar.updateNewItem.bind(relToolBar));},updateNewItem:function(request){relToolBar.toolbarContainer.hideSandglass();if(request.status!=200){return;}var arity=2;var parameterNames=["Page"];if(request.responseText!='noSchemaData'){var schemaData=GeneralXMLTools.createDocumentFromString(request.responseText);arity=parseInt(schemaData.documentElement.getAttribute("arity"));parameterNames=[];for(var i=0,n=schemaData.documentElement.childNodes.length;i<n;i++){parameterNames.push(schemaData.documentElement.childNodes[i].getAttribute("name"));}}var selection=this.wtp.getSelection(true);var tb=this.toolbarContainer;var i=0;var removeElements=new Array();var found=true;var oldValues=[];while(found){found=false;var elem=$('rel-value-'+i);if(elem){oldValues.push($('rel-value-'+i).value);removeElements.push('rel-value-'+i);found=true;}elem=$('rel-value-'+i+'-msg');if(elem){removeElements.push('rel-value-'+i+'-msg');found=true;}++i;}tb.remove(removeElements);for(var i=0;i<arity-1;i++){insertAfter=(i==0)?($('rel-replace-all')?'rel-replace-all':'rel-name-msg'):'rel-value-'+(i-1)+'-msg';var value=(i==0)?((oldValues.length>0)?oldValues[0]:selection):((oldValues.length>i)?oldValues[i]:'');tb.insert(insertAfter,tb.createInput('rel-value-'+i,parameterNames[i],value,'',SMW_REL_CHECK_EMPTY_NEV+SMW_REL_VALID_PROPERTY_VALUE+(parameterNames[i]=="Page"?SMW_REL_HINT_INSTANCE:""),true));tb.insert('rel-value-'+i,tb.createText('rel-value-'+i+'-msg',gLanguage.getMessage('ANNO_PAGE_VALUE'),'',true));selection="";}tb.finishCreation();gSTBEventActions.initialCheck($("relation-content-box"));},CreateSubSup:function(){this.showList=false;this.currentAction="sub/super-category";this.wtp.initialize();var selection=this.wtp.getSelection(true);smwhgLogger.log(selection,"STB-Properties","sub/super-property_clicked");var tb=this.createToolbar(SMW_REL_SUB_SUPER_ALL_VALID);tb.append(tb.createText('rel-help-msg',gLanguage.getMessage('DEFINE_SUB_SUPER_PROPERTY'),'',true));tb.append(tb.createInput('rel-subsuper',gLanguage.getMessage('PROPERTY'),selection,'',SMW_REL_SUB_SUPER_CHECK_PROPERTY+SMW_REL_CHECK_EMPTY+SMW_REL_VALID_PROPERTY_NAME+SMW_REL_HINT_PROPERTY,true));tb.append(tb.createText('rel-subsuper-msg',gLanguage.getMessage('ENTER_NAME'),'',true));tb.append(tb.createLink('rel-make-sub-link',[['relToolBar.createSubItem()',gLanguage.getMessage('CREATE_SUB'),'rel-make-sub']],'',false));tb.append(tb.createLink('rel-make-super-link',[['relToolBar.createSuperItem()',gLanguage.getMessage('CREATE_SUPER'),'rel-make-super']],'',false));var links=[['relToolBar.cancel()',gLanguage.getMessage('CANCEL')]];tb.append(tb.createLink('rel-links',links,'',true));tb.finishCreation();gSTBEventActions.initialCheck($("relation-content-box"));setTimeout("$('rel-subsuper').focus();",50);},createSubSuperLinks:function(elementID){var exists=$("rel-subsuper").getAttribute("propExists");exists=(exists&&exists=='true');var tb=this.toolbarContainer;var title=$("rel-subsuper").value;if(title==''){$('rel-make-sub').hide();$('rel-make-super').hide();return;}var superContent;var sub;if(!exists){sub=gLanguage.getMessage('CREATE_SUB_PROPERTY');superContent=gLanguage.getMessage('CREATE_SUPER_PROPERTY');}else{sub=gLanguage.getMessage('MAKE_SUB_PROPERTY');superContent=gLanguage.getMessage('MAKE_SUPER_PROPERTY');}sub=sub.replace(/\$-title/g,title);superContent=superContent.replace(/\$-title/g,title);if($('rel-make-sub').innerHTML!=sub){var lnk=tb.createLink('rel-make-sub-link',[['relToolBar.createSuperItem('+(exists?'false':'true')+')',sub,'rel-make-sub']],'',true);tb.replace('rel-make-sub-link',lnk);lnk=tb.createLink('rel-make-super-link',[['relToolBar.createSubItem()',superContent,'rel-make-super']],'',true);tb.replace('rel-make-super-link',lnk);}},createSubItem:function(openTargetArticle){if(openTargetArticle==undefined){openTargetArticle=true;}var name=$("rel-subsuper").value;smwhgLogger.log(wgTitle+":"+name,"STB-Properties","sub-property_created");if(name==""||name==null){alert(gLanguage.getMessage('INPUT_BOX_EMPTY'));return;}this.om.createSubProperty(name,"",openTargetArticle);this.fillList(true);},createSuperItem:function(openTargetArticle){if(openTargetArticle==undefined){openTargetArticle=true;}var name=$("rel-subsuper").value;smwhgLogger.log(name+":"+wgTitle,"STB-Properties","super-property_created");if(name==""||name==null){alert(gLanguage.getMessage('INPUT_BOX_EMPTY'));return;}this.om.createSuperProperty(name,"",openTargetArticle,this.wtp);this.fillList(true);},updateTypeHint:function(elementID){var elem=$(elementID);var value=elem.value;var relation=$('rel-name');var hint=SMW_PROPERTY_NS;var date=value.match(/\d{1,5}[- \/.](0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])/);if(!date){date=value.match(/(0[1-9]|[12][0-9]|3[01])[- \/.](0[1-9]|1[012])[- \/.]\d{1,5}/);}var email=value.match(/^([A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4})$/i);var numeric=value.match(/([+-]?\d*(\.\d+([eE][+-]?\d*)?)?)\s*(.*)/);if(date){hint='_dat;'+SMW_PROPERTY_NS;}else if(email){hint='_ema;'+SMW_PROPERTY_NS;}else if(numeric){var number=numeric[1];var unit=numeric[4];var mantissa=numeric[2];if(number&&unit){var c=unit.charCodeAt(0);if(unit==="K"||unit==='�C'||unit==='�F'||(c==176&&unit.length==2&&(unit.charAt(1)=='C'||unit.charAt(1)=='F'))){hint="_tem;"+SMW_PROPERTY_NS;}else{hint=unit+';'+SMW_PROPERTY_NS;}}else if(number&&mantissa){hint='_flt;'+SMW_PROPERTY_NS;}else if(number){hint='_int;_flt;'+SMW_PROPERTY_NS;}else if(unit){hint=':'+unit+';'+SMW_PROPERTY_NS;}}relation.setAttribute('typeHint',hint);},newRelation:function(){gDataTypes.refresh();this.showList=false;this.currentAction="create";this.wtp.initialize();var selection=this.wtp.getSelection(true);smwhgLogger.log(selection,"STB-Properties","create_clicked");var domain=(wgNamespaceNumber==14)?wgTitle:"";var tb=this.createToolbar(SMW_REL_ALL_VALID);tb.append(tb.createText('rel-help-msg',gLanguage.getMessage('CREATE_NEW_PROPERTY'),'',true));tb.append(tb.createInput('rel-name',gLanguage.getMessage('PROPERTY'),selection,'',SMW_REL_CHECK_PROPERTY_IIE+SMW_REL_CHECK_EMPTY+SMW_REL_VALID_PROPERTY_NAME+SMW_REL_HINT_PROPERTY,true));tb.append(tb.createText('rel-name-msg',gLanguage.getMessage('ENTER_NAME'),'',true));tb.append(tb.createInput('rel-domain',gLanguage.getMessage('DOMAIN'),domain,'',SMW_REL_CHECK_CATEGORY+SMW_REL_VALID_CATEGORY_NAME+SMW_REL_CHECK_EMPTY_WIE+SMW_REL_HINT_CATEGORY,true));tb.append(tb.createText('rel-domain-msg',gLanguage.getMessage('ENTER_DOMAIN'),'',true));tb.append(tb.createInput('rel-range-0',gLanguage.getMessage('RANGE'),'',"relToolBar.removeRangeOrType('rel-range-0')",SMW_REL_CHECK_CATEGORY+SMW_REL_CHECK_EMPTY_WIE+SMW_REL_VALID_CATEGORY_NAME+SMW_REL_HINT_CATEGORY,true));tb.append(tb.createText('rel-range-0-msg',gLanguage.getMessage('ENTER_RANGE'),'',true));var links=[['relToolBar.createNewRelation()',gLanguage.getMessage('CREATE'),'rel-confirm',gLanguage.getMessage('INVALID_VALUES'),'rel-invalid'],['relToolBar.cancel()',gLanguage.getMessage('CANCEL')]];tb.append(tb.createLink('rel-links',links,'',true));links=[['relToolBar.addRangeInput()',gLanguage.getMessage('ADD_RANGE')],['relToolBar.addTypeInput()',gLanguage.getMessage('ADD_TYPE')]];tb.append(tb.createLink('rel-add-links',links,'',true));tb.finishCreation();gSTBEventActions.initialCheck($("relation-content-box"));setTimeout("$('rel-name').focus();",50);},addRangeInput:function(){var i=0;while($('rel-range-'+i)!=null){i++;}var tb=this.toolbarContainer;var insertAfter=(i==0)?'rel-domain-msg':$('rel-range-'+(i-1)+'-msg')?'rel-range-'+(i-1)+'-msg':'rel-range-'+(i-1);tb.insert(insertAfter,tb.createInput('rel-range-'+i,gLanguage.getMessage('RANGE'),'',"relToolBar.removeRangeOrType('rel-range-"+i+"')",SMW_REL_CHECK_CATEGORY+SMW_REL_CHECK_EMPTY_WIE+SMW_REL_VALID_CATEGORY_NAME+SMW_REL_HINT_CATEGORY,true));tb.insert('rel-range-'+i,tb.createText('rel-range-'+i+'-msg',gLanguage.getMessage('ENTER_RANGE'),'',true));tb.finishCreation();gSTBEventActions.initialCheck($("relation-content-box"));},addTypeInput:function(){var i=0;while($('rel-range-'+i)!=null){i++;}var tb=this.toolbarContainer;var insertAfter=(i==0)?'rel-domain-msg':$('rel-range-'+(i-1)+'-msg')?'rel-range-'+(i-1)+'-msg':'rel-range-'+(i-1);tb.insert(insertAfter,tb.createDropDown('rel-range-'+i,gLanguage.getMessage('TYPE'),this.getDatatypeOptions(),"relToolBar.removeRangeOrType('rel-range-"+i+"')",0,'isAttributeType="true" '+SMW_REL_NO_EMPTY_SELECTION,true));tb.insert('rel-range-'+i,tb.createText('rel-range-'+i+'-msg',gLanguage.getMessage('ENTER_TYPE'),'',true));tb.finishCreation();gSTBEventActions.initialCheck($("relation-content-box"));},getDatatypeOptions:function(){var options=new Array();var builtinTypes=gDataTypes.getBuiltinTypes();var userTypes=gDataTypes.getUserDefinedTypes();options=builtinTypes.concat([""],userTypes);return options;},removeRangeOrType:function(id){var rangeOrTypeInput=$(id);if(rangeOrTypeInput!=null){var tb=this.toolbarContainer;var rowsAfterRemoved=rangeOrTypeInput.parentNode.parentNode.nextSibling;var idOfValueInput=rangeOrTypeInput.getAttribute('id');var i=parseInt(idOfValueInput.substr(idOfValueInput.length-1,idOfValueInput.length));tb.remove(id);if($(id+'-msg')){tb.remove(id+'-msg');}id=idOfValueInput.substr(0,idOfValueInput.length-1);var obj;while((obj=$(id+ ++i))){var delBtn=obj.up().down('a');if(delBtn){var action=delBtn.getAttribute("href");var regex=new RegExp(id+i);action=action.replace(regex,id+(i-1));delBtn.setAttribute("href",action);}tb.changeID(obj,id+(i-1));if((obj=$(id+i+'-msg'))){tb.changeID(obj,id+(i-1)+'-msg');}}tb.finishCreation();gSTBEventActions.initialCheck($("relation-content-box"));}},createNewRelation:function(){var relName=$("rel-name").value;if(relName==""||relName==null){alert(gLanguage.getMessage('INPUT_BOX_EMPTY'));return;}var i=0;var rangesAndTypes=new Array();while($('rel-range-'+i)!=null){if($('rel-range-'+i).getAttribute("isAttributeType")=="true"){var obj=$('rel-range-'+i);var value=obj.options[obj.selectedIndex].text;rangesAndTypes.push(gLanguage.getMessage('TYPE')+value);}else{var range=$('rel-range-'+i).value;rangesAndTypes.push((range&&range!='')?gLanguage.getMessage('CATEGORY')+range:"");}i++;}var signature="";for(i=0;i<rangesAndTypes.length;i++){signature+=(rangesAndTypes[i]!='')?rangesAndTypes[i]:"Type:Page";if(i<rangesAndTypes.length-1){signature+=', ';}}smwhgLogger.log(relName+":"+signature,"STB-Properties","create_added");this.om.createRelation(relName,gLanguage.getMessage('CREATE_PROPERTY'),$("rel-domain").value,rangesAndTypes);this.fillList(true);},changeItem:function(selindex){this.wtp.initialize();var relName=$("rel-name").value;var value=this.getRelationValue();var text=$("rel-show").value;if(relName==""||relName==null){alert(gLanguage.getMessage('INPUT_BOX_EMPTY'));return;}var annotatedElements=this.wtp.getRelations();if((selindex!=null)&&(selindex>=0)&&(selindex<=annotatedElements.length)){var relation=annotatedElements[selindex];var oldName=relation.getName();var oldValues=relation.getValue();smwhgLogger.log(oldName+":"+oldValues+"->"+relName+":"+value,"STB-Properties","edit_annotation_change");if($("rel-replace-all")&&$("rel-replace-all").down('input').checked==true){var relations=this.wtp.getRelation(relation.getName());for(var i=0,len=relations.length;i<len;i++){relations[i].rename(relName);}editAreaLoader.execCommand(editAreaName,"resync_highlight(true)");}relation.rename(relName);relation.changeValue(value);relation.changeRepresentation(text);}this.fillList(true);},deleteItem:function(selindex){this.wtp.initialize();var annotatedElements=this.wtp.getRelations();if((selindex!=null)&&(selindex>=0)&&(selindex<=annotatedElements.length)){var anno=annotatedElements[selindex];var replText=(anno.getRepresentation()!="")?anno.getRepresentation():(anno.getValue()!=""?anno.getValue():"");smwhgLogger.log(anno.getName()+":"+anno.getValue(),"STB-Properties","edit_annotation_delete");anno.remove(replText);}this.fillList(true);},newPart:function(){this.wtp.initialize();var selection=this.wtp.getSelection(true);smwhgLogger.log(selection,"STB-Properties","haspart_clicked");this.showList=false;this.currentAction="haspart";var path=wgArticlePath;var dollarPos=path.indexOf('$1');if(dollarPos>0){path=path.substring(0,dollarPos);}var poLink="<a href='"+wgServer+path+gLanguage.getMessage('PROP_HAS_PART')+"' "+"target='blank'> "+gLanguage.getMessage('HAS_PART')+"</a>";var bsuLink="<a href='"+wgServer+path+gLanguage.getMessage('PROP_HBSU')+"' "+"target='blank'> "+gLanguage.getMessage('HBSU')+"</a>";var tb=this.createToolbar(SMW_REL_ALL_VALID);tb.append(tb.createText('rel-help-msg',gLanguage.getMessage('DEFINE_PART_OF'),'',true));tb.append(tb.createText('rel-help-msg',wgTitle,'',true));tb.append(tb.createRadio('rel-partof','',[poLink,bsuLink],-1,SMW_REL_CHECK_PART_OF_RADIO,true));tb.append(tb.createInput('rel-name',gLanguage.getMessage('OBJECT'),selection,'',SMW_REL_CHECK_EMPTY_NEV+SMW_REL_VALID_PROPERTY_NAME+SMW_REL_HINT_INSTANCE,true));tb.append(tb.createText('rel-name-msg','','',true));tb.append(tb.createInput('rel-show',gLanguage.getMessage('SHOW'),(wgAction=='annotate')?selection:'','','',true));var links=[['relToolBar.addPartOfRelation()',gLanguage.getMessage('ADD'),'rel-confirm',gLanguage.getMessage('INVALID_VALUES'),'rel-invalid'],['relToolBar.cancel()',gLanguage.getMessage('CANCEL')]];tb.append(tb.createLink('rel-links',links,'',true));tb.finishCreation();if(wgAction=='annotate'){$('rel-show').disable();}gSTBEventActions.initialCheck($("relation-content-box"));setTimeout("$('rel-partof').focus();",50);},checkPartOfRadio:function(element){var element=$(element).elements["rel-partof"];if(element[0].checked==true||element[1].checked==true){return true;}return false;},addPartOfRelation:function(){var element=$('rel-partof').elements["rel-partof"];var poType="";if(element[0].checked==true){poType=gLanguage.getMessage('HAS_PART');}else if(element[1].checked==true){poType=gLanguage.getMessage('HBSU');}var obj=$("rel-name").value;smwhgLogger.log(poType+":"+obj,"STB-Properties","haspart_added");if(obj==""){alert(gLanguage.getMessage('NO_OBJECT_FOR_POR'));}var show=$("rel-show").value;this.wtp.initialize();this.wtp.addRelation(poType,obj,show,false);this.fillList(true);},getselectedItem:function(selindex){this.wtp.initialize();var renameAll="";var annotatedElements=this.wtp.getRelations();if(selindex==null||selindex<0||selindex>=annotatedElements.length){return;}this.showList=false;this.currentAction="editannotation";var relation=annotatedElements[selindex];smwhgLogger.log(relation.getName()+":"+relation.getValue(),"STB-Properties","editannotation_clicked");var tb=this.createToolbar(SMW_REL_ALL_VALID);var relations=this.wtp.getRelation(relation.getName());if(relations.length>1){renameAll=tb.createCheckBox('rel-replace-all','',[gLanguage.getMessage('RENAME_ALL_IN_ARTICLE')],[],'',true);}function getSchemaCallback(request){tb.hideSandglass();if(request.status!=200){alert(gLanguage.getMessage('RETRIEVE_SCHEMA_DATA'));return;}var parameterNames=[];var schemaValid=true;if(request.responseText!='noSchemaData'){var schemaData=GeneralXMLTools.createDocumentFromString(request.responseText);if(schemaData.documentElement.tagName=='parsererror'){schemaValid=false;}else{parameterNames=[];for(var i=0,n=schemaData.documentElement.childNodes.length;i<n;i++){parameterNames.push(schemaData.documentElement.childNodes[i].getAttribute("name"));}}}else{schemaValid=false;}if(!schemaValid){for(var i=0;i<relation.getArity()-1;i++){parameterNames.push("Value");}}var valueInputs=new Array();for(var i=0;i<relation.getArity()-1;i++){var parName=(parameterNames.length>i)?parameterNames[i]:"Page";var typeCheck='smwCheckType="'+parName.toLowerCase()+': valid'+'? (color: lightgreen, hideMessage, valid:true)'+': (color: red, showMessage:INVALID_FORMAT_OF_VALUE, valid:false)" ';var obj=tb.createInput('rel-value-'+i,parName,relation.getSplitValues()[i],'',typeCheck+SMW_REL_VALID_PROPERTY_VALUE+(parName=="Page"?SMW_REL_HINT_INSTANCE:""),true);valueInputs.push(obj);obj=tb.createText('rel-value-'+i+'-msg','','',true);valueInputs.push(obj);}tb.append(tb.createInput('rel-name',gLanguage.getMessage('PROPERTY'),relation.getName(),'',SMW_REL_CHECK_PROPERTY_UPDATE_SCHEMA+SMW_REL_CHECK_EMPTY+SMW_REL_VALID_PROPERTY_NAME+SMW_REL_HINT_PROPERTY,true));tb.append(tb.createText('rel-name-msg','','',true));if(renameAll!=''){tb.append(renameAll);}tb.append(valueInputs);var repr=relation.getRepresentation();if(wgAction=='annotate'){if(repr==''){var values=relation.getSplitValues();repr=values[0];if(values.size()>1){repr+=' (';for(var i=1;i<values.size();++i){repr+=values[i];if(i<values.size()-1){repr+=","}}repr+=')';}}}tb.append(tb.createInput('rel-show',gLanguage.getMessage('SHOW'),repr,'','',true));var links=[['relToolBar.changeItem('+selindex+')',gLanguage.getMessage('CHANGE'),'rel-confirm',gLanguage.getMessage('INVALID_VALUES'),'rel-invalid'],['relToolBar.deleteItem('+selindex+')',gLanguage.getMessage('DELETE')],['relToolBar.cancel()',gLanguage.getMessage('CANCEL')]];tb.append(tb.createLink('rel-links',links,'',true));tb.finishCreation();if(wgAction=='annotate'){$('rel-show').disable();}gSTBEventActions.initialCheck($("relation-content-box"));setTimeout("$('rel-name').focus();",50);};tb.append(tb.createText('rel-help-msg',gLanguage.getMessage('CHANGE_PROPERTY'),'',true));if(relation.getName().strip()!=""){this.toolbarContainer.showSandglass('rel-help-msg');sajax_do_call('smwfRelationSchemaData',[relation.getName()],getSchemaCallback.bind(this));}}};var relToolBar=new RelationToolBar();Event.observe(window,'load',relToolBar.callme.bindAsEventListener(relToolBar)); 

// SMW_Properties.js
// under GPL-License; Copyright (c) 2007 Ontoprise GmbH
var DOMAIN_HINT="has domain and range";var RANGE_HINT="has domain and range";var HAS_TYPE="has type";var MAX_CARDINALITY="Has max cardinality";var MIN_CARDINALITY="Has min cardinality";var INVERSE_OF="Is inverse of";var TRANSITIVE_RELATION="Transitive relations";var SYMMETRICAL_RELATION="Symmetrical relations";var SMW_PRP_ALL_VALID='smwAllValid="allValid '+'? (show:prop-confirm, hide:prop-invalid) '+': (show:prop-invalid, hide:prop-confirm)"';var SMW_PRP_CHECK_MAX_CARD='smwValid="propToolBar.checkMaxCard"';var SMW_PRP_VALID_CATEGORY_NAME='smwValidValue="^[^<>\|!&$%&\/=\?]{1,255}$: valid '+'? (color: white, hideMessage, valid:true) '+': (color: red, showMessage:CATEGORY_NAME_TOO_LONG, valid:false)" ';var SMW_PRP_CHECK_CATEGORY='smwCheckType="category: exists '+'? (color: lightgreen, hideMessage, valid:true) '+': (color: orange, showMessage:CATEGORY_DOES_NOT_EXIST, valid:true)" ';var SMW_PRP_CHECK_PROPERTY='smwCheckType="property: exists '+'? (color: lightgreen, hideMessage, valid:true) '+': (color: orange, showMessage:PROPERTY_DOES_NOT_EXIST, valid:true)" ';var SMW_PRP_VALID_PROPERTY_NAME='smwValidValue="^[^<>\|!&$%&\/=\?]{1,255}$: valid '+'? (color: white, hideMessage, valid:true) '+': (color: red, showMessage:PROPERTY_NAME_TOO_LONG, valid:false)" ';var SMW_PRP_HINT_CATEGORY='typeHint = "'+SMW_CATEGORY_NS+'" ';var SMW_PRP_HINT_PROPERTY='typeHint="'+SMW_PROPERTY_NS+'" ';var SMW_PRP_CHECK_EMPTY='smwCheckEmpty="empty'+'? (color:red, showMessage:MUST_NOT_BE_EMPTY, valid:false) '+': (color:white, hideMessage)"';var SMW_PRP_CHECK_EMPTY_WIE='smwCheckEmpty="empty'+'? (color:orange, showMessage:VALUE_IMPROVES_QUALITY) '+': (color:white, hideMessage)"';var SMW_PRP_CHECK_EMPTY_VIE='smwCheckEmpty="empty'+'? (color:white, hideMessage, valid:true) '+': ()"';var SMW_PRP_NO_EMPTY_SELECTION='smwCheckEmpty="empty'+'? (color:red, showMessage:SELECTION_MUST_NOT_BE_EMPTY, valid:false) '+': (color:white, hideMessage, valid:true)"';var PRP_NARY_CHANGE_LINKS=[['propToolBar.addType()',gLanguage.getMessage('ADD_TYPE'),'prp-add-type-lnk'],['propToolBar.addRange()',gLanguage.getMessage('ADD_RANGE'),'prp-add-range-lnk']];var PRP_APPLY_LINK=[['propToolBar.apply()','Apply','prop-confirm',gLanguage.getMessage('INVALID_VALUES'),'prop-invalid'],['propToolBar.cancel()',gLanguage.getMessage('CANCEL')]];var PropertiesToolBar=Class.create();PropertiesToolBar.prototype={initialize:function(){this.genTB=new GenericToolBar();this.toolbarContainer=null;this.pendingIndicator=null;this.isRelation=true;this.isNAry=false;this.numOfParams=0;this.prpNAry=0;},showToolbar:function(request){if(this.propertiescontainer==null){return;}this.propertiescontainer.setHeadline(gLanguage.getMessage('PROPERTY_PROPERTIES'));this.wtp=new WikiTextParser();this.om=new OntologyModifier();this.createContent();},callme:function(event){if(wgAction=="edit"&&(wgNamespaceNumber==100||wgNamespaceNumber==102)&&stb_control.isToolbarAvailable()){this.propertiescontainer=stb_control.createDivContainer(PROPERTIESCONTAINER,0);setTimeout("propToolBar.showToolbar();",1);}},createContent:function(){if(this.propertiescontainer==null){return;}this.wtp.initialize();var type=this.wtp.getRelation(HAS_TYPE);var domain=this.wtp.getRelation(DOMAIN_HINT);var range=this.wtp.getRelation(RANGE_HINT);var maxCard=this.wtp.getRelation(MAX_CARDINALITY);var minCard=this.wtp.getRelation(MIN_CARDINALITY);var inverse=this.wtp.getRelation(INVERSE_OF);var transitive=this.wtp.getCategory(TRANSITIVE_RELATION);var symmetric=this.wtp.getCategory(SYMMETRICAL_RELATION);var changed=this.hasAnnotationChanged([type,domain,range,maxCard,minCard,inverse],[transitive,symmetric]);if(!changed){return;}if(this.toolbarContainer){this.toolbarContainer.release();}this.toolbarContainer=new ContainerToolBar('properties-content',800,this.propertiescontainer);var tb=this.toolbarContainer;tb.createContainerBody(SMW_PRP_ALL_VALID);if(type){type=type[0].getValue();type=type.charAt(5).toLowerCase()+type.substring(6);}else{type="page";}this.isRelation=(type=="page");if(domain==null){domain="";}else{domain=domain[0].getSplitValues()[0];domain=domain.replace(/^\s*(.*?)\s*$/,"$1");if(domain.indexOf(gLanguage.getMessage('CATEGORY'))==0){domain=domain.substring(9);}}if(range==null){range="";}else{if(range[0].getSplitValues()[1]){range=range[0].getSplitValues()[1];range=range.replace(/^\s*(.*?)\s*$/,"$1");if(range.indexOf(gLanguage.getMessage('CATEGORY'))==0){range=range.substring(9);}}else{range="";}}if(maxCard==null){maxCard="";}else{maxCard=maxCard[0].getValue();}if(minCard==null){minCard="";}else{minCard=minCard[0].getValue();}if(inverse==null){inverse="";}else{inverse=inverse[0].getValue();if(inverse.indexOf(gLanguage.getMessage('PROPERTY'))==0){inverse=inverse.substring(9);}}transitive=(transitive!=null)?"checked":"";symmetric=(symmetric!=null)?"checked":"";var tb=this.toolbarContainer;tb.append(tb.createInput('prp-domain',gLanguage.getMessage('DOMAIN'),domain,'',SMW_PRP_CHECK_CATEGORY+SMW_PRP_VALID_CATEGORY_NAME+SMW_PRP_CHECK_EMPTY_WIE+SMW_PRP_HINT_CATEGORY,true));tb.append(tb.createText('prp-domain-msg','','',true));tb.append(tb.createInput('prp-range',gLanguage.getMessage('RANGE'),range,'',SMW_PRP_CHECK_CATEGORY+SMW_PRP_VALID_CATEGORY_NAME+SMW_PRP_CHECK_EMPTY_WIE+SMW_PRP_HINT_CATEGORY,true));tb.append(tb.createText('prp-range-msg','','',true));tb.append(tb.createInput('prp-inverse-of',gLanguage.getMessage('INVERSE_OF'),inverse,'',SMW_PRP_CHECK_PROPERTY+SMW_PRP_VALID_PROPERTY_NAME+SMW_PRP_HINT_PROPERTY+SMW_PRP_CHECK_EMPTY_VIE,true));tb.append(tb.createText('prp-inverse-of-msg','','',true));tb.append(this.createTypeSelector("prp-attr-type","prpSelection",false,type,'','smwChanged="(call:propToolBar.attrTypeChanged,call:propToolBar.enableWidgets)"'+SMW_PRP_NO_EMPTY_SELECTION));tb.append(tb.createInput('prp-min-card',gLanguage.getMessage('MIN_CARD'),minCard,'',SMW_PRP_CHECK_MAX_CARD,true,false));tb.append(tb.createText('prp-min-card-msg','','',true));tb.append(tb.createInput('prp-max-card',gLanguage.getMessage('MAX_CARD'),maxCard,'',SMW_PRP_CHECK_MAX_CARD,true,false));tb.append(tb.createText('prp-max-card-msg','','',true));tb.append(tb.createCheckBox('prp-transitive','',[gLanguage.getMessage('TRANSITIVE')],[transitive=='checked'?0: -1],'name="transitive"',true));tb.append(tb.createCheckBox('prp-symmetric','',[gLanguage.getMessage('SYMMETRIC')],[symmetric=='checked'?0: -1],'name="symmetric"',true));this.prpNAry=0;this.numOfParams=0;this.isNAry=false;var types=this.wtp.getRelation(HAS_TYPE);if(types){types=types[0];this.isNAry=(type.indexOf(';')>0);}if(this.isNAry){types=types.getSplitValues();var ranges=this.wtp.getRelation(RANGE_HINT);var rc=0;for(var i=0,num=types.length;i<num;++i){if(types[i]==gLanguage.getMessage('TYPE_PAGE')){var r="";if(ranges&&rc<ranges.length){r=ranges[rc++].getSplitValues()[1];}r=r.replace(/^\s*(.*?)\s*$/,"$1");if(r.indexOf(gLanguage.getMessage('CATEGORY'))==0){r=r.substring(9);}tb.append(tb.createInput('prp-nary-'+i,gLanguage.getMessage('RANGE'),r,'propToolBar.removeRangeOrType(\'prp-nary-'+i+'\')',SMW_PRP_CHECK_CATEGORY+SMW_PRP_VALID_CATEGORY_NAME+SMW_PRP_CHECK_EMPTY+SMW_PRP_HINT_CATEGORY,true));tb.append(tb.createText('prp-nary-'+i+'-msg','','',true));this.prpNAry++;this.numOfParams++;}else{var t=types[i];if(t.indexOf(gLanguage.getMessage('TYPE'))==0){t=t.substring(5);tb.append(this.createTypeSelector("prp-nary-"+i,"prpNaryType"+i,true,t,"propToolBar.removeRangeOrType('prp-nary-"+i+"')",SMW_PRP_NO_EMPTY_SELECTION));this.prpNAry++;this.numOfParams++;}}}}tb.append(tb.createLink('prp-change-links',PRP_NARY_CHANGE_LINKS,'',true));tb.append(tb.createLink('prp-links',PRP_APPLY_LINK,'',true));tb.finishCreation();this.enableWidgets();gSTBEventActions.initialCheck($("properties-content-box"));},checkMaxCard:function(domID){var maco=$('prp-max-card');var maxCard=maco.value;var mico=$('prp-min-card');var minCard=mico.value;gSTBEventActions.performSingleAction('color','white',mico);gSTBEventActions.performSingleAction('hidemessage',null,mico);gSTBEventActions.performSingleAction('color','white',maco);gSTBEventActions.performSingleAction('hidemessage',null,maco);if(!maxCard&& !minCard){return true;}var result=true;if(minCard!=''){minCard=minCard.match(/^\d+$/);if(!minCard){gSTBEventActions.performSingleAction('color','red',mico);gSTBEventActions.performSingleAction('showmessage','INVALID_FORMAT_OF_VALUE',mico);result=false;}else{minCard=minCard*1;gSTBEventActions.performSingleAction('color','lightgreen',mico);gSTBEventActions.performSingleAction('hidemessage','',mico);}}if(maxCard!=''){maxCard=maxCard.match(/^\d+$/);if(!maxCard){gSTBEventActions.performSingleAction('color','red',maco);gSTBEventActions.performSingleAction('showmessage','INVALID_FORMAT_OF_VALUE',maco);result=false;}else{maxCard=maxCard*1;if(maxCard==0){gSTBEventActions.performSingleAction('color','red',maco);gSTBEventActions.performSingleAction('showmessage','MAX_CARD_MUST_NOT_BE_0',maco);result=false;}else{gSTBEventActions.performSingleAction('color','lightgreen',maco);gSTBEventActions.performSingleAction('hidemessage','',maco);}}}if(!result){return false;}if(typeof(maxCard)=='number'&&typeof(minCard)=='string'){gSTBEventActions.performSingleAction('color','white',mico);gSTBEventActions.performSingleAction('showmessage','ASSUME_CARDINALITY_0',mico);return true;}if(typeof(maxCard)=='string'&&typeof(minCard)=='number'){gSTBEventActions.performSingleAction('color','white',maco);gSTBEventActions.performSingleAction('showmessage','ASSUME_CARDINALITY_INF',maco);return true;}if(!result){return false;}if(minCard>maxCard){gSTBEventActions.performSingleAction('color','red',mico);gSTBEventActions.performSingleAction('showmessage','MIN_CARD_INVALID',mico);return false;}return true;},hasAnnotationChanged:function(relations,categories){var changed=false;if(!this.relValues){changed=true;this.relValues=new Array(relations.length);this.catValues=new Array(categories.length);}for(var i=0;i<relations.length;i++){if(!relations[i]&&this.relValues[i]){changed=true;this.relValues[i]=null;}else if(relations[i]){var value=relations[i][0].annotation;if(this.relValues[i]!=value){this.relValues[i]=value;changed=true;}}}for(var i=0;i<categories.length;i++){if(!categories[i]&&this.catValues[i]){changed=true;this.catValues[i]=false;}else if(categories[i]&& !this.catValues[i]){this.catValues[i]=true;changed=true;}}return changed;},addType:function(){var insertAfter=(this.numOfParams==0)?'prp-symmetric':"prp-nary-"+(this.prpNAry-1)+'-msg';this.toolbarContainer.insert(insertAfter,this.createTypeSelector("prp-nary-"+this.prpNAry,"prpNaryType"+this.prpNAry,true,"","propToolBar.removeRangeOrType('prp-nary-"+this.prpNAry+"')",SMW_PRP_NO_EMPTY_SELECTION));this.prpNAry++;this.numOfParams++;this.toolbarContainer.finishCreation();this.enableWidgets();gSTBEventActions.initialCheck($("properties-content-box"));},addRange:function(){var insertAfter=(this.numOfParams==0)?'prp-symmetric':"prp-nary-"+(this.prpNAry-1)+'-msg';var tb=this.toolbarContainer;tb.insert(insertAfter,tb.createInput('prp-nary-'+this.prpNAry,gLanguage.getMessage('RANGE'),"",'propToolBar.removeRangeOrType(\'prp-nary-'+this.prpNAry+'\')',SMW_PRP_CHECK_CATEGORY+SMW_PRP_VALID_CATEGORY_NAME+SMW_PRP_CHECK_EMPTY+SMW_PRP_HINT_CATEGORY,true));tb.insert('prp-nary-'+this.prpNAry,tb.createText('prp-nary-'+this.prpNAry+'-msg','','',true));this.prpNAry++;this.numOfParams++;this.toolbarContainer.finishCreation();this.enableWidgets();gSTBEventActions.initialCheck($("properties-content-box"));},removeRangeOrType:function(domID){this.toolbarContainer.remove(domID);this.toolbarContainer.remove(domID+'-msg');this.numOfParams--;if(domID=='prp-nary-'+(this.prpNAry-1)){while(this.prpNAry>0){--this.prpNAry;if($('prp-nary-'+this.prpNAry)){this.prpNAry++;break;}}}if(this.numOfParams==0){this.prpNAry=0;this.isRelation=true;this.isNAry=false;var selector=$('prp-attr-type');var options=selector.options;for(var i=0;i<options.length;i++){if(options[i].value=='page'){selector.selectedIndex=i;break;}}this.enableWidgets();}this.toolbarContainer.finishCreation();this.enableWidgets();gSTBEventActions.initialCheck($("properties-content-box"));},attrTypeChanged:function(target){target=$(target);if(target.id=='prp-attr-type'){this.isNAry=target.value=='n-ary';this.isRelation=target.value=='page';}},createTypeSelector:function(id,name,onlyTypes,type,deleteAction,attributes){var closure=function(){var origTypeString=type;if(type){type=type.toLowerCase();if(type.indexOf(';')>0){type='n-ary';}}var typeFound=false;var builtinTypes=gDataTypes.getBuiltinTypes();var userTypes=gDataTypes.getUserDefinedTypes();var allTypes=builtinTypes.concat([""],onlyTypes?[]:[gLanguage.getMessage('PAGE_TYPE'),gLanguage.getMessage('NARY_TYPE'),""],userTypes);var selection=$(id);if(selection){selection.length=allTypes.length;}var selIdx= -1;for(var i=0;i<allTypes.length;i++){var lcTypeName=allTypes[i].toLowerCase();if(type==lcTypeName){typeFound=true;if(selection){selection.options[i]=new Option(allTypes[i],allTypes[i],true,true);}selIdx=i;}else{if(selection){selection.options[i]=new Option(allTypes[i],allTypes[i],false,false);}}}if(type&&type!=gLanguage.getMessage('NARY_TYPE')&& !typeFound){if(selection){selection.options[i]=new Option(origTypeString,origTypeString,true,true);}selIdx=allTypes.length;allTypes[allTypes.length]=origTypeString;}gSTBEventActions.initialCheck($(id).up());propToolBar.toolbarContainer.finishCreation();return[allTypes,selIdx];};var sel=[[gLanguage.getMessage('RETRIEVING_DATATYPES')],0];if(gDataTypes.getUserDefinedTypes()==null||gDataTypes.getBuiltinTypes()==null|| !$(id)){gDataTypes.refresh(closure);}else{sel=closure();}if(!deleteAction){deleteAction="";}if(!attributes){attributes="";}var dropDown=this.toolbarContainer.createDropDown(id,gLanguage.getMessage('TYPE'),sel[0],deleteAction,sel[1],attributes+' name="'+name+'"',true);dropDown+=this.toolbarContainer.createText(id+'-msg','','',true);return dropDown;},enableWidgets:function(){var tb=propToolBar.toolbarContainer;if(propToolBar.isRelation&& !propToolBar.isNAry){$("prp-range").enable();$("prp-inverse-of").enable();$("prp-transitive").enable();$("prp-symmetric").enable();}else{$("prp-range").disable();$("prp-inverse-of").disable();$("prp-transitive").disable();$("prp-symmetric").disable();}if(propToolBar.isNAry){$('prp-add-type-lnk').show();$('prp-add-range-lnk').show();$('prp-min-card').disable();$('prp-max-card').disable();}else{$('prp-add-type-lnk').hide();$('prp-add-range-lnk').hide();$('prp-min-card').enable();$('prp-max-card').enable();}for(var i=0;i<propToolBar.prpNAry;i++){var obj=$('prp-nary-'+i);if(obj){if(propToolBar.isNAry){obj.enable();}else{obj.disable();}}}},cancel:function(){this.toolbarContainer.hideSandglass();this.relValues=null;this.catValues=null;this.createContent();},apply:function(){this.wtp.initialize();var domain=$("prp-domain").value;var range=this.isRelation?$("prp-range").value:null;var attrType=$("prp-attr-type").value;var inverse=this.isRelation?$("prp-inverse-of").value:null;var minCard=this.isNAry?null:$("prp-min-card").value;var maxCard=this.isNAry?null:$("prp-max-card").value;var transitive=this.isRelation?$("prp-transitive"):null;var symmetric=this.isRelation?$("prp-symmetric"):null;domain=(domain!=null&&domain!="")?gLanguage.getMessage('CATEGORY')+domain:null;range=(range!=null&&range!="")?gLanguage.getMessage('CATEGORY')+range:null;attrType=(attrType!=null&&attrType!="")?gLanguage.getMessage('TYPE')+attrType:null;inverse=(inverse!=null&&inverse!="")?gLanguage.getMessage('PROPERTY')+inverse:null;minCard=(minCard!=null&&minCard!="")?minCard:null;maxCard=(maxCard!=null&&maxCard!="")?maxCard:null;var domainRange=((domain==null)?"":domain)+((range==null)?"":"; "+range);var domainRangeAnno=this.wtp.getRelation(DOMAIN_HINT);var attrTypeAnno=this.wtp.getRelation(HAS_TYPE);var maxCardAnno=this.wtp.getRelation(MAX_CARDINALITY);var minCardAnno=this.wtp.getRelation(MIN_CARDINALITY);var inverseAnno=this.wtp.getRelation(INVERSE_OF);var transitiveAnno=this.wtp.getCategory(TRANSITIVE_RELATION);var symmetricAnno=this.wtp.getCategory(SYMMETRICAL_RELATION);if(domainRangeAnno!=null){if(domain==null&&range==null){domainRangeAnno[0].remove("");}else{domainRangeAnno[0].changeValue(domainRange);}if(!this.isNAry){for(var i=1,num=domainRangeAnno.length;i<num;i++){domainRangeAnno[i].remove("");}}}if(attrTypeAnno!=null){if(attrType==null){attrTypeAnno[0].remove("");}else{attrTypeAnno[0].changeValue(attrType);}}if(maxCardAnno!=null){if(maxCard==null){maxCardAnno[0].remove("");}else{maxCardAnno[0].changeValue(maxCard);}}if(minCardAnno!=null){if(minCard==null){minCardAnno[0].remove("");}else{minCardAnno[0].changeValue(minCard);}}if(inverseAnno!=null){if(inverse==null){inverseAnno[0].remove("");}else{inverseAnno[0].changeValue(inverse);}}if(transitiveAnno!=null&&(transitive==null|| !transitive.down('input').checked)){transitiveAnno.remove("");}if(symmetricAnno!=null&&(symmetric==null|| !symmetric.down('input').checked)){symmetricAnno.remove("");}if(domainRangeAnno==null&&domainRange!=null&&domainRange!=''){this.wtp.addRelation(DOMAIN_HINT,domainRange,null,true);}if(attrTypeAnno==null&&attrType!=null){this.wtp.addRelation(HAS_TYPE,attrType,null,true);}if(maxCardAnno==null&&maxCard!=null){this.wtp.addRelation(MAX_CARDINALITY,maxCard,null,true);}if(minCardAnno==null&&minCard!=null){this.wtp.addRelation(MIN_CARDINALITY,minCard,null,true);}if(inverseAnno==null&&inverse!=null){this.wtp.addRelation(INVERSE_OF,inverse,null,true);}if(transitive!=null&&transitive.down('input').checked&&transitiveAnno==null){this.wtp.addCategory(TRANSITIVE_RELATION,true);}if(symmetric!=null&&symmetric.down('input').checked&&symmetricAnno==null){this.wtp.addCategory(SYMMETRICAL_RELATION,true);}if(this.isNAry){rangeAnno=this.wtp.getRelation(RANGE_HINT);if(rangeAnno){for(var i=0,num=rangeAnno.length;i<num;i++){rangeAnno[i].remove("");}}var typeString="";for(var i=0;i<this.prpNAry;i++){var obj=$('prp-nary-'+i);if(obj){if(obj.tagName&&obj.tagName=="SELECT"){typeString+=gLanguage.getMessage('TYPE')+obj.value+";";}else{var r=gLanguage.getMessage('CATEGORY')+obj.value;r=((domain==null)?"":domain)+"; "+r;typeString+=gLanguage.getMessage('TYPE_PAGE')+';';this.wtp.addRelation(RANGE_HINT,r,null,true);}}}if(typeString!=""){typeString=typeString.substring(0,typeString.length-1);attrTypeAnno=this.wtp.getRelation(HAS_TYPE);if(attrTypeAnno!=null){attrTypeAnno[0].changeValue(typeString);}else{this.wtp.addRelation(HAS_TYPE,typeString,null,true);}}}editAreaLoader.execCommand(editAreaName,"resync_highlight(true)");this.createContent();this.refreshOtherTabs();smwhgLogger.log(wgTitle,"STB-PropertyProperties","property_properties_changed");},refreshOtherTabs:function(){relToolBar.fillList();catToolBar.fillList();}};var propToolBar=new PropertiesToolBar();Event.observe(window,'load',propToolBar.callme.bindAsEventListener(propToolBar)); 

// SMW_Refresh.js
// under GPL-License; Copyright (c) 2007 Ontoprise GmbH
var REFRESH_DELAY=0.5;var RefreshSemanticToolBar=Class.create();RefreshSemanticToolBar.prototype={initialize:function(){this.userIsTyping=false;this.lastKeypress=0;this.timeOffset=0;this.contentChanged=false;this.wtp=null;},register:function(event){if(wgAction=="edit"&&stb_control.isToolbarAvailable()){Event.observe('wpTextbox1','change',this.changed.bind(this));Event.observe('wpTextbox1','keyup',this.setUserIsTyping.bind(this));this.registerTimer();this.editboxtext="";}},changed:function(){this.contentChanged=true;},refresh:function(){if(this.userIsTyping){this.contentChanged=true;this.userIsTyping=false;}else if(this.contentChanged){var t=new Date().getTime()-this.timeOffset;var dt=(this.lastKeypress!=0)?t-this.lastKeypress:0;if(dt>REFRESH_DELAY*1000){this.contentChanged=false;this.refreshToolBar();}}},registerTimer:function(){this.periodicalTimer=new PeriodicalExecuter(this.refresh.bind(this),REFRESH_DELAY);},setUserIsTyping:function(event){if(typeof(event)=="undefined"|| !event.timeStamp){this.lastKeypress=new Date().getTime();}else{this.lastKeypress=event.timeStamp;}if(this.timeOffset==0){this.timeOffset=new Date().getTime()-this.lastKeypress;}this.userIsTyping=true;},refreshToolBar:function(){if(window.catToolBar){catToolBar.fillList()}if(window.relToolBar){relToolBar.fillList()}if(window.propToolBar){propToolBar.createContent();}var saveButton=$('wpSave');if(saveButton){if(!this.wtp){this.wtp=new WikiTextParser();}this.wtp.initialize();this.wtp.parseAnnotations();var error=this.wtp.getError();if(error==WTP_NO_ERROR){saveButton.enable();if($('wpSaveWarning')){$('wpSaveWarning').remove();gEditInterface.focus();}}else{if(!$('wpSaveWarning')){saveButton.disable();new Insertion.Before(saveButton,'<div id="wpSaveWarning" '+'style="background-color:#ee0000;'+'color:white;'+'font-weight:bold;'+'text-align:left;">'+gLanguage.getMessage('UNMATCHED_BRACKETS')+'</div>');gEditInterface.focus();}}if(gEditInterface==null){gEditInterface=new SMWEditInterface();}}}};var refreshSTB=new RefreshSemanticToolBar();Event.observe(window,'load',refreshSTB.register.bindAsEventListener(refreshSTB));

// SMW_DragAndResize.js
// under GPL-License; Copyright (c) 2007 Ontoprise GmbH
var DragResizeHandler=Class.create();DragResizeHandler.prototype={initialize:function(){this.draggable=null;this.resizeable=null;this.posX=null;this.posY=null;},callme:function(){if(wgAction=="annotate"){this.resizeable=new Resizeable('ontomenuanchor',{top:10,left:10,bottom:10,right:10});this.enableDragging();}},disableDragging:function(){if(this.draggable!=null){this.draggable.destroy();this.draggable=null;}},enableDragging:function(){if(this.draggable==null){this.draggable=new Draggable('ontomenuanchor',{handle:'tab_0',starteffect:function(){stb_control.setDragging(true);},endeffect:function(){setTimeout(stb_control.setDragging.bind(stb_control,false),200);}});var DragObserver=Class.create();DragObserver.prototype={initialize:function(){this.element=null;},onEnd:function(){smwhg_dragresizetoolbar.storePosition();}};var dragObserver=new DragObserver();Draggables.addObserver(dragObserver);}},fixAnchorSize:function(){if($('semtoolbar')){var height=$('semtoolbar').scrollHeight+$('tabcontainer').scrollHeight+$('activetabcontainer').scrollHeight;height=height+'px';var obj=new Object();obj.height=height;$('ontomenuanchor').setStyle(obj);}},storePosition:function(){var pos=this.getPosition();this.posX=pos[0];this.posY=pos[1];},restorePosition:function(){if(!isNaN(this.posX)&& !isNaN(this.posY)){this.fixAnchorSize();this.setPosition(this.posX,this.posY);}},getPosition:function(){return new Array($('ontomenuanchor').offsetLeft,$('ontomenuanchor').offsetTop);},setPosition:function(posX,posY){var toolbarWidth=$('ontomenuanchor').scrollWidth;if(window.innerWidth-posX<toolbarWidth){if(posX<toolbarWidth){$('ontomenuanchor').setStyle({right:''});$('ontomenuanchor').setStyle({left:'10px'});}else{var pos=window.innerWidth-posX;$('ontomenuanchor').setStyle({right:pos+'px'});$('ontomenuanchor').setStyle({left:''});}}else{var pos=posX;$('ontomenuanchor').setStyle({right:''});$('ontomenuanchor').setStyle({left:pos+'px'});}var toolbarHeight=$('ontomenuanchor').scrollHeight;if(window.innerHeight-posY<toolbarHeight){if(posY<toolbarHeight){$('ontomenuanchor').setStyle({bottom:''});$('ontomenuanchor').setStyle({top:'10px'});}else{var pos=window.innerHeight-posY;$('ontomenuanchor').setStyle({bottom:pos+'px'});$('ontomenuanchor').setStyle({top:''});}}else{var pos=posY;$('ontomenuanchor').setStyle({bottom:''});$('ontomenuanchor').setStyle({top:pos+'px'});}}};var Resizeable=Class.create();Resizeable.prototype={initialize:function(element){var options=Object.extend({top:6,bottom:6,left:6,right:6,minHeight:0,minWidth:0,zindex:1000,resize:null},arguments[1]||{});this.element=$(element);this.handle=this.element;if(this.element){Element.makePositioned(this.element);}this.options=options;this.active=false;this.resizing=false;this.currentDirection='';this.eventMouseDown=this.startResize.bindAsEventListener(this);this.eventMouseUp=this.endResize.bindAsEventListener(this);this.eventMouseMove=this.update.bindAsEventListener(this);this.eventCursorCheck=this.cursor.bindAsEventListener(this);this.eventKeypress=this.keyPress.bindAsEventListener(this);this.registerEvents();},destroy:function(){Event.stopObserving(this.handle,"mousedown",this.eventMouseDown);this.unregisterEvents();},registerEvents:function(){Event.observe(document,"mouseup",this.eventMouseUp);Event.observe(document,"mousemove",this.eventMouseMove);Event.observe(document,"keypress",this.eventKeypress);Event.observe(this.handle,"mousedown",this.eventMouseDown);Event.observe(this.element,"mousemove",this.eventCursorCheck);},unregisterEvents:function(){},startResize:function(event){if(Event.isLeftClick(event)){var src=Event.element(event);if(src.tagName&&(src.tagName=='INPUT'||src.tagName=='SELECT'||src.tagName=='BUTTON'||src.tagName=='TEXTAREA'))return;var dir=this.directions(event);if(dir.length>0){this.active=true;var offsets=Position.cumulativeOffset(this.element);this.startTop=offsets[1];this.startLeft=offsets[0];this.startWidth=parseInt(Element.getStyle(this.element,'width'));this.startHeight=parseInt(Element.getStyle(this.element,'height'));this.startX=event.clientX+document.body.scrollLeft+document.documentElement.scrollLeft;this.startY=event.clientY+document.body.scrollTop+document.documentElement.scrollTop;this.currentDirection=dir;Event.stop(event);$('ontomenuanchor').setStyle({left:$('ontomenuanchor').offsetLeft+'px'});smwhg_dragresizetoolbar.disableDragging();}}},finishResize:function(event,success){this.active=false;this.resizing=false;if(this.options.zindex)this.element.style.zIndex=this.originalZ;if(this.options.resize){this.options.resize(this.element);}},keyPress:function(event){if(this.active){if(event.keyCode==Event.KEY_ESC){this.finishResize(event,false);Event.stop(event);}}},endResize:function(event){if(this.active&&this.resizing){this.finishResize(event,true);Event.stop(event);}this.active=false;this.resizing=false;smwhg_dragresizetoolbar.enableDragging();smwhg_dragresizetoolbar.fixAnchorSize();},draw:function(event){var pointer=[Event.pointerX(event),Event.pointerY(event)];var style=this.element.style;if(this.currentDirection.indexOf('n')!= -1){var pointerMoved=this.startY-pointer[1];var margin=Element.getStyle(this.element,'margin-top')||"0";var newHeight=this.startHeight+pointerMoved;if(newHeight>this.options.minHeight){style.height=newHeight+"px";style.top=(this.startTop-pointerMoved-parseInt(margin))+"px";}}if(this.currentDirection.indexOf('w')!= -1){var pointerMoved=this.startX-pointer[0];var margin=Element.getStyle(this.element,'margin-left')||"0";var newWidth=this.startWidth+pointerMoved;if(newWidth>this.options.minWidth){style.left=(this.startLeft-pointerMoved-parseInt(margin))+"px";style.width=newWidth+"px";}}if(this.currentDirection.indexOf('s')!= -1){var newHeight=this.startHeight+pointer[1]-this.startY;if(newHeight>this.options.minHeight){style.height=newHeight+"px";}}if(this.currentDirection.indexOf('e')!= -1){var newWidth=this.startWidth+pointer[0]-this.startX;if(newWidth>this.options.minWidth){style.width=newWidth+"px";}}if(style.visibility=="hidden")style.visibility="";},between:function(val,low,high){return(val>=low&&val<high);},directions:function(event){var pointer=[Event.pointerX(event),Event.pointerY(event)];var offsets=Position.cumulativeOffset(this.element);var cursor='';if(this.between(pointer[1]-offsets[1],0,this.options.top))cursor+='n';if(this.between((offsets[1]+this.element.offsetHeight)-pointer[1],0,this.options.bottom))cursor+='s';if(this.between(pointer[0]-offsets[0],0,this.options.left))cursor+='w';if(this.between((offsets[0]+this.element.offsetWidth)-pointer[0],0,this.options.right))cursor+='e';return cursor;},cursor:function(event){var cursor=this.directions(event);if(cursor.length>0){cursor+='-resize';}else{cursor='';}this.element.style.cursor=cursor;},update:function(event){if(this.active){if(!this.resizing){var style=this.element.style;this.resizing=true;if(Element.getStyle(this.element,'position')=='')style.position="relative";if(this.options.zindex){this.originalZ=parseInt(Element.getStyle(this.element,'z-index')||0);style.zIndex=this.options.zindex;}}this.draw(event);if(navigator.appVersion.indexOf('AppleWebKit')>0)window.scrollBy(0,0);Event.stop(event);return false;}}};smwhg_dragresizetoolbar=new DragResizeHandler();Event.observe(window,'load',smwhg_dragresizetoolbar.callme.bind(smwhg_dragresizetoolbar));

// SMW_ContextMenu.js
// under GPL-License; Copyright (c) 2007 Ontoprise GmbH
var ContextMenuFramework=Class.create();ContextMenuFramework.prototype={initialize:function(){if(!$("contextmenu")){var menu='<div id="contextmenu"></div>';new Insertion.After($('content'),menu);}},remove:function(){if($("contextmenu")){$("contextmenu").remove();}},setContent:function(htmlcontent,containertype,headline){var header;var content;var contentdiv;switch(containertype){case CATEGORYCONTAINER:if($('cmCategoryHeader')){$('cmCategoryHeader').remove();}if($('cmCategoryContent')){$('cmCategoryContent').remove();}header='<div id="cmCategoryHeader">'+headline+'</div>';content='<div id="cmCategoryContent"></div>';contentdiv='cmCategoryContent';break;case RELATIONCONTAINER:if($('cmPropertyHeader')){$('cmPropertyHeader').remove();}if($('cmPropertyContent')){$('cmPropertyContent').remove();}header='<div id="cmPropertyHeader">'+headline+'</div>';content='<div id="cmPropertyContent"></div>';contentdiv='cmPropertyContent';break;case 'ANNOTATIONHINT':if($('cmAnnotationHintHeader')){$('cmAnnotationHintHeader').remove();}if($('cmAnnotationHintContent')){$('cmAnnotationHintContent').remove();}header='<div id="cmAnnotationHintHeader">'+headline+'</div>';content='<div id="cmAnnotationHintContent"></div>';contentdiv='cmAnnotationHintContent';break;default:if($('cmDefaultHeader')){$('cmDefaultHeader').remove();}if($('cmDefaultContent')){$('cmDefaultContent').remove();}header='<div id="cmDefaultHeader">'+headline+'</div>';content='<div id="cmDefaultContent"></div>';contentdiv='cmDefaultContent'}new Insertion.Bottom('contextmenu',header);new Insertion.Bottom('contextmenu',content);new Insertion.Bottom(contentdiv,htmlcontent);if($('cmCategoryHeader')){Event.observe('cmCategoryHeader','click',function(event){$('cmCategoryContent').show();$('cmPropertyContent').hide();});}if($('cmPropertyHeader')){Event.observe('cmPropertyHeader','click',function(event){$('cmCategoryContent').hide();$('cmPropertyContent').show();});}},contentChanged:function(){},setPosition:function(posX,posY){element=$('contextmenu');var toolbarWidth=element.scrollWidth;if(window.innerWidth-posX<toolbarWidth){if(posX<toolbarWidth){element.setStyle({right:''});element.setStyle({left:'10px'});}else{var pos=window.innerWidth-posX;element.setStyle({right:pos+'px'});element.setStyle({left:''});}}else{var pos=posX;element.setStyle({right:''});element.setStyle({left:pos+'px'});}var toolbarHeight=element.scrollHeight;if(window.innerHeight-posY<toolbarHeight){if(posY<toolbarHeight){element.setStyle({bottom:''});element.setStyle({top:'10px'});}else{var pos=window.innerHeight-posY;element.setStyle({bottom:pos+'px'});element.setStyle({top:''});}}else{var pos=posY;element.setStyle({bottom:''});element.setStyle({top:pos+'px'});}},showMenu:function(){$('contextmenu').show();if($('cmCategoryContent')){$('cmCategoryContent').hide();}},hideMenu:function(){$('contextmenu').hide();}};

// SMW_FactboxType.js
// under GPL-License; Copyright (c) 2007 Ontoprise GmbH
function factboxTypeChanged(select,title){$('typeloader').show();var type=select.options[select.options.selectedIndex].value;sajax_do_call('smwgNewAttributeWithType',[title,type],refreshAfterTypeChange);};function refreshAfterTypeChange(request){window.location.href=location.href;}

// CombinedSearch.js
// under GPL-License; Copyright (c) 2007 Ontoprise GmbH
var CombinedSearchContributor=Class.create();CombinedSearchContributor.prototype={initialize:function(){this.queryPlaceholder=document.createElement("div");this.queryPlaceholder.setAttribute("id","queryPlaceholder");this.queryPlaceholder.innerHTML=gLanguage.getMessage('ADD_COMB_SEARCH_RES');this.pendingElement=null;this.tripleSearchPendingElement=null;},registerContributor:function(){if(!stb_control.isToolbarAvailable())return;if(wgCanonicalSpecialPageName!='Search'||wgCanonicalNamespace!='Special'){return;}this.comsrchontainer=stb_control.createDivContainer(COMBINEDSEARCHCONTAINER,0);this.comsrchontainer.setHeadline(gLanguage.getMessage('COMBINED_SEARCH'));this.comsrchontainer.setContent('<div id="csFoundEntities"></div>');this.comsrchontainer.contentChanged();var searchTerm=GeneralBrowserTools.getURLParameter("search");if($('stb_cont8-headline')==null)return;$("bodyContent").insertBefore(this.queryPlaceholder,$("bodyContent").firstChild);this.pendingElement=new OBPendingIndicator($('stb_cont8-headline'));this.tripleSearchPendingElement=new OBPendingIndicator($('queryPlaceholder'));if(searchTerm!=undefined&&searchTerm.strip()!=''){this.pendingElement.show();sajax_do_call('smwfCSDispatcher',[searchTerm],this.smwfCombinedSearchCallback.bind(this,"csFoundEntities"));this.tripleSearchPendingElement.show();sajax_do_call('smwfCSSearchForTriples',[searchTerm],this.smwfTripleSearchCallback.bind(this,"queryPlaceholder"));}},smwfTripleSearchCallback:function(containerID,request){this.tripleSearchPendingElement.hide();$(containerID).innerHTML=request.responseText;},smwfCombinedSearchCallback:function(containerID,request){this.pendingElement.hide();$(containerID).innerHTML=request.responseText;this.comsrchontainer.contentChanged();},searchForAttributeValues:function(parts){this.pendingElement.show($('cbsrch'));sajax_do_call('smwfCSAskForAttributeValues',[parts],this.smwfCombinedSearchCallback.bind(this,"queryPlaceholder"));},navigateToOB:function(pageName,pageNS,ontoBrowserPath){queryStr="?entitytitle="+pageName+(pageNS!=""?"&ns="+pageNS:"");var path=wgArticlePath.replace(/\$1/,ontoBrowserPath);smwhgLogger.log(pageName,"CS","entity_opened_in_ob");window.open(wgServer+path+queryStr,"");},navigateToEntity:function(pageName,pageNS){var path=wgArticlePath.replace(/\$1/,pageNS+":"+pageName);smwhgLogger.log(pageName,"CS","entity_opened");window.open(wgServer+path,"");},navigateToEdit:function(pageName,pageNS){queryStr="?action=edit";var path=wgArticlePath.replace(/\$1/,pageNS+":"+pageName);smwhgLogger.log(pageName,"CS","entity_opened_to_edit");window.open(wgServer+path+queryStr,"");}};var csContributor=new CombinedSearchContributor();Event.observe(window,'load',csContributor.registerContributor.bind(csContributor)); 

// SMWEditInterface.js
// under GPL-License; Copyright (c) 2007 Ontoprise GmbH
var editAreaName="wpTextbox1";if((wgAction=="edit")&&skin=="ontoskin"){if(getEditorCookie()=="on")editAreaLoader.init({id:"wpTextbox1",syntax:"wiki",start_highlight:true,plugins:"SMW",allow_resize:"no",toolbar:"bold, italic, intlink, extlink, heading, img, media, formula, nowiki, signature, line, |, undo, redo, |, change_smooth_selection, highlight, reset_highlight, |, help",replace_tab_by_spaces:"0",EA_toggle_on_callback:"toggleEAOn",EA_toggle_off_callback:"toggleEAOff"});else editAreaLoader.init({id:"wpTextbox1",syntax:"wiki",start_highlight:true,plugins:"SMW",allow_resize:"no",toolbar:"bold, italic, intlink, extlink, heading, img, media, formula, nowiki, signature, line, |, undo, redo, |, change_smooth_selection, highlight, reset_highlight, |, help",replace_tab_by_spaces:"0",EA_toggle_on_callback:"toggleEAOn",EA_toggle_off_callback:"toggleEAOff",display:"later"});}function trim(string){return string.replace(/(^\s+|\s+$)/g,"");};function changeEdit(){$("wpTextbox1").value=editAreaLoader.getValue(editAreaName);};function toggleEAOn(id){document.getElementById("toolbar").style.display="none";addSpacesForDisplay();};function toggleEAOff(id){document.getElementById("toolbar").style.display="";};function addSpacesForDisplay(){if(navigator.appName=="Microsoft Internet Explorer"&&editAreaLoader.getValue(editAreaName)!=""){var lines=editAreaLoader.getValue(editAreaName).split("\n");var max=0;var theLine=0;var text="";for(var i=0;i<lines.length;i++){if(lines[i].length>max){max=lines[i].length;theLine=i;}}for(var i=0;i<lines.length;i++){if(i==theLine){lines[i]=lines[i].substring(0,lines[i].length-2);text=text+lines[i]+"         "+"\n";}else{text=text+lines[i];}}editAreaLoader.setValue(editAreaName,text)}};function getEditorCookie(){var cookie=document.cookie;var length=cookie.length-1;if(cookie.charAt(length)!=";")cookie+=";";var a=cookie.split(";");for(var i=0;i<a.length;i++){var cookiename=trim(a[i].substring(0,a[i].search('=')));var cookievalue=a[i].substring(a[i].search('=')+1,a[i].length);if(cookiename=="smwUseAdvancedEditor"){return cookievalue;}}return "on";};var SMWEditInterface=Class.create();SMWEditInterface.prototype={initialize:function(){this.editAreaName="wpTextbox1";this.currentRange=null;},focus:function(){if($(editAreaName)&&$(editAreaName).getStyle('display')!='none'){$(editAreaName).focus();}else if(OB_bd.isGecko){editAreaLoader.execCommand(this.editAreaName,"focus();");}},setSelectionRange:function(start,end){if($(editAreaName)&&$(editAreaName).getStyle('display')!='none'){SMWEditArea=$(editAreaName);if(document.selection&& !is_gecko){var rng=SMWEditArea.createTextRange();var text=rng.text;var offset=0;for(var i=0;i<start;i++){if(text.charAt(i)=='\n'){offset++;}}rng.collapse();rng.moveStart('character',start-offset);rng.moveEnd('character',end-start);rng.select();rng.scrollIntoView();}else{SMWEditArea.selectionStart=start;SMWEditArea.selectionEnd=end;SMWEditArea.caretPos=start;}}else{editAreaLoader.setSelectionRange(editAreaName,start,end);}},selectCompleteAnnotation:function(){if($(editAreaName)&&$(editAreaName).getStyle('display')!='none'){SMWEditArea=$(editAreaName);var found=false;if(document.selection&& !is_gecko){var rng=document.selection.createRange();var moved=1;rng.moveStart('character',-1);while(rng.text.charAt(0)==' '&&rng.moveStart('character',-1)!=0){moved++;}while(rng.text.charAt(0)=='['&&rng.moveStart('character',-1)!=0){moved++;found=true;}if(found){rng.moveStart('character',1);}else{rng.moveStart('character',moved);while(rng.text.charAt(0)==' '&&rng.moveStart('character',1)!=0){}}found=false;moved=1;rng.moveEnd('character',1);while(rng.text.charAt(rng.text.length-1)==' '&&rng.moveEnd('character',1)!=0){moved++;}while(rng.text.charAt(rng.text.length-1)==']'&&rng.moveEnd('character',1)!=0){moved++;found=true;}if(found){rng.moveEnd('character',-1);}else{rng.moveEnd('character',-moved);while(rng.text.charAt(rng.text.length-1)==' '&&rng.moveEnd('character',-1)!=0){}}this.currentRange=rng.duplicate();rng.select();}else{var start=SMWEditArea.selectionStart-1;while(start>=0&&SMWEditArea.value.charAt(start)==' '){--start;}while(start>=0&&SMWEditArea.value.charAt(start)=='['){--start;found=true;}start++;if(!found){start=SMWEditArea.selectionStart;while(start<SMWEditArea.value.length&&SMWEditArea.value.charAt(start)==' '){++start;}}found=false;var end=SMWEditArea.selectionEnd;while(end<SMWEditArea.value.length&&SMWEditArea.value.charAt(end)==' '){++end;}while(end<SMWEditArea.value.length&&SMWEditArea.value.charAt(end)==']'){++end;found=true;}if(!found){end=SMWEditArea.selectionEnd-1;while(end>=0&&SMWEditArea.value.charAt(end)==' '){--end;}++end;}setSelectionRange(SMWEditArea,start,end);}}else{editAreaLoader.selectCompleteAnnotation(editAreaName);}},getSelectedText:function(){if($(editAreaName)&&$(editAreaName).getStyle('display')!='none'){SMWEditArea=$(editAreaName);if(document.selection&& !is_gecko){var range=document.selection.createRange();var theSelection=range.text;if(theSelection!=""){this.currentRange=range;}return theSelection;}else if(SMWEditArea.selectionStart||SMWEditArea.selectionStart=='0'){var startPos=SMWEditArea.selectionStart;var endPos=SMWEditArea.selectionEnd;if(endPos!=startPos){return(SMWEditArea.value).substring(startPos,endPos);}return "";}}else{if(editAreaLoader.getSelectedText(editAreaName)!=""){this.currentRange=editAreaLoader.getSelectionRange(editAreaName);}return editAreaLoader.getSelectedText(editAreaName);}},setSelectedText:function(text){if($(editAreaName)&&$(editAreaName).getStyle('display')!='none'){SMWEditArea=$(editAreaName);if(document.selection&& !is_gecko){var theSelection=document.selection.createRange().text;if(theSelection==""&&this.currentRange){this.currentRange.select();}theSelection=document.selection.createRange().text;theSelection=text;SMWEditArea.focus();if(theSelection.charAt(theSelection.length-1)==" "){theSelection=theSelection.substring(0,theSelection.length-1);document.selection.createRange().text=theSelection+" ";}else{document.selection.createRange().text=theSelection;}}else if(SMWEditArea.selectionStart||SMWEditArea.selectionStart=='0'){var replaced=false;var startPos=SMWEditArea.selectionStart;var endPos=SMWEditArea.selectionEnd;if(endPos-startPos){replaced=true;}var scrollTop=SMWEditArea.scrollTop;var theSelection=(SMWEditArea.value).substring(startPos,endPos);var myText=text;var subst;if(myText.charAt(myText.length-1)==" "){subst=myText.substring(0,(myText.length-1))+" ";}else{subst=myText;}SMWEditArea.value=SMWEditArea.value.substring(0,startPos)+subst+SMWEditArea.value.substring(endPos,SMWEditArea.value.length);SMWEditArea.focus();SMWEditArea.selectionStart=startPos;SMWEditArea.selectionEnd=startPos+myText.length;SMWEditArea.scrollTop=scrollTop;}if(SMWEditArea.createTextRange){SMWEditArea.caretPos=document.selection.createRange().duplicate();}}else{if(editAreaLoader.getSelectedText(editAreaName)==""&&this.currentRange){editAreaLoader.setSelectionRange(editAreaName,this.currentRange["start"],this.currentRange["end"]);}editAreaLoader.setSelectedText(editAreaName,text);}},getValue:function(){if($(editAreaName)&&$(editAreaName).getStyle('display')!='none')return $(editAreaName).value;else return editAreaLoader.getValue(editAreaName);},setValue:function(text){if($(editAreaName)&&$(editAreaName).getStyle('display')!='none')$(editAreaName).value=text;else editAreaLoader.setValue(editAreaName,text);},getTextBeforeCursor:function(){if($(editAreaName)&&$(editAreaName).getStyle('display')!='none'){if(OB_bd.isIE){var selection_range=document.selection.createRange();var selection_rangeWhole=document.selection.createRange();selection_rangeWhole.moveToElementText(this.siw.inputBox);selection_range.setEndPoint("StartToStart",selection_rangeWhole);return selection_range.text;}else if(OB_bd.isGecko){var start=this.siw.inputBox.selectionStart;return this.siw.inputBox.value.substring(0,start);}}else{return editAreaLoader.getValue(editAreaName).substring(0,editAreaLoader.getSelectionRange(editAreaName)["start"]);}return "";}};

// obSemToolContribution.js
// under GPL-License; Copyright (c) 2007 Ontoprise GmbH
var OBSemanticToolbarContributor=Class.create();OBSemanticToolbarContributor.prototype={initialize:function(){this.textArea=null;this.l1=this.selectionListener.bindAsEventListener(this);this.l2=this.selectionListener.bindAsEventListener(this);this.l3=this.selectionListener.bindAsEventListener(this);this.editInterface=null;if(!document.gEditInterface)gEditInterface=new SMWEditInterface();},registerContributor:function(){if(!stb_control.isToolbarAvailable()||wgAction!='edit')return;this.comsrchontainer=stb_control.createDivContainer(CBSRCHCONTAINER,0);this.comsrchontainer.setHeadline(gLanguage.getMessage('ONTOLOGY_BROWSER'));this.comsrchontainer.setContent(this.getOBLink(false));this.comsrchontainer.contentChanged();this.activateTextArea("wpTextbox1");},activateTextArea:function(id){if(this.textArea){Event.stopObserving(this.textArea,'select',this.l1);Event.stopObserving(this.textArea,'mouseup',this.l2);Event.stopObserving(this.textArea,'keyup',this.l3);}this.textArea=$(id);if(this.textArea){Event.observe(this.textArea,'select',this.l1);Event.observe(this.textArea,'mouseup',this.l2);Event.observe(this.textArea,'keyup',this.l3);this.comsrchontainer.setContent(this.getOBLink(false));this.comsrchontainer.contentChanged();}},selectionListener:function(event){if($("openEntityInOB")==null)return;if(gEditInterface.getSelectedText().length==0){this.comsrchontainer.setContent(this.getOBLink(false));this.comsrchontainer.contentChanged();gEditInterface.focus();}else{this.comsrchontainer.setContent(this.getOBLink(true));this.comsrchontainer.contentChanged();gEditInterface.focus();}},navigateToOB:function(path){var selectedText=gEditInterface.getSelectedText();if(selectedText==''){return;}var localURL=selectedText.split(":");if(localURL.length==1){var queryString='searchTerm='+encodeURI(localURL[0]);}else{var queryString='ns='+localURL[0]+'&title='+encodeURI(localURL[1]);}smwhgLogger.log(selectedText,"STB-OB","clicked");var ontoBrowserSpecialPage=wgArticlePath.replace(/\$1/,path+'?'+queryString);window.open(wgServer+ontoBrowserSpecialPage,"");},getOBLink:function(active){if(active){return '<a '+'id="openEntityInOB" class="menulink"'+'href="javascript:obContributor.navigateToOB(\''+gLanguage.getMessage('NS_SPECIAL')+":"+gLanguage.getMessage('OB_ID')+'\')">'+gLanguage.getMessage('OPEN_IN_OB')+'</a>';}else{return '<span '+'id="openEntityInOB">'+gLanguage.getMessage('MARK_A_WORD')+'</span>';}}};var obContributor=new OBSemanticToolbarContributor();Event.observe(window,'load',obContributor.registerContributor.bind(obContributor)); 

// SMW_AdvancedAnnotation.js
// under GPL-License; Copyright (c) 2007 Ontoprise GmbH
var AA_RELATION=0;var AA_CATEGORY=1;var AdvancedAnnotation=Class.create();AdvancedAnnotation.prototype={initialize:function(){this.resetSelection();this.wikiTextParser=null;this.om=new OntologyModifier();this.om.addEditArticleHook(this.annotationsSaved.bind(this));this.loadWikiText();this.annoCount=10000;this.annotationsChanged=false;this.contextMenu=null;this.om.touchArticle(wgPageName);},onMouseUp:function(event){smwhgAnnotationHints.hideHints();this.hideToolbar();var target=event.target;while(target){if(target.id&&target.id=='bodyContent'){break;}target=$(target).up('div');}if(!target){return;}var annoSelection=this.getSel();var sel=annoSelection.toString();if(annoSelection.anchorNode==null||sel==''){annoSelection=null;}var sameSelection=(this.selection!=null&&sel==this.selection.toString());this.selection=annoSelection;var cba=this.canBeAnnotated(annoSelection);if(annoSelection&& !sameSelection&&sel!=''&& !cba){smwhgAnnotationHints.showMessageAndWikiText(gLanguage.getMessage('CAN_NOT_ANNOTATE_SELECTION'),"",event.clientX,event.clientY);}if(cba&&annoSelection!=''&& !sameSelection){var leftToRight=true;if(annoSelection.anchorNode!=annoSelection.focusNode){var node=this.searchBackwards(annoSelection.anchorNode,function(node,param){if(node==param){return node;}},annoSelection.focusNode);if(node!=null){leftToRight=false;}}else if(annoSelection.anchorOffset>annoSelection.focusOffset){leftToRight=false;}this.selectedText=sel;var trimmed=this.selectedText.replace(/^\s*(.*?)\s*$/,'$1');var off1=this.selectedText.indexOf(trimmed);var off2=this.selectedText.length-trimmed.length-off1;this.selectedText=trimmed;this.annotatedNode=(leftToRight)?annoSelection.anchorNode:annoSelection.focusNode;this.annoOffset=(leftToRight)?annoSelection.anchorOffset:annoSelection.focusOffset;this.focusNode=(leftToRight)?annoSelection.focusNode:annoSelection.anchorNode;this.focusOffset=(leftToRight)?annoSelection.focusOffset:annoSelection.anchorOffset;this.annoOffset+=off1;this.focusOffset-=off2;this.selectionContext=this.getSelectionContext();this.performAnnotation(event);}},onKeyUp:function(event){var key=event.which||event.keyCode;if(key==Event.KEY_ESC){this.hideToolbar();}},canBeAnnotated:function(selection){if(!selection){return false;}var anchorNode=selection.anchorNode;var focusNode=selection.focusNode;var an=anchorNode;if(!an){return false;}if(!$(an).up){an=an.parentNode;}if($(an).getAttribute('type')==="annotationHighlight"||$(an).getAttribute('class')==="aam_page_link_highlight"){return false;}else{var annoHighlight=$(an).up('span[type="annotationHighlight"]');if(annoHighlight){return false;}var pageLinkHighlight=$(an).up('span[class="aam_page_link_highlight"]');if(pageLinkHighlight){return false;}}var fn=focusNode;if(!$(fn).up){fn=fn.parentNode;}if($(fn).getAttribute('type')==="annotationHighlight"||$(fn).getAttribute('class')==="aam_page_link_highlight"){return false;}else{var annoHighlight=$(fn).up('span[type="annotationHighlight"]');if(annoHighlight){return false;}var pageLinkHighlight=$(fn).up('span[class="aam_page_link_highlight"]');if(pageLinkHighlight){return false;}}if(anchorNode!==focusNode){var next=this.searchForward(anchorNode,this.searchSelectionEnd.bind(this));var prev=this.searchBackwards(anchorNode,this.searchSelectionEnd.bind(this));if(next!==focusNode&&prev!==focusNode){return false;}if($(an).nodeName!=='P'){an=an.up('p');}if($(fn).nodeName!=='P'){fn=fn.up('p');}if(an!==fn){return false;}}return true;},performAnnotation:function(event){var anchor=null;var firstAnchor=null;var secondAnchor=null;firstAnchor=this.searchBackwards(this.annotatedNode,this.searchWtoAnchor.bind(this));secondAnchor=this.searchForward(this.focusNode,this.searchWtoAnchor.bind(this));if(firstAnchor){var start=firstAnchor.getAttribute('name')*1;var end=(secondAnchor!=null)?secondAnchor.getAttribute('name')*1: -1;var invalid=this.searchInvalidNode(firstAnchor);if(!invalid&&this.annotatedNode!=this.focusNode){invalid=this.searchForward(firstAnchor,this.searchInvalidNode.bind(this),secondAnchor);}if(invalid&&invalid!==true){var obj=invalid.getAttribute('obj');var msgId="This selection can not be annotated.";switch(obj){case 'nowiki':msgId='WTP_NOT_IN_NOWIKI';break;case 'template':msgId='WTP_NOT_IN_TEMPLATE';break;case 'annotation':msgId='WTP_NOT_IN_ANNOTATION';break;case 'ask':msgId='WTP_NOT_IN_QUERY';break;case 'pre':msgId='WTP_NOT_IN_PREFORMATTED';break;}msg=gLanguage.getMessage(msgId);msg=msg.replace(/\$1/g,this.selectedText);smwhgAnnotationHints.showMessageAndWikiText("(e)"+msg,this.wikiTextParser.text.substring(start,end),event.clientX,event.clientY);this.toolbarEnableAnnotation(false);return;}var res=this.wikiTextParser.findText(this.selectedText,start,end,this.selectionContext);if(res!=true){this.toolbarEnableAnnotation(true);smwhgAnnotationHints.showMessageAndWikiText("(e)"+res,this.wikiTextParser.text.substring(start,end),event.clientX,event.clientY);}else{this.toolbarEnableAnnotation(false);this.annotateWithToolbar(event);}}else{this.toolbarEnableAnnotation(false);smwhgAnnotationHints.showMessageAndWikiText("(e)No wiki text found for selection:","<b>"+this.selectedText+"</b>",event.clientX,event.clientY);}},toolbarEnableAnnotation:function(enable){catToolBar.enableAnnotation(enable);},annotateWithToolbar:function(event){if(!this.contextMenu){this.contextMenu=new ContextMenuFramework();}relToolBar.createContextMenu(this.contextMenu);catToolBar.createContextMenu(this.contextMenu);this.contextMenu.setPosition(event.clientX,event.clientY);this.contextMenu.showMenu();},hideToolbar:function(){if(this.contextMenu){this.contextMenu.remove();this.contextMenu=null;}this.toolbarEnableAnnotation(true);this.annotatedNode=null;this.wikiTextParser.setSelection(-1,-1);},searchWtoAnchor:function(node,parameters){if(node.tagName=='A'&&node.type=="wikiTextOffset"&&node.getAttribute('annoType')!='category'){return node;}},searchSelectionEnd:function(node,parameters){if(node.tagName=='P'){return true;}if(node===this.selection.focusNode){return node;}else if(node.getAttribute&&node.getAttribute('type')==='annotationHighlight'){return node;}},searchTextNode:function(node,parameters){if(node.nodeName=='#text'){if(parameters){var content=getTextContent(node);if(content.indexOf(parameters)>=0){return node;}else{return;}}return node;}},searchInvalidNode:function(node,secondAnchor){if(node===secondAnchor){return true;}if(node.tagName=='A'&&node.type=="wikiTextOffset"){var obj=node.getAttribute('obj');if(obj==='pre'||obj==='ask'||obj==='nowiki'||obj==='template'){return node;}}},searchBackwards:function(startNode,cbFnc,parameters,diveDeeper){var node=startNode;if(!diveDeeper){while(node){if(node.previousSibling){node=node.previousSibling;break;}node=node.parentNode;}}while(node){if(node.lastChild){var result=this.searchBackwards(node.lastChild,cbFnc,parameters,true);if(result){return result;}}var result=cbFnc(node,parameters);if(result){return result;}if(node.previousSibling){node=node.previousSibling;}else{break;}}if(!diveDeeper&&node){node=node.parentNode;if(node){var result=this.searchBackwards(node,cbFnc,parameters);if(result){return result;}}}return null;},searchForward:function(startNode,cbFnc,parameters,diveDeeper){var node=startNode;if(!diveDeeper){while(node){if(node.nextSibling){node=node.nextSibling;break;}node=node.parentNode;}}while(node){if(node.firstChild){var result=this.searchForward(node.firstChild,cbFnc,parameters,true);if(result){return result;}}var result=cbFnc(node,parameters);if(result){return result;}if(node.nextSibling){node=node.nextSibling;}else{break;}}if(!diveDeeper&&node){node=node.parentNode;if(node){var result=this.searchForward(node,cbFnc,parameters);if(result){return result;}}}return null;},getSel:function(){var txt='';if(window.getSelection){txt=window.getSelection();}else if(document.getSelection){txt=document.getSelection();}else if(document.selection){var selection=document.selection.createRange();if(selection.text==''){return{anchorNode:null,focusNode:null,anchorOffset:0,focusOffset:0,text:"",toString:function(){return this.text;}};}var selectedText=selection.text;var start=selection.duplicate();var end=selection.duplicate();start.collapse(true);end.collapse(false);start.pasteHTML('<a name="ieselectionstart" />');end.pasteHTML('<a name="ieselectionend" />');var startNode=start.parentElement();var tmpNode=startNode.down('a[name=ieselectionstart]');startNode=tmpNode.nextSibling;var anchorOffset=0;$(tmpNode).remove();var prev=startNode.previousSibling?startNode.previousSibling:null;if(prev){if(prev.nodeName=='#text'){var t=getTextContent(prev);anchorOffset=t.length;setTextContent(startNode,t+getTextContent(startNode));prev.parentNode.removeChild(prev);}}var endNode=end.parentElement();tmpNode=endNode.down('a[name=ieselectionend]');endNode=tmpNode.previousSibling;var focusOffset=getTextContent(endNode).length;$(tmpNode).remove();var next=endNode.nextSibling?endNode.nextSibling:null;if(next){if(next.nodeName=='#text'){var t=getTextContent(next);setTextContent(endNode,getTextContent(endNode)+t);next.parentNode.removeChild(next);}}txt={anchorNode:startNode,focusNode:endNode,anchorOffset:anchorOffset,focusOffset:focusOffset,text:selectedText,toString:function(){return this.text;}};}return txt;},getSelectionContext:function(){var result=new Array("","","","");var numWords=2;var preContext=getTextContent(this.annotatedNode);preContext=preContext.substring(0,this.annoOffset);preContext=this.getWords(preContext,numWords,false);result[1]=preContext;var postContext=getTextContent(this.focusNode);postContext=postContext.substring(this.focusOffset);postContext=this.getWords(postContext,numWords,true);result[2]=postContext;if(preContext==''){var prevNode=this.searchBackwards(this.annotatedNode,this.searchTextNode.bind(this));if(prevNode){preContext=getTextContent(prevNode);preContext=this.getWords(preContext,numWords,false);result[0]=preContext;}}if(postContext==''){var postNode=this.searchForward(this.annotatedNode,this.searchTextNode.bind(this));if(postNode){postContext=getTextContent(postNode);postContext=this.getWords(postContext,numWords,true);result[3]=postContext;}}return result;},getWords:function(str,numWords,atBeginning){if(numWords<=0||str==''){return "";}var words=0;var len=str.length-1;var start=(atBeginning)?0:len;var end=(atBeginning)?len:0;var inc=(atBeginning)?1: -1;for(var i=start;i!=end;i+=inc){var c=str.charAt(i);if(c==' '||c=="\t"){words++;if(words==numWords){break;}}}return(atBeginning)?str.substring(0,i):str.substr(i);},loadWikiText:function(){function ajaxResponseLoadWikiText(request){if(request.status==200){this.wikiTextParser=new WikiTextParser(request.responseText);this.wikiTextParser.addTextChangedHook(this.updateAnchors.bind(this));this.wikiTextParser.addCategoryAddedHook(this.categoryAdded.bind(this));this.wikiTextParser.addRelationAddedHook(this.relationAdded.bind(this));this.wikiTextParser.addAnnotationRemovedHook(this.annotationRemoved.bind(this));catToolBar.setWikiTextParser(this.wikiTextParser);relToolBar.setWikiTextParser(this.wikiTextParser);catToolBar.fillList(true);relToolBar.fillList(true);}else{this.wikiTextParser=null;}};sajax_do_call('smwfGetWikiText',[wgPageName],ajaxResponseLoadWikiText.bind(this));},categoryAdded:function(startPos,endPos,name){this.highlightSelection(AA_CATEGORY,'aam_new_category_highlight',startPos,endPos);catToolBar.fillList();smwhgSaveAnnotations.markDirty();this.annotationsChanged=true;if(this.contextMenu){this.hideToolbar();}},relationAdded:function(startPos,endPos,name){if(this.annotationProposal){this.markProposal(AA_RELATION,'aam_new_anno_prop_highlight');this.annotationProposal=null;}else{this.highlightSelection(AA_RELATION,'aam_new_anno_prop_highlight',startPos,endPos);}relToolBar.fillList();smwhgSaveAnnotations.markDirty();this.annotationsChanged=true;this.hideToolbar();},annotationRemoved:function(annotation){this.removeAnnotationHighlight(annotation);smwhgSaveAnnotations.markDirty();this.annotationsChanged=true;},resetSelection:function(){this.selection=null;this.annotatedNode=null;this.focusNode=null;this.annoOffset=0;this.focusOffset=0;},highlightSelection:function(type,cssClass,startPos,endPos){if(!this.annotatedNode||this.selectedText===""){return;}var imgPath=wgScriptPath+"/extensions/SMWHalo/skins/Annotation/images/";var annoDecoStart='<a href="javascript:AdvancedAnnotation.smwhfEditAnno('+this.annoCount+')">'+((type==AA_RELATION)?'<img src="'+imgPath+'edit.gif"/>':"")+'</a>'+'<span id="anno'+this.annoCount+'" class="'+cssClass+'" type="annotationHighlight">';var annoDecoEnd='</span>'+'<a href="javascript:AdvancedAnnotation.smwhfDeleteAnno('+this.annoCount+')">'+'<img src="'+imgPath+'delete.png"/></a>';if(this.selectedText.length<=20){annoDecoStart='<span id="anno'+this.annoCount+'w" style="white-space:nowrap">'+annoDecoStart;annoDecoEnd+='</span>';}else{annoDecoStart='<span id="anno'+this.annoCount+'w">'+annoDecoStart;annoDecoEnd+='</span>';}var annoType=(type==AA_RELATION)?'annoType="relation"':'annoType="category"';annoDecoStart='<a type="wikiTextOffset" name="'+startPos+'" '+annoType+'></a>'+annoDecoStart;annoDecoEnd+='<a type="wikiTextOffset" name="'+endPos+'" '+annoType+'></a>';var first=this.annotatedNode;var second=this.focusNode;var foff=this.annoOffset;var soff=this.focusOffset;var t=getTextContent(second);t=t.substring(0,soff)+'###end###'+t.substring(soff);setTextContent(second,t);t=getTextContent(first);t=t.substring(0,foff)+'###start###'+t.substring(foff);setTextContent(first,t);var p1=first.parentNode;var p2=second.parentNode;var html1=p1.innerHTML;html1=html1.replace(/###start###/,annoDecoStart);html1=html1.replace(/###end###/,annoDecoEnd);if(p1===p2){p1.innerHTML=html1;}else{var html2=p2.innerHTML;html2=html2.replace(/(<b><i>|<i><b>|<i>|<b>)###start###/,'###start###$1');html2=html2.replace(/###start###/,annoDecoStart);html2=html2.replace(/###end###/,annoDecoEnd);p1.innerHTML=html1;p2.innerHTML=html2;}this.resetSelection();var wrapperSpan=$("anno"+this.annoCount+"w");var proposals=wrapperSpan.descendants();for(var i=0;i<proposals.length;++i){var p=proposals[i];if(p.id.match(/anno\d*w/)){this.hideProposal(p);}}this.annoCount++;},markProposal:function(type,cssClass){if(!this.annotationProposal){return;}var text=getTextContent(this.annotationProposal);var wrapper=this.annotationProposal;wrapper.id='anno'+this.annoCount+'w';if(text.length<20){wrapper.setStyle("white-space:nowrap");}if(type==AA_RELATION){var imgPath=wgScriptPath+"/extensions/SMWHalo/skins/Annotation/images/";$(wrapper.down('a')).replace('<a href="javascript:AdvancedAnnotation.smwhfEditAnno('+this.annoCount+')">'+'<img src="'+imgPath+'edit.gif"/>'+'</a>')}else{$(wrapper.down('a')).remove();}var innerSpan=$(wrapper.down('span'));innerSpan.className=cssClass;innerSpan.id='anno'+this.annoCount;Insertion.Bottom(wrapper,'<a href="javascript:AdvancedAnnotation.smwhfDeleteAnno('+this.annoCount+')">'+'<img src="'+imgPath+'delete.png"/></a>');this.annoCount++;},hideProposal:function(wrapperSpan){var img=wrapperSpan.down('img');if(img){img.hide();}var span=wrapperSpan.down('span');if(span){span.className='';}},restoreProposal:function(wrapperSpan){var img=wrapperSpan.down('img');if(img){img.show();}var span=wrapperSpan.down('span');if(span){span.className='aam_page_link_highlight';}},updateAnchors:function(textModifications){if(textModifications){var start=textModifications[0];var end=textModifications[1];var len=textModifications[2];var offset=len-(end-start);var anchors=$('bodyContent').getElementsBySelector('a[type="wikiTextOffset"]');for(var i=0;i<anchors.size();++i){var val=anchors[i].getAttribute('name')*1;if(val>start){anchors[i].setAttribute('name',val+offset);}}var anchor=$('bodyContent').getElementsBySelector('a[name="'+start+'"]');if(anchor.size()==1){var wrapperSpan=anchor[0].next('span');if(wrapperSpan){var span=wrapperSpan.down('span');if(span){var highlightClass=span.getAttribute('class');if(highlightClass=='aam_prop_highlight'){span.setAttribute('class','aam_new_anno_prop_highlight');}}}}smwhgSaveAnnotations.markDirty();this.annotationsChanged=true;}},deleteAnnotation:function(id){var annoDescr=this.findAnnotationWithId(id);if(!annoDescr){return;}var anno=annoDescr[0];var type=annoDescr[2];var value="";if(anno.getRepresentation().length!=0){value=anno.getRepresentation();}else if(anno.getValue){value=anno.getValue();}anno.remove(value);if(type&&type=='category'){catToolBar.fillList();}else{relToolBar.fillList();}},editAnnotation:function(id){var annoDescr=this.findAnnotationWithId(id);if(!annoDescr){return;}var anno=annoDescr[0];var index=annoDescr[1];var type=annoDescr[2];relToolBar.getselectedItem(index);},annotateProposal:function(id){smwhgAnnotationHints.hideHints();var annoDescr=this.findAnnotationWithId(id);if(!annoDescr){return;}var wrapper=$('anno'+id+'w');this.annotationProposal=wrapper;var anno=annoDescr[0];this.wikiTextParser.setSelection(anno.getStart(),anno.getEnd());if(this.contextMenu){this.contextMenu.remove;}this.contextMenu=new ContextMenuFramework();var annoName=anno.getRepresentation();if(!annoName){annoName=anno.getName();}relToolBar.createContextMenu(this.contextMenu,annoName);var vo=wrapper.viewportOffset();this.contextMenu.setPosition(vo[0],vo[1]+20);this.contextMenu.showMenu();},findAnnotationWithId:function(id){var wrapper=$('anno'+id+'w');if(!wrapper){alert("Corresponding annotation not found.");return null;}var wtoAnchor=this.searchBackwards(wrapper,this.searchWtoAnchor.bind(this));var annotationStart=wtoAnchor.getAttribute("name")*1;var type=wtoAnchor.getAttribute("annoType");var annotations=(type&&type=='category')?this.wikiTextParser.getCategories():this.wikiTextParser.getRelations();for(var i=0;i<annotations.length;++i){var anno=annotations[i];if(anno.getStart()==annotationStart){return[anno,i,type];}}var annotations=this.wikiTextParser.getLinks();for(var i=0;i<annotations.length;++i){var anno=annotations[i];if(anno.getStart()==annotationStart){return[anno,i,'link'];}}return null;},removeAnnotationHighlight:function(annotation){var start=annotation.getStart();var wtoAnchor=$('bodyContent').down('a[name="'+start+'"]');if(!wtoAnchor){alert("Anchor for annotation not found.");return;}var wrapper=wtoAnchor.next("span");if(!wrapper){return;}var span=$(wrapper).down('span');var proposals=$(span).descendants();for(var i=0;i<proposals.length;++i){var p=proposals[i];if(p.id.match(/anno\d*w/)){this.restoreProposal(p);}else if(p.tagName=='A'){var href=p.getAttribute("href");if(href&&href.startsWith(wgScriptPath)){if(p.parentNode.className!="aam_page_link_highlight"){p.replace(getTextContent(p));}}}}var htmlContent=span.innerHTML;var nextWtoAnchor=wtoAnchor.next('a[type="wikiTextOffset"]');wrapper.replace(htmlContent);if(wtoAnchor.getAttribute("name")!="0"){wtoAnchor.remove();}if(nextWtoAnchor){nextWtoAnchor.remove();}},saveAnnotations:function(exit){this.om.editArticle(wgPageName,this.wikiTextParser.getWikiText(),gLanguage.getMessage('AH_SAVE_COMMENT'),false);smwhgSaveAnnotations.savingAnnotations(exit);},annotationsSaved:function(success,created,title){smwhgSaveAnnotations.annotationsSaved(success);if(success===true){this.annotationsChanged=false;}else{smwhgSaveAnnotations.markDirty();}}};AdvancedAnnotation.create=function(){if(wgAction=="annotate"){smwhgAdvancedAnnotation=new AdvancedAnnotation();new PeriodicalExecuter(function(pe){var content=$('content');Event.observe(content,'mouseup',smwhgAdvancedAnnotation.onMouseUp.bindAsEventListener(smwhgAdvancedAnnotation));Event.observe('globalWrapper','keyup',smwhgAdvancedAnnotation.onKeyUp.bindAsEventListener(smwhgAdvancedAnnotation));pe.stop();},2);}};AdvancedAnnotation.unload=function(){if(wgAction=="annotate"&&smwhgAdvancedAnnotation.annotationsChanged===true){var save=confirm(gLanguage.getMessage('AAM_SAVE_ANNOTATIONS'));if(save===true){smwhgAdvancedAnnotation.saveAnnotations();}}};AdvancedAnnotation.smwhfEditAnno=function(id){smwhgAdvancedAnnotation.editAnnotation(id);};AdvancedAnnotation.smwhfDeleteAnno=function(id){var del=confirm(gLanguage.getMessage('AAM_DELETE_ANNOTATIONS'));if(del===true){smwhgAdvancedAnnotation.deleteAnnotation(id);}};AdvancedAnnotation.smwhfEditLink=function(id){smwhgAdvancedAnnotation.annotateProposal(id);};function getTextContent(elem){if(!elem){return null;}if(elem.textContent){return elem.textContent;}else if(elem.innerText){return elem.innerText;}else if(elem.nodeValue){return elem.nodeValue;}return null;};function setTextContent(elem,text){if(!elem){return null;}if(elem.textContent){elem.textContent=text;}else if(elem.innerText){elem.innerText=text;}else if(elem.nodeValue){elem.nodeValue=text;}};var smwhgAdvancedAnnotation=null;Event.observe(window,'load',AdvancedAnnotation.create);Event.observe(window,'unload',AdvancedAnnotation.unload); 

// SMW_AnnotationHints.js
// under GPL-License; Copyright (c) 2007 Ontoprise GmbH
var AnnotationHints=Class.create();AnnotationHints.prototype={initialize:function(){},showMessageAndWikiText:function(message,wikiText,x,y){this.contextMenu=new ContextMenuFramework();var tb=new ContainerToolBar('annotationhints-content',1000,this.contextMenu);tb.createContainerBody('','ANNOTATIONHINT',gLanguage.getMessage('ANNOTATION_ERRORS'));var m=message.stripScripts();if(m!=message){m=message.replace(/<\/?b>/g,'');m=m.escapeHTML();}var w=wikiText.stripScripts();if(w!=wikiText){w=wikiText.replace(/<\/?b>/g,'');w=w.escapeHTML();}tb.append(tb.createText('ah-error-msg',m,'',true));tb.append(tb.createText('ah-wikitext-msg',w,'',true));tb.finishCreation();this.contextMenu.setPosition(x,y);this.contextMenu.showMenu();document.onkeyup=function(e){if(!e){return;}var key=e.which||e.keyCode;if(key==Event.KEY_ESC){smwhgAnnotationHints.hideHints();}}},hideHints:function(){if(this.contextMenu){this.contextMenu.remove();}}};var smwhgAnnotationHints=new AnnotationHints(); 

// SMW_GardeningHints.js
// under GPL-License; Copyright (c) 2007 Ontoprise GmbH
var GardeningHints=Class.create();GardeningHints.prototype={initialize:function(){this.toolbarContainer=null;},showToolbar:function(){this.gardeningHintContainer.setHeadline(gLanguage.getMessage('ANNOTATION_HINTS'));sajax_do_call('smwfGetGardeningIssues',[['smw_consistencybot','smw_undefinedentitiesbot','smw_missingannotationsbot'],'','',wgPageName,''],this.createContent.bind(this));},createContainer:function(event){if((wgAction=="edit"||wgAction=="annotate")&&stb_control.isToolbarAvailable()){this.gardeningHintContainer=stb_control.createDivContainer(ANNOTATIONHINTCONTAINER,0);this.showToolbar();}},createContent:function(request){var tb=this.createToolbar("");var html='';if(request.status==200){var hints=GeneralXMLTools.createDocumentFromString(request.responseText);if(hints.documentElement){for(var b=0,bn=hints.documentElement.childNodes.length;b<bn;b++){var bot=hints.documentElement.childNodes[b];var n=bot.childNodes.length;if(n>0){html+='<ul>';for(var i=0;i<n;i++){var issue=bot.childNodes[i];html+='<li>'+(issue.textContent?issue.textContent:issue.text)+'</li>';}html+='</ul>';}}}}if(!html){html=tb.createText('ah-status-msg',gLanguage.getMessage('AH_NO_HINTS'),'',true);}tb.append(html);tb.finishCreation();this.gardeningHintContainer.contentChanged();},createToolbar:function(attributes){if(this.toolbarContainer){this.toolbarContainer.release();}this.toolbarContainer=new ContainerToolBar('annotationhint-content',1000,this.gardeningHintContainer);var tb=this.toolbarContainer;tb.createContainerBody(attributes);return tb;}};var smwhgGardeningHints=new GardeningHints();Event.observe(window,'load',smwhgGardeningHints.createContainer.bindAsEventListener(smwhgGardeningHints)); 

// SMW_SaveAnnotations.js
// under GPL-License; Copyright (c) 2007 Ontoprise GmbH
var SaveAnnotations=Class.create();SaveAnnotations.prototype={initialize:function(){this.toolbarContainer=null;this.exitPage=false;},showToolbar:function(request){this.savehintcontainer.setHeadline(gLanguage.getMessage('SA_SAVE_ANNOTATION_HINTS'));this.createContent();},createContainer:function(event){if(wgAction=="annotate"&&stb_control.isToolbarAvailable()){this.savehintcontainer=stb_control.createDivContainer(SAVEANNOTATIONSCONTAINER,0);this.showToolbar();}},createContent:function(){var tb=this.createToolbar("");tb.append(tb.createText('sa-save-msg','','',true));var html='<table border="0" class= "saveannotations-innertable"><tr><td>';html+=tb.createButton('ah-savewikitext-btn',gLanguage.getMessage('SA_SAVE_ANNOTATIONS'),'smwhgAdvancedAnnotation.saveAnnotations(false)','',true);html+="</td><td>";html+=tb.createButton('ah-savewikitext-and-exit-btn',gLanguage.getMessage('SA_SAVE_ANNOTATIONS_AND_EXIT'),'smwhgAdvancedAnnotation.saveAnnotations(true)','',true);html+="</td></tr></table>";tb.append(html);tb.finishCreation();this.savehintcontainer.contentChanged();$('ah-savewikitext-btn').disable();$('ah-savewikitext-and-exit-btn').disable();},savingAnnotations:function(exit){var msg=gLanguage.getMessage('SA_SAVING_ANNOTATIONS');var tb=this.toolbarContainer;var sm=tb.createText('sa-save-msg',msg,'',true);tb.replace('sa-save-msg',sm);$('saveannotations-content-table-sa-save-msg').show();$('ah-savewikitext-btn').disable();$('ah-savewikitext-and-exit-btn').disable();this.exitPage=exit;},annotationsSaved:function(success){var msg=(success)?gLanguage.getMessage('SA_ANNOTATIONS_SAVED'):gLanguage.getMessage('SA_SAVING_ANNOTATIONS_FAILED');var tb=this.toolbarContainer;var sm=tb.createText('sa-save-msg',msg,'',true);tb.replace('sa-save-msg',sm);$('saveannotations-content-table-sa-save-msg').show();if(success){$('ah-savewikitext-btn').disable();$('ah-savewikitext-and-exit-btn').disable();if(this.exitPage){location.href=wgServer+wgScript+"/"+wgPageName;}}},markDirty:function(){var tb=this.toolbarContainer;$('saveannotations-content-table-sa-save-msg').hide();$('ah-savewikitext-btn').enable();$('ah-savewikitext-and-exit-btn').enable();},createToolbar:function(attributes){if(this.toolbarContainer){this.toolbarContainer.release();}this.toolbarContainer=new ContainerToolBar('saveannotations-content',900,this.savehintcontainer);var tb=this.toolbarContainer;tb.createContainerBody(attributes);return tb;}};var smwhgSaveAnnotations=new SaveAnnotations();Event.observe(window,'load',smwhgSaveAnnotations.createContainer.bindAsEventListener(smwhgSaveAnnotations)); 


