/* * Utility functions for script scheduler test */ (function(){ /* namespace hiding local variables like arOrderOfAllEvents from global scope */ window.testlib = {}; window.eventOrder = []; var arNumberOfScriptsParsedPerEvent=[]; window.log = function (str){ eventOrder.push(str); arNumberOfScriptsParsedPerEvent.push(document.getElementsByTagName('script').length); } window.testlib.addScript = function(source, attributes, parent, firstInParent,funcPrepare) { try{ parent = parent||document.body; var script = document.createElement('script'); if(funcPrepare) { funcPrepare(script); } if(source)script.appendChild( document.createTextNode(source) ); for( var name in attributes){ if(/^on/i.test(name)) { script[name] = attributes[name]; } else { script.setAttribute(name, attributes[name]); } } if (firstInParent && parent.firstChild) { parent.insertBefore(script, parent.firstChild); } else { parent.appendChild(script); } } catch(e) { log('ERROR when adding script to DOM!'); alert(e); } return script; } window.testlib.urlParam = function(relativeURL) { return location.href.replace( /\d*\.html$/, relativeURL); } })();