Fix all overlib calls (escape simple quotes)
authorx2003bruneau <x2003bruneau@839d8a87-29fc-0310-9880-83ba4fa771e5>
Tue, 27 Mar 2007 10:19:59 +0000 (10:19 +0000)
committerx2003bruneau <x2003bruneau@839d8a87-29fc-0310-9880-83ba4fa771e5>
Tue, 27 Mar 2007 10:19:59 +0000 (10:19 +0000)
Update overlib.js

git-svn-id: svn+ssh://murphy/home/svn/platal/trunk@1622 839d8a87-29fc-0310-9880-83ba4fa771e5

classes/platalpage.php
htdocs/javascript/overlib.js
include/validations.inc.php
templates/admin/valider.tpl
templates/core/password_prompt.tpl
templates/core/password_prompt_logged.tpl

index 3cb32a2..b0a561b 100644 (file)
@@ -251,6 +251,8 @@ class PlatalPage extends Smarty
     {
         $this->_jsonVars[$var] = $value;
     }
+
+    // }}}
 }
 
 function escape_xorgDB(&$item, $key)
index 0cab8d2..e900ab4 100644 (file)
@@ -1,5 +1,5 @@
 //\/////\r
-//\  overLIB 4.14 - You may not remove or change this notice.\r
+//\  overLIB 4.21 - You may not remove or change this notice.\r
 //\  Copyright Erik Bosrup 1998-2004. All rights reserved.\r
 //\\r
 //\  Contributors are listed on the homepage.\r
@@ -14,7 +14,7 @@
 //\  license agreement at the link above. Please give credit on sites that\r
 //\  use overLIB and submit changes of the script so other people can use\r
 //\  them as well.\r
-//   $Revision: 1.107 $                $Date: 2004/12/26 15:34:56 $\r
+//   $Revision: 1.119 $                $Date: 2005/07/02 23:41:44 $\r
 //\/////\r
 //\mini\r
 \r
 // PRE-INIT\r
 // Ignore these lines, configuration is below.\r
 ////////\r
-var olLoaded = 0;var pmStart = 10000000; var pmUpper = 10001000; var pmCount = pmStart+1; var pmt=''; var pms = new Array(); var olInfo = new Info('4.14', 1);\r
+var olLoaded = 0;var pmStart = 10000000; var pmUpper = 10001000; var pmCount = pmStart+1; var pmt=''; var pms = new Array(); var olInfo = new Info('4.21', 1);\r
 var FREPLACE = 0; var FBEFORE = 1; var FAFTER = 2; var FALTERNATE = 3; var FCHAIN=4;\r
 var olHideForm=0;  // parameter for hiding SELECT and ActiveX elements in IE5.5+ \r
 var olHautoFlag = 0;  // flags for over-riding VAUTO and HAUTO if corresponding\r
 var olVautoFlag = 0;  // positioning commands are used on the command line\r
+var hookPts = new Array(), postParse = new Array(), cmdLine = new Array(), runTime = new Array();\r
+// for plugins\r
 registerCommands('donothing,inarray,caparray,sticky,background,noclose,caption,left,right,center,offsetx,offsety,fgcolor,bgcolor,textcolor,capcolor,closecolor,width,border,cellpad,status,autostatus,autostatuscap,height,closetext,snapx,snapy,fixx,fixy,relx,rely,fgbackground,bgbackground,padx,pady,fullhtml,above,below,capicon,textfont,captionfont,closefont,textsize,captionsize,closesize,timeout,function,delay,hauto,vauto,closeclick,wrap,followmouse,mouseoff,closetitle,cssoff,compatmode,cssclass,fgclass,bgclass,textfontclass,captionfontclass,closefontclass');\r
 \r
 ////////\r
@@ -233,16 +235,7 @@ if (document.compatMode && document.compatMode == 'CSS1Compat') {
 if(window.addEventListener) window.addEventListener("load",OLonLoad_handler,false);\r
 else if (window.attachEvent) window.attachEvent("onload",OLonLoad_handler);\r
 \r
-// Capture events, alt. diffuses the overlib function.\r
-var olCheckMouseCapture = true;\r
-if ((olNs4 || olNs6 || olIe4)) {\r
-       olMouseCapture();\r
-} else {\r
-       overlib = no_overlib;\r
-       nd = no_overlib;\r
-       ver3fix = true;\r
-}\r
-\r
+var capExtent;\r
 \r
 ////////\r
 // PUBLIC FUNCTIONS\r
@@ -459,7 +452,8 @@ function olMain() {
 \r
 // Makes simple table without caption\r
 function ol_content_simple(text) {\r
-       txt='<table width="'+o3_width+ '" border="0" cellpadding="'+o3_border+'" cellspacing="0" '+(o3_bgclass ? 'class="'+o3_bgclass+'"' : o3_bgcolor+' '+o3_height)+'><tr><td><table width="100%" border="0" cellpadding="' + o3_cellpad + '" cellspacing="0" '+(o3_fgclass ? 'class="'+o3_fgclass+'"' : o3_fgcolor+' '+o3_fgbackground+' '+o3_height)+'><tr><td valign="TOP"'+(o3_textfontclass ? ' class="'+o3_textfontclass+'">' : '>')+(o3_textfontclass ? '' : wrapStr(0,o3_textsize,'text'))+text+(o3_textfontclass ? '' : wrapStr(1,o3_textsize))+'</td></tr></table></td></tr></table>';\r
+       var cpIsMultiple = /,/.test(o3_cellpad);\r
+       var txt = '<table width="'+o3_width+ '" border="0" cellpadding="'+o3_border+'" cellspacing="0" '+(o3_bgclass ? 'class="'+o3_bgclass+'"' : o3_bgcolor+' '+o3_height)+'><tr><td><table width="100%" border="0" '+((olNs4||!cpIsMultiple) ? 'cellpadding="'+o3_cellpad+'" ' : '')+'cellspacing="0" '+(o3_fgclass ? 'class="'+o3_fgclass+'"' : o3_fgcolor+' '+o3_fgbackground+' '+o3_height)+'><tr><td valign="TOP"'+(o3_textfontclass ? ' class="'+o3_textfontclass+'">' : ((!olNs4&&cpIsMultiple) ? ' style="'+setCellPadStr(o3_cellpad)+'">' : '>'))+(o3_textfontclass ? '' : wrapStr(0,o3_textsize,'text'))+text+(o3_textfontclass ? '' : wrapStr(1,o3_textsize))+'</td></tr></table></td></tr></table>';\r
 \r
        set_background("");\r
        return txt;\r
@@ -467,19 +461,21 @@ function ol_content_simple(text) {
 \r
 // Makes table with caption and optional close link\r
 function ol_content_caption(text,title,close) {\r
-       var nameId;\r
-       closing="";\r
-       closeevent="onmouseover";\r
-       if (o3_closeclick==1) closeevent= (o3_closetitle ? "title='" + o3_closetitle +"'" : "") + " onclick";\r
-       if (o3_capicon!="") {\r
-               nameId=' hspace=\"5\"'+' align=\"middle\" alt=\"\"';\r
-               if (typeof o3_dragimg!='undefined'&&o3_dragimg) nameId=' hspace=\"5\"'+' name=\"'+o3_dragimg+'\" id=\"'+o3_dragimg+'\" align=\"middle\" alt=\"Drag Enabled\" title=\"Drag Enabled\"';\r
-               o3_capicon='<img src=\"'+o3_capicon+'\"'+nameId+' />';\r
+       var nameId, txt, cpIsMultiple = /,/.test(o3_cellpad);\r
+       var closing, closeevent;\r
+\r
+       closing = "";\r
+       closeevent = "onmouseover";\r
+       if (o3_closeclick == 1) closeevent = (o3_closetitle ? "title='" + o3_closetitle +"'" : "") + " onclick";\r
+       if (o3_capicon != "") {\r
+         nameId = ' hspace = \"5\"'+' align = \"middle\" alt = \"\"';\r
+         if (typeof o3_dragimg != 'undefined' && o3_dragimg) nameId =' hspace=\"5\"'+' name=\"'+o3_dragimg+'\" id=\"'+o3_dragimg+'\" align=\"middle\" alt=\"Drag Enabled\" title=\"Drag Enabled\"';\r
+         o3_capicon = '<img src=\"'+o3_capicon+'\"'+nameId+' />';\r
        }\r
 \r
-       if (close != "") \r
-               closing='<td '+(!o3_compatmode && o3_closefontclass ? 'class="'+o3_closefontclass : 'align="RIGHT')+'"><a href="javascript:return '+fnRef+'cClick();"'+((o3_compatmode && o3_closefontclass) ? ' class="' + o3_closefontclass + '" ' : ' ')+closeevent+'="return '+fnRef+'cClick();">'+(o3_closefontclass ? '' : wrapStr(0,o3_closesize,'close'))+close+(o3_closefontclass ? '' : wrapStr(1,o3_closesize,'close'))+'</a></td>';\r
-       txt='<table width="'+o3_width+ '" border="0" cellpadding="'+o3_border+'" cellspacing="0" '+(o3_bgclass ? 'class="'+o3_bgclass+'"' : o3_bgcolor+' '+o3_bgbackground+' '+o3_height)+'><tr><td><table width="100%" border="0" cellpadding="0" cellspacing="0"><tr><td'+(o3_captionfontclass ? ' class="'+o3_captionfontclass+'">' : '>')+(o3_captionfontclass ? '' : '<b>'+wrapStr(0,o3_captionsize,'caption'))+o3_capicon+title+(o3_captionfontclass ? '' : wrapStr(1,o3_captionsize)+'</b>')+'</td>'+closing+'</tr></table><table width="100%" border="0" cellpadding="' + o3_cellpad + '" cellspacing="0" '+(o3_fgclass ? 'class="'+o3_fgclass+'"' : o3_fgcolor+' '+o3_fgbackground+' '+o3_height)+'><tr><td valign="TOP"'+(o3_textfontclass ? ' class="'+o3_textfontclass+'">' :'>')+(o3_textfontclass ? '' : wrapStr(0,o3_textsize,'text'))+text+(o3_textfontclass ? '' : wrapStr(1,o3_textsize)) + '</td></tr></table></td></tr></table>';\r
+       if (close != "")\r
+               closing = '<td '+(!o3_compatmode && o3_closefontclass ? 'class="'+o3_closefontclass : 'align="RIGHT')+'"><a href="javascript:return '+fnRef+'cClick();"'+((o3_compatmode && o3_closefontclass) ? ' class="' + o3_closefontclass + '" ' : ' ')+closeevent+'="return '+fnRef+'cClick();">'+(o3_closefontclass ? '' : wrapStr(0,o3_closesize,'close'))+close+(o3_closefontclass ? '' : wrapStr(1,o3_closesize,'close'))+'</a></td>';\r
+       txt = '<table width="'+o3_width+ '" border="0" cellpadding="'+o3_border+'" cellspacing="0" '+(o3_bgclass ? 'class="'+o3_bgclass+'"' : o3_bgcolor+' '+o3_bgbackground+' '+o3_height)+'><tr><td><table width="100%" border="0" cellpadding="2" cellspacing="0"><tr><td'+(o3_captionfontclass ? ' class="'+o3_captionfontclass+'">' : '>')+(o3_captionfontclass ? '' : '<b>'+wrapStr(0,o3_captionsize,'caption'))+o3_capicon+title+(o3_captionfontclass ? '' : wrapStr(1,o3_captionsize)+'</b>')+'</td>'+closing+'</tr></table><table width="100%" border="0" '+((olNs4||!cpIsMultiple) ? 'cellpadding="'+o3_cellpad+'" ' : '')+'cellspacing="0" '+(o3_fgclass ? 'class="'+o3_fgclass+'"' : o3_fgcolor+' '+o3_fgbackground+' '+o3_height)+'><tr><td valign="TOP"'+(o3_textfontclass ? ' class="'+o3_textfontclass+'">' :((!olNs4&&cpIsMultiple) ? ' style="'+setCellPadStr(o3_cellpad)+'">' : '>'))+(o3_textfontclass ? '' : wrapStr(0,o3_textsize,'text'))+text+(o3_textfontclass ? '' : wrapStr(1,o3_textsize)) + '</td></tr></table></td></tr></table>';\r
 \r
        set_background("");\r
        return txt;\r
@@ -540,8 +536,8 @@ function createPopup(lyrContent){
        runHook("createPopup", FBEFORE);\r
        \r
        if (o3_wrap) {\r
-               var wd,ww,theObj=(olNs4 ? over : over.style);\r
-               theObj.top=theObj.left=-10000 + (!olNs4 ? 'px' : 0);\r
+               var wd,ww,theObj = (olNs4 ? over : over.style);\r
+               theObj.top = theObj.left = ((olIe4&&!olOp) ? 0 : -10000) + (!olNs4 ? 'px' : 0);\r
                layerWrite(lyrContent);\r
                wd = (olNs4 ? over.clip.width : over.offsetWidth);\r
                if (wd > (ww=windowWidth())) {\r
@@ -616,28 +612,39 @@ function no_overlib() { return ver3fix; }
 // Capture the mouse and chain other scripts.\r
 function olMouseCapture() {\r
        capExtent = document;\r
-       var fN, str, l, k, f, mseHandler = olMouseMove;\r
+       var fN, str = '', l, k, f, wMv, sS, mseHandler = olMouseMove;\r
        var re = /function[ ]*(\w*)\(/;\r
        \r
-       if (document.onmousemove || (!olIe4 && window.onmousemove)) {\r
-               if (window.onmousemove) capExtent = window;\r
+       wMv = (!olIe4 && window.onmousemove);\r
+       if (document.onmousemove || wMv) {\r
+               if (wMv) capExtent = window;\r
                f = capExtent.onmousemove.toString();\r
                fN = f.match(re);\r
-\r
-               if (fN==null) {\r
-                       str=f+'(e); ';\r
-               } else if (fN[1] == 'anonymous' || fN[1] == 'olMouseMove') {\r
-                       olCheckMouseCapture = false;\r
-                       return;\r
+               if (fN == null) {\r
+                       str = f+'(e); ';\r
+               } else if (fN[1] == 'anonymous' || fN[1] == 'olMouseMove' || (wMv && fN[1] == 'onmousemove')) {\r
+                       if (!olOp && wMv) {\r
+                               l = f.indexOf('{')+1;\r
+                               k = f.lastIndexOf('}');\r
+                               sS = f.substring(l,k);\r
+                               if ((l = sS.indexOf('(')) != -1) {\r
+                                       sS = sS.substring(0,l).replace(/^\s+/,'').replace(/\s+$/,'');\r
+                                       if (eval("typeof " + sS + " == 'undefined'")) window.onmousemove = null;\r
+                                       else str = sS + '(e);';\r
+                               }\r
+                       }\r
+                       if (!str) {\r
+                               olCheckMouseCapture = false;\r
+                               return;\r
+                       }\r
                } else {\r
                        if (fN[1]) str = fN[1]+'(e); ';\r
                        else {\r
-                               l=f.indexOf('{')+1;\r
-                               k=f.lastIndexOf('}');\r
-                               str=f.substring(l,k) + '\n';\r
+                               l = f.indexOf('{')+1;\r
+                               k = f.lastIndexOf('}');\r
+                               str = f.substring(l,k) + '\n';\r
                        }\r
                }\r
-\r
                str += 'olMouseMove(e); ';\r
                mseHandler = new Function('e', str);\r
        }\r
@@ -653,7 +660,7 @@ function olMouseCapture() {
 // Does the actual command parsing.\r
 function parseTokens(pf, ar) {\r
        // What the next argument is expected to be.\r
-       var v, mode=-1, par = (pf != 'ol_');    \r
+       var v, i, mode=-1, par = (pf != 'ol_'); \r
        var fnMark = (par && !ar.length ? 1 : 0);\r
 \r
        for (i = 0; i < ar.length; i++) {\r
@@ -798,7 +805,7 @@ function hideObject(obj) {
        var theObj=(olNs4 ? obj : obj.style);\r
        if (olNs6 && olShowId>0) { clearTimeout(olShowId); olShowId=0; }\r
        theObj.visibility = 'hidden';\r
-       theObj.top=theObj.left=-10000 + (!olNs4 ? 'px' : 0);\r
+       theObj.top = theObj.left = ((olIe4&&!olOp) ? 0 : -10000) + (!olNs4 ? 'px' : 0);\r
 \r
        if (o3_timerid > 0) clearTimeout(o3_timerid);\r
        if (o3_delayid > 0) clearTimeout(o3_delayid);\r
@@ -807,7 +814,7 @@ function hideObject(obj) {
        o3_delayid = 0;\r
        self.status = "";\r
 \r
-       if (obj.onmouseout || obj.onmouseover) {\r
+       if (obj.onmouseout||obj.onmouseover) {\r
                if (olNs4) obj.releaseEvents(Event.MOUSEOUT || Event.MOUSEOVER);\r
                obj.onmouseout = obj.onmouseover = null;\r
        }\r
@@ -952,6 +959,36 @@ function isExclusive(args) {
        return false;\r
 }\r
 \r
+// Sets cellpadding style string value\r
+function setCellPadStr(parameter) {\r
+       var Str='', j=0, ary = new Array(), top, bottom, left, right;\r
+\r
+       Str+='padding: ';\r
+       ary=parameter.replace(/\s+/g,'').split(',');\r
+\r
+       switch(ary.length) {\r
+               case 2:\r
+                       top=bottom=ary[j];\r
+                       left=right=ary[++j];\r
+                       break;\r
+               case 3:\r
+                       top=ary[j];\r
+                       left=right=ary[++j];\r
+                       bottom=ary[++j];\r
+                       break;\r
+               case 4:\r
+                       top=ary[j];\r
+                       right=ary[++j];\r
+                       bottom=ary[++j];\r
+                       left=ary[++j];\r
+                       break;\r
+       }\r
+\r
+       Str+= ((ary.length==1) ? ary[0] + 'px;' : top + 'px ' + right + 'px ' + bottom + 'px ' + left + 'px;');\r
+\r
+       return Str;\r
+}\r
+\r
 // function will delay close by time milliseconds\r
 function hideDelay(time) {\r
        if (time&&!o3_delay) {\r
@@ -1101,11 +1138,11 @@ function createDivContainer(id,frm,zValue) {
                        objRef = divContainer.style;\r
                }\r
 \r
-               with (objRef) {\r
-                       position = 'absolute';\r
-                       visibility = 'hidden';\r
-                       zIndex = zValue;\r
-               }\r
+               objRef.position = 'absolute';\r
+               objRef.visibility = 'hidden';\r
+               objRef.zIndex = zValue;\r
+               if (olIe4&&!olOp) objRef.left = objRef.top = '0px';\r
+               else objRef.left = objRef.top =  -10000 + (!olNs4 ? 'px' : 0);\r
        }\r
 \r
        return divContainer;\r
@@ -1116,6 +1153,109 @@ function layerReference(id) {
        return (olNs4 ? o3_frame.document.layers[id] : (document.all ? o3_frame.document.all[id] : o3_frame.document.getElementById(id)));\r
 }\r
 ////////\r
+//  UTILITY FUNCTIONS\r
+////////\r
+\r
+// Checks if something is a function.\r
+function isFunction(fnRef) {\r
+       var rtn = true;\r
+\r
+       if (typeof fnRef == 'object') {\r
+               for (var i = 0; i < fnRef.length; i++) {\r
+                       if (typeof fnRef[i]=='function') continue;\r
+                       rtn = false;\r
+                       break;\r
+               }\r
+       } else if (typeof fnRef != 'function') {\r
+               rtn = false;\r
+       }\r
+       \r
+       return rtn;\r
+}\r
+\r
+// Converts an array into an argument string for use in eval.\r
+function argToString(array, strtInd, argName) {\r
+       var jS = strtInd, aS = '', ar = array;\r
+       argName=(argName ? argName : 'ar');\r
+       \r
+       if (ar.length > jS) {\r
+               for (var k = jS; k < ar.length; k++) aS += argName+'['+k+'], ';\r
+               aS = aS.substring(0, aS.length-2);\r
+       }\r
+       \r
+       return aS;\r
+}\r
+\r
+// Places a hook in the correct position in a hook point.\r
+function reOrder(hookPt, fnRef, order) {\r
+       var newPt = new Array(), match, i, j;\r
+\r
+       if (!order || typeof order == 'undefined' || typeof order == 'number') return hookPt;\r
+       \r
+       if (typeof order=='function') {\r
+               if (typeof fnRef=='object') {\r
+                       newPt = newPt.concat(fnRef);\r
+               } else {\r
+                       newPt[newPt.length++]=fnRef;\r
+               }\r
+               \r
+               for (i = 0; i < hookPt.length; i++) {\r
+                       match = false;\r
+                       if (typeof fnRef == 'function' && hookPt[i] == fnRef) {\r
+                               continue;\r
+                       } else {\r
+                               for(j = 0; j < fnRef.length; j++) if (hookPt[i] == fnRef[j]) {\r
+                                       match = true;\r
+                                       break;\r
+                               }\r
+                       }\r
+                       if (!match) newPt[newPt.length++] = hookPt[i];\r
+               }\r
+\r
+               newPt[newPt.length++] = order;\r
+\r
+       } else if (typeof order == 'object') {\r
+               if (typeof fnRef == 'object') {\r
+                       newPt = newPt.concat(fnRef);\r
+               } else {\r
+                       newPt[newPt.length++] = fnRef;\r
+               }\r
+               \r
+               for (j = 0; j < hookPt.length; j++) {\r
+                       match = false;\r
+                       if (typeof fnRef == 'function' && hookPt[j] == fnRef) {\r
+                               continue;\r
+                       } else {\r
+                               for (i = 0; i < fnRef.length; i++) if (hookPt[j] == fnRef[i]) {\r
+                                       match = true;\r
+                                       break;\r
+                               }\r
+                       }\r
+                       if (!match) newPt[newPt.length++]=hookPt[j];\r
+               }\r
+\r
+               for (i = 0; i < newPt.length; i++) hookPt[i] = newPt[i];\r
+               newPt.length = 0;\r
+               \r
+               for (j = 0; j < hookPt.length; j++) {\r
+                       match = false;\r
+                       for (i = 0; i < order.length; i++) {\r
+                               if (hookPt[j] == order[i]) {\r
+                                       match = true;\r
+                                       break;\r
+                               }\r
+                       }\r
+                       if (!match) newPt[newPt.length++] = hookPt[j];\r
+               }\r
+               newPt = newPt.concat(order);\r
+       }\r
+\r
+       hookPt = newPt;\r
+\r
+       return hookPt;\r
+}\r
+\r
+////////\r
 //  PLUGIN ACTIVATION FUNCTIONS\r
 ////////\r
 \r
@@ -1144,10 +1284,10 @@ function parseCmdLine(pf, i, args) {
 }\r
 \r
 // Runs plugin functions to do things after parse.\r
-function postParseChecks(){\r
+function postParseChecks(pf,args){\r
        if (typeof postParse != 'undefined' && postParse.length) {\r
                for (var k = 0; k < postParse.length; k++) {\r
-                       if (postParse[k]()) continue;\r
+                       if (postParse[k](pf,args)) continue;\r
                        return false;  // end now since have an error\r
                }\r
        }\r
@@ -1173,7 +1313,7 @@ function registerCommands(cmdStr) {
 \r
 // Registers no-parameter commands\r
 function registerNoParameterCommands(cmdStr) {\r
-       if (!cmdStr && typeof cmdStr!='string') return;\r
+       if (!cmdStr && typeof cmdStr != 'string') return;\r
        pmt=(!pmt) ? cmdStr : pmt + ',' + cmdStr;\r
 }\r
 \r
@@ -1182,7 +1322,6 @@ function registerHook(fnHookTo, fnRef, hookType, optPm) {
        var hookPt, last = typeof optPm;\r
        \r
        if (fnHookTo == 'plgIn'||fnHookTo == 'postParse') return;\r
-       if (typeof hookPts == 'undefined') hookPts = new Array();\r
        if (typeof hookPts[fnHookTo] == 'undefined') hookPts[fnHookTo] = new FunctionReference();\r
 \r
        hookPt = hookPts[fnHookTo];\r
@@ -1218,7 +1357,6 @@ function registerHook(fnHookTo, fnRef, hookType, optPm) {
 // Register a function that will set runtime variables.\r
 function registerRunTimeFunction(fn) {\r
        if (isFunction(fn)) {\r
-               if (typeof runTime == 'undefined') runTime = new Array();\r
                if (typeof fn == 'object') {\r
                        runTime = runTime.concat(fn);\r
                } else {\r
@@ -1230,7 +1368,6 @@ function registerRunTimeFunction(fn) {
 // Register a function that will handle command parsing.\r
 function registerCmdLineFunction(fn){\r
        if (isFunction(fn)) {\r
-               if (typeof cmdLine == 'undefined') cmdLine = new Array();\r
                if (typeof fn == 'object') {\r
                        cmdLine = cmdLine.concat(fn);\r
                } else {\r
@@ -1242,7 +1379,6 @@ function registerCmdLineFunction(fn){
 // Register a function that does things after command parsing. \r
 function registerPostParseFunction(fn){\r
        if (isFunction(fn)) {\r
-               if (typeof postParse == 'undefined') postParse = new Array();\r
                if (typeof fn == 'object') {\r
                        postParse = postParse.concat(fn);\r
                } else {\r
@@ -1257,141 +1393,40 @@ function registerPostParseFunction(fn){
 \r
 // Runs any hooks registered.\r
 function runHook(fnHookTo, hookType) {\r
-       var l = hookPts[fnHookTo], k, rtnVal, optPm, arS, ar = runHook.arguments;\r
+       var l = hookPts[fnHookTo], k, rtnVal = null, optPm, arS, ar = runHook.arguments;\r
 \r
        if (hookType == FREPLACE) {\r
                arS = argToString(ar, 2);\r
 \r
-               if (typeof l == 'undefined' || !(l = l.ovload)) return eval(fnHookTo+'('+arS+')');\r
-               else return eval('l('+arS+')');\r
+               if (typeof l == 'undefined' || !(l = l.ovload)) rtnVal = eval(fnHookTo+'('+arS+')');\r
+               else rtnVal = eval('l('+arS+')');\r
 \r
        } else if (hookType == FBEFORE || hookType == FAFTER) {\r
-               if (typeof l == 'undefined') return;\r
-               l=(hookType == 1 ? l.before : l.after);\r
-\r
-               if (!l.length) return;\r
-\r
-               arS = argToString(ar, 2);\r
-               for (var k = 0; k < l.length; k++) eval('l[k]('+arS+')'); \r
-\r
+               if (typeof l != 'undefined') {\r
+                       l=(hookType == 1 ? l.before : l.after);\r
+       \r
+                       if (l.length) {\r
+                               arS = argToString(ar, 2);\r
+                               for (var k = 0; k < l.length; k++) eval('l[k]('+arS+')');\r
+                       }\r
+               }\r
        } else if (hookType == FALTERNATE) {\r
                optPm = ar[2];\r
                arS = argToString(ar, 3);\r
 \r
                if (typeof l == 'undefined' || (l = l.alt[pms[optPm-1-pmStart]]) == 'undefined') {\r
-                       return eval(fnHookTo+'('+arS+')');\r
+                       rtnVal = eval(fnHookTo+'('+arS+')');\r
                } else {\r
-                       return eval('l('+arS+')');\r
+                       rtnVal = eval('l('+arS+')');\r
                }\r
        } else if (hookType == FCHAIN) {\r
                arS=argToString(ar,2);\r
                l=l.chain;\r
 \r
-               for (k=l.length; k > 0; k--) if((rtnVal=eval('l[k-1]('+arS+')'))!=void(0)) return rtnVal;\r
-       }\r
-}\r
-\r
-////////\r
-//  UTILITY FUNCTIONS\r
-////////\r
-\r
-// Checks if something is a function.\r
-function isFunction(fnRef) {\r
-       var rtn = true;\r
-\r
-       if (typeof fnRef == 'object') {\r
-               for (var i = 0; i < fnRef.length; i++) {\r
-                       if (typeof fnRef[i]=='function') continue;\r
-                       rtn = false;\r
-                       break;\r
-               }\r
-       } else if (typeof fnRef != 'function') {\r
-               rtn = false;\r
-       }\r
-       \r
-       return rtn;\r
-}\r
-\r
-// Converts an array into an argument string for use in eval.\r
-function argToString(array, strtInd, argName) {\r
-       var jS = strtInd, aS = '', ar = array;\r
-       argName=(argName ? argName : 'ar');\r
-       \r
-       if (ar.length > jS) {\r
-               for (var k = jS; k < ar.length; k++) aS += argName+'['+k+'], ';\r
-               aS = aS.substring(0, aS.length-2);\r
-       }\r
-       \r
-       return aS;\r
-}\r
-\r
-// Places a hook in the correct position in a hook point.\r
-function reOrder(hookPt, fnRef, order) {\r
-       if (!order || typeof order == 'undefined' || typeof order == 'number') return;\r
-       \r
-       var newPt = new Array(), match;\r
-\r
-       if (typeof order=='function') {\r
-               if (typeof fnRef=='object') {\r
-                       newPt = newPt.concat(fnRef);\r
-               } else {\r
-                       newPt[newPt.length++]=fnRef;\r
-               }\r
-               \r
-               for (var i = 0; i < hookPt.length; i++) {\r
-                       match = false;\r
-                       if (typeof fnRef == 'function' && hookPt[i] == fnRef) {\r
-                               continue;\r
-                       } else {\r
-                               for(var j = 0; j < fnRef.length; j++) if (hookPt[i] == fnRef[j]) {\r
-                                       match = true;\r
-                                       break;\r
-                               }\r
-                       }\r
-                       if (!match) newPt[newPt.length++] = hookPt[i];\r
-               }\r
-\r
-               newPt[newPt.length++] = order;\r
-\r
-       } else if (typeof order == 'object') {\r
-               if (typeof fnRef == 'object') {\r
-                       newPt = newPt.concat(fnRef);\r
-               } else {\r
-                       newPt[newPt.length++] = fnRef;\r
-               }\r
-               \r
-               for (var j = 0; j < hookPt.length; j++) {\r
-                       match = false;\r
-                       if (typeof fnRef == 'function' && hookPt[j] == fnRef) {\r
-                               continue;\r
-                       } else {\r
-                               for (var i = 0; i < fnRef.length; i++) if (hookPt[j] == fnRef[i]) {\r
-                                       match = true;\r
-                                       break;\r
-                               }\r
-                       }\r
-                       if (!match) newPt[newPt.length++]=hookPt[j];\r
-               }\r
-\r
-               for (i = 0; i < newPt.length; i++) hookPt[i] = newPt[i];\r
-               newPt.length = 0;\r
-               \r
-               for (var j = 0; j < hookPt.length; j++) {\r
-                       match = false;\r
-                       for (var i = 0; i < order.length; i++) {\r
-                               if (hookPt[j] == order[i]) {\r
-                                       match = true;\r
-                                       break;\r
-                               }\r
-                       }\r
-                       if (!match) newPt[newPt.length++] = hookPt[j];\r
-               }\r
-               newPt = newPt.concat(order);\r
+               for (k=l.length; k > 0; k--) if((rtnVal=eval('l[k-1]('+arS+')'))!=void(0)) break;\r
        }\r
 \r
-       for(i = 0; i < newPt.length; i++) hookPt[i] = newPt[i];\r
-\r
-       return hookPt;\r
+       return rtnVal;\r
 }\r
 \r
 ////////\r
@@ -1441,4 +1476,16 @@ registerHook("horizontalPlacement", horizontalPlacement, FCHAIN);
 registerHook("verticalPlacement", verticalPlacement, FCHAIN);\r
 if (olNs4||(olIe5&&isMac)||olKq) olLoaded=1;\r
 registerNoParameterCommands('sticky,autostatus,autostatuscap,fullhtml,hauto,vauto,closeclick,wrap,followmouse,mouseoff,compatmode');\r
-// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8:
+///////\r
+// ESTABLISH MOUSECAPTURING\r
+///////\r
+\r
+// Capture events, alt. diffuses the overlib function.\r
+var olCheckMouseCapture=true;\r
+if ((olNs4 || olNs6 || olIe4)) {\r
+       olMouseCapture();\r
+} else {\r
+       overlib = no_overlib;\r
+       nd = no_overlib;\r
+       ver3fix = true;\r
+}\r
index 87d2a62..1fcbb24 100644 (file)
@@ -363,6 +363,14 @@ abstract class Validate
     }
 
     // }}}
+    // {{{ function ruleText()
+
+    public function ruleText()
+    {
+        return str_replace('\'', '\\\'', $this->rules);
+    }
+
+    // }}}
 }
 
 foreach (glob(dirname(__FILE__).'/validations/*.inc.php') as $file) {
index d98d67d..b75bec1 100644 (file)
@@ -98,7 +98,7 @@
   </tr>
   <tr><th colspan='2'>Réponse</th></tr>
   <tr>
-    <td colspan='2' {popup caption="Règles de validation" text=$valid->rules}>
+    <td colspan='2' {popup caption="Règles de validation" text=$valid->ruleText()}>
       <form action="admin/validate" method="post">
         <div>
           Réponse préremplie :
index ba27a4c..f528b06 100644 (file)
@@ -97,9 +97,9 @@ Si tu n'es pas {insert name="getName"}, change le login ci-dessous, ou rends-toi
     </tr>
     <tr>
       <td></td>
-      <td {popup caption='Connexion permanente' width='300' text="Coche cette case pour être automatiquement reconnu à ta prochaine connexion
+      <td {popup caption='Connexion permanente' width='300' text='Coche cette case pour être automatiquement reconnu à ta prochaine connexion
         depuis cet ordinateur.<br />
-        Il n'est pas conseillé de cocher la case si cette machine n'est pas <b>strictement</b> personnelle"}>
+        Il n\'est pas conseillé de cocher la case si cette machine n\'est pas <b>strictement</b> personnelle'}>
         <input type="checkbox" name="remember" /> Garder l'accès aux services après déconnexion
       </td>
     </tr>
index 8e39bd6..9d8cec6 100644 (file)
@@ -58,8 +58,8 @@
       </td>
     </tr>
     <tr>
-      <td {popup caption='Connexion permanente' width='300' text="Décoche cette case pour que le site oublie ce navigateur.<br />
-        Il est conseillé de décocher la case si cette machine n'est pas <b>strictement</b> personnelle"} colspan="2">
+      <td {popup caption='Connexion permanente' width='300' text='Décoche cette case pour que le site oublie ce navigateur.<br />
+        Il est conseillé de décocher la case si cette machine n\'est pas <b>strictement</b> personnelle'} colspan="2">
         <input type="checkbox" name="remember" checked="checked" /> Garder l'accès aux services après déconnexion
       </td>
     </tr>