///< Dynamic script loader class
function DynamicScripLoader() {
	var readyForCall = new Array;

	/**
	* load external script and execute callback function after done. If use same src one more time,
	* callback function will be run immediately
	*
	* @param string src - URI for load
	* @param function callback - executes after loading
	* @return void
	*/
	this.load=function(src, callback){
		if(!readyForCall[src]){
			var head = document.getElementsByTagName("head")[0];
			var script = document.createElement("script");
			script.type = "text/javascript";
			head.appendChild(script);
			script.src = src;

		// Normal browsers
		//script.onload = callback;
	// IE
			if(document.all){
				script.onreadystatechange = function() {
					if(this.readyState == "loaded"  || this.readyState == "complete") {
						callback();
					}
				}
			} else {
				script.onload = callback
			}
			readyForCall[src]=true;
		} else { callback(); }
	}
}

var JSLibLoader = new DynamicScripLoader();
