"use strict";


var avadv = window.avadv || {
	num: 0,
	time: new Date(),
	avRichMedia: false,

	list: [],
	current: null,
	ord: Math.floor(Math.random()*10000000000),
	weights: {'728x90':10,'120x600':10,'300x250':10,'980x50':10,'468x60':3,'125x125':1,'120x120':1},
	noMobile: {'728x90':1,'120x600':1,'468x60':1,'125x125':1,'160x600':1,'0x0':1,'980x50':1,'6x6':1,'2x2':1},
	alias: {'980x50':'728x90'},
	keys: ['google_color_border','google_color_bg','google_color_link','google_color_url','google_color_text','google_color_features'],
	unique: (new Date()).valueOf(),
	sz: {}, ts: {}, ads: {}, ads_c: 0,
	krux: null,

	
	track: function(d) {
		if (typeof d == "number") d = avadv.list[d-1];
		if (!d.tracked) {
			d.tracked = new Date() - avadv.time;
			var f = d.iframe;

			d.args = [
				"av_u="+d.user,
				"avadv=1",
				"expert="+window.ADX_label,
				"avadv_cnt="+d.i,
				"ac="+d.vars.dart_z,
				"sz="+screen.width+"x"+screen.height,
			];
			for (var k in avadv.keys) if (window[avadv.keys[k]]) d.args.push(avadv.keys[k]+'='+window[avadv.keys[k]]);
			for (var k in window) if (k.search(/^avadv_\w+$/) == 0) d.args.push(k+'='+window[k]);

			f.src = "//"+d.dom+"/iframe.ad/"+d.ipc+"/x="+d.x+"/y="+d.y+"/f="+(window.parent == window.self ? 0 : 1)+"/pe=0/"+d.args.join("/");
			if (d.mode == 1) {
				f.setAttribute("width", d.w);
				f.setAttribute("height", d.h);
				f.style.width = d.w+"px";
				f.style.height = d.h+"px";
				f.style.display = "";
			}
		}
	},

	
	iframe: function(d, u) {
		var p = { avadv: "avadv-"+d.i, marginwidth: "0", marginheight: "0", frameborder: "0", scrolling: "no", width: "0", height: "0", style: "width:0px;height:0px;border:0px;display:block" };
		if (u) {
			p.src = u;
			p.width = d.w;
			p.height = d.h
			p.style = 'width:'+d.w+'px;height:'+d.h+'px;border:0px';
		}
		var el = document.createElement("iframe");
		for (var i in p) el.setAttribute(i, p[i]);
		d.append.unshift(el);
		d.iframe = el;
	},

	
	push: function(w,h,u,o,d,i,g,m,p,a,t,e) {
		e = e || document.currentScript || (function(){


			var s = "//ad.altervista.org/js"+(m == 3 ? "2" : "")+".ad/size="+w+"X"+h+"/";
			var ss = document.scripts;
main:			for (var i = 0; i < ss.length; i++) {
				var e = ss[i];
				if (e.src.indexOf(s) == -1) continue;
				for (var j = 0; j < avadv.list.length; j++) {
					if(avadv.list[j].el == e) continue main;
				}
				return e;
			}
		})();

		var d = {
			i: ++avadv.num,
			error: false,
			w: w,
			h: h,
			x: 0,
			y: 0,
			user: u,
			ostr: o,
			dom: d,
			ipc: i,
			size: w+"x"+h,
			group: g,
			mode: m,
			adsense_flag: a,
			tracked: null,
			ppc: !!p,
			trusted: false,
			el: e,
			iframe: null,
			append: [],
			vars: {dart_z:"circuiti",oop:false,track:true,uberTrusted:false,post_h:null,tag:t},
		};
		d.real = (avadv.alias[d.size] || d.size);

		window.av_post = null;

		avadv.list.push(d);
		avadv.current = d;

		if (!u) {
			d.error = true;
		} else if (d.mode == 3) {
			if (!avadv.ads[d.size]) {
				avadv.ads[d.size] = 1;
				++avadv.ads_c;
			}
			if (avadv.ads_c > 3) {
				d.error = true;
				avadv.iframe(d, '//it.altervista.org/adv/banner-error.html?m=016&s='+d.size.toUpperCase());
				console.info("avadv#%d: %s %s E016", d.i, d.size, d.mode);
			}
		} else {
			var sz = d.real+'_'+d.ostr;
			avadv.sz[sz] = avadv.sz[sz] || 0;
			++avadv.sz[sz];

			var ts = d.ostr;
			if (avadv.sz[sz] == 1) {
				avadv.ts[ts] = avadv.ts[ts] || 0;
				avadv.ts[ts] += (avadv.weights[d.real] || 0);
			}

			if (avadv.sz[sz] > 2) {
				d.error = true;
				avadv.iframe(d, '//it.altervista.org/adv/banner-error.html?m=012&s='+d.size.toUpperCase());
				console.info("avadv#%d: %s %s E012", d.i, d.size, d.mode);
			} else if (avadv.ts[ts] > 24) {
				d.error = true;
				avadv.ts[ts] -= avadv.weights[d.real];
				avadv.sz[sz] = undefined;
				avadv.iframe(d, '//it.altervista.org/adv/banner-error.html?m=013&s='+d.size.toUpperCase());
				console.info("avadv#%d: %s %s E013", d.i, d.size, d.mode);
			} else {
				if (d.mode == 2) {
					var div = document.createElement("div");
					div.id = "avadv-gpt-"+d.i;
					d.append.unshift(div);
				}
			}
		}

		if (!d.error) avadv.iframe(d);
	},

	checkRules: function(d) {
		if (d.error || avadv.device == "smartphone" && avadv.noMobile[d.size]) {
			d.mode = -1;
		} else if (!d.vars.uberTrusted && d.mode != 3) {
			return avadv.getExpert().then(function(x){
				if (/BrandProtection(Soft|Hard)/.test(x)) {
					d.mode = -1;
				}
				return d;
			});
		}

		return Promise.resolve(d);
	},

	display: function(d) {
		for (var i = 0; i < d.append.length; i++) avadv._elementAppend(d, d.append[i]);

		d.rich_arg = (window.av_rich_arg || "");
		d.ad_query = (window.av_ad_query || "");


		if (d.mode == 0) {
			if (d.callback) d.callback(d);
		} else if (d.mode == 2) {

			d.sizes = [[d.w, d.h]];
			if (d.vars.size_alt) {
				if (d.vars.size_alt[0] instanceof Array) {
					for (var j = 0; j < d.vars.size_alt.length; j++) d.sizes.push(d.vars.size_alt[j]);
				} else {
					d.sizes.push(d.vars.size_alt);
				}
			}
			d.sizes_str = [];
			for (var i = 0; i < d.sizes.length; i++) d.sizes_str.push(d.sizes[i].join('x'));

			Promise.all([avadv.getGoogletag(), avadv.getExpert()]).then(function(a){
				var googletag = a[0];
				var expert = a[1];
				var slot;
				if (d.vars.oop) {
					slot = googletag.defineOutOfPageSlot('/4758/altervista/'+d.vars.dart_z, 'avadv-gpt-'+d.i);
				} else {
					slot = googletag.defineSlot('/4758/altervista/'+d.vars.dart_z, d.sizes, 'avadv-gpt-'+d.i);
				}
				var personalized = avadv.checkTrackingConsent();


				googletag.pubads().setRequestNonPersonalizedAds(+!personalized);
				slot.addService(googletag.pubads())
				slot.set("page_url", window.location.href)
				slot.setTargeting("av_group", d.group)
				slot.setTargeting("av_adsense_flag", d.adsense_flag)
				slot.setTargeting("avadv_pushdown", window.avadv_pushdown?1:0)
				slot.setTargeting("sz", d.sizes_str.join('|'))
				slot.setTargeting("pos", "top")
				slot.setTargeting("tile", d.i)
				slot.setTargeting("ADX", expert)
				slot.setTargeting("kuid", avadv.krux.u)
				slot.setTargeting("ksg", avadv.krux.s.join(','))
				slot.setTargeting("ord", avadv.ord);
				slot.setTargeting("purl", window.location.href.replace(/(https?:\/\/|www\.|\?refresh|\?utm_source=Zemanta&utm_medium=referral)/g, '').replace(/[\/=!\+\*\#\^~;\(\)\[\]"'<>]/g, '_'));
				if (window.avadv_special) slot.setTargeting("avadv_special", window.avadv_special);

				if (d.rich_arg) {
					var m = d.rich_arg.split(/=/);
					slot.setTargeting(m[0], m[1]);
				}

				if (d.ppc) slot.setTargeting("click", "http://"+d.dom+"/click.pl/"+d.ad_query);

				googletag.pubads().addEventListener("slotRenderEnded", function(e){
					if (e.slot != slot || !avadv.avRichMedia && d.size == "2x2") return;
					var p = { marginwidth: "0", marginheight: "0", frameborder: "0", scrolling: "no", width: "0", height: "0", style: "width:0px;height:0px;border:0px;display:block" };
					var el = document.createElement("iframe");
					for (var i in p) el.setAttribute(i, p[i]);
					el.src = "//"+d.dom+"/index.html?track=GPTslotRenderEnded&ipc="+d.ipc+"&empty="+e.isEmpty+"&track="+d.vars.track+"&size="+d.size;
					avadv._elementAppend(d, el);
				});

				googletag.enableServices();
				googletag.display('avadv-gpt-'+d.i);
			});

		} else if (d.mode == 1 || d.mode == 3) {

			window.ord = avadv.ord;
			window.av_dart_z = d.vars.dart_z;
			window.tilenum = d.i;
			window.av_size = d.size;
			window.av_size_alt = d.vars.size_alt;
			window.av_rich_arg = d.rich_arg;
			window.av_remote_addr = d.dom;
			window.av_extra = window.av_click+window.av_ref_call+';av_group='+d.group+';av_adsense_flag='+d.adsense_flag+";avadv_pushdown="+(window.avadv_pushdown?1:0)+";"+avadv.krux.q;
		}

		if (d.mode >= 0) {

			var bb = d.iframe.getBoundingClientRect();
			d.x = Math.round(bb.left) + window.pageXOffset;
			d.y = Math.round(bb.top) + window.pageYOffset;
			if (console) console.info("avadv#%d: %s %s %dx%d", d.i, d.size, d.mode, d.x, d.y);

			if (d.vars.track) avadv.track(d);
		}

		if (d.mode == 3) {
			avadv.getAdsbygoogle().then(function(adsbygoogle){
				var personalized = avadv.checkTrackingConsent();
				var el = document.createElement("ins");
				el.style.display = "inline-block";
				el.style.width = d.w+"px";
				el.style.height = d.h+"px";
				el.className = "adsbygoogle";
				el.dataset.adSlot = d.vars.google_ad_slot;
				el.dataset.adClient = d.vars.google_ad_client;
				el.dataset.adHost = "pub-9280273811890686";
				el.dataset.adHostChannel = personalized ? "4676317546" : "8232419170";
				avadv._elementAppend(d, el);

				adsbygoogle.requestNonPersonalizedAds = !personalized;
				adsbygoogle.push({element: el});
			});
		}

		if (d.vars.post_h) d.vars.post_h(d);
	},

	
	process: function() {
		for (var c = 0; c < avadv.list.length; c++) {

			var d = avadv.list[c];

			if (d.processed) continue;
			d.processed = true;

			avadv.checkRules(d).then(avadv.display);

		}
	},
	setCallback: function(f) {
		avadv.list[avadv.num-1].callback = f;
	},
	pushHTML: function(s) {
		var div = document.createElement("div");
		div.innerHTML = s;
		avadv.current.append.unshift(div.firstChild);
	},
	pushScript: function(src) {
		var script = document.createElement("script");
		script.type = "text/javascript"
		script.src = src;
		avadv.current.append.unshift(script);
	},

	
	pushVars: function(v) {
		for (var i in v) avadv.current.vars[i] = v[i];
	},

	loadScript: function(src) {
		var el = document.createElement("script");
		el.src = src;
		return new Promise(function(res, rej){
			el.addEventListener("load", res);
			el.addEventListener("error", rej);
			document.head.appendChild(el);
		});
	},

	timeoutPromise: function(timeout, promise) {
		var p = new Promise(function(res, rej){
			var t = setTimeout(rej, timeout);
		});
		return Promise.race([promise, p]);
	},

	checkTrackingConsent: function() {
		if (avadv.trackingConsent) return avadv.trackingConsent;
		if (!(window._iub && _iub.csConfiguration)) return false;

		var iubCfg = _iub.csConfiguration;
		if (new RegExp("(^|;\\s*)_iub_cs-(s"+iubCfg.siteId+"|"+iubCfg.cookiePolicyId+")=").test(document.cookie)) {
			return avadv.trackingConsent = true;
		}

		return false;
	},

	getExpert: function() {
		if (avadv._expert) return avadv._expert;

		var ADX_query = {
			key:       "69abaf6b2f7ca5773c43d4f4659194c6e187d375e984ac967929bcd50f0670bc",
			method:    "descriptor",
			filter:    "default",
			decorator: "template.altervista",
			type:      "URL",
			mode:      "async",
			body:      location.href,
			custom1:   avadv.krux.u,
		};
		var script = avadv.loadScript("//euasync01.admantx.com/admantx/service?request="+encodeURIComponent(JSON.stringify(ADX_query)));
		return avadv._expert = avadv.timeoutPromise(2500, script).
			then(function(){return window.ADX_label},function(){return undefined});
	},

	getGoogletag: function() {
		if (avadv._googletag) return avadv._googletag;

		window.googletag = window.googletag || {};
		googletag.cmd = googletag.cmd || [];

		avadv.loadScript("//www.googletagservices.com/tag/js/gpt.js");
		return avadv._googletag = new Promise(function(res,rej){
			googletag.cmd.push(function(){res(googletag)});
		});
		
	},

	getAdsbygoogle: function() {
		if (avadv._adsbygoogle) return avadv._adsbygoogle;

		window.adsbygoogle = window.adsbygoogle || [];
		return avadv._adsbygoogle = avadv.loadScript("//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js").




			then(function(){return adsbygoogle});
	},

	scriptAppend: function(src) {
		console.warn("avadv.scriptAppend is deprecated, use avadv.loadScript instead");
		console.trace();
		return avadv.loadScript(src);
	},

	
	_elementAppend: function(item, el) {
		if (typeof item == "number") item = avadv.list[item];
		if (item.el.nextSibling) {
			item.el.parentNode.insertBefore(el, item.el.nextSibling);
		} else {
			item.el.parentNode.appendChild(el);
		}
	},

	
	device: (function() {
		var w = screen.width, h = screen.height, a = navigator.userAgent;

		var m = a.match(/\S+ \((.+?)\)/);
		var s = m[1].split(';');

		var t;
		if (s[0].search(/WindowsNT|Macintosh|X11|FreeBSD/) > -1) {
			t = 'desktop';
		} else if (s[0].search(/iPhone|iPod|Symbian|Tizen|BlackBerry|Bada|Maemo|MeeGo|S60|Series40|Series60|J2ME\/MIDP|Nintendo|WindowsMobile/) > -1) {
			t = 'smartphone';
		} else if (s[0].search(/iPad/) > -1) {
			t = 'tablet';
		} else if (s[0].search(/Android|Mobile|WindowsPhone/) > -1 || (s[0].search(/Linux/) > -1 && s[1].search(/Android/) > -1)) {
			if (s[1].search(/Table/) > -1) {
				t = 'tablet';
			} else if (s[1].search(/Mobile/) > -1) {
				t = 'smartphone';
			} else if (w < 550) {
				t = 'smartphone';
			} else if (w > 1024) {
				t = 'desktop';
			} else {
				t = 'tablet';
			}
		} else {
			t = 'desktop';
		}

		return t;
	})()
}


if (document.readyState != "loading" && !document.documentElement.doScroll
	|| document.readyState == "complete") setTimeout(avadv.process);

document.addEventListener("DOMContentLoaded", avadv.process, false);
addEventListener("load", avadv.process, false);


avadv.push(728, 90, "NA", "3678200", "st29.altervista.org", 109555096, 0, 1, 0, 0, "");
if (avadv.num == 1) (function() {

	function krux_r(n) { var m, k = 'kx'+n; if (window.localStorage) return window.localStorage[k] || ""; if (navigator.cookieEnabled) {m = document.cookie.match(k+'=([^;]*)'); return (m && unescape(m[1])) || ""; } return ''; }

	var v = [], s;
	var u = krux_r('user');
	var segments = krux_r('segs') ? krux_r('segs').split(',') : [];
	for (var i = 0; i < segments.length; i++) v.push('ksg=' + segments[i]);
	avadv.krux = { q: "kuid="+u+";"+(v.length ? v.slice(0, 224).join(';') + ';' : ''), s: segments, u: u};

})();

;
