//Confugration //sets the drag accruacy //a value of 0 is most accurate. The number can be raised to improve performance. var accuracy = 2; //list of the content item names. Could be searched for, but hard coded for performance var draggableObjectList=new Array(); var dragableList=new Array(); //Internal Config (Do not Edit) //browser check var dom=document.getElementById&&!document.all var docElement = document.documentElement; var pageURL = ""; var dragging=false; var z,x,y var accuracyCount =0; var startTD = null; var endTD = null; var topelement=dom? "HTML" : "BODY" var currentDiv = null; var clipboard = null; var contra = ""; var pageHeight=0; var pageWidth=0; var scrollJump=50; var blankCount=1; //checks the key Events for copy and paste operations //ctrlC ctrlV shiftP shiftY function dragable_checkKeyEvent(e) { e=dom? e : event; if (e.keyCode == 38 || e.keyCode == 40 || e.keyCode==37 || e.keyCode==39 || e.keyCode == 66 || e.keyCode == 65){ contra+=e.keyCode; if (contra.indexOf("38403840373937396665") != -1) { alert("WebGUI was created by Plain Black Corporation"); contra=""; } }else { contra = ""; } if (currentDiv == null) { return; } if ((e.keyCode == 67 && e.ctrlKey) || (e.keyCode==89 && e.shiftKey)) { clipboard=currentDiv; return; }else if ((e.keyCode == 86 && e.ctrlKey) || (e.keyCode==80 && e.shiftKey)) { if (clipboard != currentDiv && !dragable_isBlank(clipboard)) { dragable_moveContent(clipboard,currentDiv); } } } //goes up the parent tree until class is found. If not found, returns null function dragable_getObjectByClass(target,clazz) { while (target.tagName!=topelement&&target.className!=clazz){ target=dom? target.parentNode : target.parentElement } if (target.className==clazz){ return target; }else { return null; } } //checks to see if the scroll bars need to be adjusted function dragable_adjustScrollBars(e) { scrY=0; scrX=0; if (e.clientY > docElement.clientHeight-scrollJump) { if (e.clientY + docElement.scrollTop < pageHeight - (scrollJump + 60)) { scrY=scrollJump; window.scroll(docElement.scrollLeft,docElement.scrollTop + scrY); y-=scrY; } }else if (e.clientY < scrollJump) { if (docElement.scrollTop < scrollJump) { scrY = docElement.scrollTop; }else { scrY=scrollJump; } window.scroll(docElement.scrollLeft,docElement.scrollTop - scrY); y+=scrY; } if (e.clientX > docElement.clientWidth-scrollJump) { if (e.clientX + docElement.scrollLeft < pageWidth - (scrollJump + 60)) { scrX=scrollJump; window.scroll(docElement.scrollLeft + scrX,docElement.scrollTop); x-=scrX; } }else if (e.clientX < scrollJump) { if (docElement.scrollLeft < scrollJump) { scrX = docElement.scrollLeft; }else { scrX=scrollJump; } window.scroll(docElement.scrollLeft - scrX,docElement.scrollTop); x+=scrX; } } //initialization routine, must be called on load. Sets up event handlers function dragable_init(url) { docElement = document.documentElement; if (document.compatMode == "BackCompat") { docElement = document.body; } pageURL = url; //window.scroll(10,500); //set up event handlers document.onmouseup=dragable_dragStop; document.onkeydown=dragable_checkKeyEvent; document.onmousemove=dragable_move; //fill the draggableObject list obj = document.getElementById("position1"); contentCount=2; while (obj != null) { tbody = dragable_getElementChildren(obj); children = dragable_getElementChildren(tbody[0]); if (children.length == 0) { //stick in a blank dragable_appendBlankRow(tbody[0]); }else { for (i = 0; i< children.length;i++) { draggableObjectList[draggableObjectList.length] = children[i]; dragableList[dragableList.length]=document.getElementById(children[i].id + "_div"); } } obj = document.getElementById("position" + contentCount); contentCount++; } for (i=0;ix1 && x < (x1 + td.offsetWidth)) { if (y> y1 && y< (y1 + (td.offsetHeight/2))) { returnArray[0] = td; returnArray[1] = "top"; return returnArray; }else if (y> y1 && y< (y1 + td.offsetHeight)) { returnArray[0] = td; returnArray[1] = "bottom"; return returnArray; } } } return returnArray; } //Called when a content item is dragged over function dragable_dragOver(obj,position) { if (endTD == obj && endTDPos == position ) { return; } if(endTD != null && endTD != obj) { if (dragable_isBlank(endTD)) { document.getElementById(endTD.id).className="blank"; }else { document.getElementById(endTD.id + "_div").className="dragable"; } } if (dragable_isBlank(obj)) { divName = td.id; }else { divName = td.id + "_div"; } if (dragable_isBlank(obj)) { document.getElementById(divName).className="blankOver"; endTDPos=null; }else if (position == "top") { endTDPos=position; document.getElementById(divName).className="draggedOverTop"; }else { endTDPos=position; document.getElementById(divName).className="draggedOverBottom"; } endTD=obj; } //called on mouse up, If an element is being dragged, this method does the right thing. function dragable_dragStop(e) { dragging=false; if (z) { if (endTD !=null && startTD!=null) { dragable_moveContent(startTD,endTD,endTDPos); startTD=null; if (dragable_isBlank(endTD)) { divName = endTD.id; }else { divName=endTD.id + "_div"; document.getElementById(divName).className="dragable"; } var url = pageURL + dragable_getContentMap(); //window.alert(url); document.getElementById("dragSubmitter").src = url; } for(i=0;i