
// Updates all links with the newWindow class to make the onClick event of those
// elements cause a new window to open
function addNewWindowFunctionality(){
	// Remove previously bound events
	$('.newWindow').unbind('click');

	// Now bind events
	$('.newWindow')
		.click(function(){return false;})
		.click(function(evt){
			var elem = getElement(evt);
			if(!elem) return;
			
			var href = $(elem).attr('href');
			var windowName = $(elem).attr('rel');
		
			// If no rel defined for window name generate one from date time
			if(typeof windowName == "undefined"){
				windowName = "window" + (new Date()).getTime();
			}
		
			var height = $(elem).attr('height');
			var width = $(elem).attr('width');
			var size = "";
			if(width && height){
				size = ",width=" + width + ",height=" + height;
			}
		
			var menuOptions = "";
			if(href.toLowerCase().indexOf("http") == 0){
				menuOptions = "menubar,toolbar,location,";
			}
		
			window.open(href, windowName, menuOptions + 'status,scrollbars,resizable'+size);
		}
	);
}


function getElement(evt) {
  evt = (evt) ? evt : ((window.event) ? window.event : "");

  if (evt) {
    var elem;
    if (evt.target) {
      elem = (evt.target.nodeType == 3) ? evt.target.parentNode : evt.target;
    }
    else {
      elem = evt.srcElement;
    }
    return elem;
  }
  else {
    alert("No event received.");
  }
}