var myDefinedLibraries = [
	{name:'EXTJSBASE', url:'/imageserver/RemoteGadgets/PublisherEditor/js/extjs/adapter/ext/ext-base.js'},
	{name:'EXTJSALL', url: '/imageserver/RemoteGadgets/PublisherEditor/js/extjs/ext-all.js'},
	{name:'FCKEDITOR', url: '/imageserver/RemoteGadgets/PublisherEditor/js/fckeditor/fckeditor.js'},
	{name:'PTUTILFIX', url: '/imageserver/RemoteGadgets/PublisherEditor/js/PTUtil-fix.js'},
	{name:'EXTFILEUPLOAD', url: '/imageserver/RemoteGadgets/PublisherEditor/js/FileUploadField.js'}
];

var myDefinedStyles = [
	{name:'EXTCSS', url:'/imageserver/RemoteGadgets/PublisherEditor/js/extjs/resources/css/ext-all.css'},
	{name:'PUB_EDITOR', url:'/imageserver/RemoteGadgets/PublisherEditor/css/styles.css'},
];

// dyamically loads the JS library into the DOM
dynJSLoad = function(js_key, js_file) {
	if (document.getElementById && !document.getElementById(js_key)) {
		var fileref=document.createElement('script');
		fileref.setAttribute("type","text/javascript");
		fileref.setAttribute("src", js_file);
		fileref.setAttribute("id", js_key);
		document.getElementsByTagName("head")[0].appendChild(fileref);
	}
}

// dyamically loads the CSS into the DOM
dynCSSLoad = function(css_key, css_file) {
	if (document.getElementById && !document.getElementById(css_key)) {
		var css = document.createElement('link');
		css.setAttribute('rel', 'stylesheet');
		css.setAttribute('type', 'text/css');
		css.setAttribute('href', css_file);
		css.setAttribute("id", css_key);
		document.getElementsByTagName('head')[0].appendChild(css);
	}
}

// uses a name key to load the requested JS once and only once
loadJSLibraryByKey = function(key, defer) {
	for (var i=0; i<myDefinedLibraries.length; i++) {
		if (myDefinedLibraries[i].name == key) {
			if (defer) {
				document.PCC.RegisterForWindowEvent('onload', "new Function(window.setTimeout(\'dynJSLoad(\""+key+"\",\""+myDefinedLibraries[i].url+"\")\',5))");
			}
			else {
				dynJSLoad(key, myDefinedLibraries[i].url);
			}
			return;
		}
	}
}

// uses a name key to load the requested CSS once and only once
loadCSSByKey = function(key) {
	for (var i=0; i<myDefinedStyles.length; i++) {
		if (myDefinedStyles[i].name == key) {
			dynCSSLoad(key, myDefinedStyles[i].url);
			return;
		}
	}
}

// uses a name key to load the requested CSS once and only once
unloadCSSByKey = function(key) {
	if (document.getElementById && document.getElementById(key)) {
		try {
			document.getElementById(key).parent.removeChild(document.getElementById(key));	
		}
		catch (err) {
			try {
				document.getElementById(key).parentElement.removeChild(document.getElementById(key));	
			}
			catch (err) {}
		}
	}
	return;
}

