var SERGEYCHE=SERGEYCHE||{tools:{}};SERGEYCHE.tools.add_js=function(url,bDefer) {var scrptElement=document.createElement("script");scrptElement.setAttribute("type","text/javascript");scrptElement.setAttribute("language","JavaScript");scrptElement.setAttribute("src",url);if(bDefer) {scrptElement.setAttribute("defer",true);} document.getElementsByTagName("head")[0].appendChild(scrptElement);};SERGEYCHE.remoteloader={loaders:{},callbacks:{},detach:function(request_id) {var loader=this.loaders[request_id];if(loader!==null) {delete this.loaders[request_id];} return loader;},cancel:function(request_id) {var loader=this.detach(request_id);if(!loader) {return;} if(typeof loader.onCancel==="function") {loader.onCancel(request_id);}},load:function(loader,request_id) {if(typeof loader==='undefined'||typeof loader.url==='undefined'||typeof loader.onSuccess!=='function') {throw('Loader object must have at least url property and onSuccess event handler');} this.loaders[request_id]=loader;this.callbacks[request_id]=function(request_id) {return function(data){var r=request_id;delete SERGEYCHE.remoteloader.callbacks[r];return SERGEYCHE.remoteloader.callback(data,r);};}(request_id);if(loader.timeout>0) {setTimeout("SERGEYCHE.remoteloader.timeout('"+request_id+"')",loader.timeout);} loader.request_id=request_id;SERGEYCHE.tools.add_js(loader.url);},callback:function(callback_data,request_id) {var loader=this.detach(request_id);if(!loader) {return;} if(typeof loader.onSuccess==="function") {loader.onSuccess(callback_data,request_id);}},timeout:function(request_id) {var loader=this.detach(request_id);if(!loader) {return;} if(typeof loader.onFailure==="function") {loader.onFailure(request_id);}}};