var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));

var ga_loc = location.hostname;

var pageTracker;

var extras = false;
var extraName = new Array("ga_campaign", "ga_keyword", "ga_ad_content", "ga_adgroup"); // extra cookie names
//var queryName = new Array("cpca", "kw", "ga_ad_content", "cpag");	// query parameter names
var queryName = extraName;	// By default, query parameter names and extra cookie names are indentical
var utmName = new Array("ga_source", "ga_medium", "ga_campaign", "ga_keyword", "ga_ad_content", "ga_search_query");	// fieldname list
var utmValue = new Array();		// store field values here
var formListAfter = new Array("","_header","_main","_main2");
var formListBefore = new Array("","custom ga_","ga ");

function createCookie(name,value) {	// creates a 6 month cookie
	var date = new Date();
	date.setTime(date.getTime()+15768000000);
	var expires = "; expires="+date.toGMTString();
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {		// function to read cookie
	var nameRegex = RegExp("(?:;\\s|^)" + name + "=([^;]+)");	// match name of cookie and store value in $1
	nameValue = nameRegex.exec(document.cookie);				
	if(nameValue) {	
		return nameValue[1];
	} else {
		return null;
	}
}

function readSubCookie(name, vari) {	// function to read subcookie of passed value of __utmz
	var nameRegex = RegExp("(?:\\||\\.)" + name + "=([^|]+)");
	nameValue = nameRegex.exec(vari);
	if(nameValue) {
		return nameValue[1];
	} else {
		return " ";
	}
}

function readQuery(name) { 	// function to read query parameters of query string
	var nameRegex = RegExp("(?:\\?|&)" + name + "=([^&]+)");
	nameValue = nameRegex.exec(location.search);
	if(nameValue) {
		return nameValue[1];
	} else {
		return null;
	}
}
	

function extraCookies() {	// creates and renews supplemental cookies 
	for(i=0;i<extraName.length;i++) {
		var oldCookieValue = readCookie(extraName[i]);
		var newCookieValue = readQuery(queryName[i]);
		if(newCookieValue || (oldCookieValue && !(readCookie("__utmb") || readCookie("__utmc")))) {
				createCookie(extraName[i], newCookieValue);
		}
	}
	extras = true;
}



function parseCookies() {
	var c2 = readCookie("__utmz"); 			// This gets the cookie
	var gclid = readSubCookie("utmgclid",c2);	// read utmgclid subcookie
	if(gclid!=" ") {		// read values for adwords
		
		utmValue[0] = "google";
		utmValue[1] = "cpc";
		utmValue[2] = "google";
		utmValue[3] = " ";
		utmValue[4] = " ";
		
		if(extras) {	// when supplemental cookies are enabled
			for(i=2;i<5;i++) { 
				var extraValue = readCookie(utmName[i].replace(/\s/g,"_").toLowerCase()) // check for each cookie
				if(extraValue) {
					utmValue[i] = extraValue;
				}
			}
		} 
	} else {	// read values for non-adwords
		utmValue[0] = readSubCookie("utmcsr", c2);
		utmValue[1] = readSubCookie("utmcmd", c2);
		utmValue[2] = readSubCookie("utmccn", c2);
		utmValue[3] = readSubCookie("utmctr", c2);
		utmValue[4] = readSubCookie("utmcct", c2);
	}
	
	utmValue[5] = " ";
	if(extras) {
		utmName[6] = "ga_adgroup";
		utmValue[6] = " ";
	}
	
	if(utmValue[1]=="cpc") {
		searchQuery = readCookie("__utmv");
		if(searchQuery) {
			searchValue = /^[0-9]+\.(.+)/.exec(searchQuery);
			if(searchValue) {
				utmValue[5] = searchValue[1];
			}
		}
		
		if(extras) {
			var adgroup = readCookie("ga_adgroup");
			if(adgroup) {
				utmValue[6] = adgroup;
			}
		}
	}
}


function modifyForm(name) {
	if(name) { // if adding hidden fields to named form
		if(document.forms[name]) {
			parseCookies(); 		// read cookies and set values
			ga_Limiter();
			for(i=0;i<utmName.length;i++) {
				var gaField = document.createElement("input");
				gaField.setAttribute("name", utmName[i]);
				gaField.setAttribute("value",utmValue[i]);
				gaField.setAttribute("type","hidden");
				document.forms[name].appendChild(gaField);
			}
		}
	} else { // if modifying existing fields
		parseCookies(); 		// read cookies and set values
		ga_Limiter();
		for(i=0;i<formListAfter.length;i++) {
			for (l=0;l<formListBefore.length;l++) {
				for(j=0;j<utmName.length;j++) {
					if(document.getElementById(formListBefore[l] + utmName[j].replace(/\s/g,"_") + formListAfter[i])) { 
						document.getElementById(formListBefore[l] + utmName[j].replace(/\s/g,"_") + formListAfter[i]).value = utmValue[j]; 
					}
					var fieldName=document.getElementsByName(formListBefore[l] + utmName[j].replace(/\s/g,"_") + formListAfter[i]);
					if(fieldName) {
						for(k=0;k<fieldName.length;k++) {
							fieldName[k].value = utmValue[j];
						}
					}
				}
			}
		}
	}
}

function ga_Limiter(){
	if (utmValue[0] && utmValue[0].length > 30){
		utmValue[0] = utmValue[0].substring(0,30);
	}
	if (utmValue[1] && utmValue[1].length > 10){
		utmValue[1] = utmValue[1].substring(0,10);
	}
	if (utmValue[2] && utmValue[2].length > 50){
		utmValue[2] = utmValue[2].substring(0,50);
	}
	if (utmValue[3] && utmValue[3].length > 60){
		utmValue[3] = utmValue[3].substring(0,60);
	}
	if (utmValue[5] && utmValue[5].length > 60){
		utmValue[5] = utmValue[5].substring(0,60);
	}
	if (utmValue[6] && utmValue[6].length > 30){
		utmValue[6] = utmValue[6].substring(0,30);
	}
}

function noPercent(x) {
	x = unescape(x);
	return x.replace(/\+/g, " ").replace(/(^ +| +$)/g, "");
}

function sleuth() {
	var cpcValue = "cpc - ", userdef, cpcregexp, ref, re, searchq;
	if (location.search.indexOf("gclid") !== -1 || location.search.indexOf("cpc") !== -1) {	
		userdef = readCookie("__utmv");
		cpcregexp = new RegExp(/^cpc - /);
		if (!userdef || !cpcregexp.exec(userdef)) {
			ref = document.referrer;
			re = new RegExp(/(?:\?|&)(?:q|p|query|encquery|qt|terms|rdata|qs|wd|text|szukaj|k|searchExpr|search_for|string|search_query|searchfor)=([^&]+)/);
			searchq = re.exec(ref);
			if (searchq) { 
				cpcValue += noPercent(searchq[1]);
			} else {
				cpcValue += "Paid Referral: "; 
				cpcValue += ref;
			}
			pageTracker._setVar(cpcValue);
		}
	}
}

var ga_mam = RegExp(/moneyandmarkets/);
var ga_shop = RegExp(/investingshop/);
var ga_uwd = RegExp(/uncommonwisdomdaily/);
var ga_other = RegExp(/ultimatedepressionsurvivalguide|weissmoneymachine/);

function runGA() {            
	if (typeof(_gat) === "object") {
		if (ga_mam.exec(ga_loc)){
			try {
				pageTracker = _gat._getTracker("UA-2790998-1");
				pageTracker._setAllowHash(false);
				pageTracker._setAllowLinker(true);
				pageTracker._setDomainName("moneyandmarkets.com");
				pageTracker._trackPageview();
				sleuth();
				extraCookies();
				modifyForm();
			} catch (err) {}
		}
		else if (ga_shop.exec(ga_loc)){
			try {
				pageTracker = _gat._getTracker("UA-2790998-1");
				pageTracker._setAllowHash(false);
				pageTracker._setAllowLinker(true);
				pageTracker._setDomainName("investingshop.com");
				pageTracker._trackPageview();
				sleuth();
				extraCookies();
				modifyForm();
			} catch (err) {}
		}
		else if (ga_other.exec(ga_loc)){
				pageTracker = _gat._getTracker("UA-2790998-1");
				pageTracker._setAllowHash(false);
				pageTracker._setAllowLinker(true);
				pageTracker._trackPageview();
				sleuth();
				extraCookies();
				modifyForm();
		}
		else if(ga_uwd.exec(ga_loc)){
			try {
				pageTracker = _gat._getTracker("UA-9589318-1");
				pageTracker._setDomainName('uncommonwisdomdaily.com');
				pageTracker._setAllowHash(false);
				pageTracker._setAllowLinker(true);
				pageTracker._setAllowAnchor(true);
				pageTracker._trackPageview();
				sleuth();
				extraCookies();
				modifyForm();
			} catch(err) {}
		}
	} else {
		setTimeout(function () { 
			runGA(); 
		}, 100);
	}
}

runGA();
