From 41cc9f7ff7da95220c166311c3e983984dba06d5 Mon Sep 17 00:00:00 2001 From: neyric Date: Wed, 25 Aug 2010 01:54:19 +0200 Subject: [PATCH] Splitting some functions in Container.js to override them easily --- build/wireit-inputex-editor-composable-min.js | 2 +- build/wireit-inputex-editor-composable.js | 79 ++++++++++++------- build/wireit-inputex-editor-grouping-min.js | 2 +- build/wireit-inputex-editor-grouping.js | 79 ++++++++++++------- build/wireit-inputex-editor-min.js | 2 +- build/wireit-inputex-editor.js | 79 ++++++++++++------- build/wireit-inputex-min.js | 2 +- build/wireit-inputex.js | 79 ++++++++++++------- build/wireit-min.js | 2 +- build/wireit.js | 79 ++++++++++++------- js/Container.js | 79 ++++++++++++------- js/DD.js | 5 +- 12 files changed, 314 insertions(+), 175 deletions(-) diff --git a/build/wireit-inputex-editor-composable-min.js b/build/wireit-inputex-editor-composable-min.js index 47764281..b6fbd34d 100644 --- a/build/wireit-inputex-editor-composable-min.js +++ b/build/wireit-inputex-editor-composable-min.js @@ -1 +1 @@ -var WireIt={defaultWireClass:"WireIt.BezierWire",wireClassFromXtype:function(A){return this.classFromXtype(A,this.defaultWireClass)},defaultTerminalClass:"WireIt.Terminal",terminalClassFromXtype:function(A){return this.classFromXtype(A,this.defaultTerminalClass)},defaultContainerClass:"WireIt.Container",containerClassFromXtype:function(A){return this.classFromXtype(A,this.defaultContainerClass)},classFromXtype:function(E,C){var D=(E||C).split(".");var A=window;for(var B=0;BQ[0])?1:-1;i=Q[0]+e*M;h=i;H-=j;F+=j}N.fillStyle=this.color;N.beginPath();N.moveTo(Q[0],Q[1]);N.lineTo(i,H);N.lineTo(h,F);N.fill();N.strokeStyle=this.bordercolor;N.lineWidth=this.borderwidth;N.beginPath();N.moveTo(Q[0],Q[1]);N.lineTo(i,H);N.lineTo(h,F);N.lineTo(Q[0],Q[1]);N.stroke()}});WireIt.BezierWire=function(D,C,B,A){WireIt.BezierWire.superclass.constructor.call(this,D,C,B,A)};YAHOO.lang.extend(WireIt.BezierWire,WireIt.Wire,{xtype:"WireIt.BezierWire",coeffMulDirection:100,draw:function(){var O=this.terminal1.getXY();var M=this.terminal2.getXY();var F=this.coeffMulDirection;var B=Math.sqrt(Math.pow(O[0]-M[0],2)+Math.pow(O[1]-M[1],2));if(BK[0]){K[0]=D[0]}if(D[1]>K[1]){K[1]=D[1]}}var G=[4,4];H[0]=H[0]-G[0];H[1]=H[1]-G[1];K[0]=K[0]+G[0];K[1]=K[1]+G[1];var E=Math.abs(K[0]-H[0]);var N=Math.abs(K[1]-H[1]);this.min=H;this.max=K;this.SetCanvasRegion(H[0],H[1],E,N);var J=this.getContext();for(I=0;IR[0]){R[0]=f[0]}if(f[1]>R[1]){R[1]=f[1]}}s[0]=s[0]-F[0];s[1]=s[1]-F[1];R[0]=R[0]+F[0];R[1]=R[1]+F[1];var S=Math.abs(R[0]-s[0]);var Y=Math.abs(R[1]-s[1]);this.min=s;this.max=R;this.SetCanvasRegion(s[0],s[1],S,Y);var h=this.getContext();for(m=0;mV[0])?1:-1;M=V[0]+g*H;K=M;y-=r;x+=r}h.fillStyle=this.color;h.beginPath();h.moveTo(V[0],V[1]);h.lineTo(M,y);h.lineTo(K,x);h.fill();h.strokeStyle=this.bordercolor;h.lineWidth=this.borderwidth;h.beginPath();h.moveTo(V[0],V[1]);h.lineTo(M,y);h.lineTo(K,x);h.lineTo(V[0],V[1]);h.stroke();return[q,n,X,V]}});(function(){var A=YAHOO.util;var C=YAHOO.lang,B="WireIt-";WireIt.TerminalProxy=function(E,D){this.terminal=E;this.termConfig=D||{};this.terminalProxySize=D.terminalProxySize||10;this.fakeTerminal=null;WireIt.TerminalProxy.superclass.constructor.call(this,this.terminal.el,undefined,{dragElId:"WireIt-TerminalProxy",resizeFrame:false,centerFrame:true})};A.DDM.mode=A.DDM.INTERSECT;C.extend(WireIt.TerminalProxy,YAHOO.util.DDProxy,{createFrame:function(){var E=this,D=document.body;if(!D||!D.firstChild){window.setTimeout(function(){E.createFrame()},50);return }var J=this.getDragEl(),I=YAHOO.util.Dom;if(!J){J=document.createElement("div");J.id=this.dragElId;var H=J.style;H.position="absolute";H.visibility="hidden";H.cursor="move";H.border="2px solid #aaa";H.zIndex=999;var F=this.terminalProxySize+"px";H.height=F;H.width=F;var G=document.createElement("div");I.setStyle(G,"height","100%");I.setStyle(G,"width","100%");I.setStyle(G,"background-color","#ccc");I.setStyle(G,"opacity","0");J.appendChild(G);D.insertBefore(J,D.firstChild)}},startDrag:function(){if(this.terminal.nMaxWires==1&&this.terminal.wires.length==1){this.terminal.wires[0].remove()}else{if(this.terminal.wires.length>=this.terminal.nMaxWires){return }}var E=this.terminalProxySize/2;this.fakeTerminal={direction:this.terminal.fakeDirection,pos:[200,200],addWire:function(){},removeWire:function(){},getXY:function(){var G=YAHOO.util.Dom.getElementsByClassName("WireIt-Layer");if(G.length>0){var H=YAHOO.util.Dom.getXY(G[0]);return[this.pos[0]-H[0]+E,this.pos[1]-H[1]+E]}return this.pos}};var F=this.terminal.parentEl.parentNode;if(this.terminal.container){F=this.terminal.container.layer.el}var D=WireIt.wireClassFromXtype(this.terminal.editingWireConfig.xtype);this.editingWire=new D(this.terminal,this.fakeTerminal,F,this.terminal.editingWireConfig);YAHOO.util.Dom.addClass(this.editingWire.element,B+"Wire-editing")},onDrag:function(D){if(!this.editingWire){return }if(this.terminal.container){this.fakeTerminal.pos=[D.clientX+this.terminal.container.layer.el.scrollLeft,D.clientY+this.terminal.container.layer.el.scrollTop]}else{this.fakeTerminal.pos=(YAHOO.env.ua.ie)?[D.clientX,D.clientY]:[D.clientX+window.pageXOffset,D.clientY+window.pageYOffset]}this.editingWire.redraw()},endDrag:function(D){if(this.editingWire){this.editingWire.remove();this.editingWire=null}},onDragEnter:function(F,D){if(!this.editingWire){return }for(var E=0;E0){D.wires[0].remove()}M=new K(F,E,I,F.wireConfig);M.redraw()}else{if(D.wires.length0){this.show()}},scissorClick:function(){this._terminal.removeAllWires();if(this.terminalTimeout){this.terminalTimeout.cancel()}this.hideNow()},show:function(){this.setPosition();this.setStyle("display","");if(WireIt.Scissors.visibleInstance&&WireIt.Scissors.visibleInstance!=this){if(WireIt.Scissors.visibleInstance.terminalTimeout){WireIt.Scissors.visibleInstance.terminalTimeout.cancel()}WireIt.Scissors.visibleInstance.hideNow()}WireIt.Scissors.visibleInstance=this;if(this.terminalTimeout){this.terminalTimeout.cancel()}},hide:function(){this.terminalTimeout=YAHOO.lang.later(700,this,this.hideNow)},hideNow:function(){WireIt.Scissors.visibleInstance=null;this.setStyle("display","none")}})})();(function(){var B=YAHOO.util;var A=B.Event,E=YAHOO.lang,C=B.Dom,D="WireIt-";WireIt.Terminal=function(H,G,F){this.name=null;this.parentEl=H;this.container=F;this.wires=[];this.setOptions(G);this.eventAddWire=new B.CustomEvent("eventAddWire");this.eventRemoveWire=new B.CustomEvent("eventRemoveWire");this.el=null;this.render();if(this.editable){this.dd=new WireIt.TerminalProxy(this,this.ddConfig);this.scissors=new WireIt.Scissors(this)}};WireIt.Terminal.prototype={xtype:"WireIt.Terminal",direction:[0,1],fakeDirection:[0,-1],editable:true,nMaxWires:Infinity,wireConfig:{},editingWireConfig:{},className:"WireIt-Terminal",connectedClassName:"WireIt-Terminal-connected",dropinviteClassName:"WireIt-Terminal-dropinvite",offsetPosition:null,alwaysSrc:false,ddConfig:false,setOptions:function(G){for(var F in G){if(G.hasOwnProperty(F)){this[F]=G[F]}}if(G.direction&&!G.fakeDirection){this.fakeDirection=[-G.direction[0],-G.direction[1]]}if(G.wireConfig&&!G.editingWireConfig){this.editingWireConfig=this.wireConfig}},setDropInvitation:function(F){if(F){C.addClass(this.el,this.dropinviteClassName)}else{C.removeClass(this.el,this.dropinviteClassName)}},render:function(){this.el=WireIt.cn("div",{className:this.className});if(this.name){this.el.title=this.name}this.setPosition(this.offsetPosition);this.parentEl.appendChild(this.el)},setPosition:function(G){if(G){this.el.style.left="";this.el.style.top="";this.el.style.right="";this.el.style.bottom="";if(E.isArray(G)){this.el.style.left=G[0]+"px";this.el.style.top=G[1]+"px"}else{if(E.isObject(G)){for(var F in G){if(G.hasOwnProperty(F)&&G[F]!==""){this.el.style[F]=G[F]+"px"}}}}}},addWire:function(F){this.wires.push(F);C.addClass(this.el,this.connectedClassName);this.eventAddWire.fire(F)},removeWire:function(G){var F=WireIt.indexOf(G,this.wires);if(F!=-1){this.wires[F].destroy();this.wires[F]=null;this.wires=WireIt.compact(this.wires);if(this.wires.length===0){C.removeClass(this.el,this.connectedClassName)}this.eventRemoveWire.fire(G)}},getXY:function(){var G=this.container&&this.container.layer?this.container.layer.el:document.body;var H=this.el;var I=0,F=0;if(H.offsetParent){do{I+=H.offsetLeft;F+=H.offsetTop;H=H.offsetParent}while(!!H&&H!=G)}return[I+15,F+15]},remove:function(){while(this.wires.length>0){this.wires[0].remove()}this.parentEl.removeChild(this.el);A.purgeElement(this.el);if(this.scissors){A.purgeElement(this.scissors.get("element"))}},getConnectedTerminals:function(){var F=[];if(this.wires){for(var G=0;G0){this.wires[0].remove()}}}})();WireIt.util.TerminalInput=function(C,B,A){WireIt.util.TerminalInput.superclass.constructor.call(this,C,B,A)};YAHOO.lang.extend(WireIt.util.TerminalInput,WireIt.Terminal,{xtype:"WireIt.TerminalInput",direction:[0,-1],fakeDirection:[0,1],nMaxWires:1,ddConfig:{type:"input",allowedTypes:["output"]}});WireIt.util.TerminalOutput=function(C,B,A){WireIt.util.TerminalOutput.superclass.constructor.call(this,C,B,A)};YAHOO.lang.extend(WireIt.util.TerminalOutput,WireIt.Terminal,{xtype:"WireIt.TerminalOutput",direction:[0,1],fakeDirection:[0,-1],ddConfig:{type:"output",allowedTypes:["input"]},alwaysSrc:true});WireIt.util.DD=function(D,C,A,B){if(!D){throw new Error("WireIt.util.DD needs at least terminals and id")}this._WireItTerminals=D;WireIt.util.DD.superclass.constructor.call(this,C,A,B)};YAHOO.extend(WireIt.util.DD,YAHOO.util.DD,{onDrag:function(D){var A=YAHOO.lang.isArray(this._WireItTerminals)?this._WireItTerminals:(this._WireItTerminals.isWireItTerminal?[this._WireItTerminals]:[]);for(var C=0;C0){this.removeContainer(this.containers[0])}},removeAllContainers:function(){this.clear()},getWiring:function(){var B;var C={containers:[],wires:[]};for(B=0;B=E&&H=C&&F=E&&H=C&&FF){L[0]=F-M}if(L[1]+J>N){L[1]=N-J}this.layer.el.scrollLeft=L[0];this.layer.el.scrollTop=L[1]},onLayerScroll:function(){if(this.scrollTimer){window.clearTimeout(this.scrollTimer)}var C=this;this.scrollTimer=window.setTimeout(function(){C.draw()},50)},draw:function(){var N=this.getContext();var E=B.getRegion(this.element);var D=E.right-E.left-4;var J=E.bottom-E.top-4;N.clearRect(0,0,D,J);var C=this.layer.el.scrollWidth;var L=this.layer.el.scrollHeight;var F=Math.floor(100*D/C)/100;var M=Math.floor(100*J/L)/100;var O=B.getRegion(this.layer.el);var K=O.right-O.left;var I=O.bottom-O.top;var H=this.layer.el.scrollLeft;var G=this.layer.el.scrollTop;N.strokeStyle="rgb(200, 50, 50)";N.lineWidth=1;N.strokeRect(H*F,G*M,K*F,I*M);N.fillStyle=this.style;N.strokeStyle=this.style;N.lineWidth=this.lineWidth;this.drawContainers(N,F,M);this.drawWires(N,F,M)},drawContainers:function(C,I,F){var H=this.layer.containers;var J=H.length,E,D=WireIt.getIntStyle,G;for(E=0;E";return document.createElement(E)}else{var G=document.createElement(B);this.sn(G,F,C);if(H){G.innerHTML=H}return G}},indexOf:function(F,B,E){var C=B.length,D;if(!A.isFunction(E)){E=function(G,H){return G===H}}for(D=0;D=0)?D.length-1:0])}catch(E){alert(E)}}this.msgEl.innerHTML=F},show:function(){this.divEl.style.display=""},hide:function(){this.divEl.style.display="none"},clear:function(D){this.setValue(C.isUndefined(this.options.value)?"":this.options.value,D)},isEmpty:function(){return this.getValue()===""},setParentField:function(D){this.parentField=D},getParentField:function(){return this.parentField}};inputEx.Field.groupOptions=[{type:"string",label:"Label",name:"label",value:""},{type:"string",label:"Name",name:"name",value:""},{type:"string",label:"Description",name:"description",value:""},{type:"boolean",label:"Required?",name:"required",value:false},{type:"boolean",label:"Show messages",name:"showMsg",value:false}]})();(function(){var A=YAHOO.lang;inputEx.BaseField=inputEx.Field;inputEx.Field=function(B){inputEx.Field.superclass.constructor.call(this,B)};A.extend(inputEx.Field,inputEx.BaseField,{setOptions:function(B){inputEx.Field.superclass.setOptions.call(this,B);this.options.wirable=A.isUndefined(B.wirable)?false:B.wirable;this.options.container=B.container;B.container=null},render:function(){inputEx.Field.superclass.render.call(this);if(this.options.wirable){this.renderTerminal()}},renderTerminal:function(){var B=inputEx.cn("div",{className:"WireIt-InputExTerminal"});this.divEl.insertBefore(B,this.fieldContainer);this.terminal=new WireIt.Terminal(B,{name:this.options.name,direction:[-1,0],fakeDirection:[0,1],ddConfig:{type:"input",allowedTypes:["output"]},nMaxWires:1},this.options.container);if(this.options.container){this.options.container.terminals.push(this.terminal)}this.terminal.eventAddWire.subscribe(this.onAddWire,this,true);this.terminal.eventRemoveWire.subscribe(this.onRemoveWire,this,true)},onAddWire:function(B,C){this.options.container.onAddWire(B,C);this.disable();this.el.value="[wired]"},onRemoveWire:function(B,C){this.options.container.onRemoveWire(B,C);this.enable();this.el.value=""}});inputEx.Field.groupOptions=inputEx.BaseField.groupOptions.concat([{type:"boolean",label:"Wirable",name:"wirable",value:false}])})();WireIt.FormContainer=function(A,B){WireIt.FormContainer.superclass.constructor.call(this,A,B)};YAHOO.lang.extend(WireIt.FormContainer,WireIt.Container,{xtype:"WireIt.FormContainer",fields:[],legend:null,collapsible:false,render:function(){WireIt.FormContainer.superclass.render.call(this);this.renderForm()},renderForm:function(){this.setBackReferenceOnFieldOptionsRecursively(this.fields);var A={parentEl:this.bodyEl,fields:this.fields,legend:this.legend,collapsible:this.collapsible};this.form=new inputEx.Group(A);if(this.form.legend){YAHOO.util.Event.addListener(this.form.legend,"click",function(){var C=this;for(var B=0;B0){this.inputs[0].focus()}},getFieldByName:function(D){if(!this.inputsNames.hasOwnProperty(D)){return null}return this.inputsNames[D]},onChange:function(E,F){var G=F[0];var D=F[1];this.runInteractions(D,G);this.fireUpdatedEvt()},runAction:function(D,F){var E=this.getFieldByName(D.name);if(YAHOO.lang.isFunction(E[D.action])){E[D.action].call(E)}else{if(YAHOO.lang.isFunction(D.action)){D.action.call(E,F)}else{throw new Error("action "+D.action+" is not a valid action for field "+D.name)}}},runInteractions:function(E,J){var G=inputEx.indexOf(E,this.inputs);var I=this.options.fields[G];if(YAHOO.lang.isUndefined(I.interactions)){return }var K=I.interactions;for(var H=0;H=this.options.minLength}return D},disable:function(){this.el.disabled=true},enable:function(){this.el.disabled=false},focus:function(){if(!!this.el&&!C.isUndefined(this.el.focus)){this.el.focus()}},getStateString:function(D){if(D==inputEx.stateInvalid&&this.options.minLength&&this.el.value.length=0&&C.position=0){C=inputEx.indexOf(this.el.childNodes[this.el.selectedIndex],this.choicesList,function(E,D){return E===D.node});return this.choicesList[C].value}else{return""}},disable:function(){this.el.disabled=true},enable:function(){this.el.disabled=false},createChoiceNode:function(C){return inputEx.cn("option",{value:C.value},null,C.label)},removeChoiceNode:function(C){this.el.removeChild(C)},disableChoiceNode:function(C){C.disabled="disabled"},enableChoiceNode:function(C){C.removeAttribute("disabled")},appendChoiceNode:function(E,C){var F,D;F=0;for(D=0;D@"+B[0]+" ?";return false}}}}return true},validate:function(){var A=inputEx.EmailField.superclass.validate.call(this);if(!!this.options.fixdomain){this.options.messages.invalid=inputEx.messages.invalidEmail;return A&&this.validateDomain()}else{return A}},getValue:function(){var A;A=inputEx.EmailField.superclass.getValue.call(this);return inputEx.removeAccents(A.toLowerCase())}});inputEx.messages.invalidEmail="Invalid email, ex: sample@test.com";inputEx.messages.didYouMeant="Did you mean : ";inputEx.registerType("email",inputEx.EmailField,[])})();(function(){var A=YAHOO.lang;inputEx.UrlField=function(B){inputEx.UrlField.superclass.constructor.call(this,B)};A.extend(inputEx.UrlField,inputEx.StringField,{setOptions:function(B){inputEx.UrlField.superclass.setOptions.call(this,B);this.options.className=B.className?B.className:"inputEx-Field inputEx-UrlField";this.options.messages.invalid=inputEx.messages.invalidUrl;this.options.favicon=A.isUndefined(B.favicon)?(("https:"==document.location.protocol)?false:true):B.favicon;this.options.size=B.size||50;this.options.regexp=inputEx.regexps.url},render:function(){inputEx.UrlField.superclass.render.call(this);this.el.size=this.options.size;if(!this.options.favicon){YAHOO.util.Dom.addClass(this.el,"nofavicon")}if(this.options.favicon){this.favicon=inputEx.cn("img",{src:inputEx.spacerUrl});this.fieldContainer.insertBefore(this.favicon,this.fieldContainer.childNodes[0]);YAHOO.util.Event.addListener(this.favicon,"click",function(){this.focus()},this,true)}},setClassFromState:function(){inputEx.UrlField.superclass.setClassFromState.call(this);if(this.options.favicon){this.updateFavicon((this.previousState==inputEx.stateValid)?this.getValue():null)}},updateFavicon:function(C){var B=C?C.match(/https?:\/\/[^\/]*/)+"/favicon.ico":inputEx.spacerUrl;if(B!=this.favicon.src){inputEx.sn(this.favicon,null,{visibility:"hidden"});this.favicon.src=B;if(this.timer){clearTimeout(this.timer)}var D=this;this.timer=setTimeout(function(){D.displayFavicon()},1000)}},displayFavicon:function(){inputEx.sn(this.favicon,null,{visibility:(this.favicon.naturalWidth!=0)?"visible":"hidden"})}});inputEx.messages.invalidUrl="Invalid URL, ex: http://www.test.com";inputEx.registerType("url",inputEx.UrlField,[{type:"boolean",label:"Display favicon",name:"favicon",value:true}])})();(function(){var C=YAHOO.lang,A=YAHOO.util.Event,B=YAHOO.util.Dom;inputEx.ListField=function(D){this.subFields=[];inputEx.ListField.superclass.constructor.call(this,D)};C.extend(inputEx.ListField,inputEx.Field,{setOptions:function(D){inputEx.ListField.superclass.setOptions.call(this,D);this.options.className=D.className?D.className:"inputEx-Field inputEx-ListField";this.options.sortable=C.isUndefined(D.sortable)?false:D.sortable;this.options.elementType=D.elementType||{type:"string"};this.options.useButtons=C.isUndefined(D.useButtons)?false:D.useButtons;this.options.unique=C.isUndefined(D.unique)?false:D.unique;this.options.listAddLabel=D.listAddLabel||inputEx.messages.listAddLink;this.options.listRemoveLabel=D.listRemoveLabel||inputEx.messages.listRemoveLink;this.options.maxItems=D.maxItems;this.options.minItems=D.minItems},renderComponent:function(){if(this.options.useButtons){this.addButton=inputEx.cn("img",{src:inputEx.spacerUrl,className:"inputEx-ListField-addButton"});this.fieldContainer.appendChild(this.addButton)}this.fieldContainer.appendChild(inputEx.cn("span",null,{marginLeft:"4px"},this.options.listLabel));this.childContainer=inputEx.cn("div",{className:"inputEx-ListField-childContainer"});this.fieldContainer.appendChild(this.childContainer);if(!this.options.useButtons){this.addButton=inputEx.cn("a",{className:"inputEx-List-link"},null,this.options.listAddLabel);this.fieldContainer.appendChild(this.addButton)}},initEvents:function(){A.addListener(this.addButton,"click",this.onAddButton,this,true)},validate:function(){var F=true;var J={};var D=this.subFields.length;if(C.isNumber(this.options.minItems)&&Dthis.options.maxItems){F=false}for(var G=0;G0){for(F=0;F=this.options.maxItems){return }var D=this.addElement();D.focus();this.fireUpdatedEvt()},renderSubField:function(K){var G=inputEx.cn("div"),E;if(this.options.useButtons){E=inputEx.cn("img",{src:inputEx.spacerUrl,className:"inputEx-ListField-delButton"});A.addListener(E,"click",this.onDelete,this,true);G.appendChild(E)}var J=C.merge({},this.options.elementType);if(C.isObject(J.inputParams)&&!C.isUndefined(K)){J.inputParams.value=K}else{if(!C.isUndefined(K)){J.value=K}}var H=inputEx(J,this);var F=H.getEl();B.setStyle(F,"margin-left","4px");B.setStyle(F,"float","left");G.appendChild(F);H.updatedEvt.subscribe(this.onChange,this,true);if(this.options.sortable){var I=inputEx.cn("div",{className:"inputEx-ListField-Arrow inputEx-ListField-ArrowUp"});A.addListener(I,"click",this.onArrowUp,this,true);var D=inputEx.cn("div",{className:"inputEx-ListField-Arrow inputEx-ListField-ArrowDown"});A.addListener(D,"click",this.onArrowDown,this,true);G.appendChild(I);G.appendChild(D)}if(!this.options.useButtons){E=inputEx.cn("a",{className:"inputEx-List-link"},null,this.options.listRemoveLabel);A.addListener(E,"click",this.onDelete,this,true);G.appendChild(E)}G.appendChild(inputEx.cn("div",null,{clear:"both"}));this.childContainer.appendChild(G);return H},onArrowUp:function(J){var G=A.getTarget(J).parentNode;var E=null;var F=-1;for(var H=1;Hthis.options.maxLength){return inputEx.messages.stringTooLong[0]+this.options.maxLength+inputEx.messages.stringTooLong[1]}}return inputEx.Textarea.superclass.getStateString.call(this,B)},insert:function(E){var D,C,B;if(document.selection){this.el.focus();D=document.selection.createRange();D.text=E}else{if(this.el.selectionStart||this.el.selectionStart=="0"){C=this.el.selectionStart;B=this.el.selectionEnd;this.el.value=this.el.value.substring(0,C)+E+this.el.value.substring(B,this.el.value.length)}else{this.el.value+=E}}}});inputEx.messages.stringTooLong=["This field should contain at most "," numbers or characters"];inputEx.registerType("text",inputEx.Textarea,[{type:"integer",label:"Rows",name:"rows",value:6},{type:"integer",label:"Cols",name:"cols",value:23}])})();(function(){var D=YAHOO.lang,A=YAHOO.util.Event,B=YAHOO.util.Dom,C="inputEx-InPlaceEdit-";inputEx.InPlaceEdit=function(E){inputEx.InPlaceEdit.superclass.constructor.call(this,E)};D.extend(inputEx.InPlaceEdit,inputEx.Field,{setOptions:function(E){inputEx.InPlaceEdit.superclass.setOptions.call(this,E);this.options.visu=E.visu;this.options.editorField=E.editorField;this.options.buttonTypes=E.buttonTypes||{ok:"submit",cancel:"link"};this.options.animColors=E.animColors||null},renderComponent:function(){this.renderVisuDiv();this.renderEditor()},renderEditor:function(){this.editorContainer=inputEx.cn("div",{className:C+"editor"},{display:"none"});this.editorField=inputEx(this.options.editorField,this);var E=this.editorField.getEl();this.editorContainer.appendChild(E);B.addClass(E,C+"editorDiv");this.okButton=new inputEx.widget.Button({type:this.options.buttonTypes.ok,parentEl:this.editorContainer,value:inputEx.messages.okEditor,className:"inputEx-Button "+C+"OkButton",onClick:{fn:this.onOkEditor,scope:this}});this.cancelLink=new inputEx.widget.Button({type:this.options.buttonTypes.cancel,parentEl:this.editorContainer,value:inputEx.messages.cancelEditor,className:"inputEx-Button "+C+"CancelLink",onClick:{fn:this.onCancelEditor,scope:this}});this.editorContainer.appendChild(inputEx.cn("div",null,{clear:"both"}));this.fieldContainer.appendChild(this.editorContainer)},onVisuMouseOver:function(E){if(this.colorAnim){this.colorAnim.stop(true)}inputEx.sn(this.formattedContainer,null,{backgroundColor:this.options.animColors.from})},onVisuMouseOut:function(E){if(this.colorAnim){this.colorAnim.stop(true)}this.colorAnim=new YAHOO.util.ColorAnim(this.formattedContainer,{backgroundColor:this.options.animColors},1);this.colorAnim.onComplete.subscribe(function(){B.setStyle(this.formattedContainer,"background-color","")},this,true);this.colorAnim.animate()},renderVisuDiv:function(){this.formattedContainer=inputEx.cn("div",{className:"inputEx-InPlaceEdit-visu"});if(D.isFunction(this.options.formatDom)){this.formattedContainer.appendChild(this.options.formatDom(this.options.value))}else{if(D.isFunction(this.options.formatValue)){this.formattedContainer.innerHTML=this.options.formatValue(this.options.value)}else{this.formattedContainer.innerHTML=D.isUndefined(this.options.value)?inputEx.messages.emptyInPlaceEdit:this.options.value}}this.fieldContainer.appendChild(this.formattedContainer)},initEvents:function(){A.addListener(this.formattedContainer,"click",this.openEditor,this,true);if(this.options.animColors){A.addListener(this.formattedContainer,"mouseover",this.onVisuMouseOver,this,true);A.addListener(this.formattedContainer,"mouseout",this.onVisuMouseOut,this,true)}if(this.editorField.el){A.addListener(this.editorField.el,"keyup",this.onKeyUp,this,true);A.addListener(this.editorField.el,"keydown",this.onKeyDown,this,true)}},onKeyUp:function(E){if(E.keyCode==13){this.onOkEditor(E)}if(E.keyCode==27){this.onCancelEditor(E)}},onKeyDown:function(E){if(E.keyCode==9){this.onOkEditor(E)}},onOkEditor:function(G){A.stopEvent(G);var F=this.editorField.getValue();this.setValue(F);this.editorContainer.style.display="none";this.formattedContainer.style.display="";var E=this;setTimeout(function(){E.updatedEvt.fire(F)},50)},onCancelEditor:function(E){A.stopEvent(E);this.editorContainer.style.display="none";this.formattedContainer.style.display=""},openEditor:function(){var E=this.getValue();this.editorContainer.style.display="";this.formattedContainer.style.display="none";if(!D.isUndefined(E)){this.editorField.setValue(E)}this.editorField.focus();if(this.editorField.el&&D.isFunction(this.editorField.el.setSelectionRange)&&(!!E&&!!E.length)){this.editorField.el.setSelectionRange(0,E.length)}},getValue:function(){var E=(this.editorContainer.style.display=="");return E?this.editorField.getValue():this.value},setValue:function(F,E){this.value=F;if(D.isUndefined(F)||F==""){inputEx.renderVisu(this.options.visu,inputEx.messages.emptyInPlaceEdit,this.formattedContainer)}else{inputEx.renderVisu(this.options.visu,this.value,this.formattedContainer)}if(this.editorContainer.style.display==""){this.editorField.setValue(F)}inputEx.InPlaceEdit.superclass.setValue.call(this,F,E)},close:function(){this.editorContainer.style.display="none";this.formattedContainer.style.display=""}});inputEx.messages.emptyInPlaceEdit="(click to edit)";inputEx.messages.cancelEditor="cancel";inputEx.messages.okEditor="Ok";inputEx.registerType("inplaceedit",inputEx.InPlaceEdit,[{type:"type",label:"Editor",name:"editorField"}])})();(function(){var A=YAHOO.util.Event,B=YAHOO.util.Dom,C=YAHOO.lang;inputEx.TypeField=function(D){inputEx.TypeField.superclass.constructor.call(this,D);this.updateFieldValue()};C.extend(inputEx.TypeField,inputEx.Field,{renderComponent:function(){this.fieldValueWrapper=inputEx.cn("div",{className:"inputEx-TypeField-FieldValueWrapper"});this.fieldContainer.appendChild(this.fieldValueWrapper);this.propertyPanel=inputEx.cn("div",{className:"inputEx-TypeField-PropertiesPanel"},{display:"none"});var D=[];for(var E in inputEx.typeClasses){if(inputEx.typeClasses.hasOwnProperty(E)){D.push({value:E})}}this.typeSelect=new inputEx.SelectField({label:"Type",choices:D,parentEl:this.propertyPanel});this.groupOptionsWrapper=inputEx.cn("div");this.propertyPanel.appendChild(this.groupOptionsWrapper);this.button=inputEx.cn("div",{className:"inputEx-TypeField-EditButton"});this.button.appendChild(this.propertyPanel);this.fieldContainer.appendChild(this.button);this.rebuildGroupOptions()},initEvents:function(){inputEx.TypeField.superclass.initEvents.call(this);A.addListener(this.button,"click",this.onTogglePropertiesPanel,this,true);A.addListener(this.propertyPanel,"click",function(D){A.stopPropagation(D)},this,true);this.typeSelect.updatedEvt.subscribe(this.rebuildGroupOptions,this,true)},rebuildGroupOptions:function(){try{var D=null;if(this.group){D=this.group.getValue();this.group.close();this.group.destroy();this.groupOptionsWrapper.innerHTML=""}var G=inputEx.getFieldClass(this.typeSelect.getValue());var E={fields:G.groupOptions,parentEl:this.groupOptionsWrapper};this.group=new inputEx.Group(E);if(D){this.group.setValue({name:D.name,label:D.label})}this.group.updatedEvt.subscribe(this.onChangeGroupOptions,this,true);this.updateFieldValue()}catch(F){if(YAHOO.lang.isObject(window.console)&&YAHOO.lang.isFunction(window.console["log"])){console.log("inputEx.TypeField.rebuildGroupOptions: ",F)}}},onTogglePropertiesPanel:function(){if(this.propertyPanel.style.display=="none"){this.propertyPanel.style.display="";B.addClass(this.button,"opened")}else{this.propertyPanel.style.display="none";B.removeClass(this.button,"opened")}},onChangeGroupOptions:function(){this.updateFieldValue();this.fireUpdatedEvt()},updateFieldValue:function(){try{if(this.fieldValue){this.fieldValue.close();this.fieldValue.destroy();delete this.fieldValue;this.fieldValueWrapper.innerHTML=""}var E=this.group.getValue();E.type=this.getValue().type;E.parentEl=this.fieldValueWrapper;this.fieldValue=inputEx(E,this);this.fieldValue.updatedEvt.subscribe(this.fireUpdatedEvt,this,true)}catch(D){console.log("Error while updateFieldValue",D.message)}},setValue:function(E,D){this.typeSelect.setValue(E.type,false);this.rebuildGroupOptions();if(C.isObject(E.inputParams)){this.group.setValue(E.inputParams,false)}else{this.group.setValue(E,false)}this.updateFieldValue();if(C.isObject(E.inputParams)&&!C.isUndefined(E.inputParams.value)){this.fieldValue.setValue(E.inputParams.value)}else{if(!C.isUndefined(E.value)){this.fieldValue.setValue(E.value)}}if(D!==false){this.fireUpdatedEvt()}},getValue:function(){var I=function(K,N){var J,L=K.groupOptions.length,M;for(J=0;J");this.alertPanel.render(document.body);B.addListener("alertPanelButton","click",function(){this.alertPanel.hide()},this,true)},renderButtons:function(){var I=D.get("toolbar");var H=new E.Button({label:"New",id:"WiringEditor-newButton",container:I});H.on("click",this.onNew,this,true);var K=new E.Button({label:"Load",id:"WiringEditor-loadButton",container:I});K.on("click",this.load,this,true);var J=new E.Button({label:"Save",id:"WiringEditor-saveButton",container:I});J.on("click",this.onSave,this,true);var M=new E.Button({label:"Delete",id:"WiringEditor-deleteButton",container:I});M.on("click",this.onDelete,this,true);var L=new E.Button({label:"Help",id:"WiringEditor-helpButton",container:I});L.on("click",this.onHelp,this,true)},renderSavedStatus:function(){this.savedStatusEl=WireIt.cn("div",{className:"savedStatus",title:"Not saved"},{display:"none"},"*");D.get("toolbar").appendChild(this.savedStatusEl)},onSave:function(){this.save()},save:function(){},alert:function(H){if(!this.alertPanel){this.renderAlertPanel()}D.get("alertPanelBody").innerHTML=H;this.alertPanel.show()},onHelp:function(){this.helpPanel.show()},renderPropertiesAccordion:function(){this.accordionView=new YAHOO.widget.AccordionView("accordionView",this.options.accordionViewParams)},renderPropertiesForm:function(){this.propertiesForm=new inputEx.Group({parentEl:YAHOO.util.Dom.get("propertiesForm"),fields:this.options.propertiesFields});this.propertiesForm.updatedEvt.subscribe(function(){this.markUnsaved()},this,true)},markSaved:function(){this.savedStatusEl.style.display="none"},markUnsaved:function(){this.savedStatusEl.style.display=""},isSaved:function(){return(this.savedStatusEl.style.display=="none")}}})();(function(){var A=YAHOO.util,C=YAHOO.lang,B=A.Dom;WireIt.ModuleProxy=function(E,D){this._WiringEditor=D;WireIt.ModuleProxy.superclass.constructor.call(this,E,"module",{dragElId:"moduleProxy"});this.isTarget=false};C.extend(WireIt.ModuleProxy,YAHOO.util.DDProxy,{startDrag:function(F){WireIt.ModuleProxy.superclass.startDrag.call(this,F);var D=this.getDragEl(),E=this.getEl();D.innerHTML=E.innerHTML;D.className=E.className},endDrag:function(D){},onDragDrop:function(H,F){var I=F[0],G=F[0]._layer,E=this.getDragEl(),J=B.getXY(E),D=B.getXY(G.el);this._WiringEditor.addModule(this._module,[J[0]-D[0]+G.el.scrollLeft,J[1]-D[1]+G.el.scrollTop])}})})();(function(){var C=YAHOO.util,F=YAHOO.lang;var B=C.Event,D=C.Dom,A=C.Connect,E=YAHOO.widget;WireIt.WiringEditor=function(G){this.modulesByName={};WireIt.WiringEditor.superclass.constructor.call(this,G);if(this.adapter.init&&YAHOO.lang.isFunction(this.adapter.init)){this.adapter.init()}this.load()};F.extend(WireIt.WiringEditor,WireIt.BaseEditor,{setOptions:function(J){WireIt.WiringEditor.superclass.setOptions.call(this,J);this.modules=J.modules||[];for(var K=0;K"});this.modulesAccordionView.openPanel(this.modulesAccordionView._panels.length-1);I=D.get("module-category-"+J)}I.appendChild(L)}catch(G){console.log(G)}},getCurrentGrouper:function(G){return G.currentGrouper},addModule:function(J,M){try{var L=J.container;L.position=M;L.title=J.name;var H=this;L.getGrouper=function(){return H.getCurrentGrouper(H)};var G=this.layer.addContainer(L);var K=J.category||"main";D.addClass(G.el,"WiringEditor-module-category-"+K.replace(/ /g,"-"));D.addClass(G.el,"WiringEditor-module-"+J.name.replace(/ /g,"-"))}catch(I){this.alert("Error Layer.addContainer: "+I.message);if(window.console&&YAHOO.lang.isFunction(console.log)){console.log(I)}}},save:function(){var G=this.getValue();if(G.name===""){this.alert("Please choose a name");return }this.tempSavedWiring={name:G.name,working:G.working,language:this.options.languageName};this.adapter.saveWiring(this.tempSavedWiring,{success:this.saveModuleSuccess,failure:this.saveModuleFailure,scope:this})},saveModuleSuccess:function(G){this.markSaved();this.alert("Saved !")},saveModuleFailure:function(G){this.alert("Unable to save the wiring : "+G)},onNew:function(){if(!this.isSaved()){if(!confirm("Warning: Your work is not saved yet ! Press ok to continue anyway.")){return }}this.preventLayerChangedEvent=true;this.layer.clear();this.propertiesForm.clear(false);this.markSaved();this.preventLayerChangedEvent=false},onDelete:function(){if(confirm("Are you sure you want to delete this wiring ?")){var G=this.getValue();this.adapter.deleteWiring({name:G.name,language:this.options.languageName},{success:function(H){this.onNew();this.alert("Deleted !")},failure:function(H){this.alert("Unable to delete wiring: "+H)},scope:this})}},renderLoadPanel:function(){if(!this.loadPanel){this.loadPanel=new E.Panel("WiringEditor-loadPanel",{fixedcenter:true,draggable:true,width:"500px",visible:false,modal:true});this.loadPanel.setHeader("Select the wiring to load");this.loadPanel.setBody("Filter:
");this.loadPanel.render(document.body);B.onAvailable("loadFilter",function(){B.addListener("loadFilter","keyup",this.inputFilterTimer,this,true)},this,true)}},inputFilterTimer:function(){if(this.inputFilterTimeout){clearTimeout(this.inputFilterTimeout);this.inputFilterTimeout=null}var G=this;this.inputFilterTimeout=setTimeout(function(){G.updateLoadPanelList(D.get("loadFilter").value)},500)},updateLoadPanelList:function(I){var K=WireIt.cn("ul");if(F.isArray(this.pipes)){for(var H=0;HQ[0])?1:-1;i=Q[0]+e*M;h=i;H-=j;F+=j}N.fillStyle=this.color;N.beginPath();N.moveTo(Q[0],Q[1]);N.lineTo(i,H);N.lineTo(h,F);N.fill();N.strokeStyle=this.bordercolor;N.lineWidth=this.borderwidth;N.beginPath();N.moveTo(Q[0],Q[1]);N.lineTo(i,H);N.lineTo(h,F);N.lineTo(Q[0],Q[1]);N.stroke()}});WireIt.BezierWire=function(D,C,B,A){WireIt.BezierWire.superclass.constructor.call(this,D,C,B,A)};YAHOO.lang.extend(WireIt.BezierWire,WireIt.Wire,{xtype:"WireIt.BezierWire",coeffMulDirection:100,draw:function(){var O=this.terminal1.getXY();var M=this.terminal2.getXY();var F=this.coeffMulDirection;var B=Math.sqrt(Math.pow(O[0]-M[0],2)+Math.pow(O[1]-M[1],2));if(BK[0]){K[0]=D[0]}if(D[1]>K[1]){K[1]=D[1]}}var G=[4,4];H[0]=H[0]-G[0];H[1]=H[1]-G[1];K[0]=K[0]+G[0];K[1]=K[1]+G[1];var E=Math.abs(K[0]-H[0]);var N=Math.abs(K[1]-H[1]);this.min=H;this.max=K;this.SetCanvasRegion(H[0],H[1],E,N);var J=this.getContext();for(I=0;IR[0]){R[0]=f[0]}if(f[1]>R[1]){R[1]=f[1]}}s[0]=s[0]-F[0];s[1]=s[1]-F[1];R[0]=R[0]+F[0];R[1]=R[1]+F[1];var S=Math.abs(R[0]-s[0]);var Y=Math.abs(R[1]-s[1]);this.min=s;this.max=R;this.SetCanvasRegion(s[0],s[1],S,Y);var h=this.getContext();for(m=0;mV[0])?1:-1;M=V[0]+g*H;K=M;y-=r;x+=r}h.fillStyle=this.color;h.beginPath();h.moveTo(V[0],V[1]);h.lineTo(M,y);h.lineTo(K,x);h.fill();h.strokeStyle=this.bordercolor;h.lineWidth=this.borderwidth;h.beginPath();h.moveTo(V[0],V[1]);h.lineTo(M,y);h.lineTo(K,x);h.lineTo(V[0],V[1]);h.stroke();return[q,n,X,V]}});(function(){var A=YAHOO.util;var C=YAHOO.lang,B="WireIt-";WireIt.TerminalProxy=function(E,D){this.terminal=E;this.termConfig=D||{};this.terminalProxySize=D.terminalProxySize||10;this.fakeTerminal=null;WireIt.TerminalProxy.superclass.constructor.call(this,this.terminal.el,undefined,{dragElId:"WireIt-TerminalProxy",resizeFrame:false,centerFrame:true})};A.DDM.mode=A.DDM.INTERSECT;C.extend(WireIt.TerminalProxy,YAHOO.util.DDProxy,{createFrame:function(){var E=this,D=document.body;if(!D||!D.firstChild){window.setTimeout(function(){E.createFrame()},50);return }var J=this.getDragEl(),I=YAHOO.util.Dom;if(!J){J=document.createElement("div");J.id=this.dragElId;var H=J.style;H.position="absolute";H.visibility="hidden";H.cursor="move";H.border="2px solid #aaa";H.zIndex=999;var F=this.terminalProxySize+"px";H.height=F;H.width=F;var G=document.createElement("div");I.setStyle(G,"height","100%");I.setStyle(G,"width","100%");I.setStyle(G,"background-color","#ccc");I.setStyle(G,"opacity","0");J.appendChild(G);D.insertBefore(J,D.firstChild)}},startDrag:function(){if(this.terminal.nMaxWires==1&&this.terminal.wires.length==1){this.terminal.wires[0].remove()}else{if(this.terminal.wires.length>=this.terminal.nMaxWires){return }}var E=this.terminalProxySize/2;this.fakeTerminal={direction:this.terminal.fakeDirection,pos:[200,200],addWire:function(){},removeWire:function(){},getXY:function(){var G=YAHOO.util.Dom.getElementsByClassName("WireIt-Layer");if(G.length>0){var H=YAHOO.util.Dom.getXY(G[0]);return[this.pos[0]-H[0]+E,this.pos[1]-H[1]+E]}return this.pos}};var F=this.terminal.parentEl.parentNode;if(this.terminal.container){F=this.terminal.container.layer.el}var D=WireIt.wireClassFromXtype(this.terminal.editingWireConfig.xtype);this.editingWire=new D(this.terminal,this.fakeTerminal,F,this.terminal.editingWireConfig);YAHOO.util.Dom.addClass(this.editingWire.element,B+"Wire-editing")},onDrag:function(D){if(!this.editingWire){return }if(this.terminal.container){this.fakeTerminal.pos=[D.clientX+this.terminal.container.layer.el.scrollLeft,D.clientY+this.terminal.container.layer.el.scrollTop]}else{this.fakeTerminal.pos=(YAHOO.env.ua.ie)?[D.clientX,D.clientY]:[D.clientX+window.pageXOffset,D.clientY+window.pageYOffset]}this.editingWire.redraw()},endDrag:function(D){if(this.editingWire){this.editingWire.remove();this.editingWire=null}},onDragEnter:function(F,D){if(!this.editingWire){return }for(var E=0;E0){D.wires[0].remove()}M=new K(F,E,I,F.wireConfig);M.redraw()}else{if(D.wires.length0){this.show()}},scissorClick:function(){this._terminal.removeAllWires();if(this.terminalTimeout){this.terminalTimeout.cancel()}this.hideNow()},show:function(){this.setPosition();this.setStyle("display","");if(WireIt.Scissors.visibleInstance&&WireIt.Scissors.visibleInstance!=this){if(WireIt.Scissors.visibleInstance.terminalTimeout){WireIt.Scissors.visibleInstance.terminalTimeout.cancel()}WireIt.Scissors.visibleInstance.hideNow()}WireIt.Scissors.visibleInstance=this;if(this.terminalTimeout){this.terminalTimeout.cancel()}},hide:function(){this.terminalTimeout=YAHOO.lang.later(700,this,this.hideNow)},hideNow:function(){WireIt.Scissors.visibleInstance=null;this.setStyle("display","none")}})})();(function(){var B=YAHOO.util;var A=B.Event,E=YAHOO.lang,C=B.Dom,D="WireIt-";WireIt.Terminal=function(H,G,F){this.name=null;this.parentEl=H;this.container=F;this.wires=[];this.setOptions(G);this.eventAddWire=new B.CustomEvent("eventAddWire");this.eventRemoveWire=new B.CustomEvent("eventRemoveWire");this.el=null;this.render();if(this.editable){this.dd=new WireIt.TerminalProxy(this,this.ddConfig);this.scissors=new WireIt.Scissors(this)}};WireIt.Terminal.prototype={xtype:"WireIt.Terminal",direction:[0,1],fakeDirection:[0,-1],editable:true,nMaxWires:Infinity,wireConfig:{},editingWireConfig:{},className:"WireIt-Terminal",connectedClassName:"WireIt-Terminal-connected",dropinviteClassName:"WireIt-Terminal-dropinvite",offsetPosition:null,alwaysSrc:false,ddConfig:false,setOptions:function(G){for(var F in G){if(G.hasOwnProperty(F)){this[F]=G[F]}}if(G.direction&&!G.fakeDirection){this.fakeDirection=[-G.direction[0],-G.direction[1]]}if(G.wireConfig&&!G.editingWireConfig){this.editingWireConfig=this.wireConfig}},setDropInvitation:function(F){if(F){C.addClass(this.el,this.dropinviteClassName)}else{C.removeClass(this.el,this.dropinviteClassName)}},render:function(){this.el=WireIt.cn("div",{className:this.className});if(this.name){this.el.title=this.name}this.setPosition(this.offsetPosition);this.parentEl.appendChild(this.el)},setPosition:function(G){if(G){this.el.style.left="";this.el.style.top="";this.el.style.right="";this.el.style.bottom="";if(E.isArray(G)){this.el.style.left=G[0]+"px";this.el.style.top=G[1]+"px"}else{if(E.isObject(G)){for(var F in G){if(G.hasOwnProperty(F)&&G[F]!==""){this.el.style[F]=G[F]+"px"}}}}}},addWire:function(F){this.wires.push(F);C.addClass(this.el,this.connectedClassName);this.eventAddWire.fire(F)},removeWire:function(G){var F=WireIt.indexOf(G,this.wires);if(F!=-1){this.wires[F].destroy();this.wires[F]=null;this.wires=WireIt.compact(this.wires);if(this.wires.length===0){C.removeClass(this.el,this.connectedClassName)}this.eventRemoveWire.fire(G)}},getXY:function(){var G=this.container&&this.container.layer?this.container.layer.el:document.body;var H=this.el;var I=0,F=0;if(H.offsetParent){do{I+=H.offsetLeft;F+=H.offsetTop;H=H.offsetParent}while(!!H&&H!=G)}return[I+15,F+15]},remove:function(){while(this.wires.length>0){this.wires[0].remove()}this.parentEl.removeChild(this.el);A.purgeElement(this.el);if(this.scissors){A.purgeElement(this.scissors.get("element"))}},getConnectedTerminals:function(){var F=[];if(this.wires){for(var G=0;G0){this.wires[0].remove()}}}})();WireIt.util.TerminalInput=function(C,B,A){WireIt.util.TerminalInput.superclass.constructor.call(this,C,B,A)};YAHOO.lang.extend(WireIt.util.TerminalInput,WireIt.Terminal,{xtype:"WireIt.TerminalInput",direction:[0,-1],fakeDirection:[0,1],nMaxWires:1,ddConfig:{type:"input",allowedTypes:["output"]}});WireIt.util.TerminalOutput=function(C,B,A){WireIt.util.TerminalOutput.superclass.constructor.call(this,C,B,A)};YAHOO.lang.extend(WireIt.util.TerminalOutput,WireIt.Terminal,{xtype:"WireIt.TerminalOutput",direction:[0,1],fakeDirection:[0,-1],ddConfig:{type:"output",allowedTypes:["input"]},alwaysSrc:true});WireIt.util.DD=function(D,C,A,B){if(!D){throw new Error("WireIt.util.DD needs at least terminals and id")}this._WireItTerminals=D;WireIt.util.DD.superclass.constructor.call(this,C,A,B)};YAHOO.extend(WireIt.util.DD,YAHOO.util.DD,{onDrag:function(D){var A=YAHOO.lang.isArray(this._WireItTerminals)?this._WireItTerminals:(this._WireItTerminals.isWireItTerminal?[this._WireItTerminals]:[]);for(var C=0;C0){this.removeContainer(this.containers[0])}},removeAllContainers:function(){this.clear()},getWiring:function(){var B;var C={containers:[],wires:[]};for(B=0;B=E&&H=C&&F=E&&H=C&&FF){L[0]=F-M}if(L[1]+J>N){L[1]=N-J}this.layer.el.scrollLeft=L[0];this.layer.el.scrollTop=L[1]},onLayerScroll:function(){if(this.scrollTimer){window.clearTimeout(this.scrollTimer)}var C=this;this.scrollTimer=window.setTimeout(function(){C.draw()},50)},draw:function(){var N=this.getContext();var E=B.getRegion(this.element);var D=E.right-E.left-4;var J=E.bottom-E.top-4;N.clearRect(0,0,D,J);var C=this.layer.el.scrollWidth;var L=this.layer.el.scrollHeight;var F=Math.floor(100*D/C)/100;var M=Math.floor(100*J/L)/100;var O=B.getRegion(this.layer.el);var K=O.right-O.left;var I=O.bottom-O.top;var H=this.layer.el.scrollLeft;var G=this.layer.el.scrollTop;N.strokeStyle="rgb(200, 50, 50)";N.lineWidth=1;N.strokeRect(H*F,G*M,K*F,I*M);N.fillStyle=this.style;N.strokeStyle=this.style;N.lineWidth=this.lineWidth;this.drawContainers(N,F,M);this.drawWires(N,F,M)},drawContainers:function(C,I,F){var H=this.layer.containers;var J=H.length,E,D=WireIt.getIntStyle,G;for(E=0;E";return document.createElement(E)}else{var G=document.createElement(B);this.sn(G,F,C);if(H){G.innerHTML=H}return G}},indexOf:function(F,B,E){var C=B.length,D;if(!A.isFunction(E)){E=function(G,H){return G===H}}for(D=0;D=0)?D.length-1:0])}catch(E){alert(E)}}this.msgEl.innerHTML=F},show:function(){this.divEl.style.display=""},hide:function(){this.divEl.style.display="none"},clear:function(D){this.setValue(C.isUndefined(this.options.value)?"":this.options.value,D)},isEmpty:function(){return this.getValue()===""},setParentField:function(D){this.parentField=D},getParentField:function(){return this.parentField}};inputEx.Field.groupOptions=[{type:"string",label:"Label",name:"label",value:""},{type:"string",label:"Name",name:"name",value:""},{type:"string",label:"Description",name:"description",value:""},{type:"boolean",label:"Required?",name:"required",value:false},{type:"boolean",label:"Show messages",name:"showMsg",value:false}]})();(function(){var A=YAHOO.lang;inputEx.BaseField=inputEx.Field;inputEx.Field=function(B){inputEx.Field.superclass.constructor.call(this,B)};A.extend(inputEx.Field,inputEx.BaseField,{setOptions:function(B){inputEx.Field.superclass.setOptions.call(this,B);this.options.wirable=A.isUndefined(B.wirable)?false:B.wirable;this.options.container=B.container;B.container=null},render:function(){inputEx.Field.superclass.render.call(this);if(this.options.wirable){this.renderTerminal()}},renderTerminal:function(){var B=inputEx.cn("div",{className:"WireIt-InputExTerminal"});this.divEl.insertBefore(B,this.fieldContainer);this.terminal=new WireIt.Terminal(B,{name:this.options.name,direction:[-1,0],fakeDirection:[0,1],ddConfig:{type:"input",allowedTypes:["output"]},nMaxWires:1},this.options.container);if(this.options.container){this.options.container.terminals.push(this.terminal)}this.terminal.eventAddWire.subscribe(this.onAddWire,this,true);this.terminal.eventRemoveWire.subscribe(this.onRemoveWire,this,true)},onAddWire:function(B,C){this.options.container.onAddWire(B,C);this.disable();this.el.value="[wired]"},onRemoveWire:function(B,C){this.options.container.onRemoveWire(B,C);this.enable();this.el.value=""}});inputEx.Field.groupOptions=inputEx.BaseField.groupOptions.concat([{type:"boolean",label:"Wirable",name:"wirable",value:false}])})();WireIt.FormContainer=function(A,B){WireIt.FormContainer.superclass.constructor.call(this,A,B)};YAHOO.lang.extend(WireIt.FormContainer,WireIt.Container,{xtype:"WireIt.FormContainer",fields:[],legend:null,collapsible:false,render:function(){WireIt.FormContainer.superclass.render.call(this);this.renderForm()},renderForm:function(){this.setBackReferenceOnFieldOptionsRecursively(this.fields);var A={parentEl:this.bodyEl,fields:this.fields,legend:this.legend,collapsible:this.collapsible};this.form=new inputEx.Group(A);if(this.form.legend){YAHOO.util.Event.addListener(this.form.legend,"click",function(){var C=this;for(var B=0;B0){this.inputs[0].focus()}},getFieldByName:function(D){if(!this.inputsNames.hasOwnProperty(D)){return null}return this.inputsNames[D]},onChange:function(E,F){var G=F[0];var D=F[1];this.runInteractions(D,G);this.fireUpdatedEvt()},runAction:function(D,F){var E=this.getFieldByName(D.name);if(YAHOO.lang.isFunction(E[D.action])){E[D.action].call(E)}else{if(YAHOO.lang.isFunction(D.action)){D.action.call(E,F)}else{throw new Error("action "+D.action+" is not a valid action for field "+D.name)}}},runInteractions:function(E,J){var G=inputEx.indexOf(E,this.inputs);var I=this.options.fields[G];if(YAHOO.lang.isUndefined(I.interactions)){return }var K=I.interactions;for(var H=0;H=this.options.minLength}return D},disable:function(){this.el.disabled=true},enable:function(){this.el.disabled=false},focus:function(){if(!!this.el&&!C.isUndefined(this.el.focus)){this.el.focus()}},getStateString:function(D){if(D==inputEx.stateInvalid&&this.options.minLength&&this.el.value.length=0&&C.position=0){C=inputEx.indexOf(this.el.childNodes[this.el.selectedIndex],this.choicesList,function(E,D){return E===D.node});return this.choicesList[C].value}else{return""}},disable:function(){this.el.disabled=true},enable:function(){this.el.disabled=false},createChoiceNode:function(C){return inputEx.cn("option",{value:C.value},null,C.label)},removeChoiceNode:function(C){this.el.removeChild(C)},disableChoiceNode:function(C){C.disabled="disabled"},enableChoiceNode:function(C){C.removeAttribute("disabled")},appendChoiceNode:function(E,C){var F,D;F=0;for(D=0;D@"+B[0]+" ?";return false}}}}return true},validate:function(){var A=inputEx.EmailField.superclass.validate.call(this);if(!!this.options.fixdomain){this.options.messages.invalid=inputEx.messages.invalidEmail;return A&&this.validateDomain()}else{return A}},getValue:function(){var A;A=inputEx.EmailField.superclass.getValue.call(this);return inputEx.removeAccents(A.toLowerCase())}});inputEx.messages.invalidEmail="Invalid email, ex: sample@test.com";inputEx.messages.didYouMeant="Did you mean : ";inputEx.registerType("email",inputEx.EmailField,[])})();(function(){var A=YAHOO.lang;inputEx.UrlField=function(B){inputEx.UrlField.superclass.constructor.call(this,B)};A.extend(inputEx.UrlField,inputEx.StringField,{setOptions:function(B){inputEx.UrlField.superclass.setOptions.call(this,B);this.options.className=B.className?B.className:"inputEx-Field inputEx-UrlField";this.options.messages.invalid=inputEx.messages.invalidUrl;this.options.favicon=A.isUndefined(B.favicon)?(("https:"==document.location.protocol)?false:true):B.favicon;this.options.size=B.size||50;this.options.regexp=inputEx.regexps.url},render:function(){inputEx.UrlField.superclass.render.call(this);this.el.size=this.options.size;if(!this.options.favicon){YAHOO.util.Dom.addClass(this.el,"nofavicon")}if(this.options.favicon){this.favicon=inputEx.cn("img",{src:inputEx.spacerUrl});this.fieldContainer.insertBefore(this.favicon,this.fieldContainer.childNodes[0]);YAHOO.util.Event.addListener(this.favicon,"click",function(){this.focus()},this,true)}},setClassFromState:function(){inputEx.UrlField.superclass.setClassFromState.call(this);if(this.options.favicon){this.updateFavicon((this.previousState==inputEx.stateValid)?this.getValue():null)}},updateFavicon:function(C){var B=C?C.match(/https?:\/\/[^\/]*/)+"/favicon.ico":inputEx.spacerUrl;if(B!=this.favicon.src){inputEx.sn(this.favicon,null,{visibility:"hidden"});this.favicon.src=B;if(this.timer){clearTimeout(this.timer)}var D=this;this.timer=setTimeout(function(){D.displayFavicon()},1000)}},displayFavicon:function(){inputEx.sn(this.favicon,null,{visibility:(this.favicon.naturalWidth!=0)?"visible":"hidden"})}});inputEx.messages.invalidUrl="Invalid URL, ex: http://www.test.com";inputEx.registerType("url",inputEx.UrlField,[{type:"boolean",label:"Display favicon",name:"favicon",value:true}])})();(function(){var C=YAHOO.lang,A=YAHOO.util.Event,B=YAHOO.util.Dom;inputEx.ListField=function(D){this.subFields=[];inputEx.ListField.superclass.constructor.call(this,D)};C.extend(inputEx.ListField,inputEx.Field,{setOptions:function(D){inputEx.ListField.superclass.setOptions.call(this,D);this.options.className=D.className?D.className:"inputEx-Field inputEx-ListField";this.options.sortable=C.isUndefined(D.sortable)?false:D.sortable;this.options.elementType=D.elementType||{type:"string"};this.options.useButtons=C.isUndefined(D.useButtons)?false:D.useButtons;this.options.unique=C.isUndefined(D.unique)?false:D.unique;this.options.listAddLabel=D.listAddLabel||inputEx.messages.listAddLink;this.options.listRemoveLabel=D.listRemoveLabel||inputEx.messages.listRemoveLink;this.options.maxItems=D.maxItems;this.options.minItems=D.minItems},renderComponent:function(){if(this.options.useButtons){this.addButton=inputEx.cn("img",{src:inputEx.spacerUrl,className:"inputEx-ListField-addButton"});this.fieldContainer.appendChild(this.addButton)}this.fieldContainer.appendChild(inputEx.cn("span",null,{marginLeft:"4px"},this.options.listLabel));this.childContainer=inputEx.cn("div",{className:"inputEx-ListField-childContainer"});this.fieldContainer.appendChild(this.childContainer);if(!this.options.useButtons){this.addButton=inputEx.cn("a",{className:"inputEx-List-link"},null,this.options.listAddLabel);this.fieldContainer.appendChild(this.addButton)}},initEvents:function(){A.addListener(this.addButton,"click",this.onAddButton,this,true)},validate:function(){var F=true;var J={};var D=this.subFields.length;if(C.isNumber(this.options.minItems)&&Dthis.options.maxItems){F=false}for(var G=0;G0){for(F=0;F=this.options.maxItems){return }var D=this.addElement();D.focus();this.fireUpdatedEvt()},renderSubField:function(K){var G=inputEx.cn("div"),E;if(this.options.useButtons){E=inputEx.cn("img",{src:inputEx.spacerUrl,className:"inputEx-ListField-delButton"});A.addListener(E,"click",this.onDelete,this,true);G.appendChild(E)}var J=C.merge({},this.options.elementType);if(C.isObject(J.inputParams)&&!C.isUndefined(K)){J.inputParams.value=K}else{if(!C.isUndefined(K)){J.value=K}}var H=inputEx(J,this);var F=H.getEl();B.setStyle(F,"margin-left","4px");B.setStyle(F,"float","left");G.appendChild(F);H.updatedEvt.subscribe(this.onChange,this,true);if(this.options.sortable){var I=inputEx.cn("div",{className:"inputEx-ListField-Arrow inputEx-ListField-ArrowUp"});A.addListener(I,"click",this.onArrowUp,this,true);var D=inputEx.cn("div",{className:"inputEx-ListField-Arrow inputEx-ListField-ArrowDown"});A.addListener(D,"click",this.onArrowDown,this,true);G.appendChild(I);G.appendChild(D)}if(!this.options.useButtons){E=inputEx.cn("a",{className:"inputEx-List-link"},null,this.options.listRemoveLabel);A.addListener(E,"click",this.onDelete,this,true);G.appendChild(E)}G.appendChild(inputEx.cn("div",null,{clear:"both"}));this.childContainer.appendChild(G);return H},onArrowUp:function(J){var G=A.getTarget(J).parentNode;var E=null;var F=-1;for(var H=1;Hthis.options.maxLength){return inputEx.messages.stringTooLong[0]+this.options.maxLength+inputEx.messages.stringTooLong[1]}}return inputEx.Textarea.superclass.getStateString.call(this,B)},insert:function(E){var D,C,B;if(document.selection){this.el.focus();D=document.selection.createRange();D.text=E}else{if(this.el.selectionStart||this.el.selectionStart=="0"){C=this.el.selectionStart;B=this.el.selectionEnd;this.el.value=this.el.value.substring(0,C)+E+this.el.value.substring(B,this.el.value.length)}else{this.el.value+=E}}}});inputEx.messages.stringTooLong=["This field should contain at most "," numbers or characters"];inputEx.registerType("text",inputEx.Textarea,[{type:"integer",label:"Rows",name:"rows",value:6},{type:"integer",label:"Cols",name:"cols",value:23}])})();(function(){var D=YAHOO.lang,A=YAHOO.util.Event,B=YAHOO.util.Dom,C="inputEx-InPlaceEdit-";inputEx.InPlaceEdit=function(E){inputEx.InPlaceEdit.superclass.constructor.call(this,E)};D.extend(inputEx.InPlaceEdit,inputEx.Field,{setOptions:function(E){inputEx.InPlaceEdit.superclass.setOptions.call(this,E);this.options.visu=E.visu;this.options.editorField=E.editorField;this.options.buttonTypes=E.buttonTypes||{ok:"submit",cancel:"link"};this.options.animColors=E.animColors||null},renderComponent:function(){this.renderVisuDiv();this.renderEditor()},renderEditor:function(){this.editorContainer=inputEx.cn("div",{className:C+"editor"},{display:"none"});this.editorField=inputEx(this.options.editorField,this);var E=this.editorField.getEl();this.editorContainer.appendChild(E);B.addClass(E,C+"editorDiv");this.okButton=new inputEx.widget.Button({type:this.options.buttonTypes.ok,parentEl:this.editorContainer,value:inputEx.messages.okEditor,className:"inputEx-Button "+C+"OkButton",onClick:{fn:this.onOkEditor,scope:this}});this.cancelLink=new inputEx.widget.Button({type:this.options.buttonTypes.cancel,parentEl:this.editorContainer,value:inputEx.messages.cancelEditor,className:"inputEx-Button "+C+"CancelLink",onClick:{fn:this.onCancelEditor,scope:this}});this.editorContainer.appendChild(inputEx.cn("div",null,{clear:"both"}));this.fieldContainer.appendChild(this.editorContainer)},onVisuMouseOver:function(E){if(this.colorAnim){this.colorAnim.stop(true)}inputEx.sn(this.formattedContainer,null,{backgroundColor:this.options.animColors.from})},onVisuMouseOut:function(E){if(this.colorAnim){this.colorAnim.stop(true)}this.colorAnim=new YAHOO.util.ColorAnim(this.formattedContainer,{backgroundColor:this.options.animColors},1);this.colorAnim.onComplete.subscribe(function(){B.setStyle(this.formattedContainer,"background-color","")},this,true);this.colorAnim.animate()},renderVisuDiv:function(){this.formattedContainer=inputEx.cn("div",{className:"inputEx-InPlaceEdit-visu"});if(D.isFunction(this.options.formatDom)){this.formattedContainer.appendChild(this.options.formatDom(this.options.value))}else{if(D.isFunction(this.options.formatValue)){this.formattedContainer.innerHTML=this.options.formatValue(this.options.value)}else{this.formattedContainer.innerHTML=D.isUndefined(this.options.value)?inputEx.messages.emptyInPlaceEdit:this.options.value}}this.fieldContainer.appendChild(this.formattedContainer)},initEvents:function(){A.addListener(this.formattedContainer,"click",this.openEditor,this,true);if(this.options.animColors){A.addListener(this.formattedContainer,"mouseover",this.onVisuMouseOver,this,true);A.addListener(this.formattedContainer,"mouseout",this.onVisuMouseOut,this,true)}if(this.editorField.el){A.addListener(this.editorField.el,"keyup",this.onKeyUp,this,true);A.addListener(this.editorField.el,"keydown",this.onKeyDown,this,true)}},onKeyUp:function(E){if(E.keyCode==13){this.onOkEditor(E)}if(E.keyCode==27){this.onCancelEditor(E)}},onKeyDown:function(E){if(E.keyCode==9){this.onOkEditor(E)}},onOkEditor:function(G){A.stopEvent(G);var F=this.editorField.getValue();this.setValue(F);this.editorContainer.style.display="none";this.formattedContainer.style.display="";var E=this;setTimeout(function(){E.updatedEvt.fire(F)},50)},onCancelEditor:function(E){A.stopEvent(E);this.editorContainer.style.display="none";this.formattedContainer.style.display=""},openEditor:function(){var E=this.getValue();this.editorContainer.style.display="";this.formattedContainer.style.display="none";if(!D.isUndefined(E)){this.editorField.setValue(E)}this.editorField.focus();if(this.editorField.el&&D.isFunction(this.editorField.el.setSelectionRange)&&(!!E&&!!E.length)){this.editorField.el.setSelectionRange(0,E.length)}},getValue:function(){var E=(this.editorContainer.style.display=="");return E?this.editorField.getValue():this.value},setValue:function(F,E){this.value=F;if(D.isUndefined(F)||F==""){inputEx.renderVisu(this.options.visu,inputEx.messages.emptyInPlaceEdit,this.formattedContainer)}else{inputEx.renderVisu(this.options.visu,this.value,this.formattedContainer)}if(this.editorContainer.style.display==""){this.editorField.setValue(F)}inputEx.InPlaceEdit.superclass.setValue.call(this,F,E)},close:function(){this.editorContainer.style.display="none";this.formattedContainer.style.display=""}});inputEx.messages.emptyInPlaceEdit="(click to edit)";inputEx.messages.cancelEditor="cancel";inputEx.messages.okEditor="Ok";inputEx.registerType("inplaceedit",inputEx.InPlaceEdit,[{type:"type",label:"Editor",name:"editorField"}])})();(function(){var A=YAHOO.util.Event,B=YAHOO.util.Dom,C=YAHOO.lang;inputEx.TypeField=function(D){inputEx.TypeField.superclass.constructor.call(this,D);this.updateFieldValue()};C.extend(inputEx.TypeField,inputEx.Field,{renderComponent:function(){this.fieldValueWrapper=inputEx.cn("div",{className:"inputEx-TypeField-FieldValueWrapper"});this.fieldContainer.appendChild(this.fieldValueWrapper);this.propertyPanel=inputEx.cn("div",{className:"inputEx-TypeField-PropertiesPanel"},{display:"none"});var D=[];for(var E in inputEx.typeClasses){if(inputEx.typeClasses.hasOwnProperty(E)){D.push({value:E})}}this.typeSelect=new inputEx.SelectField({label:"Type",choices:D,parentEl:this.propertyPanel});this.groupOptionsWrapper=inputEx.cn("div");this.propertyPanel.appendChild(this.groupOptionsWrapper);this.button=inputEx.cn("div",{className:"inputEx-TypeField-EditButton"});this.button.appendChild(this.propertyPanel);this.fieldContainer.appendChild(this.button);this.rebuildGroupOptions()},initEvents:function(){inputEx.TypeField.superclass.initEvents.call(this);A.addListener(this.button,"click",this.onTogglePropertiesPanel,this,true);A.addListener(this.propertyPanel,"click",function(D){A.stopPropagation(D)},this,true);this.typeSelect.updatedEvt.subscribe(this.rebuildGroupOptions,this,true)},rebuildGroupOptions:function(){try{var D=null;if(this.group){D=this.group.getValue();this.group.close();this.group.destroy();this.groupOptionsWrapper.innerHTML=""}var G=inputEx.getFieldClass(this.typeSelect.getValue());var E={fields:G.groupOptions,parentEl:this.groupOptionsWrapper};this.group=new inputEx.Group(E);if(D){this.group.setValue({name:D.name,label:D.label})}this.group.updatedEvt.subscribe(this.onChangeGroupOptions,this,true);this.updateFieldValue()}catch(F){if(YAHOO.lang.isObject(window.console)&&YAHOO.lang.isFunction(window.console["log"])){console.log("inputEx.TypeField.rebuildGroupOptions: ",F)}}},onTogglePropertiesPanel:function(){if(this.propertyPanel.style.display=="none"){this.propertyPanel.style.display="";B.addClass(this.button,"opened")}else{this.propertyPanel.style.display="none";B.removeClass(this.button,"opened")}},onChangeGroupOptions:function(){this.updateFieldValue();this.fireUpdatedEvt()},updateFieldValue:function(){try{if(this.fieldValue){this.fieldValue.close();this.fieldValue.destroy();delete this.fieldValue;this.fieldValueWrapper.innerHTML=""}var E=this.group.getValue();E.type=this.getValue().type;E.parentEl=this.fieldValueWrapper;this.fieldValue=inputEx(E,this);this.fieldValue.updatedEvt.subscribe(this.fireUpdatedEvt,this,true)}catch(D){console.log("Error while updateFieldValue",D.message)}},setValue:function(E,D){this.typeSelect.setValue(E.type,false);this.rebuildGroupOptions();if(C.isObject(E.inputParams)){this.group.setValue(E.inputParams,false)}else{this.group.setValue(E,false)}this.updateFieldValue();if(C.isObject(E.inputParams)&&!C.isUndefined(E.inputParams.value)){this.fieldValue.setValue(E.inputParams.value)}else{if(!C.isUndefined(E.value)){this.fieldValue.setValue(E.value)}}if(D!==false){this.fireUpdatedEvt()}},getValue:function(){var I=function(K,N){var J,L=K.groupOptions.length,M;for(J=0;J");this.alertPanel.render(document.body);B.addListener("alertPanelButton","click",function(){this.alertPanel.hide()},this,true)},renderButtons:function(){var I=D.get("toolbar");var H=new E.Button({label:"New",id:"WiringEditor-newButton",container:I});H.on("click",this.onNew,this,true);var K=new E.Button({label:"Load",id:"WiringEditor-loadButton",container:I});K.on("click",this.load,this,true);var J=new E.Button({label:"Save",id:"WiringEditor-saveButton",container:I});J.on("click",this.onSave,this,true);var M=new E.Button({label:"Delete",id:"WiringEditor-deleteButton",container:I});M.on("click",this.onDelete,this,true);var L=new E.Button({label:"Help",id:"WiringEditor-helpButton",container:I});L.on("click",this.onHelp,this,true)},renderSavedStatus:function(){this.savedStatusEl=WireIt.cn("div",{className:"savedStatus",title:"Not saved"},{display:"none"},"*");D.get("toolbar").appendChild(this.savedStatusEl)},onSave:function(){this.save()},save:function(){},alert:function(H){if(!this.alertPanel){this.renderAlertPanel()}D.get("alertPanelBody").innerHTML=H;this.alertPanel.show()},onHelp:function(){this.helpPanel.show()},renderPropertiesAccordion:function(){this.accordionView=new YAHOO.widget.AccordionView("accordionView",this.options.accordionViewParams)},renderPropertiesForm:function(){this.propertiesForm=new inputEx.Group({parentEl:YAHOO.util.Dom.get("propertiesForm"),fields:this.options.propertiesFields});this.propertiesForm.updatedEvt.subscribe(function(){this.markUnsaved()},this,true)},markSaved:function(){this.savedStatusEl.style.display="none"},markUnsaved:function(){this.savedStatusEl.style.display=""},isSaved:function(){return(this.savedStatusEl.style.display=="none")}}})();(function(){var A=YAHOO.util,C=YAHOO.lang,B=A.Dom;WireIt.ModuleProxy=function(E,D){this._WiringEditor=D;WireIt.ModuleProxy.superclass.constructor.call(this,E,"module",{dragElId:"moduleProxy"});this.isTarget=false};C.extend(WireIt.ModuleProxy,YAHOO.util.DDProxy,{startDrag:function(F){WireIt.ModuleProxy.superclass.startDrag.call(this,F);var D=this.getDragEl(),E=this.getEl();D.innerHTML=E.innerHTML;D.className=E.className},endDrag:function(D){},onDragDrop:function(H,F){var I=F[0],G=F[0]._layer,E=this.getDragEl(),J=B.getXY(E),D=B.getXY(G.el);this._WiringEditor.addModule(this._module,[J[0]-D[0]+G.el.scrollLeft,J[1]-D[1]+G.el.scrollTop])}})})();(function(){var C=YAHOO.util,F=YAHOO.lang;var B=C.Event,D=C.Dom,A=C.Connect,E=YAHOO.widget;WireIt.WiringEditor=function(G){this.modulesByName={};WireIt.WiringEditor.superclass.constructor.call(this,G);if(this.adapter.init&&YAHOO.lang.isFunction(this.adapter.init)){this.adapter.init()}this.load()};F.extend(WireIt.WiringEditor,WireIt.BaseEditor,{setOptions:function(J){WireIt.WiringEditor.superclass.setOptions.call(this,J);this.modules=J.modules||[];for(var K=0;K"});this.modulesAccordionView.openPanel(this.modulesAccordionView._panels.length-1);I=D.get("module-category-"+J)}I.appendChild(L)}catch(G){console.log(G)}},getCurrentGrouper:function(G){return G.currentGrouper},addModule:function(J,M){try{var L=J.container;L.position=M;L.title=J.name;var H=this;L.getGrouper=function(){return H.getCurrentGrouper(H)};var G=this.layer.addContainer(L);var K=J.category||"main";D.addClass(G.el,"WiringEditor-module-category-"+K.replace(/ /g,"-"));D.addClass(G.el,"WiringEditor-module-"+J.name.replace(/ /g,"-"))}catch(I){this.alert("Error Layer.addContainer: "+I.message);if(window.console&&YAHOO.lang.isFunction(console.log)){console.log(I)}}},save:function(){var G=this.getValue();if(G.name===""){this.alert("Please choose a name");return }this.tempSavedWiring={name:G.name,working:G.working,language:this.options.languageName};this.adapter.saveWiring(this.tempSavedWiring,{success:this.saveModuleSuccess,failure:this.saveModuleFailure,scope:this})},saveModuleSuccess:function(G){this.markSaved();this.alert("Saved !")},saveModuleFailure:function(G){this.alert("Unable to save the wiring : "+G)},onNew:function(){if(!this.isSaved()){if(!confirm("Warning: Your work is not saved yet ! Press ok to continue anyway.")){return }}this.preventLayerChangedEvent=true;this.layer.clear();this.propertiesForm.clear(false);this.markSaved();this.preventLayerChangedEvent=false},onDelete:function(){if(confirm("Are you sure you want to delete this wiring ?")){var G=this.getValue();this.adapter.deleteWiring({name:G.name,language:this.options.languageName},{success:function(H){this.onNew();this.alert("Deleted !")},failure:function(H){this.alert("Unable to delete wiring: "+H)},scope:this})}},renderLoadPanel:function(){if(!this.loadPanel){this.loadPanel=new E.Panel("WiringEditor-loadPanel",{fixedcenter:true,draggable:true,width:"500px",visible:false,modal:true});this.loadPanel.setHeader("Select the wiring to load");this.loadPanel.setBody("Filter:
");this.loadPanel.render(document.body);B.onAvailable("loadFilter",function(){B.addListener("loadFilter","keyup",this.inputFilterTimer,this,true)},this,true)}},inputFilterTimer:function(){if(this.inputFilterTimeout){clearTimeout(this.inputFilterTimeout);this.inputFilterTimeout=null}var G=this;this.inputFilterTimeout=setTimeout(function(){G.updateLoadPanelList(D.get("loadFilter").value)},500)},updateLoadPanelList:function(I){var K=WireIt.cn("ul");if(F.isArray(this.pipes)){for(var H=0;HQ[0])?1:-1;i=Q[0]+e*M;h=i;H-=j;F+=j}N.fillStyle=this.color;N.beginPath();N.moveTo(Q[0],Q[1]);N.lineTo(i,H);N.lineTo(h,F);N.fill();N.strokeStyle=this.bordercolor;N.lineWidth=this.borderwidth;N.beginPath();N.moveTo(Q[0],Q[1]);N.lineTo(i,H);N.lineTo(h,F);N.lineTo(Q[0],Q[1]);N.stroke()}});WireIt.BezierWire=function(D,C,B,A){WireIt.BezierWire.superclass.constructor.call(this,D,C,B,A)};YAHOO.lang.extend(WireIt.BezierWire,WireIt.Wire,{xtype:"WireIt.BezierWire",coeffMulDirection:100,draw:function(){var O=this.terminal1.getXY();var M=this.terminal2.getXY();var F=this.coeffMulDirection;var B=Math.sqrt(Math.pow(O[0]-M[0],2)+Math.pow(O[1]-M[1],2));if(BK[0]){K[0]=D[0]}if(D[1]>K[1]){K[1]=D[1]}}var G=[4,4];H[0]=H[0]-G[0];H[1]=H[1]-G[1];K[0]=K[0]+G[0];K[1]=K[1]+G[1];var E=Math.abs(K[0]-H[0]);var N=Math.abs(K[1]-H[1]);this.min=H;this.max=K;this.SetCanvasRegion(H[0],H[1],E,N);var J=this.getContext();for(I=0;IR[0]){R[0]=f[0]}if(f[1]>R[1]){R[1]=f[1]}}s[0]=s[0]-F[0];s[1]=s[1]-F[1];R[0]=R[0]+F[0];R[1]=R[1]+F[1];var S=Math.abs(R[0]-s[0]);var Y=Math.abs(R[1]-s[1]);this.min=s;this.max=R;this.SetCanvasRegion(s[0],s[1],S,Y);var h=this.getContext();for(m=0;mV[0])?1:-1;M=V[0]+g*H;K=M;y-=r;x+=r}h.fillStyle=this.color;h.beginPath();h.moveTo(V[0],V[1]);h.lineTo(M,y);h.lineTo(K,x);h.fill();h.strokeStyle=this.bordercolor;h.lineWidth=this.borderwidth;h.beginPath();h.moveTo(V[0],V[1]);h.lineTo(M,y);h.lineTo(K,x);h.lineTo(V[0],V[1]);h.stroke();return[q,n,X,V]}});(function(){var A=YAHOO.util;var C=YAHOO.lang,B="WireIt-";WireIt.TerminalProxy=function(E,D){this.terminal=E;this.termConfig=D||{};this.terminalProxySize=D.terminalProxySize||10;this.fakeTerminal=null;WireIt.TerminalProxy.superclass.constructor.call(this,this.terminal.el,undefined,{dragElId:"WireIt-TerminalProxy",resizeFrame:false,centerFrame:true})};A.DDM.mode=A.DDM.INTERSECT;C.extend(WireIt.TerminalProxy,YAHOO.util.DDProxy,{createFrame:function(){var E=this,D=document.body;if(!D||!D.firstChild){window.setTimeout(function(){E.createFrame()},50);return }var J=this.getDragEl(),I=YAHOO.util.Dom;if(!J){J=document.createElement("div");J.id=this.dragElId;var H=J.style;H.position="absolute";H.visibility="hidden";H.cursor="move";H.border="2px solid #aaa";H.zIndex=999;var F=this.terminalProxySize+"px";H.height=F;H.width=F;var G=document.createElement("div");I.setStyle(G,"height","100%");I.setStyle(G,"width","100%");I.setStyle(G,"background-color","#ccc");I.setStyle(G,"opacity","0");J.appendChild(G);D.insertBefore(J,D.firstChild)}},startDrag:function(){if(this.terminal.nMaxWires==1&&this.terminal.wires.length==1){this.terminal.wires[0].remove()}else{if(this.terminal.wires.length>=this.terminal.nMaxWires){return }}var E=this.terminalProxySize/2;this.fakeTerminal={direction:this.terminal.fakeDirection,pos:[200,200],addWire:function(){},removeWire:function(){},getXY:function(){var G=YAHOO.util.Dom.getElementsByClassName("WireIt-Layer");if(G.length>0){var H=YAHOO.util.Dom.getXY(G[0]);return[this.pos[0]-H[0]+E,this.pos[1]-H[1]+E]}return this.pos}};var F=this.terminal.parentEl.parentNode;if(this.terminal.container){F=this.terminal.container.layer.el}var D=WireIt.wireClassFromXtype(this.terminal.editingWireConfig.xtype);this.editingWire=new D(this.terminal,this.fakeTerminal,F,this.terminal.editingWireConfig);YAHOO.util.Dom.addClass(this.editingWire.element,B+"Wire-editing")},onDrag:function(D){if(!this.editingWire){return }if(this.terminal.container){this.fakeTerminal.pos=[D.clientX+this.terminal.container.layer.el.scrollLeft,D.clientY+this.terminal.container.layer.el.scrollTop]}else{this.fakeTerminal.pos=(YAHOO.env.ua.ie)?[D.clientX,D.clientY]:[D.clientX+window.pageXOffset,D.clientY+window.pageYOffset]}this.editingWire.redraw()},endDrag:function(D){if(this.editingWire){this.editingWire.remove();this.editingWire=null}},onDragEnter:function(F,D){if(!this.editingWire){return }for(var E=0;E0){D.wires[0].remove()}M=new K(F,E,I,F.wireConfig);M.redraw()}else{if(D.wires.length0){this.show()}},scissorClick:function(){this._terminal.removeAllWires();if(this.terminalTimeout){this.terminalTimeout.cancel()}this.hideNow()},show:function(){this.setPosition();this.setStyle("display","");if(WireIt.Scissors.visibleInstance&&WireIt.Scissors.visibleInstance!=this){if(WireIt.Scissors.visibleInstance.terminalTimeout){WireIt.Scissors.visibleInstance.terminalTimeout.cancel()}WireIt.Scissors.visibleInstance.hideNow()}WireIt.Scissors.visibleInstance=this;if(this.terminalTimeout){this.terminalTimeout.cancel()}},hide:function(){this.terminalTimeout=YAHOO.lang.later(700,this,this.hideNow)},hideNow:function(){WireIt.Scissors.visibleInstance=null;this.setStyle("display","none")}})})();(function(){var B=YAHOO.util;var A=B.Event,E=YAHOO.lang,C=B.Dom,D="WireIt-";WireIt.Terminal=function(H,G,F){this.name=null;this.parentEl=H;this.container=F;this.wires=[];this.setOptions(G);this.eventAddWire=new B.CustomEvent("eventAddWire");this.eventRemoveWire=new B.CustomEvent("eventRemoveWire");this.el=null;this.render();if(this.editable){this.dd=new WireIt.TerminalProxy(this,this.ddConfig);this.scissors=new WireIt.Scissors(this)}};WireIt.Terminal.prototype={xtype:"WireIt.Terminal",direction:[0,1],fakeDirection:[0,-1],editable:true,nMaxWires:Infinity,wireConfig:{},editingWireConfig:{},className:"WireIt-Terminal",connectedClassName:"WireIt-Terminal-connected",dropinviteClassName:"WireIt-Terminal-dropinvite",offsetPosition:null,alwaysSrc:false,ddConfig:false,setOptions:function(G){for(var F in G){if(G.hasOwnProperty(F)){this[F]=G[F]}}if(G.direction&&!G.fakeDirection){this.fakeDirection=[-G.direction[0],-G.direction[1]]}if(G.wireConfig&&!G.editingWireConfig){this.editingWireConfig=this.wireConfig}},setDropInvitation:function(F){if(F){C.addClass(this.el,this.dropinviteClassName)}else{C.removeClass(this.el,this.dropinviteClassName)}},render:function(){this.el=WireIt.cn("div",{className:this.className});if(this.name){this.el.title=this.name}this.setPosition(this.offsetPosition);this.parentEl.appendChild(this.el)},setPosition:function(G){if(G){this.el.style.left="";this.el.style.top="";this.el.style.right="";this.el.style.bottom="";if(E.isArray(G)){this.el.style.left=G[0]+"px";this.el.style.top=G[1]+"px"}else{if(E.isObject(G)){for(var F in G){if(G.hasOwnProperty(F)&&G[F]!==""){this.el.style[F]=G[F]+"px"}}}}}},addWire:function(F){this.wires.push(F);C.addClass(this.el,this.connectedClassName);this.eventAddWire.fire(F)},removeWire:function(G){var F=WireIt.indexOf(G,this.wires);if(F!=-1){this.wires[F].destroy();this.wires[F]=null;this.wires=WireIt.compact(this.wires);if(this.wires.length===0){C.removeClass(this.el,this.connectedClassName)}this.eventRemoveWire.fire(G)}},getXY:function(){var G=this.container&&this.container.layer?this.container.layer.el:document.body;var H=this.el;var I=0,F=0;if(H.offsetParent){do{I+=H.offsetLeft;F+=H.offsetTop;H=H.offsetParent}while(!!H&&H!=G)}return[I+15,F+15]},remove:function(){while(this.wires.length>0){this.wires[0].remove()}this.parentEl.removeChild(this.el);A.purgeElement(this.el);if(this.scissors){A.purgeElement(this.scissors.get("element"))}},getConnectedTerminals:function(){var F=[];if(this.wires){for(var G=0;G0){this.wires[0].remove()}}}})();WireIt.util.TerminalInput=function(C,B,A){WireIt.util.TerminalInput.superclass.constructor.call(this,C,B,A)};YAHOO.lang.extend(WireIt.util.TerminalInput,WireIt.Terminal,{xtype:"WireIt.TerminalInput",direction:[0,-1],fakeDirection:[0,1],nMaxWires:1,ddConfig:{type:"input",allowedTypes:["output"]}});WireIt.util.TerminalOutput=function(C,B,A){WireIt.util.TerminalOutput.superclass.constructor.call(this,C,B,A)};YAHOO.lang.extend(WireIt.util.TerminalOutput,WireIt.Terminal,{xtype:"WireIt.TerminalOutput",direction:[0,1],fakeDirection:[0,-1],ddConfig:{type:"output",allowedTypes:["input"]},alwaysSrc:true});WireIt.util.DD=function(D,C,A,B){if(!D){throw new Error("WireIt.util.DD needs at least terminals and id")}this._WireItTerminals=D;WireIt.util.DD.superclass.constructor.call(this,C,A,B)};YAHOO.extend(WireIt.util.DD,YAHOO.util.DD,{onDrag:function(D){var A=YAHOO.lang.isArray(this._WireItTerminals)?this._WireItTerminals:(this._WireItTerminals.isWireItTerminal?[this._WireItTerminals]:[]);for(var C=0;C0){this.removeContainer(this.containers[0])}},removeAllContainers:function(){this.clear()},getWiring:function(){var B;var C={containers:[],wires:[]};for(B=0;B=E&&H=C&&F=E&&H=C&&FF){L[0]=F-M}if(L[1]+J>N){L[1]=N-J}this.layer.el.scrollLeft=L[0];this.layer.el.scrollTop=L[1]},onLayerScroll:function(){if(this.scrollTimer){window.clearTimeout(this.scrollTimer)}var C=this;this.scrollTimer=window.setTimeout(function(){C.draw()},50)},draw:function(){var N=this.getContext();var E=B.getRegion(this.element);var D=E.right-E.left-4;var J=E.bottom-E.top-4;N.clearRect(0,0,D,J);var C=this.layer.el.scrollWidth;var L=this.layer.el.scrollHeight;var F=Math.floor(100*D/C)/100;var M=Math.floor(100*J/L)/100;var O=B.getRegion(this.layer.el);var K=O.right-O.left;var I=O.bottom-O.top;var H=this.layer.el.scrollLeft;var G=this.layer.el.scrollTop;N.strokeStyle="rgb(200, 50, 50)";N.lineWidth=1;N.strokeRect(H*F,G*M,K*F,I*M);N.fillStyle=this.style;N.strokeStyle=this.style;N.lineWidth=this.lineWidth;this.drawContainers(N,F,M);this.drawWires(N,F,M)},drawContainers:function(C,I,F){var H=this.layer.containers;var J=H.length,E,D=WireIt.getIntStyle,G;for(E=0;E";return document.createElement(E)}else{var G=document.createElement(B);this.sn(G,F,C);if(H){G.innerHTML=H}return G}},indexOf:function(F,B,E){var C=B.length,D;if(!A.isFunction(E)){E=function(G,H){return G===H}}for(D=0;D=0)?D.length-1:0])}catch(E){alert(E)}}this.msgEl.innerHTML=F},show:function(){this.divEl.style.display=""},hide:function(){this.divEl.style.display="none"},clear:function(D){this.setValue(C.isUndefined(this.options.value)?"":this.options.value,D)},isEmpty:function(){return this.getValue()===""},setParentField:function(D){this.parentField=D},getParentField:function(){return this.parentField}};inputEx.Field.groupOptions=[{type:"string",label:"Label",name:"label",value:""},{type:"string",label:"Name",name:"name",value:""},{type:"string",label:"Description",name:"description",value:""},{type:"boolean",label:"Required?",name:"required",value:false},{type:"boolean",label:"Show messages",name:"showMsg",value:false}]})();(function(){var A=YAHOO.lang;inputEx.BaseField=inputEx.Field;inputEx.Field=function(B){inputEx.Field.superclass.constructor.call(this,B)};A.extend(inputEx.Field,inputEx.BaseField,{setOptions:function(B){inputEx.Field.superclass.setOptions.call(this,B);this.options.wirable=A.isUndefined(B.wirable)?false:B.wirable;this.options.container=B.container;B.container=null},render:function(){inputEx.Field.superclass.render.call(this);if(this.options.wirable){this.renderTerminal()}},renderTerminal:function(){var B=inputEx.cn("div",{className:"WireIt-InputExTerminal"});this.divEl.insertBefore(B,this.fieldContainer);this.terminal=new WireIt.Terminal(B,{name:this.options.name,direction:[-1,0],fakeDirection:[0,1],ddConfig:{type:"input",allowedTypes:["output"]},nMaxWires:1},this.options.container);if(this.options.container){this.options.container.terminals.push(this.terminal)}this.terminal.eventAddWire.subscribe(this.onAddWire,this,true);this.terminal.eventRemoveWire.subscribe(this.onRemoveWire,this,true)},onAddWire:function(B,C){this.options.container.onAddWire(B,C);this.disable();this.el.value="[wired]"},onRemoveWire:function(B,C){this.options.container.onRemoveWire(B,C);this.enable();this.el.value=""}});inputEx.Field.groupOptions=inputEx.BaseField.groupOptions.concat([{type:"boolean",label:"Wirable",name:"wirable",value:false}])})();WireIt.FormContainer=function(A,B){WireIt.FormContainer.superclass.constructor.call(this,A,B)};YAHOO.lang.extend(WireIt.FormContainer,WireIt.Container,{xtype:"WireIt.FormContainer",fields:[],legend:null,collapsible:false,render:function(){WireIt.FormContainer.superclass.render.call(this);this.renderForm()},renderForm:function(){this.setBackReferenceOnFieldOptionsRecursively(this.fields);var A={parentEl:this.bodyEl,fields:this.fields,legend:this.legend,collapsible:this.collapsible};this.form=new inputEx.Group(A);if(this.form.legend){YAHOO.util.Event.addListener(this.form.legend,"click",function(){var C=this;for(var B=0;B0){this.inputs[0].focus()}},getFieldByName:function(D){if(!this.inputsNames.hasOwnProperty(D)){return null}return this.inputsNames[D]},onChange:function(E,F){var G=F[0];var D=F[1];this.runInteractions(D,G);this.fireUpdatedEvt()},runAction:function(D,F){var E=this.getFieldByName(D.name);if(YAHOO.lang.isFunction(E[D.action])){E[D.action].call(E)}else{if(YAHOO.lang.isFunction(D.action)){D.action.call(E,F)}else{throw new Error("action "+D.action+" is not a valid action for field "+D.name)}}},runInteractions:function(E,J){var G=inputEx.indexOf(E,this.inputs);var I=this.options.fields[G];if(YAHOO.lang.isUndefined(I.interactions)){return }var K=I.interactions;for(var H=0;H=this.options.minLength}return D},disable:function(){this.el.disabled=true},enable:function(){this.el.disabled=false},focus:function(){if(!!this.el&&!C.isUndefined(this.el.focus)){this.el.focus()}},getStateString:function(D){if(D==inputEx.stateInvalid&&this.options.minLength&&this.el.value.length=0&&C.position=0){C=inputEx.indexOf(this.el.childNodes[this.el.selectedIndex],this.choicesList,function(E,D){return E===D.node});return this.choicesList[C].value}else{return""}},disable:function(){this.el.disabled=true},enable:function(){this.el.disabled=false},createChoiceNode:function(C){return inputEx.cn("option",{value:C.value},null,C.label)},removeChoiceNode:function(C){this.el.removeChild(C)},disableChoiceNode:function(C){C.disabled="disabled"},enableChoiceNode:function(C){C.removeAttribute("disabled")},appendChoiceNode:function(E,C){var F,D;F=0;for(D=0;D@"+B[0]+" ?";return false}}}}return true},validate:function(){var A=inputEx.EmailField.superclass.validate.call(this);if(!!this.options.fixdomain){this.options.messages.invalid=inputEx.messages.invalidEmail;return A&&this.validateDomain()}else{return A}},getValue:function(){var A;A=inputEx.EmailField.superclass.getValue.call(this);return inputEx.removeAccents(A.toLowerCase())}});inputEx.messages.invalidEmail="Invalid email, ex: sample@test.com";inputEx.messages.didYouMeant="Did you mean : ";inputEx.registerType("email",inputEx.EmailField,[])})();(function(){var A=YAHOO.lang;inputEx.UrlField=function(B){inputEx.UrlField.superclass.constructor.call(this,B)};A.extend(inputEx.UrlField,inputEx.StringField,{setOptions:function(B){inputEx.UrlField.superclass.setOptions.call(this,B);this.options.className=B.className?B.className:"inputEx-Field inputEx-UrlField";this.options.messages.invalid=inputEx.messages.invalidUrl;this.options.favicon=A.isUndefined(B.favicon)?(("https:"==document.location.protocol)?false:true):B.favicon;this.options.size=B.size||50;this.options.regexp=inputEx.regexps.url},render:function(){inputEx.UrlField.superclass.render.call(this);this.el.size=this.options.size;if(!this.options.favicon){YAHOO.util.Dom.addClass(this.el,"nofavicon")}if(this.options.favicon){this.favicon=inputEx.cn("img",{src:inputEx.spacerUrl});this.fieldContainer.insertBefore(this.favicon,this.fieldContainer.childNodes[0]);YAHOO.util.Event.addListener(this.favicon,"click",function(){this.focus()},this,true)}},setClassFromState:function(){inputEx.UrlField.superclass.setClassFromState.call(this);if(this.options.favicon){this.updateFavicon((this.previousState==inputEx.stateValid)?this.getValue():null)}},updateFavicon:function(C){var B=C?C.match(/https?:\/\/[^\/]*/)+"/favicon.ico":inputEx.spacerUrl;if(B!=this.favicon.src){inputEx.sn(this.favicon,null,{visibility:"hidden"});this.favicon.src=B;if(this.timer){clearTimeout(this.timer)}var D=this;this.timer=setTimeout(function(){D.displayFavicon()},1000)}},displayFavicon:function(){inputEx.sn(this.favicon,null,{visibility:(this.favicon.naturalWidth!=0)?"visible":"hidden"})}});inputEx.messages.invalidUrl="Invalid URL, ex: http://www.test.com";inputEx.registerType("url",inputEx.UrlField,[{type:"boolean",label:"Display favicon",name:"favicon",value:true}])})();(function(){var C=YAHOO.lang,A=YAHOO.util.Event,B=YAHOO.util.Dom;inputEx.ListField=function(D){this.subFields=[];inputEx.ListField.superclass.constructor.call(this,D)};C.extend(inputEx.ListField,inputEx.Field,{setOptions:function(D){inputEx.ListField.superclass.setOptions.call(this,D);this.options.className=D.className?D.className:"inputEx-Field inputEx-ListField";this.options.sortable=C.isUndefined(D.sortable)?false:D.sortable;this.options.elementType=D.elementType||{type:"string"};this.options.useButtons=C.isUndefined(D.useButtons)?false:D.useButtons;this.options.unique=C.isUndefined(D.unique)?false:D.unique;this.options.listAddLabel=D.listAddLabel||inputEx.messages.listAddLink;this.options.listRemoveLabel=D.listRemoveLabel||inputEx.messages.listRemoveLink;this.options.maxItems=D.maxItems;this.options.minItems=D.minItems},renderComponent:function(){if(this.options.useButtons){this.addButton=inputEx.cn("img",{src:inputEx.spacerUrl,className:"inputEx-ListField-addButton"});this.fieldContainer.appendChild(this.addButton)}this.fieldContainer.appendChild(inputEx.cn("span",null,{marginLeft:"4px"},this.options.listLabel));this.childContainer=inputEx.cn("div",{className:"inputEx-ListField-childContainer"});this.fieldContainer.appendChild(this.childContainer);if(!this.options.useButtons){this.addButton=inputEx.cn("a",{className:"inputEx-List-link"},null,this.options.listAddLabel);this.fieldContainer.appendChild(this.addButton)}},initEvents:function(){A.addListener(this.addButton,"click",this.onAddButton,this,true)},validate:function(){var F=true;var J={};var D=this.subFields.length;if(C.isNumber(this.options.minItems)&&Dthis.options.maxItems){F=false}for(var G=0;G0){for(F=0;F=this.options.maxItems){return }var D=this.addElement();D.focus();this.fireUpdatedEvt()},renderSubField:function(K){var G=inputEx.cn("div"),E;if(this.options.useButtons){E=inputEx.cn("img",{src:inputEx.spacerUrl,className:"inputEx-ListField-delButton"});A.addListener(E,"click",this.onDelete,this,true);G.appendChild(E)}var J=C.merge({},this.options.elementType);if(C.isObject(J.inputParams)&&!C.isUndefined(K)){J.inputParams.value=K}else{if(!C.isUndefined(K)){J.value=K}}var H=inputEx(J,this);var F=H.getEl();B.setStyle(F,"margin-left","4px");B.setStyle(F,"float","left");G.appendChild(F);H.updatedEvt.subscribe(this.onChange,this,true);if(this.options.sortable){var I=inputEx.cn("div",{className:"inputEx-ListField-Arrow inputEx-ListField-ArrowUp"});A.addListener(I,"click",this.onArrowUp,this,true);var D=inputEx.cn("div",{className:"inputEx-ListField-Arrow inputEx-ListField-ArrowDown"});A.addListener(D,"click",this.onArrowDown,this,true);G.appendChild(I);G.appendChild(D)}if(!this.options.useButtons){E=inputEx.cn("a",{className:"inputEx-List-link"},null,this.options.listRemoveLabel);A.addListener(E,"click",this.onDelete,this,true);G.appendChild(E)}G.appendChild(inputEx.cn("div",null,{clear:"both"}));this.childContainer.appendChild(G);return H},onArrowUp:function(J){var G=A.getTarget(J).parentNode;var E=null;var F=-1;for(var H=1;Hthis.options.maxLength){return inputEx.messages.stringTooLong[0]+this.options.maxLength+inputEx.messages.stringTooLong[1]}}return inputEx.Textarea.superclass.getStateString.call(this,B)},insert:function(E){var D,C,B;if(document.selection){this.el.focus();D=document.selection.createRange();D.text=E}else{if(this.el.selectionStart||this.el.selectionStart=="0"){C=this.el.selectionStart;B=this.el.selectionEnd;this.el.value=this.el.value.substring(0,C)+E+this.el.value.substring(B,this.el.value.length)}else{this.el.value+=E}}}});inputEx.messages.stringTooLong=["This field should contain at most "," numbers or characters"];inputEx.registerType("text",inputEx.Textarea,[{type:"integer",label:"Rows",name:"rows",value:6},{type:"integer",label:"Cols",name:"cols",value:23}])})();(function(){var D=YAHOO.lang,A=YAHOO.util.Event,B=YAHOO.util.Dom,C="inputEx-InPlaceEdit-";inputEx.InPlaceEdit=function(E){inputEx.InPlaceEdit.superclass.constructor.call(this,E)};D.extend(inputEx.InPlaceEdit,inputEx.Field,{setOptions:function(E){inputEx.InPlaceEdit.superclass.setOptions.call(this,E);this.options.visu=E.visu;this.options.editorField=E.editorField;this.options.buttonTypes=E.buttonTypes||{ok:"submit",cancel:"link"};this.options.animColors=E.animColors||null},renderComponent:function(){this.renderVisuDiv();this.renderEditor()},renderEditor:function(){this.editorContainer=inputEx.cn("div",{className:C+"editor"},{display:"none"});this.editorField=inputEx(this.options.editorField,this);var E=this.editorField.getEl();this.editorContainer.appendChild(E);B.addClass(E,C+"editorDiv");this.okButton=new inputEx.widget.Button({type:this.options.buttonTypes.ok,parentEl:this.editorContainer,value:inputEx.messages.okEditor,className:"inputEx-Button "+C+"OkButton",onClick:{fn:this.onOkEditor,scope:this}});this.cancelLink=new inputEx.widget.Button({type:this.options.buttonTypes.cancel,parentEl:this.editorContainer,value:inputEx.messages.cancelEditor,className:"inputEx-Button "+C+"CancelLink",onClick:{fn:this.onCancelEditor,scope:this}});this.editorContainer.appendChild(inputEx.cn("div",null,{clear:"both"}));this.fieldContainer.appendChild(this.editorContainer)},onVisuMouseOver:function(E){if(this.colorAnim){this.colorAnim.stop(true)}inputEx.sn(this.formattedContainer,null,{backgroundColor:this.options.animColors.from})},onVisuMouseOut:function(E){if(this.colorAnim){this.colorAnim.stop(true)}this.colorAnim=new YAHOO.util.ColorAnim(this.formattedContainer,{backgroundColor:this.options.animColors},1);this.colorAnim.onComplete.subscribe(function(){B.setStyle(this.formattedContainer,"background-color","")},this,true);this.colorAnim.animate()},renderVisuDiv:function(){this.formattedContainer=inputEx.cn("div",{className:"inputEx-InPlaceEdit-visu"});if(D.isFunction(this.options.formatDom)){this.formattedContainer.appendChild(this.options.formatDom(this.options.value))}else{if(D.isFunction(this.options.formatValue)){this.formattedContainer.innerHTML=this.options.formatValue(this.options.value)}else{this.formattedContainer.innerHTML=D.isUndefined(this.options.value)?inputEx.messages.emptyInPlaceEdit:this.options.value}}this.fieldContainer.appendChild(this.formattedContainer)},initEvents:function(){A.addListener(this.formattedContainer,"click",this.openEditor,this,true);if(this.options.animColors){A.addListener(this.formattedContainer,"mouseover",this.onVisuMouseOver,this,true);A.addListener(this.formattedContainer,"mouseout",this.onVisuMouseOut,this,true)}if(this.editorField.el){A.addListener(this.editorField.el,"keyup",this.onKeyUp,this,true);A.addListener(this.editorField.el,"keydown",this.onKeyDown,this,true)}},onKeyUp:function(E){if(E.keyCode==13){this.onOkEditor(E)}if(E.keyCode==27){this.onCancelEditor(E)}},onKeyDown:function(E){if(E.keyCode==9){this.onOkEditor(E)}},onOkEditor:function(G){A.stopEvent(G);var F=this.editorField.getValue();this.setValue(F);this.editorContainer.style.display="none";this.formattedContainer.style.display="";var E=this;setTimeout(function(){E.updatedEvt.fire(F)},50)},onCancelEditor:function(E){A.stopEvent(E);this.editorContainer.style.display="none";this.formattedContainer.style.display=""},openEditor:function(){var E=this.getValue();this.editorContainer.style.display="";this.formattedContainer.style.display="none";if(!D.isUndefined(E)){this.editorField.setValue(E)}this.editorField.focus();if(this.editorField.el&&D.isFunction(this.editorField.el.setSelectionRange)&&(!!E&&!!E.length)){this.editorField.el.setSelectionRange(0,E.length)}},getValue:function(){var E=(this.editorContainer.style.display=="");return E?this.editorField.getValue():this.value},setValue:function(F,E){this.value=F;if(D.isUndefined(F)||F==""){inputEx.renderVisu(this.options.visu,inputEx.messages.emptyInPlaceEdit,this.formattedContainer)}else{inputEx.renderVisu(this.options.visu,this.value,this.formattedContainer)}if(this.editorContainer.style.display==""){this.editorField.setValue(F)}inputEx.InPlaceEdit.superclass.setValue.call(this,F,E)},close:function(){this.editorContainer.style.display="none";this.formattedContainer.style.display=""}});inputEx.messages.emptyInPlaceEdit="(click to edit)";inputEx.messages.cancelEditor="cancel";inputEx.messages.okEditor="Ok";inputEx.registerType("inplaceedit",inputEx.InPlaceEdit,[{type:"type",label:"Editor",name:"editorField"}])})();(function(){var A=YAHOO.util.Event,B=YAHOO.util.Dom,C=YAHOO.lang;inputEx.TypeField=function(D){inputEx.TypeField.superclass.constructor.call(this,D);this.updateFieldValue()};C.extend(inputEx.TypeField,inputEx.Field,{renderComponent:function(){this.fieldValueWrapper=inputEx.cn("div",{className:"inputEx-TypeField-FieldValueWrapper"});this.fieldContainer.appendChild(this.fieldValueWrapper);this.propertyPanel=inputEx.cn("div",{className:"inputEx-TypeField-PropertiesPanel"},{display:"none"});var D=[];for(var E in inputEx.typeClasses){if(inputEx.typeClasses.hasOwnProperty(E)){D.push({value:E})}}this.typeSelect=new inputEx.SelectField({label:"Type",choices:D,parentEl:this.propertyPanel});this.groupOptionsWrapper=inputEx.cn("div");this.propertyPanel.appendChild(this.groupOptionsWrapper);this.button=inputEx.cn("div",{className:"inputEx-TypeField-EditButton"});this.button.appendChild(this.propertyPanel);this.fieldContainer.appendChild(this.button);this.rebuildGroupOptions()},initEvents:function(){inputEx.TypeField.superclass.initEvents.call(this);A.addListener(this.button,"click",this.onTogglePropertiesPanel,this,true);A.addListener(this.propertyPanel,"click",function(D){A.stopPropagation(D)},this,true);this.typeSelect.updatedEvt.subscribe(this.rebuildGroupOptions,this,true)},rebuildGroupOptions:function(){try{var D=null;if(this.group){D=this.group.getValue();this.group.close();this.group.destroy();this.groupOptionsWrapper.innerHTML=""}var G=inputEx.getFieldClass(this.typeSelect.getValue());var E={fields:G.groupOptions,parentEl:this.groupOptionsWrapper};this.group=new inputEx.Group(E);if(D){this.group.setValue({name:D.name,label:D.label})}this.group.updatedEvt.subscribe(this.onChangeGroupOptions,this,true);this.updateFieldValue()}catch(F){if(YAHOO.lang.isObject(window.console)&&YAHOO.lang.isFunction(window.console["log"])){console.log("inputEx.TypeField.rebuildGroupOptions: ",F)}}},onTogglePropertiesPanel:function(){if(this.propertyPanel.style.display=="none"){this.propertyPanel.style.display="";B.addClass(this.button,"opened")}else{this.propertyPanel.style.display="none";B.removeClass(this.button,"opened")}},onChangeGroupOptions:function(){this.updateFieldValue();this.fireUpdatedEvt()},updateFieldValue:function(){try{if(this.fieldValue){this.fieldValue.close();this.fieldValue.destroy();delete this.fieldValue;this.fieldValueWrapper.innerHTML=""}var E=this.group.getValue();E.type=this.getValue().type;E.parentEl=this.fieldValueWrapper;this.fieldValue=inputEx(E,this);this.fieldValue.updatedEvt.subscribe(this.fireUpdatedEvt,this,true)}catch(D){console.log("Error while updateFieldValue",D.message)}},setValue:function(E,D){this.typeSelect.setValue(E.type,false);this.rebuildGroupOptions();if(C.isObject(E.inputParams)){this.group.setValue(E.inputParams,false)}else{this.group.setValue(E,false)}this.updateFieldValue();if(C.isObject(E.inputParams)&&!C.isUndefined(E.inputParams.value)){this.fieldValue.setValue(E.inputParams.value)}else{if(!C.isUndefined(E.value)){this.fieldValue.setValue(E.value)}}if(D!==false){this.fireUpdatedEvt()}},getValue:function(){var I=function(K,N){var J,L=K.groupOptions.length,M;for(J=0;J");this.alertPanel.render(document.body);B.addListener("alertPanelButton","click",function(){this.alertPanel.hide()},this,true)},renderButtons:function(){var I=D.get("toolbar");var H=new E.Button({label:"New",id:"WiringEditor-newButton",container:I});H.on("click",this.onNew,this,true);var K=new E.Button({label:"Load",id:"WiringEditor-loadButton",container:I});K.on("click",this.load,this,true);var J=new E.Button({label:"Save",id:"WiringEditor-saveButton",container:I});J.on("click",this.onSave,this,true);var M=new E.Button({label:"Delete",id:"WiringEditor-deleteButton",container:I});M.on("click",this.onDelete,this,true);var L=new E.Button({label:"Help",id:"WiringEditor-helpButton",container:I});L.on("click",this.onHelp,this,true)},renderSavedStatus:function(){this.savedStatusEl=WireIt.cn("div",{className:"savedStatus",title:"Not saved"},{display:"none"},"*");D.get("toolbar").appendChild(this.savedStatusEl)},onSave:function(){this.save()},save:function(){},alert:function(H){if(!this.alertPanel){this.renderAlertPanel()}D.get("alertPanelBody").innerHTML=H;this.alertPanel.show()},onHelp:function(){this.helpPanel.show()},renderPropertiesAccordion:function(){this.accordionView=new YAHOO.widget.AccordionView("accordionView",this.options.accordionViewParams)},renderPropertiesForm:function(){this.propertiesForm=new inputEx.Group({parentEl:YAHOO.util.Dom.get("propertiesForm"),fields:this.options.propertiesFields});this.propertiesForm.updatedEvt.subscribe(function(){this.markUnsaved()},this,true)},markSaved:function(){this.savedStatusEl.style.display="none"},markUnsaved:function(){this.savedStatusEl.style.display=""},isSaved:function(){return(this.savedStatusEl.style.display=="none")}}})();(function(){var A=YAHOO.util,C=YAHOO.lang,B=A.Dom;WireIt.ModuleProxy=function(E,D){this._WiringEditor=D;WireIt.ModuleProxy.superclass.constructor.call(this,E,"module",{dragElId:"moduleProxy"});this.isTarget=false};C.extend(WireIt.ModuleProxy,YAHOO.util.DDProxy,{startDrag:function(F){WireIt.ModuleProxy.superclass.startDrag.call(this,F);var D=this.getDragEl(),E=this.getEl();D.innerHTML=E.innerHTML;D.className=E.className},endDrag:function(D){},onDragDrop:function(H,F){var I=F[0],G=F[0]._layer,E=this.getDragEl(),J=B.getXY(E),D=B.getXY(G.el);this._WiringEditor.addModule(this._module,[J[0]-D[0]+G.el.scrollLeft,J[1]-D[1]+G.el.scrollTop])}})})();(function(){var C=YAHOO.util,F=YAHOO.lang;var B=C.Event,D=C.Dom,A=C.Connect,E=YAHOO.widget;WireIt.WiringEditor=function(G){this.modulesByName={};WireIt.WiringEditor.superclass.constructor.call(this,G);if(this.adapter.init&&YAHOO.lang.isFunction(this.adapter.init)){this.adapter.init()}this.load()};F.extend(WireIt.WiringEditor,WireIt.BaseEditor,{setOptions:function(J){WireIt.WiringEditor.superclass.setOptions.call(this,J);this.modules=J.modules||[];for(var K=0;K"});this.modulesAccordionView.openPanel(this.modulesAccordionView._panels.length-1);I=D.get("module-category-"+J)}I.appendChild(L)}catch(G){console.log(G)}},getCurrentGrouper:function(G){return G.currentGrouper},addModule:function(J,M){try{var L=J.container;L.position=M;L.title=J.name;var H=this;L.getGrouper=function(){return H.getCurrentGrouper(H)};var G=this.layer.addContainer(L);var K=J.category||"main";D.addClass(G.el,"WiringEditor-module-category-"+K.replace(/ /g,"-"));D.addClass(G.el,"WiringEditor-module-"+J.name.replace(/ /g,"-"))}catch(I){this.alert("Error Layer.addContainer: "+I.message);if(window.console&&YAHOO.lang.isFunction(console.log)){console.log(I)}}},save:function(){var G=this.getValue();if(G.name===""){this.alert("Please choose a name");return }this.tempSavedWiring={name:G.name,working:G.working,language:this.options.languageName};this.adapter.saveWiring(this.tempSavedWiring,{success:this.saveModuleSuccess,failure:this.saveModuleFailure,scope:this})},saveModuleSuccess:function(G){this.markSaved();this.alert("Saved !")},saveModuleFailure:function(G){this.alert("Unable to save the wiring : "+G)},onNew:function(){if(!this.isSaved()){if(!confirm("Warning: Your work is not saved yet ! Press ok to continue anyway.")){return }}this.preventLayerChangedEvent=true;this.layer.clear();this.propertiesForm.clear(false);this.markSaved();this.preventLayerChangedEvent=false},onDelete:function(){if(confirm("Are you sure you want to delete this wiring ?")){var G=this.getValue();this.adapter.deleteWiring({name:G.name,language:this.options.languageName},{success:function(H){this.onNew();this.alert("Deleted !")},failure:function(H){this.alert("Unable to delete wiring: "+H)},scope:this})}},renderLoadPanel:function(){if(!this.loadPanel){this.loadPanel=new E.Panel("WiringEditor-loadPanel",{fixedcenter:true,draggable:true,width:"500px",visible:false,modal:true});this.loadPanel.setHeader("Select the wiring to load");this.loadPanel.setBody("Filter:
");this.loadPanel.render(document.body);B.onAvailable("loadFilter",function(){B.addListener("loadFilter","keyup",this.inputFilterTimer,this,true)},this,true)}},inputFilterTimer:function(){if(this.inputFilterTimeout){clearTimeout(this.inputFilterTimeout);this.inputFilterTimeout=null}var G=this;this.inputFilterTimeout=setTimeout(function(){G.updateLoadPanelList(D.get("loadFilter").value)},500)},updateLoadPanelList:function(I){var K=WireIt.cn("ul");if(F.isArray(this.pipes)){for(var H=0;H=0&&D.isArray(this.selectedGroups)&&F0||this.groups.length>0){var K=new WireIt.Group(this,this.layer);var L=[];var G=[];for(var F in this.containers){var J=this.containers[F];K.addContainer(J);G.push(J)}for(var M in this.groups){var H=this.groups[M];K.addGroup(H);this.layer.removeGroup(H);L.push(H)}for(var I in G){this.removeContainer(G[I])}for(var E in L){this.removeGroup(L[E])}this.layer.groups.push(K);K.events.groupEmptied.subscribe(function(){this.layer.removeGroup.call(this.layer,K)},this,true);this.showGroup(K,true)}},showGroup:function(F,G){var E;if(G){E=F}else{E=WireIt.GroupUtils.getOuterGroup(F)}this.showGroupConfigure.call(this,E);this.setupSelectedGroups(F)},setupSelectedGroups:function(H){var E=[];this.selectedGroups=E;var G=this.display;G.groupSelect.innerHTML="";var F=this.selectedGroup;WireIt.GroupUtils.getOuterGroup(H,function(J){var I=WireIt.cn("option",{value:"N"+E.length},{},"N"+E.length);E.push(J);G.groupSelect.appendChild(I);if(F==J){I.selected=true}})},showGroupConfigure:function(H,G){if(!D.isValue(H)||D.isValue(H.groupContainer)){hideGroupConfigure()}else{var E=this;var F=H.generateUI(G,function(){E.setGroupOptions.call(E)});this.setDisplay(F.listRows);this.setSelectedGroup(H);this.display.containerUIMap=F.containerUIMap;this.display.groupUIMap=F.groupUIMap;H.events.stateChanged.subscribe(function(){this.deselectGroup();this.hideGroupConfigure()},this,true);this.display.mainDiv.style.display="block"}},hideGroupConfigure:function(){this.display.mainDiv.style.display="none"},setSelectedGroup:function(E){this.deselectGroup();this.selectedGroup=E;WireIt.GroupUtils.applyToContainers(this.selectedGroup,true,function(F){F.highlight()})},deselectGroup:function(){if(D.isValue(this.selectedGroup)){WireIt.GroupUtils.applyToContainers(this.selectedGroup,true,function(E){E.dehighlight()})}this.selectedGroup=null},rubberbandSelect:function(){for(var F in this.layer.containers){var I=this.layer.containers[F];var H=this.getContainerCorners(I);var E=true;for(var G in H){E&=this.rubberband.pointIsInside(H[G].x,H[G].y)}if(E){this.addContainer(I)}}},getContainerCorners:function(E){var I=E.el.offsetTop;var F=I+E.el.offsetHeight;var H=E.el.offsetLeft;var G=H+E.el.offsetWidth;return[{x:H,y:I},{x:H,y:F},{x:G,y:I},{x:G,y:F}]}}})();(function(){var B=YAHOO.util,E=YAHOO.lang;var C=B.Dom,A=B.Event,D="WireIt-";WireIt.GroupFormContainer=function(F,G){WireIt.GroupFormContainer.superclass.constructor.call(this,F,G);this.getBaseConfig=this.options.getBaseConfigFunction;this.positionTerminals()};YAHOO.lang.extend(WireIt.GroupFormContainer,WireIt.FormContainer,{setOptions:function(F){WireIt.GroupFormContainer.superclass.setOptions.call(this,F);this.options.getBaseConfigFunction=F.getBaseConfigFunction;this.options.groupConfig=F.groupConfig},render:function(){WireIt.GroupFormContainer.superclass.render.call(this);this.renderExpand()},positionTerminals:function(){var K={};for(var T in this.options.terminals){var U=this.options.terminals[T];var F=U.side;if(!E.isValue(F)){F="top"}if(!E.isArray(K[F])){K[F]=[]}K[F].push(U)}var R=30;var W=function(X){return R*(X-1)};var G=function(d,b,Y){var X=W(b);var a=X/2;var c=Y/2;c-=a-d*R;var Z=R/2;return c-Z};var P=this.el.offsetHeight;var Q=this.el.offsetWidth;var N=Math.max(WireIt.GroupUtils.valueOr(K.top,[]).length,WireIt.GroupUtils.valueOr(K.bottom,[]).length);var L=Math.max(WireIt.GroupUtils.valueOr(K.left,[]).length,WireIt.GroupUtils.valueOr(K.right,[]).length);if(PR){L.left=R}if((typeof L.right=="undefined")||L.rightQ){L.top=Q}if((typeof L.bottom=="undefined")||L.bottom0){H.rename=J}R.fields[N]=H}for(var K in Q.terminals){var S=Q.terminals[K];var H={};H.visible=S.visible.checked;var J=S.externalName.value;if(J.length>0){H.rename=J}H.side=S.side.value;R.terminals[K]=H}containerOverrides.push(R)}for(var T in I){var M=I[L];var R={fields:{},terminals:{}};for(var N in M.fields){var O=M.fields[N];var H={};H.visible=O.visible.checked;var J=O.externalName.value;if(J.length>0){H.rename=J}R.fields[N]=H}for(var K in M.terminals){var S=M.terminals[K];var H={};H.visible=S.visible.checked;var J=S.externalName.value;if(J.length>0){H.rename=J}H.side=S.side.value;R.terminals[K]=H}}return{containerOverrides:containerOverrides,groupOverrides:groupOverrides}},getMap:function(T){if(G.isValue(T.groupContainer)){var H={fields:[],terminals:[]};var K=function(U){return U==T.groupContainer};for(var L in T.groupContainer.form.inputConfigs){var R=T.groupContainer.form.inputConfigs[L];var O={};G.augmentObject(O,R);var N={fieldConfig:O};if(this.isFieldExternal(T.groupContainer.form.inputs[L],K)){N.externalName=R.name;N.visible=true}H.fields.push(N)}for(var M in T.groupContainer.options.terminals){var I=T.groupContainer.options.terminals[M];var S={terminalConfig:I};if(this.isTerminalExternal(T.groupContainer.terminals[M],K)){S.visible=true;S.externalName=I.name}H.terminals.push(S)}return{groupContainerMap:H}}var Q={terminals:{},fields:{}};var P={};var J={};this.generateFieldMap(T,Q,P,J);this.generateTerminalMap(T,Q,P,J);this.generateDefaultFieldNames(P,Q);this.generateDefaultFieldNames(J,Q);this.generateDefaultTerminalNames(P,Q);this.generateDefaultTerminalNames(J,Q);return{containerMap:P,groupMap:J}},generateDefaultTerminalNames:function(L,H){for(var J in L){var M=L[J];for(var I in M.terminals){var K=M.terminals[I];if(K.visible&&!G.isValue(K.externalName)){K.externalName=this.generateFreshName(I,H.terminals);H.terminals[K.externalName]=true}}}},generateDefaultFieldNames:function(M,H){for(var I in M){var N=M[I];for(var L in N.fields){var K=N.fields[L];if(K.visible&&!G.isValue(K.externalName)){if(K.fieldConfig.wirable){var J={};G.augmentObject(J,H.fields);G.augmentObject(J,H.terminals);K.externalName=WireIt.GroupUtils.generateFreshName(L,J);H.fields[K.externalName]=true;H.terminals[K.externalName]=true}else{K.externalName=WireIt.GroupUtils.generateFreshName(L,H.fields);H.fields[K.externalName]=true}}}}},generateTerminalMap:function(L,I,X,V){var P=this;var Q=function(h,k,j,i,f){for(var g in h){var l=h[g];var d=l.name;var e=k[d];var c={terminalConfig:l};if(G.isObject(e)&&e.visible){c.visible=true;if(G.isValue(e.rename)){if(G.isValue(j.terminals[e.rename])){throw {type:"MappingError",message:"Two identical terminal names specified ("+e.rename+")"}}j.terminals[e.rename]=true;c.externalName=e.rename}c.side=e.side}if(i(d)){c.visible=true;c.forceVisible=true}f[d]=c}};var b=[];WireIt.GroupUtils.addAllContainers(L,b);var Y=function(c){for(var d in b){if(c==b[d]){return true}}return false};for(var H in L.containers){var J=L.containers[H];var Z=J.container;var K=J.overrides;var M={};var U=G.isArray(Z.options.terminals)?Z.options.terminals:[];var T=function(c){var f;for(var e in Z.terminals){var d=Z.terminals[e];if(d.options.name==c){f=d;break}}return P.isTerminalExternal(f,Y)};Q(U,K.terminals,I,T,M,Z.options.title);X[H].terminals=M}for(var O in L.groups){var R=L.groups[O];var W=R.group;var K=R.overrides;var S={};var a=WireIt.GroupUtils.getMap(W);var U=WireIt.GroupUtils.getCollapsedConfig(W,a).terminals;var T;if(G.isValue(W.groupContainer)){T=function(c){var f;for(var e in W.groupContainer.terminals){var d=W.groupContainer.terminals[e];if(d.options.name==c){f=d;break}}return P.isTerminalExternal(f,Y)}}else{var N=WireIt.GroupUtils.getExternalToInternalMap(a);T=function(d){for(var c in N.containerMap.terminals){var h=N.containerMap.terminals[c];var g;for(var f in W.containers[h.containerId].terminals){var e=W.containers[h.containerId].terminals[f];if(e.options.name==d){g=e;break}}if(P.isTerminalExternal(g,Y)){return true}}return false}}Q(U,K.terminals,I,T,S);V[O].terminals=S}},isFieldExternal:function(I,H){if(G.isValue(I)){return this.isTerminalExternal(I.terminal,H)}},isTerminalExternal:function(J,I){if(G.isValue(J)){for(var K in J.wires){var H=J.wires[K];if((H.terminal1!=J&&!I(H.terminal1.container))||(H.terminal2!=J&&!I(H.terminal2.container))){return true}}}return false},generateFieldMap:function(M,I,W,U){var Q=this;var a=[];WireIt.GroupUtils.addAllContainers(M,a);var X=function(b){for(var c in a){if(b==a[c]){return true}}return false};for(var H in M.containers){var K=M.containers[H];var Y=K.container;var L=K.overrides;var N={};if(G.isObject(Y.form)){var O=Y.form.inputConfigs;var T=function(b){return Q.isFieldExternal.call(Q,Y.form.inputsNames[b],X)};this.mergeFieldOverrides(O,L.fields,I,T,N)}W[H]={};W[H].fields=N}for(var P in M.groups){var R=M.groups[P];var V=R.group;var L=R.overrides;var S={};var Z=WireIt.GroupUtils.getMap(V);var O=WireIt.GroupUtils.getCollapsedConfig(V,Z).fields;var T;if(G.isValue(V.groupContainer)){T=function(b){return Q.isFieldExternal.call(Q,V.groupContainer.form.inputsNames[b],X)}}else{var J;J=function(c,h,g){if(!G.isValue(g)){g=WireIt.GroupUtils.getMap(h)}var b=WireIt.GroupUtils.getExternalToInternalMap(g);var d=b.containerMap.fields[c];if(G.isValue(d)){var e=h.containers[d.containerId].container.form.inputsNames[d.name];if(Q.isFieldExternal.call(Q,e,X)){return true}}else{var d=b.groupMap.fields[c];if(G.isValue(d)){return J(c,h.groups[d.containerId].group)}}return false};T=function(b){return J(b,V,Z)}}this.mergeFieldOverrides(O,L.fields,I,T,S);U[P]={};U[P].fields=S}},generateFreshName:function(J,H){var L=function(N){return G.isValue(H[N])};var I=J;if(L(I)){var K=1;var M=I;do{I=M+K;K++}while(L(I))}H[I]=true;return I},mergeFieldOverrides:function(L,Q,P,O,K){for(var M in L){var N=L[M];var I=N.name;var J=Q[I];var H={fieldConfig:N};if(G.isObject(J)&&J.visible){H.visible=true;if(G.isValue(J.rename)){if(G.isValue(P.fields[J.rename])){throw {type:"MappingError",message:"Two identical field names specified ("+J.rename+")"}}P.fields[J.rename]=true;if(N.wirable){P.terminals[I]=true}H.externalName=J.rename}}if(O(I)){H.visible=true;H.forceVisible=true}K[I]=H}},generateFields:function(Q,S,O){var U=[];var P=[];var R=[];var N={};var L=function(b,c){N[b]=true;if(c.wirable){R[b]=true}};for(var T in Q){var X=Q[T];for(var M in X){var Y=X[M];var W=new String(T);var J=new String(Y.name);var I=W+J+"";var V=S.fields[I];var a=O.fields[I];var Z={};if(G.isObject(V)&&V.visible){if(G.isValue(V.rename)){var K={};G.augmentObject(K,Y,{label:V.rename,name:V.rename});U.push(K);L(V.rename,Y)}else{P.push(Y)}}else{if(a){P.push(Y)}}}}for(var M in P){var Y=P[M];var H=this.generateNextName(Y.name,N);L(H,Y);var K={};G.augmentObject(K,Y);K.name=H;U.push(K)}return{fields:U,usedTerminalNames:R}},generateTerminals:function(N,Q,O,P){var R=[];var I=[];for(var S in N){var J=N[S];for(var K in J){var T=J[K];var H=Q.terminals[S+T.name];var M=O.terminals[S+T.name];if(G.isObject(H)&&H.visible){if(G.isValue(H.rename)){var L={};G.augmentObject(L,T);L.name=H.rename;P[H.rename]=true;R.push(L)}else{I.push(T)}}else{if(M){I.push(T)}}}}for(var K in I){var T=I[K];var U=this.generateNextName(T.name,P);P[U]=true;var L={};G.augmentObject(L,T);L.name=U;R.push(L)}return R},generateNextName:function(J,H){var L=function(N){return G.isValue(H[N])};var I=J;if(L(I)){var K=1;var M=I;do{I=M+K;K++}while(L(I))}H[I]=true;return I},getExternalTerminalName:function(J,K,L,M){for(var I in terminalMap){var H=terminalMap[I];if(H.name==internalTerminal.options.name&&H.moduleId==internalModuleId){return I}}throw {type:"MappingError",message:"Couldn't find internal terminal's external name"}},fieldConfigsFromModules:function(L,J){var I={};for(var P in L){var K=L[P];var H={};G.augmentObject(H,K.config);G.augmentObject(H,J(K.name));if(G.isArray(H.fields)){var N=[];for(var M in H.fields){var O=H.fields[M];N.push(O)}I[P]=N}}return I},fieldConfigsFromContainers:function(L){var J={};for(var I in L){var N=L[I];if(G.isObject(N.form)){var H=[];for(var M in N.form.inputConfigs){var K=N.form.inputConfigs[M];H.push(K)}J[I]=H}}return J},terminalConfigsFromModules:function(L,J){var I={};for(var O in L){var K=L[O];var H={};G.augmentObject(H,K.config);G.augmentObject(H,J(K.name));if(G.isArray(H.terminals)){var N=[];for(var M in H.terminals){var P=H.terminals[M];N.push(P)}I[O]=N}}return I},getInternalModuleConfig:function(L,I){var K=[];for(var J in L){var M=L[J];var H=M.getConfig();H.position[0]=H.position[0]-I[0];H.position[1]=H.position[1]-I[1];K.push({name:M.options.title,value:M.getValue(),config:H})}return K},getWireConfig:function(K,I,H){var L=[];var J=[];this.addWireConfig(K,I,H,L,J);return{external:L,internal:J}},addWireConfig:function(N,M,I,R,Q,O){var L=function(W,V){var U=false;var X;for(var T in W){X=W[T];if(X.src.moduleId==V.src.moduleId&&X.tgt.moduleId==V.tgt.moduleId&&X.src.terminal==V.src.terminal&&X.tgt.terminal==V.tgt.terminal){U=true;break}}if(!U){W.push(V)}};var P=function(Y,U){for(var W in Y.wires){var b=Y.wires[W];var a=M(b.terminal1.container);var T=M(b.terminal2.container);if(a!=-1&&T!=-1){L(Q,{src:{moduleId:a,terminal:b.terminal1.options.name},tgt:{moduleId:T,terminal:b.terminal2.options.name}})}else{var X={};var Z,V;if(a==-1){X.groupIsSource=false;Z=b.terminal1;V=b.terminal2}else{X.groupIsSource=true;Z=b.terminal2;V=b.terminal1}X.externalName=U(V.options.name);X.groupTerminal=V;X.externalTerminal=Z;R.push(X)}}};if(!G.isValue(O)){O=0}if(G.isValue(N.groupContainer)){P(N.groupContainer,function(T){return I("group",O,T)})}else{for(var H in N.containers){var K=N.containers[H].container;P(K,function(T){return I("container",H,T)})}for(var S in N.groups){var J=N.groups[S].group;this.addWireConfig(J,M,I,R,Q,parseInt(S)+O)}}},firstTestSucess:function(H,J){var I;for(I=0;IQ[0])?1:-1;i=Q[0]+e*M;h=i;H-=j;F+=j}N.fillStyle=this.color;N.beginPath();N.moveTo(Q[0],Q[1]);N.lineTo(i,H);N.lineTo(h,F);N.fill();N.strokeStyle=this.bordercolor;N.lineWidth=this.borderwidth;N.beginPath();N.moveTo(Q[0],Q[1]);N.lineTo(i,H);N.lineTo(h,F);N.lineTo(Q[0],Q[1]);N.stroke()}});WireIt.BezierWire=function(D,C,B,A){WireIt.BezierWire.superclass.constructor.call(this,D,C,B,A)};YAHOO.lang.extend(WireIt.BezierWire,WireIt.Wire,{xtype:"WireIt.BezierWire",coeffMulDirection:100,draw:function(){var O=this.terminal1.getXY();var M=this.terminal2.getXY();var F=this.coeffMulDirection;var B=Math.sqrt(Math.pow(O[0]-M[0],2)+Math.pow(O[1]-M[1],2));if(BK[0]){K[0]=D[0]}if(D[1]>K[1]){K[1]=D[1]}}var G=[4,4];H[0]=H[0]-G[0];H[1]=H[1]-G[1];K[0]=K[0]+G[0];K[1]=K[1]+G[1];var E=Math.abs(K[0]-H[0]);var N=Math.abs(K[1]-H[1]);this.min=H;this.max=K;this.SetCanvasRegion(H[0],H[1],E,N);var J=this.getContext();for(I=0;IR[0]){R[0]=f[0]}if(f[1]>R[1]){R[1]=f[1]}}s[0]=s[0]-F[0];s[1]=s[1]-F[1];R[0]=R[0]+F[0];R[1]=R[1]+F[1];var S=Math.abs(R[0]-s[0]);var Y=Math.abs(R[1]-s[1]);this.min=s;this.max=R;this.SetCanvasRegion(s[0],s[1],S,Y);var h=this.getContext();for(m=0;mV[0])?1:-1;M=V[0]+g*H;K=M;y-=r;x+=r}h.fillStyle=this.color;h.beginPath();h.moveTo(V[0],V[1]);h.lineTo(M,y);h.lineTo(K,x);h.fill();h.strokeStyle=this.bordercolor;h.lineWidth=this.borderwidth;h.beginPath();h.moveTo(V[0],V[1]);h.lineTo(M,y);h.lineTo(K,x);h.lineTo(V[0],V[1]);h.stroke();return[q,n,X,V]}});(function(){var A=YAHOO.util;var C=YAHOO.lang,B="WireIt-";WireIt.TerminalProxy=function(E,D){this.terminal=E;this.termConfig=D||{};this.terminalProxySize=D.terminalProxySize||10;this.fakeTerminal=null;WireIt.TerminalProxy.superclass.constructor.call(this,this.terminal.el,undefined,{dragElId:"WireIt-TerminalProxy",resizeFrame:false,centerFrame:true})};A.DDM.mode=A.DDM.INTERSECT;C.extend(WireIt.TerminalProxy,YAHOO.util.DDProxy,{createFrame:function(){var E=this,D=document.body;if(!D||!D.firstChild){window.setTimeout(function(){E.createFrame()},50);return }var J=this.getDragEl(),I=YAHOO.util.Dom;if(!J){J=document.createElement("div");J.id=this.dragElId;var H=J.style;H.position="absolute";H.visibility="hidden";H.cursor="move";H.border="2px solid #aaa";H.zIndex=999;var F=this.terminalProxySize+"px";H.height=F;H.width=F;var G=document.createElement("div");I.setStyle(G,"height","100%");I.setStyle(G,"width","100%");I.setStyle(G,"background-color","#ccc");I.setStyle(G,"opacity","0");J.appendChild(G);D.insertBefore(J,D.firstChild)}},startDrag:function(){if(this.terminal.nMaxWires==1&&this.terminal.wires.length==1){this.terminal.wires[0].remove()}else{if(this.terminal.wires.length>=this.terminal.nMaxWires){return }}var E=this.terminalProxySize/2;this.fakeTerminal={direction:this.terminal.fakeDirection,pos:[200,200],addWire:function(){},removeWire:function(){},getXY:function(){var G=YAHOO.util.Dom.getElementsByClassName("WireIt-Layer");if(G.length>0){var H=YAHOO.util.Dom.getXY(G[0]);return[this.pos[0]-H[0]+E,this.pos[1]-H[1]+E]}return this.pos}};var F=this.terminal.parentEl.parentNode;if(this.terminal.container){F=this.terminal.container.layer.el}var D=WireIt.wireClassFromXtype(this.terminal.editingWireConfig.xtype);this.editingWire=new D(this.terminal,this.fakeTerminal,F,this.terminal.editingWireConfig);YAHOO.util.Dom.addClass(this.editingWire.element,B+"Wire-editing")},onDrag:function(D){if(!this.editingWire){return }if(this.terminal.container){this.fakeTerminal.pos=[D.clientX+this.terminal.container.layer.el.scrollLeft,D.clientY+this.terminal.container.layer.el.scrollTop]}else{this.fakeTerminal.pos=(YAHOO.env.ua.ie)?[D.clientX,D.clientY]:[D.clientX+window.pageXOffset,D.clientY+window.pageYOffset]}this.editingWire.redraw()},endDrag:function(D){if(this.editingWire){this.editingWire.remove();this.editingWire=null}},onDragEnter:function(F,D){if(!this.editingWire){return }for(var E=0;E0){D.wires[0].remove()}M=new K(F,E,I,F.wireConfig);M.redraw()}else{if(D.wires.length0){this.show()}},scissorClick:function(){this._terminal.removeAllWires();if(this.terminalTimeout){this.terminalTimeout.cancel()}this.hideNow()},show:function(){this.setPosition();this.setStyle("display","");if(WireIt.Scissors.visibleInstance&&WireIt.Scissors.visibleInstance!=this){if(WireIt.Scissors.visibleInstance.terminalTimeout){WireIt.Scissors.visibleInstance.terminalTimeout.cancel()}WireIt.Scissors.visibleInstance.hideNow()}WireIt.Scissors.visibleInstance=this;if(this.terminalTimeout){this.terminalTimeout.cancel()}},hide:function(){this.terminalTimeout=YAHOO.lang.later(700,this,this.hideNow)},hideNow:function(){WireIt.Scissors.visibleInstance=null;this.setStyle("display","none")}})})();(function(){var B=YAHOO.util;var A=B.Event,E=YAHOO.lang,C=B.Dom,D="WireIt-";WireIt.Terminal=function(H,G,F){this.name=null;this.parentEl=H;this.container=F;this.wires=[];this.setOptions(G);this.eventAddWire=new B.CustomEvent("eventAddWire");this.eventRemoveWire=new B.CustomEvent("eventRemoveWire");this.el=null;this.render();if(this.editable){this.dd=new WireIt.TerminalProxy(this,this.ddConfig);this.scissors=new WireIt.Scissors(this)}};WireIt.Terminal.prototype={xtype:"WireIt.Terminal",direction:[0,1],fakeDirection:[0,-1],editable:true,nMaxWires:Infinity,wireConfig:{},editingWireConfig:{},className:"WireIt-Terminal",connectedClassName:"WireIt-Terminal-connected",dropinviteClassName:"WireIt-Terminal-dropinvite",offsetPosition:null,alwaysSrc:false,ddConfig:false,setOptions:function(G){for(var F in G){if(G.hasOwnProperty(F)){this[F]=G[F]}}if(G.direction&&!G.fakeDirection){this.fakeDirection=[-G.direction[0],-G.direction[1]]}if(G.wireConfig&&!G.editingWireConfig){this.editingWireConfig=this.wireConfig}},setDropInvitation:function(F){if(F){C.addClass(this.el,this.dropinviteClassName)}else{C.removeClass(this.el,this.dropinviteClassName)}},render:function(){this.el=WireIt.cn("div",{className:this.className});if(this.name){this.el.title=this.name}this.setPosition(this.offsetPosition);this.parentEl.appendChild(this.el)},setPosition:function(G){if(G){this.el.style.left="";this.el.style.top="";this.el.style.right="";this.el.style.bottom="";if(E.isArray(G)){this.el.style.left=G[0]+"px";this.el.style.top=G[1]+"px"}else{if(E.isObject(G)){for(var F in G){if(G.hasOwnProperty(F)&&G[F]!==""){this.el.style[F]=G[F]+"px"}}}}}},addWire:function(F){this.wires.push(F);C.addClass(this.el,this.connectedClassName);this.eventAddWire.fire(F)},removeWire:function(G){var F=WireIt.indexOf(G,this.wires);if(F!=-1){this.wires[F].destroy();this.wires[F]=null;this.wires=WireIt.compact(this.wires);if(this.wires.length===0){C.removeClass(this.el,this.connectedClassName)}this.eventRemoveWire.fire(G)}},getXY:function(){var G=this.container&&this.container.layer?this.container.layer.el:document.body;var H=this.el;var I=0,F=0;if(H.offsetParent){do{I+=H.offsetLeft;F+=H.offsetTop;H=H.offsetParent}while(!!H&&H!=G)}return[I+15,F+15]},remove:function(){while(this.wires.length>0){this.wires[0].remove()}this.parentEl.removeChild(this.el);A.purgeElement(this.el);if(this.scissors){A.purgeElement(this.scissors.get("element"))}},getConnectedTerminals:function(){var F=[];if(this.wires){for(var G=0;G0){this.wires[0].remove()}}}})();WireIt.util.TerminalInput=function(C,B,A){WireIt.util.TerminalInput.superclass.constructor.call(this,C,B,A)};YAHOO.lang.extend(WireIt.util.TerminalInput,WireIt.Terminal,{xtype:"WireIt.TerminalInput",direction:[0,-1],fakeDirection:[0,1],nMaxWires:1,ddConfig:{type:"input",allowedTypes:["output"]}});WireIt.util.TerminalOutput=function(C,B,A){WireIt.util.TerminalOutput.superclass.constructor.call(this,C,B,A)};YAHOO.lang.extend(WireIt.util.TerminalOutput,WireIt.Terminal,{xtype:"WireIt.TerminalOutput",direction:[0,1],fakeDirection:[0,-1],ddConfig:{type:"output",allowedTypes:["input"]},alwaysSrc:true});WireIt.util.DD=function(D,C,A,B){if(!D){throw new Error("WireIt.util.DD needs at least terminals and id")}this._WireItTerminals=D;WireIt.util.DD.superclass.constructor.call(this,C,A,B)};YAHOO.extend(WireIt.util.DD,YAHOO.util.DD,{onDrag:function(D){var A=YAHOO.lang.isArray(this._WireItTerminals)?this._WireItTerminals:(this._WireItTerminals.isWireItTerminal?[this._WireItTerminals]:[]);for(var C=0;C0){this.removeContainer(this.containers[0])}},removeAllContainers:function(){this.clear()},getWiring:function(){var B;var C={containers:[],wires:[]};for(B=0;B=E&&H=C&&F=E&&H=C&&FF){L[0]=F-M}if(L[1]+J>N){L[1]=N-J}this.layer.el.scrollLeft=L[0];this.layer.el.scrollTop=L[1]},onLayerScroll:function(){if(this.scrollTimer){window.clearTimeout(this.scrollTimer)}var C=this;this.scrollTimer=window.setTimeout(function(){C.draw()},50)},draw:function(){var N=this.getContext();var E=B.getRegion(this.element);var D=E.right-E.left-4;var J=E.bottom-E.top-4;N.clearRect(0,0,D,J);var C=this.layer.el.scrollWidth;var L=this.layer.el.scrollHeight;var F=Math.floor(100*D/C)/100;var M=Math.floor(100*J/L)/100;var O=B.getRegion(this.layer.el);var K=O.right-O.left;var I=O.bottom-O.top;var H=this.layer.el.scrollLeft;var G=this.layer.el.scrollTop;N.strokeStyle="rgb(200, 50, 50)";N.lineWidth=1;N.strokeRect(H*F,G*M,K*F,I*M);N.fillStyle=this.style;N.strokeStyle=this.style;N.lineWidth=this.lineWidth;this.drawContainers(N,F,M);this.drawWires(N,F,M)},drawContainers:function(C,I,F){var H=this.layer.containers;var J=H.length,E,D=WireIt.getIntStyle,G;for(E=0;E";return document.createElement(E)}else{var G=document.createElement(B);this.sn(G,F,C);if(H){G.innerHTML=H}return G}},indexOf:function(F,B,E){var C=B.length,D;if(!A.isFunction(E)){E=function(G,H){return G===H}}for(D=0;D=0)?D.length-1:0])}catch(E){alert(E)}}this.msgEl.innerHTML=F},show:function(){this.divEl.style.display=""},hide:function(){this.divEl.style.display="none"},clear:function(D){this.setValue(C.isUndefined(this.options.value)?"":this.options.value,D)},isEmpty:function(){return this.getValue()===""},setParentField:function(D){this.parentField=D},getParentField:function(){return this.parentField}};inputEx.Field.groupOptions=[{type:"string",label:"Label",name:"label",value:""},{type:"string",label:"Name",name:"name",value:""},{type:"string",label:"Description",name:"description",value:""},{type:"boolean",label:"Required?",name:"required",value:false},{type:"boolean",label:"Show messages",name:"showMsg",value:false}]})();(function(){var A=YAHOO.lang;inputEx.BaseField=inputEx.Field;inputEx.Field=function(B){inputEx.Field.superclass.constructor.call(this,B)};A.extend(inputEx.Field,inputEx.BaseField,{setOptions:function(B){inputEx.Field.superclass.setOptions.call(this,B);this.options.wirable=A.isUndefined(B.wirable)?false:B.wirable;this.options.container=B.container;B.container=null},render:function(){inputEx.Field.superclass.render.call(this);if(this.options.wirable){this.renderTerminal()}},renderTerminal:function(){var B=inputEx.cn("div",{className:"WireIt-InputExTerminal"});this.divEl.insertBefore(B,this.fieldContainer);this.terminal=new WireIt.Terminal(B,{name:this.options.name,direction:[-1,0],fakeDirection:[0,1],ddConfig:{type:"input",allowedTypes:["output"]},nMaxWires:1},this.options.container);if(this.options.container){this.options.container.terminals.push(this.terminal)}this.terminal.eventAddWire.subscribe(this.onAddWire,this,true);this.terminal.eventRemoveWire.subscribe(this.onRemoveWire,this,true)},onAddWire:function(B,C){this.options.container.onAddWire(B,C);this.disable();this.el.value="[wired]"},onRemoveWire:function(B,C){this.options.container.onRemoveWire(B,C);this.enable();this.el.value=""}});inputEx.Field.groupOptions=inputEx.BaseField.groupOptions.concat([{type:"boolean",label:"Wirable",name:"wirable",value:false}])})();WireIt.FormContainer=function(A,B){WireIt.FormContainer.superclass.constructor.call(this,A,B)};YAHOO.lang.extend(WireIt.FormContainer,WireIt.Container,{xtype:"WireIt.FormContainer",fields:[],legend:null,collapsible:false,render:function(){WireIt.FormContainer.superclass.render.call(this);this.renderForm()},renderForm:function(){this.setBackReferenceOnFieldOptionsRecursively(this.fields);var A={parentEl:this.bodyEl,fields:this.fields,legend:this.legend,collapsible:this.collapsible};this.form=new inputEx.Group(A);if(this.form.legend){YAHOO.util.Event.addListener(this.form.legend,"click",function(){var C=this;for(var B=0;B0){this.inputs[0].focus()}},getFieldByName:function(D){if(!this.inputsNames.hasOwnProperty(D)){return null}return this.inputsNames[D]},onChange:function(E,F){var G=F[0];var D=F[1];this.runInteractions(D,G);this.fireUpdatedEvt()},runAction:function(D,F){var E=this.getFieldByName(D.name);if(YAHOO.lang.isFunction(E[D.action])){E[D.action].call(E)}else{if(YAHOO.lang.isFunction(D.action)){D.action.call(E,F)}else{throw new Error("action "+D.action+" is not a valid action for field "+D.name)}}},runInteractions:function(E,J){var G=inputEx.indexOf(E,this.inputs);var I=this.options.fields[G];if(YAHOO.lang.isUndefined(I.interactions)){return }var K=I.interactions;for(var H=0;H=this.options.minLength}return D},disable:function(){this.el.disabled=true},enable:function(){this.el.disabled=false},focus:function(){if(!!this.el&&!C.isUndefined(this.el.focus)){this.el.focus()}},getStateString:function(D){if(D==inputEx.stateInvalid&&this.options.minLength&&this.el.value.length=0&&C.position=0){C=inputEx.indexOf(this.el.childNodes[this.el.selectedIndex],this.choicesList,function(E,D){return E===D.node});return this.choicesList[C].value}else{return""}},disable:function(){this.el.disabled=true},enable:function(){this.el.disabled=false},createChoiceNode:function(C){return inputEx.cn("option",{value:C.value},null,C.label)},removeChoiceNode:function(C){this.el.removeChild(C)},disableChoiceNode:function(C){C.disabled="disabled"},enableChoiceNode:function(C){C.removeAttribute("disabled")},appendChoiceNode:function(E,C){var F,D;F=0;for(D=0;D@"+B[0]+" ?";return false}}}}return true},validate:function(){var A=inputEx.EmailField.superclass.validate.call(this);if(!!this.options.fixdomain){this.options.messages.invalid=inputEx.messages.invalidEmail;return A&&this.validateDomain()}else{return A}},getValue:function(){var A;A=inputEx.EmailField.superclass.getValue.call(this);return inputEx.removeAccents(A.toLowerCase())}});inputEx.messages.invalidEmail="Invalid email, ex: sample@test.com";inputEx.messages.didYouMeant="Did you mean : ";inputEx.registerType("email",inputEx.EmailField,[])})();(function(){var A=YAHOO.lang;inputEx.UrlField=function(B){inputEx.UrlField.superclass.constructor.call(this,B)};A.extend(inputEx.UrlField,inputEx.StringField,{setOptions:function(B){inputEx.UrlField.superclass.setOptions.call(this,B);this.options.className=B.className?B.className:"inputEx-Field inputEx-UrlField";this.options.messages.invalid=inputEx.messages.invalidUrl;this.options.favicon=A.isUndefined(B.favicon)?(("https:"==document.location.protocol)?false:true):B.favicon;this.options.size=B.size||50;this.options.regexp=inputEx.regexps.url},render:function(){inputEx.UrlField.superclass.render.call(this);this.el.size=this.options.size;if(!this.options.favicon){YAHOO.util.Dom.addClass(this.el,"nofavicon")}if(this.options.favicon){this.favicon=inputEx.cn("img",{src:inputEx.spacerUrl});this.fieldContainer.insertBefore(this.favicon,this.fieldContainer.childNodes[0]);YAHOO.util.Event.addListener(this.favicon,"click",function(){this.focus()},this,true)}},setClassFromState:function(){inputEx.UrlField.superclass.setClassFromState.call(this);if(this.options.favicon){this.updateFavicon((this.previousState==inputEx.stateValid)?this.getValue():null)}},updateFavicon:function(C){var B=C?C.match(/https?:\/\/[^\/]*/)+"/favicon.ico":inputEx.spacerUrl;if(B!=this.favicon.src){inputEx.sn(this.favicon,null,{visibility:"hidden"});this.favicon.src=B;if(this.timer){clearTimeout(this.timer)}var D=this;this.timer=setTimeout(function(){D.displayFavicon()},1000)}},displayFavicon:function(){inputEx.sn(this.favicon,null,{visibility:(this.favicon.naturalWidth!=0)?"visible":"hidden"})}});inputEx.messages.invalidUrl="Invalid URL, ex: http://www.test.com";inputEx.registerType("url",inputEx.UrlField,[{type:"boolean",label:"Display favicon",name:"favicon",value:true}])})();(function(){var C=YAHOO.lang,A=YAHOO.util.Event,B=YAHOO.util.Dom;inputEx.ListField=function(D){this.subFields=[];inputEx.ListField.superclass.constructor.call(this,D)};C.extend(inputEx.ListField,inputEx.Field,{setOptions:function(D){inputEx.ListField.superclass.setOptions.call(this,D);this.options.className=D.className?D.className:"inputEx-Field inputEx-ListField";this.options.sortable=C.isUndefined(D.sortable)?false:D.sortable;this.options.elementType=D.elementType||{type:"string"};this.options.useButtons=C.isUndefined(D.useButtons)?false:D.useButtons;this.options.unique=C.isUndefined(D.unique)?false:D.unique;this.options.listAddLabel=D.listAddLabel||inputEx.messages.listAddLink;this.options.listRemoveLabel=D.listRemoveLabel||inputEx.messages.listRemoveLink;this.options.maxItems=D.maxItems;this.options.minItems=D.minItems},renderComponent:function(){if(this.options.useButtons){this.addButton=inputEx.cn("img",{src:inputEx.spacerUrl,className:"inputEx-ListField-addButton"});this.fieldContainer.appendChild(this.addButton)}this.fieldContainer.appendChild(inputEx.cn("span",null,{marginLeft:"4px"},this.options.listLabel));this.childContainer=inputEx.cn("div",{className:"inputEx-ListField-childContainer"});this.fieldContainer.appendChild(this.childContainer);if(!this.options.useButtons){this.addButton=inputEx.cn("a",{className:"inputEx-List-link"},null,this.options.listAddLabel);this.fieldContainer.appendChild(this.addButton)}},initEvents:function(){A.addListener(this.addButton,"click",this.onAddButton,this,true)},validate:function(){var F=true;var J={};var D=this.subFields.length;if(C.isNumber(this.options.minItems)&&Dthis.options.maxItems){F=false}for(var G=0;G0){for(F=0;F=this.options.maxItems){return }var D=this.addElement();D.focus();this.fireUpdatedEvt()},renderSubField:function(K){var G=inputEx.cn("div"),E;if(this.options.useButtons){E=inputEx.cn("img",{src:inputEx.spacerUrl,className:"inputEx-ListField-delButton"});A.addListener(E,"click",this.onDelete,this,true);G.appendChild(E)}var J=C.merge({},this.options.elementType);if(C.isObject(J.inputParams)&&!C.isUndefined(K)){J.inputParams.value=K}else{if(!C.isUndefined(K)){J.value=K}}var H=inputEx(J,this);var F=H.getEl();B.setStyle(F,"margin-left","4px");B.setStyle(F,"float","left");G.appendChild(F);H.updatedEvt.subscribe(this.onChange,this,true);if(this.options.sortable){var I=inputEx.cn("div",{className:"inputEx-ListField-Arrow inputEx-ListField-ArrowUp"});A.addListener(I,"click",this.onArrowUp,this,true);var D=inputEx.cn("div",{className:"inputEx-ListField-Arrow inputEx-ListField-ArrowDown"});A.addListener(D,"click",this.onArrowDown,this,true);G.appendChild(I);G.appendChild(D)}if(!this.options.useButtons){E=inputEx.cn("a",{className:"inputEx-List-link"},null,this.options.listRemoveLabel);A.addListener(E,"click",this.onDelete,this,true);G.appendChild(E)}G.appendChild(inputEx.cn("div",null,{clear:"both"}));this.childContainer.appendChild(G);return H},onArrowUp:function(J){var G=A.getTarget(J).parentNode;var E=null;var F=-1;for(var H=1;Hthis.options.maxLength){return inputEx.messages.stringTooLong[0]+this.options.maxLength+inputEx.messages.stringTooLong[1]}}return inputEx.Textarea.superclass.getStateString.call(this,B)},insert:function(E){var D,C,B;if(document.selection){this.el.focus();D=document.selection.createRange();D.text=E}else{if(this.el.selectionStart||this.el.selectionStart=="0"){C=this.el.selectionStart;B=this.el.selectionEnd;this.el.value=this.el.value.substring(0,C)+E+this.el.value.substring(B,this.el.value.length)}else{this.el.value+=E}}}});inputEx.messages.stringTooLong=["This field should contain at most "," numbers or characters"];inputEx.registerType("text",inputEx.Textarea,[{type:"integer",label:"Rows",name:"rows",value:6},{type:"integer",label:"Cols",name:"cols",value:23}])})();(function(){var D=YAHOO.lang,A=YAHOO.util.Event,B=YAHOO.util.Dom,C="inputEx-InPlaceEdit-";inputEx.InPlaceEdit=function(E){inputEx.InPlaceEdit.superclass.constructor.call(this,E)};D.extend(inputEx.InPlaceEdit,inputEx.Field,{setOptions:function(E){inputEx.InPlaceEdit.superclass.setOptions.call(this,E);this.options.visu=E.visu;this.options.editorField=E.editorField;this.options.buttonTypes=E.buttonTypes||{ok:"submit",cancel:"link"};this.options.animColors=E.animColors||null},renderComponent:function(){this.renderVisuDiv();this.renderEditor()},renderEditor:function(){this.editorContainer=inputEx.cn("div",{className:C+"editor"},{display:"none"});this.editorField=inputEx(this.options.editorField,this);var E=this.editorField.getEl();this.editorContainer.appendChild(E);B.addClass(E,C+"editorDiv");this.okButton=new inputEx.widget.Button({type:this.options.buttonTypes.ok,parentEl:this.editorContainer,value:inputEx.messages.okEditor,className:"inputEx-Button "+C+"OkButton",onClick:{fn:this.onOkEditor,scope:this}});this.cancelLink=new inputEx.widget.Button({type:this.options.buttonTypes.cancel,parentEl:this.editorContainer,value:inputEx.messages.cancelEditor,className:"inputEx-Button "+C+"CancelLink",onClick:{fn:this.onCancelEditor,scope:this}});this.editorContainer.appendChild(inputEx.cn("div",null,{clear:"both"}));this.fieldContainer.appendChild(this.editorContainer)},onVisuMouseOver:function(E){if(this.colorAnim){this.colorAnim.stop(true)}inputEx.sn(this.formattedContainer,null,{backgroundColor:this.options.animColors.from})},onVisuMouseOut:function(E){if(this.colorAnim){this.colorAnim.stop(true)}this.colorAnim=new YAHOO.util.ColorAnim(this.formattedContainer,{backgroundColor:this.options.animColors},1);this.colorAnim.onComplete.subscribe(function(){B.setStyle(this.formattedContainer,"background-color","")},this,true);this.colorAnim.animate()},renderVisuDiv:function(){this.formattedContainer=inputEx.cn("div",{className:"inputEx-InPlaceEdit-visu"});if(D.isFunction(this.options.formatDom)){this.formattedContainer.appendChild(this.options.formatDom(this.options.value))}else{if(D.isFunction(this.options.formatValue)){this.formattedContainer.innerHTML=this.options.formatValue(this.options.value)}else{this.formattedContainer.innerHTML=D.isUndefined(this.options.value)?inputEx.messages.emptyInPlaceEdit:this.options.value}}this.fieldContainer.appendChild(this.formattedContainer)},initEvents:function(){A.addListener(this.formattedContainer,"click",this.openEditor,this,true);if(this.options.animColors){A.addListener(this.formattedContainer,"mouseover",this.onVisuMouseOver,this,true);A.addListener(this.formattedContainer,"mouseout",this.onVisuMouseOut,this,true)}if(this.editorField.el){A.addListener(this.editorField.el,"keyup",this.onKeyUp,this,true);A.addListener(this.editorField.el,"keydown",this.onKeyDown,this,true)}},onKeyUp:function(E){if(E.keyCode==13){this.onOkEditor(E)}if(E.keyCode==27){this.onCancelEditor(E)}},onKeyDown:function(E){if(E.keyCode==9){this.onOkEditor(E)}},onOkEditor:function(G){A.stopEvent(G);var F=this.editorField.getValue();this.setValue(F);this.editorContainer.style.display="none";this.formattedContainer.style.display="";var E=this;setTimeout(function(){E.updatedEvt.fire(F)},50)},onCancelEditor:function(E){A.stopEvent(E);this.editorContainer.style.display="none";this.formattedContainer.style.display=""},openEditor:function(){var E=this.getValue();this.editorContainer.style.display="";this.formattedContainer.style.display="none";if(!D.isUndefined(E)){this.editorField.setValue(E)}this.editorField.focus();if(this.editorField.el&&D.isFunction(this.editorField.el.setSelectionRange)&&(!!E&&!!E.length)){this.editorField.el.setSelectionRange(0,E.length)}},getValue:function(){var E=(this.editorContainer.style.display=="");return E?this.editorField.getValue():this.value},setValue:function(F,E){this.value=F;if(D.isUndefined(F)||F==""){inputEx.renderVisu(this.options.visu,inputEx.messages.emptyInPlaceEdit,this.formattedContainer)}else{inputEx.renderVisu(this.options.visu,this.value,this.formattedContainer)}if(this.editorContainer.style.display==""){this.editorField.setValue(F)}inputEx.InPlaceEdit.superclass.setValue.call(this,F,E)},close:function(){this.editorContainer.style.display="none";this.formattedContainer.style.display=""}});inputEx.messages.emptyInPlaceEdit="(click to edit)";inputEx.messages.cancelEditor="cancel";inputEx.messages.okEditor="Ok";inputEx.registerType("inplaceedit",inputEx.InPlaceEdit,[{type:"type",label:"Editor",name:"editorField"}])})();(function(){var A=YAHOO.util.Event,B=YAHOO.util.Dom,C=YAHOO.lang;inputEx.TypeField=function(D){inputEx.TypeField.superclass.constructor.call(this,D);this.updateFieldValue()};C.extend(inputEx.TypeField,inputEx.Field,{renderComponent:function(){this.fieldValueWrapper=inputEx.cn("div",{className:"inputEx-TypeField-FieldValueWrapper"});this.fieldContainer.appendChild(this.fieldValueWrapper);this.propertyPanel=inputEx.cn("div",{className:"inputEx-TypeField-PropertiesPanel"},{display:"none"});var D=[];for(var E in inputEx.typeClasses){if(inputEx.typeClasses.hasOwnProperty(E)){D.push({value:E})}}this.typeSelect=new inputEx.SelectField({label:"Type",choices:D,parentEl:this.propertyPanel});this.groupOptionsWrapper=inputEx.cn("div");this.propertyPanel.appendChild(this.groupOptionsWrapper);this.button=inputEx.cn("div",{className:"inputEx-TypeField-EditButton"});this.button.appendChild(this.propertyPanel);this.fieldContainer.appendChild(this.button);this.rebuildGroupOptions()},initEvents:function(){inputEx.TypeField.superclass.initEvents.call(this);A.addListener(this.button,"click",this.onTogglePropertiesPanel,this,true);A.addListener(this.propertyPanel,"click",function(D){A.stopPropagation(D)},this,true);this.typeSelect.updatedEvt.subscribe(this.rebuildGroupOptions,this,true)},rebuildGroupOptions:function(){try{var D=null;if(this.group){D=this.group.getValue();this.group.close();this.group.destroy();this.groupOptionsWrapper.innerHTML=""}var G=inputEx.getFieldClass(this.typeSelect.getValue());var E={fields:G.groupOptions,parentEl:this.groupOptionsWrapper};this.group=new inputEx.Group(E);if(D){this.group.setValue({name:D.name,label:D.label})}this.group.updatedEvt.subscribe(this.onChangeGroupOptions,this,true);this.updateFieldValue()}catch(F){if(YAHOO.lang.isObject(window.console)&&YAHOO.lang.isFunction(window.console["log"])){console.log("inputEx.TypeField.rebuildGroupOptions: ",F)}}},onTogglePropertiesPanel:function(){if(this.propertyPanel.style.display=="none"){this.propertyPanel.style.display="";B.addClass(this.button,"opened")}else{this.propertyPanel.style.display="none";B.removeClass(this.button,"opened")}},onChangeGroupOptions:function(){this.updateFieldValue();this.fireUpdatedEvt()},updateFieldValue:function(){try{if(this.fieldValue){this.fieldValue.close();this.fieldValue.destroy();delete this.fieldValue;this.fieldValueWrapper.innerHTML=""}var E=this.group.getValue();E.type=this.getValue().type;E.parentEl=this.fieldValueWrapper;this.fieldValue=inputEx(E,this);this.fieldValue.updatedEvt.subscribe(this.fireUpdatedEvt,this,true)}catch(D){console.log("Error while updateFieldValue",D.message)}},setValue:function(E,D){this.typeSelect.setValue(E.type,false);this.rebuildGroupOptions();if(C.isObject(E.inputParams)){this.group.setValue(E.inputParams,false)}else{this.group.setValue(E,false)}this.updateFieldValue();if(C.isObject(E.inputParams)&&!C.isUndefined(E.inputParams.value)){this.fieldValue.setValue(E.inputParams.value)}else{if(!C.isUndefined(E.value)){this.fieldValue.setValue(E.value)}}if(D!==false){this.fireUpdatedEvt()}},getValue:function(){var I=function(K,N){var J,L=K.groupOptions.length,M;for(J=0;J");this.alertPanel.render(document.body);B.addListener("alertPanelButton","click",function(){this.alertPanel.hide()},this,true)},renderButtons:function(){var I=D.get("toolbar");var H=new E.Button({label:"New",id:"WiringEditor-newButton",container:I});H.on("click",this.onNew,this,true);var K=new E.Button({label:"Load",id:"WiringEditor-loadButton",container:I});K.on("click",this.load,this,true);var J=new E.Button({label:"Save",id:"WiringEditor-saveButton",container:I});J.on("click",this.onSave,this,true);var M=new E.Button({label:"Delete",id:"WiringEditor-deleteButton",container:I});M.on("click",this.onDelete,this,true);var L=new E.Button({label:"Help",id:"WiringEditor-helpButton",container:I});L.on("click",this.onHelp,this,true)},renderSavedStatus:function(){this.savedStatusEl=WireIt.cn("div",{className:"savedStatus",title:"Not saved"},{display:"none"},"*");D.get("toolbar").appendChild(this.savedStatusEl)},onSave:function(){this.save()},save:function(){},alert:function(H){if(!this.alertPanel){this.renderAlertPanel()}D.get("alertPanelBody").innerHTML=H;this.alertPanel.show()},onHelp:function(){this.helpPanel.show()},renderPropertiesAccordion:function(){this.accordionView=new YAHOO.widget.AccordionView("accordionView",this.options.accordionViewParams)},renderPropertiesForm:function(){this.propertiesForm=new inputEx.Group({parentEl:YAHOO.util.Dom.get("propertiesForm"),fields:this.options.propertiesFields});this.propertiesForm.updatedEvt.subscribe(function(){this.markUnsaved()},this,true)},markSaved:function(){this.savedStatusEl.style.display="none"},markUnsaved:function(){this.savedStatusEl.style.display=""},isSaved:function(){return(this.savedStatusEl.style.display=="none")}}})();(function(){var A=YAHOO.util,C=YAHOO.lang,B=A.Dom;WireIt.ModuleProxy=function(E,D){this._WiringEditor=D;WireIt.ModuleProxy.superclass.constructor.call(this,E,"module",{dragElId:"moduleProxy"});this.isTarget=false};C.extend(WireIt.ModuleProxy,YAHOO.util.DDProxy,{startDrag:function(F){WireIt.ModuleProxy.superclass.startDrag.call(this,F);var D=this.getDragEl(),E=this.getEl();D.innerHTML=E.innerHTML;D.className=E.className},endDrag:function(D){},onDragDrop:function(H,F){var I=F[0],G=F[0]._layer,E=this.getDragEl(),J=B.getXY(E),D=B.getXY(G.el);this._WiringEditor.addModule(this._module,[J[0]-D[0]+G.el.scrollLeft,J[1]-D[1]+G.el.scrollTop])}})})();(function(){var C=YAHOO.util,F=YAHOO.lang;var B=C.Event,D=C.Dom,A=C.Connect,E=YAHOO.widget;WireIt.WiringEditor=function(G){this.modulesByName={};WireIt.WiringEditor.superclass.constructor.call(this,G);if(this.adapter.init&&YAHOO.lang.isFunction(this.adapter.init)){this.adapter.init()}this.load()};F.extend(WireIt.WiringEditor,WireIt.BaseEditor,{setOptions:function(J){WireIt.WiringEditor.superclass.setOptions.call(this,J);this.modules=J.modules||[];for(var K=0;K"});this.modulesAccordionView.openPanel(this.modulesAccordionView._panels.length-1);I=D.get("module-category-"+J)}I.appendChild(L)}catch(G){console.log(G)}},getCurrentGrouper:function(G){return G.currentGrouper},addModule:function(J,M){try{var L=J.container;L.position=M;L.title=J.name;var H=this;L.getGrouper=function(){return H.getCurrentGrouper(H)};var G=this.layer.addContainer(L);var K=J.category||"main";D.addClass(G.el,"WiringEditor-module-category-"+K.replace(/ /g,"-"));D.addClass(G.el,"WiringEditor-module-"+J.name.replace(/ /g,"-"))}catch(I){this.alert("Error Layer.addContainer: "+I.message);if(window.console&&YAHOO.lang.isFunction(console.log)){console.log(I)}}},save:function(){var G=this.getValue();if(G.name===""){this.alert("Please choose a name");return }this.tempSavedWiring={name:G.name,working:G.working,language:this.options.languageName};this.adapter.saveWiring(this.tempSavedWiring,{success:this.saveModuleSuccess,failure:this.saveModuleFailure,scope:this})},saveModuleSuccess:function(G){this.markSaved();this.alert("Saved !")},saveModuleFailure:function(G){this.alert("Unable to save the wiring : "+G)},onNew:function(){if(!this.isSaved()){if(!confirm("Warning: Your work is not saved yet ! Press ok to continue anyway.")){return }}this.preventLayerChangedEvent=true;this.layer.clear();this.propertiesForm.clear(false);this.markSaved();this.preventLayerChangedEvent=false},onDelete:function(){if(confirm("Are you sure you want to delete this wiring ?")){var G=this.getValue();this.adapter.deleteWiring({name:G.name,language:this.options.languageName},{success:function(H){this.onNew();this.alert("Deleted !")},failure:function(H){this.alert("Unable to delete wiring: "+H)},scope:this})}},renderLoadPanel:function(){if(!this.loadPanel){this.loadPanel=new E.Panel("WiringEditor-loadPanel",{fixedcenter:true,draggable:true,width:"500px",visible:false,modal:true});this.loadPanel.setHeader("Select the wiring to load");this.loadPanel.setBody("Filter:
");this.loadPanel.render(document.body);B.onAvailable("loadFilter",function(){B.addListener("loadFilter","keyup",this.inputFilterTimer,this,true)},this,true)}},inputFilterTimer:function(){if(this.inputFilterTimeout){clearTimeout(this.inputFilterTimeout);this.inputFilterTimeout=null}var G=this;this.inputFilterTimeout=setTimeout(function(){G.updateLoadPanelList(D.get("loadFilter").value)},500)},updateLoadPanelList:function(I){var K=WireIt.cn("ul");if(F.isArray(this.pipes)){for(var H=0;H=0&&D.isArray(this.selectedGroups)&&F0||this.groups.length>0){var K=new WireIt.Group(this,this.layer);var L=[];var G=[];for(var F in this.containers){var J=this.containers[F];K.addContainer(J);G.push(J)}for(var M in this.groups){var H=this.groups[M];K.addGroup(H);this.layer.removeGroup(H);L.push(H)}for(var I in G){this.removeContainer(G[I])}for(var E in L){this.removeGroup(L[E])}this.layer.groups.push(K);K.events.groupEmptied.subscribe(function(){this.layer.removeGroup.call(this.layer,K)},this,true);this.showGroup(K,true)}},showGroup:function(F,G){var E;if(G){E=F}else{E=WireIt.GroupUtils.getOuterGroup(F)}this.showGroupConfigure.call(this,E);this.setupSelectedGroups(F)},setupSelectedGroups:function(H){var E=[];this.selectedGroups=E;var G=this.display;G.groupSelect.innerHTML="";var F=this.selectedGroup;WireIt.GroupUtils.getOuterGroup(H,function(J){var I=WireIt.cn("option",{value:"N"+E.length},{},"N"+E.length);E.push(J);G.groupSelect.appendChild(I);if(F==J){I.selected=true}})},showGroupConfigure:function(H,G){if(!D.isValue(H)||D.isValue(H.groupContainer)){hideGroupConfigure()}else{var E=this;var F=H.generateUI(G,function(){E.setGroupOptions.call(E)});this.setDisplay(F.listRows);this.setSelectedGroup(H);this.display.containerUIMap=F.containerUIMap;this.display.groupUIMap=F.groupUIMap;H.events.stateChanged.subscribe(function(){this.deselectGroup();this.hideGroupConfigure()},this,true);this.display.mainDiv.style.display="block"}},hideGroupConfigure:function(){this.display.mainDiv.style.display="none"},setSelectedGroup:function(E){this.deselectGroup();this.selectedGroup=E;WireIt.GroupUtils.applyToContainers(this.selectedGroup,true,function(F){F.highlight()})},deselectGroup:function(){if(D.isValue(this.selectedGroup)){WireIt.GroupUtils.applyToContainers(this.selectedGroup,true,function(E){E.dehighlight()})}this.selectedGroup=null},rubberbandSelect:function(){for(var F in this.layer.containers){var I=this.layer.containers[F];var H=this.getContainerCorners(I);var E=true;for(var G in H){E&=this.rubberband.pointIsInside(H[G].x,H[G].y)}if(E){this.addContainer(I)}}},getContainerCorners:function(E){var I=E.el.offsetTop;var F=I+E.el.offsetHeight;var H=E.el.offsetLeft;var G=H+E.el.offsetWidth;return[{x:H,y:I},{x:H,y:F},{x:G,y:I},{x:G,y:F}]}}})();(function(){var B=YAHOO.util,E=YAHOO.lang;var C=B.Dom,A=B.Event,D="WireIt-";WireIt.GroupFormContainer=function(F,G){WireIt.GroupFormContainer.superclass.constructor.call(this,F,G);this.getBaseConfig=this.options.getBaseConfigFunction;this.positionTerminals()};YAHOO.lang.extend(WireIt.GroupFormContainer,WireIt.FormContainer,{setOptions:function(F){WireIt.GroupFormContainer.superclass.setOptions.call(this,F);this.options.getBaseConfigFunction=F.getBaseConfigFunction;this.options.groupConfig=F.groupConfig},render:function(){WireIt.GroupFormContainer.superclass.render.call(this);this.renderExpand()},positionTerminals:function(){var K={};for(var T in this.options.terminals){var U=this.options.terminals[T];var F=U.side;if(!E.isValue(F)){F="top"}if(!E.isArray(K[F])){K[F]=[]}K[F].push(U)}var R=30;var W=function(X){return R*(X-1)};var G=function(d,b,Y){var X=W(b);var a=X/2;var c=Y/2;c-=a-d*R;var Z=R/2;return c-Z};var P=this.el.offsetHeight;var Q=this.el.offsetWidth;var N=Math.max(WireIt.GroupUtils.valueOr(K.top,[]).length,WireIt.GroupUtils.valueOr(K.bottom,[]).length);var L=Math.max(WireIt.GroupUtils.valueOr(K.left,[]).length,WireIt.GroupUtils.valueOr(K.right,[]).length);if(PR){L.left=R}if((typeof L.right=="undefined")||L.rightQ){L.top=Q}if((typeof L.bottom=="undefined")||L.bottom0){H.rename=J}R.fields[N]=H}for(var K in Q.terminals){var S=Q.terminals[K];var H={};H.visible=S.visible.checked;var J=S.externalName.value;if(J.length>0){H.rename=J}H.side=S.side.value;R.terminals[K]=H}containerOverrides.push(R)}for(var T in I){var M=I[L];var R={fields:{},terminals:{}};for(var N in M.fields){var O=M.fields[N];var H={};H.visible=O.visible.checked;var J=O.externalName.value;if(J.length>0){H.rename=J}R.fields[N]=H}for(var K in M.terminals){var S=M.terminals[K];var H={};H.visible=S.visible.checked;var J=S.externalName.value;if(J.length>0){H.rename=J}H.side=S.side.value;R.terminals[K]=H}}return{containerOverrides:containerOverrides,groupOverrides:groupOverrides}},getMap:function(T){if(G.isValue(T.groupContainer)){var H={fields:[],terminals:[]};var K=function(U){return U==T.groupContainer};for(var L in T.groupContainer.form.inputConfigs){var R=T.groupContainer.form.inputConfigs[L];var O={};G.augmentObject(O,R);var N={fieldConfig:O};if(this.isFieldExternal(T.groupContainer.form.inputs[L],K)){N.externalName=R.name;N.visible=true}H.fields.push(N)}for(var M in T.groupContainer.options.terminals){var I=T.groupContainer.options.terminals[M];var S={terminalConfig:I};if(this.isTerminalExternal(T.groupContainer.terminals[M],K)){S.visible=true;S.externalName=I.name}H.terminals.push(S)}return{groupContainerMap:H}}var Q={terminals:{},fields:{}};var P={};var J={};this.generateFieldMap(T,Q,P,J);this.generateTerminalMap(T,Q,P,J);this.generateDefaultFieldNames(P,Q);this.generateDefaultFieldNames(J,Q);this.generateDefaultTerminalNames(P,Q);this.generateDefaultTerminalNames(J,Q);return{containerMap:P,groupMap:J}},generateDefaultTerminalNames:function(L,H){for(var J in L){var M=L[J];for(var I in M.terminals){var K=M.terminals[I];if(K.visible&&!G.isValue(K.externalName)){K.externalName=this.generateFreshName(I,H.terminals);H.terminals[K.externalName]=true}}}},generateDefaultFieldNames:function(M,H){for(var I in M){var N=M[I];for(var L in N.fields){var K=N.fields[L];if(K.visible&&!G.isValue(K.externalName)){if(K.fieldConfig.wirable){var J={};G.augmentObject(J,H.fields);G.augmentObject(J,H.terminals);K.externalName=WireIt.GroupUtils.generateFreshName(L,J);H.fields[K.externalName]=true;H.terminals[K.externalName]=true}else{K.externalName=WireIt.GroupUtils.generateFreshName(L,H.fields);H.fields[K.externalName]=true}}}}},generateTerminalMap:function(L,I,X,V){var P=this;var Q=function(h,k,j,i,f){for(var g in h){var l=h[g];var d=l.name;var e=k[d];var c={terminalConfig:l};if(G.isObject(e)&&e.visible){c.visible=true;if(G.isValue(e.rename)){if(G.isValue(j.terminals[e.rename])){throw {type:"MappingError",message:"Two identical terminal names specified ("+e.rename+")"}}j.terminals[e.rename]=true;c.externalName=e.rename}c.side=e.side}if(i(d)){c.visible=true;c.forceVisible=true}f[d]=c}};var b=[];WireIt.GroupUtils.addAllContainers(L,b);var Y=function(c){for(var d in b){if(c==b[d]){return true}}return false};for(var H in L.containers){var J=L.containers[H];var Z=J.container;var K=J.overrides;var M={};var U=G.isArray(Z.options.terminals)?Z.options.terminals:[];var T=function(c){var f;for(var e in Z.terminals){var d=Z.terminals[e];if(d.options.name==c){f=d;break}}return P.isTerminalExternal(f,Y)};Q(U,K.terminals,I,T,M,Z.options.title);X[H].terminals=M}for(var O in L.groups){var R=L.groups[O];var W=R.group;var K=R.overrides;var S={};var a=WireIt.GroupUtils.getMap(W);var U=WireIt.GroupUtils.getCollapsedConfig(W,a).terminals;var T;if(G.isValue(W.groupContainer)){T=function(c){var f;for(var e in W.groupContainer.terminals){var d=W.groupContainer.terminals[e];if(d.options.name==c){f=d;break}}return P.isTerminalExternal(f,Y)}}else{var N=WireIt.GroupUtils.getExternalToInternalMap(a);T=function(d){for(var c in N.containerMap.terminals){var h=N.containerMap.terminals[c];var g;for(var f in W.containers[h.containerId].terminals){var e=W.containers[h.containerId].terminals[f];if(e.options.name==d){g=e;break}}if(P.isTerminalExternal(g,Y)){return true}}return false}}Q(U,K.terminals,I,T,S);V[O].terminals=S}},isFieldExternal:function(I,H){if(G.isValue(I)){return this.isTerminalExternal(I.terminal,H)}},isTerminalExternal:function(J,I){if(G.isValue(J)){for(var K in J.wires){var H=J.wires[K];if((H.terminal1!=J&&!I(H.terminal1.container))||(H.terminal2!=J&&!I(H.terminal2.container))){return true}}}return false},generateFieldMap:function(M,I,W,U){var Q=this;var a=[];WireIt.GroupUtils.addAllContainers(M,a);var X=function(b){for(var c in a){if(b==a[c]){return true}}return false};for(var H in M.containers){var K=M.containers[H];var Y=K.container;var L=K.overrides;var N={};if(G.isObject(Y.form)){var O=Y.form.inputConfigs;var T=function(b){return Q.isFieldExternal.call(Q,Y.form.inputsNames[b],X)};this.mergeFieldOverrides(O,L.fields,I,T,N)}W[H]={};W[H].fields=N}for(var P in M.groups){var R=M.groups[P];var V=R.group;var L=R.overrides;var S={};var Z=WireIt.GroupUtils.getMap(V);var O=WireIt.GroupUtils.getCollapsedConfig(V,Z).fields;var T;if(G.isValue(V.groupContainer)){T=function(b){return Q.isFieldExternal.call(Q,V.groupContainer.form.inputsNames[b],X)}}else{var J;J=function(c,h,g){if(!G.isValue(g)){g=WireIt.GroupUtils.getMap(h)}var b=WireIt.GroupUtils.getExternalToInternalMap(g);var d=b.containerMap.fields[c];if(G.isValue(d)){var e=h.containers[d.containerId].container.form.inputsNames[d.name];if(Q.isFieldExternal.call(Q,e,X)){return true}}else{var d=b.groupMap.fields[c];if(G.isValue(d)){return J(c,h.groups[d.containerId].group)}}return false};T=function(b){return J(b,V,Z)}}this.mergeFieldOverrides(O,L.fields,I,T,S);U[P]={};U[P].fields=S}},generateFreshName:function(J,H){var L=function(N){return G.isValue(H[N])};var I=J;if(L(I)){var K=1;var M=I;do{I=M+K;K++}while(L(I))}H[I]=true;return I},mergeFieldOverrides:function(L,Q,P,O,K){for(var M in L){var N=L[M];var I=N.name;var J=Q[I];var H={fieldConfig:N};if(G.isObject(J)&&J.visible){H.visible=true;if(G.isValue(J.rename)){if(G.isValue(P.fields[J.rename])){throw {type:"MappingError",message:"Two identical field names specified ("+J.rename+")"}}P.fields[J.rename]=true;if(N.wirable){P.terminals[I]=true}H.externalName=J.rename}}if(O(I)){H.visible=true;H.forceVisible=true}K[I]=H}},generateFields:function(Q,S,O){var U=[];var P=[];var R=[];var N={};var L=function(b,c){N[b]=true;if(c.wirable){R[b]=true}};for(var T in Q){var X=Q[T];for(var M in X){var Y=X[M];var W=new String(T);var J=new String(Y.name);var I=W+J+"";var V=S.fields[I];var a=O.fields[I];var Z={};if(G.isObject(V)&&V.visible){if(G.isValue(V.rename)){var K={};G.augmentObject(K,Y,{label:V.rename,name:V.rename});U.push(K);L(V.rename,Y)}else{P.push(Y)}}else{if(a){P.push(Y)}}}}for(var M in P){var Y=P[M];var H=this.generateNextName(Y.name,N);L(H,Y);var K={};G.augmentObject(K,Y);K.name=H;U.push(K)}return{fields:U,usedTerminalNames:R}},generateTerminals:function(N,Q,O,P){var R=[];var I=[];for(var S in N){var J=N[S];for(var K in J){var T=J[K];var H=Q.terminals[S+T.name];var M=O.terminals[S+T.name];if(G.isObject(H)&&H.visible){if(G.isValue(H.rename)){var L={};G.augmentObject(L,T);L.name=H.rename;P[H.rename]=true;R.push(L)}else{I.push(T)}}else{if(M){I.push(T)}}}}for(var K in I){var T=I[K];var U=this.generateNextName(T.name,P);P[U]=true;var L={};G.augmentObject(L,T);L.name=U;R.push(L)}return R},generateNextName:function(J,H){var L=function(N){return G.isValue(H[N])};var I=J;if(L(I)){var K=1;var M=I;do{I=M+K;K++}while(L(I))}H[I]=true;return I},getExternalTerminalName:function(J,K,L,M){for(var I in terminalMap){var H=terminalMap[I];if(H.name==internalTerminal.options.name&&H.moduleId==internalModuleId){return I}}throw {type:"MappingError",message:"Couldn't find internal terminal's external name"}},fieldConfigsFromModules:function(L,J){var I={};for(var P in L){var K=L[P];var H={};G.augmentObject(H,K.config);G.augmentObject(H,J(K.name));if(G.isArray(H.fields)){var N=[];for(var M in H.fields){var O=H.fields[M];N.push(O)}I[P]=N}}return I},fieldConfigsFromContainers:function(L){var J={};for(var I in L){var N=L[I];if(G.isObject(N.form)){var H=[];for(var M in N.form.inputConfigs){var K=N.form.inputConfigs[M];H.push(K)}J[I]=H}}return J},terminalConfigsFromModules:function(L,J){var I={};for(var O in L){var K=L[O];var H={};G.augmentObject(H,K.config);G.augmentObject(H,J(K.name));if(G.isArray(H.terminals)){var N=[];for(var M in H.terminals){var P=H.terminals[M];N.push(P)}I[O]=N}}return I},getInternalModuleConfig:function(L,I){var K=[];for(var J in L){var M=L[J];var H=M.getConfig();H.position[0]=H.position[0]-I[0];H.position[1]=H.position[1]-I[1];K.push({name:M.options.title,value:M.getValue(),config:H})}return K},getWireConfig:function(K,I,H){var L=[];var J=[];this.addWireConfig(K,I,H,L,J);return{external:L,internal:J}},addWireConfig:function(N,M,I,R,Q,O){var L=function(W,V){var U=false;var X;for(var T in W){X=W[T];if(X.src.moduleId==V.src.moduleId&&X.tgt.moduleId==V.tgt.moduleId&&X.src.terminal==V.src.terminal&&X.tgt.terminal==V.tgt.terminal){U=true;break}}if(!U){W.push(V)}};var P=function(Y,U){for(var W in Y.wires){var b=Y.wires[W];var a=M(b.terminal1.container);var T=M(b.terminal2.container);if(a!=-1&&T!=-1){L(Q,{src:{moduleId:a,terminal:b.terminal1.options.name},tgt:{moduleId:T,terminal:b.terminal2.options.name}})}else{var X={};var Z,V;if(a==-1){X.groupIsSource=false;Z=b.terminal1;V=b.terminal2}else{X.groupIsSource=true;Z=b.terminal2;V=b.terminal1}X.externalName=U(V.options.name);X.groupTerminal=V;X.externalTerminal=Z;R.push(X)}}};if(!G.isValue(O)){O=0}if(G.isValue(N.groupContainer)){P(N.groupContainer,function(T){return I("group",O,T)})}else{for(var H in N.containers){var K=N.containers[H].container;P(K,function(T){return I("container",H,T)})}for(var S in N.groups){var J=N.groups[S].group;this.addWireConfig(J,M,I,R,Q,parseInt(S)+O)}}},firstTestSucess:function(H,J){var I;for(I=0;IQ[0])?1:-1;i=Q[0]+e*M;h=i;H-=j;F+=j}N.fillStyle=this.color;N.beginPath();N.moveTo(Q[0],Q[1]);N.lineTo(i,H);N.lineTo(h,F);N.fill();N.strokeStyle=this.bordercolor;N.lineWidth=this.borderwidth;N.beginPath();N.moveTo(Q[0],Q[1]);N.lineTo(i,H);N.lineTo(h,F);N.lineTo(Q[0],Q[1]);N.stroke()}});WireIt.BezierWire=function(D,C,B,A){WireIt.BezierWire.superclass.constructor.call(this,D,C,B,A)};YAHOO.lang.extend(WireIt.BezierWire,WireIt.Wire,{xtype:"WireIt.BezierWire",coeffMulDirection:100,draw:function(){var O=this.terminal1.getXY();var M=this.terminal2.getXY();var F=this.coeffMulDirection;var B=Math.sqrt(Math.pow(O[0]-M[0],2)+Math.pow(O[1]-M[1],2));if(BK[0]){K[0]=D[0]}if(D[1]>K[1]){K[1]=D[1]}}var G=[4,4];H[0]=H[0]-G[0];H[1]=H[1]-G[1];K[0]=K[0]+G[0];K[1]=K[1]+G[1];var E=Math.abs(K[0]-H[0]);var N=Math.abs(K[1]-H[1]);this.min=H;this.max=K;this.SetCanvasRegion(H[0],H[1],E,N);var J=this.getContext();for(I=0;IR[0]){R[0]=f[0]}if(f[1]>R[1]){R[1]=f[1]}}s[0]=s[0]-F[0];s[1]=s[1]-F[1];R[0]=R[0]+F[0];R[1]=R[1]+F[1];var S=Math.abs(R[0]-s[0]);var Y=Math.abs(R[1]-s[1]);this.min=s;this.max=R;this.SetCanvasRegion(s[0],s[1],S,Y);var h=this.getContext();for(m=0;mV[0])?1:-1;M=V[0]+g*H;K=M;y-=r;x+=r}h.fillStyle=this.color;h.beginPath();h.moveTo(V[0],V[1]);h.lineTo(M,y);h.lineTo(K,x);h.fill();h.strokeStyle=this.bordercolor;h.lineWidth=this.borderwidth;h.beginPath();h.moveTo(V[0],V[1]);h.lineTo(M,y);h.lineTo(K,x);h.lineTo(V[0],V[1]);h.stroke();return[q,n,X,V]}});(function(){var A=YAHOO.util;var C=YAHOO.lang,B="WireIt-";WireIt.TerminalProxy=function(E,D){this.terminal=E;this.termConfig=D||{};this.terminalProxySize=D.terminalProxySize||10;this.fakeTerminal=null;WireIt.TerminalProxy.superclass.constructor.call(this,this.terminal.el,undefined,{dragElId:"WireIt-TerminalProxy",resizeFrame:false,centerFrame:true})};A.DDM.mode=A.DDM.INTERSECT;C.extend(WireIt.TerminalProxy,YAHOO.util.DDProxy,{createFrame:function(){var E=this,D=document.body;if(!D||!D.firstChild){window.setTimeout(function(){E.createFrame()},50);return }var J=this.getDragEl(),I=YAHOO.util.Dom;if(!J){J=document.createElement("div");J.id=this.dragElId;var H=J.style;H.position="absolute";H.visibility="hidden";H.cursor="move";H.border="2px solid #aaa";H.zIndex=999;var F=this.terminalProxySize+"px";H.height=F;H.width=F;var G=document.createElement("div");I.setStyle(G,"height","100%");I.setStyle(G,"width","100%");I.setStyle(G,"background-color","#ccc");I.setStyle(G,"opacity","0");J.appendChild(G);D.insertBefore(J,D.firstChild)}},startDrag:function(){if(this.terminal.nMaxWires==1&&this.terminal.wires.length==1){this.terminal.wires[0].remove()}else{if(this.terminal.wires.length>=this.terminal.nMaxWires){return }}var E=this.terminalProxySize/2;this.fakeTerminal={direction:this.terminal.fakeDirection,pos:[200,200],addWire:function(){},removeWire:function(){},getXY:function(){var G=YAHOO.util.Dom.getElementsByClassName("WireIt-Layer");if(G.length>0){var H=YAHOO.util.Dom.getXY(G[0]);return[this.pos[0]-H[0]+E,this.pos[1]-H[1]+E]}return this.pos}};var F=this.terminal.parentEl.parentNode;if(this.terminal.container){F=this.terminal.container.layer.el}var D=WireIt.wireClassFromXtype(this.terminal.editingWireConfig.xtype);this.editingWire=new D(this.terminal,this.fakeTerminal,F,this.terminal.editingWireConfig);YAHOO.util.Dom.addClass(this.editingWire.element,B+"Wire-editing")},onDrag:function(D){if(!this.editingWire){return }if(this.terminal.container){this.fakeTerminal.pos=[D.clientX+this.terminal.container.layer.el.scrollLeft,D.clientY+this.terminal.container.layer.el.scrollTop]}else{this.fakeTerminal.pos=(YAHOO.env.ua.ie)?[D.clientX,D.clientY]:[D.clientX+window.pageXOffset,D.clientY+window.pageYOffset]}this.editingWire.redraw()},endDrag:function(D){if(this.editingWire){this.editingWire.remove();this.editingWire=null}},onDragEnter:function(F,D){if(!this.editingWire){return }for(var E=0;E0){D.wires[0].remove()}M=new K(F,E,I,F.wireConfig);M.redraw()}else{if(D.wires.length0){this.show()}},scissorClick:function(){this._terminal.removeAllWires();if(this.terminalTimeout){this.terminalTimeout.cancel()}this.hideNow()},show:function(){this.setPosition();this.setStyle("display","");if(WireIt.Scissors.visibleInstance&&WireIt.Scissors.visibleInstance!=this){if(WireIt.Scissors.visibleInstance.terminalTimeout){WireIt.Scissors.visibleInstance.terminalTimeout.cancel()}WireIt.Scissors.visibleInstance.hideNow()}WireIt.Scissors.visibleInstance=this;if(this.terminalTimeout){this.terminalTimeout.cancel()}},hide:function(){this.terminalTimeout=YAHOO.lang.later(700,this,this.hideNow)},hideNow:function(){WireIt.Scissors.visibleInstance=null;this.setStyle("display","none")}})})();(function(){var B=YAHOO.util;var A=B.Event,E=YAHOO.lang,C=B.Dom,D="WireIt-";WireIt.Terminal=function(H,G,F){this.name=null;this.parentEl=H;this.container=F;this.wires=[];this.setOptions(G);this.eventAddWire=new B.CustomEvent("eventAddWire");this.eventRemoveWire=new B.CustomEvent("eventRemoveWire");this.el=null;this.render();if(this.editable){this.dd=new WireIt.TerminalProxy(this,this.ddConfig);this.scissors=new WireIt.Scissors(this)}};WireIt.Terminal.prototype={xtype:"WireIt.Terminal",direction:[0,1],fakeDirection:[0,-1],editable:true,nMaxWires:Infinity,wireConfig:{},editingWireConfig:{},className:"WireIt-Terminal",connectedClassName:"WireIt-Terminal-connected",dropinviteClassName:"WireIt-Terminal-dropinvite",offsetPosition:null,alwaysSrc:false,ddConfig:false,setOptions:function(G){for(var F in G){if(G.hasOwnProperty(F)){this[F]=G[F]}}if(G.direction&&!G.fakeDirection){this.fakeDirection=[-G.direction[0],-G.direction[1]]}if(G.wireConfig&&!G.editingWireConfig){this.editingWireConfig=this.wireConfig}},setDropInvitation:function(F){if(F){C.addClass(this.el,this.dropinviteClassName)}else{C.removeClass(this.el,this.dropinviteClassName)}},render:function(){this.el=WireIt.cn("div",{className:this.className});if(this.name){this.el.title=this.name}this.setPosition(this.offsetPosition);this.parentEl.appendChild(this.el)},setPosition:function(G){if(G){this.el.style.left="";this.el.style.top="";this.el.style.right="";this.el.style.bottom="";if(E.isArray(G)){this.el.style.left=G[0]+"px";this.el.style.top=G[1]+"px"}else{if(E.isObject(G)){for(var F in G){if(G.hasOwnProperty(F)&&G[F]!==""){this.el.style[F]=G[F]+"px"}}}}}},addWire:function(F){this.wires.push(F);C.addClass(this.el,this.connectedClassName);this.eventAddWire.fire(F)},removeWire:function(G){var F=WireIt.indexOf(G,this.wires);if(F!=-1){this.wires[F].destroy();this.wires[F]=null;this.wires=WireIt.compact(this.wires);if(this.wires.length===0){C.removeClass(this.el,this.connectedClassName)}this.eventRemoveWire.fire(G)}},getXY:function(){var G=this.container&&this.container.layer?this.container.layer.el:document.body;var H=this.el;var I=0,F=0;if(H.offsetParent){do{I+=H.offsetLeft;F+=H.offsetTop;H=H.offsetParent}while(!!H&&H!=G)}return[I+15,F+15]},remove:function(){while(this.wires.length>0){this.wires[0].remove()}this.parentEl.removeChild(this.el);A.purgeElement(this.el);if(this.scissors){A.purgeElement(this.scissors.get("element"))}},getConnectedTerminals:function(){var F=[];if(this.wires){for(var G=0;G0){this.wires[0].remove()}}}})();WireIt.util.TerminalInput=function(C,B,A){WireIt.util.TerminalInput.superclass.constructor.call(this,C,B,A)};YAHOO.lang.extend(WireIt.util.TerminalInput,WireIt.Terminal,{xtype:"WireIt.TerminalInput",direction:[0,-1],fakeDirection:[0,1],nMaxWires:1,ddConfig:{type:"input",allowedTypes:["output"]}});WireIt.util.TerminalOutput=function(C,B,A){WireIt.util.TerminalOutput.superclass.constructor.call(this,C,B,A)};YAHOO.lang.extend(WireIt.util.TerminalOutput,WireIt.Terminal,{xtype:"WireIt.TerminalOutput",direction:[0,1],fakeDirection:[0,-1],ddConfig:{type:"output",allowedTypes:["input"]},alwaysSrc:true});WireIt.util.DD=function(D,C,A,B){if(!D){throw new Error("WireIt.util.DD needs at least terminals and id")}this._WireItTerminals=D;WireIt.util.DD.superclass.constructor.call(this,C,A,B)};YAHOO.extend(WireIt.util.DD,YAHOO.util.DD,{onDrag:function(D){var A=YAHOO.lang.isArray(this._WireItTerminals)?this._WireItTerminals:(this._WireItTerminals.isWireItTerminal?[this._WireItTerminals]:[]);for(var C=0;C0){this.removeContainer(this.containers[0])}},removeAllContainers:function(){this.clear()},getWiring:function(){var B;var C={containers:[],wires:[]};for(B=0;B=E&&H=C&&F=E&&H=C&&FF){L[0]=F-M}if(L[1]+J>N){L[1]=N-J}this.layer.el.scrollLeft=L[0];this.layer.el.scrollTop=L[1]},onLayerScroll:function(){if(this.scrollTimer){window.clearTimeout(this.scrollTimer)}var C=this;this.scrollTimer=window.setTimeout(function(){C.draw()},50)},draw:function(){var N=this.getContext();var E=B.getRegion(this.element);var D=E.right-E.left-4;var J=E.bottom-E.top-4;N.clearRect(0,0,D,J);var C=this.layer.el.scrollWidth;var L=this.layer.el.scrollHeight;var F=Math.floor(100*D/C)/100;var M=Math.floor(100*J/L)/100;var O=B.getRegion(this.layer.el);var K=O.right-O.left;var I=O.bottom-O.top;var H=this.layer.el.scrollLeft;var G=this.layer.el.scrollTop;N.strokeStyle="rgb(200, 50, 50)";N.lineWidth=1;N.strokeRect(H*F,G*M,K*F,I*M);N.fillStyle=this.style;N.strokeStyle=this.style;N.lineWidth=this.lineWidth;this.drawContainers(N,F,M);this.drawWires(N,F,M)},drawContainers:function(C,I,F){var H=this.layer.containers;var J=H.length,E,D=WireIt.getIntStyle,G;for(E=0;E";return document.createElement(E)}else{var G=document.createElement(B);this.sn(G,F,C);if(H){G.innerHTML=H}return G}},indexOf:function(F,B,E){var C=B.length,D;if(!A.isFunction(E)){E=function(G,H){return G===H}}for(D=0;D=0)?D.length-1:0])}catch(E){alert(E)}}this.msgEl.innerHTML=F},show:function(){this.divEl.style.display=""},hide:function(){this.divEl.style.display="none"},clear:function(D){this.setValue(C.isUndefined(this.options.value)?"":this.options.value,D)},isEmpty:function(){return this.getValue()===""},setParentField:function(D){this.parentField=D},getParentField:function(){return this.parentField}};inputEx.Field.groupOptions=[{type:"string",label:"Label",name:"label",value:""},{type:"string",label:"Name",name:"name",value:""},{type:"string",label:"Description",name:"description",value:""},{type:"boolean",label:"Required?",name:"required",value:false},{type:"boolean",label:"Show messages",name:"showMsg",value:false}]})();(function(){var A=YAHOO.lang;inputEx.BaseField=inputEx.Field;inputEx.Field=function(B){inputEx.Field.superclass.constructor.call(this,B)};A.extend(inputEx.Field,inputEx.BaseField,{setOptions:function(B){inputEx.Field.superclass.setOptions.call(this,B);this.options.wirable=A.isUndefined(B.wirable)?false:B.wirable;this.options.container=B.container;B.container=null},render:function(){inputEx.Field.superclass.render.call(this);if(this.options.wirable){this.renderTerminal()}},renderTerminal:function(){var B=inputEx.cn("div",{className:"WireIt-InputExTerminal"});this.divEl.insertBefore(B,this.fieldContainer);this.terminal=new WireIt.Terminal(B,{name:this.options.name,direction:[-1,0],fakeDirection:[0,1],ddConfig:{type:"input",allowedTypes:["output"]},nMaxWires:1},this.options.container);if(this.options.container){this.options.container.terminals.push(this.terminal)}this.terminal.eventAddWire.subscribe(this.onAddWire,this,true);this.terminal.eventRemoveWire.subscribe(this.onRemoveWire,this,true)},onAddWire:function(B,C){this.options.container.onAddWire(B,C);this.disable();this.el.value="[wired]"},onRemoveWire:function(B,C){this.options.container.onRemoveWire(B,C);this.enable();this.el.value=""}});inputEx.Field.groupOptions=inputEx.BaseField.groupOptions.concat([{type:"boolean",label:"Wirable",name:"wirable",value:false}])})();WireIt.FormContainer=function(A,B){WireIt.FormContainer.superclass.constructor.call(this,A,B)};YAHOO.lang.extend(WireIt.FormContainer,WireIt.Container,{xtype:"WireIt.FormContainer",fields:[],legend:null,collapsible:false,render:function(){WireIt.FormContainer.superclass.render.call(this);this.renderForm()},renderForm:function(){this.setBackReferenceOnFieldOptionsRecursively(this.fields);var A={parentEl:this.bodyEl,fields:this.fields,legend:this.legend,collapsible:this.collapsible};this.form=new inputEx.Group(A);if(this.form.legend){YAHOO.util.Event.addListener(this.form.legend,"click",function(){var C=this;for(var B=0;B0){this.inputs[0].focus()}},getFieldByName:function(D){if(!this.inputsNames.hasOwnProperty(D)){return null}return this.inputsNames[D]},onChange:function(E,F){var G=F[0];var D=F[1];this.runInteractions(D,G);this.fireUpdatedEvt()},runAction:function(D,F){var E=this.getFieldByName(D.name);if(YAHOO.lang.isFunction(E[D.action])){E[D.action].call(E)}else{if(YAHOO.lang.isFunction(D.action)){D.action.call(E,F)}else{throw new Error("action "+D.action+" is not a valid action for field "+D.name)}}},runInteractions:function(E,J){var G=inputEx.indexOf(E,this.inputs);var I=this.options.fields[G];if(YAHOO.lang.isUndefined(I.interactions)){return }var K=I.interactions;for(var H=0;H=this.options.minLength}return D},disable:function(){this.el.disabled=true},enable:function(){this.el.disabled=false},focus:function(){if(!!this.el&&!C.isUndefined(this.el.focus)){this.el.focus()}},getStateString:function(D){if(D==inputEx.stateInvalid&&this.options.minLength&&this.el.value.length=0&&C.position=0){C=inputEx.indexOf(this.el.childNodes[this.el.selectedIndex],this.choicesList,function(E,D){return E===D.node});return this.choicesList[C].value}else{return""}},disable:function(){this.el.disabled=true},enable:function(){this.el.disabled=false},createChoiceNode:function(C){return inputEx.cn("option",{value:C.value},null,C.label)},removeChoiceNode:function(C){this.el.removeChild(C)},disableChoiceNode:function(C){C.disabled="disabled"},enableChoiceNode:function(C){C.removeAttribute("disabled")},appendChoiceNode:function(E,C){var F,D;F=0;for(D=0;D@"+B[0]+" ?";return false}}}}return true},validate:function(){var A=inputEx.EmailField.superclass.validate.call(this);if(!!this.options.fixdomain){this.options.messages.invalid=inputEx.messages.invalidEmail;return A&&this.validateDomain()}else{return A}},getValue:function(){var A;A=inputEx.EmailField.superclass.getValue.call(this);return inputEx.removeAccents(A.toLowerCase())}});inputEx.messages.invalidEmail="Invalid email, ex: sample@test.com";inputEx.messages.didYouMeant="Did you mean : ";inputEx.registerType("email",inputEx.EmailField,[])})();(function(){var A=YAHOO.lang;inputEx.UrlField=function(B){inputEx.UrlField.superclass.constructor.call(this,B)};A.extend(inputEx.UrlField,inputEx.StringField,{setOptions:function(B){inputEx.UrlField.superclass.setOptions.call(this,B);this.options.className=B.className?B.className:"inputEx-Field inputEx-UrlField";this.options.messages.invalid=inputEx.messages.invalidUrl;this.options.favicon=A.isUndefined(B.favicon)?(("https:"==document.location.protocol)?false:true):B.favicon;this.options.size=B.size||50;this.options.regexp=inputEx.regexps.url},render:function(){inputEx.UrlField.superclass.render.call(this);this.el.size=this.options.size;if(!this.options.favicon){YAHOO.util.Dom.addClass(this.el,"nofavicon")}if(this.options.favicon){this.favicon=inputEx.cn("img",{src:inputEx.spacerUrl});this.fieldContainer.insertBefore(this.favicon,this.fieldContainer.childNodes[0]);YAHOO.util.Event.addListener(this.favicon,"click",function(){this.focus()},this,true)}},setClassFromState:function(){inputEx.UrlField.superclass.setClassFromState.call(this);if(this.options.favicon){this.updateFavicon((this.previousState==inputEx.stateValid)?this.getValue():null)}},updateFavicon:function(C){var B=C?C.match(/https?:\/\/[^\/]*/)+"/favicon.ico":inputEx.spacerUrl;if(B!=this.favicon.src){inputEx.sn(this.favicon,null,{visibility:"hidden"});this.favicon.src=B;if(this.timer){clearTimeout(this.timer)}var D=this;this.timer=setTimeout(function(){D.displayFavicon()},1000)}},displayFavicon:function(){inputEx.sn(this.favicon,null,{visibility:(this.favicon.naturalWidth!=0)?"visible":"hidden"})}});inputEx.messages.invalidUrl="Invalid URL, ex: http://www.test.com";inputEx.registerType("url",inputEx.UrlField,[{type:"boolean",label:"Display favicon",name:"favicon",value:true}])})();(function(){var C=YAHOO.lang,A=YAHOO.util.Event,B=YAHOO.util.Dom;inputEx.ListField=function(D){this.subFields=[];inputEx.ListField.superclass.constructor.call(this,D)};C.extend(inputEx.ListField,inputEx.Field,{setOptions:function(D){inputEx.ListField.superclass.setOptions.call(this,D);this.options.className=D.className?D.className:"inputEx-Field inputEx-ListField";this.options.sortable=C.isUndefined(D.sortable)?false:D.sortable;this.options.elementType=D.elementType||{type:"string"};this.options.useButtons=C.isUndefined(D.useButtons)?false:D.useButtons;this.options.unique=C.isUndefined(D.unique)?false:D.unique;this.options.listAddLabel=D.listAddLabel||inputEx.messages.listAddLink;this.options.listRemoveLabel=D.listRemoveLabel||inputEx.messages.listRemoveLink;this.options.maxItems=D.maxItems;this.options.minItems=D.minItems},renderComponent:function(){if(this.options.useButtons){this.addButton=inputEx.cn("img",{src:inputEx.spacerUrl,className:"inputEx-ListField-addButton"});this.fieldContainer.appendChild(this.addButton)}this.fieldContainer.appendChild(inputEx.cn("span",null,{marginLeft:"4px"},this.options.listLabel));this.childContainer=inputEx.cn("div",{className:"inputEx-ListField-childContainer"});this.fieldContainer.appendChild(this.childContainer);if(!this.options.useButtons){this.addButton=inputEx.cn("a",{className:"inputEx-List-link"},null,this.options.listAddLabel);this.fieldContainer.appendChild(this.addButton)}},initEvents:function(){A.addListener(this.addButton,"click",this.onAddButton,this,true)},validate:function(){var F=true;var J={};var D=this.subFields.length;if(C.isNumber(this.options.minItems)&&Dthis.options.maxItems){F=false}for(var G=0;G0){for(F=0;F=this.options.maxItems){return }var D=this.addElement();D.focus();this.fireUpdatedEvt()},renderSubField:function(K){var G=inputEx.cn("div"),E;if(this.options.useButtons){E=inputEx.cn("img",{src:inputEx.spacerUrl,className:"inputEx-ListField-delButton"});A.addListener(E,"click",this.onDelete,this,true);G.appendChild(E)}var J=C.merge({},this.options.elementType);if(C.isObject(J.inputParams)&&!C.isUndefined(K)){J.inputParams.value=K}else{if(!C.isUndefined(K)){J.value=K}}var H=inputEx(J,this);var F=H.getEl();B.setStyle(F,"margin-left","4px");B.setStyle(F,"float","left");G.appendChild(F);H.updatedEvt.subscribe(this.onChange,this,true);if(this.options.sortable){var I=inputEx.cn("div",{className:"inputEx-ListField-Arrow inputEx-ListField-ArrowUp"});A.addListener(I,"click",this.onArrowUp,this,true);var D=inputEx.cn("div",{className:"inputEx-ListField-Arrow inputEx-ListField-ArrowDown"});A.addListener(D,"click",this.onArrowDown,this,true);G.appendChild(I);G.appendChild(D)}if(!this.options.useButtons){E=inputEx.cn("a",{className:"inputEx-List-link"},null,this.options.listRemoveLabel);A.addListener(E,"click",this.onDelete,this,true);G.appendChild(E)}G.appendChild(inputEx.cn("div",null,{clear:"both"}));this.childContainer.appendChild(G);return H},onArrowUp:function(J){var G=A.getTarget(J).parentNode;var E=null;var F=-1;for(var H=1;Hthis.options.maxLength){return inputEx.messages.stringTooLong[0]+this.options.maxLength+inputEx.messages.stringTooLong[1]}}return inputEx.Textarea.superclass.getStateString.call(this,B)},insert:function(E){var D,C,B;if(document.selection){this.el.focus();D=document.selection.createRange();D.text=E}else{if(this.el.selectionStart||this.el.selectionStart=="0"){C=this.el.selectionStart;B=this.el.selectionEnd;this.el.value=this.el.value.substring(0,C)+E+this.el.value.substring(B,this.el.value.length)}else{this.el.value+=E}}}});inputEx.messages.stringTooLong=["This field should contain at most "," numbers or characters"];inputEx.registerType("text",inputEx.Textarea,[{type:"integer",label:"Rows",name:"rows",value:6},{type:"integer",label:"Cols",name:"cols",value:23}])})();(function(){var D=YAHOO.lang,A=YAHOO.util.Event,B=YAHOO.util.Dom,C="inputEx-InPlaceEdit-";inputEx.InPlaceEdit=function(E){inputEx.InPlaceEdit.superclass.constructor.call(this,E)};D.extend(inputEx.InPlaceEdit,inputEx.Field,{setOptions:function(E){inputEx.InPlaceEdit.superclass.setOptions.call(this,E);this.options.visu=E.visu;this.options.editorField=E.editorField;this.options.buttonTypes=E.buttonTypes||{ok:"submit",cancel:"link"};this.options.animColors=E.animColors||null},renderComponent:function(){this.renderVisuDiv();this.renderEditor()},renderEditor:function(){this.editorContainer=inputEx.cn("div",{className:C+"editor"},{display:"none"});this.editorField=inputEx(this.options.editorField,this);var E=this.editorField.getEl();this.editorContainer.appendChild(E);B.addClass(E,C+"editorDiv");this.okButton=new inputEx.widget.Button({type:this.options.buttonTypes.ok,parentEl:this.editorContainer,value:inputEx.messages.okEditor,className:"inputEx-Button "+C+"OkButton",onClick:{fn:this.onOkEditor,scope:this}});this.cancelLink=new inputEx.widget.Button({type:this.options.buttonTypes.cancel,parentEl:this.editorContainer,value:inputEx.messages.cancelEditor,className:"inputEx-Button "+C+"CancelLink",onClick:{fn:this.onCancelEditor,scope:this}});this.editorContainer.appendChild(inputEx.cn("div",null,{clear:"both"}));this.fieldContainer.appendChild(this.editorContainer)},onVisuMouseOver:function(E){if(this.colorAnim){this.colorAnim.stop(true)}inputEx.sn(this.formattedContainer,null,{backgroundColor:this.options.animColors.from})},onVisuMouseOut:function(E){if(this.colorAnim){this.colorAnim.stop(true)}this.colorAnim=new YAHOO.util.ColorAnim(this.formattedContainer,{backgroundColor:this.options.animColors},1);this.colorAnim.onComplete.subscribe(function(){B.setStyle(this.formattedContainer,"background-color","")},this,true);this.colorAnim.animate()},renderVisuDiv:function(){this.formattedContainer=inputEx.cn("div",{className:"inputEx-InPlaceEdit-visu"});if(D.isFunction(this.options.formatDom)){this.formattedContainer.appendChild(this.options.formatDom(this.options.value))}else{if(D.isFunction(this.options.formatValue)){this.formattedContainer.innerHTML=this.options.formatValue(this.options.value)}else{this.formattedContainer.innerHTML=D.isUndefined(this.options.value)?inputEx.messages.emptyInPlaceEdit:this.options.value}}this.fieldContainer.appendChild(this.formattedContainer)},initEvents:function(){A.addListener(this.formattedContainer,"click",this.openEditor,this,true);if(this.options.animColors){A.addListener(this.formattedContainer,"mouseover",this.onVisuMouseOver,this,true);A.addListener(this.formattedContainer,"mouseout",this.onVisuMouseOut,this,true)}if(this.editorField.el){A.addListener(this.editorField.el,"keyup",this.onKeyUp,this,true);A.addListener(this.editorField.el,"keydown",this.onKeyDown,this,true)}},onKeyUp:function(E){if(E.keyCode==13){this.onOkEditor(E)}if(E.keyCode==27){this.onCancelEditor(E)}},onKeyDown:function(E){if(E.keyCode==9){this.onOkEditor(E)}},onOkEditor:function(G){A.stopEvent(G);var F=this.editorField.getValue();this.setValue(F);this.editorContainer.style.display="none";this.formattedContainer.style.display="";var E=this;setTimeout(function(){E.updatedEvt.fire(F)},50)},onCancelEditor:function(E){A.stopEvent(E);this.editorContainer.style.display="none";this.formattedContainer.style.display=""},openEditor:function(){var E=this.getValue();this.editorContainer.style.display="";this.formattedContainer.style.display="none";if(!D.isUndefined(E)){this.editorField.setValue(E)}this.editorField.focus();if(this.editorField.el&&D.isFunction(this.editorField.el.setSelectionRange)&&(!!E&&!!E.length)){this.editorField.el.setSelectionRange(0,E.length)}},getValue:function(){var E=(this.editorContainer.style.display=="");return E?this.editorField.getValue():this.value},setValue:function(F,E){this.value=F;if(D.isUndefined(F)||F==""){inputEx.renderVisu(this.options.visu,inputEx.messages.emptyInPlaceEdit,this.formattedContainer)}else{inputEx.renderVisu(this.options.visu,this.value,this.formattedContainer)}if(this.editorContainer.style.display==""){this.editorField.setValue(F)}inputEx.InPlaceEdit.superclass.setValue.call(this,F,E)},close:function(){this.editorContainer.style.display="none";this.formattedContainer.style.display=""}});inputEx.messages.emptyInPlaceEdit="(click to edit)";inputEx.messages.cancelEditor="cancel";inputEx.messages.okEditor="Ok";inputEx.registerType("inplaceedit",inputEx.InPlaceEdit,[{type:"type",label:"Editor",name:"editorField"}])})();(function(){var A=YAHOO.util.Event,B=YAHOO.util.Dom,C=YAHOO.lang;inputEx.TypeField=function(D){inputEx.TypeField.superclass.constructor.call(this,D);this.updateFieldValue()};C.extend(inputEx.TypeField,inputEx.Field,{renderComponent:function(){this.fieldValueWrapper=inputEx.cn("div",{className:"inputEx-TypeField-FieldValueWrapper"});this.fieldContainer.appendChild(this.fieldValueWrapper);this.propertyPanel=inputEx.cn("div",{className:"inputEx-TypeField-PropertiesPanel"},{display:"none"});var D=[];for(var E in inputEx.typeClasses){if(inputEx.typeClasses.hasOwnProperty(E)){D.push({value:E})}}this.typeSelect=new inputEx.SelectField({label:"Type",choices:D,parentEl:this.propertyPanel});this.groupOptionsWrapper=inputEx.cn("div");this.propertyPanel.appendChild(this.groupOptionsWrapper);this.button=inputEx.cn("div",{className:"inputEx-TypeField-EditButton"});this.button.appendChild(this.propertyPanel);this.fieldContainer.appendChild(this.button);this.rebuildGroupOptions()},initEvents:function(){inputEx.TypeField.superclass.initEvents.call(this);A.addListener(this.button,"click",this.onTogglePropertiesPanel,this,true);A.addListener(this.propertyPanel,"click",function(D){A.stopPropagation(D)},this,true);this.typeSelect.updatedEvt.subscribe(this.rebuildGroupOptions,this,true)},rebuildGroupOptions:function(){try{var D=null;if(this.group){D=this.group.getValue();this.group.close();this.group.destroy();this.groupOptionsWrapper.innerHTML=""}var G=inputEx.getFieldClass(this.typeSelect.getValue());var E={fields:G.groupOptions,parentEl:this.groupOptionsWrapper};this.group=new inputEx.Group(E);if(D){this.group.setValue({name:D.name,label:D.label})}this.group.updatedEvt.subscribe(this.onChangeGroupOptions,this,true);this.updateFieldValue()}catch(F){if(YAHOO.lang.isObject(window.console)&&YAHOO.lang.isFunction(window.console["log"])){console.log("inputEx.TypeField.rebuildGroupOptions: ",F)}}},onTogglePropertiesPanel:function(){if(this.propertyPanel.style.display=="none"){this.propertyPanel.style.display="";B.addClass(this.button,"opened")}else{this.propertyPanel.style.display="none";B.removeClass(this.button,"opened")}},onChangeGroupOptions:function(){this.updateFieldValue();this.fireUpdatedEvt()},updateFieldValue:function(){try{if(this.fieldValue){this.fieldValue.close();this.fieldValue.destroy();delete this.fieldValue;this.fieldValueWrapper.innerHTML=""}var E=this.group.getValue();E.type=this.getValue().type;E.parentEl=this.fieldValueWrapper;this.fieldValue=inputEx(E,this);this.fieldValue.updatedEvt.subscribe(this.fireUpdatedEvt,this,true)}catch(D){console.log("Error while updateFieldValue",D.message)}},setValue:function(E,D){this.typeSelect.setValue(E.type,false);this.rebuildGroupOptions();if(C.isObject(E.inputParams)){this.group.setValue(E.inputParams,false)}else{this.group.setValue(E,false)}this.updateFieldValue();if(C.isObject(E.inputParams)&&!C.isUndefined(E.inputParams.value)){this.fieldValue.setValue(E.inputParams.value)}else{if(!C.isUndefined(E.value)){this.fieldValue.setValue(E.value)}}if(D!==false){this.fireUpdatedEvt()}},getValue:function(){var I=function(K,N){var J,L=K.groupOptions.length,M;for(J=0;J");this.alertPanel.render(document.body);B.addListener("alertPanelButton","click",function(){this.alertPanel.hide()},this,true)},renderButtons:function(){var I=D.get("toolbar");var H=new E.Button({label:"New",id:"WiringEditor-newButton",container:I});H.on("click",this.onNew,this,true);var K=new E.Button({label:"Load",id:"WiringEditor-loadButton",container:I});K.on("click",this.load,this,true);var J=new E.Button({label:"Save",id:"WiringEditor-saveButton",container:I});J.on("click",this.onSave,this,true);var M=new E.Button({label:"Delete",id:"WiringEditor-deleteButton",container:I});M.on("click",this.onDelete,this,true);var L=new E.Button({label:"Help",id:"WiringEditor-helpButton",container:I});L.on("click",this.onHelp,this,true)},renderSavedStatus:function(){this.savedStatusEl=WireIt.cn("div",{className:"savedStatus",title:"Not saved"},{display:"none"},"*");D.get("toolbar").appendChild(this.savedStatusEl)},onSave:function(){this.save()},save:function(){},alert:function(H){if(!this.alertPanel){this.renderAlertPanel()}D.get("alertPanelBody").innerHTML=H;this.alertPanel.show()},onHelp:function(){this.helpPanel.show()},renderPropertiesAccordion:function(){this.accordionView=new YAHOO.widget.AccordionView("accordionView",this.options.accordionViewParams)},renderPropertiesForm:function(){this.propertiesForm=new inputEx.Group({parentEl:YAHOO.util.Dom.get("propertiesForm"),fields:this.options.propertiesFields});this.propertiesForm.updatedEvt.subscribe(function(){this.markUnsaved()},this,true)},markSaved:function(){this.savedStatusEl.style.display="none"},markUnsaved:function(){this.savedStatusEl.style.display=""},isSaved:function(){return(this.savedStatusEl.style.display=="none")}}})();(function(){var A=YAHOO.util,C=YAHOO.lang,B=A.Dom;WireIt.ModuleProxy=function(E,D){this._WiringEditor=D;WireIt.ModuleProxy.superclass.constructor.call(this,E,"module",{dragElId:"moduleProxy"});this.isTarget=false};C.extend(WireIt.ModuleProxy,YAHOO.util.DDProxy,{startDrag:function(F){WireIt.ModuleProxy.superclass.startDrag.call(this,F);var D=this.getDragEl(),E=this.getEl();D.innerHTML=E.innerHTML;D.className=E.className},endDrag:function(D){},onDragDrop:function(H,F){var I=F[0],G=F[0]._layer,E=this.getDragEl(),J=B.getXY(E),D=B.getXY(G.el);this._WiringEditor.addModule(this._module,[J[0]-D[0]+G.el.scrollLeft,J[1]-D[1]+G.el.scrollTop])}})})();(function(){var C=YAHOO.util,F=YAHOO.lang;var B=C.Event,D=C.Dom,A=C.Connect,E=YAHOO.widget;WireIt.WiringEditor=function(G){this.modulesByName={};WireIt.WiringEditor.superclass.constructor.call(this,G);if(this.adapter.init&&YAHOO.lang.isFunction(this.adapter.init)){this.adapter.init()}this.load()};F.extend(WireIt.WiringEditor,WireIt.BaseEditor,{setOptions:function(J){WireIt.WiringEditor.superclass.setOptions.call(this,J);this.modules=J.modules||[];for(var K=0;K"});this.modulesAccordionView.openPanel(this.modulesAccordionView._panels.length-1);I=D.get("module-category-"+J)}I.appendChild(L)}catch(G){console.log(G)}},getCurrentGrouper:function(G){return G.currentGrouper},addModule:function(J,M){try{var L=J.container;L.position=M;L.title=J.name;var H=this;L.getGrouper=function(){return H.getCurrentGrouper(H)};var G=this.layer.addContainer(L);var K=J.category||"main";D.addClass(G.el,"WiringEditor-module-category-"+K.replace(/ /g,"-"));D.addClass(G.el,"WiringEditor-module-"+J.name.replace(/ /g,"-"))}catch(I){this.alert("Error Layer.addContainer: "+I.message);if(window.console&&YAHOO.lang.isFunction(console.log)){console.log(I)}}},save:function(){var G=this.getValue();if(G.name===""){this.alert("Please choose a name");return }this.tempSavedWiring={name:G.name,working:G.working,language:this.options.languageName};this.adapter.saveWiring(this.tempSavedWiring,{success:this.saveModuleSuccess,failure:this.saveModuleFailure,scope:this})},saveModuleSuccess:function(G){this.markSaved();this.alert("Saved !")},saveModuleFailure:function(G){this.alert("Unable to save the wiring : "+G)},onNew:function(){if(!this.isSaved()){if(!confirm("Warning: Your work is not saved yet ! Press ok to continue anyway.")){return }}this.preventLayerChangedEvent=true;this.layer.clear();this.propertiesForm.clear(false);this.markSaved();this.preventLayerChangedEvent=false},onDelete:function(){if(confirm("Are you sure you want to delete this wiring ?")){var G=this.getValue();this.adapter.deleteWiring({name:G.name,language:this.options.languageName},{success:function(H){this.onNew();this.alert("Deleted !")},failure:function(H){this.alert("Unable to delete wiring: "+H)},scope:this})}},renderLoadPanel:function(){if(!this.loadPanel){this.loadPanel=new E.Panel("WiringEditor-loadPanel",{fixedcenter:true,draggable:true,width:"500px",visible:false,modal:true});this.loadPanel.setHeader("Select the wiring to load");this.loadPanel.setBody("Filter:
");this.loadPanel.render(document.body);B.onAvailable("loadFilter",function(){B.addListener("loadFilter","keyup",this.inputFilterTimer,this,true)},this,true)}},inputFilterTimer:function(){if(this.inputFilterTimeout){clearTimeout(this.inputFilterTimeout);this.inputFilterTimeout=null}var G=this;this.inputFilterTimeout=setTimeout(function(){G.updateLoadPanelList(D.get("loadFilter").value)},500)},updateLoadPanelList:function(I){var K=WireIt.cn("ul");if(F.isArray(this.pipes)){for(var H=0;HQ[0])?1:-1;i=Q[0]+e*M;h=i;H-=j;F+=j}N.fillStyle=this.color;N.beginPath();N.moveTo(Q[0],Q[1]);N.lineTo(i,H);N.lineTo(h,F);N.fill();N.strokeStyle=this.bordercolor;N.lineWidth=this.borderwidth;N.beginPath();N.moveTo(Q[0],Q[1]);N.lineTo(i,H);N.lineTo(h,F);N.lineTo(Q[0],Q[1]);N.stroke()}});WireIt.BezierWire=function(D,C,B,A){WireIt.BezierWire.superclass.constructor.call(this,D,C,B,A)};YAHOO.lang.extend(WireIt.BezierWire,WireIt.Wire,{xtype:"WireIt.BezierWire",coeffMulDirection:100,draw:function(){var O=this.terminal1.getXY();var M=this.terminal2.getXY();var F=this.coeffMulDirection;var B=Math.sqrt(Math.pow(O[0]-M[0],2)+Math.pow(O[1]-M[1],2));if(BK[0]){K[0]=D[0]}if(D[1]>K[1]){K[1]=D[1]}}var G=[4,4];H[0]=H[0]-G[0];H[1]=H[1]-G[1];K[0]=K[0]+G[0];K[1]=K[1]+G[1];var E=Math.abs(K[0]-H[0]);var N=Math.abs(K[1]-H[1]);this.min=H;this.max=K;this.SetCanvasRegion(H[0],H[1],E,N);var J=this.getContext();for(I=0;IR[0]){R[0]=f[0]}if(f[1]>R[1]){R[1]=f[1]}}s[0]=s[0]-F[0];s[1]=s[1]-F[1];R[0]=R[0]+F[0];R[1]=R[1]+F[1];var S=Math.abs(R[0]-s[0]);var Y=Math.abs(R[1]-s[1]);this.min=s;this.max=R;this.SetCanvasRegion(s[0],s[1],S,Y);var h=this.getContext();for(m=0;mV[0])?1:-1;M=V[0]+g*H;K=M;y-=r;x+=r}h.fillStyle=this.color;h.beginPath();h.moveTo(V[0],V[1]);h.lineTo(M,y);h.lineTo(K,x);h.fill();h.strokeStyle=this.bordercolor;h.lineWidth=this.borderwidth;h.beginPath();h.moveTo(V[0],V[1]);h.lineTo(M,y);h.lineTo(K,x);h.lineTo(V[0],V[1]);h.stroke();return[q,n,X,V]}});(function(){var A=YAHOO.util;var C=YAHOO.lang,B="WireIt-";WireIt.TerminalProxy=function(E,D){this.terminal=E;this.termConfig=D||{};this.terminalProxySize=D.terminalProxySize||10;this.fakeTerminal=null;WireIt.TerminalProxy.superclass.constructor.call(this,this.terminal.el,undefined,{dragElId:"WireIt-TerminalProxy",resizeFrame:false,centerFrame:true})};A.DDM.mode=A.DDM.INTERSECT;C.extend(WireIt.TerminalProxy,YAHOO.util.DDProxy,{createFrame:function(){var E=this,D=document.body;if(!D||!D.firstChild){window.setTimeout(function(){E.createFrame()},50);return }var J=this.getDragEl(),I=YAHOO.util.Dom;if(!J){J=document.createElement("div");J.id=this.dragElId;var H=J.style;H.position="absolute";H.visibility="hidden";H.cursor="move";H.border="2px solid #aaa";H.zIndex=999;var F=this.terminalProxySize+"px";H.height=F;H.width=F;var G=document.createElement("div");I.setStyle(G,"height","100%");I.setStyle(G,"width","100%");I.setStyle(G,"background-color","#ccc");I.setStyle(G,"opacity","0");J.appendChild(G);D.insertBefore(J,D.firstChild)}},startDrag:function(){if(this.terminal.nMaxWires==1&&this.terminal.wires.length==1){this.terminal.wires[0].remove()}else{if(this.terminal.wires.length>=this.terminal.nMaxWires){return }}var E=this.terminalProxySize/2;this.fakeTerminal={direction:this.terminal.fakeDirection,pos:[200,200],addWire:function(){},removeWire:function(){},getXY:function(){var G=YAHOO.util.Dom.getElementsByClassName("WireIt-Layer");if(G.length>0){var H=YAHOO.util.Dom.getXY(G[0]);return[this.pos[0]-H[0]+E,this.pos[1]-H[1]+E]}return this.pos}};var F=this.terminal.parentEl.parentNode;if(this.terminal.container){F=this.terminal.container.layer.el}var D=WireIt.wireClassFromXtype(this.terminal.editingWireConfig.xtype);this.editingWire=new D(this.terminal,this.fakeTerminal,F,this.terminal.editingWireConfig);YAHOO.util.Dom.addClass(this.editingWire.element,B+"Wire-editing")},onDrag:function(D){if(!this.editingWire){return }if(this.terminal.container){this.fakeTerminal.pos=[D.clientX+this.terminal.container.layer.el.scrollLeft,D.clientY+this.terminal.container.layer.el.scrollTop]}else{this.fakeTerminal.pos=(YAHOO.env.ua.ie)?[D.clientX,D.clientY]:[D.clientX+window.pageXOffset,D.clientY+window.pageYOffset]}this.editingWire.redraw()},endDrag:function(D){if(this.editingWire){this.editingWire.remove();this.editingWire=null}},onDragEnter:function(F,D){if(!this.editingWire){return }for(var E=0;E0){D.wires[0].remove()}M=new K(F,E,I,F.wireConfig);M.redraw()}else{if(D.wires.length0){this.show()}},scissorClick:function(){this._terminal.removeAllWires();if(this.terminalTimeout){this.terminalTimeout.cancel()}this.hideNow()},show:function(){this.setPosition();this.setStyle("display","");if(WireIt.Scissors.visibleInstance&&WireIt.Scissors.visibleInstance!=this){if(WireIt.Scissors.visibleInstance.terminalTimeout){WireIt.Scissors.visibleInstance.terminalTimeout.cancel()}WireIt.Scissors.visibleInstance.hideNow()}WireIt.Scissors.visibleInstance=this;if(this.terminalTimeout){this.terminalTimeout.cancel()}},hide:function(){this.terminalTimeout=YAHOO.lang.later(700,this,this.hideNow)},hideNow:function(){WireIt.Scissors.visibleInstance=null;this.setStyle("display","none")}})})();(function(){var B=YAHOO.util;var A=B.Event,E=YAHOO.lang,C=B.Dom,D="WireIt-";WireIt.Terminal=function(H,G,F){this.name=null;this.parentEl=H;this.container=F;this.wires=[];this.setOptions(G);this.eventAddWire=new B.CustomEvent("eventAddWire");this.eventRemoveWire=new B.CustomEvent("eventRemoveWire");this.el=null;this.render();if(this.editable){this.dd=new WireIt.TerminalProxy(this,this.ddConfig);this.scissors=new WireIt.Scissors(this)}};WireIt.Terminal.prototype={xtype:"WireIt.Terminal",direction:[0,1],fakeDirection:[0,-1],editable:true,nMaxWires:Infinity,wireConfig:{},editingWireConfig:{},className:"WireIt-Terminal",connectedClassName:"WireIt-Terminal-connected",dropinviteClassName:"WireIt-Terminal-dropinvite",offsetPosition:null,alwaysSrc:false,ddConfig:false,setOptions:function(G){for(var F in G){if(G.hasOwnProperty(F)){this[F]=G[F]}}if(G.direction&&!G.fakeDirection){this.fakeDirection=[-G.direction[0],-G.direction[1]]}if(G.wireConfig&&!G.editingWireConfig){this.editingWireConfig=this.wireConfig}},setDropInvitation:function(F){if(F){C.addClass(this.el,this.dropinviteClassName)}else{C.removeClass(this.el,this.dropinviteClassName)}},render:function(){this.el=WireIt.cn("div",{className:this.className});if(this.name){this.el.title=this.name}this.setPosition(this.offsetPosition);this.parentEl.appendChild(this.el)},setPosition:function(G){if(G){this.el.style.left="";this.el.style.top="";this.el.style.right="";this.el.style.bottom="";if(E.isArray(G)){this.el.style.left=G[0]+"px";this.el.style.top=G[1]+"px"}else{if(E.isObject(G)){for(var F in G){if(G.hasOwnProperty(F)&&G[F]!==""){this.el.style[F]=G[F]+"px"}}}}}},addWire:function(F){this.wires.push(F);C.addClass(this.el,this.connectedClassName);this.eventAddWire.fire(F)},removeWire:function(G){var F=WireIt.indexOf(G,this.wires);if(F!=-1){this.wires[F].destroy();this.wires[F]=null;this.wires=WireIt.compact(this.wires);if(this.wires.length===0){C.removeClass(this.el,this.connectedClassName)}this.eventRemoveWire.fire(G)}},getXY:function(){var G=this.container&&this.container.layer?this.container.layer.el:document.body;var H=this.el;var I=0,F=0;if(H.offsetParent){do{I+=H.offsetLeft;F+=H.offsetTop;H=H.offsetParent}while(!!H&&H!=G)}return[I+15,F+15]},remove:function(){while(this.wires.length>0){this.wires[0].remove()}this.parentEl.removeChild(this.el);A.purgeElement(this.el);if(this.scissors){A.purgeElement(this.scissors.get("element"))}},getConnectedTerminals:function(){var F=[];if(this.wires){for(var G=0;G0){this.wires[0].remove()}}}})();WireIt.util.TerminalInput=function(C,B,A){WireIt.util.TerminalInput.superclass.constructor.call(this,C,B,A)};YAHOO.lang.extend(WireIt.util.TerminalInput,WireIt.Terminal,{xtype:"WireIt.TerminalInput",direction:[0,-1],fakeDirection:[0,1],nMaxWires:1,ddConfig:{type:"input",allowedTypes:["output"]}});WireIt.util.TerminalOutput=function(C,B,A){WireIt.util.TerminalOutput.superclass.constructor.call(this,C,B,A)};YAHOO.lang.extend(WireIt.util.TerminalOutput,WireIt.Terminal,{xtype:"WireIt.TerminalOutput",direction:[0,1],fakeDirection:[0,-1],ddConfig:{type:"output",allowedTypes:["input"]},alwaysSrc:true});WireIt.util.DD=function(D,C,A,B){if(!D){throw new Error("WireIt.util.DD needs at least terminals and id")}this._WireItTerminals=D;WireIt.util.DD.superclass.constructor.call(this,C,A,B)};YAHOO.extend(WireIt.util.DD,YAHOO.util.DD,{onDrag:function(D){var A=YAHOO.lang.isArray(this._WireItTerminals)?this._WireItTerminals:(this._WireItTerminals.isWireItTerminal?[this._WireItTerminals]:[]);for(var C=0;C0){this.removeContainer(this.containers[0])}},removeAllContainers:function(){this.clear()},getWiring:function(){var B;var C={containers:[],wires:[]};for(B=0;B=E&&H=C&&F=E&&H=C&&FF){L[0]=F-M}if(L[1]+J>N){L[1]=N-J}this.layer.el.scrollLeft=L[0];this.layer.el.scrollTop=L[1]},onLayerScroll:function(){if(this.scrollTimer){window.clearTimeout(this.scrollTimer)}var C=this;this.scrollTimer=window.setTimeout(function(){C.draw()},50)},draw:function(){var N=this.getContext();var E=B.getRegion(this.element);var D=E.right-E.left-4;var J=E.bottom-E.top-4;N.clearRect(0,0,D,J);var C=this.layer.el.scrollWidth;var L=this.layer.el.scrollHeight;var F=Math.floor(100*D/C)/100;var M=Math.floor(100*J/L)/100;var O=B.getRegion(this.layer.el);var K=O.right-O.left;var I=O.bottom-O.top;var H=this.layer.el.scrollLeft;var G=this.layer.el.scrollTop;N.strokeStyle="rgb(200, 50, 50)";N.lineWidth=1;N.strokeRect(H*F,G*M,K*F,I*M);N.fillStyle=this.style;N.strokeStyle=this.style;N.lineWidth=this.lineWidth;this.drawContainers(N,F,M);this.drawWires(N,F,M)},drawContainers:function(C,I,F){var H=this.layer.containers;var J=H.length,E,D=WireIt.getIntStyle,G;for(E=0;E";return document.createElement(E)}else{var G=document.createElement(B);this.sn(G,F,C);if(H){G.innerHTML=H}return G}},indexOf:function(F,B,E){var C=B.length,D;if(!A.isFunction(E)){E=function(G,H){return G===H}}for(D=0;D=0)?D.length-1:0])}catch(E){alert(E)}}this.msgEl.innerHTML=F},show:function(){this.divEl.style.display=""},hide:function(){this.divEl.style.display="none"},clear:function(D){this.setValue(C.isUndefined(this.options.value)?"":this.options.value,D)},isEmpty:function(){return this.getValue()===""},setParentField:function(D){this.parentField=D},getParentField:function(){return this.parentField}};inputEx.Field.groupOptions=[{type:"string",label:"Label",name:"label",value:""},{type:"string",label:"Name",name:"name",value:""},{type:"string",label:"Description",name:"description",value:""},{type:"boolean",label:"Required?",name:"required",value:false},{type:"boolean",label:"Show messages",name:"showMsg",value:false}]})();(function(){var A=YAHOO.lang;inputEx.BaseField=inputEx.Field;inputEx.Field=function(B){inputEx.Field.superclass.constructor.call(this,B)};A.extend(inputEx.Field,inputEx.BaseField,{setOptions:function(B){inputEx.Field.superclass.setOptions.call(this,B);this.options.wirable=A.isUndefined(B.wirable)?false:B.wirable;this.options.container=B.container;B.container=null},render:function(){inputEx.Field.superclass.render.call(this);if(this.options.wirable){this.renderTerminal()}},renderTerminal:function(){var B=inputEx.cn("div",{className:"WireIt-InputExTerminal"});this.divEl.insertBefore(B,this.fieldContainer);this.terminal=new WireIt.Terminal(B,{name:this.options.name,direction:[-1,0],fakeDirection:[0,1],ddConfig:{type:"input",allowedTypes:["output"]},nMaxWires:1},this.options.container);if(this.options.container){this.options.container.terminals.push(this.terminal)}this.terminal.eventAddWire.subscribe(this.onAddWire,this,true);this.terminal.eventRemoveWire.subscribe(this.onRemoveWire,this,true)},onAddWire:function(B,C){this.options.container.onAddWire(B,C);this.disable();this.el.value="[wired]"},onRemoveWire:function(B,C){this.options.container.onRemoveWire(B,C);this.enable();this.el.value=""}});inputEx.Field.groupOptions=inputEx.BaseField.groupOptions.concat([{type:"boolean",label:"Wirable",name:"wirable",value:false}])})();WireIt.FormContainer=function(A,B){WireIt.FormContainer.superclass.constructor.call(this,A,B)};YAHOO.lang.extend(WireIt.FormContainer,WireIt.Container,{xtype:"WireIt.FormContainer",fields:[],legend:null,collapsible:false,render:function(){WireIt.FormContainer.superclass.render.call(this);this.renderForm()},renderForm:function(){this.setBackReferenceOnFieldOptionsRecursively(this.fields);var A={parentEl:this.bodyEl,fields:this.fields,legend:this.legend,collapsible:this.collapsible};this.form=new inputEx.Group(A);if(this.form.legend){YAHOO.util.Event.addListener(this.form.legend,"click",function(){var C=this;for(var B=0;B0){this.inputs[0].focus()}},getFieldByName:function(D){if(!this.inputsNames.hasOwnProperty(D)){return null}return this.inputsNames[D]},onChange:function(E,F){var G=F[0];var D=F[1];this.runInteractions(D,G);this.fireUpdatedEvt()},runAction:function(D,F){var E=this.getFieldByName(D.name);if(YAHOO.lang.isFunction(E[D.action])){E[D.action].call(E)}else{if(YAHOO.lang.isFunction(D.action)){D.action.call(E,F)}else{throw new Error("action "+D.action+" is not a valid action for field "+D.name)}}},runInteractions:function(E,J){var G=inputEx.indexOf(E,this.inputs);var I=this.options.fields[G];if(YAHOO.lang.isUndefined(I.interactions)){return }var K=I.interactions;for(var H=0;H=this.options.minLength}return D},disable:function(){this.el.disabled=true},enable:function(){this.el.disabled=false},focus:function(){if(!!this.el&&!C.isUndefined(this.el.focus)){this.el.focus()}},getStateString:function(D){if(D==inputEx.stateInvalid&&this.options.minLength&&this.el.value.length=0&&C.position=0){C=inputEx.indexOf(this.el.childNodes[this.el.selectedIndex],this.choicesList,function(E,D){return E===D.node});return this.choicesList[C].value}else{return""}},disable:function(){this.el.disabled=true},enable:function(){this.el.disabled=false},createChoiceNode:function(C){return inputEx.cn("option",{value:C.value},null,C.label)},removeChoiceNode:function(C){this.el.removeChild(C)},disableChoiceNode:function(C){C.disabled="disabled"},enableChoiceNode:function(C){C.removeAttribute("disabled")},appendChoiceNode:function(E,C){var F,D;F=0;for(D=0;D@"+B[0]+" ?";return false}}}}return true},validate:function(){var A=inputEx.EmailField.superclass.validate.call(this);if(!!this.options.fixdomain){this.options.messages.invalid=inputEx.messages.invalidEmail;return A&&this.validateDomain()}else{return A}},getValue:function(){var A;A=inputEx.EmailField.superclass.getValue.call(this);return inputEx.removeAccents(A.toLowerCase())}});inputEx.messages.invalidEmail="Invalid email, ex: sample@test.com";inputEx.messages.didYouMeant="Did you mean : ";inputEx.registerType("email",inputEx.EmailField,[])})();(function(){var A=YAHOO.lang;inputEx.UrlField=function(B){inputEx.UrlField.superclass.constructor.call(this,B)};A.extend(inputEx.UrlField,inputEx.StringField,{setOptions:function(B){inputEx.UrlField.superclass.setOptions.call(this,B);this.options.className=B.className?B.className:"inputEx-Field inputEx-UrlField";this.options.messages.invalid=inputEx.messages.invalidUrl;this.options.favicon=A.isUndefined(B.favicon)?(("https:"==document.location.protocol)?false:true):B.favicon;this.options.size=B.size||50;this.options.regexp=inputEx.regexps.url},render:function(){inputEx.UrlField.superclass.render.call(this);this.el.size=this.options.size;if(!this.options.favicon){YAHOO.util.Dom.addClass(this.el,"nofavicon")}if(this.options.favicon){this.favicon=inputEx.cn("img",{src:inputEx.spacerUrl});this.fieldContainer.insertBefore(this.favicon,this.fieldContainer.childNodes[0]);YAHOO.util.Event.addListener(this.favicon,"click",function(){this.focus()},this,true)}},setClassFromState:function(){inputEx.UrlField.superclass.setClassFromState.call(this);if(this.options.favicon){this.updateFavicon((this.previousState==inputEx.stateValid)?this.getValue():null)}},updateFavicon:function(C){var B=C?C.match(/https?:\/\/[^\/]*/)+"/favicon.ico":inputEx.spacerUrl;if(B!=this.favicon.src){inputEx.sn(this.favicon,null,{visibility:"hidden"});this.favicon.src=B;if(this.timer){clearTimeout(this.timer)}var D=this;this.timer=setTimeout(function(){D.displayFavicon()},1000)}},displayFavicon:function(){inputEx.sn(this.favicon,null,{visibility:(this.favicon.naturalWidth!=0)?"visible":"hidden"})}});inputEx.messages.invalidUrl="Invalid URL, ex: http://www.test.com";inputEx.registerType("url",inputEx.UrlField,[{type:"boolean",label:"Display favicon",name:"favicon",value:true}])})();(function(){var C=YAHOO.lang,A=YAHOO.util.Event,B=YAHOO.util.Dom;inputEx.ListField=function(D){this.subFields=[];inputEx.ListField.superclass.constructor.call(this,D)};C.extend(inputEx.ListField,inputEx.Field,{setOptions:function(D){inputEx.ListField.superclass.setOptions.call(this,D);this.options.className=D.className?D.className:"inputEx-Field inputEx-ListField";this.options.sortable=C.isUndefined(D.sortable)?false:D.sortable;this.options.elementType=D.elementType||{type:"string"};this.options.useButtons=C.isUndefined(D.useButtons)?false:D.useButtons;this.options.unique=C.isUndefined(D.unique)?false:D.unique;this.options.listAddLabel=D.listAddLabel||inputEx.messages.listAddLink;this.options.listRemoveLabel=D.listRemoveLabel||inputEx.messages.listRemoveLink;this.options.maxItems=D.maxItems;this.options.minItems=D.minItems},renderComponent:function(){if(this.options.useButtons){this.addButton=inputEx.cn("img",{src:inputEx.spacerUrl,className:"inputEx-ListField-addButton"});this.fieldContainer.appendChild(this.addButton)}this.fieldContainer.appendChild(inputEx.cn("span",null,{marginLeft:"4px"},this.options.listLabel));this.childContainer=inputEx.cn("div",{className:"inputEx-ListField-childContainer"});this.fieldContainer.appendChild(this.childContainer);if(!this.options.useButtons){this.addButton=inputEx.cn("a",{className:"inputEx-List-link"},null,this.options.listAddLabel);this.fieldContainer.appendChild(this.addButton)}},initEvents:function(){A.addListener(this.addButton,"click",this.onAddButton,this,true)},validate:function(){var F=true;var J={};var D=this.subFields.length;if(C.isNumber(this.options.minItems)&&Dthis.options.maxItems){F=false}for(var G=0;G0){for(F=0;F=this.options.maxItems){return }var D=this.addElement();D.focus();this.fireUpdatedEvt()},renderSubField:function(K){var G=inputEx.cn("div"),E;if(this.options.useButtons){E=inputEx.cn("img",{src:inputEx.spacerUrl,className:"inputEx-ListField-delButton"});A.addListener(E,"click",this.onDelete,this,true);G.appendChild(E)}var J=C.merge({},this.options.elementType);if(C.isObject(J.inputParams)&&!C.isUndefined(K)){J.inputParams.value=K}else{if(!C.isUndefined(K)){J.value=K}}var H=inputEx(J,this);var F=H.getEl();B.setStyle(F,"margin-left","4px");B.setStyle(F,"float","left");G.appendChild(F);H.updatedEvt.subscribe(this.onChange,this,true);if(this.options.sortable){var I=inputEx.cn("div",{className:"inputEx-ListField-Arrow inputEx-ListField-ArrowUp"});A.addListener(I,"click",this.onArrowUp,this,true);var D=inputEx.cn("div",{className:"inputEx-ListField-Arrow inputEx-ListField-ArrowDown"});A.addListener(D,"click",this.onArrowDown,this,true);G.appendChild(I);G.appendChild(D)}if(!this.options.useButtons){E=inputEx.cn("a",{className:"inputEx-List-link"},null,this.options.listRemoveLabel);A.addListener(E,"click",this.onDelete,this,true);G.appendChild(E)}G.appendChild(inputEx.cn("div",null,{clear:"both"}));this.childContainer.appendChild(G);return H},onArrowUp:function(J){var G=A.getTarget(J).parentNode;var E=null;var F=-1;for(var H=1;Hthis.options.maxLength){return inputEx.messages.stringTooLong[0]+this.options.maxLength+inputEx.messages.stringTooLong[1]}}return inputEx.Textarea.superclass.getStateString.call(this,B)},insert:function(E){var D,C,B;if(document.selection){this.el.focus();D=document.selection.createRange();D.text=E}else{if(this.el.selectionStart||this.el.selectionStart=="0"){C=this.el.selectionStart;B=this.el.selectionEnd;this.el.value=this.el.value.substring(0,C)+E+this.el.value.substring(B,this.el.value.length)}else{this.el.value+=E}}}});inputEx.messages.stringTooLong=["This field should contain at most "," numbers or characters"];inputEx.registerType("text",inputEx.Textarea,[{type:"integer",label:"Rows",name:"rows",value:6},{type:"integer",label:"Cols",name:"cols",value:23}])})();(function(){var D=YAHOO.lang,A=YAHOO.util.Event,B=YAHOO.util.Dom,C="inputEx-InPlaceEdit-";inputEx.InPlaceEdit=function(E){inputEx.InPlaceEdit.superclass.constructor.call(this,E)};D.extend(inputEx.InPlaceEdit,inputEx.Field,{setOptions:function(E){inputEx.InPlaceEdit.superclass.setOptions.call(this,E);this.options.visu=E.visu;this.options.editorField=E.editorField;this.options.buttonTypes=E.buttonTypes||{ok:"submit",cancel:"link"};this.options.animColors=E.animColors||null},renderComponent:function(){this.renderVisuDiv();this.renderEditor()},renderEditor:function(){this.editorContainer=inputEx.cn("div",{className:C+"editor"},{display:"none"});this.editorField=inputEx(this.options.editorField,this);var E=this.editorField.getEl();this.editorContainer.appendChild(E);B.addClass(E,C+"editorDiv");this.okButton=new inputEx.widget.Button({type:this.options.buttonTypes.ok,parentEl:this.editorContainer,value:inputEx.messages.okEditor,className:"inputEx-Button "+C+"OkButton",onClick:{fn:this.onOkEditor,scope:this}});this.cancelLink=new inputEx.widget.Button({type:this.options.buttonTypes.cancel,parentEl:this.editorContainer,value:inputEx.messages.cancelEditor,className:"inputEx-Button "+C+"CancelLink",onClick:{fn:this.onCancelEditor,scope:this}});this.editorContainer.appendChild(inputEx.cn("div",null,{clear:"both"}));this.fieldContainer.appendChild(this.editorContainer)},onVisuMouseOver:function(E){if(this.colorAnim){this.colorAnim.stop(true)}inputEx.sn(this.formattedContainer,null,{backgroundColor:this.options.animColors.from})},onVisuMouseOut:function(E){if(this.colorAnim){this.colorAnim.stop(true)}this.colorAnim=new YAHOO.util.ColorAnim(this.formattedContainer,{backgroundColor:this.options.animColors},1);this.colorAnim.onComplete.subscribe(function(){B.setStyle(this.formattedContainer,"background-color","")},this,true);this.colorAnim.animate()},renderVisuDiv:function(){this.formattedContainer=inputEx.cn("div",{className:"inputEx-InPlaceEdit-visu"});if(D.isFunction(this.options.formatDom)){this.formattedContainer.appendChild(this.options.formatDom(this.options.value))}else{if(D.isFunction(this.options.formatValue)){this.formattedContainer.innerHTML=this.options.formatValue(this.options.value)}else{this.formattedContainer.innerHTML=D.isUndefined(this.options.value)?inputEx.messages.emptyInPlaceEdit:this.options.value}}this.fieldContainer.appendChild(this.formattedContainer)},initEvents:function(){A.addListener(this.formattedContainer,"click",this.openEditor,this,true);if(this.options.animColors){A.addListener(this.formattedContainer,"mouseover",this.onVisuMouseOver,this,true);A.addListener(this.formattedContainer,"mouseout",this.onVisuMouseOut,this,true)}if(this.editorField.el){A.addListener(this.editorField.el,"keyup",this.onKeyUp,this,true);A.addListener(this.editorField.el,"keydown",this.onKeyDown,this,true)}},onKeyUp:function(E){if(E.keyCode==13){this.onOkEditor(E)}if(E.keyCode==27){this.onCancelEditor(E)}},onKeyDown:function(E){if(E.keyCode==9){this.onOkEditor(E)}},onOkEditor:function(G){A.stopEvent(G);var F=this.editorField.getValue();this.setValue(F);this.editorContainer.style.display="none";this.formattedContainer.style.display="";var E=this;setTimeout(function(){E.updatedEvt.fire(F)},50)},onCancelEditor:function(E){A.stopEvent(E);this.editorContainer.style.display="none";this.formattedContainer.style.display=""},openEditor:function(){var E=this.getValue();this.editorContainer.style.display="";this.formattedContainer.style.display="none";if(!D.isUndefined(E)){this.editorField.setValue(E)}this.editorField.focus();if(this.editorField.el&&D.isFunction(this.editorField.el.setSelectionRange)&&(!!E&&!!E.length)){this.editorField.el.setSelectionRange(0,E.length)}},getValue:function(){var E=(this.editorContainer.style.display=="");return E?this.editorField.getValue():this.value},setValue:function(F,E){this.value=F;if(D.isUndefined(F)||F==""){inputEx.renderVisu(this.options.visu,inputEx.messages.emptyInPlaceEdit,this.formattedContainer)}else{inputEx.renderVisu(this.options.visu,this.value,this.formattedContainer)}if(this.editorContainer.style.display==""){this.editorField.setValue(F)}inputEx.InPlaceEdit.superclass.setValue.call(this,F,E)},close:function(){this.editorContainer.style.display="none";this.formattedContainer.style.display=""}});inputEx.messages.emptyInPlaceEdit="(click to edit)";inputEx.messages.cancelEditor="cancel";inputEx.messages.okEditor="Ok";inputEx.registerType("inplaceedit",inputEx.InPlaceEdit,[{type:"type",label:"Editor",name:"editorField"}])})();(function(){var A=YAHOO.util.Event,B=YAHOO.util.Dom,C=YAHOO.lang;inputEx.TypeField=function(D){inputEx.TypeField.superclass.constructor.call(this,D);this.updateFieldValue()};C.extend(inputEx.TypeField,inputEx.Field,{renderComponent:function(){this.fieldValueWrapper=inputEx.cn("div",{className:"inputEx-TypeField-FieldValueWrapper"});this.fieldContainer.appendChild(this.fieldValueWrapper);this.propertyPanel=inputEx.cn("div",{className:"inputEx-TypeField-PropertiesPanel"},{display:"none"});var D=[];for(var E in inputEx.typeClasses){if(inputEx.typeClasses.hasOwnProperty(E)){D.push({value:E})}}this.typeSelect=new inputEx.SelectField({label:"Type",choices:D,parentEl:this.propertyPanel});this.groupOptionsWrapper=inputEx.cn("div");this.propertyPanel.appendChild(this.groupOptionsWrapper);this.button=inputEx.cn("div",{className:"inputEx-TypeField-EditButton"});this.button.appendChild(this.propertyPanel);this.fieldContainer.appendChild(this.button);this.rebuildGroupOptions()},initEvents:function(){inputEx.TypeField.superclass.initEvents.call(this);A.addListener(this.button,"click",this.onTogglePropertiesPanel,this,true);A.addListener(this.propertyPanel,"click",function(D){A.stopPropagation(D)},this,true);this.typeSelect.updatedEvt.subscribe(this.rebuildGroupOptions,this,true)},rebuildGroupOptions:function(){try{var D=null;if(this.group){D=this.group.getValue();this.group.close();this.group.destroy();this.groupOptionsWrapper.innerHTML=""}var G=inputEx.getFieldClass(this.typeSelect.getValue());var E={fields:G.groupOptions,parentEl:this.groupOptionsWrapper};this.group=new inputEx.Group(E);if(D){this.group.setValue({name:D.name,label:D.label})}this.group.updatedEvt.subscribe(this.onChangeGroupOptions,this,true);this.updateFieldValue()}catch(F){if(YAHOO.lang.isObject(window.console)&&YAHOO.lang.isFunction(window.console["log"])){console.log("inputEx.TypeField.rebuildGroupOptions: ",F)}}},onTogglePropertiesPanel:function(){if(this.propertyPanel.style.display=="none"){this.propertyPanel.style.display="";B.addClass(this.button,"opened")}else{this.propertyPanel.style.display="none";B.removeClass(this.button,"opened")}},onChangeGroupOptions:function(){this.updateFieldValue();this.fireUpdatedEvt()},updateFieldValue:function(){try{if(this.fieldValue){this.fieldValue.close();this.fieldValue.destroy();delete this.fieldValue;this.fieldValueWrapper.innerHTML=""}var E=this.group.getValue();E.type=this.getValue().type;E.parentEl=this.fieldValueWrapper;this.fieldValue=inputEx(E,this);this.fieldValue.updatedEvt.subscribe(this.fireUpdatedEvt,this,true)}catch(D){console.log("Error while updateFieldValue",D.message)}},setValue:function(E,D){this.typeSelect.setValue(E.type,false);this.rebuildGroupOptions();if(C.isObject(E.inputParams)){this.group.setValue(E.inputParams,false)}else{this.group.setValue(E,false)}this.updateFieldValue();if(C.isObject(E.inputParams)&&!C.isUndefined(E.inputParams.value)){this.fieldValue.setValue(E.inputParams.value)}else{if(!C.isUndefined(E.value)){this.fieldValue.setValue(E.value)}}if(D!==false){this.fireUpdatedEvt()}},getValue:function(){var I=function(K,N){var J,L=K.groupOptions.length,M;for(J=0;J");this.alertPanel.render(document.body);B.addListener("alertPanelButton","click",function(){this.alertPanel.hide()},this,true)},renderButtons:function(){var I=D.get("toolbar");var H=new E.Button({label:"New",id:"WiringEditor-newButton",container:I});H.on("click",this.onNew,this,true);var K=new E.Button({label:"Load",id:"WiringEditor-loadButton",container:I});K.on("click",this.load,this,true);var J=new E.Button({label:"Save",id:"WiringEditor-saveButton",container:I});J.on("click",this.onSave,this,true);var M=new E.Button({label:"Delete",id:"WiringEditor-deleteButton",container:I});M.on("click",this.onDelete,this,true);var L=new E.Button({label:"Help",id:"WiringEditor-helpButton",container:I});L.on("click",this.onHelp,this,true)},renderSavedStatus:function(){this.savedStatusEl=WireIt.cn("div",{className:"savedStatus",title:"Not saved"},{display:"none"},"*");D.get("toolbar").appendChild(this.savedStatusEl)},onSave:function(){this.save()},save:function(){},alert:function(H){if(!this.alertPanel){this.renderAlertPanel()}D.get("alertPanelBody").innerHTML=H;this.alertPanel.show()},onHelp:function(){this.helpPanel.show()},renderPropertiesAccordion:function(){this.accordionView=new YAHOO.widget.AccordionView("accordionView",this.options.accordionViewParams)},renderPropertiesForm:function(){this.propertiesForm=new inputEx.Group({parentEl:YAHOO.util.Dom.get("propertiesForm"),fields:this.options.propertiesFields});this.propertiesForm.updatedEvt.subscribe(function(){this.markUnsaved()},this,true)},markSaved:function(){this.savedStatusEl.style.display="none"},markUnsaved:function(){this.savedStatusEl.style.display=""},isSaved:function(){return(this.savedStatusEl.style.display=="none")}}})();(function(){var A=YAHOO.util,C=YAHOO.lang,B=A.Dom;WireIt.ModuleProxy=function(E,D){this._WiringEditor=D;WireIt.ModuleProxy.superclass.constructor.call(this,E,"module",{dragElId:"moduleProxy"});this.isTarget=false};C.extend(WireIt.ModuleProxy,YAHOO.util.DDProxy,{startDrag:function(F){WireIt.ModuleProxy.superclass.startDrag.call(this,F);var D=this.getDragEl(),E=this.getEl();D.innerHTML=E.innerHTML;D.className=E.className},endDrag:function(D){},onDragDrop:function(H,F){var I=F[0],G=F[0]._layer,E=this.getDragEl(),J=B.getXY(E),D=B.getXY(G.el);this._WiringEditor.addModule(this._module,[J[0]-D[0]+G.el.scrollLeft,J[1]-D[1]+G.el.scrollTop])}})})();(function(){var C=YAHOO.util,F=YAHOO.lang;var B=C.Event,D=C.Dom,A=C.Connect,E=YAHOO.widget;WireIt.WiringEditor=function(G){this.modulesByName={};WireIt.WiringEditor.superclass.constructor.call(this,G);if(this.adapter.init&&YAHOO.lang.isFunction(this.adapter.init)){this.adapter.init()}this.load()};F.extend(WireIt.WiringEditor,WireIt.BaseEditor,{setOptions:function(J){WireIt.WiringEditor.superclass.setOptions.call(this,J);this.modules=J.modules||[];for(var K=0;K"});this.modulesAccordionView.openPanel(this.modulesAccordionView._panels.length-1);I=D.get("module-category-"+J)}I.appendChild(L)}catch(G){console.log(G)}},getCurrentGrouper:function(G){return G.currentGrouper},addModule:function(J,M){try{var L=J.container;L.position=M;L.title=J.name;var H=this;L.getGrouper=function(){return H.getCurrentGrouper(H)};var G=this.layer.addContainer(L);var K=J.category||"main";D.addClass(G.el,"WiringEditor-module-category-"+K.replace(/ /g,"-"));D.addClass(G.el,"WiringEditor-module-"+J.name.replace(/ /g,"-"))}catch(I){this.alert("Error Layer.addContainer: "+I.message);if(window.console&&YAHOO.lang.isFunction(console.log)){console.log(I)}}},save:function(){var G=this.getValue();if(G.name===""){this.alert("Please choose a name");return }this.tempSavedWiring={name:G.name,working:G.working,language:this.options.languageName};this.adapter.saveWiring(this.tempSavedWiring,{success:this.saveModuleSuccess,failure:this.saveModuleFailure,scope:this})},saveModuleSuccess:function(G){this.markSaved();this.alert("Saved !")},saveModuleFailure:function(G){this.alert("Unable to save the wiring : "+G)},onNew:function(){if(!this.isSaved()){if(!confirm("Warning: Your work is not saved yet ! Press ok to continue anyway.")){return }}this.preventLayerChangedEvent=true;this.layer.clear();this.propertiesForm.clear(false);this.markSaved();this.preventLayerChangedEvent=false},onDelete:function(){if(confirm("Are you sure you want to delete this wiring ?")){var G=this.getValue();this.adapter.deleteWiring({name:G.name,language:this.options.languageName},{success:function(H){this.onNew();this.alert("Deleted !")},failure:function(H){this.alert("Unable to delete wiring: "+H)},scope:this})}},renderLoadPanel:function(){if(!this.loadPanel){this.loadPanel=new E.Panel("WiringEditor-loadPanel",{fixedcenter:true,draggable:true,width:"500px",visible:false,modal:true});this.loadPanel.setHeader("Select the wiring to load");this.loadPanel.setBody("Filter:
");this.loadPanel.render(document.body);B.onAvailable("loadFilter",function(){B.addListener("loadFilter","keyup",this.inputFilterTimer,this,true)},this,true)}},inputFilterTimer:function(){if(this.inputFilterTimeout){clearTimeout(this.inputFilterTimeout);this.inputFilterTimeout=null}var G=this;this.inputFilterTimeout=setTimeout(function(){G.updateLoadPanelList(D.get("loadFilter").value)},500)},updateLoadPanelList:function(I){var K=WireIt.cn("ul");if(F.isArray(this.pipes)){for(var H=0;HQ[0])?1:-1;i=Q[0]+e*M;h=i;H-=j;F+=j}N.fillStyle=this.color;N.beginPath();N.moveTo(Q[0],Q[1]);N.lineTo(i,H);N.lineTo(h,F);N.fill();N.strokeStyle=this.bordercolor;N.lineWidth=this.borderwidth;N.beginPath();N.moveTo(Q[0],Q[1]);N.lineTo(i,H);N.lineTo(h,F);N.lineTo(Q[0],Q[1]);N.stroke()}});WireIt.BezierWire=function(D,C,B,A){WireIt.BezierWire.superclass.constructor.call(this,D,C,B,A)};YAHOO.lang.extend(WireIt.BezierWire,WireIt.Wire,{xtype:"WireIt.BezierWire",coeffMulDirection:100,draw:function(){var O=this.terminal1.getXY();var M=this.terminal2.getXY();var F=this.coeffMulDirection;var B=Math.sqrt(Math.pow(O[0]-M[0],2)+Math.pow(O[1]-M[1],2));if(BK[0]){K[0]=D[0]}if(D[1]>K[1]){K[1]=D[1]}}var G=[4,4];H[0]=H[0]-G[0];H[1]=H[1]-G[1];K[0]=K[0]+G[0];K[1]=K[1]+G[1];var E=Math.abs(K[0]-H[0]);var N=Math.abs(K[1]-H[1]);this.min=H;this.max=K;this.SetCanvasRegion(H[0],H[1],E,N);var J=this.getContext();for(I=0;IR[0]){R[0]=f[0]}if(f[1]>R[1]){R[1]=f[1]}}s[0]=s[0]-F[0];s[1]=s[1]-F[1];R[0]=R[0]+F[0];R[1]=R[1]+F[1];var S=Math.abs(R[0]-s[0]);var Y=Math.abs(R[1]-s[1]);this.min=s;this.max=R;this.SetCanvasRegion(s[0],s[1],S,Y);var h=this.getContext();for(m=0;mV[0])?1:-1;M=V[0]+g*H;K=M;y-=r;x+=r}h.fillStyle=this.color;h.beginPath();h.moveTo(V[0],V[1]);h.lineTo(M,y);h.lineTo(K,x);h.fill();h.strokeStyle=this.bordercolor;h.lineWidth=this.borderwidth;h.beginPath();h.moveTo(V[0],V[1]);h.lineTo(M,y);h.lineTo(K,x);h.lineTo(V[0],V[1]);h.stroke();return[q,n,X,V]}});(function(){var A=YAHOO.util;var C=YAHOO.lang,B="WireIt-";WireIt.TerminalProxy=function(E,D){this.terminal=E;this.termConfig=D||{};this.terminalProxySize=D.terminalProxySize||10;this.fakeTerminal=null;WireIt.TerminalProxy.superclass.constructor.call(this,this.terminal.el,undefined,{dragElId:"WireIt-TerminalProxy",resizeFrame:false,centerFrame:true})};A.DDM.mode=A.DDM.INTERSECT;C.extend(WireIt.TerminalProxy,YAHOO.util.DDProxy,{createFrame:function(){var E=this,D=document.body;if(!D||!D.firstChild){window.setTimeout(function(){E.createFrame()},50);return }var J=this.getDragEl(),I=YAHOO.util.Dom;if(!J){J=document.createElement("div");J.id=this.dragElId;var H=J.style;H.position="absolute";H.visibility="hidden";H.cursor="move";H.border="2px solid #aaa";H.zIndex=999;var F=this.terminalProxySize+"px";H.height=F;H.width=F;var G=document.createElement("div");I.setStyle(G,"height","100%");I.setStyle(G,"width","100%");I.setStyle(G,"background-color","#ccc");I.setStyle(G,"opacity","0");J.appendChild(G);D.insertBefore(J,D.firstChild)}},startDrag:function(){if(this.terminal.nMaxWires==1&&this.terminal.wires.length==1){this.terminal.wires[0].remove()}else{if(this.terminal.wires.length>=this.terminal.nMaxWires){return }}var E=this.terminalProxySize/2;this.fakeTerminal={direction:this.terminal.fakeDirection,pos:[200,200],addWire:function(){},removeWire:function(){},getXY:function(){var G=YAHOO.util.Dom.getElementsByClassName("WireIt-Layer");if(G.length>0){var H=YAHOO.util.Dom.getXY(G[0]);return[this.pos[0]-H[0]+E,this.pos[1]-H[1]+E]}return this.pos}};var F=this.terminal.parentEl.parentNode;if(this.terminal.container){F=this.terminal.container.layer.el}var D=WireIt.wireClassFromXtype(this.terminal.editingWireConfig.xtype);this.editingWire=new D(this.terminal,this.fakeTerminal,F,this.terminal.editingWireConfig);YAHOO.util.Dom.addClass(this.editingWire.element,B+"Wire-editing")},onDrag:function(D){if(!this.editingWire){return }if(this.terminal.container){this.fakeTerminal.pos=[D.clientX+this.terminal.container.layer.el.scrollLeft,D.clientY+this.terminal.container.layer.el.scrollTop]}else{this.fakeTerminal.pos=(YAHOO.env.ua.ie)?[D.clientX,D.clientY]:[D.clientX+window.pageXOffset,D.clientY+window.pageYOffset]}this.editingWire.redraw()},endDrag:function(D){if(this.editingWire){this.editingWire.remove();this.editingWire=null}},onDragEnter:function(F,D){if(!this.editingWire){return }for(var E=0;E0){D.wires[0].remove()}M=new K(F,E,I,F.wireConfig);M.redraw()}else{if(D.wires.length0){this.show()}},scissorClick:function(){this._terminal.removeAllWires();if(this.terminalTimeout){this.terminalTimeout.cancel()}this.hideNow()},show:function(){this.setPosition();this.setStyle("display","");if(WireIt.Scissors.visibleInstance&&WireIt.Scissors.visibleInstance!=this){if(WireIt.Scissors.visibleInstance.terminalTimeout){WireIt.Scissors.visibleInstance.terminalTimeout.cancel()}WireIt.Scissors.visibleInstance.hideNow()}WireIt.Scissors.visibleInstance=this;if(this.terminalTimeout){this.terminalTimeout.cancel()}},hide:function(){this.terminalTimeout=YAHOO.lang.later(700,this,this.hideNow)},hideNow:function(){WireIt.Scissors.visibleInstance=null;this.setStyle("display","none")}})})();(function(){var B=YAHOO.util;var A=B.Event,E=YAHOO.lang,C=B.Dom,D="WireIt-";WireIt.Terminal=function(H,G,F){this.name=null;this.parentEl=H;this.container=F;this.wires=[];this.setOptions(G);this.eventAddWire=new B.CustomEvent("eventAddWire");this.eventRemoveWire=new B.CustomEvent("eventRemoveWire");this.el=null;this.render();if(this.editable){this.dd=new WireIt.TerminalProxy(this,this.ddConfig);this.scissors=new WireIt.Scissors(this)}};WireIt.Terminal.prototype={xtype:"WireIt.Terminal",direction:[0,1],fakeDirection:[0,-1],editable:true,nMaxWires:Infinity,wireConfig:{},editingWireConfig:{},className:"WireIt-Terminal",connectedClassName:"WireIt-Terminal-connected",dropinviteClassName:"WireIt-Terminal-dropinvite",offsetPosition:null,alwaysSrc:false,ddConfig:false,setOptions:function(G){for(var F in G){if(G.hasOwnProperty(F)){this[F]=G[F]}}if(G.direction&&!G.fakeDirection){this.fakeDirection=[-G.direction[0],-G.direction[1]]}if(G.wireConfig&&!G.editingWireConfig){this.editingWireConfig=this.wireConfig}},setDropInvitation:function(F){if(F){C.addClass(this.el,this.dropinviteClassName)}else{C.removeClass(this.el,this.dropinviteClassName)}},render:function(){this.el=WireIt.cn("div",{className:this.className});if(this.name){this.el.title=this.name}this.setPosition(this.offsetPosition);this.parentEl.appendChild(this.el)},setPosition:function(G){if(G){this.el.style.left="";this.el.style.top="";this.el.style.right="";this.el.style.bottom="";if(E.isArray(G)){this.el.style.left=G[0]+"px";this.el.style.top=G[1]+"px"}else{if(E.isObject(G)){for(var F in G){if(G.hasOwnProperty(F)&&G[F]!==""){this.el.style[F]=G[F]+"px"}}}}}},addWire:function(F){this.wires.push(F);C.addClass(this.el,this.connectedClassName);this.eventAddWire.fire(F)},removeWire:function(G){var F=WireIt.indexOf(G,this.wires);if(F!=-1){this.wires[F].destroy();this.wires[F]=null;this.wires=WireIt.compact(this.wires);if(this.wires.length===0){C.removeClass(this.el,this.connectedClassName)}this.eventRemoveWire.fire(G)}},getXY:function(){var G=this.container&&this.container.layer?this.container.layer.el:document.body;var H=this.el;var I=0,F=0;if(H.offsetParent){do{I+=H.offsetLeft;F+=H.offsetTop;H=H.offsetParent}while(!!H&&H!=G)}return[I+15,F+15]},remove:function(){while(this.wires.length>0){this.wires[0].remove()}this.parentEl.removeChild(this.el);A.purgeElement(this.el);if(this.scissors){A.purgeElement(this.scissors.get("element"))}},getConnectedTerminals:function(){var F=[];if(this.wires){for(var G=0;G0){this.wires[0].remove()}}}})();WireIt.util.TerminalInput=function(C,B,A){WireIt.util.TerminalInput.superclass.constructor.call(this,C,B,A)};YAHOO.lang.extend(WireIt.util.TerminalInput,WireIt.Terminal,{xtype:"WireIt.TerminalInput",direction:[0,-1],fakeDirection:[0,1],nMaxWires:1,ddConfig:{type:"input",allowedTypes:["output"]}});WireIt.util.TerminalOutput=function(C,B,A){WireIt.util.TerminalOutput.superclass.constructor.call(this,C,B,A)};YAHOO.lang.extend(WireIt.util.TerminalOutput,WireIt.Terminal,{xtype:"WireIt.TerminalOutput",direction:[0,1],fakeDirection:[0,-1],ddConfig:{type:"output",allowedTypes:["input"]},alwaysSrc:true});WireIt.util.DD=function(D,C,A,B){if(!D){throw new Error("WireIt.util.DD needs at least terminals and id")}this._WireItTerminals=D;WireIt.util.DD.superclass.constructor.call(this,C,A,B)};YAHOO.extend(WireIt.util.DD,YAHOO.util.DD,{onDrag:function(D){var A=YAHOO.lang.isArray(this._WireItTerminals)?this._WireItTerminals:(this._WireItTerminals.isWireItTerminal?[this._WireItTerminals]:[]);for(var C=0;C0){this.removeContainer(this.containers[0])}},removeAllContainers:function(){this.clear()},getWiring:function(){var B;var C={containers:[],wires:[]};for(B=0;B=E&&H=C&&F=E&&H=C&&FF){L[0]=F-M}if(L[1]+J>N){L[1]=N-J}this.layer.el.scrollLeft=L[0];this.layer.el.scrollTop=L[1]},onLayerScroll:function(){if(this.scrollTimer){window.clearTimeout(this.scrollTimer)}var C=this;this.scrollTimer=window.setTimeout(function(){C.draw()},50)},draw:function(){var N=this.getContext();var E=B.getRegion(this.element);var D=E.right-E.left-4;var J=E.bottom-E.top-4;N.clearRect(0,0,D,J);var C=this.layer.el.scrollWidth;var L=this.layer.el.scrollHeight;var F=Math.floor(100*D/C)/100;var M=Math.floor(100*J/L)/100;var O=B.getRegion(this.layer.el);var K=O.right-O.left;var I=O.bottom-O.top;var H=this.layer.el.scrollLeft;var G=this.layer.el.scrollTop;N.strokeStyle="rgb(200, 50, 50)";N.lineWidth=1;N.strokeRect(H*F,G*M,K*F,I*M);N.fillStyle=this.style;N.strokeStyle=this.style;N.lineWidth=this.lineWidth;this.drawContainers(N,F,M);this.drawWires(N,F,M)},drawContainers:function(C,I,F){var H=this.layer.containers;var J=H.length,E,D=WireIt.getIntStyle,G;for(E=0;E";return document.createElement(E)}else{var G=document.createElement(B);this.sn(G,F,C);if(H){G.innerHTML=H}return G}},indexOf:function(F,B,E){var C=B.length,D;if(!A.isFunction(E)){E=function(G,H){return G===H}}for(D=0;D=0)?D.length-1:0])}catch(E){alert(E)}}this.msgEl.innerHTML=F},show:function(){this.divEl.style.display=""},hide:function(){this.divEl.style.display="none"},clear:function(D){this.setValue(C.isUndefined(this.options.value)?"":this.options.value,D)},isEmpty:function(){return this.getValue()===""},setParentField:function(D){this.parentField=D},getParentField:function(){return this.parentField}};inputEx.Field.groupOptions=[{type:"string",label:"Label",name:"label",value:""},{type:"string",label:"Name",name:"name",value:""},{type:"string",label:"Description",name:"description",value:""},{type:"boolean",label:"Required?",name:"required",value:false},{type:"boolean",label:"Show messages",name:"showMsg",value:false}]})();(function(){var A=YAHOO.lang;inputEx.BaseField=inputEx.Field;inputEx.Field=function(B){inputEx.Field.superclass.constructor.call(this,B)};A.extend(inputEx.Field,inputEx.BaseField,{setOptions:function(B){inputEx.Field.superclass.setOptions.call(this,B);this.options.wirable=A.isUndefined(B.wirable)?false:B.wirable;this.options.container=B.container;B.container=null},render:function(){inputEx.Field.superclass.render.call(this);if(this.options.wirable){this.renderTerminal()}},renderTerminal:function(){var B=inputEx.cn("div",{className:"WireIt-InputExTerminal"});this.divEl.insertBefore(B,this.fieldContainer);this.terminal=new WireIt.Terminal(B,{name:this.options.name,direction:[-1,0],fakeDirection:[0,1],ddConfig:{type:"input",allowedTypes:["output"]},nMaxWires:1},this.options.container);if(this.options.container){this.options.container.terminals.push(this.terminal)}this.terminal.eventAddWire.subscribe(this.onAddWire,this,true);this.terminal.eventRemoveWire.subscribe(this.onRemoveWire,this,true)},onAddWire:function(B,C){this.options.container.onAddWire(B,C);this.disable();this.el.value="[wired]"},onRemoveWire:function(B,C){this.options.container.onRemoveWire(B,C);this.enable();this.el.value=""}});inputEx.Field.groupOptions=inputEx.BaseField.groupOptions.concat([{type:"boolean",label:"Wirable",name:"wirable",value:false}])})();WireIt.FormContainer=function(A,B){WireIt.FormContainer.superclass.constructor.call(this,A,B)};YAHOO.lang.extend(WireIt.FormContainer,WireIt.Container,{xtype:"WireIt.FormContainer",fields:[],legend:null,collapsible:false,render:function(){WireIt.FormContainer.superclass.render.call(this);this.renderForm()},renderForm:function(){this.setBackReferenceOnFieldOptionsRecursively(this.fields);var A={parentEl:this.bodyEl,fields:this.fields,legend:this.legend,collapsible:this.collapsible};this.form=new inputEx.Group(A);if(this.form.legend){YAHOO.util.Event.addListener(this.form.legend,"click",function(){var C=this;for(var B=0;B0){this.inputs[0].focus()}},getFieldByName:function(D){if(!this.inputsNames.hasOwnProperty(D)){return null}return this.inputsNames[D]},onChange:function(E,F){var G=F[0];var D=F[1];this.runInteractions(D,G);this.fireUpdatedEvt()},runAction:function(D,F){var E=this.getFieldByName(D.name);if(YAHOO.lang.isFunction(E[D.action])){E[D.action].call(E)}else{if(YAHOO.lang.isFunction(D.action)){D.action.call(E,F)}else{throw new Error("action "+D.action+" is not a valid action for field "+D.name)}}},runInteractions:function(E,J){var G=inputEx.indexOf(E,this.inputs);var I=this.options.fields[G];if(YAHOO.lang.isUndefined(I.interactions)){return }var K=I.interactions;for(var H=0;H=this.options.minLength}return D},disable:function(){this.el.disabled=true},enable:function(){this.el.disabled=false},focus:function(){if(!!this.el&&!C.isUndefined(this.el.focus)){this.el.focus()}},getStateString:function(D){if(D==inputEx.stateInvalid&&this.options.minLength&&this.el.value.length=0&&C.position=0){C=inputEx.indexOf(this.el.childNodes[this.el.selectedIndex],this.choicesList,function(E,D){return E===D.node});return this.choicesList[C].value}else{return""}},disable:function(){this.el.disabled=true},enable:function(){this.el.disabled=false},createChoiceNode:function(C){return inputEx.cn("option",{value:C.value},null,C.label)},removeChoiceNode:function(C){this.el.removeChild(C)},disableChoiceNode:function(C){C.disabled="disabled"},enableChoiceNode:function(C){C.removeAttribute("disabled")},appendChoiceNode:function(E,C){var F,D;F=0;for(D=0;D@"+B[0]+" ?";return false}}}}return true},validate:function(){var A=inputEx.EmailField.superclass.validate.call(this);if(!!this.options.fixdomain){this.options.messages.invalid=inputEx.messages.invalidEmail;return A&&this.validateDomain()}else{return A}},getValue:function(){var A;A=inputEx.EmailField.superclass.getValue.call(this);return inputEx.removeAccents(A.toLowerCase())}});inputEx.messages.invalidEmail="Invalid email, ex: sample@test.com";inputEx.messages.didYouMeant="Did you mean : ";inputEx.registerType("email",inputEx.EmailField,[])})();(function(){var A=YAHOO.lang;inputEx.UrlField=function(B){inputEx.UrlField.superclass.constructor.call(this,B)};A.extend(inputEx.UrlField,inputEx.StringField,{setOptions:function(B){inputEx.UrlField.superclass.setOptions.call(this,B);this.options.className=B.className?B.className:"inputEx-Field inputEx-UrlField";this.options.messages.invalid=inputEx.messages.invalidUrl;this.options.favicon=A.isUndefined(B.favicon)?(("https:"==document.location.protocol)?false:true):B.favicon;this.options.size=B.size||50;this.options.regexp=inputEx.regexps.url},render:function(){inputEx.UrlField.superclass.render.call(this);this.el.size=this.options.size;if(!this.options.favicon){YAHOO.util.Dom.addClass(this.el,"nofavicon")}if(this.options.favicon){this.favicon=inputEx.cn("img",{src:inputEx.spacerUrl});this.fieldContainer.insertBefore(this.favicon,this.fieldContainer.childNodes[0]);YAHOO.util.Event.addListener(this.favicon,"click",function(){this.focus()},this,true)}},setClassFromState:function(){inputEx.UrlField.superclass.setClassFromState.call(this);if(this.options.favicon){this.updateFavicon((this.previousState==inputEx.stateValid)?this.getValue():null)}},updateFavicon:function(C){var B=C?C.match(/https?:\/\/[^\/]*/)+"/favicon.ico":inputEx.spacerUrl;if(B!=this.favicon.src){inputEx.sn(this.favicon,null,{visibility:"hidden"});this.favicon.src=B;if(this.timer){clearTimeout(this.timer)}var D=this;this.timer=setTimeout(function(){D.displayFavicon()},1000)}},displayFavicon:function(){inputEx.sn(this.favicon,null,{visibility:(this.favicon.naturalWidth!=0)?"visible":"hidden"})}});inputEx.messages.invalidUrl="Invalid URL, ex: http://www.test.com";inputEx.registerType("url",inputEx.UrlField,[{type:"boolean",label:"Display favicon",name:"favicon",value:true}])})();(function(){var C=YAHOO.lang,A=YAHOO.util.Event,B=YAHOO.util.Dom;inputEx.ListField=function(D){this.subFields=[];inputEx.ListField.superclass.constructor.call(this,D)};C.extend(inputEx.ListField,inputEx.Field,{setOptions:function(D){inputEx.ListField.superclass.setOptions.call(this,D);this.options.className=D.className?D.className:"inputEx-Field inputEx-ListField";this.options.sortable=C.isUndefined(D.sortable)?false:D.sortable;this.options.elementType=D.elementType||{type:"string"};this.options.useButtons=C.isUndefined(D.useButtons)?false:D.useButtons;this.options.unique=C.isUndefined(D.unique)?false:D.unique;this.options.listAddLabel=D.listAddLabel||inputEx.messages.listAddLink;this.options.listRemoveLabel=D.listRemoveLabel||inputEx.messages.listRemoveLink;this.options.maxItems=D.maxItems;this.options.minItems=D.minItems},renderComponent:function(){if(this.options.useButtons){this.addButton=inputEx.cn("img",{src:inputEx.spacerUrl,className:"inputEx-ListField-addButton"});this.fieldContainer.appendChild(this.addButton)}this.fieldContainer.appendChild(inputEx.cn("span",null,{marginLeft:"4px"},this.options.listLabel));this.childContainer=inputEx.cn("div",{className:"inputEx-ListField-childContainer"});this.fieldContainer.appendChild(this.childContainer);if(!this.options.useButtons){this.addButton=inputEx.cn("a",{className:"inputEx-List-link"},null,this.options.listAddLabel);this.fieldContainer.appendChild(this.addButton)}},initEvents:function(){A.addListener(this.addButton,"click",this.onAddButton,this,true)},validate:function(){var F=true;var J={};var D=this.subFields.length;if(C.isNumber(this.options.minItems)&&Dthis.options.maxItems){F=false}for(var G=0;G0){for(F=0;F=this.options.maxItems){return }var D=this.addElement();D.focus();this.fireUpdatedEvt()},renderSubField:function(K){var G=inputEx.cn("div"),E;if(this.options.useButtons){E=inputEx.cn("img",{src:inputEx.spacerUrl,className:"inputEx-ListField-delButton"});A.addListener(E,"click",this.onDelete,this,true);G.appendChild(E)}var J=C.merge({},this.options.elementType);if(C.isObject(J.inputParams)&&!C.isUndefined(K)){J.inputParams.value=K}else{if(!C.isUndefined(K)){J.value=K}}var H=inputEx(J,this);var F=H.getEl();B.setStyle(F,"margin-left","4px");B.setStyle(F,"float","left");G.appendChild(F);H.updatedEvt.subscribe(this.onChange,this,true);if(this.options.sortable){var I=inputEx.cn("div",{className:"inputEx-ListField-Arrow inputEx-ListField-ArrowUp"});A.addListener(I,"click",this.onArrowUp,this,true);var D=inputEx.cn("div",{className:"inputEx-ListField-Arrow inputEx-ListField-ArrowDown"});A.addListener(D,"click",this.onArrowDown,this,true);G.appendChild(I);G.appendChild(D)}if(!this.options.useButtons){E=inputEx.cn("a",{className:"inputEx-List-link"},null,this.options.listRemoveLabel);A.addListener(E,"click",this.onDelete,this,true);G.appendChild(E)}G.appendChild(inputEx.cn("div",null,{clear:"both"}));this.childContainer.appendChild(G);return H},onArrowUp:function(J){var G=A.getTarget(J).parentNode;var E=null;var F=-1;for(var H=1;Hthis.options.maxLength){return inputEx.messages.stringTooLong[0]+this.options.maxLength+inputEx.messages.stringTooLong[1]}}return inputEx.Textarea.superclass.getStateString.call(this,B)},insert:function(E){var D,C,B;if(document.selection){this.el.focus();D=document.selection.createRange();D.text=E}else{if(this.el.selectionStart||this.el.selectionStart=="0"){C=this.el.selectionStart;B=this.el.selectionEnd;this.el.value=this.el.value.substring(0,C)+E+this.el.value.substring(B,this.el.value.length)}else{this.el.value+=E}}}});inputEx.messages.stringTooLong=["This field should contain at most "," numbers or characters"];inputEx.registerType("text",inputEx.Textarea,[{type:"integer",label:"Rows",name:"rows",value:6},{type:"integer",label:"Cols",name:"cols",value:23}])})();(function(){var D=YAHOO.lang,A=YAHOO.util.Event,B=YAHOO.util.Dom,C="inputEx-InPlaceEdit-";inputEx.InPlaceEdit=function(E){inputEx.InPlaceEdit.superclass.constructor.call(this,E)};D.extend(inputEx.InPlaceEdit,inputEx.Field,{setOptions:function(E){inputEx.InPlaceEdit.superclass.setOptions.call(this,E);this.options.visu=E.visu;this.options.editorField=E.editorField;this.options.buttonTypes=E.buttonTypes||{ok:"submit",cancel:"link"};this.options.animColors=E.animColors||null},renderComponent:function(){this.renderVisuDiv();this.renderEditor()},renderEditor:function(){this.editorContainer=inputEx.cn("div",{className:C+"editor"},{display:"none"});this.editorField=inputEx(this.options.editorField,this);var E=this.editorField.getEl();this.editorContainer.appendChild(E);B.addClass(E,C+"editorDiv");this.okButton=new inputEx.widget.Button({type:this.options.buttonTypes.ok,parentEl:this.editorContainer,value:inputEx.messages.okEditor,className:"inputEx-Button "+C+"OkButton",onClick:{fn:this.onOkEditor,scope:this}});this.cancelLink=new inputEx.widget.Button({type:this.options.buttonTypes.cancel,parentEl:this.editorContainer,value:inputEx.messages.cancelEditor,className:"inputEx-Button "+C+"CancelLink",onClick:{fn:this.onCancelEditor,scope:this}});this.editorContainer.appendChild(inputEx.cn("div",null,{clear:"both"}));this.fieldContainer.appendChild(this.editorContainer)},onVisuMouseOver:function(E){if(this.colorAnim){this.colorAnim.stop(true)}inputEx.sn(this.formattedContainer,null,{backgroundColor:this.options.animColors.from})},onVisuMouseOut:function(E){if(this.colorAnim){this.colorAnim.stop(true)}this.colorAnim=new YAHOO.util.ColorAnim(this.formattedContainer,{backgroundColor:this.options.animColors},1);this.colorAnim.onComplete.subscribe(function(){B.setStyle(this.formattedContainer,"background-color","")},this,true);this.colorAnim.animate()},renderVisuDiv:function(){this.formattedContainer=inputEx.cn("div",{className:"inputEx-InPlaceEdit-visu"});if(D.isFunction(this.options.formatDom)){this.formattedContainer.appendChild(this.options.formatDom(this.options.value))}else{if(D.isFunction(this.options.formatValue)){this.formattedContainer.innerHTML=this.options.formatValue(this.options.value)}else{this.formattedContainer.innerHTML=D.isUndefined(this.options.value)?inputEx.messages.emptyInPlaceEdit:this.options.value}}this.fieldContainer.appendChild(this.formattedContainer)},initEvents:function(){A.addListener(this.formattedContainer,"click",this.openEditor,this,true);if(this.options.animColors){A.addListener(this.formattedContainer,"mouseover",this.onVisuMouseOver,this,true);A.addListener(this.formattedContainer,"mouseout",this.onVisuMouseOut,this,true)}if(this.editorField.el){A.addListener(this.editorField.el,"keyup",this.onKeyUp,this,true);A.addListener(this.editorField.el,"keydown",this.onKeyDown,this,true)}},onKeyUp:function(E){if(E.keyCode==13){this.onOkEditor(E)}if(E.keyCode==27){this.onCancelEditor(E)}},onKeyDown:function(E){if(E.keyCode==9){this.onOkEditor(E)}},onOkEditor:function(G){A.stopEvent(G);var F=this.editorField.getValue();this.setValue(F);this.editorContainer.style.display="none";this.formattedContainer.style.display="";var E=this;setTimeout(function(){E.updatedEvt.fire(F)},50)},onCancelEditor:function(E){A.stopEvent(E);this.editorContainer.style.display="none";this.formattedContainer.style.display=""},openEditor:function(){var E=this.getValue();this.editorContainer.style.display="";this.formattedContainer.style.display="none";if(!D.isUndefined(E)){this.editorField.setValue(E)}this.editorField.focus();if(this.editorField.el&&D.isFunction(this.editorField.el.setSelectionRange)&&(!!E&&!!E.length)){this.editorField.el.setSelectionRange(0,E.length)}},getValue:function(){var E=(this.editorContainer.style.display=="");return E?this.editorField.getValue():this.value},setValue:function(F,E){this.value=F;if(D.isUndefined(F)||F==""){inputEx.renderVisu(this.options.visu,inputEx.messages.emptyInPlaceEdit,this.formattedContainer)}else{inputEx.renderVisu(this.options.visu,this.value,this.formattedContainer)}if(this.editorContainer.style.display==""){this.editorField.setValue(F)}inputEx.InPlaceEdit.superclass.setValue.call(this,F,E)},close:function(){this.editorContainer.style.display="none";this.formattedContainer.style.display=""}});inputEx.messages.emptyInPlaceEdit="(click to edit)";inputEx.messages.cancelEditor="cancel";inputEx.messages.okEditor="Ok";inputEx.registerType("inplaceedit",inputEx.InPlaceEdit,[{type:"type",label:"Editor",name:"editorField"}])})();(function(){var A=YAHOO.util.Event,B=YAHOO.util.Dom,C=YAHOO.lang;inputEx.TypeField=function(D){inputEx.TypeField.superclass.constructor.call(this,D);this.updateFieldValue()};C.extend(inputEx.TypeField,inputEx.Field,{renderComponent:function(){this.fieldValueWrapper=inputEx.cn("div",{className:"inputEx-TypeField-FieldValueWrapper"});this.fieldContainer.appendChild(this.fieldValueWrapper);this.propertyPanel=inputEx.cn("div",{className:"inputEx-TypeField-PropertiesPanel"},{display:"none"});var D=[];for(var E in inputEx.typeClasses){if(inputEx.typeClasses.hasOwnProperty(E)){D.push({value:E})}}this.typeSelect=new inputEx.SelectField({label:"Type",choices:D,parentEl:this.propertyPanel});this.groupOptionsWrapper=inputEx.cn("div");this.propertyPanel.appendChild(this.groupOptionsWrapper);this.button=inputEx.cn("div",{className:"inputEx-TypeField-EditButton"});this.button.appendChild(this.propertyPanel);this.fieldContainer.appendChild(this.button);this.rebuildGroupOptions()},initEvents:function(){inputEx.TypeField.superclass.initEvents.call(this);A.addListener(this.button,"click",this.onTogglePropertiesPanel,this,true);A.addListener(this.propertyPanel,"click",function(D){A.stopPropagation(D)},this,true);this.typeSelect.updatedEvt.subscribe(this.rebuildGroupOptions,this,true)},rebuildGroupOptions:function(){try{var D=null;if(this.group){D=this.group.getValue();this.group.close();this.group.destroy();this.groupOptionsWrapper.innerHTML=""}var G=inputEx.getFieldClass(this.typeSelect.getValue());var E={fields:G.groupOptions,parentEl:this.groupOptionsWrapper};this.group=new inputEx.Group(E);if(D){this.group.setValue({name:D.name,label:D.label})}this.group.updatedEvt.subscribe(this.onChangeGroupOptions,this,true);this.updateFieldValue()}catch(F){if(YAHOO.lang.isObject(window.console)&&YAHOO.lang.isFunction(window.console["log"])){console.log("inputEx.TypeField.rebuildGroupOptions: ",F)}}},onTogglePropertiesPanel:function(){if(this.propertyPanel.style.display=="none"){this.propertyPanel.style.display="";B.addClass(this.button,"opened")}else{this.propertyPanel.style.display="none";B.removeClass(this.button,"opened")}},onChangeGroupOptions:function(){this.updateFieldValue();this.fireUpdatedEvt()},updateFieldValue:function(){try{if(this.fieldValue){this.fieldValue.close();this.fieldValue.destroy();delete this.fieldValue;this.fieldValueWrapper.innerHTML=""}var E=this.group.getValue();E.type=this.getValue().type;E.parentEl=this.fieldValueWrapper;this.fieldValue=inputEx(E,this);this.fieldValue.updatedEvt.subscribe(this.fireUpdatedEvt,this,true)}catch(D){console.log("Error while updateFieldValue",D.message)}},setValue:function(E,D){this.typeSelect.setValue(E.type,false);this.rebuildGroupOptions();if(C.isObject(E.inputParams)){this.group.setValue(E.inputParams,false)}else{this.group.setValue(E,false)}this.updateFieldValue();if(C.isObject(E.inputParams)&&!C.isUndefined(E.inputParams.value)){this.fieldValue.setValue(E.inputParams.value)}else{if(!C.isUndefined(E.value)){this.fieldValue.setValue(E.value)}}if(D!==false){this.fireUpdatedEvt()}},getValue:function(){var I=function(K,N){var J,L=K.groupOptions.length,M;for(J=0;JQ[0])?1:-1;i=Q[0]+e*M;h=i;H-=j;F+=j}N.fillStyle=this.color;N.beginPath();N.moveTo(Q[0],Q[1]);N.lineTo(i,H);N.lineTo(h,F);N.fill();N.strokeStyle=this.bordercolor;N.lineWidth=this.borderwidth;N.beginPath();N.moveTo(Q[0],Q[1]);N.lineTo(i,H);N.lineTo(h,F);N.lineTo(Q[0],Q[1]);N.stroke()}});WireIt.BezierWire=function(D,C,B,A){WireIt.BezierWire.superclass.constructor.call(this,D,C,B,A)};YAHOO.lang.extend(WireIt.BezierWire,WireIt.Wire,{xtype:"WireIt.BezierWire",coeffMulDirection:100,draw:function(){var O=this.terminal1.getXY();var M=this.terminal2.getXY();var F=this.coeffMulDirection;var B=Math.sqrt(Math.pow(O[0]-M[0],2)+Math.pow(O[1]-M[1],2));if(BK[0]){K[0]=D[0]}if(D[1]>K[1]){K[1]=D[1]}}var G=[4,4];H[0]=H[0]-G[0];H[1]=H[1]-G[1];K[0]=K[0]+G[0];K[1]=K[1]+G[1];var E=Math.abs(K[0]-H[0]);var N=Math.abs(K[1]-H[1]);this.min=H;this.max=K;this.SetCanvasRegion(H[0],H[1],E,N);var J=this.getContext();for(I=0;IR[0]){R[0]=f[0]}if(f[1]>R[1]){R[1]=f[1]}}s[0]=s[0]-F[0];s[1]=s[1]-F[1];R[0]=R[0]+F[0];R[1]=R[1]+F[1];var S=Math.abs(R[0]-s[0]);var Y=Math.abs(R[1]-s[1]);this.min=s;this.max=R;this.SetCanvasRegion(s[0],s[1],S,Y);var h=this.getContext();for(m=0;mV[0])?1:-1;M=V[0]+g*H;K=M;y-=r;x+=r}h.fillStyle=this.color;h.beginPath();h.moveTo(V[0],V[1]);h.lineTo(M,y);h.lineTo(K,x);h.fill();h.strokeStyle=this.bordercolor;h.lineWidth=this.borderwidth;h.beginPath();h.moveTo(V[0],V[1]);h.lineTo(M,y);h.lineTo(K,x);h.lineTo(V[0],V[1]);h.stroke();return[q,n,X,V]}});(function(){var A=YAHOO.util;var C=YAHOO.lang,B="WireIt-";WireIt.TerminalProxy=function(E,D){this.terminal=E;this.termConfig=D||{};this.terminalProxySize=D.terminalProxySize||10;this.fakeTerminal=null;WireIt.TerminalProxy.superclass.constructor.call(this,this.terminal.el,undefined,{dragElId:"WireIt-TerminalProxy",resizeFrame:false,centerFrame:true})};A.DDM.mode=A.DDM.INTERSECT;C.extend(WireIt.TerminalProxy,YAHOO.util.DDProxy,{createFrame:function(){var E=this,D=document.body;if(!D||!D.firstChild){window.setTimeout(function(){E.createFrame()},50);return }var J=this.getDragEl(),I=YAHOO.util.Dom;if(!J){J=document.createElement("div");J.id=this.dragElId;var H=J.style;H.position="absolute";H.visibility="hidden";H.cursor="move";H.border="2px solid #aaa";H.zIndex=999;var F=this.terminalProxySize+"px";H.height=F;H.width=F;var G=document.createElement("div");I.setStyle(G,"height","100%");I.setStyle(G,"width","100%");I.setStyle(G,"background-color","#ccc");I.setStyle(G,"opacity","0");J.appendChild(G);D.insertBefore(J,D.firstChild)}},startDrag:function(){if(this.terminal.nMaxWires==1&&this.terminal.wires.length==1){this.terminal.wires[0].remove()}else{if(this.terminal.wires.length>=this.terminal.nMaxWires){return }}var E=this.terminalProxySize/2;this.fakeTerminal={direction:this.terminal.fakeDirection,pos:[200,200],addWire:function(){},removeWire:function(){},getXY:function(){var G=YAHOO.util.Dom.getElementsByClassName("WireIt-Layer");if(G.length>0){var H=YAHOO.util.Dom.getXY(G[0]);return[this.pos[0]-H[0]+E,this.pos[1]-H[1]+E]}return this.pos}};var F=this.terminal.parentEl.parentNode;if(this.terminal.container){F=this.terminal.container.layer.el}var D=WireIt.wireClassFromXtype(this.terminal.editingWireConfig.xtype);this.editingWire=new D(this.terminal,this.fakeTerminal,F,this.terminal.editingWireConfig);YAHOO.util.Dom.addClass(this.editingWire.element,B+"Wire-editing")},onDrag:function(D){if(!this.editingWire){return }if(this.terminal.container){this.fakeTerminal.pos=[D.clientX+this.terminal.container.layer.el.scrollLeft,D.clientY+this.terminal.container.layer.el.scrollTop]}else{this.fakeTerminal.pos=(YAHOO.env.ua.ie)?[D.clientX,D.clientY]:[D.clientX+window.pageXOffset,D.clientY+window.pageYOffset]}this.editingWire.redraw()},endDrag:function(D){if(this.editingWire){this.editingWire.remove();this.editingWire=null}},onDragEnter:function(F,D){if(!this.editingWire){return }for(var E=0;E0){D.wires[0].remove()}M=new K(F,E,I,F.wireConfig);M.redraw()}else{if(D.wires.length0){this.show()}},scissorClick:function(){this._terminal.removeAllWires();if(this.terminalTimeout){this.terminalTimeout.cancel()}this.hideNow()},show:function(){this.setPosition();this.setStyle("display","");if(WireIt.Scissors.visibleInstance&&WireIt.Scissors.visibleInstance!=this){if(WireIt.Scissors.visibleInstance.terminalTimeout){WireIt.Scissors.visibleInstance.terminalTimeout.cancel()}WireIt.Scissors.visibleInstance.hideNow()}WireIt.Scissors.visibleInstance=this;if(this.terminalTimeout){this.terminalTimeout.cancel()}},hide:function(){this.terminalTimeout=YAHOO.lang.later(700,this,this.hideNow)},hideNow:function(){WireIt.Scissors.visibleInstance=null;this.setStyle("display","none")}})})();(function(){var B=YAHOO.util;var A=B.Event,E=YAHOO.lang,C=B.Dom,D="WireIt-";WireIt.Terminal=function(H,G,F){this.name=null;this.parentEl=H;this.container=F;this.wires=[];this.setOptions(G);this.eventAddWire=new B.CustomEvent("eventAddWire");this.eventRemoveWire=new B.CustomEvent("eventRemoveWire");this.el=null;this.render();if(this.editable){this.dd=new WireIt.TerminalProxy(this,this.ddConfig);this.scissors=new WireIt.Scissors(this)}};WireIt.Terminal.prototype={xtype:"WireIt.Terminal",direction:[0,1],fakeDirection:[0,-1],editable:true,nMaxWires:Infinity,wireConfig:{},editingWireConfig:{},className:"WireIt-Terminal",connectedClassName:"WireIt-Terminal-connected",dropinviteClassName:"WireIt-Terminal-dropinvite",offsetPosition:null,alwaysSrc:false,ddConfig:false,setOptions:function(G){for(var F in G){if(G.hasOwnProperty(F)){this[F]=G[F]}}if(G.direction&&!G.fakeDirection){this.fakeDirection=[-G.direction[0],-G.direction[1]]}if(G.wireConfig&&!G.editingWireConfig){this.editingWireConfig=this.wireConfig}},setDropInvitation:function(F){if(F){C.addClass(this.el,this.dropinviteClassName)}else{C.removeClass(this.el,this.dropinviteClassName)}},render:function(){this.el=WireIt.cn("div",{className:this.className});if(this.name){this.el.title=this.name}this.setPosition(this.offsetPosition);this.parentEl.appendChild(this.el)},setPosition:function(G){if(G){this.el.style.left="";this.el.style.top="";this.el.style.right="";this.el.style.bottom="";if(E.isArray(G)){this.el.style.left=G[0]+"px";this.el.style.top=G[1]+"px"}else{if(E.isObject(G)){for(var F in G){if(G.hasOwnProperty(F)&&G[F]!==""){this.el.style[F]=G[F]+"px"}}}}}},addWire:function(F){this.wires.push(F);C.addClass(this.el,this.connectedClassName);this.eventAddWire.fire(F)},removeWire:function(G){var F=WireIt.indexOf(G,this.wires);if(F!=-1){this.wires[F].destroy();this.wires[F]=null;this.wires=WireIt.compact(this.wires);if(this.wires.length===0){C.removeClass(this.el,this.connectedClassName)}this.eventRemoveWire.fire(G)}},getXY:function(){var G=this.container&&this.container.layer?this.container.layer.el:document.body;var H=this.el;var I=0,F=0;if(H.offsetParent){do{I+=H.offsetLeft;F+=H.offsetTop;H=H.offsetParent}while(!!H&&H!=G)}return[I+15,F+15]},remove:function(){while(this.wires.length>0){this.wires[0].remove()}this.parentEl.removeChild(this.el);A.purgeElement(this.el);if(this.scissors){A.purgeElement(this.scissors.get("element"))}},getConnectedTerminals:function(){var F=[];if(this.wires){for(var G=0;G0){this.wires[0].remove()}}}})();WireIt.util.TerminalInput=function(C,B,A){WireIt.util.TerminalInput.superclass.constructor.call(this,C,B,A)};YAHOO.lang.extend(WireIt.util.TerminalInput,WireIt.Terminal,{xtype:"WireIt.TerminalInput",direction:[0,-1],fakeDirection:[0,1],nMaxWires:1,ddConfig:{type:"input",allowedTypes:["output"]}});WireIt.util.TerminalOutput=function(C,B,A){WireIt.util.TerminalOutput.superclass.constructor.call(this,C,B,A)};YAHOO.lang.extend(WireIt.util.TerminalOutput,WireIt.Terminal,{xtype:"WireIt.TerminalOutput",direction:[0,1],fakeDirection:[0,-1],ddConfig:{type:"output",allowedTypes:["input"]},alwaysSrc:true});WireIt.util.DD=function(D,C,A,B){if(!D){throw new Error("WireIt.util.DD needs at least terminals and id")}this._WireItTerminals=D;WireIt.util.DD.superclass.constructor.call(this,C,A,B)};YAHOO.extend(WireIt.util.DD,YAHOO.util.DD,{onDrag:function(D){var A=YAHOO.lang.isArray(this._WireItTerminals)?this._WireItTerminals:(this._WireItTerminals.isWireItTerminal?[this._WireItTerminals]:[]);for(var C=0;C0){this.removeContainer(this.containers[0])}},removeAllContainers:function(){this.clear()},getWiring:function(){var B;var C={containers:[],wires:[]};for(B=0;B=E&&H=C&&F=E&&H=C&&FF){L[0]=F-M}if(L[1]+J>N){L[1]=N-J}this.layer.el.scrollLeft=L[0];this.layer.el.scrollTop=L[1]},onLayerScroll:function(){if(this.scrollTimer){window.clearTimeout(this.scrollTimer)}var C=this;this.scrollTimer=window.setTimeout(function(){C.draw()},50)},draw:function(){var N=this.getContext();var E=B.getRegion(this.element);var D=E.right-E.left-4;var J=E.bottom-E.top-4;N.clearRect(0,0,D,J);var C=this.layer.el.scrollWidth;var L=this.layer.el.scrollHeight;var F=Math.floor(100*D/C)/100;var M=Math.floor(100*J/L)/100;var O=B.getRegion(this.layer.el);var K=O.right-O.left;var I=O.bottom-O.top;var H=this.layer.el.scrollLeft;var G=this.layer.el.scrollTop;N.strokeStyle="rgb(200, 50, 50)";N.lineWidth=1;N.strokeRect(H*F,G*M,K*F,I*M);N.fillStyle=this.style;N.strokeStyle=this.style;N.lineWidth=this.lineWidth;this.drawContainers(N,F,M);this.drawWires(N,F,M)},drawContainers:function(C,I,F){var H=this.layer.containers;var J=H.length,E,D=WireIt.getIntStyle,G;for(E=0;E";return document.createElement(E)}else{var G=document.createElement(B);this.sn(G,F,C);if(H){G.innerHTML=H}return G}},indexOf:function(F,B,E){var C=B.length,D;if(!A.isFunction(E)){E=function(G,H){return G===H}}for(D=0;D=0)?D.length-1:0])}catch(E){alert(E)}}this.msgEl.innerHTML=F},show:function(){this.divEl.style.display=""},hide:function(){this.divEl.style.display="none"},clear:function(D){this.setValue(C.isUndefined(this.options.value)?"":this.options.value,D)},isEmpty:function(){return this.getValue()===""},setParentField:function(D){this.parentField=D},getParentField:function(){return this.parentField}};inputEx.Field.groupOptions=[{type:"string",label:"Label",name:"label",value:""},{type:"string",label:"Name",name:"name",value:""},{type:"string",label:"Description",name:"description",value:""},{type:"boolean",label:"Required?",name:"required",value:false},{type:"boolean",label:"Show messages",name:"showMsg",value:false}]})();(function(){var A=YAHOO.lang;inputEx.BaseField=inputEx.Field;inputEx.Field=function(B){inputEx.Field.superclass.constructor.call(this,B)};A.extend(inputEx.Field,inputEx.BaseField,{setOptions:function(B){inputEx.Field.superclass.setOptions.call(this,B);this.options.wirable=A.isUndefined(B.wirable)?false:B.wirable;this.options.container=B.container;B.container=null},render:function(){inputEx.Field.superclass.render.call(this);if(this.options.wirable){this.renderTerminal()}},renderTerminal:function(){var B=inputEx.cn("div",{className:"WireIt-InputExTerminal"});this.divEl.insertBefore(B,this.fieldContainer);this.terminal=new WireIt.Terminal(B,{name:this.options.name,direction:[-1,0],fakeDirection:[0,1],ddConfig:{type:"input",allowedTypes:["output"]},nMaxWires:1},this.options.container);if(this.options.container){this.options.container.terminals.push(this.terminal)}this.terminal.eventAddWire.subscribe(this.onAddWire,this,true);this.terminal.eventRemoveWire.subscribe(this.onRemoveWire,this,true)},onAddWire:function(B,C){this.options.container.onAddWire(B,C);this.disable();this.el.value="[wired]"},onRemoveWire:function(B,C){this.options.container.onRemoveWire(B,C);this.enable();this.el.value=""}});inputEx.Field.groupOptions=inputEx.BaseField.groupOptions.concat([{type:"boolean",label:"Wirable",name:"wirable",value:false}])})();WireIt.FormContainer=function(A,B){WireIt.FormContainer.superclass.constructor.call(this,A,B)};YAHOO.lang.extend(WireIt.FormContainer,WireIt.Container,{xtype:"WireIt.FormContainer",fields:[],legend:null,collapsible:false,render:function(){WireIt.FormContainer.superclass.render.call(this);this.renderForm()},renderForm:function(){this.setBackReferenceOnFieldOptionsRecursively(this.fields);var A={parentEl:this.bodyEl,fields:this.fields,legend:this.legend,collapsible:this.collapsible};this.form=new inputEx.Group(A);if(this.form.legend){YAHOO.util.Event.addListener(this.form.legend,"click",function(){var C=this;for(var B=0;B0){this.inputs[0].focus()}},getFieldByName:function(D){if(!this.inputsNames.hasOwnProperty(D)){return null}return this.inputsNames[D]},onChange:function(E,F){var G=F[0];var D=F[1];this.runInteractions(D,G);this.fireUpdatedEvt()},runAction:function(D,F){var E=this.getFieldByName(D.name);if(YAHOO.lang.isFunction(E[D.action])){E[D.action].call(E)}else{if(YAHOO.lang.isFunction(D.action)){D.action.call(E,F)}else{throw new Error("action "+D.action+" is not a valid action for field "+D.name)}}},runInteractions:function(E,J){var G=inputEx.indexOf(E,this.inputs);var I=this.options.fields[G];if(YAHOO.lang.isUndefined(I.interactions)){return }var K=I.interactions;for(var H=0;H=this.options.minLength}return D},disable:function(){this.el.disabled=true},enable:function(){this.el.disabled=false},focus:function(){if(!!this.el&&!C.isUndefined(this.el.focus)){this.el.focus()}},getStateString:function(D){if(D==inputEx.stateInvalid&&this.options.minLength&&this.el.value.length=0&&C.position=0){C=inputEx.indexOf(this.el.childNodes[this.el.selectedIndex],this.choicesList,function(E,D){return E===D.node});return this.choicesList[C].value}else{return""}},disable:function(){this.el.disabled=true},enable:function(){this.el.disabled=false},createChoiceNode:function(C){return inputEx.cn("option",{value:C.value},null,C.label)},removeChoiceNode:function(C){this.el.removeChild(C)},disableChoiceNode:function(C){C.disabled="disabled"},enableChoiceNode:function(C){C.removeAttribute("disabled")},appendChoiceNode:function(E,C){var F,D;F=0;for(D=0;D@"+B[0]+" ?";return false}}}}return true},validate:function(){var A=inputEx.EmailField.superclass.validate.call(this);if(!!this.options.fixdomain){this.options.messages.invalid=inputEx.messages.invalidEmail;return A&&this.validateDomain()}else{return A}},getValue:function(){var A;A=inputEx.EmailField.superclass.getValue.call(this);return inputEx.removeAccents(A.toLowerCase())}});inputEx.messages.invalidEmail="Invalid email, ex: sample@test.com";inputEx.messages.didYouMeant="Did you mean : ";inputEx.registerType("email",inputEx.EmailField,[])})();(function(){var A=YAHOO.lang;inputEx.UrlField=function(B){inputEx.UrlField.superclass.constructor.call(this,B)};A.extend(inputEx.UrlField,inputEx.StringField,{setOptions:function(B){inputEx.UrlField.superclass.setOptions.call(this,B);this.options.className=B.className?B.className:"inputEx-Field inputEx-UrlField";this.options.messages.invalid=inputEx.messages.invalidUrl;this.options.favicon=A.isUndefined(B.favicon)?(("https:"==document.location.protocol)?false:true):B.favicon;this.options.size=B.size||50;this.options.regexp=inputEx.regexps.url},render:function(){inputEx.UrlField.superclass.render.call(this);this.el.size=this.options.size;if(!this.options.favicon){YAHOO.util.Dom.addClass(this.el,"nofavicon")}if(this.options.favicon){this.favicon=inputEx.cn("img",{src:inputEx.spacerUrl});this.fieldContainer.insertBefore(this.favicon,this.fieldContainer.childNodes[0]);YAHOO.util.Event.addListener(this.favicon,"click",function(){this.focus()},this,true)}},setClassFromState:function(){inputEx.UrlField.superclass.setClassFromState.call(this);if(this.options.favicon){this.updateFavicon((this.previousState==inputEx.stateValid)?this.getValue():null)}},updateFavicon:function(C){var B=C?C.match(/https?:\/\/[^\/]*/)+"/favicon.ico":inputEx.spacerUrl;if(B!=this.favicon.src){inputEx.sn(this.favicon,null,{visibility:"hidden"});this.favicon.src=B;if(this.timer){clearTimeout(this.timer)}var D=this;this.timer=setTimeout(function(){D.displayFavicon()},1000)}},displayFavicon:function(){inputEx.sn(this.favicon,null,{visibility:(this.favicon.naturalWidth!=0)?"visible":"hidden"})}});inputEx.messages.invalidUrl="Invalid URL, ex: http://www.test.com";inputEx.registerType("url",inputEx.UrlField,[{type:"boolean",label:"Display favicon",name:"favicon",value:true}])})();(function(){var C=YAHOO.lang,A=YAHOO.util.Event,B=YAHOO.util.Dom;inputEx.ListField=function(D){this.subFields=[];inputEx.ListField.superclass.constructor.call(this,D)};C.extend(inputEx.ListField,inputEx.Field,{setOptions:function(D){inputEx.ListField.superclass.setOptions.call(this,D);this.options.className=D.className?D.className:"inputEx-Field inputEx-ListField";this.options.sortable=C.isUndefined(D.sortable)?false:D.sortable;this.options.elementType=D.elementType||{type:"string"};this.options.useButtons=C.isUndefined(D.useButtons)?false:D.useButtons;this.options.unique=C.isUndefined(D.unique)?false:D.unique;this.options.listAddLabel=D.listAddLabel||inputEx.messages.listAddLink;this.options.listRemoveLabel=D.listRemoveLabel||inputEx.messages.listRemoveLink;this.options.maxItems=D.maxItems;this.options.minItems=D.minItems},renderComponent:function(){if(this.options.useButtons){this.addButton=inputEx.cn("img",{src:inputEx.spacerUrl,className:"inputEx-ListField-addButton"});this.fieldContainer.appendChild(this.addButton)}this.fieldContainer.appendChild(inputEx.cn("span",null,{marginLeft:"4px"},this.options.listLabel));this.childContainer=inputEx.cn("div",{className:"inputEx-ListField-childContainer"});this.fieldContainer.appendChild(this.childContainer);if(!this.options.useButtons){this.addButton=inputEx.cn("a",{className:"inputEx-List-link"},null,this.options.listAddLabel);this.fieldContainer.appendChild(this.addButton)}},initEvents:function(){A.addListener(this.addButton,"click",this.onAddButton,this,true)},validate:function(){var F=true;var J={};var D=this.subFields.length;if(C.isNumber(this.options.minItems)&&Dthis.options.maxItems){F=false}for(var G=0;G0){for(F=0;F=this.options.maxItems){return }var D=this.addElement();D.focus();this.fireUpdatedEvt()},renderSubField:function(K){var G=inputEx.cn("div"),E;if(this.options.useButtons){E=inputEx.cn("img",{src:inputEx.spacerUrl,className:"inputEx-ListField-delButton"});A.addListener(E,"click",this.onDelete,this,true);G.appendChild(E)}var J=C.merge({},this.options.elementType);if(C.isObject(J.inputParams)&&!C.isUndefined(K)){J.inputParams.value=K}else{if(!C.isUndefined(K)){J.value=K}}var H=inputEx(J,this);var F=H.getEl();B.setStyle(F,"margin-left","4px");B.setStyle(F,"float","left");G.appendChild(F);H.updatedEvt.subscribe(this.onChange,this,true);if(this.options.sortable){var I=inputEx.cn("div",{className:"inputEx-ListField-Arrow inputEx-ListField-ArrowUp"});A.addListener(I,"click",this.onArrowUp,this,true);var D=inputEx.cn("div",{className:"inputEx-ListField-Arrow inputEx-ListField-ArrowDown"});A.addListener(D,"click",this.onArrowDown,this,true);G.appendChild(I);G.appendChild(D)}if(!this.options.useButtons){E=inputEx.cn("a",{className:"inputEx-List-link"},null,this.options.listRemoveLabel);A.addListener(E,"click",this.onDelete,this,true);G.appendChild(E)}G.appendChild(inputEx.cn("div",null,{clear:"both"}));this.childContainer.appendChild(G);return H},onArrowUp:function(J){var G=A.getTarget(J).parentNode;var E=null;var F=-1;for(var H=1;Hthis.options.maxLength){return inputEx.messages.stringTooLong[0]+this.options.maxLength+inputEx.messages.stringTooLong[1]}}return inputEx.Textarea.superclass.getStateString.call(this,B)},insert:function(E){var D,C,B;if(document.selection){this.el.focus();D=document.selection.createRange();D.text=E}else{if(this.el.selectionStart||this.el.selectionStart=="0"){C=this.el.selectionStart;B=this.el.selectionEnd;this.el.value=this.el.value.substring(0,C)+E+this.el.value.substring(B,this.el.value.length)}else{this.el.value+=E}}}});inputEx.messages.stringTooLong=["This field should contain at most "," numbers or characters"];inputEx.registerType("text",inputEx.Textarea,[{type:"integer",label:"Rows",name:"rows",value:6},{type:"integer",label:"Cols",name:"cols",value:23}])})();(function(){var D=YAHOO.lang,A=YAHOO.util.Event,B=YAHOO.util.Dom,C="inputEx-InPlaceEdit-";inputEx.InPlaceEdit=function(E){inputEx.InPlaceEdit.superclass.constructor.call(this,E)};D.extend(inputEx.InPlaceEdit,inputEx.Field,{setOptions:function(E){inputEx.InPlaceEdit.superclass.setOptions.call(this,E);this.options.visu=E.visu;this.options.editorField=E.editorField;this.options.buttonTypes=E.buttonTypes||{ok:"submit",cancel:"link"};this.options.animColors=E.animColors||null},renderComponent:function(){this.renderVisuDiv();this.renderEditor()},renderEditor:function(){this.editorContainer=inputEx.cn("div",{className:C+"editor"},{display:"none"});this.editorField=inputEx(this.options.editorField,this);var E=this.editorField.getEl();this.editorContainer.appendChild(E);B.addClass(E,C+"editorDiv");this.okButton=new inputEx.widget.Button({type:this.options.buttonTypes.ok,parentEl:this.editorContainer,value:inputEx.messages.okEditor,className:"inputEx-Button "+C+"OkButton",onClick:{fn:this.onOkEditor,scope:this}});this.cancelLink=new inputEx.widget.Button({type:this.options.buttonTypes.cancel,parentEl:this.editorContainer,value:inputEx.messages.cancelEditor,className:"inputEx-Button "+C+"CancelLink",onClick:{fn:this.onCancelEditor,scope:this}});this.editorContainer.appendChild(inputEx.cn("div",null,{clear:"both"}));this.fieldContainer.appendChild(this.editorContainer)},onVisuMouseOver:function(E){if(this.colorAnim){this.colorAnim.stop(true)}inputEx.sn(this.formattedContainer,null,{backgroundColor:this.options.animColors.from})},onVisuMouseOut:function(E){if(this.colorAnim){this.colorAnim.stop(true)}this.colorAnim=new YAHOO.util.ColorAnim(this.formattedContainer,{backgroundColor:this.options.animColors},1);this.colorAnim.onComplete.subscribe(function(){B.setStyle(this.formattedContainer,"background-color","")},this,true);this.colorAnim.animate()},renderVisuDiv:function(){this.formattedContainer=inputEx.cn("div",{className:"inputEx-InPlaceEdit-visu"});if(D.isFunction(this.options.formatDom)){this.formattedContainer.appendChild(this.options.formatDom(this.options.value))}else{if(D.isFunction(this.options.formatValue)){this.formattedContainer.innerHTML=this.options.formatValue(this.options.value)}else{this.formattedContainer.innerHTML=D.isUndefined(this.options.value)?inputEx.messages.emptyInPlaceEdit:this.options.value}}this.fieldContainer.appendChild(this.formattedContainer)},initEvents:function(){A.addListener(this.formattedContainer,"click",this.openEditor,this,true);if(this.options.animColors){A.addListener(this.formattedContainer,"mouseover",this.onVisuMouseOver,this,true);A.addListener(this.formattedContainer,"mouseout",this.onVisuMouseOut,this,true)}if(this.editorField.el){A.addListener(this.editorField.el,"keyup",this.onKeyUp,this,true);A.addListener(this.editorField.el,"keydown",this.onKeyDown,this,true)}},onKeyUp:function(E){if(E.keyCode==13){this.onOkEditor(E)}if(E.keyCode==27){this.onCancelEditor(E)}},onKeyDown:function(E){if(E.keyCode==9){this.onOkEditor(E)}},onOkEditor:function(G){A.stopEvent(G);var F=this.editorField.getValue();this.setValue(F);this.editorContainer.style.display="none";this.formattedContainer.style.display="";var E=this;setTimeout(function(){E.updatedEvt.fire(F)},50)},onCancelEditor:function(E){A.stopEvent(E);this.editorContainer.style.display="none";this.formattedContainer.style.display=""},openEditor:function(){var E=this.getValue();this.editorContainer.style.display="";this.formattedContainer.style.display="none";if(!D.isUndefined(E)){this.editorField.setValue(E)}this.editorField.focus();if(this.editorField.el&&D.isFunction(this.editorField.el.setSelectionRange)&&(!!E&&!!E.length)){this.editorField.el.setSelectionRange(0,E.length)}},getValue:function(){var E=(this.editorContainer.style.display=="");return E?this.editorField.getValue():this.value},setValue:function(F,E){this.value=F;if(D.isUndefined(F)||F==""){inputEx.renderVisu(this.options.visu,inputEx.messages.emptyInPlaceEdit,this.formattedContainer)}else{inputEx.renderVisu(this.options.visu,this.value,this.formattedContainer)}if(this.editorContainer.style.display==""){this.editorField.setValue(F)}inputEx.InPlaceEdit.superclass.setValue.call(this,F,E)},close:function(){this.editorContainer.style.display="none";this.formattedContainer.style.display=""}});inputEx.messages.emptyInPlaceEdit="(click to edit)";inputEx.messages.cancelEditor="cancel";inputEx.messages.okEditor="Ok";inputEx.registerType("inplaceedit",inputEx.InPlaceEdit,[{type:"type",label:"Editor",name:"editorField"}])})();(function(){var A=YAHOO.util.Event,B=YAHOO.util.Dom,C=YAHOO.lang;inputEx.TypeField=function(D){inputEx.TypeField.superclass.constructor.call(this,D);this.updateFieldValue()};C.extend(inputEx.TypeField,inputEx.Field,{renderComponent:function(){this.fieldValueWrapper=inputEx.cn("div",{className:"inputEx-TypeField-FieldValueWrapper"});this.fieldContainer.appendChild(this.fieldValueWrapper);this.propertyPanel=inputEx.cn("div",{className:"inputEx-TypeField-PropertiesPanel"},{display:"none"});var D=[];for(var E in inputEx.typeClasses){if(inputEx.typeClasses.hasOwnProperty(E)){D.push({value:E})}}this.typeSelect=new inputEx.SelectField({label:"Type",choices:D,parentEl:this.propertyPanel});this.groupOptionsWrapper=inputEx.cn("div");this.propertyPanel.appendChild(this.groupOptionsWrapper);this.button=inputEx.cn("div",{className:"inputEx-TypeField-EditButton"});this.button.appendChild(this.propertyPanel);this.fieldContainer.appendChild(this.button);this.rebuildGroupOptions()},initEvents:function(){inputEx.TypeField.superclass.initEvents.call(this);A.addListener(this.button,"click",this.onTogglePropertiesPanel,this,true);A.addListener(this.propertyPanel,"click",function(D){A.stopPropagation(D)},this,true);this.typeSelect.updatedEvt.subscribe(this.rebuildGroupOptions,this,true)},rebuildGroupOptions:function(){try{var D=null;if(this.group){D=this.group.getValue();this.group.close();this.group.destroy();this.groupOptionsWrapper.innerHTML=""}var G=inputEx.getFieldClass(this.typeSelect.getValue());var E={fields:G.groupOptions,parentEl:this.groupOptionsWrapper};this.group=new inputEx.Group(E);if(D){this.group.setValue({name:D.name,label:D.label})}this.group.updatedEvt.subscribe(this.onChangeGroupOptions,this,true);this.updateFieldValue()}catch(F){if(YAHOO.lang.isObject(window.console)&&YAHOO.lang.isFunction(window.console["log"])){console.log("inputEx.TypeField.rebuildGroupOptions: ",F)}}},onTogglePropertiesPanel:function(){if(this.propertyPanel.style.display=="none"){this.propertyPanel.style.display="";B.addClass(this.button,"opened")}else{this.propertyPanel.style.display="none";B.removeClass(this.button,"opened")}},onChangeGroupOptions:function(){this.updateFieldValue();this.fireUpdatedEvt()},updateFieldValue:function(){try{if(this.fieldValue){this.fieldValue.close();this.fieldValue.destroy();delete this.fieldValue;this.fieldValueWrapper.innerHTML=""}var E=this.group.getValue();E.type=this.getValue().type;E.parentEl=this.fieldValueWrapper;this.fieldValue=inputEx(E,this);this.fieldValue.updatedEvt.subscribe(this.fireUpdatedEvt,this,true)}catch(D){console.log("Error while updateFieldValue",D.message)}},setValue:function(E,D){this.typeSelect.setValue(E.type,false);this.rebuildGroupOptions();if(C.isObject(E.inputParams)){this.group.setValue(E.inputParams,false)}else{this.group.setValue(E,false)}this.updateFieldValue();if(C.isObject(E.inputParams)&&!C.isUndefined(E.inputParams.value)){this.fieldValue.setValue(E.inputParams.value)}else{if(!C.isUndefined(E.value)){this.fieldValue.setValue(E.value)}}if(D!==false){this.fireUpdatedEvt()}},getValue:function(){var I=function(K,N){var J,L=K.groupOptions.length,M;for(J=0;JQ[0])?1:-1;i=Q[0]+e*M;h=i;H-=j;F+=j}N.fillStyle=this.color;N.beginPath();N.moveTo(Q[0],Q[1]);N.lineTo(i,H);N.lineTo(h,F);N.fill();N.strokeStyle=this.bordercolor;N.lineWidth=this.borderwidth;N.beginPath();N.moveTo(Q[0],Q[1]);N.lineTo(i,H);N.lineTo(h,F);N.lineTo(Q[0],Q[1]);N.stroke()}});WireIt.BezierWire=function(D,C,B,A){WireIt.BezierWire.superclass.constructor.call(this,D,C,B,A)};YAHOO.lang.extend(WireIt.BezierWire,WireIt.Wire,{xtype:"WireIt.BezierWire",coeffMulDirection:100,draw:function(){var O=this.terminal1.getXY();var M=this.terminal2.getXY();var F=this.coeffMulDirection;var B=Math.sqrt(Math.pow(O[0]-M[0],2)+Math.pow(O[1]-M[1],2));if(BK[0]){K[0]=D[0]}if(D[1]>K[1]){K[1]=D[1]}}var G=[4,4];H[0]=H[0]-G[0];H[1]=H[1]-G[1];K[0]=K[0]+G[0];K[1]=K[1]+G[1];var E=Math.abs(K[0]-H[0]);var N=Math.abs(K[1]-H[1]);this.min=H;this.max=K;this.SetCanvasRegion(H[0],H[1],E,N);var J=this.getContext();for(I=0;IR[0]){R[0]=f[0]}if(f[1]>R[1]){R[1]=f[1]}}s[0]=s[0]-F[0];s[1]=s[1]-F[1];R[0]=R[0]+F[0];R[1]=R[1]+F[1];var S=Math.abs(R[0]-s[0]);var Y=Math.abs(R[1]-s[1]);this.min=s;this.max=R;this.SetCanvasRegion(s[0],s[1],S,Y);var h=this.getContext();for(m=0;mV[0])?1:-1;M=V[0]+g*H;K=M;y-=r;x+=r}h.fillStyle=this.color;h.beginPath();h.moveTo(V[0],V[1]);h.lineTo(M,y);h.lineTo(K,x);h.fill();h.strokeStyle=this.bordercolor;h.lineWidth=this.borderwidth;h.beginPath();h.moveTo(V[0],V[1]);h.lineTo(M,y);h.lineTo(K,x);h.lineTo(V[0],V[1]);h.stroke();return[q,n,X,V]}});(function(){var A=YAHOO.util;var C=YAHOO.lang,B="WireIt-";WireIt.TerminalProxy=function(E,D){this.terminal=E;this.termConfig=D||{};this.terminalProxySize=D.terminalProxySize||10;this.fakeTerminal=null;WireIt.TerminalProxy.superclass.constructor.call(this,this.terminal.el,undefined,{dragElId:"WireIt-TerminalProxy",resizeFrame:false,centerFrame:true})};A.DDM.mode=A.DDM.INTERSECT;C.extend(WireIt.TerminalProxy,YAHOO.util.DDProxy,{createFrame:function(){var E=this,D=document.body;if(!D||!D.firstChild){window.setTimeout(function(){E.createFrame()},50);return }var J=this.getDragEl(),I=YAHOO.util.Dom;if(!J){J=document.createElement("div");J.id=this.dragElId;var H=J.style;H.position="absolute";H.visibility="hidden";H.cursor="move";H.border="2px solid #aaa";H.zIndex=999;var F=this.terminalProxySize+"px";H.height=F;H.width=F;var G=document.createElement("div");I.setStyle(G,"height","100%");I.setStyle(G,"width","100%");I.setStyle(G,"background-color","#ccc");I.setStyle(G,"opacity","0");J.appendChild(G);D.insertBefore(J,D.firstChild)}},startDrag:function(){if(this.terminal.nMaxWires==1&&this.terminal.wires.length==1){this.terminal.wires[0].remove()}else{if(this.terminal.wires.length>=this.terminal.nMaxWires){return }}var E=this.terminalProxySize/2;this.fakeTerminal={direction:this.terminal.fakeDirection,pos:[200,200],addWire:function(){},removeWire:function(){},getXY:function(){var G=YAHOO.util.Dom.getElementsByClassName("WireIt-Layer");if(G.length>0){var H=YAHOO.util.Dom.getXY(G[0]);return[this.pos[0]-H[0]+E,this.pos[1]-H[1]+E]}return this.pos}};var F=this.terminal.parentEl.parentNode;if(this.terminal.container){F=this.terminal.container.layer.el}var D=WireIt.wireClassFromXtype(this.terminal.editingWireConfig.xtype);this.editingWire=new D(this.terminal,this.fakeTerminal,F,this.terminal.editingWireConfig);YAHOO.util.Dom.addClass(this.editingWire.element,B+"Wire-editing")},onDrag:function(D){if(!this.editingWire){return }if(this.terminal.container){this.fakeTerminal.pos=[D.clientX+this.terminal.container.layer.el.scrollLeft,D.clientY+this.terminal.container.layer.el.scrollTop]}else{this.fakeTerminal.pos=(YAHOO.env.ua.ie)?[D.clientX,D.clientY]:[D.clientX+window.pageXOffset,D.clientY+window.pageYOffset]}this.editingWire.redraw()},endDrag:function(D){if(this.editingWire){this.editingWire.remove();this.editingWire=null}},onDragEnter:function(F,D){if(!this.editingWire){return }for(var E=0;E0){D.wires[0].remove()}M=new K(F,E,I,F.wireConfig);M.redraw()}else{if(D.wires.length0){this.show()}},scissorClick:function(){this._terminal.removeAllWires();if(this.terminalTimeout){this.terminalTimeout.cancel()}this.hideNow()},show:function(){this.setPosition();this.setStyle("display","");if(WireIt.Scissors.visibleInstance&&WireIt.Scissors.visibleInstance!=this){if(WireIt.Scissors.visibleInstance.terminalTimeout){WireIt.Scissors.visibleInstance.terminalTimeout.cancel()}WireIt.Scissors.visibleInstance.hideNow()}WireIt.Scissors.visibleInstance=this;if(this.terminalTimeout){this.terminalTimeout.cancel()}},hide:function(){this.terminalTimeout=YAHOO.lang.later(700,this,this.hideNow)},hideNow:function(){WireIt.Scissors.visibleInstance=null;this.setStyle("display","none")}})})();(function(){var B=YAHOO.util;var A=B.Event,E=YAHOO.lang,C=B.Dom,D="WireIt-";WireIt.Terminal=function(H,G,F){this.name=null;this.parentEl=H;this.container=F;this.wires=[];this.setOptions(G);this.eventAddWire=new B.CustomEvent("eventAddWire");this.eventRemoveWire=new B.CustomEvent("eventRemoveWire");this.el=null;this.render();if(this.editable){this.dd=new WireIt.TerminalProxy(this,this.ddConfig);this.scissors=new WireIt.Scissors(this)}};WireIt.Terminal.prototype={xtype:"WireIt.Terminal",direction:[0,1],fakeDirection:[0,-1],editable:true,nMaxWires:Infinity,wireConfig:{},editingWireConfig:{},className:"WireIt-Terminal",connectedClassName:"WireIt-Terminal-connected",dropinviteClassName:"WireIt-Terminal-dropinvite",offsetPosition:null,alwaysSrc:false,ddConfig:false,setOptions:function(G){for(var F in G){if(G.hasOwnProperty(F)){this[F]=G[F]}}if(G.direction&&!G.fakeDirection){this.fakeDirection=[-G.direction[0],-G.direction[1]]}if(G.wireConfig&&!G.editingWireConfig){this.editingWireConfig=this.wireConfig}},setDropInvitation:function(F){if(F){C.addClass(this.el,this.dropinviteClassName)}else{C.removeClass(this.el,this.dropinviteClassName)}},render:function(){this.el=WireIt.cn("div",{className:this.className});if(this.name){this.el.title=this.name}this.setPosition(this.offsetPosition);this.parentEl.appendChild(this.el)},setPosition:function(G){if(G){this.el.style.left="";this.el.style.top="";this.el.style.right="";this.el.style.bottom="";if(E.isArray(G)){this.el.style.left=G[0]+"px";this.el.style.top=G[1]+"px"}else{if(E.isObject(G)){for(var F in G){if(G.hasOwnProperty(F)&&G[F]!==""){this.el.style[F]=G[F]+"px"}}}}}},addWire:function(F){this.wires.push(F);C.addClass(this.el,this.connectedClassName);this.eventAddWire.fire(F)},removeWire:function(G){var F=WireIt.indexOf(G,this.wires);if(F!=-1){this.wires[F].destroy();this.wires[F]=null;this.wires=WireIt.compact(this.wires);if(this.wires.length===0){C.removeClass(this.el,this.connectedClassName)}this.eventRemoveWire.fire(G)}},getXY:function(){var G=this.container&&this.container.layer?this.container.layer.el:document.body;var H=this.el;var I=0,F=0;if(H.offsetParent){do{I+=H.offsetLeft;F+=H.offsetTop;H=H.offsetParent}while(!!H&&H!=G)}return[I+15,F+15]},remove:function(){while(this.wires.length>0){this.wires[0].remove()}this.parentEl.removeChild(this.el);A.purgeElement(this.el);if(this.scissors){A.purgeElement(this.scissors.get("element"))}},getConnectedTerminals:function(){var F=[];if(this.wires){for(var G=0;G0){this.wires[0].remove()}}}})();WireIt.util.TerminalInput=function(C,B,A){WireIt.util.TerminalInput.superclass.constructor.call(this,C,B,A)};YAHOO.lang.extend(WireIt.util.TerminalInput,WireIt.Terminal,{xtype:"WireIt.TerminalInput",direction:[0,-1],fakeDirection:[0,1],nMaxWires:1,ddConfig:{type:"input",allowedTypes:["output"]}});WireIt.util.TerminalOutput=function(C,B,A){WireIt.util.TerminalOutput.superclass.constructor.call(this,C,B,A)};YAHOO.lang.extend(WireIt.util.TerminalOutput,WireIt.Terminal,{xtype:"WireIt.TerminalOutput",direction:[0,1],fakeDirection:[0,-1],ddConfig:{type:"output",allowedTypes:["input"]},alwaysSrc:true});WireIt.util.DD=function(D,C,A,B){if(!D){throw new Error("WireIt.util.DD needs at least terminals and id")}this._WireItTerminals=D;WireIt.util.DD.superclass.constructor.call(this,C,A,B)};YAHOO.extend(WireIt.util.DD,YAHOO.util.DD,{onDrag:function(D){var A=YAHOO.lang.isArray(this._WireItTerminals)?this._WireItTerminals:(this._WireItTerminals.isWireItTerminal?[this._WireItTerminals]:[]);for(var C=0;C0){this.removeContainer(this.containers[0])}},removeAllContainers:function(){this.clear()},getWiring:function(){var B;var C={containers:[],wires:[]};for(B=0;B=E&&H=C&&F=E&&H=C&&FF){L[0]=F-M}if(L[1]+J>N){L[1]=N-J}this.layer.el.scrollLeft=L[0];this.layer.el.scrollTop=L[1]},onLayerScroll:function(){if(this.scrollTimer){window.clearTimeout(this.scrollTimer)}var C=this;this.scrollTimer=window.setTimeout(function(){C.draw()},50)},draw:function(){var N=this.getContext();var E=B.getRegion(this.element);var D=E.right-E.left-4;var J=E.bottom-E.top-4;N.clearRect(0,0,D,J);var C=this.layer.el.scrollWidth;var L=this.layer.el.scrollHeight;var F=Math.floor(100*D/C)/100;var M=Math.floor(100*J/L)/100;var O=B.getRegion(this.layer.el);var K=O.right-O.left;var I=O.bottom-O.top;var H=this.layer.el.scrollLeft;var G=this.layer.el.scrollTop;N.strokeStyle="rgb(200, 50, 50)";N.lineWidth=1;N.strokeRect(H*F,G*M,K*F,I*M);N.fillStyle=this.style;N.strokeStyle=this.style;N.lineWidth=this.lineWidth;this.drawContainers(N,F,M);this.drawWires(N,F,M)},drawContainers:function(C,I,F){var H=this.layer.containers;var J=H.length,E,D=WireIt.getIntStyle,G;for(E=0;EQ[0])?1:-1;i=Q[0]+e*M;h=i;H-=j;F+=j}N.fillStyle=this.color;N.beginPath();N.moveTo(Q[0],Q[1]);N.lineTo(i,H);N.lineTo(h,F);N.fill();N.strokeStyle=this.bordercolor;N.lineWidth=this.borderwidth;N.beginPath();N.moveTo(Q[0],Q[1]);N.lineTo(i,H);N.lineTo(h,F);N.lineTo(Q[0],Q[1]);N.stroke()}});WireIt.BezierWire=function(D,C,B,A){WireIt.BezierWire.superclass.constructor.call(this,D,C,B,A)};YAHOO.lang.extend(WireIt.BezierWire,WireIt.Wire,{xtype:"WireIt.BezierWire",coeffMulDirection:100,draw:function(){var O=this.terminal1.getXY();var M=this.terminal2.getXY();var F=this.coeffMulDirection;var B=Math.sqrt(Math.pow(O[0]-M[0],2)+Math.pow(O[1]-M[1],2));if(BK[0]){K[0]=D[0]}if(D[1]>K[1]){K[1]=D[1]}}var G=[4,4];H[0]=H[0]-G[0];H[1]=H[1]-G[1];K[0]=K[0]+G[0];K[1]=K[1]+G[1];var E=Math.abs(K[0]-H[0]);var N=Math.abs(K[1]-H[1]);this.min=H;this.max=K;this.SetCanvasRegion(H[0],H[1],E,N);var J=this.getContext();for(I=0;IR[0]){R[0]=f[0]}if(f[1]>R[1]){R[1]=f[1]}}s[0]=s[0]-F[0];s[1]=s[1]-F[1];R[0]=R[0]+F[0];R[1]=R[1]+F[1];var S=Math.abs(R[0]-s[0]);var Y=Math.abs(R[1]-s[1]);this.min=s;this.max=R;this.SetCanvasRegion(s[0],s[1],S,Y);var h=this.getContext();for(m=0;mV[0])?1:-1;M=V[0]+g*H;K=M;y-=r;x+=r}h.fillStyle=this.color;h.beginPath();h.moveTo(V[0],V[1]);h.lineTo(M,y);h.lineTo(K,x);h.fill();h.strokeStyle=this.bordercolor;h.lineWidth=this.borderwidth;h.beginPath();h.moveTo(V[0],V[1]);h.lineTo(M,y);h.lineTo(K,x);h.lineTo(V[0],V[1]);h.stroke();return[q,n,X,V]}});(function(){var A=YAHOO.util;var C=YAHOO.lang,B="WireIt-";WireIt.TerminalProxy=function(E,D){this.terminal=E;this.termConfig=D||{};this.terminalProxySize=D.terminalProxySize||10;this.fakeTerminal=null;WireIt.TerminalProxy.superclass.constructor.call(this,this.terminal.el,undefined,{dragElId:"WireIt-TerminalProxy",resizeFrame:false,centerFrame:true})};A.DDM.mode=A.DDM.INTERSECT;C.extend(WireIt.TerminalProxy,YAHOO.util.DDProxy,{createFrame:function(){var E=this,D=document.body;if(!D||!D.firstChild){window.setTimeout(function(){E.createFrame()},50);return }var J=this.getDragEl(),I=YAHOO.util.Dom;if(!J){J=document.createElement("div");J.id=this.dragElId;var H=J.style;H.position="absolute";H.visibility="hidden";H.cursor="move";H.border="2px solid #aaa";H.zIndex=999;var F=this.terminalProxySize+"px";H.height=F;H.width=F;var G=document.createElement("div");I.setStyle(G,"height","100%");I.setStyle(G,"width","100%");I.setStyle(G,"background-color","#ccc");I.setStyle(G,"opacity","0");J.appendChild(G);D.insertBefore(J,D.firstChild)}},startDrag:function(){if(this.terminal.nMaxWires==1&&this.terminal.wires.length==1){this.terminal.wires[0].remove()}else{if(this.terminal.wires.length>=this.terminal.nMaxWires){return }}var E=this.terminalProxySize/2;this.fakeTerminal={direction:this.terminal.fakeDirection,pos:[200,200],addWire:function(){},removeWire:function(){},getXY:function(){var G=YAHOO.util.Dom.getElementsByClassName("WireIt-Layer");if(G.length>0){var H=YAHOO.util.Dom.getXY(G[0]);return[this.pos[0]-H[0]+E,this.pos[1]-H[1]+E]}return this.pos}};var F=this.terminal.parentEl.parentNode;if(this.terminal.container){F=this.terminal.container.layer.el}var D=WireIt.wireClassFromXtype(this.terminal.editingWireConfig.xtype);this.editingWire=new D(this.terminal,this.fakeTerminal,F,this.terminal.editingWireConfig);YAHOO.util.Dom.addClass(this.editingWire.element,B+"Wire-editing")},onDrag:function(D){if(!this.editingWire){return }if(this.terminal.container){this.fakeTerminal.pos=[D.clientX+this.terminal.container.layer.el.scrollLeft,D.clientY+this.terminal.container.layer.el.scrollTop]}else{this.fakeTerminal.pos=(YAHOO.env.ua.ie)?[D.clientX,D.clientY]:[D.clientX+window.pageXOffset,D.clientY+window.pageYOffset]}this.editingWire.redraw()},endDrag:function(D){if(this.editingWire){this.editingWire.remove();this.editingWire=null}},onDragEnter:function(F,D){if(!this.editingWire){return }for(var E=0;E0){D.wires[0].remove()}M=new K(F,E,I,F.wireConfig);M.redraw()}else{if(D.wires.length0){this.show()}},scissorClick:function(){this._terminal.removeAllWires();if(this.terminalTimeout){this.terminalTimeout.cancel()}this.hideNow()},show:function(){this.setPosition();this.setStyle("display","");if(WireIt.Scissors.visibleInstance&&WireIt.Scissors.visibleInstance!=this){if(WireIt.Scissors.visibleInstance.terminalTimeout){WireIt.Scissors.visibleInstance.terminalTimeout.cancel()}WireIt.Scissors.visibleInstance.hideNow()}WireIt.Scissors.visibleInstance=this;if(this.terminalTimeout){this.terminalTimeout.cancel()}},hide:function(){this.terminalTimeout=YAHOO.lang.later(700,this,this.hideNow)},hideNow:function(){WireIt.Scissors.visibleInstance=null;this.setStyle("display","none")}})})();(function(){var B=YAHOO.util;var A=B.Event,E=YAHOO.lang,C=B.Dom,D="WireIt-";WireIt.Terminal=function(H,G,F){this.name=null;this.parentEl=H;this.container=F;this.wires=[];this.setOptions(G);this.eventAddWire=new B.CustomEvent("eventAddWire");this.eventRemoveWire=new B.CustomEvent("eventRemoveWire");this.el=null;this.render();if(this.editable){this.dd=new WireIt.TerminalProxy(this,this.ddConfig);this.scissors=new WireIt.Scissors(this)}};WireIt.Terminal.prototype={xtype:"WireIt.Terminal",direction:[0,1],fakeDirection:[0,-1],editable:true,nMaxWires:Infinity,wireConfig:{},editingWireConfig:{},className:"WireIt-Terminal",connectedClassName:"WireIt-Terminal-connected",dropinviteClassName:"WireIt-Terminal-dropinvite",offsetPosition:null,alwaysSrc:false,ddConfig:false,setOptions:function(G){for(var F in G){if(G.hasOwnProperty(F)){this[F]=G[F]}}if(G.direction&&!G.fakeDirection){this.fakeDirection=[-G.direction[0],-G.direction[1]]}if(G.wireConfig&&!G.editingWireConfig){this.editingWireConfig=this.wireConfig}},setDropInvitation:function(F){if(F){C.addClass(this.el,this.dropinviteClassName)}else{C.removeClass(this.el,this.dropinviteClassName)}},render:function(){this.el=WireIt.cn("div",{className:this.className});if(this.name){this.el.title=this.name}this.setPosition(this.offsetPosition);this.parentEl.appendChild(this.el)},setPosition:function(G){if(G){this.el.style.left="";this.el.style.top="";this.el.style.right="";this.el.style.bottom="";if(E.isArray(G)){this.el.style.left=G[0]+"px";this.el.style.top=G[1]+"px"}else{if(E.isObject(G)){for(var F in G){if(G.hasOwnProperty(F)&&G[F]!==""){this.el.style[F]=G[F]+"px"}}}}}},addWire:function(F){this.wires.push(F);C.addClass(this.el,this.connectedClassName);this.eventAddWire.fire(F)},removeWire:function(G){var F=WireIt.indexOf(G,this.wires);if(F!=-1){this.wires[F].destroy();this.wires[F]=null;this.wires=WireIt.compact(this.wires);if(this.wires.length===0){C.removeClass(this.el,this.connectedClassName)}this.eventRemoveWire.fire(G)}},getXY:function(){var G=this.container&&this.container.layer?this.container.layer.el:document.body;var H=this.el;var I=0,F=0;if(H.offsetParent){do{I+=H.offsetLeft;F+=H.offsetTop;H=H.offsetParent}while(!!H&&H!=G)}return[I+15,F+15]},remove:function(){while(this.wires.length>0){this.wires[0].remove()}this.parentEl.removeChild(this.el);A.purgeElement(this.el);if(this.scissors){A.purgeElement(this.scissors.get("element"))}},getConnectedTerminals:function(){var F=[];if(this.wires){for(var G=0;G0){this.wires[0].remove()}}}})();WireIt.util.TerminalInput=function(C,B,A){WireIt.util.TerminalInput.superclass.constructor.call(this,C,B,A)};YAHOO.lang.extend(WireIt.util.TerminalInput,WireIt.Terminal,{xtype:"WireIt.TerminalInput",direction:[0,-1],fakeDirection:[0,1],nMaxWires:1,ddConfig:{type:"input",allowedTypes:["output"]}});WireIt.util.TerminalOutput=function(C,B,A){WireIt.util.TerminalOutput.superclass.constructor.call(this,C,B,A)};YAHOO.lang.extend(WireIt.util.TerminalOutput,WireIt.Terminal,{xtype:"WireIt.TerminalOutput",direction:[0,1],fakeDirection:[0,-1],ddConfig:{type:"output",allowedTypes:["input"]},alwaysSrc:true});WireIt.util.DD=function(D,C,A,B){if(!D){throw new Error("WireIt.util.DD needs at least terminals and id")}this._WireItTerminals=D;WireIt.util.DD.superclass.constructor.call(this,C,A,B)};YAHOO.extend(WireIt.util.DD,YAHOO.util.DD,{onDrag:function(D){var A=YAHOO.lang.isArray(this._WireItTerminals)?this._WireItTerminals:(this._WireItTerminals.isWireItTerminal?[this._WireItTerminals]:[]);for(var C=0;C0){this.removeContainer(this.containers[0])}},removeAllContainers:function(){this.clear()},getWiring:function(){var B;var C={containers:[],wires:[]};for(B=0;B=E&&H=C&&F=E&&H=C&&FF){L[0]=F-M}if(L[1]+J>N){L[1]=N-J}this.layer.el.scrollLeft=L[0];this.layer.el.scrollTop=L[1]},onLayerScroll:function(){if(this.scrollTimer){window.clearTimeout(this.scrollTimer)}var C=this;this.scrollTimer=window.setTimeout(function(){C.draw()},50)},draw:function(){var N=this.getContext();var E=B.getRegion(this.element);var D=E.right-E.left-4;var J=E.bottom-E.top-4;N.clearRect(0,0,D,J);var C=this.layer.el.scrollWidth;var L=this.layer.el.scrollHeight;var F=Math.floor(100*D/C)/100;var M=Math.floor(100*J/L)/100;var O=B.getRegion(this.layer.el);var K=O.right-O.left;var I=O.bottom-O.top;var H=this.layer.el.scrollLeft;var G=this.layer.el.scrollTop;N.strokeStyle="rgb(200, 50, 50)";N.lineWidth=1;N.strokeRect(H*F,G*M,K*F,I*M);N.fillStyle=this.style;N.strokeStyle=this.style;N.lineWidth=this.lineWidth;this.drawContainers(N,F,M);this.drawWires(N,F,M)},drawContainers:function(C,I,F){var H=this.layer.containers;var J=H.length,E,D=WireIt.getIntStyle,G;for(E=0;E