Optimize "Customer has a referring customer" condition, RT#74452
[freeside.git] / httemplate / elements / overlibmws_draggable.js
index 14e4a60..d2b5eb1 100644 (file)
@@ -1,7 +1,7 @@
 /*\r
- overlibmws_draggable.js plug-in module - Copyright Foteos Macrides 2002=2005\r
+ overlibmws_draggable.js plug-in module - Copyright Foteos Macrides 2002-2010. All rights reserved.\r
    For support of the DRAGGABLE feature.\r
-   Initial: August 24, 2002 - Last Revised: January 12, 2005\r
+   Initial: August 24, 2002 - Last Revised: January 26, 2008\r
  See the Change History and Command Reference for overlibmws via:\r
 \r
        http://www.macridesweb.com/oltest/\r
 */\r
 \r
 OLloaded=0;\r
-OLregCmds('draggable');\r
+var OLdraggableCmds='draggable,dragcap,dragid';\r
+OLregCmds(OLdraggableCmds);\r
 \r
 // DEFAULT CONFIGURATION\r
 if(OLud('draggable'))var ol_draggable=0;\r
+if(OLud('dragcap'))var ol_dragcap=0;\r
+if(OLud('dragid'))var ol_dragid='';\r
 // END CONFIGURATION\r
 \r
-var o3_draggable=0,o3_dragging=0,OLmMv,OLcX,OLcY,OLcbX,OLcbY;\r
-function OLloadDraggable(){OLload('draggable');}\r
-function OLparseDraggable(pf,i,ar){\r
-var k=i;\r
-if(k<ar.length){if(Math.abs(ar[k])==DRAGGABLE){OLtoggle(ar[k],pf+'draggable');return k;}}\r
-return -1;\r
+var o3_draggable=0,o3_dragcap=0,o3_dragid='',o3_dragging=0,OLdrg=null,OLmMv,\r
+OLcX,OLcY,OLcbX,OLcbY;function OLloadDraggable(){OLload(OLdraggableCmds);}\r
+function OLparseDraggable(pf,i,ar){var t=OLtoggle,k=i;if(k<ar.length){\r
+if(Math.abs(ar[k])==DRAGGABLE){t(ar[k],pf+'draggable');return k;}\r
+if(Math.abs(ar[k])==DRAGCAP){t(ar[k],pf+'dragcap');return k;}\r
+if(ar[k]==DRAGID){OLparQuo(ar[++k],pf+'dragid');return k;}}return -1;\r
 }\r
 \r
 function OLcheckDrag(){\r
-if(o3_draggable){if(o3_sticky&&(o3_frame==self))initDrag();else o3_draggable=0;}\r
+if(o3_draggable){if(o3_sticky&&(o3_frame==self))OLinitDrag();else o3_draggable=0;}\r
 }\r
-function initDrag(){\r
+function OLinitDrag(){\r
 OLmMv=OLdw.onmousemove;o3_dragging=0;\r
 if(OLns4){document.captureEvents(Event.MOUSEDOWN|Event.CLICK);\r
-document.onmousedown=OLgrabEl;;document.onclick=function(e){return routeEvent(e);}}\r
-else{over.onmousedown=OLgrabEl;OLsetDrgCur(1);}\r
+document.onmousedown=OLgrabEl;document.onclick=function(e){return routeEvent(e);}}\r
+else{var dvido=(o3_dragid)?OLgetRef(o3_dragid):null,capid=(OLovertwoPI&&over==over2?\r
+'overCap2':'overCap');if(dvido)dvido.onscroll=function(){OLdw.onmousemove=OLmMv;\r
+OLinitDrag();};OLdrg=(o3_cap&&o3_dragcap)?OLgetRef(capid):over;\r
+if(!OLdrg||!OLdrg.style)OLdrg=over;OLdrg.onmousedown=OLgrabEl;OLsetDrgCur(1);}\r
 }\r
-function OLsetDrgCur(d){if(!OLns4)over.style.cursor=(d?'move':'auto');}\r
+function OLsetDrgCur(d){if(!OLns4&&OLdrg)OLdrg.style.cursor=(d?'move':'auto');}\r
 \r
 function OLgrabEl(e){\r
 var e=(e||event);\r
-var cKy=(OLns4?e.modifiers&Event.ALT_MASK:(!OLop7?e.altKey:e.ctrlKey));o3_dragging=1;\r
+var cKy=(OLns4?e.modifiers&Event.ALT_MASK:(e.altKey||(OLop7&&e.ctrlKey)));o3_dragging=1;\r
 if(cKy){OLsetDrgCur(0);document.onmouseup=function(){OLsetDrgCur(1);o3_dragging=0;}\r
 return(OLns4?routeEvent(e):true);}\r
 OLx=(e.pageX||e.clientX+OLfd().scrollLeft);OLy=(e.pageY||e.clientY+OLfd().scrollTop);\r
@@ -67,7 +73,8 @@ return false;
 \r
 function OLclearDrag(){\r
 if(OLns4){document.releaseEvents(Event.MOUSEDOWN|Event.MOUSEUP|Event.CLICK);\r
-document.onmousedown=document.onclick=null;}else{over.onmousedown=null;OLsetDrgCur(0);}\r
+document.onmousedown=document.onclick=null;}else{\r
+if(OLdrg)OLdrg.onmousedown=null;over.onmousedown=null;OLsetDrgCur(0);}\r
 document.onmouseup=null;o3_dragging=0;\r
 }\r
 \r