createjscssfile:function(filename, filetype){ if (filetype=="js"){ //if filename is a external JavaScript file var fileref=document.createElement("script") fileref.setAttribute("type","text/javascript") fileref.setAttribute("src", filename) } else if (filetype=="css"){ //if filename is an external CSS file var fileref=document.createElement("link") fileref.setAttribute("rel", "stylesheet") fileref.setAttribute("type", "text/css") fileref.setAttribute("href", filename) } return fileref },
loadjscssfile:function(filename, filetype){ //load or replace (if already exists) external .js and .css files if (this.exfilesadded.indexOf("["+filename+"]")==-1){ //if desired file to load hasnt already been loaded var newelement=this.createjscssfile(filename, filetype) document.getElementsByTagName("head")[0].appendChild(newelement) this.exfilesadded+="["+filename+"]" //remember this file as being added } else{ //if file has been loaded already (replace/ refresh it) var targetelement=(filetype=="js")? "script" : (filetype=="css")? "link" : "none" //determine element type to create nodelist using var targetattr=(filetype=="js")? "src" : (filetype=="css")? "href" : "none" //determine corresponding attribute to test for var allsuspects=document.getElementsByTagName(targetelement) for (var i=allsuspects.length; i>=0; i--){ //search backwards within nodelist for matching elements to remove if (allsuspects[i] && allsuspects[i].getAttribute(targetattr)!=null && allsuspects[i].getAttribute(targetattr).indexOf(filename)!=-1){ var newelement=this.createjscssfile(filename, filetype) allsuspects[i].parentNode.replaceChild(newelement, allsuspects[i]) } } } },
pageloadaction:function(pageurl){ this.onpageload(pageurl) //call customize onpageload() function when an ajax page is fetched/ loaded },
onpageload:function(pageurl){ //do nothing by default },