var SLoader = function() {
	var instanceMethod = "getInstance()", 
	javaScriptNamePattern = "js/javaScriptName.js", 
	regExp = new RegExp("(.*)(javaScriptName)(.*)", "gi"), 
	replacementBefore = "$1", 
	replacementAfter = "$3", 
	
	loadScript = function(
			replacement) {
		$.ajax( {
			type : "GET",
			url : javaScriptNamePattern.replace(regExp, replacement),
			dataType : "script",
			async : false,
			cache : true
		});
	};
	
	return {
		getObj : function(objName) {
			if (eval("typeof " + objName) != "function")
				loadScript(replacementBefore + objName + replacementAfter);
			
			return eval(objName + "." + instanceMethod);
		},
		newObj : function(objName) {
			if (eval("typeof " + objName) != "function")
				loadScript(replacementBefore + objName + replacementAfter);
			
			return eval("new " + objName + "()");
		}
		
	};
};
SLoader.instance = null, SLoader.getInstance = function() {
	if (!SLoader.instance)
		SLoader.instance = new SLoader();
	return SLoader.instance;
}, SLoader.getObj = function(objName) {
	return SLoader.getInstance().getObj(objName);
}, SLoader.newObj = function(objName) {
	return SLoader.getInstance().newObj(objName);
};