//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; if (window.addeventlistener) window.addeventlistener("load", __dnn_page_onload, false); else window.attachevent("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.dom.attachevent(window, 'onscroll', __dnn_bodyscroll); } __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 && typeof(of.scrolltop) != 'undefined') of.scrolltop.value=document.documentelement.scrolltop ? document.documentelement.scrolltop : 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', ''); } } window.scrollto(0, 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 = dnn.getvar('containerid_' + scontentid); //olnk.getattribute('containerid'); var scookieid = dnn.getvar('cookieid_' + scontentid); //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('/')); var inum = 5; var animf = dnn.getvar('animf_' + scontentid); if (animf != null) inum = new number(animf); if (scurrentfile == smaxfile) { obtn.src = sminicon; //ocontent.style.display = ''; dnn.dom.expandelement(ocontent, inum); 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'; dnn.dom.collapseelement(ocontent, inum); 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'); var bcallback = obtn.getattribute('userctr') != null; var sval; if (ocontent.style.display == 'none') { obtn.src = sminicon; ocontent.style.display = ''; if (bcallback) sval = 'true'; else dnn.setvar(obtn.id + ':exp', 1); } else { obtn.src = smaxicon; ocontent.style.display = 'none'; if (bcallback) sval = 'false'; else dnn.setvar(obtn.id + ':exp', 0); } if (bcallback) dnncore.setuserprop(obtn.getattribute('userctr'), obtn.getattribute('userkey'), sval, null); 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; } function __dnn_showmodalpage(urlpage) { dnnmodal.show(urlpage, /*showreturn*/true, 550, 950, true, ''); } //move towards dnncore ns. right now only for personalization function __dnncore() { this.getuserval = 0; this.setuserval = 1; } __dnncore.prototype = { getuserprop: function(snamectr, skey, pfunc) { this._dousercallback(dnncore.getuserval, snamectr, skey, null, new dnncore.userpropargs(snamectr, skey, pfunc)); }, setuserprop: function(snamectr, skey, sval, pfunc) { this._dousercallback(dnncore.setuserval, snamectr, skey, sval, new dnncore.userpropargs(snamectr, skey, pfunc)); }, _dousercallback: function(itype, snamectr, skey, sval, pfunc) { if (dnn && dnn.xmlhttp) { var spack = itype + col_delimiter + snamectr + col_delimiter + skey + col_delimiter + sval; dnn.xmlhttp.docallback('__page',spack,dnncore._callbacksuccess,pfunc,dnncore._callbackfail,null,true,null,0); } else alert('client personalization not enabled'); }, _callbacksuccess: function (result, ctx, req) { if (ctx.pfunc) ctx.pfunc(ctx.namingctr, ctx.key, result); }, _callbackfail: function (result, ctx) { window.status = result; } } __dnncore.prototype.userpropargs = function(snamectr, skey, pfunc) { this.namingctr = snamectr; this.key = skey; this.pfunc = pfunc; } var dnncore = new __dnncore();