// Google Analytics - Custom measurement functions // (c) Sampsa Suoninen // 2007-10-16 /* List of usable variables with default values and descriptions: // Download types or dynamic files defined as downloads, e.g "\.pdf$|\.doc$|\.exe$". Delimiter character: | // Regular expression, escape special characters if necessary (., /, ?, $, | etc.) urchinDownload = ''; // Force lower case page names. // Recommended. // NOTE: Added to improve data integrety. May break site overlay urchinPageNameToLower = 'true'; // RSS link filetypes (can be dynamic), delimiter character: | // Regular expression, escape special characters (., /, ?, $, | etc.) urchinRSS = '\.rss$|\.rss2$'; */ // /* Measurement code start - Do not change anything beyond this line! */ // _uOsr[34]="www.fi"; _uOkw[34]="query"; 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 urchinRun(urchinPageName) { // Variable default values, overriden here if necessary urchinDownload = '\.pdf$|\.doc$|\.exe$'; urchinPageNameToLower = 'true'; urchinRSS = '.rss|.rss2'; // End of variables if(urchinPageName=="") { var urchinPageName = location.pathname.toLowerCase(); urchinPageName = urchinPageName.split("/"); urchinPageName = urchinPageName.slice(1); urchinPageName = urchinPageName.join("/"); } var tmpDomain = document.domain.split("."); tmpDomain = tmpDomain.slice(-3); urchinDomain = tmpDomain.join("."); var tmpLang = location.pathname.split("/"); tmpLang = tmpLang.slice(2,3); urchinLang = tmpLang.join("/"); // This function enables tracking of anchor (a) HTML elements. Includes: // - Download links // - Exit links // - Mail links // - RSS links var a = document.getElementsByTagName('a'); var isDownload = new RegExp("("+urchinDownload+")", "i"); var isInternalLink = new RegExp("("+urchinDomain+")", "i"); var isRSS = new RegExp("("+urchinRSS+")", "i"); for(var i = 0; i < a.length; i++){ actionBind = 'click'; // What event to bind to (do not define "onclick"? Default "click" actionIdent = '/'; // Content group to be used? Default '/' // Until a better solution presents itself, change "this.href" to "this.alt", "this.title" or "this.innerHTML" depending on what you want to be the link name if(a[i].protocol == "mailto:") { urchinEventBind(a[i], actionBind, function(){ urchinTracker('/'+urchinLang+'/email'+actionIdent+this.href.substring(7)); }, false); } else if(urchinRSS && isRSS.test(a[i].href)) { urchinEventBind(a[i], actionBind, function(){ urchinTracker('/'+urchinLang+'/rss'+actionIdent+this.href.replace(/^(http|https):\/\/([a-z-.0-9]+)\//i, '')); }, false); } else if(urchinDownload && isDownload.test(a[i].href)){ urchinEventBind(a[i], actionBind, function(){ urchinTracker('/'+urchinLang+'/lataukset'+actionIdent+this.href.replace(/^(http|https):\/\/([a-z-.0-9]+)\//i, '')); }, false); } else if(!isInternalLink.test(a[i].href)) { urchinEventBind(a[i], actionBind, function(){ urchinTracker('/'+urchinLang+'/poistumis_linkit'+actionIdent+this.href.replace(/^http:\/\/|https:\/\//i, '')); }, false); } } // Main function, sends Google Analytics "page view" hit. if(urchinPageNameToLower == "true") { urchinTracker(urchinPageName.toLowerCase()); } else { urchinTracker(urchinPageName); } }