
function extractServerPath(url)
{
// extract up to the 3rd forward slash (/)	
   firstSlashPos = url.indexOf('/');
   if(firstSlashPos != -1)
   {
     secondSlashPos = url.indexOf('/',firstSlashPos+1);
	 if(secondSlashPos != -1)
	 {
	   //alert(url.indexOf('/',secondSlashPos+1))	 
	   return url.substring(url.indexOf('/',secondSlashPos+1));
	 }	 
   }
   // could not parse
   return url
}

function removeQueryString(url)
{
   // extract up to the first question mark (?)	
   firstQuestionMarkPos = url.indexOf('?');
   if(firstQuestionMarkPos != -1)
   {
     return url.substring(0,firstQuestionMarkPos);
   }
   // didn't have any request params
   return url
}




function gTrackEvent(category, action, label)
{
  // alert("Event Tracker: " + category + ' - ' + action + ' - ' + label);	
  pageTracker._trackEvent(category, action, label);
  return true;
}

function gTrackSingleEventDataExportEvent(format, serialNumber, eventId)
{
  return gTrackEvent('DataExport', format, serialNumber + '_' + eventId);
}

function gTrackDataExportEvent(format)
{
  return gTrackEvent('DataExport', format, '');
}

function gTrackReportEvent(format)
{
  return gTrackEvent('Report', format, '');
}

function gTrackDownloadEvent(format, path)
{
  return gTrackEvent('Download', format, path);
}


function gTrackMailToAnchorClickEvent(anchorElement)
{
  return gTrackEvent('MailTo', removeQueryString(anchorElement.href.toLowerCase()), '');
}

function gTrackPDFAnchorClickEvent(anchorElement)
{
  return gTrackDownloadEvent('PDF', extractServerPath(anchorElement.href.toLowerCase()));
}

function gTrackXLSAnchorClickEvent(anchorElement)
{
  return gTrackDownloadEvent('XLS', extractServerPath(anchorElement.href.toLowerCase()));
}


function gTrackEventViewEvent(serialNumber, eventId)
{
  return gTrackEvent('Event', 'View', serialNumber + '_' + eventId);
}

function gTrackNewAccountCreateEvent(username)
{
  return gTrackEvent('UserAccount', 'Create', username.toLowerCase());
}

function gTrackNewAccountAbortEvent(username)
{
  return gTrackEvent('UserAccount', 'Abort', username.toLowerCase());
}

function gTrackCommentsFormEvent(fromEmailAddress)
{
  return gTrackEvent('Contact', 'Form', fromEmailAddress.toLowerCase());
}

