- 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