//\/////\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
//\ 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
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
\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
\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
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
// 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
// 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
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
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
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
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
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
}\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
\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
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
// 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
// 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
// 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
\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
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