/* Download tracking for Google Analytics :: added by Dennis C :: Nov, 2008 */
/* Outbound links and links to non-html files will be automatically tracked. This script has been provided by Goodwebpractices.com Thanks to ShoreTel, MerryMan and Colm McBarron */

//	This javascript tags file downloads and external links in Google Analytics.
//	You need to be using the Google Analytics New Tracking Code (ga.js)
//	for this script to work.
//	To use, place this file on all pages just above the Google Analytics tracking code.
//	All outbound links and links to non-html files should now be automatically tracked.
//
//	This script has been provided by Goodwebpractices.com
//	Thanks to ShoreTel, MerryMan and Colm McBarron
//
//	www.goodwebpractices.com
//	VKI has made changes as indicated below.

if (document.getElementsByTagName) {
        // Initialize external link handlers
        var hrefs = document.getElementsByTagName("a");
        for (var l = 0; l < hrefs.length; l++) {
				// try {} catch{} block added by erikvold VKI
			try{
	                //protocol, host, hostname, port, pathname, search, hash
	                if (hrefs[l].protocol == "mailto:") {
	                        startListening(hrefs[l],"click",trackMailto);
	                } else if (hrefs[l].hostname == location.host) {
	                        var path = hrefs[l].pathname + hrefs[l].search;
							var isDoc = path.match(/\.(?:doc|eps|jpg|png|svg|xls|ppt|pdf|xls|zip|txt|vsd|vxd|js|css|rar|exe|wma|mov|avi|wmv|mp3)($|\&|\?)/);
	                        if (isDoc) {
	                                startListening(hrefs[l],"click",trackExternalLinks);
	                        }
	                } else {
	                        startListening(hrefs[l],"click",trackExternalLinks);
	                }
			}
			catch(e){
					continue;
			}
        }
}

function startListening (obj,evnt,func) {
        if (obj.addEventListener) {
                obj.addEventListener(evnt,func,false);
        } else if (obj.attachEvent) {
                obj.attachEvent("on" + evnt,func);
        }
}

function trackMailto (evnt) {
        var href = (evnt.srcElement) ? evnt.srcElement.href : this.href;
        var mailto = "/mailto/" + href.substring(7);
        if (typeof(pageTracker) == "object") pageTracker._trackPageview(mailto);
}

function trackExternalLinks (evnt) {
        var e = (evnt.srcElement) ? evnt.srcElement : this;
        while (e.tagName != "A") {
                e = e.parentNode;
        }
        var lnk = (e.pathname.charAt(0) == "/") ? e.pathname : "/" + e.pathname;
        if (e.search && e.pathname.indexOf(e.search) == -1) lnk += e.search;
        if (e.hostname != location.host) lnk = "/external/" + e.hostname + lnk;
        if (typeof(pageTracker) == "object") pageTracker._trackPageview(lnk);
}

/*
 *  function:     query( name )
 *  purpose:      lookup name=value pair in URL query string
 *  parameters:   name, to match text before '=' symbol in query string
 *  returns:      value text after '=' symbol in query string or empty string
 *  side-effects: none
 */
function query(name) {

  /* fetch query string (the part of URL after the '?' symbol) */
  var queryString = window.location.search.substring(1);

  /* divide query string by '&' symbol */
  var params = queryString.split('&');

  /* look at each text substring between the '&' symbols */
  for (var i=0; i<params.length; i++) {

    /* divide substring by '=' symbol */
    var pair = params[i].split('=');

    /* check if text before '=' symbol matches name parameter */
    if ( String(pair[0]).toLowerCase() == name.toLowerCase() && pair.length > 1 ) {

      /* return text after '=' symbol */
      return pair[1];
    }
  }

  /* no matches found, return empty text string */
  return '';
}

function get_page_id() {
	var pathnames = window.location.pathname.split(/[\\/\.]/); /* dos '\' and unix '/' path separators and dot '.' */
	if( pathnames[pathnames.length-1] == 'html' )
		return pathnames[pathnames.length-2];
	else
		return '';
}

function get_page_lang() {
	var metas = document.getElementsByTagName('meta');
	for( var idx = 0; idx < metas.length; idx++)
		if(metas[idx].getAttribute('name') == "dc.language")
			break;
	return metas[idx].getAttribute('content');
}

function make_link_node( link, text ) {
	var anchorNode = document.createElement('a');
	var linkTextNode = document.createTextNode(text);
	anchorNode.appendChild(linkTextNode);
	anchorNode.setAttribute( 'href', link );
	return anchorNode;
}

function float_node( node, direction ) {
	if( direction == 'left' || direction == 'right' ) {
		node.setAttribute( 'style', 'float:' + direction );
		node.style.styleFloat = direction;
		node.style.textAlign = direction;
	}
}

/* Tree Atlas Ring :: Custom Navigation For Tree Atlas :: added by Dennis :: April 6, 2009 */

function tree_atlas_ring() {
	var tree_index_en = new Array('267029','267030','267031','267239','267240','267242','267243','267245','267244','267246','267249','267250','267251','267252','267318','267322','267323','267328','267332','267334','267336','267337','267338','267348','267350','267351');
	var tree_names_en = new Array('American Mountain-ash','Balsam Fir','Bitternut Hickory','Black Cherry','Black Spruce','Bur Oak','Eastern Hemlock','Eastern White Cedar','Eastern White Pine','Gray Birch','Jack Pine','Peachleaf Willow','Pin Cherry','Red Maple','Red Oak','Red Pine','Shagbark Hickory','Showy Mountain-ash','Silver Maple','Sugar Maple','Tamarack','Trembling Aspen','Tulip Tree','White Birch','White Oak','White Spruce');

	var tree_index_fr = new Array('268191','268196','268197','268198','268199','268200','268201','268202','268203','268204','268205','268206','268207','268208','268209','268210','268211','268212','268213','268214','268215','268216','268217','268218','268219','268220');
	var tree_names_fr = new Array('Sorbier d’Amérique','Sapin baumier','Caryer cordiforme','Cerisier tardif','Épinette noire','Chêne à gros fruits','Pruche du Canada','Thuya occidental','Pin blanc','Bouleau gris','Pin gris','Saule à feuilles de pêcher','Cerisier de Pennsylvanie','Érable rouge','Chêne rouge','Pin rouge','Caryer ovale','Sorbier décoratif','Érable argenté','Érable à sucre','Mélèze laricin','Peuplier faux tremble','Tulipier d’Amérique','Bouleau à papier','Chêne blanc','Épinette blanche');

	/* tree_rings: En_ID, Fr_ID, Ecodistrict, Tree1, Tree2, Tree3, ... */
	var tree_rings = new Array(
		new Array('268121','268267','5E-1',0,1,4,5,7,8,10,12,13,14,15,17,19,20,21,23,25),
		new Array('268122','268268','6E-17',0,1,4,5,7,8,10,12,13,14,15,17,19,20,21,23,25),
		new Array('268123','268269','5E-3',0,1,4,5,7,8,10,12,13,14,15,17,19,20,21,23,25),
		new Array('268124','268270','5E-4',0,1,4,5,7,8,10,12,13,14,15,17,19,20,21,23,25),
		new Array('268125','268271','5E-5',0,1,4,5,7,8,10,12,13,14,15,17,19,20,21,23,25),
		new Array('268126','268272','5E-6',0,1,4,5,7,8,10,12,13,14,15,17,19,20,21,23,25),
		new Array('268127','268273','5E-7',0,1,4,5,7,8,10,11,12,13,14,15,17,19,20,21,23,25),
		new Array('268128','268274','5E-8',0,1,3,4,5,6,7,8,10,11,12,13,14,15,17,18,19,20,21,23,25),
		new Array('268129','268275','5E-9',0,1,3,4,5,6,7,8,10,11,12,13,14,15,17,18,19,20,21,23,25),
		new Array('268130','268276','5E-10',0,1,4,5,7,8,10,11,12,13,14,15,17,19,20,21,23,25),
		new Array('268131','268277','5E-11',0,1,3,4,5,6,7,8,10,11,12,13,14,15,16,17,18,19,20,21,23,25),
		new Array('268132','268278','6E-16',0,1,4,5,7,8,10,12,13,14,15,17,19,20,21,23,25),
		new Array('268133','268279','6E-1',0,1,2,3,4,5,6,7,8,11,12,13,14,15,16,18,19,20,21,23,25),
		new Array('268134','268280','6E-2',0,1,2,3,4,5,6,7,8,11,12,13,14,15,18,19,20,21,23,25),
		new Array('268135','268281','6E-5',0,1,3,4,5,6,7,8,11,12,13,14,15,18,19,20,21,23,25),
		new Array('268136','268282','6E-6',0,1,2,3,4,5,6,7,8,11,12,13,14,15,16,18,19,20,21,23,25),
		new Array('268137','268283','6E-7',0,1,2,3,4,5,6,7,11,12,13,14,15,16,18,19,20,21,23,24,25),
		new Array('268138','268284','6E-8',0,1,2,3,4,5,6,7,8,11,12,13,14,15,16,18,19,20,21,23,24,25),
		new Array('268139','268285','6E-9',0,1,2,3,4,5,6,7,8,9,11,12,13,14,15,16,18,19,20,21,23,24,25),
		new Array('268141','268286','6E-10',0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,19,20,21,23,24,25),
		new Array('268142','268287','6E-11',0,1,2,3,4,5,6,7,8,9,11,12,13,14,15,16,17,18,19,20,21,23,24,25),
		new Array('268143','268288','6E-12',0,1,2,4,5,7,8,9,11,12,13,14,15,16,17,19,20,21,23,24,25),
		new Array('268144','268289','6E-13',0,1,2,3,4,5,6,7,8,11,12,13,14,15,16,18,19,20,21,23,24,25),
		new Array('268145','268290','6E-14',0,1,3,4,5,6,7,8,10,12,13,14,15,17,18,19,20,21,23,25),
		new Array('268146','268291','6E-15',0,1,3,4,5,6,7,8,10,11,12,13,14,15,16,18,19,20,21,23,24,25),
		new Array('268147','268292','7E-1',2,3,5,7,8,11,12,13,14,16,18,19,20,21,22,24),
		new Array('268148','268293','7E-2',2,3,5,7,8,11,12,13,14,16,18,19,20,21,22,24),
		new Array('268149','268294','7E-3',0,2,3,5,6,7,8,11,12,13,14,16,18,19,20,21,22,23,24),
		new Array('268150','268295','7E-4',0,2,3,5,6,7,8,11,12,13,14,16,18,19,20,21,23,24),
		new Array('268151','268296','7E-5',2,3,5,6,7,8,11,12,13,14,16,18,19,20,21,22,24),
		new Array('268152','268297','7E-6',2,3,5,7,8,11,12,13,14,16,18,19,20,21,22,24),
		new Array('','','',0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25)
	);

	/* check for DOM support */
	if(document.createTextNode && document.getElementById && document.createElement ) {

		/* check URL for 'ecodistrict' */
		var eco = query('ecodistrict');

		/* initialize link variables */

		var eco_id = '';
		var backLink = '';
		var backText = '';
		var nextLink = '';
		var nextText = '';
		var ecoLink = '';
		var ecoText = 'Trees in ecodistrict ' + eco;
		var backLabel = 'Previous: ';
		var nextLabel = 'Next: ';

		/* get page ID from URL */

		page_id = get_page_id();
		if("https:" == document.location.protocol) page_id = query('ssDocName');

		/* lookup link information */

		var tree_index = tree_index_en;
		var tree_names = tree_names_en;
		var isFre = 0;

		if( get_page_lang() == "Fre" ) {
			isFre = 1;
			tree_index = tree_index_fr;
			tree_names = tree_names_fr;
			ecoText = "Les arbres dans l'écodistrict " + eco;
			backLabel = 'Précédente : ';
			nextLabel = 'Suivante : ';
		}

		for( var i=0; i<tree_rings.length; i++ ) {
			ring = tree_rings[i];
			if( ring[2] == eco ) { /* note: if eco=='' the full list of trees will be used */
				eco_id = ring[isFre];
				ecoLink = eco_id + '.html'
				break;  /* done, found matching ecodistrict */
			}
		}

		for( var t = 3; t<ring.length; t++) {
			if( tree_index[ring[t]] == page_id ) {

				if(t>3) b=t-1; else b=ring.length-1;
				if(t<ring.length-1) n=t+1; else n=3;

				backLink = tree_index[ring[b]] + '.html';
				backText = tree_names[ring[b]];

				nextLink = tree_index[ring[n]] + '.html';
				nextText = tree_names[ring[n]];

				if(eco) {
					backLink += '?ecodistrict=' + eco;
					nextLink += '?ecodistrict=' + eco;
				}

				if("https:" == document.location.protocol) {
					ecoLink = "javascript:link('" + eco_id + "');";
					backLink = 'idcplg?IdcService=SS_GET_PAGE&ssDocName=' + tree_index[ring[b]] + '&SSContributor=true&ecodistrict=' + eco;
					nextLink = 'idcplg?IdcService=SS_GET_PAGE&ssDocName=' + tree_index[ring[n]] + '&SSContributor=true&ecodistrict=' + eco;
				}
				break;  /* done, found matching tree id */
			}
		}


		/* get all id="tree_atlas_ring_[...]" */
		var ring_div = new Array();
		ring_div[0] = document.getElementById("tree_atlas_ring_top");
		ring_div[1] = document.getElementById("tree_atlas_ring_bottom");

		if( ring_div[0] && ring_div[1] ) { /* make sure this is a tree page */

			/* reduce whitespace above top div */
			ring_div[0].style.marginTop = '-2.5em';

			for( var x=0; x < ring_div.length; x++ ) {
				/* add 'back' link */

				if( backLink ) {
					var link = document.createElement('a');
					link.setAttribute( 'href', backLink );
					link.appendChild(document.createTextNode(backText));

					var link_div = document.createElement('div');
					link_div.appendChild(document.createTextNode(backLabel));
					link_div.appendChild(document.createElement('br'));
					link_div.appendChild(link);

					float_node( link_div, 'left' );
					link_div.style.width = '205px';
					ring_div[x].appendChild( link_div );
				}

				/* add 'ecodistrict' */

				if( eco ) {
					link_div = document.createElement('div').appendChild(make_link_node(ecoLink,ecoText));
					float_node( link_div, 'left' );
					link_div.style.textAlign = 'center';
					link_div.style.width = '160px';
					ring_div[x].appendChild( link_div );
				}

				/* add 'next' link */

				if( nextLink ) {
					var link = document.createElement('a');
					link.setAttribute( 'href', nextLink );
					link.appendChild(document.createTextNode(nextText));

					var link_div = document.createElement('div');
					link_div.appendChild(document.createTextNode(nextLabel));
					link_div.appendChild(document.createElement('br'));
					link_div.appendChild(link);

					float_node( link_div, 'right' );
					link_div.style.width = '205px';
					ring_div[x].appendChild( link_div );
				}
			}
		}
	}
}
tree_atlas_ring();
