//make ajax call to IP_test.php to determine if real IP is in ITL address range,
//if so, set temporary __utmv cookie to prevent tracking by google analytics 
//(because IP filtering on GA doesn't seem to work)
function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}
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;
}
function eraseCookie(name) { createCookie(name,"",-1); }

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) { oldonload(); }
      func();
    }
  }
}

function test_IP()  {
	var xmlHttp, utmv;
	try  { xmlHttp=new XMLHttpRequest(); } // Firefox, Opera 8.0+, Safari, IE7
	catch (e)  {
		try  { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } // Internet Explorer
		catch (e)  {
			try  { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); }
			catch (e)  { return; } // browser does not support AJAX!
		}
	}
	xmlHttp.onreadystatechange=function()  {
	  if(xmlHttp.readyState==4)  {
			if (xmlHttp.status == 200) {
				if(xmlHttp.responseText.indexOf("_")!=-1){
					// write google analytics cookie
					if(typeof(pageTracker)=="object")	pageTracker._setVar(xmlHttp.responseText);		// ga.js
					utmv = readCookie("__utmv");
					if(utmv)	createCookie("__utmv",utmv,3); //reset cookie to 3 days
				}
			}
		}
	}
	xmlHttp.open('GET', '/common/IP_test.php', true);                  
	xmlHttp.send(null);
}

var utmv = readCookie("__utmv");
if(!utmv || (utmv.indexOf("permanent_ITL_traffic")==-1 && utmv.indexOf("external_ITL_traffic")==-1))
	addLoadEvent(test_IP);

//	Javascript to tag file downloads and external links for Google Analytics
function settags(){
	if(document.getElementsByTagName){
		var hrefs = document.getElementsByTagName("a");
		var link_path = "";
		for (var l = 0; l < hrefs.length; l++) {
				try {
					var link_path = hrefs[l].pathname;
					var query_string = hrefs[l].search;
					if (location.host == hrefs[l].hostname) {
						if (link_path.match(/\.(doc|pdf|xls|csv|ppt|zip|txt|vsd|vxd|js|css|rar|exe|wma|mov|avi|wmv|mp3)$/) // file download
						 || link_path.match(/file.*\.(cfm|php)$/) && query_string.match(/(\.|%2[Ee])(doc|pdf|xls|csv|ppt|zip|txt|vsd|vxd|js|css|rar|exe|wma|mov|avi|wmv|mp3)$/) )  // script download
						{
							addtrackerlistener(hrefs[l]);
						}
					} else {
			//			addtrackerlistener(hrefs[l]);	// external link
					}
				}
				catch(err) { }
		}
	}
}

addLoadEvent(settags);

function addtrackerlistener(obj) {
	if (obj.addEventListener) {
		obj.addEventListener('click', trackfiles, true);
	} else if (obj.attachEvent) {
		obj.attachEvent("on" + 'click', trackfiles);
	}
}

function trackfiles(array_element) {
	file_path = "";
/*	if (location.host != this.hostname) {
		file_path = "/exlinks/" + ((array_element.srcElement) ? "/" + array_element.srcElement.hostname : this.hostname);
	}*/
	file_path = file_path + ((array_element.srcElement) ? "/" + array_element.srcElement.pathname+unescape(array_element.srcElement.search) : this.pathname+unescape(this.search));
	if(typeof(pageTracker)=="object")
		pageTracker._trackPageview(file_path);	// ga.js
}
