// Customer: National Institute on Aging

//global vars
var emod; //the event model

// Returns the domain portion from an url
function getLastThree(url) {
	var i = url	
	if (i.length > 4) {
		i = i.substring(i.length - 4, i.length);
		x = i.indexOf(".");
		var y = url;
		if (x != -1) {
			if (i == ".gov") {
				i = "";
				} else if(y.indexOf("niapublications") > -1){
					{
						i="";
					}
					i = i;					
				} else {
					var z = y.indexOf("alzheimers")
					if (z>-1)
					{
						i="";
					}
					i = i;
				}
		}
		else {
			i = "";
		}
	}
	else {
		i = "";
	}
	
	return i;
}

// Returns the domain portion from an url
function getDomain(url) {
	
	var i = url.indexOf("://");

	if (i == -1) {
		return "";
	}
	url = url.substring(i + 3, url.length);

	i = url.indexOf("/");
	if (i != -1) {
		url = url.substring(0, i);
	}
	return url;
}


//*(D)*//
function onclickH(e)
{
                var alert_string = "Event model: "+emod+"\n";
				var link_full = "";
				var url_addr = "";
				var url_desc = "";
				var redirURL = ""; //the event model
				var url_subLink = "";
				
                switch (emod)
                {
                                 case "NN4":
                                                  //alert_string += "pageX: "+e.pageX+"\n";
                                                  //alert_string += "pageY: "+e.pageY+"\n";
                                                  alert_string += "target.href: "+e.target.href+"\n";
                                                  alert_string += "target.text: "+e.target.text+"\n";
                                                  //alert_string += "type: "+e.type+"\n";
                                                  
                                                  link_full = e.target.href;
                                                  url_addr = e.target.href;
                                                  url_desc = e.target.text;
                                 break;
                                 case "W3C":
                                                  //alert_string += "clientX: "+e.clientX+"\n";
                                                  //alert_string += "clientY: "+e.clientY+"\n";
                                                  alert_string += "target.href: "+e.target.href+"\n";
                                                  alert_string += "target.text: "+e.target.text+"\n"; 
                                                  //alert_string += "type: "+e.type+"\n";
                                                  var src=e.target;
	                                                  if (src.href == undefined){
														src= src.parentNode;
														if (src.href == undefined){
															src= src.parentNode;
															if (src.href == undefined){
																src= src.parentNode;																
																if (src.href == undefined)
																	src= src.parentNode;
																}
															}
														}

                                                  
                                                  link_full = src.href;
                                                  url_addr = src.href;
                                                  url_desc = src.text;
                                                  
                                                  //link_full = e.target.href;
                                                  //url_addr = e.target.href;
                                                  //url_desc = e.target.text;
                                 break;
                                 //case "IE4+":
                                                  /* (E) */
                                                  //e = window.event;
                                                  //alert_string += "clientX: "+e.clientX+"\n";
                                                  //alert_string += "clientY: "+e.clientY+"\n";
                                                  //alert_string += "srcElement.href: "+e.srcElement.href+"\n";
                                                  //alert_string += "srcElement.innerText: "+e.srcElement.innerText+"\n";
                                                  //alert_string += "type: "+e.type+"\n";
                                                  
                                                  //link_full = e.srcElement.href;
                                                  //url_addr = e.srcElement.href;
                                                  //url_desc = e.srcElement.innerText;
                                 //break;
                                 case "IE4+":
													/* (E) */
                                                  e = window.event;
                                                  //alert_string += "clientX: "+e.clientX+"\n";
                                                  //alert_string += "clientY: "+e.clientY+"\n";
                                                  alert_string += "srcElement.href: "+e.srcElement.href+"\n";
                                                  alert_string += "srcElement.innerText: "+e.srcElement.innerText+"\n";
                                                  //alert_string += "type: "+e.type+"\n";
                                                  var src=e.srcElement;
	                                                  if (src.href == undefined){
														src= src.parentNode;
														if (src.href == undefined){
															src= src.parentNode;
															if (src.href == undefined){
																src= src.parentNode;																
																if (src.href == undefined)
																	src= src.parentNode;
																}
															}
														}
                                                  link_full = src.href;
                                                  url_addr = src.href;
                                                  url_desc = src.innerText;
                                 break;
                                 
                }

                //alert(alert_string);
                 //Below code fixes the javascript problem that will occur when user clicks on any place other than URL.
                 //if (url_addr==undefined)
				//	return false;
              
                /* get domain address */
                url_addr = getDomain(url_addr);
                //alert(url_addr);
                      
                var lastthree_addr = ""
                
                lastthree_addr = getLastThree(url_addr);
               
                if (lastthree_addr.length > 0) {
	               //alert(lastthree_addr);
	               if (url_desc.length > 0) {
	               		redirURL = "/ExternalSitesDisclaimer.htm?URL=" + replaceChars(link_full) + "&DESC=" + replaceDesc(url_desc);
	               }
	               else {
	               		redirURL = "/ExternalSitesDisclaimer.htm?URL=" + link_full;
	               }
	            }

				if (redirURL.length > 0) {
					//alert(redirURL);
					document.location.href = redirURL;
					return false;
				}
				else {
                	return true;
                }
}

function onloadH(e)
{

                //*(A)*//
                emod = (e) ? (e.eventPhase) ? "W3C" : "NN4" : (window.event) ? "IE4+"  : "unknown";

                //*(B)*//
                if (emod == "NN4")
                	document.captureEvents(Event.CLICK);

                //*(C)*//
                document.onclick = onclickH;
 
                return true;
}

function replaceChars(entry) {
out = "/"; // replace this
add = "%2f"; // with this
SColonOut = ";"; 
SColonAdd = "%3b";
SEqualOut = "="; 
SEqualAdd = "%3d";
SQuestionOut = "?";
SQuestionAdd = "%3f";
temp = "" + entry; // temporary holder

	for (count = 0; count < temp.length; count++)
	{
		if (temp.indexOf(SColonOut)>-1)
		{
			pos= temp.indexOf(SColonOut);
			temp = "" + (temp.substring(0, pos) + SColonAdd + 
			temp.substring((pos + SColonOut.length), temp.length));
		}
		if (temp.indexOf(SEqualOut)>-1)
		{
			pos= temp.indexOf(SEqualOut);
			temp = "" + (temp.substring(0, pos) + SEqualAdd + 
			temp.substring((pos + SEqualOut.length), temp.length));
		}
		if (temp.indexOf(out)>-1)
		{
			pos= temp.indexOf(out);
			temp = "" + (temp.substring(0, pos) + add + 
			temp.substring((pos + out.length), temp.length));
		}
		if (temp.indexOf(SQuestionOut)>-1)
		{
			pos= temp.indexOf(SQuestionOut);
			temp = "" + (temp.substring(0, pos) + SQuestionAdd + 
			temp.substring((pos + SQuestionOut.length), temp.length));
		}		
	}
	/*while (temp.indexOf(out)>-1) {
	pos= temp.indexOf(out);
	temp = "" + (temp.substring(0, pos) + add + 
	temp.substring((pos + out.length), temp.length));
	}*/
	return temp;
}

function replaceDesc(DesEntry) {
	DesOut = "/"; // replace this
	DesAdd = "%2f"; // with this
	DesTemp = "" + DesEntry; // temporary holder
	
	while (DesTemp.indexOf(DesOut)>-1) {
	DesPos= DesTemp.indexOf(out);
	DesTemp = "" + (DesTemp.substring(0, DesPos) + DesAdd + 
	DesTemp.substring((DesPos + DesOut.length), DesTemp.length));
	}
	return DesTemp;
}
//define the event handler for the onload event
window.onload = onloadH;
