String.prototype.parseColor=function(b){var c="#";if(this.slice(0,4)=="rgb("){var d=this.slice(4,this.length-1).split(","),e=0;do c+=parseInt(d[e]).toColorPart();while(++e<3)}else if(this.slice(0,1)=="#"){if(this.length==4)for(e=1;e<4;e++)c+=(this.charAt(e)+this.charAt(e)).toLowerCase();if(this.length==7)c=this.toLowerCase()}return c.length==7?c:b||this};
Element.collectTextNodes=function(b){return $A($(b).childNodes).collect(function(c){return c.nodeType==3?c.nodeValue:c.hasChildNodes()?Element.collectTextNodes(c):""}).flatten().join("")};Element.collectTextNodesIgnoreClass=function(b,c){return $A($(b).childNodes).collect(function(d){return d.nodeType==3?d.nodeValue:d.hasChildNodes()&&!Element.hasClassName(d,c)?Element.collectTextNodesIgnoreClass(d,c):""}).flatten().join("")};
Element.setContentZoom=function(b,c){b=$(b);b.setStyle({fontSize:c/100+"em"});Prototype.Browser.WebKit&&window.scrollBy(0,0);return b};Element.getInlineOpacity=function(b){return $(b).style.opacity||""};Element.forceRerendering=function(b){try{b=$(b);var c=document.createTextNode(" ");b.appendChild(c);b.removeChild(c)}catch(d){}};
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(b){return-Math.cos(b*Math.PI)/2+0.5},reverse:function(b){return 1-b},flicker:function(b){b=-Math.cos(b*Math.PI)/4+0.75+Math.random()/4;return b>1?1:b},wobble:function(b){return-Math.cos(b*Math.PI*9*b)/2+0.5},pulse:function(b,c){c=c||5;return(b%(1/c)*c).round()==0?b*c*2-(b*c*2).floor():
1-(b*c*2-(b*c*2).floor())},spring:function(b){return 1-Math.cos(b*4.5*Math.PI)*Math.exp(-b*6)},none:function(){return 0},full:function(){return 1}},DefaultOptions:{duration:1,fps:100,sync:false,from:0,to:1,delay:0,queue:"parallel"},tagifyText:function(b){var c="position:relative";if(Prototype.Browser.IE)c+=";zoom:1";b=$(b);$A(b.childNodes).each(function(d){if(d.nodeType==3){d.nodeValue.toArray().each(function(e){b.insertBefore((new Element("span",{style:c})).update(e==" "?String.fromCharCode(160):
e),d)});Element.remove(d)}})},multiple:function(b,c,d){b=(typeof b=="object"||Object.isFunction(b))&&b.length?b:$(b).childNodes;var e=Object.extend({speed:0.1,delay:0},d||{}),f=e.delay;$A(b).each(function(g,h){new c(g,Object.extend(e,{delay:h*e.speed+f}))})},PAIRS:{slide:["SlideDown","SlideUp"],blind:["BlindDown","BlindUp"],appear:["Appear","Fade"]},toggle:function(b,c,d){b=$(b);c=(c||"appear").toLowerCase();d=Object.extend({queue:{position:"end",scope:b.id||"global",limit:1}},d||{});Effect[b.visible()?
Effect.PAIRS[c][1]:Effect.PAIRS[c][0]](b,d)}};Effect.DefaultOptions.transition=Effect.Transitions.sinoidal;
Effect.ScopedQueue=Class.create(Enumerable,{initialize:function(){this.effects=[];this.interval=null},_each:function(b){this.effects._each(b)},add:function(b){var c=(new Date).getTime();switch(Object.isString(b.options.queue)?b.options.queue:b.options.queue.position){case "front":this.effects.findAll(function(d){return d.state=="idle"}).each(function(d){d.startOn+=b.finishOn;d.finishOn+=b.finishOn});break;case "with-last":c=this.effects.pluck("startOn").max()||c;break;case "end":c=this.effects.pluck("finishOn").max()||
c;break}b.startOn+=c;b.finishOn+=c;if(!b.options.queue.limit||this.effects.length<b.options.queue.limit)this.effects.push(b);if(!this.interval)this.interval=setInterval(this.loop.bind(this),15)},remove:function(b){this.effects=this.effects.reject(function(c){return c==b});if(this.effects.length==0){clearInterval(this.interval);this.interval=null}},loop:function(){for(var b=(new Date).getTime(),c=0,d=this.effects.length;c<d;c++)this.effects[c]&&this.effects[c].loop(b)}});
Effect.Queues={instances:$H(),get:function(b){if(!Object.isString(b))return b;return this.instances.get(b)||this.instances.set(b,new Effect.ScopedQueue)}};Effect.Queue=Effect.Queues.get("global");
Effect.Base=Class.create({position:null,start:function(b){function c(d,e){return(d[e+"Internal"]?"this.options."+e+"Internal(this);":"")+(d[e]?"this.options."+e+"(this);":"")}if(b&&b.transition===false)b.transition=Effect.Transitions.linear;this.options=Object.extend(Object.extend({},Effect.DefaultOptions),b||{});this.currentFrame=0;this.state="idle";this.startOn=this.options.delay*1E3;this.finishOn=this.startOn+this.options.duration*1E3;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";'+c(this.options,"beforeSetup")+(this.setup?"this.setup();":"")+c(this.options,"afterSetup")+'};if (this.state=="running"){pos=this.options.transition(pos)*'+this.fromToDelta+"+"+this.options.from+";this.position=pos;"+c(this.options,"beforeUpdate")+(this.update?"this.update(pos);":"")+c(this.options,"afterUpdate")+"}}");this.event("beforeStart");
this.options.sync||Effect.Queues.get(Object.isString(this.options.queue)?"global":this.options.queue.scope).add(this)},loop:function(b){if(b>=this.startOn)if(b>=this.finishOn){this.render(1);this.cancel();this.event("beforeFinish");this.finish&&this.finish();this.event("afterFinish")}else{b=(b-this.startOn)/this.totalTime;var c=(b*this.totalFrames).round();if(c>this.currentFrame){this.render(b);this.currentFrame=c}}},cancel:function(){this.options.sync||Effect.Queues.get(Object.isString(this.options.queue)?
"global":this.options.queue.scope).remove(this);this.state="finished"},event:function(b){this.options[b+"Internal"]&&this.options[b+"Internal"](this);this.options[b]&&this.options[b](this)},inspect:function(){var b=$H();for(property in this)Object.isFunction(this[property])||b.set(property,this[property]);return"#<Effect:"+b.inspect()+",options:"+$H(this.options).inspect()+">"}});
Effect.Parallel=Class.create(Effect.Base,{initialize:function(b,c){this.effects=b||[];this.start(c)},update:function(b){this.effects.invoke("render",b)},finish:function(b){this.effects.each(function(c){c.render(1);c.cancel();c.event("beforeFinish");c.finish&&c.finish(b);c.event("afterFinish")})}});
Effect.Tween=Class.create(Effect.Base,{initialize:function(b,c,d){b=Object.isString(b)?$(b):b;var e=$A(arguments),f=e.last();e=e.length==5?e[3]:null;this.method=Object.isFunction(f)?f.bind(b):Object.isFunction(b[f])?b[f].bind(b):function(g){b[f]=g};this.start(Object.extend({from:c,to:d},e||{}))},update:function(b){this.method(b)}});Effect.Event=Class.create(Effect.Base,{initialize:function(b){this.start(Object.extend({duration:0},b||{}))},update:Prototype.emptyFunction});
Effect.Opacity=Class.create(Effect.Base,{initialize:function(b,c){this.element=$(b);if(!this.element)throw Effect._elementDoesNotExistError;Prototype.Browser.IE&&!this.element.currentStyle.hasLayout&&this.element.setStyle({zoom:1});this.start(Object.extend({from:this.element.getOpacity()||0,to:1},c||{}))},update:function(b){this.element.setOpacity(b)}});
Effect.Move=Class.create(Effect.Base,{initialize:function(b,c){this.element=$(b);if(!this.element)throw Effect._elementDoesNotExistError;this.start(Object.extend({x:0,y:0,mode:"relative"},c||{}))},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.originalLeft;this.options.y-=this.originalTop}},update:function(b){this.element.setStyle({left:(this.options.x*
b+this.originalLeft).round()+"px",top:(this.options.y*b+this.originalTop).round()+"px"})}});Effect.MoveBy=function(b,c,d,e){return new Effect.Move(b,Object.extend({x:d,y:c},e||{}))};
Effect.Scale=Class.create(Effect.Base,{initialize:function(b,c,d){this.element=$(b);if(!this.element)throw Effect._elementDoesNotExistError;this.start(Object.extend({scaleX:true,scaleY:true,scaleContent:true,scaleFromCenter:false,scaleMode:"box",scaleFrom:100,scaleTo:c},d||{}))},setup:function(){this.restoreAfterFinish=this.options.restoreAfterFinish||false;this.elementPositioning=this.element.getStyle("position");this.originalStyle={};["top","left","width","height","fontSize"].each(function(c){this.originalStyle[c]=
this.element.style[c]}.bind(this));this.originalTop=this.element.offsetTop;this.originalLeft=this.element.offsetLeft;var b=this.element.getStyle("font-size")||"100%";["em","px","%","pt"].each(function(c){if(b.indexOf(c)>0){this.fontSize=parseFloat(b);this.fontSizeType=c}}.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(b){b=this.options.scaleFrom/100+this.factor*b;this.options.scaleContent&&this.fontSize&&this.element.setStyle({fontSize:this.fontSize*b+this.fontSizeType});this.setDimensions(this.dims[0]*b,this.dims[1]*b)},finish:function(){this.restoreAfterFinish&&this.element.setStyle(this.originalStyle)},setDimensions:function(b,c){var d={};
if(this.options.scaleX)d.width=c.round()+"px";if(this.options.scaleY)d.height=b.round()+"px";if(this.options.scaleFromCenter){var e=(b-this.dims[0])/2,f=(c-this.dims[1])/2;if(this.elementPositioning=="absolute"){if(this.options.scaleY)d.top=this.originalTop-e+"px";if(this.options.scaleX)d.left=this.originalLeft-f+"px"}else{if(this.options.scaleY)d.top=-e+"px";if(this.options.scaleX)d.left=-f+"px"}}this.element.setStyle(d)}});
Effect.Highlight=Class.create(Effect.Base,{initialize:function(b,c){this.element=$(b);if(!this.element)throw Effect._elementDoesNotExistError;this.start(Object.extend({startcolor:"#ffff99"},c||{}))},setup:function(){if(this.element.getStyle("display")=="none")this.cancel();else{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(b){return parseInt(this.options.startcolor.slice(b*2+1,b*2+3),16)}.bind(this));this._delta=$R(0,2).map(function(b){return parseInt(this.options.endcolor.slice(b*2+1,b*2+3),16)-this._base[b]}.bind(this))}},update:function(b){this.element.setStyle({backgroundColor:$R(0,2).inject("#",function(c,d,e){return c+
(this._base[e]+this._delta[e]*b).round().toColorPart()}.bind(this))})},finish:function(){this.element.setStyle(Object.extend(this.oldStyle,{backgroundColor:this.options.restorecolor}))}});Effect.ScrollTo=function(b,c){var d=c||{},e=document.viewport.getScrollOffsets(),f=$(b).cumulativeOffset(),g=(window.height||document.body.scrollHeight)-document.viewport.getHeight();if(d.offset)f[1]+=d.offset;return new Effect.Tween(null,e.top,f[1]>g?g:f[1],d,function(h){scrollTo(e.left,h.round())})};
Effect.Fade=function(b,c){b=$(b);var d=b.getInlineOpacity(),e=Object.extend({from:b.getOpacity()||1,to:0,afterFinishInternal:function(f){f.options.to==0&&f.element.hide().setStyle({opacity:d})}},c||{});return new Effect.Opacity(b,e)};
Effect.Appear=function(b,c){b=$(b);var d=Object.extend({from:b.getStyle("display")=="none"?0:b.getOpacity()||0,to:1,afterFinishInternal:function(e){e.element.forceRerendering()},beforeSetup:function(e){e.element.setOpacity(e.options.from).show()}},c||{});return new Effect.Opacity(b,d)};
Effect.Puff=function(b,c){b=$(b);var d={opacity:b.getInlineOpacity(),position:b.getStyle("position"),top:b.style.top,left:b.style.left,width:b.style.width,height:b.style.height};return new Effect.Parallel([new Effect.Scale(b,200,{sync:true,scaleFromCenter:true,scaleContent:true,restoreAfterFinish:true}),new Effect.Opacity(b,{sync:true,to:0})],Object.extend({duration:1,beforeSetupInternal:function(e){Position.absolutize(e.effects[0].element)},afterFinishInternal:function(e){e.effects[0].element.hide().setStyle(d)}},
c||{}))};Effect.BlindUp=function(b,c){b=$(b);b.makeClipping();return new Effect.Scale(b,0,Object.extend({scaleContent:false,scaleX:false,restoreAfterFinish:true,afterFinishInternal:function(d){d.element.hide().undoClipping()}},c||{}))};
Effect.BlindDown=function(b,c){b=$(b);var d=b.getDimensions();return new Effect.Scale(b,100,Object.extend({scaleContent:false,scaleX:false,scaleFrom:0,scaleMode:{originalHeight:d.height,originalWidth:d.width},restoreAfterFinish:true,afterSetup:function(e){e.element.makeClipping().setStyle({height:"0px"}).show()},afterFinishInternal:function(e){e.element.undoClipping()}},c||{}))};
Effect.SwitchOff=function(b,c){b=$(b);var d=b.getInlineOpacity();return new Effect.Appear(b,Object.extend({duration:0.4,from:0,transition:Effect.Transitions.flicker,afterFinishInternal:function(e){new Effect.Scale(e.element,1,{duration:0.3,scaleFromCenter:true,scaleX:false,scaleContent:false,restoreAfterFinish:true,beforeSetup:function(f){f.element.makePositioned().makeClipping()},afterFinishInternal:function(f){f.element.hide().undoClipping().undoPositioned().setStyle({opacity:d})}})}},c||{}))};
Effect.DropOut=function(b,c){b=$(b);var d={top:b.getStyle("top"),left:b.getStyle("left"),opacity:b.getInlineOpacity()};return new Effect.Parallel([new Effect.Move(b,{x:0,y:100,sync:true}),new Effect.Opacity(b,{sync:true,to:0})],Object.extend({duration:0.5,beforeSetup:function(e){e.effects[0].element.makePositioned()},afterFinishInternal:function(e){e.effects[0].element.hide().undoPositioned().setStyle(d)}},c||{}))};
Effect.Shake=function(b,c){b=$(b);var d=Object.extend({distance:20,duration:0.5},c||{}),e=parseFloat(d.distance),f=parseFloat(d.duration)/10,g={top:b.getStyle("top"),left:b.getStyle("left")};return new Effect.Move(b,{x:e,y:0,duration:f,afterFinishInternal:function(h){new Effect.Move(h.element,{x:-e*2,y:0,duration:f*2,afterFinishInternal:function(k){new Effect.Move(k.element,{x:e*2,y:0,duration:f*2,afterFinishInternal:function(l){new Effect.Move(l.element,{x:-e*2,y:0,duration:f*2,afterFinishInternal:function(m){new Effect.Move(m.element,
{x:e*2,y:0,duration:f*2,afterFinishInternal:function(n){new Effect.Move(n.element,{x:-e,y:0,duration:f,afterFinishInternal:function(p){p.element.undoPositioned().setStyle(g)}})}})}})}})}})}})};
Effect.SlideDown=function(b,c){b=$(b).cleanWhitespace();var d=b.down().getStyle("bottom"),e=b.getDimensions();return new Effect.Scale(b,100,Object.extend({scaleContent:false,scaleX:false,scaleFrom:window.opera?0:1,scaleMode:{originalHeight:e.height,originalWidth:e.width},restoreAfterFinish:true,afterSetup:function(f){f.element.makePositioned();f.element.down().makePositioned();window.opera&&f.element.setStyle({top:""});f.element.makeClipping().setStyle({height:"0px"}).show()},afterUpdateInternal:function(f){f.element.down().setStyle({bottom:f.dims[0]-
f.element.clientHeight+"px"})},afterFinishInternal:function(f){f.element.undoClipping().undoPositioned();f.element.down().undoPositioned().setStyle({bottom:d})}},c||{}))};
Effect.SlideUp=function(b,c){b=$(b).cleanWhitespace();var d=b.down().getStyle("bottom"),e=b.getDimensions();return new Effect.Scale(b,window.opera?0:1,Object.extend({scaleContent:false,scaleX:false,scaleMode:"box",scaleFrom:100,scaleMode:{originalHeight:e.height,originalWidth:e.width},restoreAfterFinish:true,afterSetup:function(f){f.element.makePositioned();f.element.down().makePositioned();window.opera&&f.element.setStyle({top:""});f.element.makeClipping().show()},afterUpdateInternal:function(f){f.element.down().setStyle({bottom:f.dims[0]-
f.element.clientHeight+"px"})},afterFinishInternal:function(f){f.element.hide().undoClipping().undoPositioned();f.element.down().undoPositioned().setStyle({bottom:d})}},c||{}))};Effect.Squish=function(b){return new Effect.Scale(b,window.opera?1:0,{restoreAfterFinish:true,beforeSetup:function(c){c.element.makeClipping()},afterFinishInternal:function(c){c.element.hide().undoClipping()}})};
Effect.Grow=function(b,c){b=$(b);var d=Object.extend({direction:"center",moveTransition:Effect.Transitions.sinoidal,scaleTransition:Effect.Transitions.sinoidal,opacityTransition:Effect.Transitions.full},c||{}),e={top:b.style.top,left:b.style.left,height:b.style.height,width:b.style.width,opacity:b.getInlineOpacity()},f=b.getDimensions(),g,h,k,l;switch(d.direction){case "top-left":g=h=k=l=0;break;case "top-right":g=f.width;h=l=0;k=-f.width;break;case "bottom-left":g=k=0;h=f.height;l=-f.height;break;
case "bottom-right":g=f.width;h=f.height;k=-f.width;l=-f.height;break;case "center":g=f.width/2;h=f.height/2;k=-f.width/2;l=-f.height/2;break}return new Effect.Move(b,{x:g,y:h,duration:0.01,beforeSetup:function(m){m.element.hide().makeClipping().makePositioned()},afterFinishInternal:function(m){new Effect.Parallel([new Effect.Opacity(m.element,{sync:true,to:1,from:0,transition:d.opacityTransition}),new Effect.Move(m.element,{x:k,y:l,sync:true,transition:d.moveTransition}),new Effect.Scale(m.element,
100,{scaleMode:{originalHeight:f.height,originalWidth:f.width},sync:true,scaleFrom:window.opera?1:0,transition:d.scaleTransition,restoreAfterFinish:true})],Object.extend({beforeSetup:function(n){n.effects[0].element.setStyle({height:"0px"}).show()},afterFinishInternal:function(n){n.effects[0].element.undoClipping().undoPositioned().setStyle(e)}},d))}})};
Effect.Shrink=function(b,c){b=$(b);var d=Object.extend({direction:"center",moveTransition:Effect.Transitions.sinoidal,scaleTransition:Effect.Transitions.sinoidal,opacityTransition:Effect.Transitions.none},c||{}),e={top:b.style.top,left:b.style.left,height:b.style.height,width:b.style.width,opacity:b.getInlineOpacity()},f=b.getDimensions(),g,h;switch(d.direction){case "top-left":g=h=0;break;case "top-right":g=f.width;h=0;break;case "bottom-left":g=0;h=f.height;break;case "bottom-right":g=f.width;h=
f.height;break;case "center":g=f.width/2;h=f.height/2;break}return new Effect.Parallel([new Effect.Opacity(b,{sync:true,to:0,from:1,transition:d.opacityTransition}),new Effect.Scale(b,window.opera?1:0,{sync:true,transition:d.scaleTransition,restoreAfterFinish:true}),new Effect.Move(b,{x:g,y:h,sync:true,transition:d.moveTransition})],Object.extend({beforeStartInternal:function(k){k.effects[0].element.makePositioned().makeClipping()},afterFinishInternal:function(k){k.effects[0].element.hide().undoClipping().undoPositioned().setStyle(e)}},
d))};Effect.Pulsate=function(b,c){b=$(b);var d=c||{},e=b.getInlineOpacity(),f=d.transition||Effect.Transitions.sinoidal,g=function(h){return f(1-Effect.Transitions.pulse(h,d.pulses))};g.bind(f);return new Effect.Opacity(b,Object.extend(Object.extend({duration:2,from:0,afterFinishInternal:function(h){h.element.setStyle({opacity:e})}},d),{transition:g}))};
Effect.Fold=function(b,c){b=$(b);var d={top:b.style.top,left:b.style.left,width:b.style.width,height:b.style.height};b.makeClipping();return new Effect.Scale(b,5,Object.extend({scaleContent:false,scaleX:false,afterFinishInternal:function(){new Effect.Scale(b,1,{scaleContent:false,scaleY:false,afterFinishInternal:function(e){e.element.hide().undoClipping().setStyle(d)}})}},c||{}))};
Effect.Morph=Class.create(Effect.Base,{initialize:function(b,c){this.element=$(b);if(!this.element)throw Effect._elementDoesNotExistError;var d=Object.extend({style:{}},c||{});if(Object.isString(d.style))if(d.style.include(":"))this.style=d.style.parseStyle();else{this.element.addClassName(d.style);this.style=$H(this.element.getStyles());this.element.removeClassName(d.style);var e=this.element.getStyles();this.style=this.style.reject(function(f){return f.value==e[f.key]});d.afterFinishInternal=function(f){f.element.addClassName(f.options.style);
f.transforms.each(function(g){f.element.style[g.style]=""})}}else this.style=$H(d.style);this.start(d)},setup:function(){function b(c){if(!c||["rgba(0, 0, 0, 0)","transparent"].include(c))c="#ffffff";c=c.parseColor();return $R(0,2).map(function(d){return parseInt(c.slice(d*2+1,d*2+3),16)})}this.transforms=this.style.map(function(c){var d=c[0];c=c[1];var e=null;if(c.parseColor("#zzzzzz")!="#zzzzzz"){c=c.parseColor();e="color"}else if(d=="opacity"){c=parseFloat(c);Prototype.Browser.IE&&!this.element.currentStyle.hasLayout&&
this.element.setStyle({zoom:1})}else if(Element.CSS_LENGTH.test(c)){e=c.match(/^([\+\-]?[0-9\.]+)(.*)$/);c=parseFloat(e[1]);e=e.length==3?e[2]:null}var f=this.element.getStyle(d);return{style:d.camelize(),originalValue:e=="color"?b(f):parseFloat(f||0),targetValue:e=="color"?b(c):c,unit:e}}.bind(this)).reject(function(c){return c.originalValue==c.targetValue||c.unit!="color"&&(isNaN(c.originalValue)||isNaN(c.targetValue))})},update:function(b){for(var c={},d,e=this.transforms.length;e--;)c[(d=this.transforms[e]).style]=
d.unit=="color"?"#"+Math.round(d.originalValue[0]+(d.targetValue[0]-d.originalValue[0])*b).toColorPart()+Math.round(d.originalValue[1]+(d.targetValue[1]-d.originalValue[1])*b).toColorPart()+Math.round(d.originalValue[2]+(d.targetValue[2]-d.originalValue[2])*b).toColorPart():(d.originalValue+(d.targetValue-d.originalValue)*b).toFixed(3)+(d.unit===null?"":d.unit);this.element.setStyle(c,true)}});
Effect.Transform=Class.create({initialize:function(b,c){this.tracks=[];this.options=c||{};this.addTracks(b)},addTracks:function(b){b.each(function(c){c=$H(c);var d=c.values().first();this.tracks.push($H({ids:c.keys().first(),effect:Effect.Morph,options:{style:d}}))}.bind(this));return this},play:function(){return new Effect.Parallel(this.tracks.map(function(b){var c=b.get("ids"),d=b.get("effect"),e=b.get("options");return[$(c)||$$(c)].flatten().map(function(f){return new d(f,Object.extend({sync:true},
e))})}).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 b,c=$H();if(Prototype.Browser.WebKit)b=(new Element("div",{style:this})).style;else{String.__parseStyleElement.innerHTML='<div style="'+this+'"></div>';b=String.__parseStyleElement.childNodes[0].style}Element.CSS_PROPERTIES.each(function(d){b[d]&&c.set(d,b[d])});Prototype.Browser.IE&&this.include("opacity")&&c.set("opacity",this.match(/opacity:\s*((?:0|1)?(?:\.\d*)?)/)[1]);return c};
Element.getStyles=document.defaultView&&document.defaultView.getComputedStyle?function(b){var c=document.defaultView.getComputedStyle($(b),null);return Element.CSS_PROPERTIES.inject({},function(d,e){d[e]=c[e];return d})}:function(b){b=$(b);var c=b.currentStyle,d;d=Element.CSS_PROPERTIES.inject({},function(e,f){e.set(f,c[f]);return e});d.opacity||d.set("opacity",b.getOpacity());return d};
Effect.Methods={morph:function(b,c,d){b=$(b);new Effect.Morph(b,Object.extend({style:c},d||{}));return b},visualEffect:function(b,c,d){b=$(b);c=c.dasherize().camelize();c=c.charAt(0).toUpperCase()+c.substring(1);new Effect[c](b,d);return b},highlight:function(b,c){b=$(b);new Effect.Highlight(b,c);return b}};
$w("fade appear grow shrink fold blindUp blindDown slideUp slideDown pulsate shake puff squish switchOff dropOut").each(function(b){Effect.Methods[b]=function(c,d){c=$(c);Effect[b.charAt(0).toUpperCase()+b.substring(1)](c,d);return c}});$w("getInlineOpacity forceRerendering setContentZoom collectTextNodes collectTextNodesIgnoreClass getStyles").each(function(b){Effect.Methods[b]=Element[b]});Element.addMethods(Effect.Methods);if(!Control)var Control={};
Control.Slider=Class.create({initialize:function(b,c,d){var e=this;this.handles=Object.isArray(b)?b.collect(function(f){return $(f)}):[$(b)];this.track=$(c);this.options=d||{};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(f){return $(f)}):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.disabled=this.dragging=this.active=false;this.options.disabled&&this.setDisabled();if(this.allowedValues=this.options.values?this.options.values.sortBy(Prototype.K):false){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(f,g){g=e.handles.length-1-g;e.setValue(parseFloat((Object.isArray(e.options.sliderValue)?e.options.sliderValue[g]:e.options.sliderValue)||e.range.start),g);f.makePositioned().observe("mousedown",e.eventMouseDown)});this.track.observe("mousedown",this.eventMouseDown);document.observe("mouseup",this.eventMouseUp);document.observe("mousemove",this.eventMouseMove);this.initialized=true},dispose:function(){var b=this;Event.stopObserving(this.track,"mousedown",this.eventMouseDown);
Event.stopObserving(document,"mouseup",this.eventMouseUp);Event.stopObserving(document,"mousemove",this.eventMouseMove);this.handles.each(function(c){Event.stopObserving(c,"mousedown",b.eventMouseDown)})},setDisabled:function(){this.disabled=true},setEnabled:function(){this.disabled=false},getNearestValue:function(b){if(this.allowedValues){if(b>=this.allowedValues.max())return this.allowedValues.max();if(b<=this.allowedValues.min())return this.allowedValues.min();var c=Math.abs(this.allowedValues[0]-
b),d=this.allowedValues[0];this.allowedValues.each(function(e){var f=Math.abs(e-b);if(f<=c){d=e;c=f}});return d}if(b>this.range.end)return this.range.end;if(b<this.range.start)return this.range.start;return b},setValue:function(b,c){if(!this.active){this.activeHandleIdx=c||0;this.activeHandle=this.handles[this.activeHandleIdx];this.updateStyles()}c=c||this.activeHandleIdx||0;if(this.initialized&&this.restricted){if(c>0&&b<this.values[c-1])b=this.values[c-1];if(c<this.handles.length-1&&b>this.values[c+
1])b=this.values[c+1]}b=this.getNearestValue(b);this.values[c]=b;this.value=this.values[0];this.handles[c].style[this.isVertical()?"top":"left"]=this.translateToPx(b);this.drawSpans();if(!this.dragging||!this.event)this.updateFinished()},setValueBy:function(b,c){this.setValue(this.values[c||this.activeHandleIdx||0]+b,c||this.activeHandleIdx||0)},translateToPx:function(b){return Math.round((this.trackLength-this.handleLength)/(this.range.end-this.range.start)*(b-this.range.start))+"px"},translateToValue:function(b){return b/
(this.trackLength-this.handleLength)*(this.range.end-this.range.start)+this.range.start},getRange:function(b){var c=this.values.sortBy(Prototype.K);b=b||0;return $R(c[b],c[b+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 b=this;this.spans&&$R(0,this.spans.length-1).each(function(c){b.setSpan(b.spans[c],b.getRange(c))});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(b,c){if(this.isVertical()){b.style.top=
this.translateToPx(c.start);b.style.height=this.translateToPx(c.end-c.start+this.range.start)}else{b.style.left=this.translateToPx(c.start);b.style.width=this.translateToPx(c.end-c.start+this.range.start)}},updateStyles:function(){this.handles.each(function(b){Element.removeClassName(b,"selected")});Element.addClassName(this.activeHandle,"selected")},startDrag:function(b){if(Event.isLeftClick(b)){if(!this.disabled){this.active=true;var c=Event.element(b),d=[Event.pointerX(b),Event.pointerY(b)];if(c==
this.track){c=Position.cumulativeOffset(this.track);this.event=b;this.setValue(this.translateToValue((this.isVertical()?d[1]-c[1]:d[0]-c[0])-this.handleLength/2));c=Position.cumulativeOffset(this.activeHandle);this.offsetX=d[0]-c[0];this.offsetY=d[1]-c[1]}else{for(;this.handles.indexOf(c)==-1&&c.parentNode;)c=c.parentNode;if(this.handles.indexOf(c)!=-1){this.activeHandle=c;this.activeHandleIdx=this.handles.indexOf(this.activeHandle);this.updateStyles();c=Position.cumulativeOffset(this.activeHandle);
this.offsetX=d[0]-c[0];this.offsetY=d[1]-c[1]}}}Event.stop(b)}},update:function(b){if(this.active){if(!this.dragging)this.dragging=true;this.draw(b);Prototype.Browser.WebKit&&window.scrollBy(0,0);Event.stop(b)}},draw:function(b){var c=[Event.pointerX(b),Event.pointerY(b)],d=Position.cumulativeOffset(this.track);c[0]-=this.offsetX+d[0];c[1]-=this.offsetY+d[1];this.event=b;this.setValue(this.translateToValue(this.isVertical()?c[1]:c[0]));if(this.initialized&&this.options.onSlide)this.options.onSlide(this.values.length>
1?this.values:this.value,this)},endDrag:function(b){if(this.active&&this.dragging){this.finishDrag(b,true);Event.stop(b)}this.dragging=this.active=false},finishDrag:function(){this.dragging=this.active=false;this.updateFinished()},updateFinished:function(){if(this.initialized&&this.options.onChange)this.options.onChange(this.values.length>1?this.values:this.value,this);this.event=null}});if(Object.isUndefined(Effect))throw"dragdrop.js requires including script.aculo.us' effects.js library";
var Droppables={drops:[],remove:function(b){this.drops=this.drops.reject(function(c){return c.element==$(b)})},add:function(b,c){b=$(b);var d=Object.extend({greedy:true,hoverclass:null,tree:false},c||{});if(d.containment){d._containers=[];var e=d.containment;Object.isArray(e)?e.each(function(f){d._containers.push($(f))}):d._containers.push($(e))}if(d.accept)d.accept=[d.accept].flatten();Element.makePositioned(b);d.element=b;this.drops.push(d)},findDeepestChild:function(b){deepest=b[0];for(i=1;i<b.length;++i)if(Element.isParent(b[i].element,
deepest.element))deepest=b[i];return deepest},isContained:function(b,c){var d;d=c.tree?b.treeNode:b.parentNode;return c._containers.detect(function(e){return d==e})},isAffected:function(b,c,d){return d.element!=c&&(!d._containers||this.isContained(c,d))&&(!d.accept||Element.classNames(c).detect(function(e){return d.accept.include(e)}))&&Position.withinIncludingScrolloffsets(d.element,b[0],b[1])},deactivate:function(b){b.hoverclass&&Element.removeClassName(b.element,b.hoverclass);this.last_active=
null},activate:function(b){b.hoverclass&&Element.addClassName(b.element,b.hoverclass);this.last_active=b},show:function(b,c){if(this.drops.length){var d,e=[];this.drops.each(function(f){Droppables.isAffected(b,c,f)&&e.push(f)});if(e.length>0)d=Droppables.findDeepestChild(e);this.last_active&&this.last_active!=d&&this.deactivate(this.last_active);if(d){Position.withinIncludingScrolloffsets(d.element,b[0],b[1]);d.onHover&&d.onHover(c,d.element,Position.overlap(d.overlap,d.element));d!=this.last_active&&
Droppables.activate(d)}}},fire:function(b,c){if(this.last_active){Position.prepare();if(this.isAffected([Event.pointerX(b),Event.pointerY(b)],c,this.last_active))if(this.last_active.onDrop){this.last_active.onDrop(c,this.last_active.element,b);return true}}},reset:function(){this.last_active&&this.deactivate(this.last_active)}},Draggables={drags:[],observers:[],register:function(b){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(b)},unregister:function(b){this.drags=this.drags.reject(function(c){return c==b});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(b){if(b.options.delay)this._timeout=setTimeout(function(){Draggables._timeout=null;window.focus();Draggables.activeDraggable=b}.bind(this),b.options.delay);else{window.focus();this.activeDraggable=b}},deactivate:function(){this.activeDraggable=null},updateDrag:function(b){if(this.activeDraggable){var c=[Event.pointerX(b),Event.pointerY(b)];if(!(this._lastPointer&&this._lastPointer.inspect()==c.inspect())){this._lastPointer=c;this.activeDraggable.updateDrag(b,
c)}}},endDrag:function(b){if(this._timeout){clearTimeout(this._timeout);this._timeout=null}if(this.activeDraggable){this._lastPointer=null;this.activeDraggable.endDrag(b);this.activeDraggable=null}},keyPress:function(b){this.activeDraggable&&this.activeDraggable.keyPress(b)},addObserver:function(b){this.observers.push(b);this._cacheObserverCallbacks()},removeObserver:function(b){this.observers=this.observers.reject(function(c){return c.element==b});this._cacheObserverCallbacks()},notify:function(b,
c,d){this[b+"Count"]>0&&this.observers.each(function(e){e[b]&&e[b](b,c,d)});c.options[b]&&c.options[b](c,d)},_cacheObserverCallbacks:function(){["onStart","onEnd","onDrag"].each(function(b){Draggables[b+"Count"]=Draggables.observers.select(function(c){return c[b]}).length})}},Draggable=Class.create({initialize:function(b,c){var d={handle:false,reverteffect:function(e,f,g){new Effect.Move(e,{x:-g,y:-f,duration:Math.sqrt(Math.abs(f^2)+Math.abs(g^2))*0.02,queue:{scope:"_draggable",position:"end"}})},
endeffect:function(e){var f=Object.isNumber(e._opacity)?e._opacity:1;new Effect.Opacity(e,{duration:0.2,from:0.7,to:f,queue:{scope:"_draggable",position:"end"},afterFinish:function(){Draggable._dragging[e]=false}})},zindex:10010,revert:false,quiet:false,scroll:false,scrollSensitivity:20,scrollSpeed:15,snap:false,delay:0};if(!c||Object.isUndefined(c.endeffect))Object.extend(d,{starteffect:function(e){e._opacity=Element.getOpacity(e);Draggable._dragging[e]=true;new Effect.Opacity(e,{duration:0.2,from:e._opacity,
to:0.7})}});d=Object.extend(d,c||{});this.element=$(b);if(d.handle&&Object.isString(d.handle))this.handle=this.element.down("."+d.handle,0);if(!this.handle)this.handle=$(d.handle);if(!this.handle)this.handle=this.element;if(d.scroll&&!d.scroll.scrollTo&&!d.scroll.outerHTML){d.scroll=$(d.scroll);this._isScrollChild=Element.childOf(this.element,d.scroll)}Element.makePositioned(this.element);this.options=d;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(b){if(!(!Object.isUndefined(Draggable._dragging[this.element])&&Draggable._dragging[this.element]))if(Event.isLeftClick(b))if(!((tag_name=Event.element(b).tagName.toUpperCase())&&
(tag_name=="INPUT"||tag_name=="SELECT"||tag_name=="OPTION"||tag_name=="BUTTON"||tag_name=="TEXTAREA"))){var c=[Event.pointerX(b),Event.pointerY(b)],d=Position.cumulativeOffset(this.element);this.offset=[0,1].map(function(e){return c[e]-d[e]});Draggables.activate(this);Event.stop(b)}},startDrag:function(b){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";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 c=this._getWindowScroll(this.options.scroll);this.originalScrollLeft=c.left;this.originalScrollTop=c.top}else{this.originalScrollLeft=this.options.scroll.scrollLeft;this.originalScrollTop=this.options.scroll.scrollTop}Draggables.notify("onStart",
this,b);this.options.starteffect&&this.options.starteffect(this.element)},updateDrag:function(b,c){this.dragging||this.startDrag(b);if(!this.options.quiet){Position.prepare();Droppables.show(c,this.element)}Draggables.notify("onDrag",this,b);this.draw(c);this.options.change&&this.options.change(this);if(this.options.scroll){this.stopScrolling();var d;if(this.options.scroll==window)with(this._getWindowScroll(this.options.scroll))d=[left,top,left+width,top+height];else{d=Position.page(this.options.scroll);
d[0]+=this.options.scroll.scrollLeft+Position.deltaX;d[1]+=this.options.scroll.scrollTop+Position.deltaY;d.push(d[0]+this.options.scroll.offsetWidth);d.push(d[1]+this.options.scroll.offsetHeight)}var e=[0,0];if(c[0]<d[0]+this.options.scrollSensitivity)e[0]=c[0]-(d[0]+this.options.scrollSensitivity);if(c[1]<d[1]+this.options.scrollSensitivity)e[1]=c[1]-(d[1]+this.options.scrollSensitivity);if(c[0]>d[2]-this.options.scrollSensitivity)e[0]=c[0]-(d[2]-this.options.scrollSensitivity);if(c[1]>d[3]-this.options.scrollSensitivity)e[1]=
c[1]-(d[3]-this.options.scrollSensitivity);this.startScrolling(e)}Prototype.Browser.WebKit&&window.scrollBy(0,0);Event.stop(b)},finishDrag:function(b,c){this.dragging=false;if(this.options.quiet){Position.prepare();var d=[Event.pointerX(b),Event.pointerY(b)];Droppables.show(d,this.element)}if(this.options.ghosting){this.element._originallyAbsolute||Position.relativize(this.element);delete this.element._originallyAbsolute;Element.remove(this._clone);this._clone=null}d=false;if(c)(d=Droppables.fire(b,
this.element))||(d=false);d&&this.options.onDropped&&this.options.onDropped(this.element);Draggables.notify("onEnd",this,b);var e=this.options.revert;if(e&&Object.isFunction(e))e=e(this.element);var f=this.currentDelta();if(e&&this.options.reverteffect){if(d==0||e!="failure")this.options.reverteffect(this.element,f[1]-this.delta[1],f[0]-this.delta[0])}else this.delta=f;if(this.options.zindex)this.element.style.zIndex=this.originalZ;this.options.endeffect&&this.options.endeffect(this.element);Draggables.deactivate(this);
Droppables.reset()},keyPress:function(b){if(b.keyCode==Event.KEY_ESC){this.finishDrag(b,false);Event.stop(b)}},endDrag:function(b){if(this.dragging){this.stopScrolling();this.finishDrag(b,true);Event.stop(b)}},draw:function(b){var c=Position.cumulativeOffset(this.element);if(this.options.ghosting){var d=Position.realOffset(this.element);c[0]+=d[0]-Position.deltaX;c[1]+=d[1]-Position.deltaY}d=this.currentDelta();c[0]-=d[0];c[1]-=d[1];if(this.options.scroll&&this.options.scroll!=window&&this._isScrollChild){c[0]-=
this.options.scroll.scrollLeft-this.originalScrollLeft;c[1]-=this.options.scroll.scrollTop-this.originalScrollTop}d=[0,1].map(function(f){return b[f]-c[f]-this.offset[f]}.bind(this));if(this.options.snap)d=Object.isFunction(this.options.snap)?this.options.snap(d[0],d[1],this):Object.isArray(this.options.snap)?d.map(function(f,g){return(f/this.options.snap[g]).round()*this.options.snap[g]}.bind(this)):d.map(function(f){return(f/this.options.snap).round()*this.options.snap}.bind(this));var e=this.element.style;
if(!this.options.constraint||this.options.constraint=="horizontal")e.left=d[0]+"px";if(!this.options.constraint||this.options.constraint=="vertical")e.top=d[1]+"px";if(e.visibility=="hidden")e.visibility=""},stopScrolling:function(){if(this.scrollInterval){clearInterval(this.scrollInterval);this.scrollInterval=null;Draggables._lastScrollPointer=null}},startScrolling:function(b){if(b[0]||b[1]){this.scrollSpeed=[b[0]*this.options.scrollSpeed,b[1]*this.options.scrollSpeed];this.lastScrolled=new Date;
this.scrollInterval=setInterval(this.scroll.bind(this),10)}},scroll:function(){var b=new Date,c=b-this.lastScrolled;this.lastScrolled=b;if(this.options.scroll==window)with(this._getWindowScroll(this.options.scroll)){if(this.scrollSpeed[0]||this.scrollSpeed[1]){b=c/1E3;this.options.scroll.scrollTo(left+b*this.scrollSpeed[0],top+b*this.scrollSpeed[1])}}else{this.options.scroll.scrollLeft+=this.scrollSpeed[0]*c/1E3;this.options.scroll.scrollTop+=this.scrollSpeed[1]*c/1E3}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]*c/1E3;Draggables._lastScrollPointer[1]+=this.scrollSpeed[1]*c/1E3;if(Draggables._lastScrollPointer[0]<0)Draggables._lastScrollPointer[0]=0;if(Draggables._lastScrollPointer[1]<0)Draggables._lastScrollPointer[1]=0;this.draw(Draggables._lastScrollPointer)}this.options.change&&this.options.change(this)},
_getWindowScroll:function(b){var c,d,e;with(b.document){if(b.document.documentElement&&documentElement.scrollTop){c=documentElement.scrollTop;d=documentElement.scrollLeft}else if(b.document.body){c=body.scrollTop;d=body.scrollLeft}if(b.innerWidth){e=b.innerWidth;b=b.innerHeight}else if(b.document.documentElement&&documentElement.clientWidth){e=documentElement.clientWidth;b=documentElement.clientHeight}else{e=body.offsetWidth;b=body.offsetHeight}}return{top:c,left:d,width:e,height:b}}});
Draggable._dragging={};
var SortableObserver=Class.create({initialize:function(b,c){this.element=$(b);this.observer=c;this.lastValue=Sortable.serialize(this.element)},onStart:function(){this.lastValue=Sortable.serialize(this.element)},onEnd:function(){Sortable.unmark();this.lastValue!=Sortable.serialize(this.element)&&this.observer(this.element)}}),Sortable={SERIALIZE_RULE:/^[^_\-](?:[A-Za-z0-9\-\_]*)[_](.*)$/,sortables:{},_findRootElement:function(b){for(;b.tagName.toUpperCase()!="BODY";){if(b.id&&Sortable.sortables[b.id])return b;
b=b.parentNode}},options:function(b){if(b=Sortable._findRootElement($(b)))return Sortable.sortables[b.id]},destroy:function(b){if(b=Sortable.options(b)){Draggables.removeObserver(b.element);b.droppables.each(function(c){Droppables.remove(c)});b.draggables.invoke("destroy");delete Sortable.sortables[b.element.id]}},create:function(b,c){b=$(b);var d=Object.extend({element:b,tag:"li",dropOnEmpty:false,tree:false,treeTag:"ul",overlap:"vertical",constraint:"vertical",containment:b,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},c||{});this.destroy(b);var e={revert:true,quiet:d.quiet,scroll:d.scroll,scrollSpeed:d.scrollSpeed,scrollSensitivity:d.scrollSensitivity,delay:d.delay,ghosting:d.ghosting,constraint:d.constraint,handle:d.handle};if(d.starteffect)e.starteffect=d.starteffect;if(d.reverteffect)e.reverteffect=
d.reverteffect;else if(d.ghosting)e.reverteffect=function(h){h.style.top=0;h.style.left=0};if(d.endeffect)e.endeffect=d.endeffect;if(d.zindex)e.zindex=d.zindex;var f={overlap:d.overlap,containment:d.containment,tree:d.tree,hoverclass:d.hoverclass,onHover:Sortable.onHover},g={onHover:Sortable.onEmptyHover,overlap:d.overlap,containment:d.containment,hoverclass:d.hoverclass};Element.cleanWhitespace(b);d.draggables=[];d.droppables=[];if(d.dropOnEmpty||d.tree){Droppables.add(b,g);d.droppables.push(b)}(d.elements||
this.findElements(b,d)||[]).each(function(h,k){var l=d.handles?$(d.handles[k]):d.handle?$(h).select("."+d.handle)[0]:h;d.draggables.push(new Draggable(h,Object.extend(e,{handle:l})));Droppables.add(h,f);if(d.tree)h.treeNode=b;d.droppables.push(h)});if(d.tree)(Sortable.findTreeElements(b,d)||[]).each(function(h){Droppables.add(h,g);h.treeNode=b;d.droppables.push(h)});this.sortables[b.id]=d;Draggables.addObserver(new SortableObserver(b,d.onUpdate))},findElements:function(b,c){return Element.findChildren(b,
c.only,c.tree?true:false,c.tag)},findTreeElements:function(b,c){return Element.findChildren(b,c.only,c.tree?true:false,c.treeTag)},onHover:function(b,c,d){if(!Element.isParent(c,b))if(!(d>0.33&&d<0.66&&Sortable.options(c).tree))if(d>0.5){Sortable.mark(c,"before");if(c.previousSibling!=b){d=b.parentNode;b.style.visibility="hidden";c.parentNode.insertBefore(b,c);c.parentNode!=d&&Sortable.options(d).onChange(b);Sortable.options(c.parentNode).onChange(b)}}else{Sortable.mark(c,"after");var e=c.nextSibling||
null;if(e!=b){d=b.parentNode;b.style.visibility="hidden";c.parentNode.insertBefore(b,e);c.parentNode!=d&&Sortable.options(d).onChange(b);Sortable.options(c.parentNode).onChange(b)}}},onEmptyHover:function(b,c,d){var e=b.parentNode,f=Sortable.options(c);if(!Element.isParent(c,b)){var g=Sortable.findElements(c,{tag:f.tag,only:f.only}),h=null;if(g){var k=Element.offsetSize(c,f.overlap)*(1-d);for(d=0;d<g.length;d+=1)if(k-Element.offsetSize(g[d],f.overlap)>=0)k-=Element.offsetSize(g[d],f.overlap);else{h=
k-Element.offsetSize(g[d],f.overlap)/2>=0?d+1<g.length?g[d+1]:null:g[d];break}}c.insertBefore(b,h);Sortable.options(e).onChange(b);f.onChange(b)}},unmark:function(){Sortable._marker&&Sortable._marker.hide()},mark:function(b,c){var d=Sortable.options(b.parentNode);if(!(d&&!d.ghosting)){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 e=
Position.cumulativeOffset(b);Sortable._marker.setStyle({left:e[0]+"px",top:e[1]+"px"});if(c=="after")d.overlap=="horizontal"?Sortable._marker.setStyle({left:e[0]+b.clientWidth+"px"}):Sortable._marker.setStyle({top:e[1]+b.clientHeight+"px"});Sortable._marker.show()}},_tree:function(b,c,d){for(var e=Sortable.findElements(b,c)||[],f=0;f<e.length;++f){var g=e[f].id.match(c.format);if(g){g={id:encodeURIComponent(g?g[1]:null),element:b,parent:d,children:[],position:d.children.length,container:$(e[f]).down(c.treeTag)};
g.container&&this._tree(g.container,c,g);d.children.push(g)}}return d},tree:function(b,c){b=$(b);var d=this.options(b);d=Object.extend({tag:d.tag,treeTag:d.treeTag,only:d.only,name:b.id,format:d.format},c||{});return Sortable._tree(b,d,{id:null,parent:null,children:[],container:b,position:0})},_constructIndex:function(b){var c="";do if(b.id)c="["+b.position+"]"+c;while((b=b.parent)!=null);return c},sequence:function(b,c){b=$(b);var d=Object.extend(this.options(b),c||{});return $(this.findElements(b,
d)||[]).map(function(e){return e.id.match(d.format)?e.id.match(d.format)[1]:""})},setSequence:function(b,c,d){b=$(b);var e=Object.extend(this.options(b),d||{}),f={};this.findElements(b,e).each(function(g){if(g.id.match(e.format))f[g.id.match(e.format)[1]]=[g,g.parentNode];g.parentNode.removeChild(g)});c.each(function(g){var h=f[g];if(h){h[1].appendChild(h[0]);delete f[g]}})},serialize:function(b,c){b=$(b);var d=Object.extend(Sortable.options(b),c||{}),e=encodeURIComponent(c&&c.name?c.name:b.id);return d.tree?
Sortable.tree(b,c).children.map(function(f){return[e+Sortable._constructIndex(f)+"[id]="+encodeURIComponent(f.id)].concat(f.children.map(arguments.callee))}).flatten().join("&"):Sortable.sequence(b,c).map(function(f){return e+"[]="+encodeURIComponent(f)}).join("&")}};Element.isParent=function(b,c){if(!b.parentNode||b==c)return false;if(b.parentNode==c)return true;return Element.isParent(b.parentNode,c)};
Element.findChildren=function(b,c,d,e){if(!b.hasChildNodes())return null;e=e.toUpperCase();if(c)c=[c].flatten();var f=[];$A(b.childNodes).each(function(g){if(g.tagName&&g.tagName.toUpperCase()==e&&(!c||Element.classNames(g).detect(function(h){return c.include(h)})))f.push(g);if(d)(g=Element.findChildren(g,c,d,e))&&f.push(g)});return f.length>0?f.flatten():[]};Element.offsetSize=function(b,c){return b["offset"+(c=="vertical"||c=="height"?"Height":"Width")]};var SMW_CATEGORY_NS=14,SMW_PROPERTY_NS=102,SMW_INSTANCE_NS=0,SMW_ENUM_POSSIBLE_VALUE_OR_UNIT=500,SMW_AC_MANUAL_TRIGGERING_TIME=500,SMW_AC_AUTO_TRIGGERING_TIME=800,SMW_AJAX_AC=1;function autoCompletionsOptions(b){processAutoCompletionOptions(b.responseText);document.cookie="AC_options="+b.responseText+";path="+wgScriptPath+"/;"}
function processAutoCompletionOptions(b){b.split(",").each(function(c){c=c.split("=");if(c[0]=="smwhactriggering")autoCompleter.autoTriggering=c[1].indexOf("auto")!=-1;else acNamespaceRegistry.registerNamespace(c[0],c[1])})}var ACNamespaceRegistry=Class.create();ACNamespaceRegistry.prototype={initialize:function(){this.imageregistry={}},registerNamespace:function(b,c){this.imageregistry[b]=c},getImgPath:function(b){return this.imageregistry[b]}};acNamespaceRegistry=new ACNamespaceRegistry;
var AutoCompleter=Class.create();
AutoCompleter.prototype={initialize:function(){this.userContext=this.userInputToMatch=null;this.collection=[];this.ignorePending=false;this.articleRegEx=/((([\w\d])+\:)?([\w\d][\w\d\.\(\)\-\/\s]*)|(([\w\d])+\:))$/;this.timer=null;this.autoTriggering=false;this.siw=this.textAreas=this.allInputs=null;this.mousePressed=false;this.AC_userDefinedX=this.AC_userDefinedY=this.AC_xDiff=this.AC_yDiff=this.AC_idCounter=0;this.notMoved=false;this.currentIESelection=null;this.acMaxMatches=15},freezeEvent:function(b){b.preventDefault&&
b.preventDefault();b.returnValue=false;b.cancelBubble=true;b.stopPropagation&&b.stopPropagation();return false},isWithinNode:function(b,c,d,e,f){var g=false;for(b=b;b&&!g;)if(b.id&&b.id==c||b.className&&b.className==c+"Class"||!e&&d&&b.className&&b.className==d||!e&&d&&b.className&&b.className.indexOf(d)!=-1||e&&b.tagName&&b.tagName.toLowerCase()==e||f&&b==f)g=b;else b=b.parentNode;return b},isWithinNodeSimple:function(b,c){if(!b||b==null)return false;for(;b&&b.nodeType!=9;){var d=OB_bd.isIE?b.id:
b.getAttribute("id");if(d&&d!=null&&d.indexOf(c)>=0)break;b=b.parentNode}return b&&b.nodeType!=9?true:false},getEventElement:function(b){return b.srcElement?b.srcElement:b.target?b.target:b.currentTarget},findElementPosXY:function(b){var c=0,d=0;if(b.offsetParent)for(;b.offsetParent;){c+=b.offsetLeft;d+=b.offsetTop;b=b.offsetParent}else{if(b.x)c+=b.x;if(b.y)d+=b.y}return[c,d]},isInIframe:function(b){for(var c=b;c;){b=c;c=b.parentNode}for(i=0;i<window.parent.frames.length;i++)if(window.parent.frames[i].document==
b)return true;return false},handleKeyPress:function(b){var c=GeneralTools.getEvent(b),d=this.getEventElement(c);b=d.className.indexOf("wickEnabled")>=0?d:undefined;var e=c.keyCode,f=this.siw&&this.siw.floater.style.visibility=="visible";if(OB_bd.isIE)this.currentIESelection=document.selection.createRange();if(f&&this.siw&&(e==13||e==9)){this.siw.selectingSomething=true;OB_bd.isSafari&&this.siw.inputBox.blur();this.siw.inputBox.focus();this.hideSmartInputFloater()}else if(b&&e!=38&&e!=40&&e!=37&&e!=
39&&e!=13&&e!=27){if(!this.siw||this.siw&&!this.siw.selectingSomething)if(c.ctrlKey&&e==32||f){if(OB_bd.isIE&&!f&&!c.altKey&&typeof FCKeditor=="undefined"){c=this.getUserInputToMatch();d=document.selection.createRange();d.moveStart("character",-c.length-1);d.text=c.substr(0,c.length-1);d.collapse(false)}if(!this.siw)this.siw=new SmartInputWindow;this.currentInputBox=this.siw.inputBox=b;this.constraints=this.siw.inputBox.getAttribute("constraints")==null?"":this.siw.inputBox.getAttribute("constraints");
this.userInputToMatch=this.getUserInputToMatch();if(this.userInputToMatch.length>=0){this.userContext=this.getUserContext();this.timer&&window.clearTimeout(this.timer);this.timer=window.setTimeout("autoCompleter.timedAC(autoCompleter.userInputToMatch, autoCompleter.userContext, autoCompleter.currentInputBox, autoCompleter.constraints)",SMW_AC_MANUAL_TRIGGERING_TIME)}else this.hideSmartInputFloater()}else if(this.autoTriggering)if(!(e==17||e==18)){if(!this.siw)this.siw=new SmartInputWindow;this.currentInputBox=
this.siw.inputBox=b;this.constraints=this.siw.inputBox.getAttribute("constraints")==null?"":this.siw.inputBox.getAttribute("constraints");if(GeneralBrowserTools.isTextSelected(this.siw.inputBox))this.hideSmartInputFloater();else{this.userContext=this.getUserContext();if(this.userContext.match(/^\[\[/)||this.userContext.match(/^\{\{/)||this.constraints!=""){this.userInputToMatch=this.getUserInputToMatch();if(this.userInputToMatch.length>=1){this.timer&&window.clearTimeout(this.timer);this.timer=window.setTimeout("autoCompleter.timedAC(autoCompleter.userInputToMatch, autoCompleter.userContext, autoCompleter.currentInputBox, autoCompleter.constraints)",
SMW_AC_AUTO_TRIGGERING_TIME)}else this.hideSmartInputFloater()}else{this.siw.inputBox.focus();this.hideSmartInputFloater()}}}}else if(e==27){this.hideSmartInputFloater();this.freezeEvent(c);this.resetCursorinIE()}else this.siw&&this.siw.inputBox&&d!=null&&d.tagName=="HTML"&&f&&this.siw.inputBox.focus()},timedAC:function(b,c,d,e){function f(h){this.hidePendingAJAXIndicator();if(!this.ignorePending)if(h.status!=200)this.hideSmartInputFloater();else{if(h.responseText.indexOf("noResult")!=-1)this.collection=
[];else{this.collection=this.getMatchItems(h.responseText);this.collection.length>0&&AC_matchCache.addLookup(c+b,this.collection,e)}this.processSmartInput(d,b)}}this.notMoved=true;this.ignorePending=false;var g=AC_matchCache.getLookup(c+b,e);if(g==null){if(b!=null){this.showPendingAJAXIndicator(d);this.resetCursorinIE();sajax_do_call("smwf_ac_AutoCompletionDispatcher",[wgTitle,b,c,e],f.bind(this),SMW_AJAX_AC)}}else{this.collection=g;this.processSmartInput(d,b)}},handleKeyDown:function(b){b=GeneralTools.getEvent(b);
this.getEventElement(b);if(this.siw&&(kc=b.keyCode))if(kc==40&&this.siw.floater.style.visibility=="visible"){this.siw.selectingSomething=true;this.freezeEvent(b);this.selectNextSmartInputMatchItem()}else if(kc==38&&this.siw.floater.style.visibility=="visible"){this.siw.selectingSomething=true;this.freezeEvent(b);this.selectPreviousSmartInputMatchItem()}else if(kc==13&&this.siw.floater.style.visibility=="visible"){this.siw.selectingSomething=true;this.activateCurrentSmartInputMatch();this.hideSmartInputFloater();
this.freezeEvent(b)}else if(kc==9){ajaxRequestManager.stopCalls(SMW_AJAX_AC,this.hidePendingAJAXIndicator);this.hideSmartInputFloater()}else if(kc==27){ajaxRequestManager.stopCalls(SMW_AJAX_AC,this.hidePendingAJAXIndicator);smwhgLogger.log("","AC","close_without_selection");this.hideSmartInputFloater();this.freezeEvent(b);this.resetCursorinIE()}else this.siw.selectingSomething=false},handleFocus:function(){},handleBlur:function(b){if(blurEl=this.isWithinNode(this.getEventElement(GeneralTools.getEvent(b)),
null,"wickEnabled",null,null))this.siw&&!this.siw.selectingSomething&&this.hideSmartInputFloater();this.timer&&window.clearTimeout(this.timer);ajaxRequestManager.stopCalls(SMW_AJAX_AC,this.hidePendingAJAXIndicator)},handleClick:function(b){this.getEventElement(GeneralTools.getEvent(b));this.mousePressed=false;if(this.siw&&this.siw.selectingSomething){this.resetCursorinIE();this.selectFromMouseClick()}},handleMouseOver:function(b){if(!this.notMoved){b=this.getEventElement(GeneralTools.getEvent(b));
if(this.siw&&(mEl=this.isWithinNode(b,null,"matchedSmartInputItem",null,null))){this.siw.selectingSomething=true;this.selectFromMouseOver(mEl)}else if(this.isWithinNode(b,null,"siwCredit",null,null))this.siw.selectingSomething=true;else if(this.siw)this.siw.selectingSomething=false}},handleMouseDown:function(b){b=GeneralTools.getEvent(b);this.getEventElement(b);var c=Event.element(b);if(this.siw&&c&&(Element.hasClassName(c,"MWFloaterContentHeader")||Element.hasClassName(c.parentNode,"MWFloaterContentHeader"))){this.mousePressed=
true;c=this.findElementPosXY(this.siw.inputBox);this.AC_yDiff=b.pageY-c[1]-parseInt(this.siw.floater.style.top);this.AC_xDiff=b.pageX-c[0]-parseInt(this.siw.floater.style.left)}else if(!this.isWithinNodeSimple(c,"smartInputFloaterContent")&&!this.isWithinNodeSimple(c,this.siw?this.siw.getMWFloaterId():"undefined"))this.hideSmartInputFloater()},handleMouseMove:function(b){this.notMoved=false;if(!OB_bd.isIE){b=GeneralTools.getEvent(b);this.getEventElement(b);if(this.mousePressed&&this.siw){var c=this.findElementPosXY(this.siw.inputBox);
this.siw.floater.style.top=b.pageY-c[1]-this.AC_yDiff+"px";this.siw.floater.style.left=b.pageX-c[0]-this.AC_xDiff+"px";this.AC_userDefinedY=b.pageY-c[1]-this.AC_yDiff;this.AC_userDefinedX=b.pageX-c[0]-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){if(!this.siw.inputBox)return;
if((OB_bd.isGecko||OB_bd.isIE)&&this.siw.inputBox.tagName=="TEXTAREA"){b=GeneralBrowserTools.getCookie("this.AC_userDefinedX");c=GeneralBrowserTools.getCookie("this.AC_userDefinedY");if(b!=null&&c!=null){this.siw.floater.style.left=b+"px";this.siw.floater.style.top=c+"px"}else{this.siw.floater.style.left=0;this.siw.floater.style.top=0}}}else{var b=Position.cumulativeOffset(this.siw.inputBox)[0],c=Position.cumulativeOffset(this.siw.inputBox)[1]+this.siw.inputBox.offsetHeight;if(!OB_bd.isGecko&&!OB_bd.isIE)b+=
8;if(!OB_bd.isGecko&&!OB_bd.isIE)c+=10;var d=this.currentInputBox!=null?this.currentInputBox.getAttribute("position"):null;if(d==null||d=="absolute"){Element.setStyle(this.siw.floater,{position:"absolute"});b=b-Position.page(document.body)[0]-Position.realOffset(document.body)[0]}else d=="fixed"&&Element.setStyle(this.siw.floater,{position:"fixed"});if(window.tf!=undefined){d=tf.getPositionForAC(this.siw.inputBox);if(d!=false){b=d.left;c=d.top}}d=this.currentInputBox!=null?this.currentInputBox.getAttribute("alignfloater"):
null;var e=document.body;if(d==null||d=="left")this.siw.floater.style.left=b+"px";else if(e.offsetWidth==0){if(typeof window.innerWidth!=="undefined")this.siw.floater.style.right=window.innerWidth-b-this.currentInputBox.offsetWidth+"px"}else this.siw.floater.style.right=e.offsetWidth-b-this.currentInputBox.offsetWidth+"px";this.siw.floater.style.top=c+"px"}this.siw.floater.style.display="block";this.siw.floater.style.visibility="visible";this.resetCursorinIE()}},resetCursorinIE:function(){if(OB_bd.isIE)if((this.siw&&
this.siw.inputBox?this.siw.inputBox.getAttribute("id"):null)!="searchInput"){this.currentIESelection.scrollIntoView(true);this.currentIESelection.collapse(false);this.currentIESelection.select()}},showPendingAJAXIndicator:function(b){var c=$("pendingAjaxIndicator");c.style.position="";if(!this.siw)this.siw=new SmartInputWindow;if(OB_bd.isIE&&b.tagName=="TEXTAREA"){c.style.left="0px";c.style.top="0px"}if(OB_bd.isGecko&&b.tagName=="TEXTAREA"){var d=GeneralBrowserTools.getCookie("this.AC_userDefinedX"),
e=GeneralBrowserTools.getCookie("this.AC_userDefinedY");if(d!=null&&e!=null){c.style.left=parseInt(d)+"px";c.style.top=parseInt(e)+"px"}else if(window.tf!=undefined){d=tf.getPositionForAC(b);if(d!=false){c.style.position="absolute";c.style.left=d.left+"px";c.style.top=d.top+"px"}else{c.style.left="0px";c.style.top="0px"}}else{c.style.left="0px";c.style.top="0px"}}if(b.tagName!="TEXTAREA"){c.style.left=Position.cumulativeOffset(b)[0]+"px";c.style.top=Position.cumulativeOffset(b)[1]+"px"}c.style.display=
"block";c.style.visibility="visible"},hidePendingAJAXIndicator:function(){var b=$("pendingAjaxIndicator");b.style.display="none";b.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(b,c){if(this.siw){var d=b.className.split(" "),e=null;for(i=0;!e&&d[i];i++)if(d[i].indexOf("wickEnabled")!=-1)e=d[i];if(e&&e.indexOf(":")!=-1){this.siw.customFloater=true;d=
e.split(":")[1];this.siw.floater=document.getElementById(d);if(!this.siw.floater)this.siw.floater=window.frames[0].document.getElementById(d);this.siw.floaterContent=this.siw.floater.getElementsByTagName("div")[OB_bd.isGecko?1:0]}this.setSmartInputData(c);if(d=this.getSmartInputBoxContent()){this.modifySmartInputBoxContent(d);this.showSmartInputFloater()}else this.hideSmartInputFloater()}},simplify:function(b){return(b.indexOf("|")!=-1?b.substring(0,b.indexOf("|")).strip():b).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 b=this.getTextBeforeCursor().match(this.articleRegEx);return b?b[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 b=
this.getTextBeforeCursor(),c=Math.max(b.lastIndexOf("[["),b.lastIndexOf("{{"));c=Math.max(b.lastIndexOf("{{"),c);var d=Math.max(b.lastIndexOf("]]"),b.lastIndexOf("}}"));if(c!=-1&&c>d){d=this.getUserInputToMatch();if(d!=null)return b.substring(c,b.length-d.length)}}return""},getTextBeforeCursor:function(){if(OB_bd.isIE){this.siw.inputBox.focus();var b=document.selection.createRange(),c=document.selection.createRange();c.moveToElementText(this.siw.inputBox);b.setEndPoint("StartToStart",c);return b.text}else if(OB_bd.isGecko)return this.siw.inputBox.value.substring(0,
this.siw.inputBox.selectionStart);return""},getTextAfterCursor:function(){if(OB_bd.isIE){var b=document.selection.createRange(),c=document.selection.createRange();c.moveToElementText(this.siw.inputBox);b.setEndPoint("EndToEnd",c);return b.text}else if(OB_bd.isGecko)return this.siw.inputBox.value.substring(this.siw.inputBox.selectionStart);return""},getUserInputBase:function(){var b=this.siw.inputBox.value,c=b.lastIndexOf(",");return b.substr(0,c+1)},highlightMatches:function(b){b=this.simplify(b);
b=b.replace(/\s/,"_");if(this.siw)this.siw.matchCollection=[];var c=this.collection,d=RegExp('([ "><-]*)('+b+")","i"),e=RegExp('([ "><-]+)('+b+")","i"),f=RegExp('([ "}{-]*)('+b+")","gi"),g=RegExp('([ "}{-]+)('+b+")","gi"),h=RegExp("(([+-]?d*(.d+([eE][+-]?d*)?)?)s+)?(.*)","gi");for(j=i=0;i<c.length;i++){var k=j<this.acMaxMatches,l=c[i],m=this.simplify(l.getText()+l.getPasteContent());if(m.indexOf(b)==0){b=b.replace(/\>/gi,"\\}").replace(/\< ?/gi,"\\{");re=RegExp("("+b+")","i");if(k)this.siw.matchCollection[j]=
new SmartInputMatch(l.getText()+l.getPasteContent(),m.replace(/\>/gi,"}").replace(/\< ?/gi,"{").replace(re,"<b>$1</b>").replace(/_/g," "),l.getType(),l.getNsText(),l.getExtraData(),l.isInferred(),l.getImageURL());j++}else if(m.match(d)||m.match(e)){if(k)this.siw.matchCollection[j]=new SmartInputMatch(l.getText()+l.getPasteContent(),m.replace(/\>/gi,"}").replace(/\</gi,"{").replace(f,"$1<b>$2</b>").replace(g,"$1<b>$2</b>").replace(/_/g," "),l.getType(),l.getNsText(),l.getExtraData(),l.isInferred(),
l.getImageURL());j++}else if(m.match(h)){if(k)this.siw.matchCollection[j]=new SmartInputMatch(l.getText()+l.getPasteContent(),m.replace(/\>/gi,"}").replace(/\</gi,"{").replace(f,"$1<b>$2</b>").replace(g,"$1<b>$2</b>").replace(/_/g," "),l.getType(),l.getNsText(),l.getExtraData(),l.isInferred(),l.getImageURL());j++}}},setSmartInputData:function(b){if(this.siw){b=b.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(b!=null&&b!='"')this.highlightMatches(b);else this.siw.matchCollection=null}},getSmartInputBoxContent:function(){var b="";if(this.siw&&this.siw.matchCollection&&this.siw.matchCollection.length>0){for(i=0;i<this.siw.matchCollection.length;i++){selectedString=this.siw.matchCollection[i].isSelected?" selectedSmartInputItem":"";selectedString+=this.siw.matchCollection[i].isInferred?" inferredSmartInputItem":"";b+=
'<p id="'+("selected"+i)+'" class="matchedSmartInputItem'+selectedString+'">'+this.siw.matchCollection[i].getImageTag()+"\t"+this.siw.matchCollection[i].value.replace(/\{ */gi,"&lt;").replace(/\} */gi,"&gt;")+'<span class="extraDataSmartInputItem">'+this.siw.matchCollection[i].getExtraData()+"</span></p>"}if(this.siw.matchCollection.length==this.acMaxMatches)b+='<div id="ac_toomuchresults" title="'+gLanguage.getMessage("AC_MORE_RESULTS_TOOLTIP")+'">[...] '+gLanguage.getMessage("AC_MORE_RESULTS_AVAILABLE")+
"</div>"}else if(this.siw&&this.siw.matchCollection&&this.siw.matchCollection.length==0)b+='<div id="ac_toomuchresults" title="'+gLanguage.getMessage("AC_NO_RESULTS")+'">'+gLanguage.getMessage("AC_NO_RESULTS")+"</div>";return b},modifySmartInputBoxContent:function(b){this.siw.floaterContent.innerHTML='<div id="smartInputResults">'+b+(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");this.userContext!=null&&this.userContext!=""&&this.scrollToSelectedItem()},scrollToSelectedItem:function(){for(i=0;i<this.siw.matchCollection.length;i++)if(this.siw.matchCollection[i].isSelected){document.getElementById("selected"+i).scrollIntoView(false);return}},selectFromMouseOver:function(b){var c=this.getCurrentlySelectedSmartInputItem();c!=null&&this.deSelectSmartInputMatchItem(c);this.selectSmartInputMatchItem(this.getIndexFromElement(b));
this.modifySmartInputBoxContent(this.getSmartInputBoxContent())},selectFromMouseClick:function(){this.activateCurrentSmartInputMatch();if((this.siw.inputBox?this.siw.inputBox.getAttribute("id"):null)!="searchInput"){this.siw.inputBox.focus();this.siw.inputBox.blur()}this.hideSmartInputFloater()},getIndexFromElement:function(b){for(var c=0;b=b.previousSibling;)c++;return c},getCurrentlySelectedSmartInputItem:function(){var b=null;if(this.siw.matchCollection){for(i=0;i<this.siw.matchCollection.length&&
!b;i++)if(this.siw.matchCollection[i].isSelected)b=i;return b}},selectSmartInputMatchItem:function(b){if(this.siw.matchCollection)this.siw.matchCollection[b].isSelected=true},deSelectSmartInputMatchItem:function(b){if(this.siw.matchCollection)this.siw.matchCollection[b].isSelected=false},selectNextSmartInputMatchItem:function(){if(this.siw.matchCollection){currentIndex=this.getCurrentlySelectedSmartInputItem();if(currentIndex!=null){this.deSelectSmartInputMatchItem(currentIndex);currentIndex+1<this.siw.matchCollection.length?
this.selectSmartInputMatchItem(currentIndex+1):this.selectSmartInputMatchItem(0)}else this.selectSmartInputMatchItem(0);this.modifySmartInputBoxContent(this.getSmartInputBoxContent())}},selectPreviousSmartInputMatchItem:function(){if(this.siw.matchCollection){var b=this.getCurrentlySelectedSmartInputItem();if(b!=null){this.deSelectSmartInputMatchItem(b);b-1>=0?this.selectSmartInputMatchItem(b-1):this.selectSmartInputMatchItem(this.siw.matchCollection.length-1)}else this.selectSmartInputMatchItem(this.siw.matchCollection.length-
1);this.modifySmartInputBoxContent(this.getSmartInputBoxContent())}},activateCurrentSmartInputMatch:function(){var b=this.getUserInputBase();if((selIndex=this.getCurrentlySelectedSmartInputItem())!=null){addedValue=this.siw.matchCollection[selIndex].cleanValue;this.insertTerm(addedValue,b,this.siw.matchCollection[selIndex]);this.ignorePending=true}else smwhgLogger.log("","AC","close_without_selection")},insertTerm:function(b,c,d){var e=d.getType();d=d.getNsText();b=b.replace(/_/g," ");var f=this.getUserContext();
if(this.siw.customFloater)if((f.match(/:=/)||f.match(/::/)||f.match(/category:/i))&&!this.getTextAfterCursor().match(/^(\s|\r|\n)*\]\]|^(\s|\r|\n)*\||^(\s|\r|\n)*;/))b+="]]";else if(!(f.match(/\?/)||f.match(/\|/)))if(e==SMW_PROPERTY_NS&&gLanguage.getMessage("PROPERTY_NS_WOC")!=b)b+="::";else if(e==SMW_INSTANCE_NS)f.match(/|(\s|\r|\n)*$/)||(b+="]]");else if(b.match("/"+gLanguage.getMessage("CATEGORY_NS_WOC")+"/i"))b+=":";else f.match(/^\{\{/i)||this.getTextAfterCursor().match(/^(\s|\r|\n)*\]\]|^(\s|\r|\n)*\||^(\s|\r|\n)*;/)||
(b+=":");if(OB_bd.isIE&&this.siw.inputBox.tagName=="TEXTAREA"){this.siw.inputBox.focus();this.currentIESelection.collapse(false);this.currentIESelection.select();c=this.getUserInputToMatch();if(e==SMW_ENUM_POSSIBLE_VALUE_OR_UNIT)c=this.removeNumberFromMeasure(c);var g=this.siw.inputBox!=null?this.siw.inputBox.getAttribute("pasteNS"):null;d=g&&d!=null&&d!=""?d+":":"";e=document.selection.createRange();e.moveStart("character",-c.length);e.text=d+b;e.collapse(false);e.select();typeof refreshSTB!="undefined"&&
refreshSTB.changed();smwhgLogger.log(c+b,"AC","close_with_selection")}else if(OB_bd.isGecko&&this.siw.inputBox.tagName=="TEXTAREA"){c=this.getUserInputToMatch();if(e==SMW_ENUM_POSSIBLE_VALUE_OR_UNIT)c=this.removeNumberFromMeasure(c);e=this.siw.inputBox.scrollTop;f=this.siw.inputBox.selectionStart;var h=this.siw.inputBox.value.substring(0,f-c.length),k=this.siw.inputBox.value.substring(f);d=(g=this.siw.inputBox!=null?this.siw.inputBox.getAttribute("pasteNS"):null)&&d!=null&&d!=""?d+":":"";g=h+d+b+
k;this.siw.inputBox.value=g;this.siw.inputBox.selectionStart=f+(d.length+b.length)-c.length;this.siw.inputBox.selectionEnd=f+(d.length+b.length)-c.length;this.siw.inputBox.scrollTop=e;typeof refreshSTB!="undefined"&&refreshSTB.changed();smwhgLogger.log(c+b,"AC","close_with_selection")}else{g=this.currentInputBox!=null?this.currentInputBox.getAttribute("pasteNS"):null;d=g=="true"&&d!=null&&d!=""?d+":":"";g=(c?c:"")+d+b;this.siw.inputBox.value=g;smwhgLogger.log(g,"AC","close_with_selection")}},removeNumberFromMeasure:function(b){b=
b;var c=b.match(/[+-]?\d+(\.\d+([eE][+-]?\d*)?)?_+/gi);if(c)b=b.substr(c[0].length);return b},registerSmartInputListeners:function(){document.getElementsByTagName("input");var b=[];b[0]=document.getElementById("wpTextbox1");AC_matchCache=new MatchCache;this.registerAllInputs();this.textAreas=[];var c=0;if(b)for(;b[c];){this.textAreas.push(b[c]);this.createEmbeddingContainer(b[c]);c++}b=document.body;b.appendChild(this.createFloater());c=this.createPendingAJAXIndicator();b.appendChild(c);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||OB_bd.isIE)Event.observe(document,"mousedown",this.handleMouseDown.bindAsEventListener(this),false);Event.observe(document,"mouseover",this.handleMouseOver.bindAsEventListener(this),
false);$$("input.wickEnabled").each(function(d){jQuery(d).qtip({content:"",show:{effect:{length:500},when:{event:"mouseover"}},api:{beforeShow:function(e){e=e.target.getAttribute("constraints");e=autoCompleter.translateACHint(e);this.updateContent(e)}},hide:{when:{event:"mouseout"},fixed:true},position:{corner:{target:"topLeft",tooltip:"bottomLeft"}},style:{tip:"bottomLeft",width:300}})})},translateACHint:function(b){if(b==null||b=="")b="all";b=jQuery.trim(b);var c="";b.split("|").each(function(d){var e=
d.indexOf(":"),f="",g="";if(e!=-1){g=jQuery.trim(d.substr(0,e));f=jQuery.trim(d.substr(e+1))}if(b=="all")c+=gLanguage.getMessage("AC_ALL");else if(g=="ask")c+=gLanguage.getMessage("AC_QUERY")+f;else if(g=="schema-property-domain")c+=gLanguage.getMessage("AC_SCHEMA_PROPERTY_DOMAIN")+f;else if(g=="schema-property-range-instance")c+=gLanguage.getMessage("AC_SCHEMA_PROPERTY_RANGE_INSTANCE")+f;else if(g=="domainless-property")c+=gLanguage.getMessage("AC_DOMAINLESS_PROPERTY")+f;else if(g=="annotation-property")c+=
gLanguage.getMessage("AC_ANNOTATION_PROPERTY")+f;else if(g=="annotation-value")c+=gLanguage.getMessage("AC_ANNOTATION_VALUE")+f;else if(g=="instance-property-range")c+=gLanguage.getMessage("AC_INSTANCE_PROPERTY_RANGE")+f;else if(g=="namespace"){var h=f.split(","),k="",l=0;h.each(function(m){if(isNaN(m))k+=m;else{m=Number(m);k+=wgFormattedNamespaces[m]}l++;if(l<h.length)k+=", "});c+=gLanguage.getMessage("AC_NAMESPACE")+k}else c+=g=="lexical"?gLanguage.getMessage("AC_LEXICAL")+f:g=="schema-property-type"?
gLanguage.getMessage("AC_SCHEMA_PROPERTY_TYPE")+f:g=="asf-ac"?gLanguage.getMessage("AC_ASF")+f:g=="from-bundle"?gLanguage.getMessage("AC_FROM_BUNDLE")+f:"Unknown constraint: "+d});return c},registerAllInputs:function(){var b=document.getElementsByTagName("input");this.allInputs=[];var c=0,d=0,e=null;if(b)for(;b[c];){if((i=b[c].id)&&i.indexOf("searchInput")!=-1||(e=b[c].className)&&e.indexOf("wickenabled")!=-1){this.allInputs[d]=[];this.allInputs[d][0]=b[c];this.allInputs[d][0].setAttribute("autocomplete",
"OFF");this.allInputs[d][0].setAttribute("class","wickEnabled");i.indexOf("searchInput")!=-1&&this.allInputs[d][0].setAttribute("pasteNS","true");this.allInputs[d][1]=this.handleBlur.bindAsEventListener(this);Event.observe(this.allInputs[d][0],"blur",this.allInputs[d][1]);d++}c++}},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(b,c){if(c&&b){var d=c.document.getElementById(b);
if(d)if(this.textAreas.indexOf(d)==-1){this.textAreas.push(d);this.createEmbeddingContainer(d,c);d=c.document;Event.observe(d,"keydown",this.handleKeyDown.bindAsEventListener(this),false);Event.observe(d,"keyup",this.handleKeyPress.bindAsEventListener(this),false);Event.observe(d,"mouseup",this.handleClick.bindAsEventListener(this),false);if(OB_bd.isGecko){Event.observe(d,"mousedown",this.handleMouseDown.bindAsEventListener(this),false);Event.observe(d,"mousemove",this.handleMouseMove.bindAsEventListener(this),
false)}Event.observe(d,"mouseover",this.handleMouseOver.bindAsEventListener(this),false)}}},createEmbeddingContainer:function(b,c){var d=document.createElement("div");d.setAttribute("style","position:relative;text-align:left");var e=document.createElement("div");e.setAttribute("id","MWFloater"+this.AC_idCounter);Element.addClassName(e,"MWFloater");var f=document.createElement("div");Element.addClassName(f,"MWFloaterContent");if(OB_bd.isGecko){var g=document.createElement("div");Element.addClassName(g,
"MWFloaterContentHeader");var h=document.createElement("span");h.setAttribute("style","margin-left:5px;");h.innerHTML=gLanguage.getMessage("AC_CLICK_TO_DRAG");var k=document.createElement("img");Element.addClassName(k,"closeFloater");k.setAttribute("src",wgServer+wgScriptPath+"/extensions/SMWHalo/skins/Autocompletion/close.gif");typeof FCKeditor!="undefined"?k.setAttribute("onclick","javascript:window.top.autoCompleter.hideSmartInputFloater()"):k.setAttribute("onclick","javascript:autoCompleter.hideSmartInputFloater()");
k.setAttribute("style","margin-left:4px;margin-bottom:3px;");g.appendChild(k);g.appendChild(h);e.appendChild(g)}d.appendChild(e);e.appendChild(f);e=document.body;Element.addClassName(d,"wickEnabled:MWFloater"+this.AC_idCounter);Element.addClassName(b,"wickEnabled:MWFloater"+this.AC_idCounter);e.appendChild(d);d=document.createElement("div");Element.addClassName(d,"acMessage");d.innerHTML=gLanguage.getMessage("AUTOCOMPLETION_HINT");if(GeneralBrowserTools.getURLParameter("mode")=="wysiwyg")d.innerHTML+=
" "+gLanguage.getMessage("WW_AUTOCOMPLETION_HINT");d.setAttribute("id","smwhalo_acHint");e=!c?$("editpage-copywarn"):c.document.getElementById("editpage-copywarn");$("smwhalo_acHint")||b.parentNode.insertBefore(d,e);this.AC_idCounter++},createFloater:function(){var b=document.createElement("table"),c=document.createElement("tbody");b.setAttribute("id","smartInputFloater");Element.addClassName(b,"floater");b.setAttribute("cellpadding","0");b.setAttribute("cellspacing","0");var d=document.createElement("tr"),
e=document.createElement("td");e.setAttribute("id","smartInputFloaterContent");e.setAttribute("nowrap","nowrap");d.appendChild(e);c.appendChild(d);b.appendChild(c);return b},createPendingAJAXIndicator:function(){var b=document.createElement("img");Element.addClassName(b,"pendingElement");b.setAttribute("src",wgServer+wgScriptPath+"/extensions/SMWHalo/skins/Autocompletion/pending.gif");b.setAttribute("id","pendingAjaxIndicator");return b},getMatchItems:function(b){var c=GeneralXMLTools.createDocumentFromString(b);
b=c.firstChild.childNodes;var d=[];this.acMaxMatches=c.firstChild.getAttribute("maxMatches");c=0;for(var e=b.length;c<e;c++){var f=b[c].getElementsByTagName("display")[0].firstChild.nodeValue,g=parseInt(b[c].getAttribute("type")),h=b[c].getAttribute("inferred")=="true",k=b[c].getAttribute("nsText"),l=b[c].getAttribute("imageurl"),m=b[c].getElementsByTagName("pasteContent")[0],n=b[c].getElementsByTagName("extraData")[0];d[c]=new MatchItem(f,g,k,n.firstChild!=null?n.firstChild.nodeValue:"",h,m.firstChild!=
null?m.firstChild.nodeValue:"",l)}return d}};function MatchItem(b,c,d,e,f,g,h){this.getText=function(){return b};this.getExtraData=function(){return e};this.getType=function(){return c};this.getNsText=function(){return d};this.getImageURL=function(){return h};this.isInferred=function(){return f};this.getPasteContent=function(){return g}}
function SmartInputWindow(){this.customFloater=false;this.floater=document.getElementById("smartInputFloater");this.floaterContent=document.getElementById("smartInputFloaterContent");this.selectedSmartInputItem=null;this.showCredit=false;this.getMWFloaterId=function(){var b=this.floater;if(!b||b==null)return"undefined";for(;b&&b.nodeType!=9;){if(Element.hasClassName(b,"MWFloater"))return b.id?b.id:"undefined";b=b.parentNode}return"undefined"}}
function SmartInputMatch(b,c,d,e,f,g,h){this.cleanValue=b;this.value=c;this.isSelected=false;this.isInferred=g;this.getImageTag=function(){if(h&&h!="")return'<img src="'+wgServer+h+'" height="16px" width="16px">';else{var k=acNamespaceRegistry.getImgPath(d),l=e!=null?e+":":"";return k?'<img src="'+wgServer+wgScriptPath+k+'">':l}};this.getType=function(){return d};this.getNsText=function(){return e};this.getExtraData=function(){return f}}
function MatchCache(){var b=$H({}),c=0;this.addLookup=function(d,e,f){if(!(d==""||d==null)){if(b.keys().length==10){b.remove(b.keys()[c]);c++;if(c==10)c=0}b[d+f]=e}};this.getLookup=function(d,e){if(b[d+e]&&typeof b[d+e]=="object")return b[d+e];return null}}autoCompleter=new AutoCompleter;var AC_options=GeneralBrowserTools.getCookie("AC_options");AC_options==null?sajax_do_call("smwf_ac_AutoCompletionOptions",[],autoCompletionsOptions):processAutoCompletionOptions(AC_options);
Event.observe(window,"load",autoCompleter.registerSmartInputListeners.bind(autoCompleter));var WtpAnnotation=Class.create();
WtpAnnotation.prototype={initialize:function(b,c,d,e){this.WtpAnnotation(b,c,d,e)},WtpAnnotation:function(b,c,d,e,f){this.annotation=b;this.start=c;this.end=d;this.wikiTextParser=e;this.prefix=f?f:"";this.representation=this.name=null},getAnnotation:function(){return this.annotation},getName:function(){return this.name},getRepresentation:function(){return this.representation==null?"":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(b){this.wikiTextParser.replaceAnnotation(this,b);this.end+=b.length-this.annotation.length;this.annotation=b},move:function(b,c){if(this.start>c){this.start+=b;this.end+=b}},remove:function(b){this.replaceAnnotation(b);this.wikiTextParser.removeAnnotation(this)}};var WtpRelation=Class.create();
WtpRelation.prototype=Object.extend(new WtpAnnotation,{initialize:function(b,c,d,e,f,g,h,k){this.WtpAnnotation(b,c,d,e,f);this.WtpRelation(g,h,k)},WtpRelation:function(b,c,d){this.name=b;this.value=c;this.representation=d;this.splitValues=this.splitValues(this.value);this.arity=this.splitValues.length+1},getValue:function(){return this.value},getSplitValues:function(){return this.splitValues},getArity:function(){return this.arity},rename:function(b){var c="[["+this.prefix+b+"::"+this.value;if(this.representation)c+=
"|"+this.representation;c+="]]";this.name=b;this.replaceAnnotation(c)},changeValue:function(b){var c="[["+this.prefix+this.name+"::"+b;if(this.representation&&b!=this.representation)c+="|"+this.representation;c+="]]";this.value=b;this.replaceAnnotation(c)},changeRepresentation:function(b){var c="[["+this.prefix+this.name+"::"+this.value;if(b&&b!=""&&b!=this.value)c+="|"+b;c+="]]";this.representation=b;this.replaceAnnotation(c)},update:function(b,c,d){var e="[["+this.prefix+b+"::"+c;if(d&&d!=""&&d!=
c)e+="|"+d;e+="]]";this.name=b;this.value=c;this.representation=d;this.replaceAnnotation(e)},splitValues:function(b){for(var c=[],d=0,e="",f=0,g=b.length;f<g;++f){var h=b.charAt(f);if(h=="&")e="&";else if(h==";"){var k=false;if(e!=""){e+=";";h=e.unescapeHTML();if(h==e)k=true;e=""}else k=true;if(k){c.push(b.substring(d,f));d=f+1}}else if(e!="")e+=h}c.push(b.substring(d,f));return c},inspect:function(){return"Annotation: "+this.annotation+"<br />Name : "+this.name+"<br />Value: "+this.value+"<br />Rep. : "+
this.representation+"<br />Start: "+this.start+"<br />End  : "+this.end+"<br />"}});var WtpCategory=Class.create();
WtpCategory.prototype=Object.extend(new WtpAnnotation,{initialize:function(b,c,d,e,f,g,h){this.WtpAnnotation(b,c,d,e,f);this.WtpCategory(g,h)},WtpCategory:function(b,c){this.name=b;this.representation=c},changeCategory:function(b){var c="[["+this.prefix+gLanguage.getMessage("CATEGORY_NS")+b;if(this.representation)c+="|"+this.representation;c+="]]";this.name=b;this.replaceAnnotation(c)},changeRepresentation:function(b){var c="[["+this.prefix+gLanguage.getMessage("CATEGORY_NS")+this.name;if(b&&b!="")c+=
"|"+b;c+="]]";this.representation=b;this.replaceAnnotation(c)},inspect:function(){return"Annotation: "+this.annotation+"<br />Name : "+this.name+"<br />Rep. : "+this.representation+"<br />Start: "+this.start+"<br />End  : "+this.end+"<br />"}});var WtpLink=Class.create();
WtpLink.prototype=Object.extend(new WtpAnnotation,{initialize:function(b,c,d,e,f,g,h){this.WtpAnnotation(b,c,d,e,f);this.WtpLink(g,h)},WtpLink:function(b,c){this.name=b;this.representation=c},changeLink:function(b){var c="[["+this.prefix+b;if(this.representation)c+="|"+this.representation;c+="]]";this.name=b;this.replaceAnnotation(c)},changeRepresentation:function(b){var c="[["+this.prefix+this.name;if(b&&b!="")c+="|"+b;c+="]]";this.representation=b;this.replaceAnnotation(c)},inspect:function(){return"Annotation: "+
this.annotation+"<br />Name : "+this.name+"<br />Rep. : "+this.representation+"<br />Start: "+this.start+"<br />End  : "+this.end+"<br />"}});var WtpRule=Class.create();WtpRule.prototype=Object.extend(new WtpAnnotation,{initialize:function(b,c,d,e,f,g,h,k){this.WtpAnnotation(b,c,d,e,"");this.WtpRule(f,g,h,k)},WtpRule:function(b,c,d,e){this.name=b;this.hostlanguage=c;this.type=d;this.ruleText=e},changeRule:function(b){this.replaceAnnotation(b)},getRuleText:function(){return this.ruleText}});
var WtpQuery=Class.create();WtpQuery.prototype=Object.extend(new WtpAnnotation,{initialize:function(b,c,d,e,f,g){this.WtpAnnotation(b,c,d,e,"");this.WtpQuery(f,g)},WtpQuery:function(b,c){this.name=b;this.queryText=c},getQueryText:function(){return this.queryText},changeQuery:function(b){this.replaceAnnotation(b)}});var nativeSplit=nativeSplit||String.prototype.split;
String.prototype.split=function(b,c){if(!(b instanceof RegExp))return nativeSplit.apply(this,arguments);if(c===undefined||+c<0)c=false;else{c=Math.floor(+c);if(!c)return[]}var d=(b.global?"g":"")+(b.ignoreCase?"i":"")+(b.multiline?"m":""),e=RegExp("^"+b.source+"$",d),f=[],g=0,h=0,k;for(b.global||(b=RegExp(b.source,"g"+d));(!c||h++<=c)&&(k=b.exec(this));){if((d=!k[0].length)&&b.lastIndex>k.index)b.lastIndex=k.index;if(b.lastIndex>g){k.length>1&&k[0].replace(e,function(){for(var l=1;l<arguments.length-
2;l++)if(arguments[l]===undefined)k[l]=undefined});f=f.concat(this.slice(g,k.index),k.index===this.length?[]:k.slice(1));g=b.lastIndex}d&&b.lastIndex++}return g===this.length?b.test("")?f:f.concat(""):c?f:f.concat(this.slice(g))};var WTP_NO_ERROR=0,WTP_UNMATCHED_BRACKETS=1,WTP_WIKITEXT_MODE=1,WTP_EDITAREA_MODE=2,WikiTextParser=Class.create(),gEditInterface=null;
WikiTextParser.prototype={initialize:function(b){if(b=="")b=" ";if(this.parserMode==WTP_WIKITEXT_MODE)if(!b)b=this.text;if(!b||this.parserMode==WTP_EDITAREA_MODE){if(typeof FCKeditor=="undefined"&&typeof CKEDITOR=="undefined"||typeof showFCKEditor=="undefined"||typeof RTE_VISIBLE=="undefined"||showFCKEditor&&RTE_VISIBLE&&!(showFCKEditor&RTE_VISIBLE)){if(document.editform)b="wpTextbox1";else{b=document.getElementById("free_text");if(typeof b==="undefined"){b=document.getElementsByTagName("textarea")[0];
b=$(b).readAttribute("id")}else b="free_text"}if(gEditInterface==null)gEditInterface=new SMWEditInterface;else gEditInterface.setEditAreaName(b)}this.editInterface=gEditInterface||new SMWEditInterface;this.text=this.editInterface.getValue();this.parserMode=WTP_EDITAREA_MODE}else if(!this.parserMode){this.editInterface=null;this.text=b;this.parserMode=WTP_WIKITEXT_MODE;this.wtsEnd=this.wtsStart=-1}if(!this.textChangedHooks){this.textChangedHooks=[];this.categoryAddedHooks=[];this.relationAddedHooks=
[];this.annotationRemovedHooks=[]}this.askQueries=this.rules=this.links=this.categories=this.relations=null;this.error=WTP_NO_ERROR},getError:function(){return this.error},getWikiText:function(){return this.text},getRelation:function(b){this.relations==null&&this.parseAnnotations();for(var c=[],d=0,e=this.relations.length;d<e;++d){var f=this.relations[d];this.equalWikiName(f.getName(),b)&&c.push(f)}return c.length==0?null:c},getRelationIndex:function(b,c){this.relations==null&&this.parseAnnotations();
for(var d=0,e=this.relations.length;d<e;++d){var f=this.relations[d];if(this.equalWikiName(f.getName(),b)&&f.getValue()==c)return d}return-1},getRelations:function(){this.relations==null&&this.parseAnnotations();return this.relations},getCategories:function(){this.categories==null&&this.parseAnnotations();return this.categories},getCategory:function(b){this.categories==null&&this.parseAnnotations();for(var c=0,d=this.categories.length;c<d;++c){var e=this.categories[c];if(this.equalWikiName(e.getName(),
b))return e}return null},getLinks:function(){this.links==null&&this.parseAnnotations();return this.links},getRule:function(b){this.rules==null&&this.parseAnnotations();for(var c=0,d=this.rules.length;c<d;++c){var e=this.rules[c];if(this.equalWikiName(e.getName(),b))return e}return null},getRules:function(){this.rules==null&&this.parseAnnotations();return this.rules},getAskQueries:function(){this.askQueries==null&&this.parseAnnotations();return this.askQueries},getAskQuery:function(b){this.askQueries==
null&&this.parseAnnotations();for(var c=0,d=this.askQueries.length;c<d;++c){var e=this.askQueries[c];if(this.equalWikiName(e.getName(),b))return e}return null},addTextChangedHook:function(b){this.textChangedHooks.push(b)},addCategoryAddedHook:function(b){this.categoryAddedHooks.push(b)},addRelationAddedHook:function(b){this.relationAddedHooks.push(b)},addAnnotationRemovedHook:function(b){this.annotationRemovedHooks.push(b)},addRelation:function(b,c,d,e){var f="[["+b+"::"+c;if(d&&c!=d)f+="|"+d;else if(typeof FCKeditor!=
"undefined"||typeof CKEDITOR!="undefined")f+="|"+(c?c:" ");f+="]]";c=this.addAnnotation(f,e);for(d=0;d<this.relationAddedHooks.size();++d)this.relationAddedHooks[d](c[0],c[0]+c[2],b)},addCategory:function(b,c){var d="[["+gLanguage.getMessage("CATEGORY_NS")+b;d+="]]";d=this.addAnnotation(d,c);for(var e=0;e<this.categoryAddedHooks.size();++e)this.categoryAddedHooks[e](d[0],d[0]+d[2],b)},addLink:function(b,c,d){b="[["+b;if(c)b+="|"+c;b+="]]";this.addAnnotation(b,d)},replaceAnnotation:function(b,c){var d=
this.text.substring(0,b.getStart()),e=this.text.substr(b.getEnd()),f=c.length-b.getAnnotation().length;this.text=d+c+e;this.editInterface&&this.editInterface.setValue(this.text);d=[b.getStart(),b.getEnd(),c.length];for(e=0;e<this.textChangedHooks.size();++e)this.textChangedHooks[e](d);this.updateAnnotationPositions(b.getStart(),f)},getSelection:function(b){var c="";if(this.editInterface){b=true;c=this.editInterface.getSelectedText();if(b==true&&c&&c.length>0)if(b=c.match(/^(\s*(\[\[)?)\s*(.*?)\s*((\]\])?\s*)$/)){this.editInterface.selectCompleteAnnotation();
return b[3]}}else if(this.wtsStart>=0&&this.wtsEnd>=0)c=this.text.substring(this.wtsStart,this.wtsEnd);return c},setSelection:function(b,c){if(this.editInterface)this.editInterface.setSelectionRange(b,c);else{this.wtsStart=b;this.wtsEnd=c}},findText:function(b,c,d,e){this.wtsEnd=this.wtsStart=-1;if(d==-1)d=this.text.length;var f=b,g="";if(typeof e=="object"){g=e[0]+e[1];f=g+b+e[2]+e[3]}var h=this.text.indexOf(f,c);if(h>=0&&h<d){this.wtsStart=h+g.length;this.wtsEnd=this.wtsStart+b.length;return true}d=
this.text.substring(c,d);e="";var k=h=0,l=[],m=d.split(/('{2,})|(&nbsp;)|(\[\[.*?\]\])|(\[http.*?\])|(\s+)/);m=m.compact();for(var n=0,p=[[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]],s=0,o=0;o<m.length;++o)if(m[o].charAt(0)=="'")s+=m[o].length;var r=false;for(o=0;o<m.length;++o){var q=m[o];if(q.length!=0){if(q.charAt(0)=="'"){var u=q.length,t=0;if(n+u>s)t=4;s-=u;var x=false;for(t=t;t<p.length&&!x;++t){var w=p[t],v=0;if(n==w[0])for(v=2;v<w.length;++v)if(u>=w[v]){x=
true;if(w[1]=="a")n+=w[v];else if(w[1]=="c")n-=w[v];v=u-w[v];if(v!=0){l.push([h,k+v,n]);for(h+=v;v-- >0;)e+="'";r=false}break}}}else if(link=q.match(/\[\[(.*?)(\|.*?)?\]\]/)){(r=link[2])||(r=link[1]);e+=r;l.push([h,k,n]);h+=r.length;r=false}else if(q.match(/\s+/)||q=="&nbsp;"){if(!r){e+=" ";l.push([h,k+q.length-1,n]);h++}r=true}else if(q.charAt(0)!="["){e+=q;l.push([h,k,n]);h+=q.length;r=false}k+=q.length}}h=e.indexOf(f);if(h==-1)h=e.indexOf(b);else h+=g.length;if(h==-1){c=gLanguage.getMessage("WTP_TEXT_NOT_FOUND");
return c=c.replace(/\$1/g,"<b>"+b+"</b>")}g=f=-1;m=k=0;n=-1;h+=b.length;for(o=l.length-1;o>=0;--o)if(h>=l[o][0])if(g==-1){g=l[o][1]+(h-l[o][0]);m=l[o][2];n=o;h-=b.length;++o}else{f=l[o][1]+(h-l[o][0]);k=l[o][2];if(k!=m){if(h==l[o][0])if(o-1>=0&&l[o-1][2]==m&&d.charAt(l[o][1]-1)=="'"){f=l[o-1][1]+(h-l[o-1][0]);k=l[o-1][2]}else if(o==0&&m==0){f=0;k=m}if(k!=m)if(h+b.length==l[n][0]){if(n>0&&l[n-1][2]==k){g-=k;m=k}}else if(h+b.length==e.length&&k==0){g=d.length;m=k}}break}if(k!=m){c=gLanguage.getMessage("WTP_SELECTION_OVER_FORMATS");
return c=c.replace(/\$1/g,"<b>"+b+"</b>")}this.wtsStart=f+c;this.wtsEnd=g+c;return true},parseAnnotations:function(){this.relations=[];this.categories=[];this.links=[];this.rules=[];this.askQueries=[];this.askQueryUnnamedIndex=0;this.error=WTP_NO_ERROR;for(var b=0,c=0,d=0,e=0,f=-1,g=this.text?true:false;g;)switch(b){case 0:var h=this.findFirstOf(e,["[[","<nowiki>","<pre>","<ask","<rule","{{#ask:","{"]);if(h[1]==null){g=false;break}e=h[0]+1;f=-1;if(h[1]=="[["){f=h[0];c++;b=1}else if(h[1]=="<nowiki>")b=
2;else if(h[1]=="<pre>")b=5;else if(h[1]=="<rule")b=6;else if(h[1]=="<ask"){d++;b=3}else if(h[1]=="{{#ask:")b=4;else if(h[1]=="{")b=7;break;case 1:h=this.findFirstOf(e,["[[","]]"]);if(h[1]==null){g=false;break}e=h[0]+2;if(h[1]=="[[")c++;else{c--;if(c==0){if(b=this.createAnnotation(this.text.substring(f,h[0]+2),f,h[0]+2))if(b instanceof WtpRelation)this.relations.push(b);else if(b instanceof WtpCategory)this.categories.push(b);else b instanceof WtpLink&&this.links.push(b);b=0}}break;case 2:h=this.findFirstOf(e,
["</nowiki>"]);if(h[1]==null){g=false;break}e=h[0]+7;b=0;break;case 3:h=this.findFirstOf(e,["</ask>","<ask"]);if(h[1]==null){g=false;break}e=h[0]+4;if(h[1]=="<ask")d++;else{d--;if(d==0)b=0}break;case 4:b=this.parseAskTemplate(e);if(b!=-1){h=this.text.substring(e-1,b);var k=this.getQueryName(h),l=this.text.substring(e+6,b-2);l=l.replace(/\n/g,"");(h=new WtpQuery(h,e-1,b,this,k,l))&&h instanceof WtpQuery&&this.askQueries.push(h)}e=b==-1?e+7:b;b=0;break;case 5:h=this.findFirstOf(e,["</pre>"]);if(h[1]==
null){g=false;break}e=h[0]+4;b=0;break;case 6:h=this.findFirstOf(e,["</rule>"]);if(h[1]==null){g=false;break}e=e-1;b=h[0]+7;e=this.parseRule(this.text.substring(e,b),e,b);e!=null&&this.rules.push(e);e=b;b=0;break;case 7:b=0;e++;if(this.text.charAt(e-1)!="{")break;e++;for(h=2;h>0;){k=this.text.indexOf("{",e);l=this.text.indexOf("}",e);if(l==-1)break;if(k>-1&&k<l){e=k+1;h++}else{e=l+1;h--}}break}if(c!=0)this.error=WTP_UNMATCHED_BRACKETS},parseAskTemplate:function(b){var c={};c.ask=["{{#ask:","{{{",
"{{","}}"];c.tparam=["}}}"];c.tmplt=["{{#ask:","{{{","}}"];var d={};d.ask={};d.ask["{{#ask:"]=["push","ask"];d.ask["{{"]=["push","tmplt"];d.ask["{{{"]=["push","tparam"];d.ask["}}"]=["pop"];d.tparam={};d.tparam["}}}"]=["pop"];d.tmplt={};d.tmplt["{{#ask:"]=["push","ask"];d.tmplt["{{{"]=["push","tparam"];d.tmplt["}}"]=["pop"];var e=[];for(e.push("ask");e.size()>0;){var f=e[e.size()-1];b=this.findFirstOf(b,c[f]);if(b[1]==null)return-1;f=d[f];if(!f)return-1;f=f[b[1]];if(!f)return-1;if(f[0]==="push")e.push(f[1]);
else f[0]==="pop"&&e.pop();b=b[0]+b[1].length}return b},getQueryName:function(b){var c="",d=this.askQueryUnnamedIndex;if(typeof b=="undefined"||b==""){this.askQueryUnnamedIndex++;return"query-"+d}b=b.replace(/^\s*\{\{#(ask):\s*/,"");b=b.replace(/\s*\}\}\s*$/,"");b=b.replace(/\n/g,"");b=b.split("|");for(var e=1;e<b.length;e++){var f=b[e].replace(/^\s*(.*?)\s*$/,"$1").split(/=/);if(f.length!=1){var g=f[0].replace(/^\s*(.*?)\s*$/,"$1");f=f[1].replace(/^\s*(.*?)\s*$/,"$1");if(g=="queryname")c=f}}if(c==
""){c="query-"+d;this.askQueryUnnamedIndex++}return c},parseRule:function(b,c,d){var e=b.match(/.*native\s*=\s*"(.*?)"/),f=b.match(/.*name\s*=\s*"(.*?)"/),g=b.match(/.*type\s*=\s*"(.*?)"/),h=b.match(/<rule(?:.|\s)*?>((.|\s)*?)<\/rule>/m);e=e&&e[1]=="true";if(!e&&f&&g&&h){f=f[1];g=g[1];h=h[1];return new WtpRule(b,c,d,this,f,"objectlogic",g,h)}else return null},createAnnotation:function(b,c,d){var e=gLanguage.getMessage("CATEGORY_NS");e="["+e.charAt(0).toLowerCase()+"|"+e.charAt(0).toUpperCase()+"]"+
e.substring(1);var f="\\[\\[\\s*"+e+"([\\s\\S\\n\\r]*)\\]\\]";f=RegExp(f);if(e=b.match(/\[\[\s*(:?)([^:]*)(::|:=)([\s\S\n\r]*)\]\]/)){f=e[2].match(/[\s\n\r]*(.*)[\s\n\r]*/);var g=this.getValueAndRepresentation(e[4]);return new WtpRelation(b,c,d,this,e[1],f[1],g[0],g[1])}if(e=b.match(f)){g=this.getValueAndRepresentation(e[1].match(/[\s\n\r]*(.*)[\s\n\r]*/)[1]);return new WtpCategory(b,c,d,this,"",g[0],g[1])}g=this.getValueAndRepresentation(b.match(/\[\[[\s\n\r]*((.|\n)*)[\s\n\r]*\]\]/)[1]);return new WtpLink(b,
c,d,this,null,g[0],g[1])},updateAnnotationPositions:function(b,c){if(c!=0){var d;d=0;for(len=this.relations.length;d<len;d++)this.relations[d].move(c,b);d=0;for(len=this.categories.length;d<len;d++)this.categories[d].move(c,b);d=0;for(len=this.links.length;d<len;d++)this.links[d].move(c,b)}},addAnnotation:function(b,c){var d=false;if(c)if(this.editInterface)this.editInterface.setValue(this.editInterface.getValue()+b);else{d=[this.text.length,this.text.length,b.length];this.text+=b}else d=this.replaceText(b);
this.initialize(this.text);return d},removeAnnotation:function(b){var c=null;if(b instanceof WtpRelation)c=this.relations;else if(b instanceof WtpCategory)c=this.categories;else if(b instanceof WtpLink)c=this.links;else return;for(var d=0,e=c.length;d<e;d++)if(c[d]==b){c.splice(d,1);break}for(d=0;d<this.annotationRemovedHooks.size();++d)this.annotationRemovedHooks[d](b)},findFirstOf:function(b,c,d){for(var e=-1,f=null,g=0,h=c.length;g<h;++g){var k=c[g],l=d?d.indexOf(k,b):this.text.indexOf(k,b);if(l!=
-1&&(l<e||e==-1)){e=l;f=k}}return[e,f]},getValueAndRepresentation:function(b){for(var c=0,d=0,e=0,f=0,g=true;g;)switch(c){case 0:var h=this.findFirstOf(f,["[[","{{","|"],b);if(h[1]==null){g=false;break}f=h[0]+1;if(h[1]=="[["){d++;c=1}else if(h[1]=="{{"){e++;c=2}else if(d==0){c=b.substring(0,h[0]);b=b.substring(h[0]+1);return[c,b]}break;case 1:h=this.findFirstOf(f,["[[","]]"],b);if(h[1]==null){g=false;break}f=h[0]+2;if(h[1]=="[[")d++;else{d--;if(d==0)c=0}break;case 2:h=this.findFirstOf(f,["{{","}}"],
b);if(h[1]==null){g=false;break}f=h[0]+2;if(h[1]=="{{")e++;else{e--;if(e==0)c=0}break}return[b,null]},replaceText:function(b){if(this.editInterface)this.editInterface.setSelectedText(b);else if(this.wtsStart>=0){this.text=this.text.substring(0,this.wtsStart)+b+this.text.substring(this.wtsEnd);b=[this.wtsStart,this.wtsEnd,b.length];for(var c=0;c<this.textChangedHooks.size();++c)this.textChangedHooks[c](b);this.wtsEnd=this.wtsStart=-1;return b}return false},equalWikiName:function(b,c){if(b.substring(1)==
c.substring(1))if(b.charAt(0).toLowerCase()==c.charAt(0).toLowerCase())return true;return false}};var OntologyModifier=Class.create();
OntologyModifier.prototype={initialize:function(){this.redirect=false;this.editArticleHooks=[]},addEditArticleHook:function(b){this.editArticleHooks.push(b)},existsArticle:function(b,c,d,e,f){function g(h){h=h.responseText.match(/(true|false)/);h==null?c(b,false,d,e,f):c(b,h[1]=="true"?true:false,d,e,f)}if(b.length<255){sajax_do_call("smwf_om_ExistsArticle",[b],g.bind(this));return true}else return false},checkAccessRight:function(b,c,d,e,f,g){function h(k){k=k.responseText.match(/(true|false)/);k==
null?d(b,c,false,e,f,g):d(b,c,k[1]=="true"?true:false,e,f,g)}if(b.length<255){sajax_do_call("smwf_om_userCan",[b,c],h.bind(this));return true}else return false},createArticle:function(b,c,d,e,f){this.redirect=f;sajax_do_call("smwf_om_CreateArticle",[b,wgUserName,c,d,e],this.ajaxResponseCreateArticle.bind(this))},editArticle:function(b,c,d,e,f){if(typeof f=="undefined")f="edit";this.redirect=e;sajax_do_call("smwf_om_EditArticle",[b,wgUserName,c,d,f],this.ajaxResponseEditArticle.bind(this))},touchArticle:function(b){sajax_do_call("smwf_om_TouchArticle",
[b],function(){}.bind(this))},createAttribute:function(b,c,d,e){var f="";if(d!=null&&d!="")f+="\n[[SMW_SSP_HAS_DOMAIN_HINT::"+gLanguage.getMessage("CATEGORY_NS")+d+"]]";if(e!=null&&e!="")f+="\n[[_TYPE::"+gLanguage.getMessage("TYPE_NS")+e+"]]";this.createArticle(gLanguage.getMessage("PROPERTY_NS")+b,c,f,"Create a property for category "+d,false)},createRelation:function(b,c,d,e){var f="";d=d!=null&&d!=""?gLanguage.getMessage("CATEGORY_NS")+d:"";var g=false;if(e!=null)if(e.length>=1){for(var h=e.length>
1?"\n[[_TYPE::_rec]]\n[[_LIST::":"\n[[_TYPE::",k=0,l=e.length;k<l;k++){if(e[k].indexOf(gLanguage.getMessage("TYPE_NS"))==0)h+=e[k];else{h+=gLanguage.getMessage("TYPE_PAGE");g=true;f+=e[k]?"\n[[SMW_SSP_HAS_DOMAIN_AND_RANGE_HINT::"+d+";"+e[k]+"]]":"\n[[SMW_SSP_HAS_DOMAIN_AND_RANGE_HINT::"+d+";]]"}if(k<l-1)h+=";"}f+=h+"]]"}if(!g&&d!="")f+="\n[[SMW_SSP_HAS_DOMAIN_AND_RANGE_HINT::"+d+";]]";this.createArticle(gLanguage.getMessage("PROPERTY_NS")+b,c,f,gLanguage.getMessage("CREATE_PROP_FOR_CAT").replace(/\$cat/g,
d),false)},createCategory:function(b,c){this.createArticle(gLanguage.getMessage("CATEGORY_NS")+b,c,"",gLanguage.getMessage("CREATE_CATEGORY"),false)},createSubProperty:function(b,c,d){if(d==undefined)d=false;var e=this.getSchemaProperties();wgNamespaceNumber==102||wgNamespaceNumber==100||typeof smwhgSfTargetNamespace!=="undefined"&&smwhgSfTargetNamespace==102?this.createArticle(gLanguage.getMessage("PROPERTY_NS")+b,c,e+"\n[[_SUBP::"+(typeof smwhgSfTargetNamespace!=="undefined"?smwhgSfTargetPageName:
wgPageName)+"]]",gLanguage.getMessage("CREATE_SUB_PROPERTY"),d):alert(gLanguage.getMessage("NOT_A_PROPERTY"))},createSuperProperty:function(b,c,d,e){if(d==undefined)d=false;var f=this.getSchemaProperties();e||(e=new WikiTextParser);if(wgNamespaceNumber==102||wgNamespaceNumber==100||typeof smwhgSfTargetNamespace!=="undefined"&&smwhgSfTargetNamespace==102){this.createArticle(gLanguage.getMessage("PROPERTY_NS")+b,c,f,gLanguage.getMessage("CREATE_SUPER_PROPERTY"),d);e.addRelation("subproperty of",gLanguage.getMessage("PROPERTY_NS")+
b,"",true)}else alert(gLanguage.getMessage("NOT_A_PROPERTY"))},createSuperCategory:function(b,c,d,e){if(d==undefined)d=false;e||(e=new WikiTextParser);if(wgNamespaceNumber==14){this.createArticle(gLanguage.getMessage("CATEGORY_NS")+b,c,"",gLanguage.getMessage("CREATE_SUPER_CATEGORY"),d);e.addCategory(b,"",true)}else alert(gLanguage.getMessage("NOT_A_CATEGORY"))},createSubCategory:function(b,c){wgNamespaceNumber==14?this.createArticle(gLanguage.getMessage("CATEGORY_NS")+b,c,"[["+gLanguage.getMessage("CATEGORY_NS")+
wgTitle+"]]",gLanguage.getMessage("CREATE_SUB_CATEGORY"),false):alert(gLanguage.getMessage("NOT_A_CATEGORY"))},getSchemaProperties:function(){var b=new WikiTextParser,c=[];c.push(b.getRelation(gLanguage.getMessage("HAS_TYPE")));c.push(b.getRelation(gLanguage.getMessage("DOMAIN_HINT")));c.push(b.getRelation(gLanguage.getMessage("MAX_CARDINALITY")));c.push(b.getRelation(gLanguage.getMessage("MIN_CARDINALITY")));for(var d="",e=0,f=c.length;e<f;++e){var g=c[e];if(g!=null)for(var h=0,k=g.length;h<k;++h)d+=
g[h].getAnnotation()+"\n"}c=b.getCategory(gLanguage.getMessage("TRANSITIVE_RELATION"));b=b.getCategory(gLanguage.getMessage("SYMMETRICAL_RELATION"));if(c)d+=c.getAnnotation()+"\n";if(b)d+=b.getAnnotation()+"\n";return d},ajaxResponseCreateArticle:function(b){if(b.status!=200)alert(gLanguage.getMessage("ERROR_CREATING_ARTICLE"));else{var c=b.responseText.match(/(true|false),(true|denied|false),(.*)/);if(c==null)alert(gLanguage.getMessage("ERROR_CREATING_ARTICLE"));else{var d=c[2];b=c[3];if(c[1]=="true"){if(this.redirect){c=
wgScript.substring(wgScript.lastIndexOf("/")+1);window.open(c+"?title="+b,"_blank")}}else if(d=="denied"){b=gLanguage.getMessage("smw_acl_create_denied").replace(/\$1/g,b);alert(b)}}}},ajaxResponseEditArticle:function(b){if(b.status!=200)alert(gLanguage.getMessage("ERROR_EDITING_ARTICLE"));else{var c=b.responseText.match(/(true|false),(true|denied|false),(.*)/);if(c==null)alert(gLanguage.getMessage("ERROR_EDITING_ARTICLE"));else{b=c[1];var d=c[2];c=c[3];if(b=="true")this.redirect&&window.open("index.php?title="+
c,"_blank");else if(d=="denied"){var e=gLanguage.getMessage("smw_acl_edit_denied").replace(/\$1/g,c);alert(e)}b=b=="true";d=d=="true";for(e=0;e<this.editArticleHooks.length;++e)this.editArticleHooks[e](b,d,c)}}}};var DataTypes=Class.create();
DataTypes.prototype={initialize:function(){this.userTypes=this.builtinTypes=null;this.callback=[];this.refresh();this.refreshPending=false},getBuiltinTypes:function(){return this.builtinTypes},getUserDefinedTypes:function(){return this.userTypes},refresh:function(b){b&&this.callback.push(b);if(this.builtinTypes&&this.userTypes){for(b=0;b<this.callback.length;++b)this.callback[b]();this.callback.clear()}else if(!this.refreshPending){this.refreshPending=true;sajax_do_call("smwf_tb_GetUserDatatypes",[],
this.ajaxResponseGetDatatypes.bind(this));if(!this.builtinTypes){this.builtinTypes=GeneralBrowserTools.getCookieObject("smwh_builtinTypes");this.builtinTypes==null&&sajax_do_call("smwf_tb_GetBuiltinDatatypes",[],this.ajaxResponseGetDatatypes.bind(this))}}},ajaxResponseGetDatatypes:function(b){if(b.status==200){b=b.responseText.split(",");if(b[0].indexOf("User defined types")>=0){this.userTypes=Array(b.length-1);for(var c=1,d=b.length;c<d;++c)this.userTypes[c-1]=b[c]}else{this.builtinTypes=Array(b.length-
1);c=1;for(d=b.length;c<d;++c)this.builtinTypes[c-1]=b[c];GeneralBrowserTools.setCookieObject("smwh_builtinTypes",this.builtinTypes)}if(this.userTypes&&this.builtinTypes){for(c=0;c<this.callback.length;++c)this.callback[c]();this.callback.clear();this.refreshPending=false}}}};var gDataTypes=new DataTypes;var GenericToolBar=Class.create();
GenericToolBar.prototype={initialize:function(){},createList:function(b,c){var d=b==null?0:b.length,e="",f="";switch(c){case "category":e='<div id="'+c+'-tools">';e+='<a id="cat-menu-annotate" enabled="true" href="javascript:catToolBar.newItem()" class="menulink">'+gLanguage.getMessage("ANNOTATE")+"</a>";if(wgAction!="annotate")e+='<a href="javascript:catToolBar.newCategory()" class="menulink">'+gLanguage.getMessage("CREATE")+"</a>";if(wgNamespaceNumber==14)e+='<a href="javascript:catToolBar.CreateSubSup()" class="menulink">'+gLanguage.getMessage("SUB_SUPER")+
"</a>";e+="</div>";break;case "relation":e='<div id="'+c+'-tools">';if(wgAction!="annotate")e+='<a id="rel-menu-annotate" href="javascript:relToolBar.newItem()" class="menulink">'+gLanguage.getMessage("ANNOTATE")+"</a>";e+='<a href="javascript:relToolBar.newRelation()" class="menulink">'+gLanguage.getMessage("CREATE")+"</a>";if(this.createSubSupAllowed())e+='<a href="javascript:relToolBar.CreateSubSup()" class="menulink">'+gLanguage.getMessage("SUB_SUPER")+"</a>";e+="</div>";break;case "rules":e=
'<div id="'+c+'-tools">';e+='<a id="rules-menu-annotate" href="javascript:ruleToolBar.createRule()" class="menulink">'+gLanguage.getMessage("CREATE")+"</a>";e+="</div>";break;case "rec-relation":if(d>0)f='<tr><th id="'+c+'-th" colspan="3">'+gLanguage.getMessage("RECPROP")+"</th></tr>";break}e+='<div id="'+c+'-itemlist"><table id="'+c+'-table">'+f;f=wgArticlePath;var g=f.indexOf("$1");if(g>0)f=f.substring(0,g);var h=0,k=0;if(c=="relation"||c=="rec-relation")for(g=0;g<d;g++){b[g].getName().length>k&&
(k=b[g].getName().length);for(var l=b[g].getSplitValues(),m=0,n=b[g].getArity()-1;m<n;m++)l[m].length>h&&(h=l[m].length)}var p=l="";if((c=="relation"||c=="rec-relation")&&k!=0){p=20+100*0.55*(h/(k+h));p='style="width:'+p+'%;"';l=20+100*(0.55-0.55*(h/(k+h)));l='style="width:'+l+'%;"'}for(g=0;g<d;g++){var s=k=h="",o="";switch(c){case "category":fn="catToolBar.getselectedItem("+g+")";k=b[g].getValue?b[g].getValue().escapeHTML():"";o=gLanguage.getMessage("CATEGORY_NS");break;case "rules":fn="ruleToolBar.editRule("+
g+")";o=k="";break;case "relation":fn="relToolBar.getselectedItem("+g+")";o=gLanguage.getMessage("PROPERTY_NS");h='rowspan="'+(b[g].getArity()-1)+'"';var r=b[g].getSplitValues(),q=["no page"];if(b[g].valuePageInfo)q=b[g].valuePageInfo;var u=null;if(b[g].categoryInfo)u=b[g].categoryInfo;k=r[0].escapeHTML();var t,x="";t="";var w=wgFormattedNamespaces["14"],v=u&&u[0]!==null&&q[0]==="redlink"?"&category="+escape(u[0])+"&preloadtext=[["+w+escape(":"+u[0])+"]]":"";if(q[0]=="redlink"){x=' style="color:#CC2200"';
t="?action=edit"}k=t=q[0]=="exists"||q[0]=="redlink"?'<a href="'+wgServer+f+k+t+v+'" target="blank"'+x+' title="'+k+'">'+k+"</a>":'<span title="'+k+'">'+k+"<span>";m=1;for(n=b[g].getArity()-1;m<n;m++){var y=r[m].escapeHTML();x="";v=u&&u[m]!==null&&q[m]==="redlink"?"&category="+escape(u[m])+"&preloadtext=[["+w+escape(":"+u[m])+"]]":"";t="";if(q[m]=="redlink"){x=' style="color:#CC2200"';t="?action=edit"}t=q[m]=="exists"||q[m]=="redlink"?'<a href="'+wgServer+f+y+t+v+'" target="blank"'+x+' title="'+y+
'">'+y+"</a>":'<span title="'+y+'">'+y+"<span>";s+='<tr><td class="'+c+'-col2">'+t+" </td></tr>"}break;case "rec-relation":fn="relToolBar.recProp('"+b[g].getName()+"')";o=gLanguage.getMessage("PROPERTY_NS");h='rowspan="'+(b[g].getArity()-1)+'"';r=b[g].getSplitValues();k=r[0].escapeHTML();k=t='<span title="'+k+'">'+k+"<span>";break}m=b[g].getName().escapeHTML();n='<img src="'+wgScriptPath+'/extensions/SMWHalo/skins/edit.gif"/>';if(c=="rules")o=b[g].getName().escapeHTML();else{var z=r=t=q="";if(c==
"relation")if((typeof b[g].accessAllowed!="undefined"?b[g].accessAllowed:true)=="false")q='<img title="'+gLanguage.getMessage("PROPERTY_ACCESS_DENIED_TT")+'" src="'+wgScriptPath+'/extensions/SMWHalo/skins/warning.png"/>';if(c=="rec-relation"){if(typeof b[g].inherited!="undefined"?b[g].inherited:true)z="class='inherited'";n='<img src="'+wgScriptPath+'/extensions/SMWHalo/skins/add.png"/>'}if(c=="category"||c=="relation")if(typeof b[g].exists!="undefined"&&b[g].exists=="false"){t="?action=edit";r=' style="color:#CC2200"'}o=
q+'<a href="'+wgServer+f+o+b[g].getName().escapeHTML()+t;o+='" target="blank"'+r+' title="'+m+'">'+m+"</a>"}e+="<tr "+z+"><td "+h+' class="'+c+'-col1" '+l+">"+o+' </td><td class="'+c+'-col2"  '+p+">"+k+" </td><td "+h+' class="'+c+'-col3"><a href="javascript:'+fn+'">'+n+"</a></tr>"+s}e+="</table></div>";return e},createSubSupAllowed:function(){var b=false,c=/Attribute:.*/;if(wgNamespaceNumber==100||wgNamespaceNumber==102||c.exec(wgPageName)!=null||typeof smwhgSfTargetNamespace!=="undefined"&&smwhgSfTargetNamespace==
102)b=true;return b},cutdowntosize:function(b){return b},triggerEvent:function(b){if(b){b.focus();b.blur();b.focus()}}};var EventManager=Class.create();
EventManager.prototype={initialize:function(){this.eventlist=[]},registerEvent:function(b,c,d){this.eventlist.push(Array(b,c,d));Event.observe(b,c,d)},deregisterAllEvents:function(){this.eventlist.each(this.stopEvent);this.eventlist=[]},stopEvent:function(b){b!=null&&$(b[0])&&Event.stopObserving(b[0],b[1],b[2])},deregisterEventsFromItem:function(b){for(var c=0;c<this.eventlist.length;c++)if(this.eventlist[c]!=null&&this.eventlist[c][0]==b){this.stopEvent(this.eventlist[c]);this.eventlist[c]=null}}};
var EventActions=Class.create();
EventActions.prototype={initialize:function(){},eventActions:function(){this.registered=this.istyping=false},setIsTyping:function(b){this.istyping=b},getIsTyping:function(){return this.istyping},isEmpty:function(b){return b.getValue().strip()!=""&&b.getValue()!=null?false:true},targetelement:function(b){return b.srcElement?b.srcElement:b.target?b.target:b.currentTarget},timedcallback:function(b){if(!this.registered){this.registered=true;b=this.callback.bind(this,b);setTimeout(b,500)}},callback:function(b){if(this.istyping){this.istyping=
false;b=this.callback.bind(this,b);setTimeout(b,500)}else{b();this.istyping=this.registered=false}}};var STBEventActions=Class.create();
STBEventActions.prototype=Object.extend(new EventActions,{initialize:function(){this.om=new OntologyModifier;this.pendingIndicator=this.keyUpEvent=null;this.ajaxSyncQueue=[]},onKeyUp:function(b){this.setIsTyping(true);if((b.which||b.keyCode)==Event.KEY_RETURN){var c=$(b.target);if(c.type=="a")return true;b=c.getAttribute("tabIndex");if(!b)return false;b=b*1+1;c=c.up("div").descendants();for(var d=0;d<c.length;++d){var e=c[d],f=e.getAttribute("tabIndex");if(f&&f*1==b)if(e.disabled==true||!e.visible())b++;
else{e.focus();break}}return false}this.keyUpEvent=b;this.timedcallback(this.delayedKeyUp.bind(this))},onBlur:function(b){b=$(b.target);var c=b.getAttribute("smwOldValue");if(!(c&&c==b.value)){b.setAttribute("smwOldValue",b.value);if(this.checkIfEmpty(b)==false&&this.handleValidValue(b)){this.handleCheck(b);this.handleAccessControl(b)}this.doFinalCheck(b)}},onClick:function(b){b=$(b.target);b.type=="radio"&&this.doFinalCheck(b)},onChange:function(b){b=$(b.target);if(this.checkIfEmpty(b)==false&&this.handleValidValue(b)){this.handleCheck(b);
this.handleAccessControl(b)}this.handleChange(b);this.doFinalCheck(b)},initialCheck:function(b){for(var c=b.descendants(),d,e=0,f=c.length;e<f;++e){d=c[e];if(d.visible()){var g=d.getAttribute("smwOldValue");if(!g||g!=d.value){if(this.checkIfEmpty(d)==false&&this.handleValidValue(d)){this.handleCheck(d);this.handleAccessControl(b)}d.setAttribute("smwOldValue",d.value)}}}this.doFinalCheck(d)},delayedKeyUp:function(){var b=$(this.keyUpEvent.target),c=b.getAttribute("smwOldValue");if(!(c&&c==b.value)){b.setAttribute("smwOldValue",
b.value);if(this.checkIfEmpty(b)==false&&this.handleValidValue(b)){this.handleCheck(b);this.handleAccessControl(b);this.handleChange(b)}this.doFinalCheck(b)}},checkIfEmpty:function(b){var c=b.value;if(b.type=="select-one")c=b.options[b.selectedIndex].text;c=c=="";var d=b.getAttribute("smwCheckEmpty");if(!d)return c;if(d=this.parseConditional("empty",d))this.performActions(c?d[0]:d[1],b);return c},handleValidValue:function(b){var c=b.getAttribute("smwValidValue");if(!c)return true;if(c=c.match(/(.*?):\s*(valid\s*\?.*)/)){var d=
RegExp(c[1]);return this.checkWithRegEx(b.value,d,c[2],b)}return true},handleCheck:function(b){var c=b.getAttribute("smwCheckType");if(c){var d=c,e="",f=c.indexOf(":");if(f!=-1){d=c.substring(0,f);e=c.substring(f+1)}d=d.toLowerCase();if(d.indexOf("regex")==0){if(e=c.match(/regex\s*=\s*(.*?):\s*valid\s*\?/)){d=RegExp(e[1]);f=c.search(/:\s*valid\s*\?/);e=c.substring(f+1);this.checkWithRegEx(b.value,d,e,b)}}else switch(d){case "integer":this.checkWithRegEx(b.value,/^\d+$/,e,b);break;case "float":this.checkWithRegEx(b.value,
/^[+-]?\d+(\.\d+)?([Ee][+-]?\d+)?$/,e,b);break;case "category":case "property":this.handleSchemaCheck(d,c,b);break}}},handleAccessControl:function(b){var c=b.getAttribute("smwAccessControl");if(c){var d=c,e=c.indexOf(":");if(e!=-1)d=c.substring(0,e);d=d.toLowerCase();switch(d){case "property":this.handleAccessCheck(d,c,b);break}}},handleChange:function(b){var c=b.getAttribute("smwChanged");if(c)(c=c.match(/\s*\((.*?)\)\s*$/))&&this.performActions(c[1],b)},doFinalCheck:function(b){if(b)if(b=b.up("div")){var c=
b.getAttribute("smwAllValid");if(c){for(var d=b.descendants(),e=true,f=0,g=d.length;f<g;++f){for(var h=d[f],k=h,l=true;k!=b;){if(!k.visible()){l=false;break}k=k.up()}if(l!=false)if(k=h.getAttribute("smwValid"))if(k=="false")e=false;else if(k!="true"){l=k.indexOf("?");var m=k,n=null;if(l>-1){m=k.substring(0,l);n=this.parseConditional(m,k)}k=eval(m+'("'+h.id+'")');if(n)this.performActions(k?n[0]:n[1],h);k||(e=false)}}c=this.parseConditional("allValid",c);this.performActions(e?c[0]:c[1],b)}}},checkWithRegEx:function(b,
c,d,e){b=b.match(c);d=this.parseConditional("valid",d);this.performActions(b?d[0]:d[1],e);return b},handleSchemaCheck:function(b,c,d){var e=d.value,f;switch(b){case "category":f=gLanguage.getMessage("CATEGORY_NS")+e;break;case "property":f=gLanguage.getMessage("PROPERTY_NS")+e;break}this.showPendingIndicator(d);if(this.om.existsArticle(f,this.ajaxCbSchemaCheck.bind(this),e,[b,c],d.id))this.ajaxSyncQueue.schemaCheck="pending";else this.ajaxCbSchemaCheck(f,false,e,[b,c],d)},handleAccessCheck:function(b,
c,d){var e=d.value,f,g;switch(b){case "property":f=gLanguage.getMessage("PROPERTY_NS")+e;g=c.match(/.*?:\s*(.*?)\s*\?/);if(!g)return;g=g[1];break}this.showPendingIndicator(d);if(this.om.checkAccessRight(f,g,this.ajaxCbAccessCheck.bind(this),e,[b,c],d.id))this.ajaxSyncQueue.accessCheck="pending";else this.ajaxCbAccessCheck(f,g,false,e,[b,c],d)},ajaxCbSchemaCheck:function(b,c,d,e,f){this.ajaxSyncQueue.schemaCheck={pageName:b,exists:c,title:d,param:e,elementID:f};this.processAjaxSyncQueue()},ajaxCbAccessCheck:function(b,
c,d,e,f,g){this.ajaxSyncQueue.accessCheck={pageName:b,action:c,accessGranted:d,title:e,param:f,elementID:g};this.processAjaxSyncQueue()},processAjaxSyncQueue:function(){if(!(this.ajaxSyncQueue.schemaCheck&&this.ajaxSyncQueue.schemaCheck=="pending"))if(!(this.ajaxSyncQueue.accessCheck&&this.ajaxSyncQueue.accessCheck=="pending")){this.hidePendingIndicator();var b=true;if(this.ajaxSyncQueue.schemaCheck){var c=this.ajaxSyncQueue.schemaCheck,d=c.elementID,e=c.param[1],f=e.indexOf(":");if(f!=-1){e=e.substring(f+
1);if(e=this.parseConditional("exists",e)){b=c.exists;this.performActions(b?e[0]:e[1],$(d))}}}if(b&&this.ajaxSyncQueue.accessCheck){c=this.ajaxSyncQueue.accessCheck;d=c.elementID;e=c.param[1];f=e.indexOf(":");if(f!=-1){e=e.substring(f+1);if(e=this.parseConditional("propertyedit",e))this.performActions(c.accessGranted?e[0]:e[1],$(d))}}this.doFinalCheck($(d))}},parseConditional:function(b,c){var d=RegExp("\\s*"+b+"\\s*\\?\\s*\\(([^)]*)\\)\\s*:\\s*\\(([^)]*)\\)");if(d=c.match(d))return[d[1],d[2]];return null},
performActions:function(b,c){for(var d=b.split(","),e=0,f=d.length;e<f;e++){var g=d[e].split(":"),h="",k="";if(g.length>0)if(h=g[0].match(/^\s*(.*?)\s*$/))h=h[1];if(g.length>1)if(k=g[1].match(/^\s*(.*?)\s*$/))k=k[1];this.performSingleAction(h.toLowerCase(),k,c)}},performSingleAction:function(b,c,d){switch(b){case "color":d&&d.setStyle({background:c});break;case "show":(b=smw_ctbHandler.findContainer(c))&&b.show(c,true);break;case "hide":(b=smw_ctbHandler.findContainer(c))&&b.show(c,false);break;case "call":d&&
eval(c+'("'+d.id+'")');break;case "showmessage":if(d){var e=$(d.id+"-msg");if(e){c=gLanguage.getMessage(c);c=c.replace(/\$c/g,d.value);b=smw_ctbHandler.findContainer(e);d=b.isVisible(d.id);b.replace(e.id,b.createText(e.id,c,"",true));b.show(e.id,d)}}break;case "hidemessage":if(d)if(e=$(d.id+"-msg")){b=smw_ctbHandler.findContainer(e.id);b.show(e.id,false)}break;case "valid":d&&d.setAttribute("smwValid",c);break;case "attribute":(b=c.split("="))&&b.length==2&&d&&d.setAttribute(b[0],b[1]);break}},showPendingIndicator:function(b){this.hidePendingIndicator();
if(this.pendingIndicator==null)this.pendingIndicator=new OBPendingIndicator($(b));this.pendingIndicator.showOn(b)},hidePendingIndicator:function(){this.pendingIndicator!=null&&this.pendingIndicator.hide()}});var gSTBEventActions=new STBEventActions;var ContainerToolBar=Class.create();
ContainerToolBar.prototype={initialize:function(b,c,d){this.id=b;this.lastindex=this.startindex=c;this.cointainerlist=[];this.frameworkcontainer=d;this.sandglass=new OBPendingIndicator;this.eventManager=new EventManager;smw_ctbHandler&&smw_ctbHandler.addContainer(this.id,this)},showSandglass:function(b){this.sandglass.hide();this.sandglass.show(b)},hideSandglass:function(){this.sandglass.hide()},createContainerBody:function(b,c,d){this.frameworkcontainer.setContent('<div id="'+this.id+'-box" '+b+
"></div>",c,d);this.frameworkcontainer.contentChanged()},createInput:function(b,c,d,e,f,g,h){var k="wickEnabled";if(typeof h=="boolean")if(h==false)k="";c='<table class="stb-table stb-input-table '+this.id+"-table "+this.id+'-input-table"'+(g?"":'style="display:none;"')+'id="'+this.id+"-table-"+b+'"><tr><td class="stb-input-col1 '+this.id+'-input-col1">'+c+'</td><td class="stb-input-col2 '+this.id+'-input-col2">';if(d){d=d.escapeHTML();d=d.replace(/"/g,"&quot;")}c+=e?'<input class="'+k+" stb-delinput "+
this.id+'-delinput" id="'+b+'" '+f+' type="text"  alignfloater="right" value="'+d+'" tabindex="'+this.lastindex++ +'" /></td><td class="stb-input-col3 '+this.id+'-input-col3"><a href="javascript:'+e+'"><img src="'+wgScriptPath+'/extensions/SMWHalo/skins/redcross.gif"/>':'<input class="'+k+" stb-input "+this.id+'-input" id="'+b+'" '+f+' type="text"  alignfloater="right" value="'+d+'" tabindex="'+this.lastindex++ +'" />';c+="</td></tr></table>";return c},createDropDown:function(b,c,d,e,f,g,h){c='<table class="stb-table stb-select-table '+
this.id+"-table "+this.id+'-select-table"'+(h?"":'style="display:none;"')+'id="'+this.id+"-table-"+b+'"><tr><td class="stb-select-col1 '+this.id+'-select-col1">'+c+'</td><td class="stb-select-col2 '+this.id+'-select-col2">';c+=e?'<select class="stb-delselect '+this.id+'-delselect" id="'+b+'"  '+g+' tabindex="'+this.lastindex++ +'">':'<select class="stb-select '+this.id+'-select" id="'+b+'"  '+g+' tabindex="'+this.lastindex++ +'">';for(b=0;b<d.length;b++)c+=b!=f?"<option>"+d[b]+"</option>":'<option selected="selected">'+
d[b]+"</option>";c+="</select>";if(e){c+="</td>";c+='<td class="stb-select-col3 '+this.id+'-select-col3">';c+='<a href="javascript:'+e+'"><img src="'+wgScriptPath+'/extensions/SMWHalo/skins/redcross.gif"/>'}c+="</td></tr></table>";return c},createRadio:function(b,c,d,e,f,g){c='<table class="stb-table stb-radio-table '+this.id+"-table "+this.id+'-radio-table"'+(g?"":'style="display:none;"')+'id="'+this.id+"-table-"+b+'"><tr><td class="stb-radio-col1 '+this.id+'-input-radio1">'+c+'</td></tr><tr><td class="stb-radio-col2 '+
this.id+'-radio-col2"><form class="stb-radio '+this.id+'-radio" id="'+b+'"  '+f+' tabindex="'+this.lastindex++ +'">';for(f=0;f<d.length;f++)c+=f!=e?'<input type="radio" name="'+b+'" value="'+d[f]+'">'+d[f]+"<br>":'<input type="radio" name="'+b+'" value="'+d[f]+'" checked="checked">'+d[f]+"</br>";c+="</form></td></tr></table>";return c},createCheckBox:function(b,c,d,e,f,g){c='<table class="stb-table stb-checkbox-table '+this.id+"-table "+this.id+'-checkbox-table"'+(g?"":'style="display:none;"')+'id="'+
this.id+"-table-"+b+'"><tr><td class="stb-checkbox-col1 '+this.id+'-checkbox-col1">'+c+'</td></tr><tr><td class="stb-checkbox-col2 '+this.id+'-checkbox-col2"><form class="stb-checkbox '+this.id+'-checkbox" id="'+b+'"  '+f+">";for(f=0;f<d.length;f++)c+=this.isInArray(f,e)?'<input type="checkbox" name="'+b+'" tabindex="'+this.lastindex++ +'"  value="'+d[f]+'" checked="checked">'+d[f]+"<br>":'<input type="checkbox" name="'+b+'" tabindex="'+this.lastindex++ +'" value="'+d[f]+'">'+d[f]+"<br>";c+="</form></td></tr></table>";
return c},isInArray:function(b,c){for(var d=0;d<c.length;d++)if(b==c[d])return true;return false},createText:function(b,c,d,e){var f="",g;if(g=/(\([iwe]\))(.*)/.exec(c)){switch(g[1]){case image="(i)":f='<img src="'+wgScriptPath+'/extensions/SMWHalo/skins/info.gif"/>';break;case image="(w)":f='<img src="'+wgScriptPath+'/extensions/SMWHalo/skins/warning.png"/>';break;case image="(e)":f='<img src="'+wgScriptPath+'/extensions/SMWHalo/skins/delete_icon.png"/>';break;default:f=""}c=g[2]}return'<table class="stb-table stb-text-table '+
this.id+"-table "+this.id+'-text-table"'+(e?"":'style="display:none;"')+'id="'+this.id+"-table-"+b+'"><tr><td class="stb-text-col1 '+this.id+'-text-col1">'+f+'&#32<span class="stb-text '+this.id+'-radio" id="'+b+'" id="'+b+'" '+d+">"+c+"</span></td></tr></table>"},createButton:function(b,c,d,e,f){return'<table class="stb-table stb-button-table '+this.id+"-table "+this.id+'-button-table"'+(f?"":'style="display:none;"')+'id="'+this.id+"-table-"+b+'"><tr><td class="stb-button-col '+this.id+'-button-col"><input type="button" id="'+
b+'" name="'+b+'" value="'+c+'" '+e+'onclick="'+d+'"></td></tr></table>'},createLink:function(b,c,d,e){d='<table class="stb-table stb-link-table '+this.id+"-table "+this.id+'-link-table"'+(e?"":'style="display:none;"')+'id="'+this.id+"-table-"+b+'">';switch(c.length){case 1:e=1;break;case 2:e=2;break;case 4:e=2;break;default:e=3}for(var f=0,g=0;g*e<c.length;g++){d+='<tr class=" ln-tr-'+e+" "+this.id+"-ln-tr-"+e+" "+b+"-ln-tr-"+e+'">';for(var h=0;h<e;h++){d+='<td class=" ln-td-'+e+"-"+h+" "+this.id+
"-ln-td-"+e+"-"+h+" "+b+"-ln-td-"+e+"-"+h+'">';if(f<c.length){switch(c[f].length){case 2:d+='<a tabindex="'+this.lastindex++ +'" + href="javascript:'+c[f][0]+'">'+c[f][1]+"&#32</a>";break;case 3:d+='<a tabindex="'+this.lastindex++ +'" + id="'+c[f][2]+'" href="javascript:'+c[f][0]+'">'+c[f][1]+"&#32</a>";break;case 5:d+='<a tabindex="'+this.lastindex++ +'" + id="'+c[f][2]+'" href="javascript:'+c[f][0]+'">'+c[f][1]+"&#32</a>";d+='<span id="'+c[f][4]+'" style="display: none;">'+c[f][3]+"</span>";break;
default:}f++}d+="</td>"}d+="</tr>"}d+="</table>";return d},changeID:function(b,c){var d=$(this.id+"-table-"+b.id);if(d)d.id=this.id+"-table-"+c;b.id=c},remove:function(b){if(b instanceof Array)for(var c=0;c<b.length;c++){$(this.id+"-table-"+b[c]).remove();this.eventManager.deregisterEventsFromItem(b[c])}else{$(this.id+"-table-"+b).remove();this.eventManager.deregisterEventsFromItem(b)}this.rebuildTabindex($(this.id+"-box"));autoCompleter.deregisterAllInputs();autoCompleter.registerAllInputs()},rebuildTabindex:function(b){if(b!=
null){this.lastindex=this.startindex;b.descendants().each(this.updateTabindex.bind(this))}},updateTabindex:function(b){b.readAttribute("tabindex")!=null&&b.readAttribute("tabindex")!=0&&b.writeAttribute("tabindex",this.lastindex++)},append:function(b){if(b instanceof Array)for(var c=0;c<b.length;c++)new Insertion.Bottom($(this.id+"-box"),b[c]);else new Insertion.Bottom($(this.id+"-box"),b)},insert:function(b,c){if(c instanceof Array)for(var d=0;d<c.length;d++)new Insertion.After($(this.id+"-table-"+
b),c[d]);else new Insertion.After($(this.id+"-table-"+b),c)},replace:function(b,c){$(this.id+"-table-"+b).replace(c)},show:function(b,c){var d=$(this.id+"-table-"+b);d||(d=$(b));if(d)c?d.show():d.hide()},isVisible:function(b){var c=$(this.id+"-table-"+b);c||(c=$(b));return c?c.visible():false},finishCreation:function(){this.eventManager.deregisterAllEvents();for(var b=$(this.id+"-box").descendants(),c=0,d=b.length;c<d;c++){var e=b[c];if(e.type=="text"){this.eventManager.registerEvent(e,"blur",gSTBEventActions.onBlur.bindAsEventListener(gSTBEventActions));
this.eventManager.registerEvent(e,"keyup",gSTBEventActions.onKeyUp.bindAsEventListener(gSTBEventActions))}else if(e.type=="radio"){this.eventManager.registerEvent(e,"click",gSTBEventActions.onClick.bindAsEventListener(gSTBEventActions));this.eventManager.registerEvent(e,"keyup",gSTBEventActions.onKeyUp.bindAsEventListener(gSTBEventActions))}else if(e.type=="select-one"){this.eventManager.registerEvent(e,"change",gSTBEventActions.onChange.bindAsEventListener(gSTBEventActions));this.eventManager.registerEvent(e,
"keyup",gSTBEventActions.onKeyUp.bindAsEventListener(gSTBEventActions))}else e.type=="checkbox"&&this.eventManager.registerEvent(e,"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()},setInputValue:function(b,
c){if(navigator.appVersion.match(/MSIE 7.0/)){var d=$(b).getWidth();$(b).value=c;$(b).setStyle({width:d+"px"})}else $(b).value=c},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 b=smw_ctbHandler.findContainer("703");b.replace("701",b.createText(701,"(e) Testreplace","",true));this.hideSandglass()}};var CTBHandler=Class.create();
CTBHandler.prototype={initialize:function(){this.containerlist=[]},addContainer:function(b,c){var d=this.posInArray(b);if(d<0)this.containerlist.push([b,c]);else this.containerlist[d]=[b,c]},posInArray:function(b){for(var c=0;c<this.containerlist.length;c++)if(b==this.containerlist[c][0])return c;return-1},findContainer:function(b){var c=$(b);if(!c)return false;c=c.ancestors();for(var d=0;d<c.length;d++){b=c[d].readAttribute("id");if(b=/(.*)-box/g.exec(b)){b=this.posInArray(b[1]);if(b>=0)return this.containerlist[b][1]}}return false}};
var smw_ctbHandler=new CTBHandler;var Marker=Class.create();
Marker.prototype={initialize:function(b){this.rootnode=b;this.markerindex=0;this.transparencymarkerlist=[];this.iconmarkerlist=[]},insertMarkers:function(){if($(this.rootnode)){$(this.rootnode).hide();for(var b=0;b<this.transparencymarkerlist.length;b++)if($(this.iconmarkerlist[b][2])){if($(this.iconmarkerlist[b][2]).tagName.toLowerCase()=="div"){if($(this.iconmarkerlist[b][2]).style.position=="")$(this.iconmarkerlist[b][2]).style.position="relative";new Insertion.Bottom($(this.transparencymarkerlist[b][2]),this.transparencymarkerlist[b][1]);
$(this.transparencymarkerlist[b][0]).setStyle({top:"0px"});$(this.transparencymarkerlist[b][0]).setStyle({left:"0px"})}else{new Insertion.After(this.transparencymarkerlist[b][2],this.transparencymarkerlist[b][1]);$(this.transparencymarkerlist[b][0]).setStyle({top:this.transparencymarkerlist[b][3]+"px"});$(this.transparencymarkerlist[b][0]).setStyle({left:this.transparencymarkerlist[b][4]+"px"})}var c=Number(this.getBorderWidth($(this.transparencymarkerlist[b][0]),"left"))+Number(this.getBorderWidth($(this.transparencymarkerlist[b][0]),
"right"));if(isNaN(Number(c)))return;var d=Number(this.getBorderWidth($(this.transparencymarkerlist[b][0]),"top"))+Number(this.getBorderWidth($(this.transparencymarkerlist[b][0]),"bottom"));if(isNaN(Number(d)))return;d=this.transparencymarkerlist[b][5]-d;c=this.transparencymarkerlist[b][6]-c;if(d>0&&c>0){$(this.transparencymarkerlist[b][0]).setStyle({height:d+"px"});$(this.transparencymarkerlist[b][0]).setStyle({width:c+"px"})}}for(b=0;b<this.iconmarkerlist.length;b++)if($(this.iconmarkerlist[b][2]).tagName.toLowerCase()==
"div"){if($(this.iconmarkerlist[b][2]).style.position=="")$(this.iconmarkerlist[b][2]).style.position="relative";new Insertion.Bottom(this.iconmarkerlist[b][2],this.iconmarkerlist[b][1]);$(this.iconmarkerlist[b][0]).setStyle({top:"0px"});$(this.iconmarkerlist[b][0]).setStyle({left:"0px"})}else{new Insertion.After($(this.iconmarkerlist[b][2]),this.iconmarkerlist[b][1]);$(this.iconmarkerlist[b][0]).setStyle({top:this.iconmarkerlist[b][3]+"px"});$(this.iconmarkerlist[b][0]).setStyle({left:this.iconmarkerlist[b][4]+
"px"})}$(this.rootnode).show()}},transparencyMarker:function(b){if(b!=null){var c=b.offsetWidth,d=b.offsetHeight,e=b.offsetTop,f=b.offsetLeft;this.transparencymarkerlist.push(Array(this.markerindex+"-marker",'<div id="'+this.markerindex+'-marker" class="div-marker"></div>',$(b).identify(),e,f,d,c));this.markerindex++}},iconMarker:function(b,c){if(b!=null){var d=[];d.push('<div id="'+this.markerindex+'-marker" class="icon-marker">');if(c instanceof Array)for(var e=0;e<c.length;e++)d.push('<a href="'+
wgServer+wgScript+"/"+c[e]+'"><img src="'+wgScriptPath+'/extensions/SMWHalo/skins/templatemarker.png"/></a>');else c instanceof String||typeof c=="string"?d.push('<a href="'+wgServer+wgScript+"/"+c+'"><img src="'+wgScriptPath+'/extensions/SMWHalo/skins/templatemarker.png"/></a>'):d.push('<img src="'+wgScriptPath+'/extensions/SMWHalo/skins/templatemarker.png"/>');d.push("</div>");e=b.offsetTop;var f=b.offsetLeft;this.iconmarkerlist.push(Array(this.markerindex+"-marker",d.join(""),$(b).identify(),e,
f));this.markerindex++}},textMarker:function(b,c){var d=document.createElement("span"),e=document.createAttribute("id");e.nodeValue=this.markerindex+"-textmarker";d.setAttributeNode(e);e=document.createAttribute("class");e.nodeValue="aam_template_highlight text-marker";d.setAttributeNode(e);if(b.nodeValue.blank()!=true){e=document.createTextNode(b.nodeValue);d.appendChild(e);b.parentNode.replaceChild(d,b);this.iconMarker($(this.markerindex+"-textmarker"),c)}},getBorderWidth:function(b,c){var d;return(d=
/(\d*)(px)/.exec($(b).getStyle("border-"+c+"-width")))?d[1]:0},removeMarkers:function(){if($(this.rootnode)){$(this.rootnode).hide();for(var b=$$(".icon-marker"),c=0;c<b.length;c++)b[c].remove();b=$$(".div-marker");for(c=0;c<b.length;c++)b[c].remove();b=$$(".text-marker");for(c=0;c<b.length;c++)b[c].remove();this.transparencymarkerlist=[];this.iconmarkerlist=[];$(this.rootnode).show()}},markNodes:function(){this.removeMarkers();this.mark($(this.rootnode),true);this.insertMarkers()},mark:function(b,
c){if($(this.rootnode)){var d=[];d.push(0);for(var e=null,f=b.childNodes,g=0;g<f.length;g++){var h=f[g];if(h.nodeType==3&&e!=null)c==true&&this.textMarker(h,wgServer+wgScript+"/"+e);else if(h.nodeType==1){if(h.tagName.toLowerCase()=="a"){var k=$(h).readAttribute("type");if(k=="template"){e=$(h).readAttribute("tmplname");d.push(e);continue}if(k=="templateend"){e=null;d[0]=-1;continue}}var l;if(e!=null){l=this.mark(h,false);k=e;if(l[0]!=0&&l[0]!=-1)k=Array(e).push(l[0]);if(l.length>1){l.shift();k=Array(k).concat(l)}if(c==
true&&$(h).visible()){this.transparencyMarker(h);this.iconMarker(h,k)}}else c==true?l=this.mark(h,true):l=this.mark(h,false);switch(l[0]){case -1:e=null;break;case 0:break;default:d.push(l[0]);e=l[0]}if(l.length>1){l.shift();d=d.concat(l)}}}if(e!=null)d[0]=e;return d}}};var smwhg_marker=new Marker("smwh_AAM");Event.observe(window,"load",smwhg_marker.markNodes.bind(smwhg_marker));Event.observe(window,"resize",smwhg_marker.markNodes.bind(smwhg_marker));var RelationToolBar=Class.create(),SMW_REL_VALID_PROPERTY_NAME='smwValidValue="^[^<>\\|&$=\\?\\{\\}\\[\\]]{1,255}$: valid ? (color: white, hideMessage, valid:true) : (color: red, showMessage:PROPERTY_NAME_TOO_LONG, valid:false)" ',SMW_REL_VALID_PROPERTY_VALUE='smwValidValue="^.{1,255}$: valid ? (color: white, hideMessage, valid:true) : (color: orange, showMessage:PROPERTY_VALUE_TOO_LONG, valid:true)" ',SMW_REL_CHECK_PROPERTY='smwCheckType="property: exists ? (color: lightgreen, hideMessage, valid:true) : (color: orange, showMessage:PROPERTY_DOES_NOT_EXIST, valid:true)" ',
SMW_REL_CHECK_PROPERTY_ACCESS='smwAccessControl="property: propertyedit ? (color: lightgreen, hideMessage, valid:true) : (color: red, showMessage:PROPERTY_ACCESS_DENIED, valid:false)" ',SMW_REL_CHECK_PROPERTY_UPDATE_SCHEMA='smwCheckType="property: exists ? (color: lightgreen, hideMessage, valid:true, call:relToolBar.updateSchema, call:relToolBar.updateInstanceTypeHint) : (color: orange, showMessage:PROPERTY_DOES_NOT_EXIST, valid:true, call:relToolBar.resetInstanceTypeHint)" ',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)" ',SMW_REL_CHECK_PROPERTY_IIE='smwCheckType="property: exists ? (color: red, showMessage:PROPERTY_ALREADY_EXISTS, valid:false) : (color: lightgreen, hideMessage, valid:true)" ',SMW_REL_VALID_CATEGORY_NAME='smwValidValue="^[^<>\\|!&$%&=\\?]{1,255}$: valid ? (color: white, hideMessage, valid:true) : (color: red, showMessage:CATEGORY_NAME_TOO_LONG, valid:false)" ',
SMW_REL_CHECK_CATEGORY='smwCheckType="category: exists ? (color: lightgreen, hideMessage, valid:true) : (color: orange, showMessage:CATEGORY_DOES_NOT_EXIST, valid:true)" ',SMW_REL_CHECK_EMPTY='smwCheckEmpty="empty? (color:red, showMessage:MUST_NOT_BE_EMPTY, valid:false) : (color:white, hideMessage)"',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)"',
SMW_REL_CHECK_EMPTY_WIE='smwCheckEmpty="empty? (color:orange, showMessage:VALUE_IMPROVES_QUALITY) : (color:white, hideMessage)"',SMW_REL_NO_EMPTY_SELECTION='smwCheckEmpty="empty? (color:red, showMessage:SELECTION_MUST_NOT_BE_EMPTY, valid:false) : (color:white, hideMessage, valid:true)"',SMW_REL_ALL_VALID='smwAllValid="allValid ? (show:rel-confirm, hide:rel-invalid) : (show:rel-invalid, hide:rel-confirm)"',SMW_REL_SUB_SUPER_ALL_VALID='smwAllValid="allValid ? (call:relToolBar.createSubSuperLinks) : (call:relToolBar.createSubSuperLinks)"',
positionFixed=wgAction=="annotate"||typeof FCKeditor!="undefined"||typeof CKEDITOR!="undefined"?'" position="fixed"':"",SMW_REL_HINT_CATEGORY='constraints = "namespace:'+SMW_CATEGORY_NS+'"'+positionFixed,SMW_REL_HINT_PROPERTY='constraints = "namespace:'+SMW_PROPERTY_NS+'"'+positionFixed,SMW_REL_HINT_INSTANCE='constraints = "namespace:'+SMW_INSTANCE_NS+'"'+positionFixed,SMW_REL_TYPE_CHANGED='smwChanged="(call:relToolBar.relTypeChanged)"';
RelationToolBar.prototype={initialize:function(){this.genTB=new GenericToolBar;this.toolbarContainer=null;this.showList=true;this.relationsForExistenceCheck=this.relationsForAccessCheck=this.currentAction=""},showToolbar:function(){this.relationcontainer.setHeadline(gLanguage.getMessage("PROPERTIES"));if(wgAction=="edit"||wgAction=="formedit"||wgAction=="submit"||wgCanonicalSpecialPageName=="AddData"||wgCanonicalSpecialPageName=="EditData"||wgCanonicalSpecialPageName=="FormEdit")this.wtp=new WikiTextParser;
this.om=new OntologyModifier;this.fillList(true)},callme:function(){if((wgAction=="edit"||wgAction=="annotate"||wgAction=="formedit"||wgAction=="submit"||wgCanonicalSpecialPageName=="AddData"||wgCanonicalSpecialPageName=="EditData"||wgCanonicalSpecialPageName=="FormEdit")&&typeof stb_control!="undefined"&&stb_control.isToolbarAvailable()){this.relationcontainer=stb_control.createDivContainer(RELATIONCONTAINER,0);this.showToolbar()}},fillList:function(b){function c(h){if(h.status==200){h=h.responseText.evalJSON(true);
this.propertyExists=[];this.valuePageInfo=[];this.categoryInfo=[];for(var k=false,l=0;l<h.length;++l){d[l].exists=h[l].relationExists;this.propertyExists.push(h[l].relationExists);d[l].accessAllowed=h[l].accessGranted;if(h[l].accessGranted=="false")k=true;d[l].valuePageInfo=h[l].valuePageInfo;this.valuePageInfo.push(h[l].valuePageInfo);d[l].categoryInfo=h[l].rangeCategories;this.categoryInfo.push(h[l].rangeCategories)}refreshSTB.containsForbiddenProperties=k;this.relationcontainer.setContent(this.genTB.createList(d,
"relation"));this.relationcontainer.contentChanged();refreshSTB.refreshToolBar()}}if(b==true)this.showList=true;if(this.showList)if(this.wtp){this.wtp.initialize();var d=this.wtp.getRelations(),e="";b=window.catToolBar.recommendedRels!==undefined?window.catToolBar.recommendedRels.clone():[];for(var f=0;f<d.length;++f){e+=gLanguage.getMessage("PROPERTY_NS")+d[f].getName()+",";if(b!==undefined)for(var g=0;g<b.length;++g)b[f]!=="undefined"&&d[f].getName().toLowerCase()===b[g].getName().toLowerCase()&&
b.splice(g,1)}e=[];for(f=0;f<d.length;++f)e[f]={name:gLanguage.getMessage("PROPERTY_NS")+d[f].name,values:d[f].getSplitValues(),accessRequest:"propertyedit"};f=JSON.stringify(e);if(f.length>0&&f!=this.relationInfoRequest){this.relationInfoRequest=f;sajax_do_call("smwf_om_MultipleRelationInfo",[f],c.bind(this),d)}if(this.propertyRights&&this.propertyRights.length==d.length)for(f=0;f<d.length;++f)d[f].accessAllowed=this.propertyRights[f];if(this.propertyExists&&this.propertyExists.length==d.length)for(f=
0;f<d.length;++f)d[f].exists=this.propertyExists[f];if(this.valuePageInfo&&this.valuePageInfo.length==d.length)for(f=0;f<d.length;++f)d[f].valuePageInfo=this.valuePageInfo[f];if(this.categoryInfo&&this.categoryInfo.length==d.length)for(f=0;f<d.length;++f)d[f].categoryInfo=this.categoryInfo[f];wgAction!=="annotate"?this.relationcontainer.setContent(this.genTB.createList(d,"relation")+this.genTB.createList(b,"rec-relation")):this.relationcontainer.setContent(this.genTB.createList(d,"relation"));this.relationcontainer.contentChanged()}},
setWikiTextParser:function(b){this.wtp=b},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(b){this.toolbarContainer&&this.toolbarContainer.release();var c=this.toolbarContainer=new ContainerToolBar("relation-content",700,this.relationcontainer);c.createContainerBody(b);return c},createContextMenu:function(b,
c,d,e){this.toolbarContainer&&this.toolbarContainer.release();b=this.toolbarContainer=new ContainerToolBar("relation-content",500,b);b.createContainerBody(SMW_REL_ALL_VALID,RELATIONCONTAINER,gLanguage.getMessage("SPECIFY_PROPERTY"));this.wtp.initialize();this.currentAction="annotate";var f=false;if(!c){d=c=this.wtp.getSelection(true);c=c.replace(/\n/g," ");c=c.replace(/'''''/g,"");c=c.replace(/'''/g,"");c=c.replace(/''/g,"");f=true}smwhgLogger.log(c,"AAM-Properties","annotate_clicked");b.append(b.createInput("rel-name",
gLanguage.getMessage("PROPERTY"),"","",SMW_REL_CHECK_PROPERTY_UPDATE_SCHEMA+SMW_REL_CHECK_PROPERTY_ACCESS+SMW_REL_CHECK_EMPTY+SMW_REL_VALID_PROPERTY_NAME+SMW_REL_HINT_PROPERTY,true));b.setInputValue("rel-name",e?e:"");b.append(b.createText("rel-name-msg",gLanguage.getMessage("ENTER_NAME"),"",true));b.append(b.createInput("rel-value-0",gLanguage.getMessage("PAGE"),"","",SMW_REL_CHECK_EMPTY_NEV+SMW_REL_HINT_INSTANCE+SMW_REL_VALID_PROPERTY_VALUE,true));b.setInputValue("rel-value-0",c);b.append(b.createText("rel-value-0-msg",
gLanguage.getMessage("ANNO_PAGE_VALUE"),"",true));b.append(b.createInput("rel-show",gLanguage.getMessage("SHOW"),"","","",true));b.setInputValue("rel-show",d);c=[["relToolBar.addItem()",e?gLanguage.getMessage("CHANGE"):gLanguage.getMessage("ADD"),"rel-confirm",gLanguage.getMessage("INVALID_VALUES"),"rel-invalid"]];b.append(b.createLink("rel-links",c,"",true));b.finishCreation();if(wgAction=="annotate"){$("rel-show").disable();f||$("rel-value-0").disable()}gSTBEventActions.initialCheck($("relation-content-box"));
setTimeout("if ($('rel-name')) $('rel-name').focus();",250)},addItem:function(){this.wtp.initialize();var b=$("rel-name").value,c=this.getRelationValue(),d=$("rel-show").value;smwhgLogger.log(b+":"+c,"STB-Properties","annotate_added");if(b==""||b==null)alert(gLanguage.getMessage("INPUT_BOX_EMPTY"));else{this.wtp.addRelation(b,c,d);this.fillList(true)}},getRelationValue:function(){for(var b=0,c="";$("rel-value-"+b)!=null;){c+=$("rel-value-"+b).value+";";b++}return c=c.substr(0,c.length-1)},newItem:function(){this.wtp.initialize();
this.showList=false;this.currentAction="annotate";var b=this.wtp.getSelection(true);smwhgLogger.log(b,"STB-Properties","annotate_clicked");var c=this.createToolbar(SMW_REL_ALL_VALID);c.append(c.createText("rel-help_msg",gLanguage.getMessage("ANNOTATE_PROPERTY"),"",true));c.append(c.createInput("rel-name",gLanguage.getMessage("PROPERTY"),"","",SMW_REL_CHECK_PROPERTY_UPDATE_SCHEMA+SMW_REL_CHECK_PROPERTY_ACCESS+SMW_REL_CHECK_EMPTY+SMW_REL_VALID_PROPERTY_NAME+SMW_REL_HINT_PROPERTY,true));c.setInputValue("rel-name",
"");c.append(c.createText("rel-name-msg",gLanguage.getMessage("ENTER_NAME"),"",true));c.append(c.createInput("rel-value-0",gLanguage.getMessage("PAGE"),"","",SMW_REL_CHECK_EMPTY_NEV+SMW_REL_HINT_INSTANCE+SMW_REL_VALID_PROPERTY_VALUE,true));c.setInputValue("rel-value-0",b);c.append(c.createText("rel-value-0-msg",gLanguage.getMessage("ANNO_PAGE_VALUE"),"",true));c.append(c.createInput("rel-show",gLanguage.getMessage("SHOW"),"","","",true));c.setInputValue("rel-show","");b=[["relToolBar.addItem()",gLanguage.getMessage("ADD"),
"rel-confirm",gLanguage.getMessage("INVALID_VALUES"),"rel-invalid"],["relToolBar.cancel()",gLanguage.getMessage("CANCEL")]];c.append(c.createLink("rel-links",b,"",true));c.finishCreation();gSTBEventActions.initialCheck($("relation-content-box"));setTimeout("$('rel-name').focus();",50)},recProp:function(b){this.wtp.initialize();this.showList=false;this.currentAction="annotate";smwhgLogger.log(b,"STB-Properties","rec_prop_clicked");var c=this.createToolbar(SMW_REL_ALL_VALID);c.append(c.createText("rel-help_msg",
gLanguage.getMessage("ANNOTATE_PROPERTY"),"",true));c.append(c.createInput("rel-name",gLanguage.getMessage("PROPERTY"),b,"",SMW_REL_CHECK_PROPERTY_UPDATE_SCHEMA+SMW_REL_CHECK_PROPERTY_ACCESS+SMW_REL_CHECK_EMPTY+SMW_REL_VALID_PROPERTY_NAME+SMW_REL_HINT_PROPERTY,true));c.setInputValue("rel-name",b);c.append(c.createText("rel-name-msg",gLanguage.getMessage("ENTER_NAME"),"",true));c.append(c.createInput("rel-value-0",gLanguage.getMessage("PAGE"),"","",SMW_REL_CHECK_EMPTY_NEV+SMW_REL_HINT_INSTANCE+SMW_REL_VALID_PROPERTY_VALUE,
true));c.append(c.createText("rel-value-0-msg",gLanguage.getMessage("ANNO_PAGE_VALUE"),"",true));c.append(c.createInput("rel-show",gLanguage.getMessage("SHOW"),"","","",true));c.setInputValue("rel-show","");b=[["relToolBar.addItem()",gLanguage.getMessage("ADD"),"rel-confirm",gLanguage.getMessage("INVALID_VALUES"),"rel-invalid"],["relToolBar.cancel()",gLanguage.getMessage("CANCEL")]];c.append(c.createLink("rel-links",b,"",true));c.finishCreation();gSTBEventActions.initialCheck($("relation-content-box"));
setTimeout("$('rel-value-0').focus();",50)},updateSchema:function(b){var c=relToolBar;if(!relToolBar.toolbarContainer)c=window.contextMenuRelToolBar;c.toolbarContainer.showSandglass(b);sajax_do_call("smwf_om_RelationSchemaData",[$("rel-name").value],c.updateNewItem.bind(c))},updateNewItem:function(b){this.toolbarContainer.hideSandglass();if(b.status==200){var c=2,d=["Page"];if(b.responseText!="noSchemaData"){var e=GeneralXMLTools.createDocumentFromString(b.responseText);b=parseInt(e.documentElement.getAttribute("arity"));
if(b>0){c=b;d=[];b=0;for(var f=e.documentElement.childNodes.length;b<f;b++)d.push(e.documentElement.childNodes[b].getAttribute("name"))}}var g=this.wtp.getSelection(true);e=this.toolbarContainer;b=0;var h=[],k=true;for(f=[];k;){k=false;var l=$("rel-value-"+b);if(l){f.push($("rel-value-"+b).value);h.push("rel-value-"+b);k=true}if(l=$("rel-value-"+b+"-msg")){h.push("rel-value-"+b+"-msg");k=true}++b}e.remove(h);for(b=0;b<c-1;b++){insertAfter=b==0?$("rel-replace-all")?"rel-replace-all":"rel-name-msg":
"rel-value-"+(b-1)+"-msg";g=b==0?f.length>0?f[0]:g:f.length>b?f[b]:"";h=SMW_REL_HINT_INSTANCE;k="";l=d[b].indexOf("|Page");if(b==0&&l>0){d[b]=d[b].substr(0,l);k=$("rel-name");h="namespace:"+SMW_INSTANCE_NS;if(k.value.length>0)h=k.value==gLanguage.getMessage("SUBPROPERTY_OF","cont")?"namespace:"+SMW_PROPERTY_NS:"instance-property-range:"+gLanguage.getMessage("PROPERTY_NS")+k.value+"| "+h;h='constraints="'+h+'"';k='pastens="true"'}e.insert(insertAfter,e.createInput("rel-value-"+b,d[b],"","",SMW_REL_CHECK_EMPTY_NEV+
SMW_REL_VALID_PROPERTY_VALUE+h+k,true));e.setInputValue("rel-value-"+b,g);e.insert("rel-value-"+b,e.createText("rel-value-"+b+"-msg",gLanguage.getMessage("ANNO_PAGE_VALUE"),"",true));g=""}e.finishCreation();gSTBEventActions.initialCheck($("relation-content-box"))}},CreateSubSup:function(){this.showList=false;this.currentAction="sub/super-category";this.wtp.initialize();var b=this.wtp.getSelection(true);smwhgLogger.log(b,"STB-Properties","sub/super-property_clicked");var c=this.createToolbar(SMW_REL_SUB_SUPER_ALL_VALID);
c.append(c.createText("rel-help-msg",gLanguage.getMessage("DEFINE_SUB_SUPER_PROPERTY"),"",true));c.append(c.createInput("rel-subsuper",gLanguage.getMessage("PROPERTY"),"","",SMW_REL_SUB_SUPER_CHECK_PROPERTY+SMW_REL_CHECK_EMPTY+SMW_REL_VALID_PROPERTY_NAME+SMW_REL_HINT_PROPERTY,true));c.setInputValue("rel-subsuper",b);c.append(c.createText("rel-subsuper-msg",gLanguage.getMessage("ENTER_NAME"),"",true));c.append(c.createLink("rel-make-sub-link",[["relToolBar.createSubItem()",gLanguage.getMessage("CREATE_SUB"),
"rel-make-sub"]],"",false));c.append(c.createLink("rel-make-super-link",[["relToolBar.createSuperItem()",gLanguage.getMessage("CREATE_SUPER"),"rel-make-super"]],"",false));b=[["relToolBar.cancel()",gLanguage.getMessage("CANCEL")]];c.append(c.createLink("rel-links",b,"",true));c.finishCreation();gSTBEventActions.initialCheck($("relation-content-box"));setTimeout("$('rel-subsuper').focus();",50)},createSubSuperLinks:function(){var b=$("rel-subsuper").getAttribute("propExists");b=b&&b=="true";var c=
this.toolbarContainer,d=$("rel-subsuper").value;if(d==""){$("rel-make-sub").hide();$("rel-make-super").hide()}else{var e,f;if(b){f=gLanguage.getMessage("MAKE_SUB_PROPERTY");e=gLanguage.getMessage("MAKE_SUPER_PROPERTY")}else{f=gLanguage.getMessage("CREATE_SUB_PROPERTY");e=gLanguage.getMessage("CREATE_SUPER_PROPERTY")}f=f.replace(/\$-title/g,d);e=e.replace(/\$-title/g,d);if($("rel-make-sub").innerHTML!=f){b=c.createLink("rel-make-sub-link",[["relToolBar.createSuperItem("+(b?"false":"true")+")",f,"rel-make-sub"]],
"",true);c.replace("rel-make-sub-link",b);b=c.createLink("rel-make-super-link",[["relToolBar.createSubItem()",e,"rel-make-super"]],"",true);c.replace("rel-make-super-link",b)}}},createSubItem:function(b){if(b==undefined)b=false;var c=$("rel-subsuper").value;smwhgLogger.log(wgTitle+":"+c,"STB-Properties","sub-property_created");if(c==""||c==null)alert(gLanguage.getMessage("INPUT_BOX_EMPTY"));else{this.om.createSubProperty(c,"",b);this.fillList(true)}},createSuperItem:function(b){if(b==undefined)b=
false;var c=$("rel-subsuper").value;smwhgLogger.log(c+":"+wgTitle,"STB-Properties","super-property_created");if(c==""||c==null)alert(gLanguage.getMessage("INPUT_BOX_EMPTY"));else{this.om.createSuperProperty(c,"",b,this.wtp);this.fillList(true)}},updateTypeHint:function(b){var c=$(b).value;b=$("rel-name");var d="namespace:"+SMW_PROPERTY_NS,e=c.match(/\d{1,5}[- \/.](0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])/);e||(e=c.match(/(0[1-9]|[12][0-9]|3[01])[- \/.](0[1-9]|1[012])[- \/.]\d{1,5}/));var f=c.match(/^([A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4})$/i);
c=c.match(/([+-]?\d*(\.\d+([eE][+-]?\d*)?)?)\s*(.*)/);if(e)d="schema-property-type:_dat|namespace:"+SMW_PROPERTY_NS;else if(f)d="schema-property-type:_ema|namespace:"+SMW_PROPERTY_NS;else if(c){f=c[1];e=c[4];c=c[2];if(f&&e){d=e.charCodeAt(0);d=e==="K"||e==="\u00b0C"||e==="\u00b0F"||d==176&&e.length==2&&(e.charAt(1)=="C"||e.charAt(1)=="F")?"schema-property-type:_tem|namespace:"+SMW_PROPERTY_NS:"schema-property-type:"+e+"|namespace:"+SMW_PROPERTY_NS}else if(f&&c)d="schema-property-type:_flt|namespace:"+
SMW_PROPERTY_NS;else if(f)d="schema-property-type:_num,_int,_flt|namespace:"+SMW_PROPERTY_NS;else if(e)d="schema-property-type:"+e+"|namespace:"+SMW_PROPERTY_NS}c=this.wtp.getCategories();e=c.length;if(e>0){f="";for(var g=gLanguage.getMessage("CATEGORY_NS"),h=0;h<e;++h)f+="schema-property-domain:"+g+c[h].getName()+"|";d=f+d}b.setAttribute("constraints",d)},updateInstanceTypeHint:function(){var b=$("rel-name"),c=$("rel-value-0"),d="namespace:"+SMW_INSTANCE_NS;if(b.value.length>0)d=b.value==gLanguage.getMessage("SUBPROPERTY_OF",
"cont")?"namespace:"+SMW_PROPERTY_NS:"instance-property-range:"+gLanguage.getMessage("PROPERTY_NS")+b.value+"| "+d;c.setAttribute("constraints",d);c.setAttribute("pastens","true")},resetInstanceTypeHint:function(){$("rel-value-0").setAttribute("constraints","namespace:"+SMW_INSTANCE_NS)},newRelation:function(){gDataTypes.refresh();this.showList=false;this.currentAction="create";this.wtp.initialize();var b=this.wtp.getSelection(true);smwhgLogger.log(b,"STB-Properties","create_clicked");var c=wgNamespaceNumber==
14?wgTitle:"",d=this.createToolbar(SMW_REL_ALL_VALID);d.append(d.createText("rel-help-msg",gLanguage.getMessage("CREATE_NEW_PROPERTY"),"",true));d.append(d.createInput("rel-name",gLanguage.getMessage("PROPERTY"),"","",SMW_REL_CHECK_PROPERTY_IIE+SMW_REL_CHECK_EMPTY+SMW_REL_VALID_PROPERTY_NAME+SMW_REL_HINT_PROPERTY,true));d.setInputValue("rel-name",b);d.append(d.createText("rel-name-msg",gLanguage.getMessage("ENTER_NAME"),"",true));d.append(d.createInput("rel-domain",gLanguage.getMessage("DOMAIN"),
"","",SMW_REL_CHECK_CATEGORY+SMW_REL_VALID_CATEGORY_NAME+SMW_REL_CHECK_EMPTY_WIE+SMW_REL_HINT_CATEGORY,true));d.setInputValue("rel-domain",c);d.append(d.createText("rel-domain-msg",gLanguage.getMessage("ENTER_DOMAIN"),"",true));this.addTypeInput();b=[["relToolBar.addTypeInput()",gLanguage.getMessage("ADD_TYPE")]];d.append(d.createLink("rel-add-links",b,"",true));b=[["relToolBar.createNewRelation()",gLanguage.getMessage("CREATE"),"rel-confirm",gLanguage.getMessage("INVALID_VALUES"),"rel-invalid"],
["relToolBar.cancel()",gLanguage.getMessage("CANCEL")]];d.append(d.createLink("rel-links",b,"",true));d.finishCreation();gSTBEventActions.initialCheck($("relation-content-box"));setTimeout("$('rel-name').focus();",50)},addTypeInput:function(){for(var b=0;$("rel-range-"+b)!=null;)b++;var c=this.toolbarContainer,d=b==0?"rel-domain-msg":$("rel-range-"+(b-1)+"-msg")?"rel-range-"+(b-1)+"-msg":"rel-range-"+(b-1),e=this.getDatatypeOptions(),f=gLanguage.getMessage("TYPE_PAGE_WONS");e=e.indexOf(f);c.insert(d,
c.createDropDown("rel-type-"+b,gLanguage.getMessage("TYPE"),this.getDatatypeOptions(),"relToolBar.removeType('rel-type-"+b+"')",e,SMW_REL_NO_EMPTY_SELECTION+SMW_REL_TYPE_CHANGED,true));d="rel-type-"+b+"-msg";c.insert("rel-type-"+b,c.createText(d,gLanguage.getMessage("ENTER_TYPE"),"",true));c.insert(d,c.createInput("rel-range-"+b,gLanguage.getMessage("RANGE"),"","",SMW_REL_CHECK_CATEGORY+SMW_REL_CHECK_EMPTY_WIE+SMW_REL_VALID_CATEGORY_NAME+SMW_REL_HINT_CATEGORY,true));c.setInputValue("rel-range-"+b,
"");c.insert("rel-range-"+b,c.createText("rel-range-"+b+"-msg",gLanguage.getMessage("ENTER_RANGE"),"",true));c.finishCreation();gSTBEventActions.initialCheck($("relation-content-box"))},getDatatypeOptions:function(){var b=[];b=gDataTypes.getBuiltinTypes();var c=gDataTypes.getUserDefinedTypes();return b=b.concat([""],c)},removeType:function(b){var c=$(b);if(c!=null){var d=this.toolbarContainer,e=c.getAttribute("id");c=parseInt(e.substr(e.length-1,e.length));d.remove(b);$(b+"-msg")&&d.remove(b+"-msg");
var f=b.replace(/type/,"range");d.remove(f);$(f+"-msg")&&d.remove(f+"-msg");for(b=e.substr(0,e.length-1);e=$(b+ ++c);){if(f=e.up().up().down("a")){var g=f.getAttribute("href"),h=RegExp(b+c);g=g.replace(h,b+(c-1));f.setAttribute("href",g)}d.changeID(e,b+(c-1));if(e=$(b+c+"-msg"))d.changeID(e,b+(c-1)+"-msg");f=b.replace(/type/,"range");e=$(f+c);d.changeID(e,f+(c-1));if(e=$(f+c+"-msg"))d.changeID(e,f+(c-1)+"-msg")}d.finishCreation();gSTBEventActions.initialCheck($("relation-content-box"))}},relTypeChanged:function(b){b=
$(b);var c="rel-range-"+b.id.substring(9);b=b[b.selectedIndex].text==gLanguage.getMessage("TYPE_PAGE_WONS");var d=relToolBar.toolbarContainer;d.show(c,b);b||d.show(c+"-msg",false);gSTBEventActions.initialCheck($("relation-content-box"))},createNewRelation:function(){var b=$("rel-name").value;if(b==""||b==null)alert(gLanguage.getMessage("INPUT_BOX_EMPTY"));else{for(var c=0,d=[];$("rel-type-"+c)!=null;){var e=$("rel-type-"+c);e=e.options[e.selectedIndex].text;if(e!=gLanguage.getMessage("TYPE_PAGE_WONS"))d.push(gLanguage.getMessage("TYPE_NS")+
e);else{e=$("rel-range-"+c).value;d.push(e&&e!=""?gLanguage.getMessage("CATEGORY_NS")+e:"")}c++}e="";for(c=0;c<d.length;c++){e+=d[c]!=""?d[c]:gLanguage.getMessage("TYPE_PAGE");if(c<d.length-1)e+=", "}smwhgLogger.log(b+":"+e,"STB-Properties","create_added");this.om.createRelation(b,gLanguage.getMessage("CREATE_PROPERTY"),$("rel-domain").value,d);this.fillList(true)}},changeItem:function(b){this.wtp.initialize();var c=$("rel-name").value,d=this.getRelationValue(),e=$("rel-show").value;if(c==""||c==
null)alert(gLanguage.getMessage("INPUT_BOX_EMPTY"));else{var f=this.wtp.getRelations();if(b!=null&&b>=0&&b<=f.length){b=f[b];f=b.getName();var g=b.getValue();smwhgLogger.log(f+":"+g+"->"+c+":"+d,"STB-Properties","edit_annotation_change");if($("rel-replace-all")&&$("rel-replace-all").down("input").checked==true){f=this.wtp.getRelation(b.getName());g=0;for(var h=f.length;g<h;g++)f[g].rename(c)}if(c==gLanguage.getMessage("SUBPROPERTY_OF","cont")){f=gLanguage.getMessage("PROPERTY_NS","cont");if(d.indexOf(f)!=
0)d=f+d}b.update(c,d,e)}this.fillList(true)}},deleteItem:function(b){this.wtp.initialize();var c=this.wtp.getRelations();if(b!=null&&b>=0&&b<=c.length){b=c[b];c=b.getRepresentation()!=""?b.getRepresentation():b.getValue()!=""?b.getValue():"";smwhgLogger.log(b.getName()+":"+b.getValue(),"STB-Properties","edit_annotation_delete");b.remove(c)}this.fillList(true)},getselectedItem:function(b){function c(h){g.hideSandglass();if(h.status!=200)alert(gLanguage.getMessage("RETRIEVE_SCHEMA_DATA"));else{var k=
[];if(h.responseText!="noSchemaData"){var l=GeneralXMLTools.createDocumentFromString(h.responseText);if(l.documentElement.tagName!="parsererror"){h=0;for(var m=l.documentElement.childNodes.length;h<m;h++)k.push(l.documentElement.childNodes[h].getAttribute("name"))}}if(k.size()==0)for(h=0;h<f.getArity()-1;h++)k.push("Value");l=[];m=[];for(h=0;h<f.getArity()-1;h++){var n=k.length>h?k[h]:"Page",p='smwCheckType="'+n.toLowerCase()+': valid? (color: lightgreen, hideMessage, valid:true): (color: red, showMessage:INVALID_FORMAT_OF_VALUE, valid:false)" ';
n=g.createInput("rel-value-"+h,n,f.getSplitValues()[h],"",p+SMW_REL_VALID_PROPERTY_VALUE+(n=="Page"?SMW_REL_HINT_INSTANCE:""),true);l.push(n);n=g.createText("rel-value-"+h+"-msg","","",true);l.push(n);m.push(["rel-value-"+h,f.getSplitValues()[h]])}g.append(g.createInput("rel-name",gLanguage.getMessage("PROPERTY"),"","",SMW_REL_CHECK_PROPERTY_UPDATE_SCHEMA+SMW_REL_CHECK_PROPERTY_ACCESS+SMW_REL_CHECK_EMPTY+SMW_REL_VALID_PROPERTY_NAME+SMW_REL_HINT_PROPERTY,true));g.setInputValue("rel-name",f.getName());
g.append(g.createText("rel-name-msg","","",true));d!=""&&g.append(d);g.append(l);for(h=0;h<m.length;h++)g.setInputValue(m[h][0],m[h][1]);k=f.getRepresentation();if(wgAction=="annotate")if(k==""){l=f.getSplitValues();k=l[0];if(l.size()>1){k+=" (";for(h=1;h<l.size();++h){k+=l[h];if(h<l.size()-1)k+=","}k+=")"}}g.append(g.createInput("rel-show",gLanguage.getMessage("SHOW"),k,"","",true));g.setInputValue("rel-show",k);h=[["relToolBar.changeItem("+b+")",gLanguage.getMessage("CHANGE"),"rel-confirm",gLanguage.getMessage("INVALID_VALUES"),
"rel-invalid"],["relToolBar.deleteItem("+b+")",gLanguage.getMessage("DELETE")],["relToolBar.cancel()",gLanguage.getMessage("CANCEL")]];g.append(g.createLink("rel-links",h,"",true));g.finishCreation();if(wgAction=="annotate"){$("rel-show").disable();$("rel-value-0").disable()}gSTBEventActions.initialCheck($("relation-content-box"));setTimeout("$('rel-name').focus();",50)}}this.wtp.initialize();var d="",e=this.wtp.getRelations();if(!(b==null||b<0||b>=e.length)){this.showList=false;this.currentAction=
"editannotation";var f=e[b];smwhgLogger.log(f.getName()+":"+f.getValue(),"STB-Properties","editannotation_clicked");var g=this.createToolbar(SMW_REL_ALL_VALID);if(this.wtp.getRelation(f.getName()).length>1)d=g.createCheckBox("rel-replace-all","",[gLanguage.getMessage("RENAME_ALL_IN_ARTICLE")],[],"",true);g.append(g.createText("rel-help-msg",gLanguage.getMessage("CHANGE_PROPERTY"),"",true));if(f.getName().strip()!=""){this.toolbarContainer.showSandglass("rel-help-msg");sajax_do_call("smwf_om_RelationSchemaData",
[f.getName()],c.bind(this))}}}};var relToolBar=new RelationToolBar;typeof FCKeditor=="undefined"&&Event.observe(window,"load",relToolBar.callme.bindAsEventListener(relToolBar));var SMW_PRP_ALL_VALID='smwAllValid="allValid ? (show:prop-confirm, hide:prop-invalid) : (show:prop-invalid, hide:prop-confirm)"',SMW_PRP_CHECK_MAX_CARD='smwValid="propToolBar.checkMaxCard"',SMW_PRP_VALID_CATEGORY_NAME='smwValidValue="^[^<>|!&$%&=?]{1,255}$: valid ? (color: white, hideMessage, valid:true) : (color: red, showMessage:CATEGORY_NAME_TOO_LONG, valid:false)" ',SMW_PRP_CHECK_CATEGORY='smwCheckType="category: exists ? (color: lightgreen, hideMessage, valid:true) : (color: orange, showMessage:CATEGORY_DOES_NOT_EXIST, valid:true)" ',
SMW_PRP_CHECK_PROPERTY='smwCheckType="property: exists ? (color: lightgreen, hideMessage, valid:true) : (color: orange, showMessage:PROPERTY_DOES_NOT_EXIST, valid:true)" ',SMW_PRP_VALID_PROPERTY_NAME='smwValidValue="^[^<>|!&$%&=?]{1,255}$: valid ? (color: white, hideMessage, valid:true) : (color: red, showMessage:PROPERTY_NAME_TOO_LONG, valid:false)" ';positionFixed=typeof FCKeditor!="undefined"||typeof CKEDITOR!="undefined"?'position="fixed"':"";
var SMW_PRP_HINT_CATEGORY='constraints = "namespace:'+SMW_CATEGORY_NS+'" '+positionFixed,SMW_PRP_HINT_PROPERTY='constraints = "namespace:'+SMW_PROPERTY_NS+'" '+positionFixed,SMW_PRP_CHECK_EMPTY='smwCheckEmpty="empty? (color:red, showMessage:MUST_NOT_BE_EMPTY, valid:false) : (color:white, hideMessage)"',SMW_PRP_CHECK_EMPTY_WIE='smwCheckEmpty="empty? (color:orange, showMessage:VALUE_IMPROVES_QUALITY) : (color:white, hideMessage)"',SMW_PRP_CHECK_EMPTY_VIE='smwCheckEmpty="empty? (color:white, hideMessage, valid:true) : ()"',
SMW_PRP_NO_EMPTY_SELECTION='smwCheckEmpty="empty? (color:red, showMessage:SELECTION_MUST_NOT_BE_EMPTY, valid:false) : (color:white, hideMessage, valid:true)"',SMW_PRP_TYPE_CHANGED='smwChanged="(call:propToolBar.propTypeChanged)"',PRP_NARY_CHANGE_LINKS=[["propToolBar.addType()",gLanguage.getMessage("ADD_TYPE"),"prp-add-type-lnk"]],PRP_APPLY_LINK=[["propToolBar.apply()","Apply","prop-confirm",gLanguage.getMessage("INVALID_VALUES"),"prop-invalid"],["propToolBar.cancel()",gLanguage.getMessage("CANCEL")]],
PropertiesToolBar=Class.create();
PropertiesToolBar.prototype={initialize:function(){this.genTB=new GenericToolBar;this.pendingIndicator=this.toolbarContainer=null;this.isRelation=true;this.prpNAry=this.numOfParams=0;this.hasDuplicates=false},showToolbar:function(){if(this.propertiescontainer!=null){this.propertiescontainer.setHeadline(gLanguage.getMessage("PROPERTY_PROPERTIES"));this.wtp=new WikiTextParser;this.om=new OntologyModifier;this.createContent()}},callme:function(){if((wgAction=="edit"||wgAction=="formedit"||wgAction==
"submit"||wgCanonicalSpecialPageName=="AddData"||wgCanonicalSpecialPageName=="EditData"||wgCanonicalSpecialPageName=="FormEdit")&&(wgNamespaceNumber==100||wgNamespaceNumber==102||typeof sfgTargetNamespaceNumber!="undefined"&&sfgTargetNamespaceNumber==102)&&stb_control.isToolbarAvailable()){this.propertiescontainer=stb_control.createDivContainer(PROPERTIESCONTAINER,0);setTimeout("propToolBar.showToolbar();",1)}},createContent:function(){if(this.propertiescontainer!=null){this.wtp.initialize();var b=
this.wtp.getRelation(gLanguage.getMessage("HAS_TYPE")),c=this.wtp.getRelation(gLanguage.getMessage("HAS_FIELDS")),d=this.wtp.getRelation(gLanguage.getMessage("DOMAIN_HINT")),e=this.wtp.getRelation(gLanguage.getMessage("RANGE_HINT")),f=this.wtp.getRelation(gLanguage.getMessage("MAX_CARDINALITY")),g=this.wtp.getRelation(gLanguage.getMessage("MIN_CARDINALITY")),h=this.wtp.getRelation(gLanguage.getMessage("IS_INVERSE_OF")),k=this.wtp.getCategory(gLanguage.getMessage("TRANSITIVE_RELATION")),l=this.wtp.getCategory(gLanguage.getMessage("SYMMETRICAL_RELATION")),
m=false,n=gLanguage.getMessage("PC_DUPLICATE")+"<ul>";if(b&&b.size()>1){n+="<li><tt>"+gLanguage.getMessage("PC_HAS_TYPE")+"<tt></li>";m=true}if(c&&c.size()>1){n+="<li><tt>"+gLanguage.getMessage("PC_HAS_FIELDS")+"<tt></li>";m=true}if(f&&f.size()>1){n+="<li><tt>"+gLanguage.getMessage("PC_MAX_CARD")+"<tt></li>";m=true}if(g&&g.size()>1){n+="<li><tt>"+gLanguage.getMessage("PC_MIN_CARD")+"<tt></li>";m=true}if(h&&h.size()>1){n+="<li><tt>"+gLanguage.getMessage("PC_INVERSE_OF")+"<tt></li>";m=true}n+="</ul>";
if(m){this.toolbarContainer&&this.toolbarContainer.release();this.toolbarContainer=new ContainerToolBar("properties-content",800,this.propertiescontainer);this.toolbarContainer.createContainerBody(SMW_PRP_ALL_VALID);this.toolbarContainer.append(n);this.toolbarContainer.finishCreation();this.hasDuplicates=true}else{m=this.hasAnnotationChanged([b,c,d,e,f,g,h],[k,l]);m|=this.hasDuplicates;this.hasDuplicates=false;if(m){this.toolbarContainer&&this.toolbarContainer.release();m=this.toolbarContainer=new ContainerToolBar("properties-content",
800,this.propertiescontainer);m.createContainerBody(SMW_PRP_ALL_VALID);if(b){b=b[0].getValue();m=gLanguage.getMessage("TYPE_NS").length;b=b.charAt(m).toLowerCase()+b.substring(m+1)}else{b=gLanguage.getMessage("TYPE_PAGE_WONS");b=b.charAt(0).toLowerCase()+b.substring(1)}this.isRelation=b.toLowerCase()==gLanguage.getMessage("TYPE_PAGE_WONS").toLowerCase();if(d==null)d="";else{d=d[0].getSplitValues()[0];d=d.replace(/^\s*(.*?)\s*$/,"$1");if(d.indexOf(gLanguage.getMessage("CATEGORY_NS"))==0)d=d.substring(gLanguage.getMessage("CATEGORY_NS").length)}if(e==
null)e="";else if(e[0].getSplitValues()[1]){e=e[0].getSplitValues()[1];e=e.replace(/^\s*(.*?)\s*$/,"$1");if(e.indexOf(gLanguage.getMessage("CATEGORY_NS"))==0)e=e.substring(gLanguage.getMessage("CATEGORY_NS").length)}else e="";f=f==null?"":f[0].getValue();g=g==null?"":g[0].getValue();if(h==null)h="";else{h=h[0].getValue();if(h.indexOf(gLanguage.getMessage("PROPERTY_NS"))==0)h=h.substring(gLanguage.getMessage("PROPERTY_NS").length)}k=k!=null?"checked":"";l=l!=null?"checked":"";m=this.toolbarContainer;
m.append(m.createInput("prp-domain",gLanguage.getMessage("DOMAIN"),"","",SMW_PRP_CHECK_CATEGORY+SMW_PRP_VALID_CATEGORY_NAME+SMW_PRP_CHECK_EMPTY_WIE+SMW_PRP_HINT_CATEGORY,true));m.setInputValue("prp-domain",d);m.append(m.createText("prp-domain-msg","","",true));this.numOfParams=this.prpNAry=0;if(b=this.wtp.getRelation(gLanguage.getMessage("HAS_TYPE"))){b=b[0];b=b.getSplitValues()}else b=[gLanguage.getMessage("TYPE_PAGE")];if(c){b=c[0];b=b.getSplitValues()}c=this.wtp.getRelation(gLanguage.getMessage("RANGE_HINT"));
e=d=0;for(n=b.length;e<n;++e){var p=b[e].replace(/^ +/,"").replace(/ +$/,"");if(p.indexOf(gLanguage.getMessage("TYPE_NS"))==0)p=p.substring(gLanguage.getMessage("TYPE_NS").length);m.append(this.createTypeSelector("prp-type-"+e,"prpNaryType"+e,p,"propToolBar.removeType('prp-type-"+e+"')",SMW_PRP_NO_EMPTY_SELECTION+SMW_PRP_TYPE_CHANGED));p="";var s=false;if(b[e]==gLanguage.getMessage("TYPE_PAGE")){if(c&&d<c.length)p=c[d++].getSplitValues()[1];if(p!=undefined){p=p.replace(/^\s*(.*?)\s*$/,"$1");if(p.indexOf(gLanguage.getMessage("CATEGORY_NS"))==
0)p=p.substring(gLanguage.getMessage("CATEGORY_NS").length);s=true}}m.append(m.createInput("prp-range-"+e,gLanguage.getMessage("RANGE"),"","",SMW_PRP_CHECK_CATEGORY+SMW_PRP_VALID_CATEGORY_NAME+SMW_PRP_CHECK_EMPTY_WIE+SMW_PRP_HINT_CATEGORY,s));m.setInputValue("prp-range-"+e,p);m.append(m.createText("prp-range-"+e+"-msg","","",s));this.prpNAry++;this.numOfParams++}m.append(m.createInput("prp-inverse-of",gLanguage.getMessage("INVERSE_OF"),"","",SMW_PRP_CHECK_PROPERTY+SMW_PRP_VALID_PROPERTY_NAME+SMW_PRP_HINT_PROPERTY+
SMW_PRP_CHECK_EMPTY_VIE,true));m.setInputValue("prp-inverse-of",h);m.append(m.createText("prp-inverse-of-msg","","",true));m.append(m.createInput("prp-min-card",gLanguage.getMessage("MIN_CARD"),"","",SMW_PRP_CHECK_MAX_CARD,true,false));m.setInputValue("prp-min-card",g);m.append(m.createText("prp-min-card-msg","","",true));m.append(m.createInput("prp-max-card",gLanguage.getMessage("MAX_CARD"),"","",SMW_PRP_CHECK_MAX_CARD,true,false));m.setInputValue("prp-max-card",f);m.append(m.createText("prp-max-card-msg",
"","",true));m.append(m.createCheckBox("prp-transitive","",[gLanguage.getMessage("TRANSITIVE")],[k=="checked"?0:-1],'name="transitive"',true));m.append(m.createCheckBox("prp-symmetric","",[gLanguage.getMessage("SYMMETRIC")],[l=="checked"?0:-1],'name="symmetric"',true));m.append(m.createText("prp-no_ts_reasoning-msg","","",false));m.append(m.createLink("prp-change-links",PRP_NARY_CHANGE_LINKS,"",true));m.append(m.createLink("prp-links",PRP_APPLY_LINK,"",true));m.finishCreation();this.enableWidgets();
gSTBEventActions.initialCheck($("properties-content-box"));sajax_do_call("smwf_tb_getTripleStoreStatus",[],function(o){if(o.status==200){if(o.responseText=="false")o=[gLanguage.getMessage("PC_INVERSE"),gLanguage.getMessage("PC_TRANSITIVE"),gLanguage.getMessage("PC_SYMMETRICAL")];else{var r=o.responseText.evalJSON();o=[];r.features.indexOf("INVERSE")==-1&&o.push(gLanguage.getMessage("PC_INVERSE"));r.features.indexOf("TRANSITIVE")==-1&&o.push(gLanguage.getMessage("PC_TRANSITIVE"));r.features.indexOf("SYMETRICAL")==
-1&&o.push(gLanguage.getMessage("PC_SYMMETRICAL"))}if(o.size()==0)o="";else{if(o.size()==3)o=o[0]+", "+o[1]+" "+gLanguage.getMessage("PC_AND")+" "+o[2];else if(o.size()==2)o=o[0]+" "+gLanguage.getMessage("PC_AND")+" "+o[1];else if(o.size()==1)o=o[0];o=gLanguage.getMessage("PC_UNSUPPORTED").replace(/\$1/g,o)}if(r=$("prp-no_ts_reasoning-msg")){var q=smw_ctbHandler.findContainer(r),u=q.isVisible(r.id);q.replace(r.id,q.createText(r.id,o,"",true));q.show(r.id,u)}}}.bind(this))}}}},checkMaxCard:function(){var b=
$("prp-max-card"),c=b.value,d=$("prp-min-card"),e=d.value;gSTBEventActions.performSingleAction("color","white",d);gSTBEventActions.performSingleAction("hidemessage",null,d);gSTBEventActions.performSingleAction("color","white",b);gSTBEventActions.performSingleAction("hidemessage",null,b);if(!c&&!e)return true;var f=true;if(e!="")if(e=e.match(/^\d+$/)){e*=1;gSTBEventActions.performSingleAction("color","lightgreen",d);gSTBEventActions.performSingleAction("hidemessage","",d)}else{gSTBEventActions.performSingleAction("color",
"red",d);gSTBEventActions.performSingleAction("showmessage","INVALID_FORMAT_OF_VALUE",d);f=false}if(c!="")if(c=c.match(/^\d+$/)){c*=1;if(c==0){gSTBEventActions.performSingleAction("color","red",b);gSTBEventActions.performSingleAction("showmessage","MAX_CARD_MUST_NOT_BE_0",b);f=false}else{gSTBEventActions.performSingleAction("color","lightgreen",b);gSTBEventActions.performSingleAction("hidemessage","",b)}}else{gSTBEventActions.performSingleAction("color","red",b);gSTBEventActions.performSingleAction("showmessage",
"INVALID_FORMAT_OF_VALUE",b);f=false}if(!f)return false;if(typeof c=="number"&&typeof e=="string"){gSTBEventActions.performSingleAction("color","white",d);gSTBEventActions.performSingleAction("showmessage","ASSUME_CARDINALITY_0",d);return true}if(typeof c=="string"&&typeof e=="number"){gSTBEventActions.performSingleAction("color","white",b);gSTBEventActions.performSingleAction("showmessage","ASSUME_CARDINALITY_INF",b);return true}if(!f)return false;if(e>c){gSTBEventActions.performSingleAction("color",
"red",d);gSTBEventActions.performSingleAction("showmessage","MIN_CARD_INVALID",d);return false}return true},hasAnnotationChanged:function(b,c){var d=false;if(!this.relValues){d=true;this.catValues=Array(c.length);this.relValues=[]}for(var e=[],f=0,g=0;g<b.length;g++){var h=b[g];if(h!=null)for(var k=0;k<h.length;++k){if(!h[k]&&this.relValues[f])d=true;else if(h[k]){var l=h[k].annotation;if(this.relValues[f]!=l)d=true;e.push(l)}++f}}for(g=0;g<c.length;g++)if(!c[g]&&this.catValues[g]){d=true;this.catValues[g]=
false}else if(c[g]&&!this.catValues[g])d=this.catValues[g]=true;this.relValues=e;return d},propTypeChanged:function(b){b=$(b);var c="prp-range-"+b.id.substring(gLanguage.getMessage("PROPERTY_NS").length);b=b[b.selectedIndex].text==gLanguage.getMessage("TYPE_PAGE_WONS");var d=propToolBar.toolbarContainer;d.show(c,b);b||d.show(c+"-msg",false);this.isRelation=this.numOfParams==1?b:false;gSTBEventActions.initialCheck($("properties-content-box"));this.enableWidgets()},addType:function(){var b=this.toolbarContainer;
this.toolbarContainer.insert(this.prpNAry==0?"prp-domain-msg":$("prp-range-"+(this.prpNAry-1)+"-msg")?"prp-range-"+(this.prpNAry-1)+"-msg":"prp-range-"+(this.prpNAry-1),this.createTypeSelector("prp-type-"+this.prpNAry,"prpNaryType"+this.prpNAry,gLanguage.getMessage("TYPE_PAGE_WONS"),"propToolBar.removeType('prp-type-"+this.prpNAry+"')",SMW_PRP_NO_EMPTY_SELECTION+SMW_PRP_TYPE_CHANGED));b.insert("prp-type-"+this.prpNAry,b.createInput("prp-range-"+this.prpNAry,gLanguage.getMessage("RANGE"),"","",SMW_PRP_CHECK_CATEGORY+
SMW_PRP_VALID_CATEGORY_NAME+SMW_PRP_CHECK_EMPTY_WIE+SMW_PRP_HINT_CATEGORY,true));b.setInputValue("prp-range-"+this.prpNAry,"");b.insert("prp-range-"+this.prpNAry,b.createText("prp-range-"+this.prpNAry+"-msg","","",true));this.prpNAry++;this.numOfParams++;this.toolbarContainer.finishCreation();this.enableWidgets();gSTBEventActions.initialCheck($("properties-content-box"))},removeType:function(b){this.toolbarContainer.remove(b);this.toolbarContainer.remove(b+"-msg");b=b.replace(/type/,"range");this.toolbarContainer.remove(b);
this.toolbarContainer.remove(b+"-msg");this.numOfParams--;if(b=="prp-range-"+(this.prpNAry-1))for(;this.prpNAry>0;){--this.prpNAry;if($("prp-type-"+this.prpNAry)){this.prpNAry++;break}}if(this.numOfParams==1){b=$("prp-type-"+(this.prpNAry*1-1));this.isRelation=b[b.selectedIndex].text==gLanguage.getMessage("TYPE_PAGE_WONS")}this.toolbarContainer.finishCreation();this.enableWidgets();gSTBEventActions.initialCheck($("properties-content-box"))},createTypeSelector:function(b,c,d,e,f){var g=function(){var k=
d;if(d){d=d.toLowerCase();if(d.indexOf(";")>0)d="n-ary"}var l=false,m=gDataTypes.getBuiltinTypes(),n=gDataTypes.getUserDefinedTypes();m=m.concat([""],n);if(n=$(b))n.length=m.length;for(var p=-1,s=0;s<m.length;s++){var o=m[s].toLowerCase();if(d==o){l=true;if(n)n.options[s]=new Option(m[s],m[s],true,true);p=s}else if(n)n.options[s]=new Option(m[s],m[s],false,false)}if(d&&!l){if(n)n.options[s]=new Option(k,k,true,true);p=m.length;m[m.length]=k}$(b)&&gSTBEventActions.initialCheck($(b).up());propToolBar.toolbarContainer.finishCreation();
return[m,p]},h=[[gLanguage.getMessage("RETRIEVING_DATATYPES")],0];if(gDataTypes.getUserDefinedTypes()==null||gDataTypes.getBuiltinTypes()==null)gDataTypes.refresh(g);else h=g();e||(e="");f||(f="");c=this.toolbarContainer.createDropDown(b,gLanguage.getMessage("TYPE"),h[0],e,h[1],f+' name="'+c+'"',true);c+=this.toolbarContainer.createText(b+"-msg","","",true);return c},enableWidgets:function(){var b=propToolBar.toolbarContainer,c=propToolBar.numOfParams>1;b.show("prp-inverse-of",propToolBar.isRelation&&
!c);b.show("prp-transitive",propToolBar.isRelation&&!c);b.show("prp-symmetric",propToolBar.isRelation&&!c);b.show("prp-min-card",!c);b.show("prp-max-card",!c);b.show("prp-no_ts_reasoning-msg",propToolBar.isRelation&&!c)},cancel:function(){this.toolbarContainer.hideSandglass();this.catValues=this.relValues=null;this.createContent()},apply:function(){this.wtp.initialize();var b=$("prp-domain").value,c=this.isRelation?$("prp-inverse-of").value:null,d=this.isNAry?null:$("prp-min-card").value,e=this.isNAry?
null:$("prp-max-card").value,f=this.isRelation?$("prp-transitive"):null,g=this.isRelation?$("prp-symmetric"):null;b=b!=null&&b!=""?gLanguage.getMessage("CATEGORY_NS")+b:null;c=c!=null&&c!=""?gLanguage.getMessage("PROPERTY_NS")+c:null;d=d!=null&&d!=""?d:null;e=e!=null&&e!=""?e:null;this.wtp.getRelation(gLanguage.getMessage("DOMAIN_HINT"));var h=this.wtp.getRelation(gLanguage.getMessage("MAX_CARDINALITY")),k=this.wtp.getRelation(gLanguage.getMessage("MIN_CARDINALITY")),l=this.wtp.getRelation(gLanguage.getMessage("IS_INVERSE_OF")),
m=this.wtp.getCategory(gLanguage.getMessage("TRANSITIVE_RELATION")),n=this.wtp.getCategory(gLanguage.getMessage("SYMMETRICAL_RELATION"));gEditInterface&&typeof FCKeditor!="undefined"&&typeof CKEDITOR!="undefined"&&gEditInterface.setOutputBuffer();if(h!=null)e==null?h[0].remove(""):h[0].changeValue(e);if(k!=null)d==null?k[0].remove(""):k[0].changeValue(d);if(l!=null)c==null?l[0].remove(""):l[0].changeValue(c);if(m!=null&&(f==null||!f.down("input").checked))m.remove("");if(n!=null&&(g==null||!g.down("input").checked))n.remove("");
h==null&&e!=null&&this.wtp.addRelation(gLanguage.getMessage("MAX_CARDINALITY"),e," ",true);k==null&&d!=null&&this.wtp.addRelation(gLanguage.getMessage("MIN_CARDINALITY"),d," ",true);l==null&&c!=null&&this.wtp.addRelation(gLanguage.getMessage("IS_INVERSE_OF"),c," ",true);f!=null&&f.down("input").checked&&m==null&&this.wtp.addCategory(gLanguage.getMessage("TRANSITIVE_RELATION"),true);g!=null&&g.down("input").checked&&n==null&&this.wtp.addCategory(gLanguage.getMessage("SYMMETRICAL_RELATION"),true);if(rangeAnno=
this.wtp.getRelation(gLanguage.getMessage("RANGE_HINT"))){c=0;for(d=rangeAnno.length;c<d;c++)rangeAnno[c].remove("")}d="";e=false;for(c=0;c<this.prpNAry;c++)if(f=$("prp-type-"+c)){f=f[f.selectedIndex].text;if(f.toLowerCase()==gLanguage.getMessage("TYPE_PAGE_WONS","cont").toLowerCase()){e=$("prp-range-"+c).value;e=e==""?"":gLanguage.getMessage("CATEGORY_NS")+e;e=(b==null?"":b)+"; "+e;d+=gLanguage.getMessage("TYPE_PAGE","cont")+";";this.wtp.addRelation(gLanguage.getMessage("RANGE_HINT"),e," ",true);
e=true}else d+=gLanguage.getMessage("TYPE_NS","cont")+f+";"}!e&&b!=null&&this.wtp.addRelation(gLanguage.getMessage("RANGE_HINT"),b+"; "," ",true);recordTypeAnno=this.wtp.getRelation(gLanguage.getMessage("HAS_TYPE"));hasFieldsAnno=this.wtp.getRelation(gLanguage.getMessage("HAS_FIELDS"));if(d!=""){d=d.substring(0,d.length-1);f=this.prpNAry>1?gLanguage.getMessage("TYPE_RECORD"):d;recordTypeAnno!=null?recordTypeAnno[0].changeValue(f):this.wtp.addRelation(gLanguage.getMessage("HAS_TYPE"),f," ",true);if(this.prpNAry>
1)hasFieldsAnno!=null?hasFieldsAnno[0].changeValue(d):this.wtp.addRelation(gLanguage.getMessage("HAS_FIELDS"),d," ",true);else hasFieldsAnno!=null&&hasFieldsAnno[0].remove("")}else{recordTypeAnno[0].remove("");hasFieldsAnno!=null&&hasFieldsAnno[0].remove("")}gEditInterface&&typeof FCKeditor!="undefined"&&typeof CKEDITOR!="undefined"&&gEditInterface.flushOutputBuffer();this.createContent();this.refreshOtherTabs();smwhgLogger.log(wgTitle,"STB-PropertyProperties","property_properties_changed")},refreshOtherTabs:function(){relToolBar.fillList();
catToolBar.fillList()}};var propToolBar=new PropertiesToolBar;typeof FCKeditor=="undefined"&&Event.observe(window,"load",propToolBar.callme.bindAsEventListener(propToolBar));var REFRESH_DELAY=0.5,RefreshSemanticToolBar=Class.create();
RefreshSemanticToolBar.prototype={initialize:function(){this.userIsTyping=false;this.timeOffset=this.lastKeypress=0;this.contentChanged=false;this.wtp=null;this.containsForbiddenProperties=false},register:function(){if((wgAction=="edit"||wgAction=="formedit"||wgAction=="submit"||wgCanonicalSpecialPageName=="AddData"||wgCanonicalSpecialPageName=="EditData"||wgCanonicalSpecialPageName=="FormEdit")&&typeof stb_control!="undefined"&&stb_control.isToolbarAvailable()){var b=$("wpTextbox1")||$("free_text");
Event.observe(b,"change",this.changed.bind(this));Event.observe(b,"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 b=(new Date).getTime()-this.timeOffset;if((this.lastKeypress!=0?b-this.lastKeypress:0)>REFRESH_DELAY*1E3){b=document.activeElement;this.contentChanged=false;this.refreshToolBar();b&&b.focus()}}},
registerTimer:function(){this.periodicalTimer=new PeriodicalExecuter(this.refresh.bind(this),REFRESH_DELAY)},setUserIsTyping:function(b){this.lastKeypress=typeof b=="undefined"||!b.timeStamp?(new Date).getTime():b.timeStamp;if(this.timeOffset==0)this.timeOffset=(new Date).getTime()-this.lastKeypress;this.userIsTyping=true},refreshToolBar:function(){window.catToolBar&&catToolBar.fillList();window.relToolBar&&relToolBar.fillList();window.ruleToolBar&&ruleToolBar.fillList();window.propToolBar&&propToolBar.createContent();
window.smwhgASKQuery&&smwhgASKQuery.fillList();var b=$("wpSave");if(b){if(this.containsForbiddenProperties&&!$("wpForbiddenProperties"))new Insertion.Before(b,'<div id="wpForbiddenProperties" style="background-color:#ee0000;color:white;font-weight:bold;text-align:left;">'+gLanguage.getMessage("CANT_SAVE_FORBIDDEN_PROPERTIES")+"</div>");else!this.containsForbiddenProperties&&$("wpForbiddenProperties")&&$("wpForbiddenProperties").remove();if(!this.wtp)this.wtp=new WikiTextParser;this.wtp.initialize();
this.wtp.parseAnnotations();var c=this.wtp.getError();if(c==WTP_NO_ERROR)$("wpSaveWarning")&&$("wpSaveWarning").remove();else $("wpSaveWarning")||new Insertion.Before(b,'<div id="wpSaveWarning" style="background-color:#ee0000;color:white;font-weight:bold;text-align:left;">'+gLanguage.getMessage("UNMATCHED_BRACKETS")+"</div>");this.containsForbiddenProperties||c!=WTP_NO_ERROR?b.disable():b.enable();if(gEditInterface==null)gEditInterface=new SMWEditInterface;gEditInterface.focus()}}};
var refreshSTB=new RefreshSemanticToolBar;typeof FCKeditor=="undefined"&&Event.observe(window,"load",refreshSTB.register.bindAsEventListener(refreshSTB));var DragResizeHandler=Class.create();
DragResizeHandler.prototype={initialize:function(){this.posY=this.posX=this.resizeable=this.draggable=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:"tabcontainer",starteffect:function(){stb_control.setDragging(true);
smwhg_dragresizetoolbar.storePosition();smwhg_dragresizetoolbar.restorePosition()},endeffect:function(){setTimeout(stb_control.setDragging.bind(stb_control,false),200)}});var b=Class.create();b.prototype={initialize:function(){this.element=null},onEnd:function(){smwhg_dragresizetoolbar.storePosition()}};b=new b;Draggables.addObserver(b)}},fixAnchorSize:function(){if($("semtoolbar")){var b=$("semtoolbar").scrollHeight+$("tabcontainer").scrollHeight+$("activetabcontainer").scrollHeight;b+="px";var c=
{};c.height=b;$("ontomenuanchor").setStyle(c)}},storePosition:function(){var b=this.getPosition();this.posX=b[0];this.posY=b[1]},restorePosition:function(){if(!isNaN(this.posX)&&!isNaN(this.posY)){this.fixAnchorSize();this.setPosition(this.posX,this.posY)}},getPosition:function(){return Array($("ontomenuanchor").offsetLeft,$("ontomenuanchor").offsetTop)},setPosition:function(b,c){var d=$("ontomenuanchor").scrollWidth;if(window.innerWidth-b<d)if(b<d){$("ontomenuanchor").setStyle({right:""});$("ontomenuanchor").setStyle({left:"10px"})}else{d=
window.innerWidth-b;$("ontomenuanchor").setStyle({right:d+"px"});$("ontomenuanchor").setStyle({left:""})}else{d=b;$("ontomenuanchor").setStyle({right:""});$("ontomenuanchor").setStyle({left:d+"px"})}d=$("ontomenuanchor").scrollHeight;if(window.innerHeight-c<d)if(c<d){$("ontomenuanchor").setStyle({bottom:""});$("ontomenuanchor").setStyle({top:"10px"})}else{d=window.innerHeight-c;$("ontomenuanchor").setStyle({bottom:d+"px"});$("ontomenuanchor").setStyle({top:""})}else{d=c;$("ontomenuanchor").setStyle({bottom:""});
$("ontomenuanchor").setStyle({top:d+"px"})}}};var Resizeable=Class.create();
Resizeable.prototype={initialize:function(b,c){var d=Object.extend({top:6,bottom:6,left:6,right:6,minHeight:0,minWidth:0,zindex:10010,resize:null},c||{});(this.handle=this.element=$(b))&&Element.makePositioned(this.element);this.options=d;this.resizing=this.active=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(b){if(Event.isLeftClick(b)){var c=Event.element(b);if(!(c.tagName&&(c.tagName=="INPUT"||c.tagName=="SELECT"||c.tagName=="BUTTON"||c.tagName=="TEXTAREA"))){c=this.directions(b);if(c.length>0){this.active=true;var d=Position.cumulativeOffset(this.element);this.startTop=d[1];this.startLeft=d[0];this.startWidth=parseInt(Element.getStyle(this.element,"width"));this.startHeight=parseInt(Element.getStyle(this.element,"height"));this.startX=b.clientX+document.body.scrollLeft+
document.documentElement.scrollLeft;this.startY=b.clientY+document.body.scrollTop+document.documentElement.scrollTop;this.currentDirection=c;Event.stop(b);$("ontomenuanchor").setStyle({left:$("ontomenuanchor").offsetLeft+"px"});smwhg_dragresizetoolbar.disableDragging()}}}},finishResize:function(){this.resizing=this.active=false;if(this.options.zindex)this.element.style.zIndex=this.originalZ;this.options.resize&&this.options.resize(this.element)},keyPress:function(b){if(this.active)if(b.keyCode==Event.KEY_ESC){this.finishResize(b,
false);Event.stop(b)}},endResize:function(b){if(this.active&&this.resizing){this.finishResize(b,true);Event.stop(b)}this.resizing=this.active=false;smwhg_dragresizetoolbar.enableDragging();smwhg_dragresizetoolbar.fixAnchorSize()},draw:function(b){b=[Event.pointerX(b),Event.pointerY(b)];var c=this.element.style;if(this.currentDirection.indexOf("n")!=-1){var d=this.startY-b[1],e=Element.getStyle(this.element,"margin-top")||"0",f=this.startHeight+d;if(f>this.options.minHeight){c.height=f+"px";c.top=
this.startTop-d-parseInt(e)+"px"}}if(this.currentDirection.indexOf("w")!=-1){d=this.startX-b[0];e=Element.getStyle(this.element,"margin-left")||"0";f=this.startWidth+d;if(f>this.options.minWidth){c.left=this.startLeft-d-parseInt(e)+"px";c.width=f+"px"}}if(this.currentDirection.indexOf("s")!=-1){f=this.startHeight+b[1]-this.startY;if(f>this.options.minHeight)c.height=f+"px"}if(this.currentDirection.indexOf("e")!=-1){f=this.startWidth+b[0]-this.startX;if(f>this.options.minWidth)c.width=f+"px"}if(c.visibility==
"hidden")c.visibility=""},between:function(b,c,d){return b>=c&&b<d},directions:function(b){b=[Event.pointerX(b),Event.pointerY(b)];var c=Position.cumulativeOffset(this.element),d="";if(this.between(b[1]-c[1],0,this.options.top))d+="n";if(this.between(c[1]+this.element.offsetHeight-b[1],0,this.options.bottom))d+="s";if(this.between(b[0]-c[0],0,this.options.left))d+="w";if(this.between(c[0]+this.element.offsetWidth-b[0],0,this.options.right))d+="e";return d},cursor:function(b){b=this.directions(b);
if(b.length>0)b+="-resize";else b="";this.element.style.cursor=b},update:function(b){if(this.active){if(!this.resizing){var c=this.element.style;this.resizing=true;if(Element.getStyle(this.element,"position")=="")c.position="relative";if(this.options.zindex){this.originalZ=parseInt(Element.getStyle(this.element,"z-index")||0);c.zIndex=this.options.zindex}}this.draw(b);navigator.appVersion.indexOf("AppleWebKit")>0&&window.scrollBy(0,0);Event.stop(b);return false}}};smwhg_dragresizetoolbar=new DragResizeHandler;
Event.observe(window,"load",smwhg_dragresizetoolbar.callme.bind(smwhg_dragresizetoolbar));var ContextMenuFramework=Class.create();
ContextMenuFramework.prototype={initialize:function(){if(!$("contextmenu")){var b=$("ontomenuanchor").getStyle("z-index")?parseInt($("ontomenuanchor").getStyle("z-index"))+1:30;if(b<30)b=30;b='<div id="contextmenu" style="z-index: '+b+'"></div>';$("smwh_AAM");new Insertion.After($("ontomenuanchor"),b)}},remove:function(){$("contextmenu")&&$("contextmenu").remove()},setContent:function(b,c,d){var e;switch(c){case CATEGORYCONTAINER:$("cmCategoryHeader")&&$("cmCategoryHeader").remove();$("cmCategoryContent")&&
$("cmCategoryContent").remove();c='<div id="cmCategoryHeader">'+d+"</div>";d='<div id="cmCategoryContent"></div>';e="cmCategoryContent";break;case RELATIONCONTAINER:$("cmPropertyHeader")&&$("cmPropertyHeader").remove();$("cmPropertyContent")&&$("cmPropertyContent").remove();c='<div id="cmPropertyHeader">'+d+"</div>";d='<div id="cmPropertyContent"></div>';e="cmPropertyContent";break;case "ANNOTATIONHINT":$("cmAnnotationHintHeader")&&$("cmAnnotationHintHeader").remove();$("cmAnnotationHintContent")&&
$("cmAnnotationHintContent").remove();c='<div id="cmAnnotationHintHeader">'+d+"</div>";d='<div id="cmAnnotationHintContent"></div>';e="cmAnnotationHintContent";break;default:$("cmDefaultHeader")&&$("cmDefaultHeader").remove();$("cmDefaultContent")&&$("cmDefaultContent").remove();c='<div id="cmDefaultHeader">'+d+"</div>";d='<div id="cmDefaultContent"></div>';e="cmDefaultContent"}new Insertion.Bottom("contextmenu",c);new Insertion.Bottom("contextmenu",d);new Insertion.Bottom(e,b);$("cmCategoryHeader")&&
$("cmPropertyContent")&&Event.observe("cmCategoryHeader","click",function(){$("cmCategoryContent").show();$("cmPropertyContent").hide()});$("cmPropertyHeader")&&$("cmCategoryContent")&&Event.observe("cmPropertyHeader","click",function(){$("cmCategoryContent").hide();$("cmPropertyContent").show()})},contentChanged:function(){},setPosition:function(b,c){element=$("contextmenu");var d=element.scrollWidth,e=window.innerWidth?window.innerWidth:document.body.clientWidth;if(e-b<d)if(b<d){element.setStyle({right:""});
element.setStyle({left:"10px"})}else{d=e-b;element.setStyle({right:d+"px"});element.setStyle({left:""})}else{d=b;element.setStyle({right:""});element.setStyle({left:d+"px"})}d=element.scrollHeight;if(window.innerHeight-c<d)if(c<d){element.setStyle({bottom:""});element.setStyle({top:"10px"})}else{d=window.innerHeight-c;element.setStyle({bottom:d+"px"});element.setStyle({top:""})}else{d=c;element.setStyle({bottom:""});element.setStyle({top:d+"px"})}},showMenu:function(){$("contextmenu").show();var b=
$("contextmenu").immediateDescendants().length;$("cmCategoryContent")&&b>2&&$("cmCategoryContent").hide()},hideMenu:function(){$("contextmenu").hide()}};var SMW_CAT_VALID_CATEGORY_NAME='smwValidValue="^[^<>|!&$%&=?]{1,255}$: valid ? (color: white, hideMessage, valid:true) : (color: red, showMessage:CATEGORY_NAME_TOO_LONG, valid:false)" ',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)" ',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)" ',
SMW_CAT_CHECK_CATEGORY_IIE='smwCheckType="category:exists ? (color: red, showMessage:CATEGORY_ALREADY_EXISTS, valid:false) : (color: lightgreen, hideMessage, valid:true)" ',SMW_CAT_CHECK_EMPTY='smwCheckEmpty="empty? (color:red, showMessage:MUST_NOT_BE_EMPTY, valid:false) : (color:white, hideMessage)"',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)"',SMW_CAT_ALL_VALID='smwAllValid="allValid ? (show:cat-confirm, hide:cat-invalid) : (show:cat-invalid, hide:cat-confirm, hide:cat-addandcreate)"',
SMW_CAT_ALL_VALID_ANNOTATED='smwAllValid="allValid ? (show:cat-confirm, call:catToolBar.finalCategoryCheck) : (hide:cat-confirm, hide:cat-addandcreate, call:catToolBar.finalCategoryCheck)"',SMW_CAT_HINT_CATEGORY='constraints = "namespace:'+SMW_CATEGORY_NS+'"'+(wgAction=="annotate"||typeof FCKeditor!="undefined"||typeof CKEDITOR!="undefined"?'" position="fixed"':""),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)" ',
SMW_CAT_SUB_SUPER_ALL_VALID='smwAllValid="allValid ? (call:catToolBar.createSubSuperLinks) : (call:catToolBar.createSubSuperLinks)"',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"||wgAction=="formedit"||wgAction=="submit"||wgCanonicalSpecialPageName=="AddData"||wgCanonicalSpecialPageName=="EditData"||wgCanonicalSpecialPageName=="FormEdit")this.wtp=new WikiTextParser;this.om=new OntologyModifier;this.fillList(true)},
callme:function(){if((wgAction=="edit"||wgAction=="annotate"||wgAction=="formedit"||wgAction=="submit"||wgCanonicalSpecialPageName=="AddData"||wgCanonicalSpecialPageName=="EditData"||wgCanonicalSpecialPageName=="FormEdit")&&typeof stb_control!="undefined"&&stb_control.isToolbarAvailable()){this.categorycontainer=stb_control.createDivContainer(CATEGORYCONTAINER,0);this.showToolbar()}},fillList:function(b){function c(h){if(h.status==200){this.categoryExists=h=h.responseText.evalJSON(true);for(var k=
0;k<e.length;++k)e[k].exists=h[k][1];this.categorycontainer.setContent(this.genTB.createList(e,"category"));this.categorycontainer.contentChanged();refreshSTB.refreshToolBar()}}function d(h){if(h.status==200){h=h.responseText.evalJSON(true);this.recommendedRels=[];for(var k=0,l=h.length-1;k<=l;k++){var m="";if(h[k].inherited=="true")m=h[k].inheritLink.join(" >> ");m=new WtpRelation("",0,0,this.wtp,"",h[k].propText,m,"","",null);m.inherited=h[k].inherited=="true"?true:false;this.recommendedRels.push(m)}relToolBar.fillList()}}
if(b==true)this.showList=true;if(this.showList)if(this.wtp){this.wtp.initialize();var e=this.wtp.getCategories();for(var f=b="",g=0;g<e.length;++g)b+=gLanguage.getMessage("CATEGORY_NS")+e[g].getName()+",";b=b.substr(0,b.length-1);if(b.length>0&&b!=this.categoriesForExistenceCheck){this.categoriesForExistenceCheck=b;this.recommendedRelsNeedRefresh=true;sajax_do_call("smwf_om_ExistsArticleMultiple",[b],c.bind(this),e)}if(this.categoryExists&&this.categoryExists.length==e.length)for(g=0;g<e.length;++g)e[g].exists=
this.categoryExists[g][1];if(wgNamespaceNumber===14){if(b.length>0)f=", ";b+=f+gLanguage.getMessage("CATEGORY_NS")+"Category";this.recommendedRelsNeedRefresh=true}if(b.length>0&&this.recommendedRelsNeedRefresh){this.recommendedRelsNeedRefresh=false;sajax_do_call("smwf_om_getDomainProperties",[b],d.bind(this),"")}if(b.length==0){this.recommendedRels=[];this.recommendedRelsNeedRefresh=true}this.categorycontainer.setContent(this.genTB.createList(e,"category"));this.categorycontainer.contentChanged()}},
setWikiTextParser:function(b){this.wtp=b},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(b){if($("cat-menu-annotate")){var c=$("cat-menu-annotate").readAttribute("enabled")=="true";if(b!=c)b?$("cat-menu-annotate").replace('<a id="cat-menu-annotate" enabled="true" href="javascript:catToolBar.newItem()" class="menulink">'+
gLanguage.getMessage("ANNOTATE")+"</a>"):$("cat-menu-annotate").replace('<span id="cat-menu-annotate" enabled="false" class="menulink" style="color:grey">&nbsp;'+gLanguage.getMessage("ANNOTATE")+"</span>")}},createToolbar:function(b){this.toolbarContainer&&this.toolbarContainer.release();var c=this.toolbarContainer=new ContainerToolBar("category-content",600,this.categorycontainer);c.createContainerBody(b);return c},createContextMenu:function(b){this.toolbarContainer&&this.toolbarContainer.release();
b=this.toolbarContainer=new ContainerToolBar("category-content",600,b);b.createContainerBody(SMW_CAT_ALL_VALID_ANNOTATED,CATEGORYCONTAINER,gLanguage.getMessage("ANNOTATE_CATEGORY"));this.currentAction="annotate";this.wtp.initialize();var c=this.wtp.getSelection(true);c=c.replace(/'''''/g,"");c=c.replace(/'''/g,"");c=c.replace(/''/g,"");smwhgLogger&&smwhgLogger.log(c,"STB-Categories","annotate_clicked");b.append(b.createInput("cat-name",gLanguage.getMessage("CATEGORY"),"","",SMW_CAT_CHECK_CATEGORY_CREATE+
SMW_CAT_CHECK_EMPTY_CM+SMW_CAT_VALID_CATEGORY_NAME+SMW_CAT_HINT_CATEGORY,true));b.setInputValue("cat-name",c);b.append(b.createText("cat-name-msg",gLanguage.getMessage("ENTER_NAME"),"",true));c=[["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"]];b.append(b.createLink("cat-links",c,"",true));b.finishCreation();$("cat-addandcreate").hide();
gSTBEventActions.initialCheck($("category-content-box"))},finalCategoryCheck:function(){if(this.wtp.getCategory($("cat-name").value)){gSTBEventActions.performSingleAction("showmessage","CATEGORY_ALREADY_ANNOTATED",$("cat-name"));gSTBEventActions.performSingleAction("hide","cat-confirm");gSTBEventActions.performSingleAction("hide","cat-addandcreate")}},addItem:function(b){var c=$("cat-name");smwhgLogger.log(c.value,"STB-Categories","annotate_added");this.wtp.initialize();var d=c.value;this.wtp.addCategory(d,
true);this.fillList(true);if(b&&c.getAttribute("catexists")=="false"){this.om.createCategory(d,"");smwhgLogger.log(d,"STB-Categories","create_added")}},newItem:function(){this.showList=false;this.currentAction="annotate";this.wtp.initialize();var b=this.wtp.getSelection(true);smwhgLogger.log(b,"STB-Categories","annotate_clicked");var c=this.createToolbar(SMW_CAT_ALL_VALID_ANNOTATED);wgAction=="edit"&&c.append(c.createText("cat-help-msg",gLanguage.getMessage("ANNOTATE_CATEGORY"),"",true));c.append(c.createInput("cat-name",
gLanguage.getMessage("CATEGORY"),"","",SMW_CAT_CHECK_CATEGORY_CREATE+SMW_CAT_CHECK_EMPTY_CM+SMW_CAT_VALID_CATEGORY_NAME+SMW_CAT_HINT_CATEGORY,true));c.setInputValue("cat-name",b);c.append(c.createText("cat-name-msg",gLanguage.getMessage("ENTER_NAME"),"",true));b=[["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")]];c.append(c.createLink("cat-links",b,"",true));c.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 b=this.wtp.getSelection(true);smwhgLogger.log(b,"STB-Categories","sub/super-category_clicked");var c=this.createToolbar(SMW_CAT_SUB_SUPER_ALL_VALID);c.append(c.createText("cat-help-msg",
gLanguage.getMessage("DEFINE_SUB_SUPER_CAT"),"",true));c.append(c.createInput("cat-subsuper",gLanguage.getMessage("CATEGORY"),"","",SMW_CAT_SUB_SUPER_CHECK_CATEGORY+SMW_CAT_CHECK_EMPTY+SMW_CAT_HINT_CATEGORY,true));c.setInputValue("cat-subsuper",b);c.append(c.createText("cat-subsuper-msg",gLanguage.getMessage("ENTER_NAME"),"",true));c.append(c.createLink("cat-make-sub-link",[["catToolBar.createSubItem()",gLanguage.getMessage("CREATE_SUB"),"cat-make-sub"]],"",false));c.append(c.createLink("cat-make-super-link",
[["catToolBar.createSuperItem()",gLanguage.getMessage("CREATE_SUPER"),"cat-make-super"]],"",false));b=[["catToolBar.cancel()",gLanguage.getMessage("CANCEL")]];c.append(c.createLink("cat-links",b,"",true));c.finishCreation();gSTBEventActions.initialCheck($("category-content-box"));setTimeout("$('cat-subsuper').focus();",50)},createSubSuperLinks:function(){var b=$("cat-subsuper").getAttribute("catExists");b=b&&b=="true";var c=this.toolbarContainer,d=$("cat-subsuper").value;if(d==""){$("cat-make-sub").hide();
$("cat-make-super").hide()}else{var e,f;if(b){f=gLanguage.getMessage("MAKE_SUB_CATEGORY");e=gLanguage.getMessage("MAKE_SUPER_CATEGORY")}else{f=gLanguage.getMessage("CREATE_SUB_CATEGORY");e=gLanguage.getMessage("CREATE_SUPER_CATEGORY")}f=f.replace(/\$-title/g,d);e=e.replace(/\$-title/g,d);if($("cat-make-sub").innerHTML!=f){b=c.createLink("cat-make-sub-link",[["catToolBar.createSuperItem("+(b?"false":"true")+")",f,"cat-make-sub"]],"",true);c.replace("cat-make-sub-link",b);b=c.createLink("cat-make-super-link",
[["catToolBar.createSubItem()",e,"cat-make-super"]],"",true);c.replace("cat-make-super-link",b)}}},createSubItem:function(){var b=$("cat-subsuper").value;smwhgLogger.log(wgTitle+":"+b,"STB-Categories","sub-category_created");if(b==""||b==null)alert(gLanguage.getMessage("INPUT_BOX_EMPTY"));else{this.om.createSubCategory(b,"");this.fillList(true)}},createSuperItem:function(b){if(b==undefined)b=false;var c=$("cat-subsuper").value;smwhgLogger.log(c+":"+wgTitle,"STB-Categories","super-category_created");
if(c==""||c==null)alert(gLanguage.getMessage("INPUT_BOX_EMPTY"));else{this.om.createSuperCategory(c,"",b,this.wtp);this.fillList(true)}},changeItem:function(b){this.wtp.initialize();var c=$("cat-name").value,d=this.wtp.getCategories();if(b!=null&&b>=0&&b<=d.length){var e=d[b].getName();smwhgLogger.log(e+"->"+c,"STB-Categories","edit_category_change");d[b].changeCategory(c)}this.fillList(true)},deleteItem:function(b){this.wtp.initialize();var c=this.wtp.getCategories();if(b!=null&&b>=0&&b<=c.length){b=
c[b];smwhgLogger.log(b.getName(),"STB-Categories","edit_category_delete");b.remove("")}this.fillList(true)},newCategory:function(){this.currentAction="create";this.showList=false;this.wtp.initialize();var b=this.wtp.getSelection(true);smwhgLogger.log(b,"STB-Categories","create_clicked");var c=this.createToolbar(SMW_CAT_ALL_VALID);c.append(c.createText("cat-help-msg",gLanguage.getMessage("CREATE_NEW_CATEGORY"),"",true));c.append(c.createInput("cat-name",gLanguage.getMessage("CATEGORY"),"","",SMW_CAT_CHECK_CATEGORY_IIE+
SMW_CAT_CHECK_EMPTY+SMW_CAT_VALID_CATEGORY_NAME+SMW_CAT_HINT_CATEGORY,true));c.setInputValue("cat-name",b);c.append(c.createText("cat-name-msg",gLanguage.getMessage("ENTER_NAME"),"",true));b=[["catToolBar.createNewCategory()",gLanguage.getMessage("CREATE"),"cat-confirm",gLanguage.getMessage("INVALID_NAME"),"cat-invalid"],["catToolBar.cancel()",gLanguage.getMessage("CANCEL")]];c.append(c.createLink("cat-links",b,"",true));c.finishCreation();gSTBEventActions.initialCheck($("category-content-box"));
setTimeout("$('cat-name').focus();",50)},createNewCategory:function(){var b=$("cat-name").value;smwhgLogger.log(b,"STB-Categories","create_added");this.om.createCategory(b,"");this.fillList(true)},getselectedItem:function(b){this.wtp.initialize();var c=this.wtp.getCategories();if(!(b==null||b<0||b>=c.length)){this.currentAction="edit_category";this.showList=false;smwhgLogger.log(c[b].getName(),"STB-Categories","edit_category_clicked");var d=this.createToolbar(SMW_CAT_ALL_VALID);d.append(d.createText("cat-help-msg",
gLanguage.getMessage("CHANGE_ANNO_OF_CAT"),"",true));d.append(d.createInput("cat-name",gLanguage.getMessage("CATEGORY"),"","",SMW_CAT_CHECK_CATEGORY+SMW_CAT_CHECK_EMPTY+SMW_CAT_VALID_CATEGORY_NAME+SMW_CAT_HINT_CATEGORY,true));d.setInputValue("cat-name",c[b].getName());d.append(d.createText("cat-name-msg",gLanguage.getMessage("ENTER_NAME"),"",true));var e=[["catToolBar.changeItem("+b+")",gLanguage.getMessage("CHANGE"),"cat-confirm",gLanguage.getMessage("INVALID_NAME"),"cat-invalid"],["catToolBar.deleteItem("+
b+")",gLanguage.getMessage("DELETE")],["catToolBar.cancel()",gLanguage.getMessage("CANCEL")]];d.append(d.createLink("cat-links",e,"",true));d.finishCreation();gSTBEventActions.initialCheck($("category-content-box"));c[b].select();setTimeout("$('cat-name').focus();",50)}}};var catToolBar=new CategoryToolBar;typeof FCKeditor=="undefined"&&Event.observe(window,"load",catToolBar.callme.bindAsEventListener(catToolBar));typeof FCKeditor=="undefined"&&Event.observe(window,"load",smw_help_callme);
var smw_help_getNamespace=function(){var b=wgNamespaceNumber==0?"Main":wgCanonicalNamespace;if(wgNamespaceNumber==-1&&wgCanonicalSpecialPageName=="Search")b="Search";else if(wgNamespaceNumber==-1&&wgCanonicalSpecialPageName=="QueryInterface")b="QueryInterface";else if(wgNamespaceNumber==-1&&wgCanonicalSpecialPageName=="Gardening")b="Gardening";else if(wgNamespaceNumber==-1&&wgCanonicalSpecialPageName=="GardeningLog")b="Gardening";else if(wgNamespaceNumber==-1&&wgCanonicalSpecialPageName=="OntologyBrowser")b=
"OntologyBrowser";return b},initHelp=function(){};function smw_help_callme(){}function displayHelp(b){if(b)if(b.responseText!="")helpcontainer.setContent(b.responseText);else helpcontainer.setHeadline=" ";else helpcontainer.setHeadline=" ";helpcontainer.contentChanged()}function askQuestion(){$("questionLoaderIcon").show();var b=smw_help_getNamespace();sajax_do_call("smwf_tb_AskQuestion",[b,wgAction,$("question").value],hideQuestionForm.bind(this))}
function hideQuestionForm(b){initHelp();$("questionLoaderIcon").hide();$("askHelp").hide();alert(b.responseText)}function submitenter(b,c){var d;if(window.event)d=window.event.keyCode;else if(c)d=c.which;else return true;if(d==13){askQuestion();return false}else return true}function helplog(b,c){window.smwhgLogger&&smwhgLogger.log("Opened Help Page "+b+" with action "+c,"CSH","help_clickedtopic");return true};typeof FCKeditor=="undefined"&&Event.observe(window,"load",smw_links_callme);var createLinkList=function(){sajax_do_call("smwf_tb_getLinks",[wgArticleId],addLinks)};
function smw_links_callme(){if(location.href.indexOf("redlink=1")===-1)if((wgAction=="edit"||wgAction=="formedit"||wgAction=="submit"||wgCanonicalSpecialPageName=="AddData"||wgCanonicalSpecialPageName=="EditData"||wgCanonicalSpecialPageName=="FormEdit")&&typeof stb_control!="undefined"&&stb_control.isToolbarAvailable()){var b=false;editcontainer=stb_control.createDivContainer(EDITCONTAINER,1);var c=GeneralBrowserTools.getCookie("stbpreftab");if(c)if(c.split(",")[0]=="0"){createLinkList();b=true}editcontainer.showTabEvent=
function(d){if(d==1&&!b){createLinkList();b=true}}}}function addLinks(b){b.responseText!=""?editcontainer.setContent(b.responseText):editcontainer.setContent("<p>There are no links on this page.</p>");editcontainer.contentChanged()}function filter(b,c,d){b=b.value.toLowerCase();c=document.getElementById(c);for(var e,f=0;f<c.rows.length;f++){e=c.rows[f].cells[d].innerHTML.replace(/<[^>]+>/g,"");c.rows[f].style.display=e.toLowerCase().indexOf(b)>=0?"":"none"}}
function update(){$("linkfilter").value="";filter($("linkfilter"),"linktable",0)}function linklog(b,c){window.smwhgLogger&&smwhgLogger.log("Opened Page "+b+" with action "+c,"info","link_opened");return true};var ASKQuery=Class.create();
ASKQuery.prototype={initialize:function(){this.genTB=new GenericToolBar;this.toolbarContainer=null;this.showList=true;this.currentAction=""},showToolbar:function(){this.askQueryContainer.setHeadline(gLanguage.getMessage("QUERY_HINTS"));if(wgAction=="edit"||wgAction=="formedit"||wgAction=="submit"||wgCanonicalSpecialPageName=="AddData"||wgCanonicalSpecialPageName=="EditData"||wgCanonicalSpecialPageName=="FormEdit")this.wtp=new WikiTextParser;this.om=new OntologyModifier;this.fillList(true)},createContainer:function(){if((wgAction==
"edit"||wgAction=="annotate"||wgAction=="formedit"||wgAction=="submit"||wgCanonicalSpecialPageName=="AddData"||wgCanonicalSpecialPageName=="EditData"||wgCanonicalSpecialPageName=="FormEdit")&&typeof stb_control!="undefined"&&stb_control.isToolbarAvailable()){this.askQueryContainer=stb_control.createDivContainer(ASKQUERYCONTAINER,0);this.showToolbar()}},fillList:function(b){if(b==true)this.showList=true;if(this.showList)if(this.wtp){this.wtp.initialize();var c=this.wtp.getAskQueries();b='<div id="query-tools">';
b+='<a href="javascript:smwhgASKQuery.newQuery()" class="menulink">'+gLanguage.getMessage("CREATE")+"</a>";b+="</div>";b+='<div id="query-itemlist"><table id="query-table">';for(var d=wgArticlePath,e=c==null?0:c.length,f=0;f<e;f++){var g="smwhgASKQuery.getSelectedItem("+f+")",h=c[f].getName().escapeHTML(),k=encodeURI(gLanguage.getMessage("NS_SPECIAL")+":Ask?q="+c[f].getQueryText());d.replace(/\$1/,k);k=encodeURI(gLanguage.getMessage("NS_SPECIAL")+":QueryInterface?q="+c[f].getQueryText());d.replace(/\$1/,
k);b+='<tr><td class="query-col1" >'+h+'</td><td class="query-col2"><a href="javascript:'+g+'">'+('<img src="'+wgScriptPath+'/extensions/SMWHalo/skins/edit.gif"/>')+"</a></td></tr>"}if(e==0){c=this.createToolbar("");b+=c.createText("query-status-msg",gLanguage.getMessage("NO_QUERIES_FOUND"),"",true)}b+="</table></div>";this.askQueryContainer.setContent(b);this.askQueryContainer.contentChanged()}},createToolbar:function(b){this.toolbarContainer&&this.toolbarContainer.release();var c=this.toolbarContainer=
new ContainerToolBar("askquery-content",1500,this.askQueryContainer);c.createContainerBody(b);return c},newQuery:function(){this.currentAction="create";this.wtp.initialize();var b=this.wtp.getSelection(true);smwhgLogger.log(b,"STB-Queries","create_clicked");jQuery.fancybox({href:wgScript+"?action=ajax&rs=smwf_qi_getAskPage&rsargs[]=CKE",width:"80%",height:"95%",autoScale:false,transitionIn:"none",transitionOut:"none",type:"iframe",overlayColor:"#222",overlayOpacity:"0.8",hideOnContentClick:false,
scrolling:"auto",onCleanup:smwhgASKQuery.setNewAskQuery})},getSelectedItem:function(b){this.wtp.initialize();var c=this.wtp.getAskQueries();if(!(b==null||b<0||b>=c.length)){this.currentAction="edit_query";this.currentQueryIndex=b;smwhgLogger.log(c[b].getName(),"STB-Queries",this.currentAction+"clicked");b="&rsargs[]=CKE"+encodeURIComponent("&query="+c[b].getQueryText().replace(/\n|\r/g,""));jQuery.fancybox({href:wgScript+"?action=ajax&rs=smwf_qi_getAskPage"+b,width:"80%",height:"95%",autoScale:false,
transitionIn:"none",transitionOut:"none",type:"iframe",overlayColor:"#222",overlayOpacity:"0.8",hideOnContentClick:false,onCleanup:smwhgASKQuery.setUpdatedAskQuery})}},setUpdatedAskQuery:function(){var b;for(d=0;d<window.top.frames.length;d++)if(window.top.frames[d].qihelper){b=window.top.frames[d].qihelper;break}var c=b.getAskQueryFromGui();if(!(typeof b.querySaved=="undefined"||b.querySaved!==true)){if(typeof b.queryFormated==="undefined"){c=c.replace(/\]\]\[\[/g,"]]\n[[");c=c.replace(/>\[\[/g,
">\n[[");c=c.replace(/\]\]</g,"]]\n<");c=c.replace(/([^\|]{1})\|{1}(?!\|)/g,"$1\n|")}smwhgASKQuery.wtp.initialize();b=smwhgASKQuery.wtp.getAskQueries();var d=smwhgASKQuery.currentQueryIndex;if(!(d==null||d<0||d>=b.length)){smwhgLogger.log(b[d].getName(),"STB-Queries","query-update");b[d].replaceAnnotation(c);smwhgASKQuery.fillList()}}},setNewAskQuery:function(){var b;for(i=0;i<window.top.frames.length;i++)if(window.top.frames[i].qihelper){b=window.top.frames[i].qihelper;break}var c=b.getAskQueryFromGui();
if(!(typeof b.querySaved=="undefined"||b.querySaved!==true)){c=c.replace(/\]\]\[\[/g,"]]\n[[");c=c.replace(/>\[\[/g,">\n[[");c=c.replace(/\]\]</g,"]]\n<");c=c.replace(/([^\|]{1})\|{1}(?!\|)/g,"$1\n|");smwhgASKQuery.wtp.addAnnotation(c);refreshSTB.refreshToolBar()}}};var smwhgASKQuery=new ASKQuery;typeof FCKeditor=="undefined"&&Event.observe(window,"load",smwhgASKQuery.createContainer.bindAsEventListener(smwhgASKQuery));var AA_RELATION=0,AA_CATEGORY=1,AdvancedAnnotation=Class.create();
AdvancedAnnotation.prototype={initialize:function(){this.fck=typeof FCKeditor!="undefined"?1:0;this.cke=typeof CKEDITOR!="undefined"?1:0;this.resetSelection();this.wikiTextParser=null;this.om=new OntologyModifier;this.om.addEditArticleHook(this.annotationsSaved.bind(this));this.loadWikiText();this.annoCount=1E4;this.annotationsChanged=false;this.selectionHighlightID=0;this.contextMenu=null;this.annotationConfirmed=false},onMouseUp:function(b){smwhgAnnotationHints.hideHints();this.hideToolbar();for(var c=
b.target;c;){if(c.id&&c.id=="smwh_AAM")break;c=$(c).up("div")}if(c){c=this.getSel();var d=c.toString();if(c.anchorNode==null||d=="")c=null;var e=this.selection!=null&&d==this.selectionText;this.selectionText=(this.selection=c)?c.toString():null;var f=this.canBeAnnotated(c);c&&!e&&d!=""&&!f&&smwhgAnnotationHints.showMessageAndWikiText(gLanguage.getMessage("CAN_NOT_ANNOTATE_SELECTION"),"",b.clientX,b.clientY);if(f&&c!=""&&!e){e=true;if(c.anchorNode!=c.focusNode){if(this.searchBackwards(c.anchorNode,
function(h,k){if(h==k)return h},c.focusNode)!=null)e=false}else if(c.anchorOffset>c.focusOffset)e=false;this.selectedText=d;d=this.selectedText.replace(/^\s*(.*?)\s*$/,"$1");f=this.selectedText.indexOf(d);var g=this.selectedText.length-d.length-f;this.selectedText=d;this.annotatedNode=e?c.anchorNode:c.focusNode;this.annoOffset=e?c.anchorOffset:c.focusOffset;this.focusNode=e?c.focusNode:c.anchorNode;this.focusOffset=e?c.focusOffset:c.anchorOffset;this.annoOffset+=f;this.focusOffset-=g;this.selectionContext=
this.getSelectionContext();this.performAnnotation(b)}}},onKeyUp:function(b){(b.which||b.keyCode)==Event.KEY_ESC&&this.hideToolbar()},canBeAnnotated:function(b){if(!b)return false;var c=b.anchorNode;b=b.focusNode;var d=c;if(!d)return false;if(!$(d).up)d=d.parentNode;if($(d).getAttribute("type")==="annotationHighlight"||$(d).getAttribute("class")==="aam_page_link_highlight")return false;else{var e=$(d).up('span[type="annotationHighlight"]');if(e)return false;if(e=$(d).up('span[class="aam_page_link_highlight"]'))return false}var f=
b;if(!$(f).up)f=f.parentNode;if($(f).getAttribute("type")==="annotationHighlight"||$(f).getAttribute("class")==="aam_page_link_highlight")return false;else{if(e=$(f).up('span[type="annotationHighlight"]'))return false;if(e=$(f).up('span[class="aam_page_link_highlight"]'))return false}if(c!==b){e=this.searchForward(c,this.searchSelectionEnd.bind(this));c=this.searchBackwards(c,this.searchSelectionEnd.bind(this));if(e!==b&&c!==b)return false;if($(d).nodeName!=="P")d=d.up("p");if($(f).nodeName!=="P")f=
f.up("p");if(d!==f)return false}return true},performAnnotation:function(b){var c=null,d=null;c=this.searchBackwards(this.annotatedNode,this.searchWtoAnchorWoCat.bind(this));d=this.searchForward(this.focusNode,this.searchWtoAnchorWoCat.bind(this));if(c){var e=c.getAttribute("name")*1,f=d!=null?d.getAttribute("name")*1:-1,g=this.searchInvalidNode(c);if(!g&&this.annotatedNode!=this.focusNode)g=this.searchForward(c,this.searchInvalidNode.bind(this),d);if(g&&g!==true){c="This selection can not be annotated.";
switch(g.getAttribute("obj")){case "nowiki":c="WTP_NOT_IN_NOWIKI";break;case "template":c="WTP_NOT_IN_TEMPLATE";break;case "annotation":c="WTP_NOT_IN_ANNOTATION";break;case "query":c="WTP_NOT_IN_QUERY";break;case "pre":c="WTP_NOT_IN_PREFORMATTED";break}msg=gLanguage.getMessage(c);msg=msg.replace(/\$1/g,this.selectedText);smwhgAnnotationHints.showMessageAndWikiText("(e)"+msg,this.wikiTextParser.text.substring(e,f),b.clientX,b.clientY);this.toolbarEnableAnnotation(false)}else{g=this.wikiTextParser.findText(this.selectedText,
e,f,this.selectionContext);if(g!=true){this.toolbarEnableAnnotation(true);smwhgAnnotationHints.showMessageAndWikiText("(e)"+g,this.wikiTextParser.text.substring(e,f),b.clientX,b.clientY)}else{this.toolbarEnableAnnotation(false);this.highlightSelection();this.annotateWithToolbar(b)}}}else{this.toolbarEnableAnnotation(false);smwhgAnnotationHints.showMessageAndWikiText("(e)No wiki text found for selection:","<b>"+this.selectedText+"</b>",b.clientX,b.clientY)}},toolbarEnableAnnotation:function(b){catToolBar.enableAnnotation(b)},
annotateWithToolbar:function(b){if(!this.contextMenu)this.contextMenu=new ContextMenuFramework;relToolBar.createContextMenu(this.contextMenu);catToolBar.createContextMenu(this.contextMenu);this.contextMenu.setPosition(b.clientX,b.clientY);this.contextMenu.showMenu()},hideToolbar:function(){if(this.contextMenu){this.contextMenu.remove();this.contextMenu=null}this.toolbarEnableAnnotation(true);this.annotationProposal=this.annotatedNode=null;this.wikiTextParser.setSelection(-1,-1);this.annotationConfirmed||
this.removeSelectionHighlight()},searchWtoAnchorWoCat:function(b){if(b.tagName=="A"&&b.type=="wikiTextOffset"&&b.getAttribute("annoType")!="category")return b},searchWtoAnchor:function(b){if(b.tagName=="A"&&b.type=="wikiTextOffset")return b},searchSelectionEnd:function(b){if(b.tagName=="P")return true;if(b===this.selection.focusNode)return b;else if(b.getAttribute&&(b.getAttribute("type")==="annotationHighlight"||b.getAttribute("class")==="aam_page_link_highlight"))return b},searchTextNode:function(b,
c){if(b.nodeName=="#text"){if(c)if(getTextContent(b).indexOf(c)>=0)return b;else return;return b}},searchInvalidNode:function(b,c){if(b===c)return true;if(b.tagName=="A"&&b.type=="wikiTextOffset"){var d=b.getAttribute("obj");if(d==="pre"||d==="query"||d==="nowiki"||d==="template")return b}},searchBackwards:function(b,c,d,e){b=b;if(!e)for(;b;){if(b.previousSibling){b=b.previousSibling;break}b=b.parentNode}for(;b;){if(b.lastChild){var f=this.searchBackwards(b.lastChild,c,d,true);if(f)return f}if(f=
c(b,d))return f;if(b.previousSibling)b=b.previousSibling;else break}if(!e&&b)if(b=b.parentNode)if(f=this.searchBackwards(b,c,d))return f;return null},searchForward:function(b,c,d,e){b=b;if(!e)for(;b;){if(b.nextSibling){b=b.nextSibling;break}b=b.parentNode}for(;b;){if(b.firstChild){var f=this.searchForward(b.firstChild,c,d,true);if(f)return f}if(f=c(b,d))return f;if(b.nextSibling)b=b.nextSibling;else break}if(!e&&b)if(b=b.parentNode)if(f=this.searchForward(b,c,d))return f;return null},getSel:function(){var b=
"";if(window.getSelection)b=window.getSelection();else if(document.getSelection)b=document.getSelection();else if(document.selection){var c=document.selection.createRange();if(c.text=="")return{anchorNode:null,focusNode:null,anchorOffset:0,focusOffset:0,text:"",toString:function(){return this.text}};b=c.text;var d=c.duplicate(),e=c.duplicate();d.collapse(true);e.collapse(false);d.pasteHTML('<a name="ieselectionstart" />');e.pasteHTML('<a name="ieselectionend" />');d=d.parentElement();var f=d.down("a[name=ieselectionstart]");
d=f.nextSibling;c=0;$(f).remove();var g=d.previousSibling?d.previousSibling:null;if(g)if(g.nodeName=="#text"){f=getTextContent(g);c=f.length;setTextContent(d,f+getTextContent(d));g.parentNode.removeChild(g)}e=e.parentElement();f=e.down("a[name=ieselectionend]");e=f.previousSibling;g=getTextContent(e).length;$(f).remove();var h=e.nextSibling?e.nextSibling:null;if(h)if(h.nodeName=="#text"){f=getTextContent(h);setTextContent(e,getTextContent(e)+f);h.parentNode.removeChild(h)}document.selection.empty();
b={anchorNode:d,focusNode:e,anchorOffset:c,focusOffset:g,text:b,toString:function(){return this.text}}}return b},getSelectionContext:function(){var b=Array("","","",""),c=getTextContent(this.annotatedNode);c=c.substring(0,this.annoOffset);c=this.getWords(c,2,false);b[1]=c;var d=getTextContent(this.focusNode);d=d.substring(this.focusOffset);d=this.getWords(d,2,true);b[2]=d;if(c=="")if(c=this.searchBackwards(this.annotatedNode,this.searchTextNode.bind(this))){c=getTextContent(c);c=this.getWords(c,2,
false);b[0]=c}if(d=="")if(d=this.searchForward(this.annotatedNode,this.searchTextNode.bind(this))){d=getTextContent(d);d=this.getWords(d,2,true);b[3]=d}return b},getWords:function(b,c,d){if(c<=0||b=="")return"";var e=0,f=b.length-1,g=d?f:0,h=d?1:-1;for(f=d?0:f;f!=g;f+=h){var k=b.charAt(f);if(k==" "||k=="\t"){e++;if(e==c)break}}return d?b.substring(0,f):b.substr(f)},loadWikiText:function(){if(this.fck&&this.cke){var b=gEditInterface.getValue();this.wikiTextParser=new WikiTextParser(b);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 sajax_do_call("smwf_om_GetWikiText",[wgPageName],function(c){if(c.status==200){this.wikiTextParser=new WikiTextParser(c.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}.bind(this))},categoryAdded:function(b,
c){this.confirmAnnotation(AA_CATEGORY,"aam_new_category_highlight",b,c);catToolBar.fillList();smwhgSaveAnnotations.markDirty();this.annotationsChanged=true;this.contextMenu&&this.hideToolbar()},relationAdded:function(b,c){if(this.annotationProposal){this.markProposal(AA_RELATION,"aam_new_anno_prop_highlight");this.annotationProposal=null}else this.confirmAnnotation(AA_RELATION,"aam_new_anno_prop_highlight",b,c);relToolBar.fillList();smwhgSaveAnnotations.markDirty();this.annotationsChanged=true;this.hideToolbar()},
annotationRemoved:function(b){this.removeAnnotationHighlight(b);smwhgSaveAnnotations.markDirty();this.annotationsChanged=true},resetSelection:function(){this.focusNode=this.annotatedNode=this.selectionText=this.selection=null;this.focusOffset=this.annoOffset=0},highlightSelection:function(){if(!(!this.annotatedNode||this.selectedText==="")){var b=wgScriptPath+"/extensions/SMWHalo/skins/Annotation/images/";this.selectionHighlightID=this.annoCount;var c='<a icon="edit" style="display:none" href="javascript:AdvancedAnnotation.smwhfEditAnno('+
this.annoCount+')"><img src="'+b+'edit.gif"/></a>';c+='<span id="anno'+this.annoCount+'" class="aam_selection_highlight" type="annotationHighlight">';var d="</span>";d+='<a icon="delete" style="display:none" href="javascript:AdvancedAnnotation.smwhfDeleteAnno('+this.annoCount+')"><img src="'+b+'delete.png"/></a>';c=this.selectedText.length<=20?'<span id="anno'+this.annoCount+'w" style="white-space:nowrap">'+c:'<span id="anno'+this.annoCount+'w">'+c;d+="</span>";c='<a type="wikiTextOffset" name="0"></a>'+
c;d+='<a type="wikiTextOffset" name="0"></a>';var e=this.annotatedNode;b=this.focusNode;var f=this.annoOffset,g=this.focusOffset,h=getTextContent(b);h=h.substring(0,g)+"###end###"+h.substring(g);setTextContent(b,h);h=getTextContent(e);h=h.substring(0,f)+"###start###"+h.substring(f);setTextContent(e,h);e=e.parentNode;b=b.parentNode;f=e.innerHTML;f=f.replace(/###start###/,c);f=f.replace(/###end###/,d);if(e===b)e.innerHTML=f;else{g=b.innerHTML;g=g.replace(/(<b><i>|<i><b>|<i>|<b>)###start###/,"###start###$1");
g=g.replace(/###start###/,c);g=g.replace(/###end###/,d);e.innerHTML=f;b.innerHTML=g}this.resetSelection();c=$("anno"+this.annoCount+"w").descendants();for(d=0;d<c.length;++d){b=c[d];b.id.match(/anno\d*w/)&&this.hideProposal(b)}this.annoCount++;this.annotationConfirmed=false}},confirmAnnotation:function(b,c,d,e){if(this.selectionHighlightID!=0){var f=$("smwh_AAM").down('span[id="anno'+this.selectionHighlightID+'w"]');if(f){var g=b==AA_RELATION?"relation":"category",h=f.previous("a");if(h){h.writeAttribute("name",
d);h.writeAttribute("annoType",g)}if(d=f.down("span"))d.className=c;if(c=f.down('a[icon="edit"]'))b==AA_RELATION?c.show():c.remove();(c=f.down('a[icon="delete"]'))&&c.show();if(b=f.next("a")){b.writeAttribute("name",e);b.writeAttribute("annoType",g)}this.annotationConfirmed=true}}},markProposal:function(b,c){if(this.annotationProposal){var d=getTextContent(this.annotationProposal),e=this.annotationProposal;e.id="anno"+this.annoCount+"w";d.length<20&&e.setStyle("white-space:nowrap");if(b==AA_RELATION){var f=
wgScriptPath+"/extensions/SMWHalo/skins/Annotation/images/";$(e.down("a")).replace('<a href="javascript:AdvancedAnnotation.smwhfEditAnno('+this.annoCount+')"><img src="'+f+'edit.gif"/></a>')}else $(e.down("a")).remove();d=$(e.down("span"));d.className=c;d.id="anno"+this.annoCount;Insertion.Bottom(e,'<a href="javascript:AdvancedAnnotation.smwhfDeleteAnno('+this.annoCount+')"><img src="'+f+'delete.png"/></a>');this.annoCount++}},hideProposal:function(b){var c=b.down("img");c&&c.hide();if(b=b.down("span"))b.className=
""},restoreProposal:function(b){var c=b.down("img");c&&c.show();if(b=b.down("span"))b.className="aam_page_link_highlight"},updateAnchors:function(b){if(b){var c=b[0];b=b[2]-(b[1]-c);for(var d=$("smwh_AAM").getElementsBySelector('a[type="wikiTextOffset"]'),e=0;e<d.size();++e){var f=d[e].getAttribute("name")*1;f>c&&d[e].setAttribute("name",f+b)}c=$("smwh_AAM").getElementsBySelector('a[name="'+c+'"]');if(c.size()==1)if(c=c[0].next("span"))(c=c.down("span"))&&c.getAttribute("class")=="aam_prop_highlight"&&
c.setAttribute("class","aam_new_anno_prop_highlight");smwhgSaveAnnotations.markDirty();this.annotationsChanged=true}},deleteAnnotation:function(b){if(b=this.findAnnotationWithId(b)){var c=b[0],d="";if(c.getRepresentation().length!=0)d=c.getRepresentation();else if(c.getValue)d=c.getValue();b=c.getName();sajax_do_call("smwf_om_RelationSchemaData",[b],function(e){if(e.status!=200)alert(gLanguage.getMessage("RETRIEVE_SCHEMA_DATA"));else{var f=[];if(e.responseText!="noSchemaData"){e=GeneralXMLTools.createDocumentFromString(e.responseText);
if(e.documentElement.tagName!="parsererror")for(var g=0,h=e.documentElement.childNodes.length;g<h;g++){var k=e.documentElement.childNodes[g].getAttribute("name");if(k.indexOf("|Page"))k=gLanguage.getMessage("TYPE_PAGE_WONS");f.push(k)}}f.size()==0||f[0].toLowerCase()!=gLanguage.getMessage("TYPE_PAGE_WONS").toLowerCase()?c.remove(d):c.remove("[["+d+"]]");k&&k=="category"?catToolBar.fillList():relToolBar.fillList()}}.bind(this))}},editAnnotation:function(b){(b=this.findAnnotationWithId(b))&&relToolBar.getselectedItem(b[1])},
annotateProposal:function(b){smwhgAnnotationHints.hideHints();var c=this.findAnnotationWithId(b);if(c){this.annotationProposal=b=$("anno"+b+"w");var d=c[0];this.wikiTextParser.setSelection(d.getStart(),d.getEnd());this.contextMenu=new ContextMenuFramework;c=d.getRepresentation();d=d.getName();relToolBar.createContextMenu(this.contextMenu,d,c);b=b.viewportOffset();this.contextMenu.setPosition(b[0],b[1]+20);this.contextMenu.showMenu()}},findAnnotationWithId:function(b){b=$("anno"+b+"w");if(!b){alert("Corresponding annotation not found.");
return null}var c=this.searchBackwards(b,this.searchWtoAnchor.bind(this));b=c.getAttribute("name")*1;for(var d=(c=c.getAttribute("annoType"))&&c=="category"?this.wikiTextParser.getCategories():this.wikiTextParser.getRelations(),e=0;e<d.length;++e){var f=d[e];if(f.getStart()==b)return[f,e,c]}d=this.wikiTextParser.getLinks();for(e=0;e<d.length;++e){f=d[e];if(f.getStart()==b)return[f,e,"link"]}return null},removeAnnotationHighlight:function(b){var c=b.getStart();if(c=$("smwh_AAM").down('a[name="'+c+
'"]')){var d=c.next("span");if(d){b=b.getAnnotation().match(/^\[\[.*?\]\]$/);for(var e=$(d).down("span"),f=$(e).descendants(),g=0;g<f.length;++g){var h=f[g];if(h.id.match(/anno\d*w/))this.restoreProposal(h);else if(h.tagName=="A"&&!b){var k=h.getAttribute("href");k&&k.startsWith(wgScriptPath)&&h.parentNode.className!="aam_page_link_highlight"&&h.replace(getTextContent(h))}}e=e.innerHTML;if(b){f='<span id="anno'+this.annoCount+'w" style="white-space: nowrap;"><a href="javascript:AdvancedAnnotation.smwhfEditLink('+
this.annoCount+')"><img src="/develwiki/extensions/SMWHalo/skins/Annotation/images/add.png"/></a><span id="anno2" class="aam_page_link_highlight">';this.annoCount++;e=f+e+"</span></span>"}f=c.next('a[type="wikiTextOffset"]');d.replace(e);if(!b){c.getAttribute("name")!="0"&&c.remove();f&&f.remove()}}}else alert("Anchor for annotation not found.")},removeSelectionHighlight:function(){var b=$("smwh_AAM").down('span[id="anno'+this.selectionHighlightID+'w"]');if(b){var c=b.previous("a");c&&c.remove();
(c=b.next("a"))&&c.remove();c=$(b).down("span");for(var d=$(c).descendants(),e=0;e<d.length;++e){var f=d[e];if(f.id.match(/anno\d*w/))this.restoreProposal(f);else if(f.tagName=="A"){var g=f.getAttribute("href");g&&g.startsWith(wgScriptPath)&&f.parentNode.className!="aam_page_link_highlight"&&f.replace(getTextContent(f))}}b.replace(c.innerHTML);this.selectionHighlightID=0}},saveAnnotations:function(b){this.om.editArticle(wgPageName,this.wikiTextParser.getWikiText(),gLanguage.getMessage("AH_SAVE_COMMENT"),
false,"annotate");smwhgSaveAnnotations.savingAnnotations(b)},annotationsSaved:function(b){smwhgSaveAnnotations.annotationsSaved(b);if(b===true)this.annotationsChanged=false;else smwhgSaveAnnotations.markDirty()}};
AdvancedAnnotation.create=function(){if(wgAction=="annotate"||this.fck||this.cke){smwhgAdvancedAnnotation=new AdvancedAnnotation;new PeriodicalExecuter(function(b){var c=$("globalWrapper");Event.observe(c,"mouseup",smwhgAdvancedAnnotation.onMouseUp.bindAsEventListener(smwhgAdvancedAnnotation));Event.observe("globalWrapper","keyup",smwhgAdvancedAnnotation.onKeyUp.bindAsEventListener(smwhgAdvancedAnnotation));b.stop()},2)}};
AdvancedAnnotation.unload=function(){wgAction=="annotate"&&smwhgAdvancedAnnotation.annotationsChanged===true&&confirm(gLanguage.getMessage("AAM_SAVE_ANNOTATIONS"))===true&&smwhgAdvancedAnnotation.saveAnnotations();if(typeof FCKeditor!="undefined"||typeof CKEDITOR!="undefined")$("ontomenuanchor").innerHTML=""};AdvancedAnnotation.smwhfEditAnno=function(b){smwhgAdvancedAnnotation.editAnnotation(b)};
AdvancedAnnotation.smwhfDeleteAnno=function(b){confirm(gLanguage.getMessage("AAM_DELETE_ANNOTATIONS"))===true&&smwhgAdvancedAnnotation.deleteAnnotation(b)};AdvancedAnnotation.smwhfEditLink=function(b){smwhgAdvancedAnnotation.annotateProposal(b)};function getTextContent(b){if(!b)return null;if(b.textContent)return b.textContent;else if(b.innerText)return b.innerText;else if(b.nodeValue)return b.nodeValue;return null}
function setTextContent(b,c){if(!b)return null;if(b.textContent)b.textContent=c;else if(b.innerText)b.innerText=c;else if(b.nodeValue)b.nodeValue=c}var smwhgAdvancedAnnotation=null;if(typeof FCKeditor=="undefined"&&typeof CKEDITOR=="undefined"){Event.observe(window,"load",AdvancedAnnotation.create);Event.observe(window,"unload",AdvancedAnnotation.unload)};var AnnotationHints=Class.create();
AnnotationHints.prototype={initialize:function(){},showMessageAndWikiText:function(b,c,d,e){this.contextMenu=new ContextMenuFramework;var f=new ContainerToolBar("annotationhints-content",1E3,this.contextMenu);f.createContainerBody("","ANNOTATIONHINT",gLanguage.getMessage("ANNOTATION_ERRORS"));var g=b.stripScripts();if(g!=b){g=b.replace(/<\/?b>/g,"");g=g.escapeHTML()}b=c.stripScripts();if(b!=c){b=c.replace(/<\/?b>/g,"");b=b.escapeHTML()}f.append(f.createText("ah-error-msg",g,"",true));f.append(f.createText("ah-wikitext-msg",
b,"",true));f.finishCreation();this.contextMenu.setPosition(d,e);this.contextMenu.showMenu();document.onkeyup=function(h){if(h)(h.which||h.keyCode)==Event.KEY_ESC&&smwhgAnnotationHints.hideHints()}},hideHints:function(){this.contextMenu&&this.contextMenu.remove()}};var smwhgAnnotationHints=new AnnotationHints;var GardeningHints=Class.create();
GardeningHints.prototype={initialize:function(){this.toolbarContainer=null},showToolbar:function(){this.gardeningHintContainer.setHeadline(gLanguage.getMessage("ANNOTATION_HINTS"));var b=this,c=false;b.gardeningHintContainer.showContainerEvent=function(){if(!c)if(b.gardeningHintContainer.isVisible()){sajax_do_call("smwf_ga_GetGardeningIssues",[["smw_consistencybot","smw_undefinedentitiesbot","smw_missingannotationsbot"],"","",wgPageName,""],b.createContent.bind(b));c=true}};this.gardeningHintContainer.setVisibility(false);
this.gardeningHintContainer.contentChanged()},createContainer:function(){if((wgAction=="edit"||wgAction=="annotate"||wgAction=="formedit"||wgAction=="submit"||wgCanonicalSpecialPageName=="AddData"||wgCanonicalSpecialPageName=="EditData"||wgCanonicalSpecialPageName=="FormEdit")&&typeof stb_control!="undefined"&&stb_control.isToolbarAvailable()){this.gardeningHintContainer=stb_control.createDivContainer(ANNOTATIONHINTCONTAINER,0);this.showToolbar()}},createContent:function(b){var c=this.createToolbar(""),
d="";if(b.status==200&&b.responseText!="smwf_ga_GetGardeningIssues: invalid title specified."){b=GeneralXMLTools.createDocumentFromString(b.responseText);if(b.documentElement)for(var e=0,f=b.documentElement.childNodes.length;e<f;e++){var g=b.documentElement.childNodes[e],h=g.childNodes.length;if(h>0){d+="<ul>";for(var k=0;k<h;k++){var l=g.childNodes[k];d+="<li>"+(l.textContent?l.textContent:l.text)+"</li>"}d+="</ul>"}}}d||(d=c.createText("ah-status-msg",gLanguage.getMessage("AH_NO_HINTS"),"",true));
c.append(d);c.finishCreation();this.gardeningHintContainer.contentChanged()},createToolbar:function(b){this.toolbarContainer&&this.toolbarContainer.release();var c=this.toolbarContainer=new ContainerToolBar("annotationhint-content",1E3,this.gardeningHintContainer);c.createContainerBody(b);return c}};var smwhgGardeningHints=new GardeningHints;typeof FCKeditor=="undefined"&&Event.observe(window,"load",smwhgGardeningHints.createContainer.bindAsEventListener(smwhgGardeningHints));var SaveAnnotations=Class.create();
SaveAnnotations.prototype={initialize:function(){this.toolbarContainer=null;this.exitPage=false},showToolbar:function(){this.savehintcontainer.setHeadline(gLanguage.getMessage("SA_SAVE_ANNOTATION_HINTS"));this.createContent()},createContainer:function(){if(wgAction=="annotate"&&stb_control.isToolbarAvailable()){this.savehintcontainer=stb_control.createDivContainer(SAVEANNOTATIONSCONTAINER,0);this.showToolbar()}},createContent:function(){var b=this.createToolbar("");b.append(b.createText("sa-save-msg",
"","",true));var c='<table border="0" class= "saveannotations-innertable"><tr><td>';c+=b.createButton("ah-savewikitext-btn",gLanguage.getMessage("SA_SAVE_ANNOTATIONS"),"smwhgAdvancedAnnotation.saveAnnotations(false)","",true);c+="</td><td>";c+=b.createButton("ah-savewikitext-and-exit-btn",gLanguage.getMessage("SA_SAVE_ANNOTATIONS_AND_EXIT"),"smwhgAdvancedAnnotation.saveAnnotations(true)","",true);c+="</td></tr></table>";b.append(c);b.finishCreation();this.savehintcontainer.contentChanged();$("ah-savewikitext-btn").disable();
$("ah-savewikitext-and-exit-btn").disable()},savingAnnotations:function(b){var c=gLanguage.getMessage("SA_SAVING_ANNOTATIONS"),d=this.toolbarContainer;c=d.createText("sa-save-msg",c,"",true);d.replace("sa-save-msg",c);$("saveannotations-content-table-sa-save-msg").show();$("ah-savewikitext-btn").disable();$("ah-savewikitext-and-exit-btn").disable();this.exitPage=b},annotationsSaved:function(b){var c=b?gLanguage.getMessage("SA_ANNOTATIONS_SAVED"):gLanguage.getMessage("SA_SAVING_ANNOTATIONS_FAILED"),
d=this.toolbarContainer;c=d.createText("sa-save-msg",c,"",true);d.replace("sa-save-msg",c);$("saveannotations-content-table-sa-save-msg").show();if(b){$("ah-savewikitext-btn").disable();$("ah-savewikitext-and-exit-btn").disable();if(this.exitPage)location.href=wgServer+wgScript+"/"+wgPageName}},markDirty:function(){$("saveannotations-content-table-sa-save-msg").hide();$("ah-savewikitext-btn").enable();$("ah-savewikitext-and-exit-btn").enable()},createToolbar:function(b){this.toolbarContainer&&this.toolbarContainer.release();
var c=this.toolbarContainer=new ContainerToolBar("saveannotations-content",900,this.savehintcontainer);c.createContainerBody(b);return c}};var smwhgSaveAnnotations=new SaveAnnotations;typeof FCKeditor=="undefined"&&Event.observe(window,"load",smwhgSaveAnnotations.createContainer.bindAsEventListener(smwhgSaveAnnotations));var SMW_DerivedFactsTab=Class.create();
SMW_DerivedFactsTab.prototype={initialize:function(){this.mActiveTab=1;this.sandglass=new OBPendingIndicator;this.mDFLoaded=false},init:function(){if($("dftTab1")&&$("dftTab2")){Event.observe("dftTab1","click",this.activateTab1.bindAsEventListener(this));Event.observe("dftTab2","click",this.activateTab2.bindAsEventListener(this))}},activateTab1:function(){if(this.mActiveTab!=1){this.mActiveTab=1;$("dftTab2Content").hide();$("dftTab1Content").show();$("dftTab1").addClassName("dftTabActive");$("dftTab1").removeClassName("dftTabInactive");
$("dftTab2").addClassName("dftTabInactive");$("dftTab2").removeClassName("dftTabActive")}},activateTab2:function(){if(this.mActiveTab!=2){this.mActiveTab=2;$("dftTab1Content").hide();$("dftTab2Content").show();$("dftTab2").addClassName("dftTabActive");$("dftTab2").removeClassName("dftTabInactive");$("dftTab1").addClassName("dftTabInactive");$("dftTab1").removeClassName("dftTabActive");if(!this.mDFLoaded){this.sandglass.show("dftTab2Content");sajax_do_call("smwf_om_GetDerivedFacts",[wgPageName],this.getDerivedFacts.bind(this))}}},
getDerivedFacts:function(b){this.sandglass.hide();if(b.status!=200)$("dftTab2ContentInnerDiv").replace('<div id="dftTab2ContentInnerDiv" style="padding: 20px;">'+gLanguage.getMessage("DF_REQUEST_FAILED")+"</div>");else{$("dftTab2ContentInnerDiv").replace('<div id="dftTab2ContentInnerDiv">'+b.responseText+"</div>");this.mDFLoaded=true}}};var smwDft=new SMW_DerivedFactsTab;Event.observe(window,"load",smwDft.init.bindAsEventListener(smwDft));

