﻿// Google Analytics - New measurement code
// Sampsa Suoninen @ Avaus, 16.05.2011

// Accounts for tracking
var urchinAccounts = new Array();
urchinAccounts.push('UA-1577843-7'); // Main Kela-account, has to be first in array (-7 for live)
urchinAccounts.push('UA-1577843-8'); // "Original URL"-account, has to be second in array (-8 for live)

// Other variables 
var urchinDownloadTypes = "pdf,zip,rar,gz,bz2,exe,tar,7z,ppt,doc,xls,rm,wmv"; // Comma separated list of file extensions to be listed as downloads
var urchinRSSIdentifier = ".nsf/RSS/"; // URL part to match in links for RSS
var urchinEnableVWO = false; // Enable Visual Website Optimizer code loading

/************************************************
// Code functionality starts here, do not edit //
************************************************/
/* VWO */
if(urchinEnableVWO) {
	// Start Visual Website Optimizer Code
	var _vis_opt_account_id = 4762;
	var _vis_opt_protocol = (('https:' == document.location.protocol) ? 'https://' : 'http://');
	document.write('<s' + 'cript src="' + _vis_opt_protocol + 'dev.visualwebsiteoptimizer.com/deploy/js_visitor_settings.php?v=1&a='+_vis_opt_account_id+'&url='+encodeURIComponent(document.URL)+'&random='+Math.random()+'" type="text/javascript">' + '<\/s' + 'cript>');
	if(typeof(jQuery) != 'undefined') {
		if (/^1\.(0|1|2|3)/.test(jQuery.fn.jquery) || /^1\.4\.(0|1)/.test(jQuery.fn.jquery)) {
			var VWOScript = 'vis_opt.js';
		} else {
			var VWOScript = 'vis_opt_no_jquery.js';
		} 
	} else {
		var VWOScript = 'vis_opt.js';
	}
	if(typeof(_vis_opt_settings_loaded) == "boolean") { document.write('<s' + 'cript src="' + _vis_opt_protocol + 'd5phz18u4wuww.cloudfront.net/'+VWOScript+'" type="text/javascript">' + '<\/s' + 'cript>'); }
	// if your site already has jQuery 1.4.2, replace vis_opt.js with vis_opt_no_jquery.js above

	if(typeof(_vis_opt_settings_loaded) == "boolean" && typeof(_vis_opt_top_initialize) == "function"){ _vis_opt_top_initialize();
	vwo_$(document).ready(function() { _vis_opt_bottom_initialize(); }); }
	// End Visual Website Optimizer Code
}

// Create tracking variable
var _gaq = _gaq || [];
// Enable GA tracking for VWO if it's on
if(urchinEnableVWO) {
	if(typeof(_vis_opt_GA_track) == "function") { _vis_opt_GA_track(); }
}

// Imitate old tracker to support banner measurement
function oldTracker() {
	this._trackPageview = function(pageName) {
		if(typeof(pageName) != 'undefined') {
			if(pageName.length > 0) {
				_gaq.push(['t0._trackPageview', pageName]);
			}
		}
	}
}

var kelaTrack = new oldTracker();

// Function preserved for backwards compatibility, initiates link tracking etc.
function urchinTrack(){
	this.urchinPageName = urchinPageName || location.pathname;
	this.urchinPageLanguage = urchinPageLanguage || '';
	if(this.urchinPageLanguage != '') {
		this.urchinPageName = '/' + this.urchinPageLanguage + '/' + this.urchinPageName;
	}
	this.urchinPageName = this.urchinPageName.toLowerCase()
	
	var downloadRegExp = new RegExp('\.('+urchinDownloadTypes.replace(/\,/, '|')+')');
	//var domainRegExp = new RegExp('('+urchinExternalDomainnames.replace(/\,/, '|')+')');
	var rssRegExp = new RegExp(urchinRSSIdentifier);
	var isCurrentDomain = new RegExp(document.domain, 'i');
	var a = document.getElementsByTagName('a');
	var navLinks = new Array();
	if(document.getElementById('header')) {
		navLinks['header'] = document.getElementById('header').getElementsByTagName('a');
	} else {
		navLinks['header'] = null;
	}
	if(document.getElementById('navigation')) {
		navLinks['navigation'] = document.getElementById('navigation').getElementsByTagName('a');
	} else {
		navLinks['navigation'] = null;
	}
	if(document.getElementById('subnavigation')) {
		navLinks['subnavigation'] = document.getElementById('subnavigation').getElementsByTagName('a');
	} else {
		navLinks['subnavigation'] = null;
	}
	if(document.getElementById('firstrow')) {
		navLinks['contentmain'] = document.getElementById('firstrow').getElementsByTagName('a');
	} else {
		navLinks['contentmain'] = null;
	}
	if(document.getElementById('secondrow')) {
		navLinks['contentsub'] = document.getElementById('secondrow').getElementsByTagName('a');
	} else {
		navLinks['contentsub'] = null;
	}
	if(document.getElementById('subLeft')) {
		navLinks['contentsub1'] = document.getElementById('subLeft').getElementsByTagName('a');
	} else {
		navLinks['contentsub1'] = null;
	}
	if(document.getElementById('subRight')) {
		navLinks['contentsub2'] = document.getElementById('subRight').getElementsByTagName('a');
	} else {
		navLinks['contentsub2'] = null;
	}
	
	for(var i=0;i<a.length;i++){
		if(a[i].protocol != "javascript:") {
			if(a[i].protocol == "mailto:") {
				runTracker(a[i], 'email', a[i].href.substring(7), this.urchinPageName);
			} else if(rssRegExp.test(a[i].href)) {
				runTracker(a[i], 'rss', a[i].href.replace(/^https?:\/\/([a-z\-\.0-9]+)\//i, ''), this.urchinPageName);
			} else if(downloadRegExp.test(a[i].href)){
				runTracker(a[i], 'tiedosto-lataukset', a[i].href.replace(/^https?:\/\/([a-z\-\.0-9]+)\//i, ''), this.urchinPageName);
			} else if(!isCurrentDomain.test(a[i].href)) {
				runTracker(a[i], 'ulosmenevat-linkit', a[i].href.replace(/^https?:\/\//i, ''), this.urchinPageName);
			}
		}
	}

	if(navLinks['header'] != null){
		for(var j=0;j<navLinks['header'].length;j++){
			if(navLinks['header'][j].protocol != "javascript:") {
				var linkText = null;
				if(/\<img/i.test(navLinks['header'][j].innerHTML)) {
					var linkMatch = navLinks['header'][j].innerHTML.match(/alt\s*\=\s*[\"\']{1}([^\"\']+)/i);
					if(linkMatch) linkText = linkMatch[1];
					
				} else {
					linkText = navLinks['header'][j].innerHTML;
				}
				if(linkText) runTracker(navLinks['header'][j], 'navigointi', 'otsake|'+escape(linkText), this.urchinPageName);
			}
		}
	}
	if(navLinks['navigation'] != null){
		for(var k=0;k<navLinks['navigation'].length;k++){
			if(navLinks['navigation'][k].protocol != "javascript:") {
				var linkText = null;
				if(/\<img/i.test(navLinks['navigation'][k].innerHTML)) {
					var linkMatch = navLinks['navigation'][k].innerHTML.match(/alt\s*\=\s*[\"\']{1}([^\"\']+)/i);
					if(linkMatch) linkText = linkMatch[1];
				} else {
					linkText = navLinks['navigation'][k].innerHTML;
				}
				if(linkText) runTracker(navLinks['navigation'][k], 'navigointi', 'ylanavi|'+escape(linkText), this.urchinPageName);
			}
		}
	}
	if(navLinks['subnavigation'] != null){
		for(var l=0;l<navLinks['subnavigation'].length;l++){
			if(navLinks['subnavigation'][l].protocol != "javascript:") {
				var linkText = null;
				if(/\<img/i.test(navLinks['subnavigation'][l].innerHTML)) {
					var linkMatch = navLinks['subnavigation'][l].innerHTML.match(/alt\s*\=\s*[\"\']{1}([^\"\']+)/i);
					if(linkMatch) linkText = linkMatch[1];
				} else {
					linkText = navLinks['subnavigation'][l].innerHTML;
				}
				if(linkText) runTracker(navLinks['subnavigation'][l], 'navigointi', 'alanavi|'+escape(linkText), this.urchinPageName);
			}
		}
	}
	if(navLinks['contentmain'] != null){
		for(var m=0;m<navLinks['contentmain'].length;m++){
			if(navLinks['contentmain'][m].protocol != "javascript:") {
				var linkText = null;
				if(/\<img/i.test(navLinks['contentmain'][m].innerHTML)) {
					var linkMatch = navLinks['contentmain'][m].innerHTML.match(/alt\s*\=\s*[\"\']{1}([^\"\']+)/i);
					if(linkMatch) linkText = linkMatch[1];
				} else {
					linkText = navLinks['contentmain'][m].innerHTML;
				}
				if(linkText) runTracker(navLinks['contentmain'][m], 'navigointi', 'paasivu-yla|'+escape(linkText), this.urchinPageName);
			}
		}
	}
	if(navLinks['contentsub'] != null){
		for(var m=0;m<navLinks['contentsub'].length;m++){
			if(navLinks['contentsub'][m].protocol != "javascript:") {
				var linkText = null;
				if(/\<img/i.test(navLinks['contentsub'][m].innerHTML)) {
					var linkMatch = navLinks['contentsub'][m].innerHTML.match(/alt\s*\=\s*[\"\']{1}([^\"\']+)/i);
					if(linkMatch) linkText = linkMatch[1];
				} else {
					linkText = navLinks['contentsub'][m].innerHTML;
				}
				if(linkText) runTracker(navLinks['contentsub'][m], 'navigointi', 'paasivu-ala|'+escape(linkText), this.urchinPageName);
			}
		}
	}
	if(navLinks['contentsub1'] != null){	
		for(var n=0;n<navLinks['contentsub1'].length;n++){
			if(navLinks['contentsub1'][n].protocol != "javascript:") {
				var linkText = null;
				if(/\<img/i.test(navLinks['contentsub1'][n].innerHTML)) {
					var linkMatch = navLinks['contentsub1'][n].innerHTML.match(/alt\s*\=\s*[\"\']{1}([^\"\']+)/i);
					if(linkMatch) linkText = linkMatch[1];
				} else {
					linkText = navLinks['contentsub1'][n].innerHTML;
				}
				if(linkText) runTracker(navLinks['contentsub1'][n], 'navigointi', 'sisaltosivu-vasen|'+escape(navLinks['contentsub1'][n].innerHTML), this.urchinPageName);
			}
		}
	}
	if(navLinks['contentsub2'] != null){
		for(var o=0;o<navLinks['contentsub2'].length;o++){
			if(navLinks['contentsub2'][o].protocol != "javascript:") {
				var linkText = null;
				if(/\<img/i.test(navLinks['contentsub2'][o].innerHTML)) {
					var linkMatch = navLinks['contentsub2'][o].innerHTML.match(/alt\s*\=\s*[\"\']{1}([^\"\']+)/i);
					if(linkMatch) linkText = linkMatch[1];
				} else {
					linkText = navLinks['contentsub2'][o].innerHTML;
				}
				if(linkText) runTracker(navLinks['contentsub2'][o], 'navigointi', 'sisaltosivu-oikea|'+escape(navLinks['contentsub2'][o].innerHTML), this.urchinPageName);
			}
		}
	}
	
	this.urchinRun = function() {
		var Browser = {
		  Version: function() {
			var version = 999; // we assume a sane browser
			if (navigator.appVersion.indexOf("MSIE") != -1)
			  // bah, IE again, lets downgrade version number
			  version = parseFloat(navigator.appVersion.split("MSIE")[1]);
			return version;
		  }
		}
		var searchKeyword = urchinGetURLParameter('q');
		var searchName = new Array();
		searchName[0] = 'as_q';
		searchName[1] = 'as_eq';
		searchName[2] = 'as_oq';
		searchName[3] = 'as_epq';
		var searchClass = new Array();
		searchClass[0] = urchinGetURLParameter('as_q');
		searchClass[1] = urchinGetURLParameter('as_eq');
		searchClass[2] = urchinGetURLParameter('as_oq');
		searchClass[3] = urchinGetURLParameter('as_epq');
		var searchString = '';
		if(searchKeyword) {
			searchString = '?q='+searchKeyword
			for(s=0;s<searchClass.length;s++) {
				if(searchClass[s]) searchString += '&'+searchName[s]+'='+searchClass[s];
			}
		}
		// Loop accounts
		for(var i=0;i<urchinAccounts.length;i++) {
			var objectName = 't'+i;
				_gaq.push([objectName+'._setAccount', urchinAccounts[i]]);
				if(i == 0) {
					if(typeof(_vis_opt_GA_track) == "function") { _vis_opt_GA_track(); }
					_gaq.push([objectName+'._trackPageLoadTime']);
					_gaq.push([objectName+'._trackPageview', this.urchinPageName+searchString]);
				} else {
					_gaq.push([objectName+'._trackPageLoadTime']);
					_gaq.push([objectName+'._trackPageview']);
				}
		}
		if (Browser.Version() < 9) {
			(function() {
				var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
				ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
				var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
			})();
		}
	}
}



// Standard event binder
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;
	}
}
// End of event binder
// Search parameter GET
function urchinGetURLParameter(name)
{
	name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	var regexS = "[\\?&]"+name+"=([^&#]*)";
	var regex = new RegExp( regexS );
	var results = regex.exec( window.location.href );
	if( results == null )
		return "";
	else
		return results[1];
}
// End Search parameter GET
// Event helper
runTracker = function(pageItem, pageType, pageName, gaPageName) {
	urchinEventBind(pageItem, 'click', function(){ _gaq.push(['t0._trackEvent', pageType, pageName, gaPageName]); }, false);
}
// End event helper	

