// ulibLoader

var _ldrfilesadded = "";
var _ldrULIB = [ 'Cookie', 'Date', 'Debug', 'Div', 'Environment', 'HTML', 'Href', 'Iframe', 'Links', 'Misc',
				 'String', 'TOC', 'Tooltip', 'XML' ];
var _ldrULIBsubdir = '';
var _ldrULIBprefix = "ulib";

function ldrCheckAndLoad( filename, filetype )
{
	if ( _ldrfilesadded.indexOf( "[" + filename + "]" ) == -1 )
	{
	 ldrLoad( filename, filetype );
	 _ldrfilesadded += "[" + filename + "]" //List of files added in the form "[filename1],[filename2],etc"
	}
}

function ldrLoad2( uri, callback, sync )
{
	if( sync )
    	document.write( '<script type="text/javascript" src="' + encodeURI( uri ) + '"></script>' );
	else
	{
		var s = document.getElementsByTagName( "head" ).appendChild( document.createElement( "script" ) );
    	s.type = "text/javascript";
    	s.src = uri;
    	s.onload = callback;
	}
}

function ldrULIB( subdir )
{
	var fn;
	var i;
	
	_ldrULIBsubdir = subdir;
	for( i = 0; i < _ldrULIB.length; i++ )
	{
		fn = _ldrULIBsubdir + _ldrULIBprefix + _ldrULIB[i] + ".js";
		ldrLoad2(fn,'', true);
	}
}		

function ldrRemove( filename, filetype )
{
	//determine element type to create nodelist from
	var targetelement = ( filetype == "js" ) ? "script" : ( filetype == "css" ) ? "link" : "none";
	//determine corresponding attribute to test for
	var targetattr = ( filetype == "js" ) ? "src" : ( filetype == "css" ) ? "href" : "none";
	var as = document.getElementsByTagName( targetelement ); // allsupects
	for ( var i = as.length; i >= 0; i-- )
	{ //search backwards within nodelist for matching elements to remove
	 if ( as[i] && as[i].getAttribute(targetattr) != null && as[i].getAttribute(targetattr).indexOf(filename)!=-1 )
		as[i].parentNode.removeChild(as[i]) //remove element by calling parentNode.removeChild()
	}
}
