function OrderedListSelectLine(mach,linenum) { if (getEncodedValue(mach,linenum,mach+'seqnum') < 0 || getEncodedValue(mach,linenum,mach+'seqnum') >= 1000000) return; if (window.curline == null) window.curline = new Array(); var node1 = OrderedListGetSelectedRow(mach); window.curline[mach] = linenum; var node2 = OrderedListGetSelectedRow(mach); var toggleRow = node1 != null && node1 == node2; for (var idx=0; idx < node2.childNodes.length; idx++) { if ( toggleRow ) { var className = node2.childNodes[idx].className.indexOf('movable sellisttexthl') != -1 ? 'listtexthl' : 'movable sellisttexthl'; var oldClassName = node2.childNodes[idx].className.indexOf('movable sellisttexthl') != -1 ? 'movable sellisttexthl' : 'listtexthl'; var activateRow = node2.childNodes[idx].className.indexOf('movable sellisttexthl') != -1 ? false : true; node2.childNodes[idx].className = node2.childNodes[idx].className.replace(oldClassName,className); } else { if (node1 != null) node1.childNodes[idx].className = node1.childNodes[idx].className.replace('movable sellisttexthl','listtexthl'); node2.childNodes[idx].className = node2.childNodes[idx].className.replace('listtexthl','movable sellisttexthl'); } } } function OrderedListGetSelectedRow(mach) { var returnMe = null; if ( window.curline != null && window.curline[mach] != null ) returnMe = l_id(mach+'row'+(parseInt(getEncodedValue(mach,window.curline[mach],mach+'seqnum'))-1)); return returnMe; } function OrderedListGetSelectedRowIsMovable(mach) { var returnMe = false; var row = OrderedListGetSelectedRow(mach); if ( row != null ) returnMe = row.childNodes[0].className.indexOf('movable sellisttexthl') != -1; return returnMe; } function OrderedListClearSelectedRow(mach) { if ( OrderedListGetSelectedRow(mach) != null ) { OrderedListSelectLine(mach, OrderedListGetSelectedRow(mach).rowSeqnum, true); window.curline[mach] == null; } } function OrderedListMoveLine(mach,dir) { if (window.curline == null || window.curline[mach] == null) return; var linenum = window.curline[mach]; var curseq = parseInt(getEncodedValue(mach,linenum,mach+'seqnum')); if ((curseq==document.forms[0].elements['min'+mach+'orderidx'].value && dir ==-1) || (curseq==document.forms[0].elements['max'+mach+'orderidx'].value-1 && dir == 1)) return; OrderedListMoveLineTo(mach,curseq+dir); } function OrderedListMoveLineTo(mach,newseq) { if ( window.curline == null || window.curline[mach] == null ) return; if ( !OrderedListGetSelectedRowIsMovable(mach) ) return; var linenum = window.curline[mach]; var curseq = parseInt(getEncodedValue(mach,linenum,mach+'seqnum')); newseq = Math.max(Math.min(newseq,document.forms[0].elements['max'+mach+'orderidx'].value-1),document.forms[0].elements['min'+mach+'orderidx'].value); if (curseq==newseq) return; var idx; var tempRow = new Array(); var tempClasses = new Array(); var temprowSeqnum; var node0 = l_id(mach+'row'+(curseq-1)); for (idx=0; idx < node0.childNodes.length; idx++) { tempRow[idx] = node0.childNodes[idx].innerHTML; tempClasses[idx] = node0.childNodes[idx].className; } temprowSeqnum = node0.rowSeqnum; var i,node1,node2,seq; if (curseqcurseq) setEncodedValue(mach,i,mach+'seqnum',seq-1); } for (seq=curseq+1;seq<=newseq;seq++) { node1 = l_id(mach+'row'+(seq-1)); node2 = l_id(mach+'row'+(seq-2)); for (idx=0; idx < node1.childNodes.length; idx++) { node2.childNodes[idx].innerHTML = node1.childNodes[idx].innerHTML; node2.childNodes[idx].className = node1.childNodes[idx].className; } node2.rowSeqnum = node1.rowSeqnum; } } else { for (i=parseInt(document.forms[0].elements['min'+mach+'orderidx'].value);i=newseq && seq=newseq;seq--) { node1 = l_id(mach+'row'+(seq-1)); node2 = l_id(mach+'row'+(seq)); for (idx=0; idx < node1.childNodes.length; idx++) { node2.childNodes[idx].innerHTML = node1.childNodes[idx].innerHTML; node2.childNodes[idx].className = node1.childNodes[idx].className; } node2.rowSeqnum = node1.rowSeqnum; } } node0 = l_id(mach+'row'+(newseq-1)); for (idx=0; idx < node1.childNodes.length; idx++) { node0.childNodes[idx].innerHTML = tempRow[idx]; node0.childNodes[idx].className = tempClasses[idx]; } node0.rowSeqnum = temprowSeqnum; setEncodedValue(mach,linenum,mach+'seqnum',newseq); window.ischanged=true; } function OrderedListInitSeqnums(mach) { var i = 1; for (; i < document.forms[0].elements['next'+mach+'idx'].value;i++ ) { var val = getEncodedValue(mach, i, mach+'seqnum'); var row = l_id(mach+'row'+(i-1)); row.rowSeqnum = i; row.machineName = mach; row.isOrderedList = true; row.onselectstart = OrderedListCancelDragDrop; var inputs = row.getElementsByTagName('INPUT'); for ( var input in inputs ) if ( inputs[input] && inputs[input].type != null ) inputs[input].style.cursor = "default"; if ( isNaN(val) || isValEmpty(val) || (val >= 0 && val < 1000000) ) { setEncodedValue(mach,i,mach+'seqnum',i); row.onclick = OrderedListOnClick; row.onmousedown = OrderedListOnMouseDown; row.onmousemove = OrderedListOnMouseMove; } else if (val < 0) document.forms[0].elements['min'+mach+'orderidx'].value = i+1; else { document.forms[0].elements['max'+mach+'orderidx'].value = i; break; } } } function OrderedListGetRowFromEvent(evnt) { var target = getEventTarget(evnt); return OrderedListGetRowFromTarget(target); } function OrderedListGetRowFromTarget(target) { while (target != null) { if (target.nodeName == "INPUT" || target.nodeName == "SELECT") break; if (target.nodeName == "TR") break; target = target.parentNode; } if (target == null || target.nodeName != "TR") return null; return target; } function OrderedListMarkRowNavigation(row, mark) { if(ordereddragger.trToBeMoved.rowIndex < row.rowIndex) { row = row.parentNode.rows[row.rowIndex + 1 ]; } if ( row == null ) return; if ( mark ) { for ( var i = 0; i < row.childNodes.length; i++ ) row.childNodes[i].style.borderTop='#8491A4 1px solid'; } else { for ( var i = 0; i < row.childNodes.length; i++ ) row.childNodes[i].style.borderTop = 'white 1px solid'; } } var ordereddragger; function OrderedListInitDragger(element, usediv) { // I wrapped this entire method in a try/catch just to be safe. // If anything goes wrong here, we'll just do nothing to the layout try { ordereddragger = new NLPortletDragger(); // grab the TR that contains the portlet and get the other objects we need to position it properly ordereddragger.trToBeMoved = element; ordereddragger.originalContainer = element.parentNode; ordereddragger.originalNext = element.nextSibling; ordereddragger.width = element.offsetWidth; if ( usediv ) { // create the temporary div that we will drag around with the portlet in it ordereddragger.divContainer = document.createElement("div"); ordereddragger.divContainer.style.position = "absolute"; ordereddragger.divContainer.style.width = ordereddragger.width; ordereddragger.divContainer.style.background = document.body.bgColor; ordereddragger.divContainer.style.padding = "0px"; ordereddragger.divContainer.style.borderWidth = 0; ordereddragger.divContainer.style.borderColor = "#999999"; // we're just giving it a gray border for now. ordereddragger.divContainer.style.borderStyle = "solid"; ordereddragger.originalContainer.removeChild(element); var eTable = document.createElement("table"); eTable.style.borderWidth = 0; eTable.cellSpacing = 0; eTable.cellPadding = 0; eTable.width = "100%"; var tBody = document.createElement("tbody"); eTable.appendChild(tBody); tBody.appendChild(element); ordereddragger.divContainer.appendChild(eTable); document.body.appendChild(ordereddragger.divContainer); } // calculate the position of the floating portlet div that will follow the mouse if ( ordereddragger.divContainer ) positionFloatingPortlet(ordereddragger.divContainer, 4); } catch (e) { } } function OrderedListOnMouseMove(evnt) { // update the mouse position updateMousePosition(evnt); if ( ordereddragger ) { if ( ordereddragger.divContainer ) positionFloatingPortlet(ordereddragger.divContainer, 4); // keep track of where we are row-wise var elem = OrderedListGetRowFromEvent(evnt); if ((elem != null) && (elem != currentPortlet) && elem != ordereddragger.trToBeMoved) { if (currentPortlet != null && currentPortlet.parentNode != null) OrderedListMarkRowNavigation(currentPortlet, false); currentPortlet = elem; OrderedListMarkRowNavigation(currentPortlet, true); } setEventCancelBubble(evnt); setEventPreventDefault(evnt); } } function OrderedListOnClick(evnt) { var target = getEventTarget(evnt); if ( target.nodeName == 'INPUT' ) return; target = OrderedListGetRowFromEvent(evnt); if ( target == null ) return; OrderedListSelectLine(target.machineName, target.rowSeqnum); } function OrderedListOnMouseDown(evnt) { var target = getEventTarget(evnt); if ( target.nodeName == 'INPUT' ) return; target = OrderedListGetRowFromEvent(evnt); if ( target == null ) return; if ( target.isOrderedList && target != OrderedListGetSelectedRow(target.machineName) ) return; if ( !target.isOrderedList && !target.selectedRow ) return; if ( ordereddragger ) return; if ( target != null ) OrderedListInitDragger(target); setEventCancelBubble(evnt); setEventPreventDefault(evnt); } function OrderedListOnMouseUp() { if ( ordereddragger ) { ordereddragger.putDownRow(); ordereddragger = null; return false; // if the user dropped the portlet on a link, don't navigate away } } function OrderedListCancelDragDrop(evnt) { if ( ordereddragger ) { setEventCancelBubble(evnt); setEventPreventDefault(evnt); } } function OrderedListDebugMachine(mach) { var d = ''; for (i=document.forms[0].elements['min'+mach+'orderidx'].value;i