yes.....
this code is from my library but you should get the general concept
[snip]
//+---[Intelligent JS loader]
var _JSSRC_ = new Array();
var _JSOBJ_ = new Array();
SYSTEM.SHELL.loadJS = function (fname,fptr)
{
var loc = _JSSRC_.loc(fname);
if (loc >-1)
{
if (fptr) fptr(_JSOBJ_[loc]);
} else
{
var head = document.getElementsByTagName('head')[0];
var scr = document.createElement('SCRIPT');
_JSSRC_.push(fname);
_JSOBJ_.push(scr);
if (fptr)
{
var callback = function (e)
{
if (SYSTEM.BROWSER.isIE)
{
if (window.event.srcElement.readyState=='loaded')
{
return fptr(scr);
}
} else
{
return fptr(scr);
}
}
if (SYSTEM.BROWSER.isIE) scr.attachEvent('onreadystatechange',callback); else
scr.addEventListener('load',callback,false);
}
head.appendChild(scr);
scr.setAttribute('type',"text/javascript");
scr.src = fname;
}
}
[end snip]
//+---[Load Core Files Method]
SYSTEM.SHELL.loadCoreModules = function (callBack)
{
var arr = SYSTEM.SHELL.coreIncludes;
var len = arr.length;
var dir = SYSTEM.SHELL.coreIncludeDIR;
var url = SYSTEM.BROWSER.location;
var INC_LoadArr = new Array(len);
var inc = 0;
for (var n=0;n<len;n++)
{
INC_LoadArr[n] = url+dir+arr[n]+'.js';
}
//-----------------------
var c_back = function (el)
{
if (inc<len)
{
SYSTEM.SHELL.setProgText('Loaded: '+arr[inc-1]);
SYSTEM.SHELL.loadJS(INC_LoadArr[inc],c_back);
SYSTEM.SHELL.setProgText('Loading: '+arr[inc]);
inc++;
} else
if (inc==len)
{
SYSTEM.SHELL.setProgText('Loading Core Modules Complete.');
if (callBack) callBack();
}
}
SYSTEM.SHELL.loadJS(INC_LoadArr[inc],c_back);
SYSTEM.SHELL.setProgText('Loading: '+arr[inc]);
inc++;
}
---------------------------