
function loader() {
	var myAjax = new Ajax.Request('/content/banner',{method:'get',asynchronous:true, evalScripts:true});
	show_dates_as_local_time();
	pop_up_images();
}

function pop_up_images() {
  var content = document.getElementById('content_area');
  var images = content.getElementsByTagName('IMG');
  for(var i=0; i<images.length; i++) {
  		images[i].onclick = function() {
  			if (this.parentNode.hasAttribute('href')) {
  			  var win = window.open(this.parentNode.getAttribute('href'),'img_pop','toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=640,height=480');
  			  win.focus();
  			  return false;
  			}
  		}
  }
}

function show_dates_as_local_time() {
  var spans = document.getElementsByTagName('span');
  for (var i=0; i<spans.length; i++) {
    if (spans[i].className.match(/\btypo_date\b/i)) {
      spans[i].innerHTML = get_local_time_for_date(spans[i].title);
    }
  }
}
function get_local_time_for_date(time) {
  system_date = new Date(time);
  user_date = new Date();
  delta_minutes = Math.floor((user_date - system_date) / (60 * 1000));
  if (Math.abs(delta_minutes) <= (8*7*24*60)) { // eight weeks... I'm lazy to count days for longer than that
    distance = distance_of_time_in_words(delta_minutes);
    if (delta_minutes < 0) {
      return distance + ' from now';
    } else {
      return distance + ' ago';
    }
  } else {
    return 'on ' + system_date.toLocaleDateString();
  }
}
// a vague copy of rails' inbuilt function,
// but a bit more friendly with the hours.
function distance_of_time_in_words(minutes) {
  if (minutes.isNaN) return "";
  minutes = Math.abs(minutes);
  if (minutes < 1) return ('less than a minute');
  if (minutes < 50) return (minutes + ' minute' + (minutes == 1 ? '' : 's'));
  if (minutes < 90) return ('about one hour');
  if (minutes < 1080) return (Math.round(minutes / 60) + ' hours');
  if (minutes < 1440) return ('one day');
  if (minutes < 2880) return ('about one day');
  else return (Math.round(minutes / 1440) + ' days')
}

function table_hover() {
	var table_body = document.getElementsByTagName('TBODY')[0];
	if (table_body) {
	    var over_link = false;
	    var rows = table_body.getElementsByTagName('TR');
	  	for (var i=0; i<rows.length; i++) {
	   		rows[i].onmouseover=function() {
	   			this.className+="hover";
	   		}
	   		rows[i].onmouseout=function() {
				this.className= '';
			}
			rows[i].onclick=function() {
				if (!over_link) {
				  window.location = this.getElementsByTagName('A')[0].href;
				}
			}
		}
		var links = table_body.getElementsByTagName('A');
	  	for (var i=0; i<links.length; i++) {
	   		links[i].onmouseover=function() {
	   			over_link = true;
	   		}
	   		links[i].onmouseout=function() {
				over_link = false;
			}
		}
	}
}

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