bea.wlp.disc.Module._bundle(function(){(function(){var A=bea.wlp.disc;A.Module.create("bea.wlp._pm",{initialize:function(B){wlpdj04.addOnLoad(function(){wlpdj04.require("wlpdj04.dnd.HtmlDragAndDrop");wlpdj04.require("wlpdj04.io");B.PlaceableDragObject=wlpdj04.lang.extend(wlpdj04.dnd.HtmlDragObject,{createIframe:false,onDragStart:function(F){wlpdj04.html.clearSelection();this.scrollOffset=wlpdj04.html.getScroll().offset;this.dragStartPosition=wlpdj04.html.getAbsolutePosition(this.domNode,true);this.dragOffset={y:this.dragStartPosition.y-F.pageY,x:this.dragStartPosition.x-F.pageX};this.dragClone=this.createDragNode();this.containingBlockPosition=this.domNode.offsetParent?wlpdj04.html.getAbsolutePosition(this.domNode.offsetParent,true):{x:0,y:0};if(this.constrainToContainer){this.constraints=this.getConstraints();}this.dragClone.style.position="absolute";this.dragClone.style.top=this.dragOffset.y+F.pageY+"px";this.dragClone.style.left=this.dragOffset.x+F.pageX+"px";var E=this.domNode.getElementsByTagName("*");for(var D=0;D<E.length;D++){if(wlpdj04.html.getMarginBox(E[D]).width>0){this.dragClone.style.width=wlpdj04.html.getMarginBox(E[D]).width+"px";break;}}this.dragClone.removeAttribute("id");bea.wlp.disc._util.Dom.eachDescendantRecursive(this.dragClone,function(G){G.removeAttribute("id");return true;},"div");wlpdj04.body().appendChild(this.dragClone);wlpdj04.html.hide(this.domNode);wlpdj04.event.topic.publish("dragStart",{source:this});},onDragEnd:function(H){switch(H.dragStatus){case"dropSuccess":wlpdj04.html.removeNode(this.dragClone);wlpdj04.html.show(this.domNode);this.dragClone=null;break;case"dropFailure":var G=wlpdj04.html.getAbsolutePosition(this.dragClone,true);var D={left:this.dragStartPosition.x+1,top:this.dragStartPosition.y+1};var F=wlpdj04.lfx.slideTo(this.dragClone,D,300);var E=this;wlpdj04.event.connect(F,"onEnd",function(I){wlpdj04.html.removeNode(E.dragClone);wlpdj04.html.show(E.domNode);E.dragClone=null;});F.play();break;}wlpdj04.event.topic.publish("dragEnd",{source:this});}});B.PlaceableDragSource=function(D){this.placeable=D;var E;if(this.placeable.getParentTheme()){E=this.placeable.getParentTheme().getMarkupElement();}else{E=this.placeable.getMarkupElement();}wlpdj04.dnd.HtmlDragSource.call(this,E,"*");};wlpdj04.inherits(B.PlaceableDragSource,wlpdj04.dnd.HtmlDragSource);wlpdj04.lang.extend(B.PlaceableDragSource,{onDragStart:function(){var F=new B.PlaceableDragObject(this.dragObject,this.type);if(this.dragClass){F.dragClass=this.dragClass;}if(this.constrainToContainer){F.constrainTo(this.constrainingContainer||this.domNode.parentNode);}this.modifiedElements=[];for(var E=0;E<wlpdj04.dnd.dragManager.dropTargets.length;E++){var G=wlpdj04.dnd.dragManager.dropTargets[E];if(wlpdj04.html.getBorderBox(G.domNode).height<2){var D=document.createElement("div");D.style.height="100px";G.domNode.appendChild(D);G.enlarged=true;this.modifiedElements.push(D);}}return F;},onDragEnd:function(){for(var D=0;D<this.modifiedElements.length;D++){wlpdj04.html.removeNode(this.modifiedElements[D]);}delete this.modifiedElements;for(var D=0;D<wlpdj04.dnd.dragManager.dropTargets.length;D++){delete wlpdj04.dnd.dragManager.dropTargets[D].enlarged;}}});B.PlaceableDropTarget=function(E){this.placeholder=E;var D=wlpdj04.dom.getFirstChildElement(this.placeholder.getMarkupElement());wlpdj04.dnd.HtmlDropTarget.call(this,D,"*");};wlpdj04.inherits(B.PlaceableDropTarget,wlpdj04.dnd.HtmlDropTarget);wlpdj04.lang.extend(wlpdj04.dnd.HtmlDropTarget,{enlarged:false,onDragOver:function(H){if(!this.accepts(H.dragObjects)){return false;}this.childBoxes=[];var G=this.placeholder.getPlaceables();for(var F=0;F<G.length;F++){var D=G[F].getMarkupElement();if(wlpdj04.html.isShowing(D)){D.style.display="block";var I=wlpdj04.html.getAbsolutePosition(D,true);var E=wlpdj04.html.getBorderBox(D);this.childBoxes.push({top:I.y,bottom:I.y+E.height,left:I.x,right:I.x+E.width,height:E.height,width:E.width,node:D});}}return true;},createDropIndicator:function(){this.dropIndicator=document.createElement("div");this.dropIndicator.style.zIndex=9999;this.dropIndicator.style.border="2px dashed #AAAAAA";this.dropIndicator.style.width=wlpdj04.html.getBorderBox(this.domNode).width-5+"px";},placeIndicator:function(I,H,L,K){if(!this.dropIndicator.style.height&&this.dropIndicator.nodeName!="TR"){this.dropIndicator.style.height=wlpdj04.html.getBorderBox(H[0].dragClone).height+"px";}wlpdj04.dom.removeNode(this.dropIndicator);var D;if(L<0){if(this.childBoxes.length){D=K?this.childBoxes[0]:this.childBoxes[this.childBoxes.length-1];}else{wlpdj04.dom.prependChild(this.dropIndicator,this.domNode);return ;}}else{D=this.childBoxes[L];}if(D){var J=D.node;var G=A.context.Window.findByElement(D.node,true);if(G.getParentTheme()){J=G.getParentTheme().getMarkupElement();}var F=A.context.Placeholder.findByElement(D.node);if(F.getImplicit()){J=B.Pm.getPlaceholderRootElement(D.node);}if(J.nodeName=="TR"&&this.dropIndicator.nodeName!="TR"){var M=document.createElement("tr");var E=document.createElement("td");E.appendChild(this.dropIndicator);M.appendChild(E);this.dropIndicator=M;}if(K||this.enlarged){wlpdj04.dom.insertBefore(this.dropIndicator,J);}else{wlpdj04.dom.insertAfter(this.dropIndicator,J);}}},onDrop:function(V){this.onDragOut(V);var R=this._getNodeUnderMouse(V);var I=this.vertical?wlpdj04.html.gravity.WEST:wlpdj04.html.gravity.NORTH;var D;if(R<0){if(this.childBoxes.length==0){D=0;}else{if(wlpdj04.html.gravity(this.childBoxes[0].node,V)&I){D=0;}else{D=this.childBoxes.length-1;}}}else{var J=this.childBoxes[R];var M=A.context.Window.findByElement(J.node.childNodes[0]);if(wlpdj04.html.gravity(J.node,V)&I){D=M.getPlaceholderPosition();}else{D=M.getPlaceholderPosition()+1;}}var S=this.placeholder.getParentLayout().getParentPage().getDefinitionLabel();var K=this.placeholder.getParentLayout().getPlaceholders();var L;for(var O=0;O<K.length;O++){if(K[O]==this.placeholder){L=K[O].getLocation();break;}}var P=V.dragObject.dragSource.placeable;var F=P.getLabel();var E=A.context.Application.getInstance().getWebAppName();var Q={webapp:E,placeholder:L,position:D,scope:"visitor",portal:A.context.Application.getInstance().getPortalPath(),desktop:A.context.Application.getInstance().getDesktopPath(),format:"json"};var W=window.location.protocol+"//"+window.location.host+"/"+E+"/"+"bea/wlp/api/page/move/";if(P.getType()=="Book"){Q.book=F;W+="book/";}else{Q.portlet=F;W+="portlet/";}W+=S;var H={url:W,mimetype:"text/json",method:"POST",content:Q,handle:function(Z,a,Y){if(Z=="error"){A.Console.log(a.message+": "+Y.responseText);}},timeoutSeconds:5,timeout:function(Z,a,Y){A.Console.log("Request to "+W+" failed to respond within 5 seconds.");}};wlpdj04.io.bind(H);var U=P.getPlaceholderPosition();P.setPlaceholderPosition(D);var X=P.getParentPlaceholder();if(X.getImplicit()){X=X.getParentLayout().getParentPlaceholder();}if(X!=this.placeholder){var G=this.placeholder.getPlaceables();for(var O=0;O<G.length;O++){if(G[O].getPlaceholderPosition()>=D){G[O].setPlaceholderPosition(G[O].getPlaceholderPosition()+1);}}var N=X.getPlaceables();for(var O=0;O<N.length;O++){if(N[O].getPlaceholderPosition()>U&&N[O]!=P){N[O].setPlaceholderPosition(N[O].getPlaceholderPosition()-1);}}}else{var T=this.placeholder.getPlaceables();if(D>U){P.setPlaceholderPosition(P.getPlaceholderPosition()-1);D=P.getPlaceholderPosition();for(var O=0;O<T.length;O++){if(T[O]!=P&&T[O].getPlaceholderPosition()>U&&T[O].getPlaceholderPosition()<=D){T[O].setPlaceholderPosition(T[O].getPlaceholderPosition()-1);}}}else{for(var O=0;O<T.length;O++){if(T[O]!=P&&T[O].getPlaceholderPosition()<U&&T[O].getPlaceholderPosition()>=D){T[O].setPlaceholderPosition(T[O].getPlaceholderPosition()+1);}}}}if(R<0){if(this.childBoxes.length){if(wlpdj04.html.gravity(this.childBoxes[0].node,V)&I){return this.insert(V,this.childBoxes[0].node,"before");}else{return this.insert(V,this.childBoxes[this.childBoxes.length-1].node,"after");}}return this.insert(V,this.domNode,"append");}if(wlpdj04.html.gravity(J.node,V)&I){return this.insert(V,J.node,"before");}else{return this.insert(V,J.node,"after");}},insert:function(N,E,U){var J=A.context.Window.findByElement(E,true);if(J.getParentTheme()){E=J.getParentTheme().getMarkupElement();}var Q;var I;var G=N.dragObject.domNode;var T=A.context.Placeholder.findByElement(G);if(T.getImplicit()){var D=B.Pm.getPlaceholderRootElement(G);if(!wlpdj04.dom.isDescendantOf(T.getMarkupElement(),D)){D=T.getMarkupElement();}if(T.getParentLayout().getPlaceholders().length>1){wlpdj04.html.removeNode(D);}}if(this.placeholder.getUsingFlow()&&this.placeholder.getFlow()==A.context.Placeholder.Flow.VERTICAL){var M=this.placeholder.getPlaceables();if(M.length>0){var F=M[0].getParentPlaceholder();var S=B.Pm.getPlaceholderRootElement(M[0]);var L;if(!wlpdj04.dom.isDescendantOf(F.getMarkupElement(),S)){L=F.getMarkupElement().cloneNode(true);E=A.context.Placeholder.findByElement(E).getMarkupElement();}else{L=S.cloneNode(true);E=B.Pm.getPlaceholderRootElement(E);}var P=B.Pm.getElementsByAttribute(L,"*","id",M[0].getMarkupElement().id)[0];wlpdj04.dom.replaceNode(P,G);G=L;var O=B.Pm.getElementsByAttribute(G,"*","id",M[0].getParentPlaceholder().getMarkupElement.id)[0];Q="bea.wlp.disc.context._Context:"+new Date().getTime();O.id=Q;I=M[0].getParentPlaceholder()._props;}else{var H=this.placeholder.getImplicitLayout().getPlaceholders()[0].getMarkupElement();E=wlpdj04.dom.getFirstChildElement(H);}}var R=false;if(U=="before"){R=wlpdj04.html.insertBefore(G,E);}else{if(U=="after"){R=wlpdj04.html.insertAfter(G,E);}else{if(U=="append"){E.appendChild(G);R=true;}}}if(Q){var K=new bea.wlp.disc.context.Placeholder(Q,{});K._props=I;}return R;}});function C(){if(wlpdj04.dnd.dragManager.dragObjects){wlpdj04.dnd.dragManager.dragObjects.splice(0,wlpdj04.dnd.dragManager.dragObjects.length);}if(wlpdj04.dnd.dragManager.dragSources){wlpdj04.dnd.dragManager.dragSources.splice(0,wlpdj04.dnd.dragManager.dragSources.length);}var H=A.context.Portlet.getAll();for(var I=0;I<H.length;I++){if(H[I].getTitlebar()){if(H[I].getWindowState()=="maximized"){continue;}var J=H[I].getParentPlaceholder();if(J.getImplicit()){var G=J.getParentLayout();J=G.getParentPlaceholder();}if(J.getFlow()==A.context.Placeholder.Flow.HORIZONTAL||J.getLocked()||!(J.getParentLayout().getParentPage().getUpdateable())){continue;}var E=H[I].getTitlebar().getMarkupElement();E.style.cursor="move";var D=new B.PlaceableDragSource(H[I]);D.setDragHandle(E);}}var K=A.context.Book.getAll();for(var I=0;I<K.length;I++){if(K[I].getParentPage()){wlpdj04.dnd.dragManager.nestedTargets=true;if(K[I].getMenu()){var J=K[I].getParentPlaceholder();if(J){if(J.getImplicit()){var G=J.getParentLayout();J=G.getParentPlaceholder();}if(J.getFlow()==A.context.Placeholder.Flow.HORIZONTAL||J.getLocked()||!(J.getParentLayout().getParentPage().getUpdateable())){continue;}}var E=K[I].getMenu().getMarkupElement();E.style.cursor="move";var D=new B.PlaceableDragSource(K[I]);D.setDragHandle(E);}}}if(wlpdj04.dnd.dragManager.dropTargets){wlpdj04.dnd.dragManager.dropTargets.splice(0,wlpdj04.dnd.dragManager.dropTargets.length);}var F=A.context.Placeholder.getAll();for(var I=0;I<F.length;I++){if(!(F[I].getImplicit())&&F[I].getFlow()!=A.context.Placeholder.Flow.HORIZONTAL&&!(F[I].getLocked())&&F[I].getParentLayout().getParentPage().getUpdateable()){new B.PlaceableDropTarget(F[I]);}}}C();if(A.xie){A.xie.Events.OnCompleteUpdate.addListener(C);}});},declare:function(C,B){C.Pm={getParentElement:function(E){var D=E.parentNode;while(D&&D.nodeType!=wlpdj04.dom.ELEMENT_NODE){D=D.parentNode;}return D;},getPlaceholderRootElement:function(F){var D=(F.nodeType==wlpdj04.dom.ELEMENT_NODE)?F:F.getMarkupElement();var E=C.Pm.getParentElement(D);while(!E.style.width&&!E.width){E=C.Pm.getParentElement(E);}if(E.nodeName=="TD"){E=C.Pm.getParentElement(E);}return E;},getElementsByAttribute:function(K,L,M,G){var F=new Array();var I;var J=(typeof G!="undefined")?new RegExp("(^|s)"+G+"(s|$)"):null;var I=K.getAttribute&&K.getAttribute(M);if(typeof I=="string"&&I.length>0){if(typeof G=="undefined"||(J&&J.test(I))){F.push(K);}}var H=(L=="*"&&K.all)?K.all:K.getElementsByTagName(L);var D;for(var E=0;E<H.length;E++){D=H[E];I=D.getAttribute&&D.getAttribute(M);if(typeof I=="string"&&I.length>0){if(typeof G=="undefined"||(J&&J.test(I))){F.push(D);}}}return F;}};}});})();});
