/*==============================================================================
 Copyright (C) 2007 JPL Productions.  All Rights Reserved.
 -------------------------------------------------------------------------------
 File: 	base.js - JavaScript Library required for all pages of all sites.
 		Do not alter this file per project; please add custom site-wide code to
 		custom.js instead.
==============================================================================*/

function handleExternalLinks() {

	// see custom.js for criteria

	var anchors = document.getElementsByTagName("a");
	var i, href;
	var match_internal, match_external;

	for(i = 0; i < anchors.length; i++){
		if(!anchors[i].href) continue;
		href = anchors[i].href;
		match_internal = false;
		match_external = false;

		// look for things that must open in the same browser window.
		for (var j = 0; j < internalLinkCriteria.length; j++) {
			if (href.indexOf(internalLinkCriteria[j]) >= 0) {
				match_internal = true;
			}
		}

		if(!match_internal){ // Href is not a file on my server
			if(href.indexOf("javascript:") == -1){ // Href is not a javascript call
				if(!anchors[i].onclick){ // Href does not have an onclick event
					if(href.indexOf("mailto:") == -1){ // Href is not a mailto:
						if(href.indexOf("http://") != -1 || href.indexOf("https://") != -1) { // Href is not relative (for Safari)
							anchors[i].setAttribute("target","_blank");
						}
					}
				}
			}
		}

		for (var j = 0; j < externalLinkCriteria.length; j++) {
			if (href.indexOf(externalLinkCriteria[j]) >= 0) {
				match_external = true;
			}
		}
		if (match_external) anchors[i].setAttribute("target","_blank");
	}
}


restoreDefault = function() {
   if (!this.value){
	  this.value=this.defaultValue;
   }
}

clearDefault = function() {
   if (this.value==this.defaultValue){
	  this.value='';
   }
}

setInputHandlers = function() {
   for(var i=0;i<document.forms.length;i++){
	  f=document.forms[i];
	  for(var j=0;j<f.length;j++){
		 c=f[j];
		 if(c.type == 'text' || c.type == 'textarea'){
			// c.onfocus=clearDefault;
			// c.onblur=restoreDefault;
		 }
	  }
   }
}

addEvent = function(obj, evType, fn, useCapture){
   if (obj.addEventListener){
	  obj.addEventListener(evType, fn, useCapture);
	  return true;
   } else if (obj.attachEvent){
	  var r = obj.attachEvent("on"+evType, fn);
	  return r;
   } else {
	  // be silent
	  // alert("Handler could not be attached");
   }
}

removeEvent = function(obj, evType, fn, useCapture){
   if (obj.removeEventListener) {
	  obj.removeEventListener(evType, fn, useCapture);
	  return true;
   } else if (obj.detachEvent){
	  var r = obj.detachEvent("on"+evType, fn);
	  return r;
   } else {
	  // be silent
	  // alert("Handler could not be removed");
   }
}
