﻿//Open offsite links in new window script- http://www.dynamicdrive.com/
//Created: August 28th, 2007'

var ddwindowlinks = {
	//1)Enter domains to be EXCLUDED from opening in new window:
	excludedomains: [window.location.hostname, "", "#", "javascript", "phx.corporate-ir.net", "investors.kindredhealthcare.com"],

	//2) Target for links that should open in a new window (ie: "_blank", "secwin" etc):
	linktarget: "_blank",

	//3) Specify operating mode ("auto" or "manual"):
	mode: "auto",

	//4) If mode is "manual", customize checkbox HTML to show to users (Preserve id attribute):
	toggleHTML: '<form><input type="checkbox" id="targetcheckbox" checked="checked" /><label for="targetcheckbox">Open off-site links in new window?</label></form>',

	//5) If mode is "manual", enable user persistence so the state of the checkbox is remembered?
	persist: true,

	assigntarget: function() {
		var rexcludedomains = new RegExp(this.excludedomains.join("|"), "i")
		var all_links = document.getElementsByTagName("a")
		if (this.mode == "auto" || (this.mode == "manual" && this.togglebox.checked)) {
			for (var i = 0; i <= (all_links.length - 1); i++) {
				if (all_links[i].className.indexOf("exclude-external") != -1) {
					continue;
				}

				if (all_links[i].href.search(rexcludedomains) == -1) {
					var externalLinkUrl = all_links[i].href;
					all_links[i].href = externalLinkUrl;
					all_links[i].target = ddwindowlinks.linktarget;
				}
			}

		}
		else {
			for (var i = 0; i <= (all_links.length - 1); i++)
				all_links[i].target = ""
		}
		if (this.mode == "manual" && this.persist)
			this.setCookie("dlinktarget", (this.togglebox.checked) ? "yes" : "no", 30) //remember user setting for 30 days (set to -1 then reload page to erase cookie)
	},

	init: function() {
		if (document.getElementById && this.mode == "manual") {
			document.write(this.toggleHTML)
			this.togglebox = document.getElementById("targetcheckbox")
			this.togglebox.onclick = function() { ddwindowlinks.assigntarget() }
			if (this.persist && this.getCookie("dlinktarget") != "")
				this.togglebox.checked = (this.getCookie("dlinktarget") == "yes") ? true : false
		}
		if (window.addEventListener)
			window.addEventListener("load", function() { ddwindowlinks.assigntarget() }, false)
		else if (window.attachEvent)
			window.attachEvent("onload", function() { ddwindowlinks.assigntarget() })
	},

	getCookie: function(Name) {
		var re = new RegExp(Name + "=[^;]+", "i"); //construct RE to search for target name/value pair
		if (document.cookie.match(re)) //if cookie found
			return document.cookie.match(re)[0].split("=")[1] //return its value
		return ""
	},

	setCookie: function(name, value, days) {
		var expireDate = new Date()
		//set "expstring" to either an explicit date (past or future)
		var expstring = expireDate.setDate(expireDate.getDate() + parseInt(days))
		document.cookie = name + "=" + value + "; expires=" + expireDate.toGMTString() + "; path=/"
	}

}

ddwindowlinks.init()
