function adriver(e,a,d){if(this instanceof adriver){var c=null;if(typeof(e)=="string"){c=document.getElementById(e)}else{c=e;e=c.id}if(!c){if(!adriver.isDomReady){adriver.onDomReady(function(){new adriver(e,a,d)})}return null}if(adriver.items[e]){return adriver.items[e]}adriver.items[e]=this;this.p=c;this.defer=d;this.prm=adriver.extend(a,{ph:e});this.loadCompleteQueue=new adriver.queue();this.domReadyQueue=new adriver.queue(adriver.isDomReady);var b=this;adriver.initQueue.push(function(){b.init()});return this}else{return arguments.length?adriver.items[e]:adriver.items}}adriver.prototype={isLoading:0,init:function(){},loadComplete:function(){},domReady:function(){},onLoadComplete:function(a){var b=this;this.loadCompleteQueue.push(function(){a.call(b)});return this},onDomReady:function(a){this.domReadyQueue.push(a);return this},reset:function(){this.loadCompleteQueue.flush();this.domReadyQueue.flush(adriver.isDomReady);return this}};adriver.loadScript=function(c){try{c=c.replace(/!\[rnd\]/,Math.round(Math.random()*9999999));var a=document.getElementsByTagName("head")[0];var b=document.createElement("script");b.setAttribute("type","text/javascript");b.setAttribute("charset","windows-1251");b.setAttribute("src",c);b.onreadystatechange=function(){if(/loaded|complete/.test(this.readyState)){a.removeChild(b)}};b.onload=function(f){a.removeChild(b)};a.insertBefore(b,a.firstChild)}catch(d){}};adriver.extend=function(){var b=arguments[0];for(var d=1,a=arguments.length;d<a;d++){var e=arguments[d];for(var c in e){if(e.hasOwnProperty(c)){if(e[c] instanceof Object){if(b[c]){adriver.extend(b[c],e[c])}else{b[c]=adriver.extend(e[c] instanceof Array?[]:{},e[c])}}else{b[c]=e[c]}}}}return b};adriver.queue=function(a){this.q=[];this.flag=a?true:false};adriver.queue.prototype={push:function(a){this.flag?a():this.q.push(a)},unshift:function(a){this.flag?a():this.q.unshift(a)},execute:function(a){var b;var c;while(b=this.q.shift()){b()}if(a==c){a=true}this.flag=a?true:false},flush:function(a){this.q.length=0;this.flag=a?true:false}};adriver.Plugin=function(a){if(this instanceof adriver.Plugin){if(a&&!adriver.plugins[a]){this.id=a;this.q=new adriver.queue();this.loadingStatus=0;adriver.plugins[a]=this;return this}}return adriver.plugins[a]};adriver.Plugin.prototype={load:function(){this.loadingStatus=1;var b=this.id.substr(this.id.lastIndexOf(".")+1);var a=adriver.pluginPath[b]||adriver.defaultMirror+"/plugins/";adriver.loadScript(a+this.id+".js")},loadComplete:function(){this.loadingStatus=2;this.q.execute();return this},onLoadComplete:function(a){this.q.push(a);return this}};adriver.Plugin.require=function(){var d=this,b=0;this.q=new adriver.queue();for(var c=0,a=arguments.length;c<a;c++){var e=new adriver.Plugin(arguments[c]);if(e.loadingStatus!=2){b++;e.onLoadComplete(function(){if(b--==1){d.q.execute()}});if(!e.loadingStatus){e.load()}}}if(!b){this.q.execute()}};adriver.Plugin.require.prototype.onLoadComplete=function(a){this.q.push(a);return this};adriver.onDomReady=function(a){adriver.domReadyQueue.push(a)};adriver.onBeforeDomReady=function(a){adriver.domReadyQueue.unshift(a)};adriver.domReady=function(){adriver.isDomReady=true;adriver.domReadyQueue.execute()};adriver.checkDomReady=function(b){try{var g=document,a=window.onload;if(/WebKit/i.test(navigator.userAgent)){(function(){/loaded|complete/.test(g.readyState)?b():setTimeout(arguments.callee,100)})()}else{if(g.addEventListener){g.addEventListener("DOMContentLoaded",b,false)}else{if(g.all&&!window.opera){document.write("<script id=__onDOMContentLoaded defer src=//:><\/script>");document.getElementById("__onDOMContentLoaded").onreadystatechange=function(){if(this.readyState=="complete"){b()}}}}}window.onload=function(){if(a){a()}b()}}catch(c){}};adriver.onLoadComplete=function(a){adriver.loadCompleteQueue.push(a);return adriver};adriver.loadComplete=function(){adriver.loadCompleteQueue.execute();return adriver};adriver.setDefaults=function(a){adriver.extend(adriver.defaults,a)};adriver.setOptions=function(a){adriver.extend(adriver.options,a)};adriver.setPluginPath=function(a){adriver.extend(adriver.pluginPath,a)};adriver.start=function(){adriver.version="2.3.1";adriver.items={};adriver.defaults={tail256:escape(document.referrer||"unknown")};adriver.options={};adriver.plugins={};adriver.pluginPath={};adriver.redirectHost="http://ad.adriver.ru";adriver.defaultMirror="http://content.adriver.ru";adriver.isDomReady=false;adriver.domReadyQueue=new adriver.queue();adriver.loadCompleteQueue=new adriver.queue();adriver.initQueue=new adriver.queue();adriver.checkDomReady(adriver.domReady);new adriver.Plugin.require("autoUpdate.adriver").onLoadComplete(function(){adriver.initQueue.execute()})};adriver.start();
