text: var jRun={version:"1.0.20",plugins:[],allowedInitTypes:['css','js'],urlPrefix:'',defaultType:'js',defaultLoadProperties:{waitLoading:!0,kind:!1,url:'',cdn:!1,attributes:{},multiFileUrl:!1,afterLoad:function(){},beforeLoad:function(){},errorLoading:function(){}},notAllowedUserAttributes:['href','src'],loadedFiles:[],debugMode:!0,allowInit:!1,sanitizeName:function(name){return name.replace(/\/|\.|-/g,"_")},setLoadedFlag:function(name){this.loadedFiles.push(name)},checkLoad:function(script){return this.loadedFiles.indexOf(script)>-1},deepExtend:function(out){out=out||{};for(var i=1;i<arguments.length;i++){var obj=arguments[i];if(!obj)
          continue;if(typeof obj==='object'){for(var key in obj){if(obj.hasOwnProperty(key)){if(typeof obj[key]==='object')
          out[key]=jRun.deepExtend(out[key],obj[key]);else out[key]=obj[key]}}}}
          return out},build:function(){var log=function(message,type){type=type||'log';var stack=new Error().stack.toString().split(/\r\n|\n/);console[type](message,'          ['+stack[1]+']')};if(typeof window!=='undefined'){window.log=log}
          this.firstCall=!0;if(this.plugins.length>0){this.buildPlugIns()}else{this.allowInit=!0}
          return this},buildPlugIns:function(plugins){log(this.plugins);this.plugins=plugins||this.plugins;this.allowInit=!1;this.init(this.plugins,function(){jRun.allowInit=!0})},init:function(urls,callback){if(!(jRun.allowInit||jRun.firstCall)){setTimeout(function(){jRun.init(urls,callback)},100);return!1}
          jRun.firstCall=!1;var waiting=!1,loadFinishCount=0,endsWith=function(str,suffix){if(str===null||suffix===null)
              return!1;return str.indexOf(suffix,str.length-suffix.length)!==-1},loadFinish=function(o){if(!o.multiFileUrl)
              loadFinishCount++;o.afterLoad();if(urls.length===loadFinishCount){if(callback!==undefined&&typeof callback==="function"){if(jRun.debugMode){log("...... Start All Callback ......")}
              callback()}else{var callbackStack=new Error().stack.toString().split(/\r\n|\n/);throw "CallBack should be a function "+(typeof callback)+" given!          ["+callbackStack[1]+"]"}}},loadFile=function(o){if(jRun.debugMode&&o.url===""){var callbackStack=new Error().stack.toString().split(/\r\n|\n/);throw "File url is empty ["+callbackStack[1]+"]"}
              if(!waiting){var realName=jRun.sanitizeName(o.url);if(jRun.checkLoad(realName)){if(jRun.debugMode){log(realName+" : Was already added !");log(jRun.loadedFiles)}
                  loadFinish(o);return!1}
                  jRun.setLoadedFlag(realName);var kind=o.kind?o.kind+"/":"";var type=o.url.split('.').pop();if(jRun.allowedInitTypes.indexOf(type)<0){type=jRun.defaultType}
                  var fileReference=document.createElement((type==="js"?'script':'link'));var url=kind+(endsWith(o.url,"."+type)?o.url:o.url+"."+type);o.beforeLoad();if(type==="js"){fileReference.src=o.cdn?url:jRun.urlPrefix+"Javascript/"+url+"?jVer="+jRun.version}else{fileReference.type="text/css";fileReference.rel="stylesheet";fileReference.href=o.cdn?url:jRun.urlPrefix+"Css/"+url+"?jVer="+jRun.version}
                  jRun.notAllowedUserAttributes.forEach(function(attr){delete o.attributes[attr]});fileReference=jRun.deepExtend(fileReference,o.attributes);fileReference.onload=function(){if(jRun.debugMode){log('Loaded -> '+o.multiFileUrl+" -> "+o.url)}
                      loadFinish(o)};fileReference.onerror=function(){o.errorLoading();if(jRun.debugMode){log('Error loading -> '+o.multiFileUrl+" -> "+o.url)}};document.head.appendChild(fileReference)}else{setTimeout(function(){loadFile(o)},100)}};urls=(typeof urls==="string")?[urls]:urls;urls.forEach(function(url){var options={};options=jRun.deepExtend({},jRun.defaultLoadProperties,url);if(typeof url==="string"){options.url=url;options.kind='Utility'}
              if(Array.isArray(options.url)){options.url.forEach(function(subUrl,index){options.multiFileUrl=(index!==1);options.url=subUrl;loadFile(options)})}else{loadFile(options)}})}}.build();if(typeof module!=='undefined'&&typeof module.exports!=='undefined'){module.exports=jRun}