// Variable initialization

var sr,cn,md,tr,ct,ac,ck,a,s;
var hi = new Array();
var co = new Array();
var sa = new Array('m4n','daisycon','zanox');
var al = new Array('sr','cn','md','tr','ct');
var c = document.cookie.split(';');
var e = new Date(); e.setDate(e.getDate()+90);
var n = new Date();
var y = n.getFullYear()+(n.getMonth()+1<10?'0':'')+(n.getMonth()+1)+(n.getDate()<10?'0':'')+n.getDate();





// Misc functions

function inArray(ar,va) {
	for(var i=0; i < ar.length; i++) {
		if(ar[i] == va && va.length > 0)
			return true;
	} 	
	return false;
}


function isCompletedOrder(order_id) {
	return (inArray(co,order_id));
}


function addEvent(a,e,o){
	if(document.addEventListener) {
		a.removeEventListener(e,o,false);
		a.addEventListener(e,o,false);
	}
	else {
		a.detachEvent('on'+e,o);
		a.attachEvent('on'+e,o);
	}
}





// Make sure no virtual pageviews are tracked twice

var vp = new Array('optionspostpaid', 'inputpersonalinfo', 'savepersonalinfo', 'signuppayment', 'signupsavepaymentdetails', 'signupoverview', 'completesignupwithpayment', 'blackberry/inschrijven');
var isVp = false;

for(var i=0; i < vp.length; i++) {
	if (window.location.pathname.toLowerCase().search(vp[i]) != -1)
		isVp = true;
}

if (!isVp)
	_gaq.push(['_trackPageview']);





// Track javascript errors

function trackError (action, error) {
	try { _gaq.push(['_trackEvent', 'Javascript Error', ((action != 'Other') ? 'Action: ' + action : 'URL: ' + window.location.pathname.toLowerCase()), error]); } catch(e) { }
}


window.onerror = function (message, url, lineNo) {
	if (lineNo == '0' && message == 'Script Error')
		return true;
	else if (navigator.userAgent.search('Firefox') != -1 && (message == 'Error loading script' || message.search('Location.toString') != -1))
		return true;
	else if (lineNo === 'undefined' && message == '[object Event]')
		return true;
	else if (message.search('toolbar.xul') != -1)
		return true;
	else {
		trackError('Other', 'Line #: ' + lineNo + ', Error: ' + message);
		return false;
	}
}





// Set history of source data

for (var i=0; i < c.length; i++) {
	if (c[i].search("__utmz=") != -1) {
		c[i] = unescape(c[i]);
		var v = c[i].substring(c[i].search("utmcsr="),c[i].length).split('|');
		for (var x=0; x < v.length; x++) {
			var d = v[x].split('=');
			if (inArray(al,d[0].substring(4,6)))
				eval(d[0].substring(4,6) + ' = encodeURIComponent(unescape(d[1]))');
		}
		if (c[i].search("utmgclid=") != -1) {
			sr = 'google';
			md = 'cpc';
		}
		ac = [y,sr,cn,md,tr,ct].join('|');
	}
	if (c[i].search("__shist=") != -1)
		hi = c[i].split('=')[1].split('/');
	if (c[i].search("__scord=") != -1) 
		co = c[i].split('=')[1].split('/');
	if (c[i].search("rator_logged_in=") != -1 && c[i].split('=')[1] == 'true')
		_gaq.push(['_setCustomVar', 1, 'Klant-Ingelogged', 'Ja', 1]);
}
if (hi[hi.length-1] != ac) {
	hi.push(ac);
	document.cookie = "__shist=" + hi.join('/') + "; expires="+e.toGMTString() + "; path=/; domain=simyo.nl;";
}





// Track actions in order street

function trackAction (product, step, action, orderID, var1, var2, var3, var4) {

	if (action == 'Yahoo Conversion') {
		window.ysm_customData = new Object();
		window.ysm_customData.conversion = "transId=,currency=,amount=";
		var ysm_accountid = var1;
		document.write("<scr" + "ipt language='JavaScript' type='text/javascript' " + "src=//" + "srv3.wa.marketingsolutions.yahoo.com" + "/script/ScriptServlet" + "?aid=" + ysm_accountid + "></scr" + "ipt>");
	}

	try {
		if (action == 'Virtual Pageview') {
			loc = window.location;
			url = loc.protocol + '//' + loc.hostname + loc.pathname;

			if (document.referrer.toLowerCase().substring(0, url.length) != url.toLowerCase())
				_gaq.push(['_trackPageview',var1]);
		}

		else if (action == 'Affiliate Conversion') {
			for (var i=0; i < hi.length; i++) {
				if (inArray(sa,hi[i].split('|')[1]))
					s = hi[i].split('|')[1];
			}
			m4n_img = '<img src="https://leads.m4n.nl/_l?lpid=' + var1 + '&description1=' + orderID + '&description2=&description3=&price=0.00" width="1" height="1" border="0">';
			daisycon_img = '<img src="https://www.ds1.nl/t/?si=771&ti=' + orderID + '&oa=' + var4 + '&om=' + var4 + '&ai=' + var2 + '&pc=&gs=&gb=" width="1" height="1" border="0"/>';
			zanox_img = '<img src="https://ad.zanox.com/pps/?7801C24291174&mode=[[2]]&CID=[[' + var3 + ']]&CustomerID=[[1]]&OrderID=[[' + orderID + ']]&CurrencySymbol=[[EUR]]&TotalPrice=[[1.00]]&PartnerID=[[xxx]]" width="1" height="1" border="0">';

			if (inArray(sa,s))
				eval('document.write('+s+'_img);')
			else
				for (var i=0; i < sa.length; i++) { eval('document.write('+sa[i]+'_img);'); };
		}

		else if (action == 'MindShare Conversion')
			document.write('<iframe frameborder="0" height="1"  width="1" src="https://noah.reddion.com/container/clients/GEP-C-511/cs.asp?CID=' + var1 + '&ref=' + escape(document.referrer) + '&orderid=' + var2 + '"></iframe>');

		else if (action == 'Custom Variables')
			_gaq.push(['_setCustomVar', var1, var2, var3, var4]);

		else if (action == 'Optimizer Conversion')
			_gaq.push(['gwo._trackPageview', var1]);
		
		_gaq.push(['_trackEvent', 'Meetscripts', product + ' - ' + step + ' - ' + action, (orderID.toString().length > 1 ? orderID : '')]);
	}
	catch(error) { trackError(product + ' - ' + step + ' - ' + action, error.message + (orderID.toString().length > 1 ? ' (OrderID: ' + orderID + ')' : '')); }

	if (!isCompletedOrder(orderID) && orderID.toString().length > 1) {
		co.push(orderID);
		document.cookie = "__scord=" + co.join('/') + ";expires="+e.toGMTString() + "; path=/; domain=simyo.nl;";
	}
}



// Set cross-domain linkers

function addMyClangLink() {
	_gaq.push(['_link', 'http://www.myclang.com']); return false;
}

function addOnClickLinks() {
	a = document.getElementsByTagName('A');
	for(i=0;i<a.length;i++) {
		if (a[i].href.search("myclang.com") != -1)
			addEvent(a[i], 'click', addMyClangLink);
	}
}

//addEvent(window, 'load', addOnClickLinks);
