function characters_remaining(e, status, max) {    
	if (e.value.length > max) {
		   e.value = e.value.substring(0, max);
   	} else {
		   document.getElementById(status).innerHTML = max - e.value.length;
	}
}

function addEvent(obj, eventType, fn, useCapture) {
	if (obj.addEventListener) {
		obj.addEventListener(eventType, fn, useCapture);
		return true;
	} else {
		if (obj.attachEvent) {
			var r = obj.attachEvent("on"+eventType, fn);
			return r;
		}
	}
}

function blurAnchors() {
  if(document.getElementsByTagName){
    var a = document.getElementsByTagName("a");
    for(var i = 0; i < a.length; i++){
      addEvent(a[i], "focus", function(){this.blur()});
    }
  }
}

function externalLinks() {
	if (!document.getElementsByTagName) return;
	var a = document.getElementsByTagName("a");
	for (var i = 0; i < a.length; i++) {
		var link = a[i];
		if (link.getAttribute("href") && link.getAttribute("rel") == "external") {
			link.target = "_blank";
		}
	}
}

addEvent(window, "load", externalLinks);

// Name: Popups
// Description: Group of functions to create accessible pop-up links.
// Source: http://www.alistapart.com/articles/popuplinks/
// --------------------------------------------------
var _POPUP_FEATURES = 'location=no,statusbar=no,menubar=no,resizable=yes,scrollbars=yes,width=800,height=500';

function isUndefined(v) { 
   var undef;
   return v===undef;
}

function raw_popup(url, target, features) {
  if (isUndefined(features)) {
    features = _POPUP_FEATURES;
  }
  if (isUndefined(target)) {
    target = '_blank';
  }
  var theWindow =
    window.open(url, target, features);
  theWindow.focus();
  return theWindow;
}

function popup(src, features) {
  return raw_popup(src.getAttribute('href'),
    src.getAttribute('target') || '_blank',
    features);
}
