var WJAeroplane=Class.create({initialize:function(){this.menu=null;this.contextmenu=null;this.spinErrorHandlers={};this.windowmanager=new WJWindowManager();if(window.WJProgressNotifier){this.progressnotifier=new WJProgressNotifier();} this.unloadmanager=new WJUnloadManager(this.allowUnload.bind(this));this.topbarId="aeroplane_topbar";this.contentId="aeroplane_main";this.contentClass="aeroplane_sitemaincontent";this.contentBlockContainers={};this.dbtables={};this.layers=[];this.translateGui=WJAeroplane.translate.bind(this);},aeroplaneSpinError:function(response,lastSpin){for(code in this.spinErrorHandlers){if(code==response.status&&typeof(this.spinErrorHandlers[code])=="function"){this.spinErrorHandlers[code](response,lastSpin);return;}} var reload=function(){this.unloadmanager.suspend();document.location.reload();}.bind(this);WJWindow.alert("Er heeft zich een fout voorgedaan, Windmill CMS zal automatisch worden herladen. Neem contact op met Connectholland wanneer dit probleem zich blijft voordoen.",reload,aeroplane.translateGui);},selectLanguage:function(language,force){var force=!!force;if(this.allowUnload()||force){this.unloadmanager.suspend(true);var href=document.location.href.replace(document.location.hash,"").replace(/#$/,"");if(href.match(/uilanguage=/)){href=href.replace(/(uilanguage=)[^&]*/,"$1"+language);} else if(href.match(/\?/)){href=href+"&uilanguage="+language;} else{href=href+"?uilanguage="+language;} document.location.href=href;} else{WJWindow.booleanConfirm("Mogelijk zijn er nog niet opgeslagen gegevens."+"\n"+"Wanneer de taalinstelling gewijzigd wordt zullen alle applicaties gesloten worden."+"\n\n"+"Weet je zeker dat je de taalinstelling wilt wijzigen?",this.selectLanguage.bind(this,language,true),aeroplane.translateGui);}},registerSpinErrorHandler:function(code,callback){this.spinErrorHandlers[code]=callback;},addMainMenuItem:function(id,menu){if(this.menu==null){this.menu=new WJMenu("main",-1);} this.menu.addItem(id,menu);},addMenuItem:function(mainid,id,menu){this.menu.getItem(mainid).addItem(id,menu);},openApplication:function(application){var applicationInterface=window["WJ"+application+"Interface"].construct(arguments);this.windowmanager.startApplication(applicationInterface);if(applicationInterface.showProgress()){this.progressnotifier.show(applicationInterface,"Applicatie wordt opgestart");} return applicationInterface;},closeMotd:function(){if($("motd")){$("motd").hide();var spin=new WJSpin();spin.update(new WJUrl({"ct":"wmdynamic","module":"Wmcb"}),"Wmcb","readMotd",{},[]);}},createTopBar:function(){var bodyChildren=Element.extend(document.body).childElements();var topbarDiv=document.body.appendChild(new Element("div",{id:this.topbarId}));var mainDiv=document.body.appendChild(new Element("div",{"class":this.contentClass,id:this.contentId}));for(i=0;i0){this.applications[this.applications.length-1].handleKeyEvent(e);}},getMaxZIndex:function(){var nodes=$$(".");var lenght=nodes.lenght;var z=0;for(var i=0;i
 
");},_createWindowRows:function(rows,classprefix,windowElement){var windowElement=windowElement||this._windowElement;rows.each(function(windowElement,classprefix,rowname,index){var body=" "+classprefix+"_body";if(index==0||index==(rows.length-1)){body="";} windowElement.innerHTML+=this._createRow(rowname,classprefix,body);}.bind(this,windowElement,classprefix));this._saveRows(rows,classprefix,windowElement);this._addWindowObjectGetters();},_addWindowObjectGetters:function(){var test=[$H(this._contentElements).values(),this._windowElement].flatten();test.each(function(el){el.getWJWindowObject=function(){return this;}.bind(this);},this);return test;},_saveRows:function(rows,classprefix,windowElement){var windowElement=windowElement||this._windowElement;this._contentElements={};rows.each(function(windowElements,rowname,index){this._contentElements[rowname]=windowElements[index];}.bind(this,windowElement.select("."+classprefix+"_content")));return this;},_createRow:function(rowname,classprefix,body){var row=this._getWindowRowTemplate();return row.evaluate({"rowname":rowname,"classprefix":classprefix,"body":body});},getContentElement:function(rowname){return this._contentElements[rowname];},evalContentElement:function(rowname){var element=this.getContentElement(rowname);element.innerHTML.evalScripts();return this;},_absolutizeTopLeft:function(element){var element=element||this._windowElement;element.absolutize();element.setStyle({height:"",width:""});this.setX(0,element);this.setY(0,element);},_checkMaxHeight:function(element){var element=element||this.getContentElement("main");if(this.getY()+this.getHeight()>document.viewport.getHeight()){this.setHeight(document.viewport.getHeight()-this.getY(),element,false);} else{element.setStyle({"maxHeight":""});}},show:function(element){var element=element||this._outerElement||this._windowElement;element.style.display="block";try{element.focus()}catch(e){} return this;},hide:function(element){var element=element||this._outerElement||this._windowElement;element.style.display="none";return this;},destroy:function(element){var element=element||this._outerElement||this._windowElement;if(element.parentNode){element.remove();} return this;},_callback:function(){if(Object.isFunction(this._callbackFunction)){var args=$A(arguments);args.unshift(this);return this._callbackFunction.apply(this._callbackFunction,args);}},_close:function(event){this.hide();},setBaseTitle:function(title){this._basetitle=title;this.setTitle(this.getTitle());return this;},setTitle:function(title){this._title=title;var headers=this.getContentElement("title").getElementsByTagName("h1");if(headers.length<1){this.getContentElement("title").innerHTML="

 

"+this.getContentElement("title").innerHTML;return this.setTitle(this._title);} headers[0].innerHTML=this._getComposedTitle();return this;},_getComposedTitle:function(){return this._title+((this._basetitle!=""&&this._basetitle!=this._title)?((this._title!="")?" - ":"")+this._basetitle:"");},setContent:function(content){if(Object.isString(content)){this.getContentElement("main").innerHTML=content;} if(Object.isElement(content)){this.getContentElement("main").appendChild(content);} this._content=content;return this;},addButton:function(caption,eventHandler,defaultButton){WJDebugger.log(WJDebugger.INFO,"Adding button to window",caption,eventHandler,this);var button=WJButton.create(caption,eventHandler,defaultButton,this.getContentElement("buttons"));this._checkMaxHeight();return button;},addStatusbar:function(){WJDebugger.log(WJDebugger.INFO,"Adding statusbar to window",this);this._statusbar=new Element("div");this._statusbar.addClassName("wjgui_statusbar");this.getContentElement("buttons").insert(this._statusbar);this._checkMaxHeight();},setStatusbar:function(content,fade){var fade=fade||-1;if(this._statusbar){this._statusbar.update(content);if(fade>0){this.hideStatusbar.bind(this).delay(fade);}}},hideStatusbar:function(){Effect.Fade(this._statusbar,{duration:3.0});this.clearAndShowStatusbar.bind(this).delay(3.5);},clearAndShowStatusbar:function(){this._statusbar.update("");this._statusbar.show();},setCallback:function(callback){if(Object.isFunction(callback)){this._callbackFunction=callback;} return this;},setX:function(x,element){this._x=x||0;var element=element||this._windowElement;element.style.left=x+"px";return this;},setY:function(y,element){this._y=y||0;var element=element||this._windowElement;element.style.top=y+"px";this._checkMaxHeight(element);return this;},setZ:function(z,element){this._z=z||10000;var element=element||this._windowElement;element.style.zIndex=z;return this;},setWidth:function(width,element){this._width=width;var element=element||this._windowElement;element.setStyle({"width":width+"px"});element.fire("wjgui:resize");return this;},setHeight:function(height,element,checkHeight){this._height=height;var element=element||this.getContentElement("main");var wasVisible=this.isVisible();var origX=this.getX();var origY=this.getY();if(!wasVisible){this.setX(-10000);this.setY(-10000);this.show();} var otherRowsHeight=0;for(var key in this._contentElements){if(key!="main"){otherRowsHeight+=this._contentElements[key].getHeight();}} var height=(Object.isNumber(height)==false)?height:(height-otherRowsHeight)+"px";element.setStyle({"height":height});if(!wasVisible){this.hide();this.setX(origX);this.setY(origY);} if(checkHeight!=false){this._checkMaxHeight(element);} if(!checkHeight){element.fire("wjgui:resize");} return this;},getBaseTitle:function(){return this._basetitle;},getTitle:function(){return this._title;},getType:function(){return this._type;},getContent:function(){return this._content;},getContenttype:function(){},getCallback:function(){return this._callbackFunction;},isVisible:function(){var xInLow=(this.getX()<0&&(this.getX()+this.getWidth())>0);var xInHigh=(this.getX()>=0&&this.getX()0);var yInHigh=(this.getY()>=0&&this.getY() 
 
");},setMessage:function(message,allowHTML){var allowHTML=!!allowHTML;if(!allowHTML){message=message.stripTags();} this.message=message.stripScripts().split("\n").join("
");this.getContentElement("message").innerHTML=this.message;},_callback:function(){this.hide();return this._decorated._callback.apply(this._decorated,$A(arguments));}});var WJWindowAlert=Class.create(WJWindowMessageDialog,{initialize:function($super,toDecorate){if(!this._type){this._type="alert";} $super(toDecorate);this.getListener("close").callback.setArgument(0,true);this.removeListener("false");this.removeListener("save");this.removeListener("cancel");}});var WJWindowNotice=Class.create(WJWindowAlert,{initialize:function($super,toDecorate){this._type="notice";$super(toDecorate);}});var WJButton=Class.create({initialize:function(caption,eventHandler,defaultButton,parentElement){WJDebugger.log(WJDebugger.INFO,"Create new button",caption,eventHandler,defaultButton,parentElement);this._caption=caption;this._eventHandler=eventHandler;this._defaultButton=(defaultButton===true)?true:false;this._parentElement=$(parentElement);this._buildEventHandler();this._createButton();this._addButtonMethods();this._addObserver();if(Object.isElement(this._parentElement)){this._parentElement.appendChild(this.getButton());} this.updateCaption(this._caption);},_addButtonMethods:function(){this.getButton().updateCaption=this.updateCaption.bind(this);this.getButton().setCaption=this.getButton().updateCaption;this.getButton().getCaption=this.getCaption.bind(this);this.getButton().enable=this.enable.bind(this);this.getButton().disable=this.disable.bind(this);},updateCaption:function(caption){this._caption=caption.stripTags().stripScripts();return this._setCaption.bind(this).defer();},setCaption:function(caption){this.updateCaption(caption);},_setCaption:function(){var contentElement=this.getContentElement();contentElement.update(this._caption);this.setWidth(this._getNewButtonWidth(this._caption,contentElement));return this.getButton();},enable:function(){this.getButton().removeAttribute("disabled");this.getButton().removeClassName("wjgui_button_disabled");return this;},disable:function(){this.getButton().disabled="disabled";this.getButton().addClassName("wjgui_button_disabled");return this;},getContentElement:function(){return this.getButton().down("."+this._getBaseClassName()+"_content");},_getNewButtonWidth:function(text,element){var fontfamily=element.getStyle("fontFamily");var fontsize=element.getStyle("fontSize");var fontweight=element.getStyle("fontWeight");WJButton.measureElement.setStyle({"fontFamily":fontfamily,"fontSize":fontsize,"fontWeight":fontweight}).update(text);var width=document.body.appendChild(WJButton.measureElement).getWidth();WJButton.measureElement.remove();width+=this.getWidth()-element.getWidth();return(width>100||this.getButton().up("div.autowidth",0))?width:100;},getWidth:function(){return this.getButton().getWidth();},setWidth:function(width){this.getButton().setStyle({"width":width+"px"});},_buildEventHandler:function(){if(!Object.isFunction(this._eventHandler)){if(this._eventHandler.indexOf(":")==-1){this._eventHandler=this._getEventPrefix()+":"+this._eventHandler;WJDebugger.log(WJDebugger.INFO,"Build event handler for this, create event "+this._eventHandler);var func=function(event,eventHandler){WJDebugger.log(WJDebugger.INFO,"Fire event in WJButton",event,eventHandler);Event.element(event).fire(eventHandler);}.bindAsEventListener(this.getButton(),this._eventHandler);this._eventHandler=func;}}},_getEventPrefix:function(){return"wjgui";},_createButton:function(){this._buttonElement=new Element("button");var template=this._getTemplate();var replaces={};replaces.classprefix=this._getBaseClassName();this._buttonElement.addClassName(replaces.classprefix+" "+replaces.classprefix+"_"+((this._defaultButton)?"":"no")+"default");this._buttonElement.innerHTML=template.evaluate(replaces);},_getBaseClassName:function(){return"wjgui_button";},_getTemplate:function(){return new Template("
 
");},getButton:function(){return this._buttonElement;},_addObserver:function(){WJDebugger.log(WJDebugger.INFO,"_addObserver in WJButton",this._eventHandler);WJDebugger.log(WJDebugger.DEBUG,"WJButton observer code",this._eventHandler.toString());Event.observe(this.getButton(),"click",this._eventHandler);},setObserver:function(eventHandler){Event.stopObserving(this.getButton(),"click",this._eventHandler);this._eventHandler=eventHandler;this._addObserver();},getCaption:function(){return this._caption;},recalculateWidth:function(){this.updateCaption(this.getCaption());}});WJButton.measureElement=new Element("div",{"style":"position: absolute; left: -1000px;"});WJButton.create=function(caption,eventHandler,defaultButton,parentElement){var button=new WJButton(caption,eventHandler,defaultButton,parentElement);return button.getButton();} WJButton.toWJButtonStyle=function(element,defaultButton){if(element.tagName.toLowerCase()=="button"){var element=$(element);var caption=element.getTextContent();var template=WJButton.prototype._getTemplate();var replaces={classprefix:WJButton.prototype._getBaseClassName()};element.className=replaces.classprefix+" "+replaces.classprefix+"_"+((defaultButton)?"":"no")+"default";element.update(template.evaluate(replaces));element.down("."+replaces.classprefix+"_content").update(caption);} return element;} var WJGuiSettings=Object.extend({windowBaseTitle:"Windmill CMS"},WJGuiSettings||{});