var browser = new Browser(); var dragObj = new Object(); dragObj.zIndex = 0; var dragFlag = false; var dragStartFlag = false; var oldDrag; var curDrag; var orderCellPos = new Array(); function Browser() { var ua, s, i; this.isIE = false; this.isNS = false; this.version = null; ua = navigator.userAgent; s = "MSIE"; if ((i = ua.indexOf(s)) >= 0) { this.isIE = true; this.version = parseFloat(ua.substr(i + s.length)); return; } s = "Netscape6/"; if ((i = ua.indexOf(s)) >= 0) { this.isNS = true; this.version = parseFloat(ua.substr(i + s.length)); return; } s = "Gecko"; if ((i = ua.indexOf(s)) >= 0) { this.isNS = true; this.version = 6.1; return; } } function orderDragStart(event, id) { if((dragStartFlag == false) && (dragFlag == false)) { dragStartFlag = true; var el; var x, y; if (id) { dragObj.elNode = document.getElementById(id); oldDrag = curDrag; curDrag = dragObj.elNode; if(oldDrag) { oldDrag.style.border = "0px solid #888888"; } curDrag.style.border = "1px dotted #888888"; }else { if (browser.isIE) dragObj.elNode = window.event.srcElement; if (browser.isNS) dragObj.elNode = event.target; if (dragObj.elNode.nodeType == 3) dragObj.elNode = dragObj.elNode.parentNode; } if (browser.isIE) { x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft; y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop; } if (browser.isNS) { x = event.clientX + window.scrollX; y = event.clientY + window.scrollY; } dragObj.cursorStartX = x; dragObj.cursorStartY = y; dragObj.elStartLeft = parseInt(findPosX(dragObj.elNode), 10); dragObj.elStartTop = parseInt(findPosY(dragObj.elNode), 10); if (isNaN(dragObj.elStartLeft)) dragObj.elStartLeft = 0; if (isNaN(dragObj.elStartTop)) dragObj.elStartTop = 0; dragObj.elNode.style.zIndex = ++dragObj.zIndex; if (browser.isIE) { document.attachEvent("onmousemove", orderDragGo); document.attachEvent("onmouseup", orderDragStop); window.event.cancelBubble = true; window.event.returnValue = false; } if (browser.isNS) { document.addEventListener("mousemove", orderDragGo, true); document.addEventListener("mouseup", orderDragStop, true); event.preventDefault(); } } } function orderDragGo(event) { var x, y; if (browser.isIE) { x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft; y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop; } if (browser.isNS) { x = event.clientX + window.scrollX; y = event.clientY + window.scrollY; } dragObj.elNode.style.left = (dragObj.elStartLeft + x - dragObj.cursorStartX) + "px"; dragObj.elNode.style.top = (dragObj.elStartTop + y - dragObj.cursorStartY) + "px"; if (browser.isIE) { window.event.cancelBubble = true; window.event.returnValue = false; } if (browser.isNS) event.preventDefault(); } function orderDragStop(event) { if (browser.isIE) { document.detachEvent("onmousemove", orderDragGo); document.detachEvent("onmouseup", orderDragStop); } if (browser.isNS) { document.removeEventListener("mousemove", orderDragGo, true); document.removeEventListener("mouseup", orderDragStop, true); } orderFixPos(); dragStartFlag = false; } function orderFix(){ if(this.divId) { var parentObj = document.getElementById(this.divId); }else{ var parentObj = dragObj.elNode.parentNode; } var parentY = findPosY(parentObj); var parentX = findPosX(parentObj); var addF = 22; var orderCount = 0; for(var i=1; i