//General //for example: instead of each module writing out script found in moduleMaxMin_OnClick have the functionality cached // var DNN_COL_DELIMITER = String.fromCharCode(16); var DNN_ROW_DELIMITER = String.fromCharCode(15); var __dnn_m_bPageLoaded = false; window.onload = __dnn_Page_OnLoad; function __dnn_ClientAPIEnabled() { return typeof(dnn) != 'undefined'; } function __dnn_Page_OnLoad() { if (__dnn_ClientAPIEnabled()) { var sLoadHandlers = dnn.getVar('__dnn_pageload'); if (sLoadHandlers != null) eval(sLoadHandlers); } __dnn_m_bPageLoaded = true; } function __dnn_KeyDown(iKeyCode, sFunc, e) { if (e == null) e = window.event; if (e.keyCode == iKeyCode) { eval(unescape(sFunc)); return false; } } function __dnn_bodyscroll() { var oF=document.forms[0]; if (__dnn_ClientAPIEnabled() && __dnn_m_bPageLoaded) oF.ScrollTop.value=dnn.dom.getByTagName("body")[0].scrollTop; } function __dnn_setScrollTop(iTop) { if (__dnn_ClientAPIEnabled()) { if (iTop == null) iTop = document.forms[0].ScrollTop.value; var sID = dnn.getVar('ScrollToControl'); if (sID != null && sID.length > 0) { var oCtl = dnn.dom.getById(sID); if (oCtl != null) { iTop = dnn.dom.positioning.elementTop(oCtl); dnn.setVar('ScrollToControl', ''); } } dnn.dom.getByTagName("body")[0].scrollTop = iTop; } } //Focus logic function __dnn_SetInitialFocus(sID) { var oCtl = dnn.dom.getById(sID); if (oCtl != null && __dnn_CanReceiveFocus(oCtl)) oCtl.focus(); } function __dnn_CanReceiveFocus(e) { //probably should call getComputedStyle for classes that cause item to be hidden if (e.style.display != 'none' && e.tabIndex > -1 && e.disabled == false && e.style.visible != 'hidden') { var eParent = e.parentElement; while (eParent != null && eParent.tagName != 'BODY') { if (eParent.style.display == 'none' || eParent.disabled || eParent.style.visible == 'hidden') return false; eParent = eParent.parentElement; } return true; } else return false; } //Max/Min Script function __dnn_ContainerMaxMin_OnClick(oLnk, sContentID) { var oContent = dnn.dom.getById(sContentID); if (oContent != null) { var oBtn = oLnk.childNodes[0]; var sContainerID = oLnk.getAttribute('containerid'); var sCookieID = oLnk.getAttribute('cookieid'); var sCurrentFile = oBtn.src.toLowerCase().substr(oBtn.src.lastIndexOf('/')); var sMaxFile; var sMaxIcon; var sMinIcon; if (dnn.getVar('min_icon_' + sContainerID)) sMinIcon = dnn.getVar('min_icon_' + sContainerID); else sMinIcon = dnn.getVar('min_icon'); if (dnn.getVar('max_icon_' + sContainerID)) sMaxIcon = dnn.getVar('max_icon_' + sContainerID); else sMaxIcon = dnn.getVar('max_icon'); sMaxFile = sMaxIcon.toLowerCase().substr(sMaxIcon.lastIndexOf('/')); if (sCurrentFile == sMaxFile) { oBtn.src = sMinIcon; oContent.style.display = ''; oBtn.title = dnn.getVar('min_text'); if (sCookieID != null) { if (dnn.getVar('__dnn_' + sContainerID + ':defminimized') == 'true') dnn.dom.setCookie(sCookieID, 'true', 365); else dnn.dom.deleteCookie(sCookieID); } else dnn.setVar('__dnn_' + sContainerID + '_Visible', 'true'); } else { oBtn.src = sMaxIcon; oContent.style.display = 'none'; oBtn.title = dnn.getVar('max_text'); if (sCookieID != null) { if (dnn.getVar('__dnn_' + sContainerID + ':defminimized') == 'true') dnn.dom.deleteCookie(sCookieID); else dnn.dom.setCookie(sCookieID, 'false', 365); } else dnn.setVar('__dnn_' + sContainerID + '_Visible', 'false'); } return true; //cancel postback } return false; //failed so do postback } function __dnn_Help_OnClick(sHelpID) { var oHelp = dnn.dom.getById(sHelpID); if (oHelp != null) { if (oHelp.style.display == 'none') oHelp.style.display = ''; else oHelp.style.display = 'none'; return true; //cancel postback } return false; //failed so do postback } function __dnn_SectionMaxMin(oBtn, sContentID) { var oContent = dnn.dom.getById(sContentID); if (oContent != null) { var sMaxIcon = oBtn.getAttribute('max_icon'); var sMinIcon = oBtn.getAttribute('min_icon'); if (oContent.style.display == 'none') { oBtn.src = sMinIcon; oContent.style.display = ''; dnn.setVar(oBtn.id + ':exp', 1); } else { oBtn.src = sMaxIcon; oContent.style.display = 'none'; dnn.setVar(oBtn.id + ':exp', 0); } return true; //cancel postback } return false; //failed so do postback } //Drag N Drop function __dnn_enableDragDrop() { var aryConts = dnn.getVar('__dnn_dragDrop').split(";"); var aryTitles; for (var i=0; i < aryConts.length; i++) { aryTitles = aryConts[i].split(" "); if (aryTitles[0].length > 0) { var oCtr = dnn.dom.getById(aryTitles[0]); var oTitle = dnn.dom.getById(aryTitles[1]); if (oCtr != null && oTitle != null) { oCtr.setAttribute('moduleid', aryTitles[2]); dnn.dom.positioning.enableDragAndDrop(oCtr, oTitle, '__dnn_dragComplete()', '__dnn_dragOver()'); } } } } var __dnn_oPrevSelPane; var __dnn_oPrevSelModule; var __dnn_dragEventCount=0; function __dnn_dragOver() { __dnn_dragEventCount++; if (__dnn_dragEventCount % 75 != 0) //only calculate position every 75 events return; var oCont = dnn.dom.getById(dnn.dom.positioning.dragCtr.contID); var oPane = __dnn_getMostSelectedPane(dnn.dom.positioning.dragCtr); if (__dnn_oPrevSelPane != null) //reset previous pane's border __dnn_oPrevSelPane.pane.style.border = __dnn_oPrevSelPane.origBorder; if (oPane != null) { __dnn_oPrevSelPane = oPane; oPane.pane.style.border = '4px double ' + DNN_HIGHLIGHT_COLOR; var iIndex = __dnn_getPaneControlIndex(oCont, oPane); var oPrevCtl; var oNextCtl; for (var i=0; i i && oPane.controls[i].id != oCont.id) oPrevCtl = oPane.controls[i]; if (iIndex <= i && oPane.controls[i].id != oCont.id) { oNextCtl = oPane.controls[i]; break; } } if (__dnn_oPrevSelModule != null) dnn.dom.getNonTextNode(__dnn_oPrevSelModule.control).style.border = __dnn_oPrevSelModule.origBorder; if (oNextCtl != null) { __dnn_oPrevSelModule = oNextCtl; dnn.dom.getNonTextNode(oNextCtl.control).style.borderTop = '5px groove ' + DNN_HIGHLIGHT_COLOR; } else if (oPrevCtl != null) { __dnn_oPrevSelModule = oPrevCtl; dnn.dom.getNonTextNode(oPrevCtl.control).style.borderBottom = '5px groove ' + DNN_HIGHLIGHT_COLOR; } } } function __dnn_dragComplete() { var oCtl = dnn.dom.getById(dnn.dom.positioning.dragCtr.contID); var sModuleID = oCtl.getAttribute('moduleid'); if (__dnn_oPrevSelPane != null) __dnn_oPrevSelPane.pane.style.border = __dnn_oPrevSelPane.origBorder; if (__dnn_oPrevSelModule != null) dnn.dom.getNonTextNode(__dnn_oPrevSelModule.control).style.border = __dnn_oPrevSelModule.origBorder; var oPane = __dnn_getMostSelectedPane(dnn.dom.positioning.dragCtr); var iIndex; if (oPane == null) { var oPanes = __dnn_Panes(); for (var i=0; i 0) __dnn_m_aryPanes[__dnn_m_aryPanes.length] = new __dnn_Pane(dnn.dom.getById(aryPanes[i]), aryPaneNames[i]); } } var __dnn_m_aryPanes; var __dnn_m_aryModules; function __dnn_Panes() { if (__dnn_m_aryPanes == null) { __dnn_m_aryPanes = new Array(); __dnn_RefreshPanes(); } return __dnn_m_aryPanes; } function __dnn_Modules(sModuleID) { if (__dnn_m_aryModules == null) __dnn_RefreshPanes(); return __dnn_m_aryModules[sModuleID]; } function __dnn_getMostSelectedPane(oContent) { var oCDims = new dnn.dom.positioning.dims(oContent); var iTopScore=0; var iScore; var oTopPane; for (var i=0; i<__dnn_Panes().length; i++) { var oPane = __dnn_Panes()[i]; var oPDims = new dnn.dom.positioning.dims(oPane.pane); iScore = dnn.dom.positioning.elementOverlapScore(oPDims, oCDims); if (iScore > iTopScore) { iTopScore = iScore; oTopPane = oPane; } } return oTopPane; } function __dnn_getPaneControlIndex(oContent, oPane) { if (oPane == null) return; var oCDims = new dnn.dom.positioning.dims(oContent); var oCtl; if (oPane.controls.length == 0) return 0; for (var i=0; i 0) // oNode = oNode.childNodes[0]; //DNN now embeds anchor tag var sModuleID = oNode.getAttribute('moduleid'); if (sModuleID != null && sModuleID.length > 0) { strModuleOrder += sModuleID + '~'; this.controls[this.controls.length] = new __dnn_PaneControl(oNode, iIndex); __dnn_m_aryModules[sModuleID] = oNode.id; iIndex+=1; } } } this.moduleOrder = strModuleOrder; } function __dnn_PaneControl(ctl, iIndex) { this.control = ctl; this.id = ctl.id; this.index = iIndex; this.origBorder = ctl.style.border; }