// Load display functions
addEvent(window, 'load', externalLinks);
addEvent(window, 'load', tabView_init);

// Hide tool panels and headings upon load


// Opens external window from a link via rel="external"; mimics target="_blank", a W3C deprecated attribute
function externalLinks() {
if (!document.getElementsByTagName) return;
	var anchors = document.getElementsByTagName("a");
	for (var i=0; i<anchors.length; i++) {
		var anchor = anchors[i];
		if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external") anchor.target = "_blank";
	}
}
// Adds an event to the page
function addEvent(obj, evType, fn) {
	if (obj.addEventListener) {
		obj.addEventListener(evType, fn, true);
		return true;
	} else if (obj.attachEvent){
		var r = obj.attachEvent("on"+evType, fn);
		return r;
	} else {
		return false;
	}
}
// Invoke mouseover menu functionality for IE
startList = function() {
	if (document.all && document.getElementById) {
		var node = document.getElementById("productNav").getElementsByTagName("LI");
		for (i=0; i<node.length; i++) {
			node[i].onmouseover = function() {
				this.className += " over";
			}
			node[i].onmouseout = function() {
				this.className = this.className.replace(new RegExp(" over\\b"), "");
			}
		}
	}
}
addEvent(window, 'load', startList);

// tabView switching functions
var tabView_toggleElements = [];
var previous_tab = '';
function tabView_init() {
	if (!document.getElementById('tabViewNav')) return;
	var i, j, link, id, target, first;
	first = true;
	j = 0;
	for (i = 0; (link = document.links[i]); i++) {
		if (/\btab\b/.exec(link.className)) {
			j++;
			id = link.href.split('#')[1];
            target = document.getElementById(id);
            tabView_toggleElements[tabView_toggleElements.length] = target;
			if (first) {
                link.className += ' current';
				link.parentNode.className = 'current';
				previous_tab = link;
				target.style.display = 'block';
				first = false;
            } else {
				target.style.display = 'none';
            }
            link.onclick = tabView_toggle;
		}
	}
}

function tabView_toggle(e) {
    /* Adapted from http://www.quirksmode.org/js/events_properties.html */
    if (typeof e == 'undefined') {
        var e = window.event;
    }
    var source;
    if (typeof e.target != 'undefined') {
        source = e.target;
    } else if (typeof e.srcElement != 'undefined') {
        source = e.srcElement;
    } else {
        return true;
    }
    /* For most browsers, targ would now be a link element; Safari however
       returns a text node so we need to check the node type to make sure */
    if (source.nodeType == 3) {
        source = source.parentNode;
    }
    var id = source.href.split('#')[1];
    var elem;
    for (var i = 0; (elem = tabView_toggleElements[i]); i++) {
        if (elem.id != id) {
            elem.style.display = 'none';
        } else {
            elem.style.display = 'block';
			source.className = 'tab current';
        }
		if (previous_tab != source) {
			previous_tab.className = 'tab';
		}
		previous_tab = source;
    }
    return false;
}

//	Javascript to tag file downloads and external links in Google Analytics
//	To use, place reference to this file should be placed at the bottom of all pages, 
//	just above the Google Analytics tracking code.
//	All outbound links and links to non-html files should now be automatically tracked.
//
//  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//	Created by: 	Colm McBarron, colm.mcbarron@iqcontent.com
//	Last updated: 	12-Feb-2006
//	+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//

var hrefs = document.getElementsByTagName("a");
var link_path = "";
for (var l = 0; l < hrefs.length; l++) {
		try {
			var link_path = hrefs[l].pathname;
			if (location.host == hrefs[l].hostname) {
				if (link_path.match(/\.(doc|pdf|xls|ppt|zip|txt|vsd|vxd|js|css|rar|exe|wma|mov|avi|wmv|mp3)$/)) {
					addtrackerlistener(hrefs[l]);
				}
			} else {
				addtrackerlistener(hrefs[l]);
			}
		}
		catch(err) { }
}


function addtrackerlistener(obj) {
	if (obj.addEventListener) {
		obj.addEventListener('click', trackfiles, true);
	} else if (obj.attachEvent) {
		obj.attachEvent("on" + 'click', trackfiles);
	}
}

function trackfiles(array_element) {
	file_path = "";
	if (location.host != this.hostname) {
		file_path = "/exlinks/" + ((array_element.srcElement) ? "/" + array_element.srcElement.hostname : this.hostname);
	}
	file_path = file_path + ((array_element.srcElement) ? "/" + array_element.srcElement.pathname : this.pathname);
	urchinTracker(file_path);
}

//################################
//PDF, Doc and Zip Labeling
//################################
function fileLinks() {
    var fileLink;
    if (document.getElementsByTagName('a')) {
        for (var i = 0; (fileLink = document.getElementsByTagName('a')[i]); i++) {
            if (fileLink.href.indexOf('.pdf') != -1) {
                fileLink.setAttribute('target', '_blank');
                fileLink.className = 'pdfLink';
            }
            if (fileLink.href.indexOf('.doc') != -1) {
                fileLink.setAttribute('target', '_blank');
                fileLink.className = 'docLink';
            }
            if (fileLink.href.indexOf('.zip') != -1) {
                fileLink.setAttribute('target', '_blank');
                fileLink.className = 'zipLink';
            }
        }
    }
}
window.onload = function() {
    fileLinks();
}
