(function(b){var a={};a.config={editable:true,lineHeight:15,basePath:"",rect:{attr:{x:10,y:10,width:100,height:50,r:5,fill:"90-#fff-#C0C0C0",stroke:"#000","stroke-width":1},showType:"image&text",type:"state",name:{text:"state","font-style":"italic"},text:{text:"״̬","font-size":13},margin:5,props:[],img:{}},path:{attr:{path:{path:"M10 10L100 100",stroke:"#808080",fill:"none","stroke-width":2},arrow:{path:"M10 10L10 10",stroke:"#808080",fill:"#808080","stroke-width":2,radius:4},fromDot:{width:5,height:5,stroke:"#fff",fill:"#000",cursor:"move","stroke-width":2},toDot:{width:5,height:5,stroke:"#fff",fill:"#000",cursor:"move","stroke-width":2},bigDot:{width:5,height:5,stroke:"#fff",fill:"#000",cursor:"move","stroke-width":2},smallDot:{width:5,height:5,stroke:"#fff",fill:"#000",cursor:"move","stroke-width":3}},text:{text:"TO {to}",cursor:"move",background:"#000"},textPos:{x:0,y:-10},props:{text:{name:"text",label:"ÏÔʾ",value:"",editor:function(){return new a.editors.textEditor()}}}},tools:{attr:{left:10,top:10},pointer:{},path:{},states:{},save:{onclick:function(c){alert(c)}}},props:{attr:{top:10,right:30},props:{}},restore:"",activeRects:{rects:[],rectAttr:{stroke:"#ff0000","stroke-width":2}},historyRects:{rects:[],pathAttr:{path:{stroke:"#00ff00"},arrow:{stroke:"#00ff00",fill:"#00ff00"}}}};a.util={isLine:function(g,f,e){var d,c;if((g.x-e.x)==0){d=1}else{d=(g.y-e.y)/(g.x-e.x)}c=(f.x-e.x)*d+e.y;if((f.y-c)<10&&(f.y-c)>-10){f.y=c;return true}return false},center:function(d,c){return{x:(d.x-c.x)/2+c.x,y:(d.y-c.y)/2+c.y}},nextId:(function(){var c=0;return function(){return ++c}})(),connPoint:function(j,d){var c=d,e={x:j.x+j.width/2,y:j.y+j.height/2};var l=(e.y-c.y)/(e.x-c.x);l=isNaN(l)?0:l;var k=j.height/j.width;var h=c.yk&&h==-1){g=e.y-j.height/2;i=e.x+h*j.height/2/l}else{if(Math.abs(l)>k&&h==1){g=e.y+j.height/2;i=e.x+h*j.height/2/l}else{if(Math.abs(l)>)/gi,"");var nodeName = f.node.string||($(f.node.childNodes[0]).text());var posX = parseInt(t.X||(t.node.getAttribute("x")));var posY = parseInt(t.Y||(t.node.getAttribute("y")));var nodeWidth=parseInt(t.W||(t.node.getAttribute("width")));var nodeHeight = parseInt(t.H||(t.node.getAttribute("height")));window.globalWorkflowNodeClickCallBack(e,nodeType,nodeName,posX,posY,nodeWidth,nodeHeight);}return}w();var o=b(C).data("mod");switch(o){case"pointer":break;case"path":var r=b(C).data("currNode");if(r&&r.getId()!=g&&r.getId().substring(0,4)=="rect"){b(C).trigger("addpath",[r,u])}break}b(C).trigger("click",u);b(C).data("currNode",u);return false});var j=function(o,r){if(!a.config.editable){return}if(r.getId()==g){b(C).trigger("showprops",[E.props,r])}else{d()}};b(C).bind("click",j);var c=function(o,F,r){if(r.getId()==g){f.attr({text:F})}};b(C).bind("textchange",c);function y(){return"M"+q.x+" "+q.y+"L"+q.x+" "+(q.y+q.height)+"L"+(q.x+q.width)+" "+(q.y+q.height)+"L"+(q.x+q.width)+" "+q.y+"L"+q.x+" "+q.y}function w(){s.show();for(var o in i){i[o].show()}}function d(){s.hide();for(var o in i){i[o].hide()}}function B(){var F=q.x+E.margin,r=q.y+E.margin,G=q.width-E.margin*2,o=q.height-E.margin*2;t.attr({x:F,y:r,width:G,height:o});switch(E.showType){case"image":e.attr({x:F+(G-E.img.width)/2,y:r+(o-E.img.height)/2}).show();break;case"text":t.show();f.attr({x:F+G/2,y:r+o/2}).show();break;case"image&text":t.show();n.attr({x:F+E.img.width+(G-E.img.width)/2,y:r+a.config.lineHeight/2}).show();f.attr({x:F+E.img.width+(G-E.img.width)/2,y:r+(o-a.config.lineHeight)/2+a.config.lineHeight}).show();e.attr({x:F+E.img.width/2,y:r+(o-E.img.height)/2}).show();break}i.t.attr({x:q.x+q.width/2-h/2,y:q.y-h/2});i.lt.attr({x:q.x-h/2,y:q.y-h/2});i.l.attr({x:q.x-h/2,y:q.y-h/2+q.height/2});i.lb.attr({x:q.x-h/2,y:q.y-h/2+q.height});i.b.attr({x:q.x-h/2+q.width/2,y:q.y-h/2+q.height});i.rb.attr({x:q.x-h/2+q.width,y:q.y-h/2+q.height});i.r.attr({x:q.x-h/2+q.width,y:q.y-h/2+q.height/2});i.rt.attr({x:q.x-h/2+q.width,y:q.y-h/2});s.attr({path:y()});b(C).trigger("rectresize",u)}this.toJson=function(){var r="{type:'"+E.type+"',text:{text:'"+f.attr("text")+"'}, attr:{ x:"+Math.round(t.attr("x"))+", y:"+Math.round(t.attr("y"))+", width:"+Math.round(t.attr("width"))+", height:"+Math.round(t.attr("height"))+"}, props:{";for(var o in E.props){r+=o+":{value:'"+E.props[o].value+"'},"}if(r.substring(r.length-1,r.length)==","){r=r.substring(0,r.length-1)}r+="}}";return r};this.restore=function(o){var r=o;E=b.extend(true,E,o);f.attr({text:r.text.text});B()};this.getBBox=function(){return q};this.getId=function(){return g};this.remove=function(){t.remove();f.remove();n.remove();e.remove();s.remove();for(var o in i){i[o].remove()}};this.text=function(){return f.attr("text")};this.attr=function(o){if(o){t.attr(o)}};B()};a.path=function(q,n,u,e){var v=this,z=n,B=b.extend(true,{},a.config.path),i,t,f,h=B.textPos,y,w,k=u,s=e,g="path"+a.util.nextId(),x;function p(G,H,D,L){var F=this,M=G,r,o=D,O=L,K,I,N=H;switch(M){case"from":r=z.rect(H.x-B.attr.fromDot.width/2,H.y-B.attr.fromDot.height/2,B.attr.fromDot.width,B.attr.fromDot.height).attr(B.attr.fromDot);break;case"big":r=z.rect(H.x-B.attr.bigDot.width/2,H.y-B.attr.bigDot.height/2,B.attr.bigDot.width,B.attr.bigDot.height).attr(B.attr.bigDot);break;case"small":r=z.rect(H.x-B.attr.smallDot.width/2,H.y-B.attr.smallDot.height/2,B.attr.smallDot.width,B.attr.smallDot.height).attr(B.attr.smallDot);break;case"to":r=z.rect(H.x-B.attr.toDot.width/2,H.y-B.attr.toDot.height/2,B.attr.toDot.width,B.attr.toDot.height).attr(B.attr.toDot);break}if(r&&(M=="big"||M=="small")){r.drag(function(Q,P){C(Q,P)},function(){J()},function(){E()});var C=function(R,Q){var P=(K+R),S=(I+Q);F.moveTo(P,S)};var J=function(){if(M=="big"){K=r.attr("x")+B.attr.bigDot.width/2;I=r.attr("y")+B.attr.bigDot.height/2}if(M=="small"){K=r.attr("x")+B.attr.smallDot.width/2;I=r.attr("y")+B.attr.smallDot.height/2}};var E=function(){}}this.type=function(P){if(P){M=P}else{return M}};this.node=function(P){if(P){r=P}else{return r}};this.left=function(P){if(P){o=P}else{return o}};this.right=function(P){if(P){O=P}else{return O}};this.remove=function(){o=null;O=null;r.remove()};this.pos=function(P){if(P){N=P;r.attr({x:N.x-r.attr("width")/2,y:N.y-r.attr("height")/2});return this}else{return N}};this.moveTo=function(Q,T){this.pos({x:Q,y:T});switch(M){case"from":if(O&&O.right()&&O.right().type()=="to"){O.right().pos(a.util.connPoint(s.getBBox(),N))}if(O&&O.right()){O.pos(a.util.center(N,O.right().pos()))}break;case"big":if(O&&O.right()&&O.right().type()=="to"){O.right().pos(a.util.connPoint(s.getBBox(),N))}if(o&&o.left()&&o.left().type()=="from"){o.left().pos(a.util.connPoint(k.getBBox(),N))}if(O&&O.right()){O.pos(a.util.center(N,O.right().pos()))}if(o&&o.left()){o.pos(a.util.center(N,o.left().pos()))}var S={x:N.x,y:N.y};if(a.util.isLine(o.left().pos(),S,O.right().pos())){M="small";r.attr(B.attr.smallDot);this.pos(S);var P=o;o.left().right(o.right());o=o.left();P.remove();var R=O;O.right().left(O.left());O=O.right();R.remove()}break;case"small":if(o&&O&&!a.util.isLine(o.pos(),{x:N.x,y:N.y},O.pos())){M="big";r.attr(B.attr.bigDot);var P=new p("small",a.util.center(o.pos(),N),o,o.right());o.right(P);o=P;var R=new p("small",a.util.center(O.pos(),N),O.left(),O);O.left(R);O=R}break;case"to":if(o&&o.left()&&o.left().type()=="from"){o.left().pos(a.util.connPoint(k.getBBox(),N))}if(o&&o.left()){o.pos(a.util.center(N,o.left().pos()))}break}m()}}function j(){var D,C,E=k.getBBox(),F=s.getBBox(),r,o;r=a.util.connPoint(E,{x:F.x+F.width/2,y:F.y+F.height/2});o=a.util.connPoint(F,r);D=new p("from",r,null,new p("small",{x:(r.x+o.x)/2,y:(r.y+o.y)/2}));D.right().left(D);C=new p("to",o,D.right(),null);D.right().right(C);this.toPathString=function(){if(!D){return""}var J=D,I="M"+J.pos().x+" "+J.pos().y,H="";while(J.right()){J=J.right();I+="L"+J.pos().x+" "+J.pos().y}var G=a.util.arrow(J.left().pos(),J.pos(),B.attr.arrow.radius);H="M"+G[0].x+" "+G[0].y+"L"+G[1].x+" "+G[1].y+"L"+G[2].x+" "+G[2].y+"z";return[I,H]};this.toJson=function(){var G="[",H=D;while(H){if(H.type()=="big"){G+="{x:"+Math.round(H.pos().x)+",y:"+Math.round(H.pos().y)+"},"}H=H.right()}if(G.substring(G.length-1,G.length)==","){G=G.substring(0,G.length-1)}G+="]";return G};this.restore=function(H){var I=H,J=D.right();for(var G=0;G"+m[l].label+'
');if(m[l].editor){m[l].editor().init(m,l,"p"+l,o,g)}}};b(g).bind("showprops",d)};a.editors={textEditor:function(){var d,e,c,g,f;this.init=function(i,h,m,l,j){d=i;e=h;c=m;g=l;f=j;b('').val(g.text()).change(function(){i[e].value=b(this).val();b(f).trigger("textchange",[b(this).val(),g])}).appendTo("#"+c);b("#"+c).data("editor",this)};this.destroy=function(){b("#"+c+" input").each(function(){d[e].value=b(this).val();b(f).trigger("textchange",[b(this).val(),g])})}}};a.init=function(x,r){var v=b(window).width(),e=b(window).height(),y=Raphael(x,/*v*1.5*/diagramCanvasWidth,diagramCanvasHeight/*e*1.5*/),q={},g={};b.extend(true,a.config,r);b(document).keydown(function(i){if(!a.config.editable){return}if(i.keyCode==46){var j=b(y).data("currNode");if(j){if(j.getId().substring(0,4)=="rect"){b(y).trigger("removerect",j)}else{if(j.getId().substring(0,4)=="path"){b(y).trigger("removepath",j)}}b(y).removeData("currNode")}}});b(document).click(function(ev){ if(window.hideGlobalWorkflowNodeDetailWindow){window.hideGlobalWorkflowNodeDetailWindow(ev);}b(y).data("currNode",null);b(y).trigger("click",{getId:function(){return"00000000"}});b(y).trigger("showprops",[a.config.props.props,{getId:function(){return"00000000"}}])});var w=function(c,i){if(!a.config.editable){return}if(i.getId().substring(0,4)=="rect"){q[i.getId()]=null;i.remove()}else{if(i.getId().substring(0,4)=="path"){g[i.getId()]=null;i.remove()}}};b(y).bind("removepath",w);b(y).bind("removerect",w);b(y).bind("addrect",function(j,c,k){var i=new a.rect(b.extend(true,{},a.config.tools.states[c],k),y);q[i.getId()]=i});var f=function(i,k,j){var c=new a.path({},y,k,j);g[c.getId()]=c};b(y).bind("addpath",f);b(y).data("mod","point");if(a.config.editable){b("#myflow_tools").draggable({handle:"#myflow_tools_handle"}).css(a.config.tools.attr);b("#myflow_tools .node").hover(function(){b(this).addClass("mover")},function(){b(this).removeClass("mover")});b("#myflow_tools .selectable").click(function(){b(".selected").removeClass("selected");b(this).addClass("selected");b(y).data("mod",this.id)});b("#myflow_tools .state").each(function(){b(this).draggable({helper:"clone"})});b(x).droppable({accept:".state",drop:function(c,i){b(y).trigger("addrect",[i.helper.attr("type"),{attr:{x:i.helper.offset().left,y:i.helper.offset().top}}])}});b("#myflow_save").click(function(){var i="{states:{";for(var c in q){if(q[c]){i+=q[c].getId()+":"+q[c].toJson()+","}}if(i.substring(i.length-1,i.length)==","){i=i.substring(0,i.length-1)}i+="},paths:{";for(var c in g){if(g[c]){i+=g[c].getId()+":"+g[c].toJson()+","}}if(i.substring(i.length-1,i.length)==","){i=i.substring(0,i.length-1)}i+="},props:{props:{";for(var c in a.config.props.props){i+=c+":{value:'"+a.config.props.props[c].value+"'},"}if(i.substring(i.length-1,i.length)==","){i=i.substring(0,i.length-1)}i+="}}}";a.config.tools.save.onclick(i)});new a.props({},y)}if(r.restore){var B=r.restore;var z={};if(B.states){for(var s in B.states){var d=new a.rect(b.extend(true,{},a.config.tools.states[B.states[s].type],B.states[s]),y);d.restore(B.states[s]);z[s]=d;q[d.getId()]=d}}if(B.paths){for(var s in B.paths){var n=new a.path(b.extend(true,{},a.config.tools.path,B.paths[s]),y,z[B.paths[s].from],z[B.paths[s].to]);n.restore(B.paths[s]);g[n.getId()]=n}}}var A=a.config.historyRects,l=a.config.activeRects;if(A.rects.length||l.rects.length){var m={},z={};for(var h in g){if(!z[g[h].from().text()]){z[g[h].from().text()]={rect:g[h].from(),paths:{}}}z[g[h].from().text()].paths[g[h].text()]=g[h];if(!z[g[h].to().text()]){z[g[h].to().text()]={rect:g[h].to(),paths:{}}}}for(var u=0;u