function VastCPA() {
	var secprefix = 'http';
	if (window.location.href.indexOf('https://') != -1){secprefix = 'https';}
	this.baseUrl = secprefix+'://analytics.vast.com/cpa';
	var wanted_cookie = this.getWantedCookieName();
	var a_referrer = escape(document.referrer);
	var a_url = escape(window.location.href);
	var u_agent = escape(navigator.userAgent);
	this.request({'cname':wanted_cookie, 'aref':a_referrer, 'aurl':a_url, 'uagent':u_agent});
}
VastCPA.prototype.doRequest = function(uri) {
	this.removeOldRequest();
	this.insertScript({'id':'current_request', 'src':uri, 'language':'JavaScript'});
}
VastCPA.prototype.removeOldRequest = function() {
	var old_req = document.getElementById('current_request');
	if (old_req) {
		old_req.parentNode.removeChild(old_req);
	}
}
VastCPA.prototype.insertScript = function(params, elem) {
	if (params) {
		if (!elem) {
			var scr = document.createElement('script');
		}else{
			var scr = document.createElement(elem);
		}
		for (var i in params) {
			if (i == 'text') {
				scr.innerHTML = params[i];
			}else{
				scr.setAttribute(i, params[i]);
			}
		}
		var head = document.getElementsByTagName('head')[0];
		head.appendChild(scr);
	}
}
VastCPA.prototype.request = function(params) {
	var url = this.baseUrl+'?';
	var first = true;
	for (var i in params) {
		if (first) {first = false;}else{url += '&'}
		url += i+'='+params[i];
	}
	this.doRequest(url);
}
VastCPA.prototype.extractDomainName = function(){
	var regex = new RegExp("https{0,1}:\/\/([^\/]+)", "i");
	var matched = regex.exec(window.location.href);
	if (matched[1]){
		var mtch = matched[1].match(/[^\.]+\.[\w]+$/i);
		if (mtch[0]){
			return mtch[0];
		}
	}
	return false;
}
VastCPA.prototype.getWantedCookieName = function(){
	var dn = this.extractDomainName();
	return 'vast_cpa_'+dn.replace(/[\.]/gi, '_');
}
var vastcpa = new VastCPA();



