function isStyleSheetLoaded(filename) {
	for (var i = 0; i < document.styleSheets.length; i++) {
		if ((document.styleSheets[i].href) && (document.styleSheets[i].href.indexOf(filename) >= 0)) {
			return true;
		}
	}
	return false;
}

function loadStyleSheet(filename, theme) {
	if (!isStyleSheetLoaded(filename)) {
		var head = document.getElementsByTagName('head')[0];
		var styleSheet = document.createElement('link');
		styleSheet.type = 'text/css';
		styleSheet.rel = 'stylesheet';
		styleSheet.href = '/themes/' + theme + '/styles/' + filename;
		head.appendChild(styleSheet);
	}
}

function unloadStyleSheet(filename) {
	var head = document.getElementsByTagName('head')[0];
	var links = head.getElementsByTagName('link');
	for (var i = 0; i < links.length; i++) {
		if (links[i].href.indexOf(filename) >= 0) {
			head.removeChild(links[i]);
			return true;
		}
	}
	return false;
}

function loadScript(filename) {
	var scripts = $A(document.getElementsByTagName('script'));
	var expr = new RegExp(filename + "$");
	var found = scripts.any(
			function(element) {
				return ((element.type == 'text/javascript') && (expr.test(element.src))) ? true : false;
			}
	);
	if (!found) {
		var script = document.createElement('script');
		script.type = 'text/javascript';
		script.src = filename;
		document.getElementsByTagName('head')[0].appendChild(script);
	}
}
