// Google Analytics - Custom measurement functions
// (c) Satama Interactive
// 2008-03-28


// Variable default values, overriden in pagecode if necessary
var urchinDownload = '\.pdf$,\.eps$,\.doc$,\.tif$,\.tiff$'; // Download types or dynamic files defined as downloads, delimiter character: |
var urchinInternalDomains = ''; //  Separated list of domains concidered as internal links (format: '|domain.com|domain.net'), delimiter character: |
//
// Measurement code start - Do not change anything beyond this line!
//

function urchinEventBind(obj, evt, newhandler, captures)
{
	if (obj.attachEvent) {
		obj.attachEvent('on' + evt, newhandler);
	} else if (obj.addEventListener) {
		obj.addEventListener(evt, newhandler, captures);
	} else {
		var oldhandler;
		if (oldhandler = obj['on' + evt]) {
			obj['on' + evt] = function() { oldhandler(); newhandler(); }
		} else { 
      obj['on' + evt] = newhandler;
		}
	}
}

function runTracker(pageType, pageItem, pageName, pageBind, pageIdent, currentBind, pageCondition) {
	switch (pageType)
	{
		case "email":
			urchinEventBind(pageItem, pageBind, function(){pageTracker._trackPageview('/Email'+pageIdent+pageName.substring(7)); ((currentBind != null) ? currentBind : "") }, pageCondition);
			break;
		case "downloads":
			urchinEventBind(pageItem, pageBind, function(){pageTracker._trackPageview('/Download'+pageIdent+pageName.replace(/^(http|https):\/\/([a-z-.0-9]+)\//i, '')); ((currentBind != null) ? currentBind : "") }, pageCondition);
			break;
		case "offsite":
			urchinEventBind(pageItem, pageBind, function(){pageTracker._trackPageview('/Offsite/'+pageIdent+pageName.replace(/^http:\/\/|https:\/\//i, '')); ((currentBind != null) ? currentBind : "")}, pageCondition);
			break;
		case "form":
			urchinEventBind(pageItem, pageBind, function(){pageTracker._trackPageview('/Form/'+pageIdent+pageName.replace(/^http:\/\/|https:\/\//i, '')); ((currentBind != null) ? currentBind : "")}, pageCondition);
			break;
		default:
	}
}

function urchinRun(urchinPageName, urchinContentGroup){
	if(urchinPageName&&urchinPageName != "") {
		urchinPageName = urchinPageName;
	} else {
		urchinPageName = location.pathname;
	}
	
	pageTracker._trackPageview(urchinPageName);

  var userCurrentVariable = urchinGetCookie("__utmv");
  if(urchinContentGroup) {
    if(urchinContentGroup != userCurrentVariable && urchinContentGroup != "") {
      pageTracker._setVar(urchinContentGroup);
    }
  } 
	
	var tmpDomain = document.domain.split(".");
  tmpDomain = tmpDomain.slice(-3);
	var urchinDomain = tmpDomain.join(".");
		
	var a = document.getElementsByTagName('a');
	var isDownload = new RegExp("("+urchinDownload+")", "i");
	var isInternalLink = new RegExp("("+urchinDomain+urchinInternalDomains+")", "i");
	for(var i = 0; i < a.length; i++) {
		var currentBind = a[i].getAttribute("onclick");
		actionBind = 'click'; // What event to bind to, default "click". NOTE! Change currentBind attribute as well
		actionIdent = '/'; // Content group to be used, default '/'
		if(a[i].protocol != "javascript:") {
      if(a[i].protocol == "mailto:") {
				runTracker('email', a[i], a[i].href, actionBind, actionIdent, currentBind, false);
      }  else if(urchinDownload && isDownload.test(a[i].href)){
				runTracker('downloads', a[i], a[i].href, actionBind, actionIdent, currentBind, false);
      }  else if(!isInternalLink.test(a[i].href)) {
        runTracker('offsite', a[i], a[i].href, actionBind, actionIdent, currentBind, false);
      }
    }
	}
	var f = document.getElementsByTagName('form');
	for(var h = 0; h < f.length; h++){
		var currentBind = f[h].getAttribute("onsubmit");
		var type=f[h].type||"";
		var alt=f[h].alt||"";
			var formIdent = f[h].action||f[h].name||f[h].id||f[h].value||"Submit";
			runTracker('form', f[h], formIdent, 'submit', 'Submit', currentBind, false);
	}
}

function urchinGetCookie(name) {
	var start = document.cookie.indexOf( name + "=" );
	var len = start + name.length + 1;
	if ((!start) &&(name!=document.cookie.substring(0, name.length))){
		return null;
	}
	if (start == -1) return null;
	var end = document.cookie.indexOf( ";", len );
	if (end == -1) end = document.cookie.length;
	return unescape( document.cookie.substring( len, end ) );
}
