// set debugMode to true to check
var debugMode = false;

// var testurl =
// "http://www.google.it/search?q=opodo+agenzia&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a";
var testurl = "http://www.google.de/search?q=blume2000.de&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a";

function JSQueryString(par) {
	var sTemp
	var sPar
	var sFin, iStart, iEnd
	sTemp = new String(window.location)
	sPar = new String(par + "=")
	iStart = sTemp.indexOf(sPar)
	if (iStart > 0) {
		iFin = sTemp.indexOf("&", iStart)
		if (iFin == -1) {
			// Se non c'� fine allora � l'ultimo
			iFin = sTemp.length
		}
		sFin = sTemp.substring(iStart + sPar.length, iFin)
	} else {
		sFin = ""
	}
	return sFin
}

function urldecode(str) {
	var ret = str;
	ret = ret.replace(/\+/g, '%20');
	ret = decodeURIComponent(ret);
	ret = ret.toString();
	return ret;
}
function urlencode(str) {
	var ret = str;
	ret = ret.toString();
	ret = encodeURIComponent(ret);
	ret = ret.replace(/%20/g, '+');
	return ret;
}

function parseUri(str) {
	var o = parseUri.options, m = o.parser[o.strictMode ? "strict" : "loose"]
			.exec(str), uri = {}, i = 14;

	while (i--)
		uri[o.key[i]] = m[i] || "";

	uri[o.q.name] = {};
	uri[o.key[12]].replace(o.q.parser, function($0, $1, $2) {
		if ($1)
			uri[o.q.name][$1] = $2;
	});

	return uri;
};

parseUri.options = {
	strictMode :false,
	key : [ "source", "protocol", "authority", "userInfo", "user", "password",
			"host", "port", "relative", "path", "directory", "file", "query",
			"anchor" ],
	q : {
		name :"queryKey",
		parser :/(?:^|&)([^&=]*)=?([^&]*)/g
	},
	parser : {
		strict :/^(?:([^:\/?#]+) {)?(?:\/\/((?:(([^:@]*) {?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
		loose :/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+) {)?(?:\/\/)?((?:(([^:@]*) {?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/
	}
};

// {{{ parse_str
function parse_str(str, array) {
	var glue1 = '=';
	var glue2 = '&';

	var array2 = str.split(glue2);
	var array3 = [];
	for ( var x = 0; x < array2.length; x++) {
		var tmp = array2[x].split(glue1);
		array3[unescape(tmp[0])] = unescape(tmp[1]).replace(/[+]/g, ' ');
	}

	if (array) {
		array = array3;
	} else {
		return array3;
	}
}// }}}

parseUri.options.strictMode = true;

// *** TESTING ***
// normal code
var seo_referrer = new parseUri(document.referrer);
// alert seo_referrer;
var currentURL = document.URL;
// testing code
// var seo_referrer = new parseUri(testurl)
// *** choose one of the two above

var seo_query = new Array()
 seo_query = parse_str(seo_referrer.query)
//seo_query = parse_str(seo_referrer.anchor);

if (debugMode) {
	document.writeln("You should see the parameters sent to the search site: "
			+ seo_referrer.query)
	document.writeln("</br>")
}
var refdom = (seo_referrer.host + seo_referrer.path).toLowerCase()
if (refdom.substr(0, 7) == "http://") {
	refdom = refdom.substr(7, 99)
	refdom = refdom.split("/", 1);

}
if (debugMode) {
	document
			.writeln("You should see the search engine with the path, without protocol (example: www.google.com/search): "
					+ refdom)
	document.writeln("</br>")
}
var lookfor
var p
if (refdom == "www.google.com") {
	lookfor = "www.google.com";
	p = "q";
} else if (refdom == "www.google.de") {
	lookfor = "www.google.de";
	p = "q";
} else if (refdom == "www.google.co.uk") {
	lookfor = "www.google.co.uk";
	p = "q";
} else if (refdom == "www.google.be") {
	lookfor = "www.google.be";
	p = "q";
} else if (refdom == "www.google.ca") {
	lookfor = "www.google.ca";
	p = "q";
} else if (refdom == "www.google.ch") {
	lookfor = "www.google.ch";
	p = "q";
} else if (refdom == "www.google.co.ck") {
	lookfor = "www.google.co.ck";
	p = "q";
} else if (refdom == "www.google.co.id") {
	lookfor = "www.google.co.id";
	p = "q";
} else if (refdom == "www.google.co.in") {
	lookfor = "www.google.co.in";
	p = "q";
} else if (refdom == "www.google.co.kr") {
	lookfor = "www.google.co.kr";
	p = "q";
} else if (refdom == "www.google.co.za") {
	lookfor = "www.google.co.za";
	p = "q";
} else if (refdom == "www.google.com.au") {
	lookfor = "www.google.com.au";
	p = "q";
} else if (refdom == "www.google.com.bo") {
	lookfor = "www.google.com.bo";
	p = "q";
} else if (refdom == "www.google.com.bz") {
	lookfor = "www.google.com.bz";
	p = "q";
} else if (refdom == "www.google.com.gr") {
	lookfor = "www.google.com.gr";
	p = "q";
} else if (refdom == "www.google.com.hk") {
	lookfor = "www.google.com.hk";
	p = "q";
} else if (refdom == "www.google.com.jm") {
	lookfor = "www.google.com.jm";
	p = "q";
} else if (refdom == "www.google.com.mx") {
	lookfor = "www.google.com.mx";
	p = "q";
} else if (refdom == "www.google.com.my") {
	lookfor = "www.google.com.my";
	p = "q";
} else if (refdom == "www.google.com.ph") {
	lookfor = "www.google.com.ph";
	p = "q";
} else if (refdom == "www.google.com.sg") {
	lookfor = "www.google.com.sg";
	p = "q";
} else if (refdom == "www.google.com.tr") {
	lookfor = "www.google.com.tr";
	p = "q";
} else if (refdom == "www.google.com.tw") {
	lookfor = "www.google.com.tw";
	p = "q";
} else if (refdom == "www.google.com/custom") {
	lookfor = "www.google.com/custom";
	p = "q";
} else if (refdom == "www.google.es") {
	lookfor = "www.google.es";
	p = "q";
} else if (refdom == "www.google.fr") {
	lookfor = "www.google.fr";
	p = "q";
} else if (refdom == "www.google.gr") {
	lookfor = "www.google.gr";
	p = "q";
} else if (refdom == "www.google.ie") {
	lookfor = "www.google.ie";
	p = "q";
} else if (refdom == "www.google.it") {
	lookfor = "www.google.it";
	p = "q";
} else if (refdom == "www.google.kg") {
	lookfor = "www.google.kg";
	p = "q";
} else if (refdom == "www.google.nl") {
	lookfor = "www.google.nl";
	p = "q";
} else if (refdom == "www.google.no") {
	lookfor = "www.google.no";
	p = "q";
} else if (refdom == "www.google.pl") {
	lookfor = "www.google.pl";
	p = "q";
} else if (refdom == "www.google.pt") {
	lookfor = "www.google.pt";
	p = "q";
} else if (refdom == "www.google.sc") {
	lookfor = "www.google.sc";
	p = "q";
} else if (refdom == "www.google.se") {
	lookfor = "www.google.se";
	p = "q";
} else if (refdom == "www.google.to") {
	lookfor = "www.google.to";
	p = "q";
}

if (p != undefined) {
	if (debugMode) {
		document.writeln("domain+path: " + lookfor)
		document.writeln("</br>")
		document.writeln("query: " + p)
		document.writeln("</br>")
	}

	var epi;
	var epi2;
	epi2 = urlencode(seo_query[p]);
	epi = urlencode(lookfor);

	if (debugMode) {
		document.writeln("epi (engine): " + epi)
		document.writeln("</br>")
		document.writeln("epi2 (keyword): " + epi2)
		document.writeln("</br>")
	}
	// Print tracking image
	if (currentURL.indexOf("servlets/Home") != -1) {
		// TESTING
//		 document.write('TEST');
		document
				.write("<img src='http://clkde.tradedoubler.com/click?p=122270&a=1681048&g=18098124&epi="
						+ epi + "&epi2=" + epi2 + "'>");
	}
}
