<!--
// AlertSite Search Engine Click Tracker
// Calls the "se.cgi" script after extracting the SE source and keywords.

var DEBUG = 0;
var found_se = -1;
var strptr,strstart,strend,strwrk;
var src;
var src_type;
var keyword;
var ascamp;
var asadgr;
var no_rot = 0;	// set no_rot=1 in google ad URL of landingpage or here to stop rotation

var url_from = document.referrer;		
var url_target = document.location;
url_target = url_target.toString();

var redirect_done = url_target.indexOf('redirect=1') == -1 ? false : true;

if (DEBUG == 1) {
	found_se = 1;
	url_from = 'https://www.google.com/search?hl=en&q=hacker+safe%26q%3Dhacker+not+safe';	

	var url_target_tmp = 'https://www.alertsite.com/aslp_perf_mon.html?ascamp=yahoo_website_monitoring&' +
						'OVRAW=keytrain.com&OVKEY=web%20site%20test&OVMTC=advanced&OVADID=4906953021&' + 
						'OVKWID=50669660521&source_type=PPC&source=search.yahoo.com&kw=keytrain.com&' + 
						'ascamp=yahoo_website_monitoring&asadgr=undefined';

	if (url_target.indexOf("redirect=1") != -1) {
		url_target_tmp += '&redirect=1';
	} 
	url_target = url_target_tmp;
}

// parse the referrer
strstart = url_from.indexOf("//");
strstart = strstart + 2;
strwrk = url_from.substring(strstart, url_from.length);
strptr = strwrk.indexOf("/");
var domain = strwrk.substring(0, strptr);


function readCookie(name)
{
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}

var clicktrack_cookie = readCookie('clicktrack');

// we have already redirected once 
var redirect = -1;
redirect = url_target.indexOf('redirect=1');
var redirect_support = 0;
try {
	if (num_pages != 1) {
		redirect_support = 1;
	}
	
}
catch (e) {
	redirect_support = -1;
}


strptr = url_target.indexOf("no_rot=1");
if (strptr > -1) no_rot = 1;

if (!clicktrack_cookie) {
	if (redirect == -1 && redirect_support > 0 && ! no_rot) {
			// check cookie to prevent infinite loop in IE should user click on back button	
			as_redirect(); // sets redirect=1
	}
	else {
		// Skip processing if we've already been through se.cgi
		if (url_target.indexOf("se.cgi_done=1") == -1)
			clicktrack();

		if (found_se == 1) {
			if (DEBUG == 0) {
				document.write("<script language='Javascript' src='https://www.alertsite.com/cgi-bin/se.cgi?js=1&source_type=" + src_type + "&source=" + src + "&kw=" + keyword + "&ascamp=" + ascamp + "&asadgr=" + asadgr + "&no_rot=" + no_rot + "'></script>");
			}
			else {
				document.write("<script language='Javascript' src='/cgi-bin/se.cgi?js=1&source_type=" +	src_type + "&source=" + src + "&kw=" + keyword + "&ascamp=" + ascamp + "&asadgr=" + asadgr + "&no_rot=" + no_rot + "'></script>");
			}
		}
	}
}

	// get the SE source and keyword(s)
	//
function clicktrack()
{
	getSource(url_target,domain);

	if (keyword == undefined)	// get the se-supplied search-string
		getKeywords();		

	if (keyword)
		found_se = 1;
	return;
}


// Look for AlertSite-injected parameters
//
function getSource(url_target,domain)
{
	strptr = url_target.indexOf("source=");
	if (strptr > -1) {
		// get source search engine	
		strstart = strptr + 7;
		strend = url_target.indexOf('%26',strstart);
		if (strend == -1)
			strend = url_target.indexOf('&',strstart);
		if (strend == -1)
			strend = url_target.indexOf(';',strstart);
		if (strend == -1)
			strend = url_target.indexOf('%3B',strstart);
		if (strend == -1)
			strend = url_target.length;
		src = url_target.substring(strstart,strend);
		src_type = 'PPC';

		// get advertised keywords
		strptr = url_target.indexOf('kw=');
		if (strptr > -1) {
			strstart = strptr + 3;
			strend = url_target.indexOf('%26',strstart);
			if (strend == -1)
				strend = url_target.indexOf('&',strstart);
			if (strend == -1)
				strend = url_target.indexOf(';',strstart);
			if (strend == -1)
				strend = url_target.indexOf('%3B',strstart);
			if (strend == -1)
				strend = url_target.length;
			keyword = url_target.substring(strstart,strend);
		}
	}
	else {
		src = domain;
		src_type = 'FREE';
	}

	strptr = url_target.indexOf("ascamp=");
	if (strptr > -1) {
		// get campaign name
		//
		strstart = strptr + 7;
		strend = url_target.indexOf('%26',strstart);
		if (strend == -1)
			strend = url_target.indexOf('&',strstart);
		if (strend == -1)
			strend = url_target.indexOf(';',strstart);
		if (strend == -1)
			strend = url_target.indexOf('%3B',strstart);
		if (strend == -1)
			strend = url_target.length;
		ascamp = url_target.substring(strstart,strend);
		src_type = 'PPC';

		strptr = url_target.indexOf("asadgr=");
		if (strptr > -1) {
			strstart = strptr + 7;
			strend = url_target.indexOf('%26',strstart);
			if (strend == -1)
				strend = url_target.indexOf('&',strstart);
			if (strend == -1)
				strend = url_target.indexOf(';',strstart);
			if (strend == -1)
				strend = url_target.indexOf('%3B',strstart);
			if (strend == -1)
				strend = url_target.length;
			asadgr = url_target.substring(strstart,strend);
		}
	}
}

// Look for SE-supplied keywords
//
// from google search protocol:
//   q:	query string (always present)
//   as_q: added query terms to q with AND
//   as_oq:	added query terms to q with OR
//   as_epq: added exact phrase to q with OR

function getKeywords() {
	var base;
	var found = 0;
	var base_start = url_from.indexOf('?'); 	
	if (base_start) base = url_from.substring(base_start+1, url_from.length);
	var matched = base.split(/&|%26|;|%3B/); 
	for (var i=0; i < matched.length; i++) {
		var tmp = matched[i].split(/=|%3D/); 
		if (tmp[0].match(/^(p|q|kw|qt|k|search_terms|OVRAW)$/) && found != 1) {
			found = 1;
			keyword = keyword ? keyword + '+' + tmp[1] : tmp[1];
		}
		else if (tmp[0].match(/^(as_q|as_oq|as_epq)$/)) {
			keyword = keyword ? keyword + '+' + tmp[1] : tmp[1];
		}
	}
}

function as_redirect() {
	var cur_loc = window.location.href;
	 clicktrack();

	 if (cur_loc.substring(cur_loc.length-5,cur_loc.length).match('html')) {
		cur_loc = cur_loc + '?redirect=1';
	}
	else {
		cur_loc = cur_loc + '&redirect=1';
	}

	var der = Math.floor(Math.random()*num_pages);
	der++;

	var new_loc = cur_loc.split('.html');
	new_loc[0] = new_loc[0].replace(/\d+/,'');
	if ((der == 1)&&(!new_loc[0].match(/_$/))) {
		der = '';
	}
	var base = new_loc[0] + der + '.html';
	var ext = new_loc[1];
	new_loc = base + ext;
	if (found_se == 1) {
		new_loc = new_loc + "&source_type=" + src_type + "&source=" + src + "&kw=" + keyword + "&ascamp=" + ascamp + "&asadgr=" + asadgr + "&no_rot=" + no_rot;	 
	}

	window.location = new_loc;
}

//-->
