// Google Analytics - Custom measurement functions
// (c) Satama Interactive
// 2007-10-31


// Variable default values, overriden in pagecode if necessary
var _userv = 2; // Set 0 to only use Urchin6, 1 to only use GA, , or 2 to use both, default: both
var _ugifpath="/__utm.gif"; // Override location of local __utm.gif file, default under webroot
var urchinDownload = '\.pdf$|\.doc$|\.xls$|\.exe$|\.zip$|\.ppt$'; // Download types or dynamic files defined as downloads, delimiter character: |
var urchinRSS = '\.rss$|\.rss2$'; // RSS link filetypes (can be dynamic), delimiter character: |
var urchinListen = '\.rm$|\.wma$|\.3gp$'; // Files listed as listen 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, pageCondition) {
	switch (pageType)
	{
		case "email":
			urchinEventBind(pageItem, pageBind, function(){urchinTracker('/email'+pageIdent+pageName.substring(7).toLowerCase());}, pageCondition);
			break;
		case "rss":
			urchinEventBind(pageItem, pageBind, function(){urchinTracker('/rss'+pageIdent+pageName.replace(/^(http|https):\/\/([a-z-.0-9]+)\//i, '').toLowerCase());}, pageCondition);
			break;
		case "downloads":
			urchinEventBind(pageItem, pageBind, function(){urchinTracker('/downloads'+pageIdent+pageName.replace(/^(http|https):\/\/([a-z-.0-9]+)\//i, '').toLowerCase());}, pageCondition);
			break;
		case "listen":
			urchinEventBind(pageItem, pageBind, function(){urchinTracker('/listen'+pageIdent+pageName.replace(/^(http|https):\/\/([a-z-.0-9]+)\//i, '').toLowerCase());}, pageCondition);
			break;
		case "exit":
			urchinEventBind(pageItem, pageBind, function(){urchinTracker('/exit_links'+pageIdent+pageName.replace(/^http:\/\/|https:\/\//i, '').toLowerCase());}, pageCondition);
			break;
		default:
	}
}

function urchinTrack(urchinPageName){
	if(urchinPageName&&urchinPageName != "") {
		
	} else {
		urchinPageName = location.pathname + location.search;
	}
	urchinTracker(urchinPageName.toLowerCase());
	
	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 isListen = new RegExp("("+urchinListen+")", "i");
	var isInternalLink = new RegExp("("+urchinDomain+urchinInternalDomains+")", "i");
	var isRSS = new RegExp("("+urchinRSS+")", "i");
	for(var i = 0; i < a.length; i++) {
		actionBind = 'click'; // What event to bind to, default "click"
		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, false);
      } else if(urchinRSS && isRSS.test(a[i].href)) {
				runTracker('rss', a[i], a[i].href, actionBind, actionIdent, false);
      } else if(urchinDownload && isDownload.test(a[i].href)){
				runTracker('downloads', a[i], a[i].href, actionBind, actionIdent, false);
      } else if(urchinListen && isListen.test(a[i].href)){
				runTracker('listen', a[i], a[i].href, actionBind, actionIdent, false);
      } else if(!isInternalLink.test(a[i].href)) {
        runTracker('exit', a[i], a[i].href, actionBind, actionIdent, false);
      }
    }
	}
}



function urchinTrackMouseButton(event, urchinPageName) {
    if (event.button==2) {
        urchinTrack(urchinPageName);
    } else {
        return
  }
}
