(function() {
  var JSON;if(!JSON){JSON={}}(function(){'use strict';function f(n){return n<10?'0'+n:n}if(typeof Date.prototype.toJSON!=='function'){Date.prototype.toJSON=function(key){return isFinite(this.valueOf())?this.getUTCFullYear()+'-'+f(this.getUTCMonth()+1)+'-'+f(this.getUTCDate())+'T'+f(this.getUTCHours())+':'+f(this.getUTCMinutes())+':'+f(this.getUTCSeconds())+'Z':null};String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(key){return this.valueOf()}}var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'},rep;function quote(string){escapable.lastIndex=0;return escapable.test(string)?'"'+string.replace(escapable,function(a){var c=meta[a];return typeof c==='string'?c:'\\u'+('0000'+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+string+'"'}function str(key,holder){var i,k,v,length,mind=gap,partial,value=holder[key];if(value&&typeof value==='object'&&typeof value.toJSON==='function'){value=value.toJSON(key)}if(typeof rep==='function'){value=rep.call(holder,key,value)}switch(typeof value){case'string':return quote(value);case'number':return isFinite(value)?String(value):'null';case'boolean':case'null':return String(value);case'object':if(!value){return'null'}gap+=indent;partial=[];if(Object.prototype.toString.apply(value)==='[object Array]'){length=value.length;for(i=0;i<length;i+=1){partial[i]=str(i,value)||'null'}v=partial.length===0?'[]':gap?'[\n'+gap+partial.join(',\n'+gap)+'\n'+mind+']':'['+partial.join(',')+']';gap=mind;return v}if(rep&&typeof rep==='object'){length=rep.length;for(i=0;i<length;i+=1){if(typeof rep[i]==='string'){k=rep[i];v=str(k,value);if(v){partial.push(quote(k)+(gap?': ':':')+v)}}}}else{for(k in value){if(Object.prototype.hasOwnProperty.call(value,k)){v=str(k,value);if(v){partial.push(quote(k)+(gap?': ':':')+v)}}}}v=partial.length===0?'{}':gap?'{\n'+gap+partial.join(',\n'+gap)+'\n'+mind+'}':'{'+partial.join(',')+'}';gap=mind;return v}}if(typeof JSON.stringify!=='function'){JSON.stringify=function(value,replacer,space){var i;gap='';indent='';if(typeof space==='number'){for(i=0;i<space;i+=1){indent+=' '}}else if(typeof space==='string'){indent=space}rep=replacer;if(replacer&&typeof replacer!=='function'&&(typeof replacer!=='object'||typeof replacer.length!=='number')){throw new Error('JSON.stringify')}return str('',{'':value})}}if(typeof JSON.parse!=='function'){JSON.parse=function(text,reviver){var j;function walk(holder,key){var k,v,value=holder[key];if(value&&typeof value==='object'){for(k in value){if(Object.prototype.hasOwnProperty.call(value,k)){v=walk(value,k);if(v!==undefined){value[k]=v}else{delete value[k]}}}}return reviver.call(holder,key,value)}text=String(text);cx.lastIndex=0;if(cx.test(text)){text=text.replace(cx,function(a){return'\\u'+('0000'+a.charCodeAt(0).toString(16)).slice(-4)})}if(/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,'@').replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']').replace(/(?:^|:|,)(?:\s*\[)+/g,''))){j=eval('('+text+')');return typeof reviver==='function'?walk({'':j},''):j}throw new SyntaxError('JSON.parse')}}}());;
  var P, Req, root, zItems;

  root = typeof exports !== "undefined" && exports !== null ? exports : this;

  root.adosRun = function() {
    while (window.ados.run !== void 0 && window.ados.run.length > 0) {
      window.ados.run[0].call();
      ados.run.splice(0, 1);
    }
    return setTimeout((function() {
      return adosRun();
    }), 100);
  };

  root.cssLoad = function(css) {
    var s, stylenode;
    s = document.createElement("style");
    document.getElementsByTagName("head")[0].appendChild(s);
    if (!!window.ActiveXObject) {
      return document.styleSheets[document.styleSheets.length - 1].cssText = css;
    } else {
      stylenode = document.createTextNode(css);
      return s.appendChild(stylenode);
    }
  };

  root.azHtmlLoad = function(div, content) {
    var adzerkDiv;
    adzerkDiv = document.getElementById(div);
    return adzerkDiv.innerHTML = content;
  };

  root.azScriptSRCLoad = function(div, script) {
    var adzerkDiv, newScript;
    newScript = document.createElement("script");
    newScript.type = "text/javascript";
    newScript.src = script;
    adzerkDiv = document.getElementById(div);
    return adzerkDiv.appendChild(newScript);
  };

  root.ados_async_load = function(src) {
    var s, z;
    z = document.createElement("script");
    z.type = "text/javascript";
    z.async = true;
    z.src = src;
    s = document.getElementsByTagName("script")[0];
    return s.parentNode.insertBefore(z, s);
  };

  root.azScriptInlineLoad = function(div, script, interval) {
    var adzerkDiv, newScript;
    newScript = document.createElement("script");
    newScript.type = "text/javascript";
    if (/msie/.test(navigator.userAgent.toLowerCase())) {
      newScript.text = script;
    } else {
      newScript.innerHTML = script;
    }
    adzerkDiv = document.getElementById(div);
    return adzerkDiv.appendChild(newScript);
  };

  root.azLoad = function(div, code) {
    var adzerkDiv;
    adzerkDiv = document.getElementById(div);
    if (adzerkDiv) {
      return code();
    } else {
      return setTimeout((function() {
        return azLoad(div, code);
      }), 100);
    }
  };

  root.zshow = function(div) {
    if (zItems[div]) return document.write(zItems[div]);
  };

  root.ados_addInlinePlacement = function(accountId, siteId, size) {
    var chars, i, ran, randomName;
    chars = "ABCDEFGHIJKLMNOPQRSTUVWXTZ";
    randomName = "";
    i = 0;
    while (i < 12) {
      ran = Math.floor(Math.random() * chars.length);
      randomName += chars.substring(ran, ran + 1);
      i++;
    }
    return ados_addPlacement(accountId, siteId, randomName, size);
  };

  root.ados_add_placement = function(accountId, siteId, name, size) {
    return ados_addPlacement(accountId, siteId, name, size);
  };

  root.ados_addPlacement = function(accountId, siteId, name, size) {
    var placement;
    placement = new P();
    placement.A = accountId;
    placement.S = siteId;
    placement.D = name;
    placement.AT = size;
    ados_addPlacementObject(placement);
    return placement;
  };

  root.ados_loadDiv = function(name) {
    if (!window.ados.isAsync) return zshow(name);
  };

  root.ados_setKeywords = function(keywords) {
    return window.ados.keywords = keywords;
  };

  root.ados_setNoTrack = function() {
    return window.ados.isNoTrack = true;
  };

  root.ados_setDomain = function(domain) {
    return window.ados.domain = domain;
  };

  root.ados_log = function(text) {
    if (window.console) return console.info(text);
  };

  root.ados_addPlacementObject = function(placement) {
    if (!window.ados.placements) window.ados.placements = new Array();
    return window.ados.placements.push(placement);
  };

  root.ados_refresh = function(placement, seconds, again) {
    ados_log('triggering refresh of:' + placement.D);
    ados_addPlacementObject(placement);
    ados_load();
    if (again) {
      return setTimeout((function() {
        return ados_refresh(placement, seconds, true);
      }), seconds * 1000);
    }
  };

  root.ados_loadResults = function(results) {
    var i, len, _results;
    len = results.length;
    i = 0;
    _results = [];
    while (i < len) {
      eval(results[i].adCode);
      _results.push(i++);
    }
    return _results;
  };

  Req = function() {
    this.Placements = window.ados.placements;
    window.ados.placements = new Array();
    this.Keywords = escape(ados.keywords);
    this.Referrer = escape(document.referrer);
    this.IsAsync = window.ados.isAsync;
    this.IsNoTrack = window.ados.isNoTrack;
    return this;
  };

  P = function() {
    return {
      setZone: function(zoneid) {
        this.Z = zoneid;
        return this;
      },
      setClickUrl: function(clickurl) {
        this.ClickUrl = encodeURIComponent(clickurl);
        return this;
      },
      setCampaignId: function(campaignId) {
        this.CampaignId = campaignId;
        return this;
      },
      setFlightId: function(flightId) {
        this.FlightId = flightId;
        return this;
      },
      setFlightCreativeId: function(flightCreativeId) {
        this.FlightCreativeId = flightCreativeId;
        return this;
      },
      setRefresh: function(seconds) {
        var placement;
        placement = this;
        setTimeout((function() {
          return ados_refresh(placement, seconds, true);
        }), seconds * 1000);
        return this;
      },
      loadInline: function() {
        ados.isAsync = false;
        ados_load();
        document.write("<div id=\"" + this.D + "\"><script type=\"text/javascript\">ados_loadDiv(\"" + this.D + "\");</script></div>");
        return this;
      }
    };
  };

  root.ados_load = function() {
    var domain, proto, req, src;
    domain = window.ados.domain || "engine.adzerk.net";
    if (ados.isAsync !== false) window.ados.isAsync = true;
    proto = "http";
    if (document.location.protocol === "https:") proto = "https";
    src = proto + "://" + domain + "/ados?t=" + new Date().getTime() + "&request=";
    req = new Req();
    if (!window.ados.isAsync) {
      return document.write("<script src=\"" + src + encodeURI(JSON.stringify(req)) + "\"></script>");
    } else {
      return ados_async_load(src + JSON.stringify(req));
    }
  };

  root.ados_loadInline = function(accountId, siteId, adtype) {
    var chars, i, ran, randomName;
    chars = "ABCDEFGHIJKLMNOPQRSTUVWXTZ";
    randomName = "";
    i = 0;
    while (i < 12) {
      ran = Math.floor(Math.random() * chars.length);
      randomName += chars.substring(ran, ran + 1);
      i++;
    }
    document.write("<div id=\"" + randomName + "\"></div>");
    return ados_add_placement(accountId, siteId, randomName, adtype);
  };

  root.ados_loadPassback = function(div, passbacks) {
    if (!window.ados.passbacks) window.ados.passbacks = {};
    if (!window.ados.currentPassback) window.ados.currentPassback = {};
    window.ados.passbacks[div] = passbacks;
    return ados_execPassback(div, passbacks[0]);
  };

  root.ados_passback_next = function(div, id) {
    var flight, index, next, _len;
    flight = void 0;
    index = void 0;
    next = void 0;
    _len = void 0;
    index = 0;
    _len = window.ados.passbacks[div].length;
    while (index < _len) {
      flight = window.ados.passbacks[div][index];
      if (flight.FlightId === id) {
        next = index + 1;
        if (next === window.ados.passbacks[div].length) return null;
        return window.ados.passbacks[div][next];
      }
      index++;
    }
    throw new Error("last passback - passed back");
  };

  root.ados_findPassback = function(div, id) {
    var flight, index, _len;
    flight = void 0;
    index = void 0;
    _len = void 0;
    index = 0;
    _len = window.ados.passbacks[div].length;
    while (index < _len) {
      flight = window.ados.passbacks[div][index];
      if (flight.FlightId === id) return flight;
      index++;
    }
    throw new Error("flight not found");
  };

  root.ados_passback = function(div, flightId) {
    var next;
    ados_log('received passback for div:' + div + ' and flightId:' + flightId);
    next = ados_passback_next(div, flightId);
    return ados_execPassback(div, next);
  };

  root.ados_execPassback = function(div, passback) {
    ados_log('loading flight:' + passback.FlightId);
    window.ados.currentPassback[div] = passback.FlightId;
    return eval(passback.Script);
  };

  root.ados_frameLoaded = function(div, flightId) {
    var flight, ifrm;
    ifrm = document.getElementById("ados_frame_" + flightId);
    if (ifrm.readyState !== "complete" && ifrm.readyState !== void 0) {
      setTimeout((function() {
        return ados_frameLoaded(div, flightId);
      }), 100);
    }
    ados_log('frame is loaded for div: ' + div + ' and flightId:' + flightId);
    if (window.ados.currentPassback && window.ados.currentPassback[div] === flightId) {
      ados_log('writing pixel for flightId:' + flightId);
      flight = ados_findPassback(div, flightId);
      return ados_passbackWritePixel(div, flight.VeriPixel);
    } else if (window.ados.currentPassback && window.ados.currentPassback[div]) {
      return ifrm.parentNode.removeChild(ifrm);
    }
  };

  root.ados_passbackWritePixel = function(div, url) {
    var adzerkDiv, pixel;
    ados_log('writing pixel for div:' + div + ' and pixel:' + url);
    adzerkDiv = document.getElementById(div);
    pixel = document.createElement('img');
    pixel.setAttribute("height", "0px");
    pixel.setAttribute("width", "0px");
    pixel.setAttribute("src", url);
    return adzerkDiv.appendChild(pixel);
  };

  root.ados_loadFIframe = function(div, content, flightid, height, width) {
    var adzerkDiv, ifrm;
    adzerkDiv = document.getElementById(div);
    ifrm = document.createElement("iframe");
    ifrm.id = "ados_frame_" + flightid;
    ifrm.frameBorder = 0;
    ifrm.scrolling = "no";
    ifrm.noresize = "noresize";
    ifrm.marginheight = 0;
    ifrm.marginwidth = 0;
    if (height !== 0) ifrm.height = height;
    if (width !== 0) ifrm.width = width;
    adzerkDiv.appendChild(ifrm);
    ifrm.onload = function() {
      return ados_frameLoaded(div, flightid);
    };
    ifrm.contentWindow.contents = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\"><html><body style=\"margin:0px;padding:0px;\"><script type=\"text/javascript\">var divName = \"" + div + "\";var inFIF=true;var inDapIF = true;</script>" + unescape(content) + "</body></html>";
    return ifrm.src = "javascript:window[\"contents\"]";
  };

  window.ados = window.ados || {};

  window.ados.run = window.ados.run || [];

  zItems = [];

  adosRun();

}).call(this);

