
// For discussion and reference, visit:
// http://www.alistapart.com/articles/popuplinks 

// equalize DOMs
function listen(event, element, func) {

    // IE5 DOM
    if (element.attachEvent) {
    element.attachEvent('on'+event, function(){ func(new W3CDOM_Event(element)) } );

    // W3C DOM
    } else {
    element.addEventListener(event,func,false) }

}

function W3CDOM_Event(currentTarget) {
    this.currentTarget  = currentTarget;
    this.preventDefault = function() { window.event.returnValue = false }
    return this;
}


// OnLoad
// listen('load', window, eventLoad );

function eventLoad() {

  // listen for equalized events

  listen('click', document.getElementById('next'), Next );
  listen('keypress', document.getElementById('next'), Next );

  listen('click', document.getElementById('prev'), Next );
  listen('keypress', document.getElementById('prev'), Next );

  imageLoad();

}


var menu = new Array();
var image = new Array();
function imageLoad() {

  // Author: Brian Carter

  var url = '/cgi-local/nph-next.pl';
  var ajax = new Ajax.Request(url, {
    method: 'get', asynchronous:true, 
    onComplete:function(originalRequest) {
    eval(originalRequest.responseText);
    if (document.images) {
    for (var i=0;i<menu.length;i++) {
      var rgx = /src\=\"(.+?)\"/;
      var src = menu[i].match(rgx);
      image[i] = new Image();
      image[i].src = src[1];
    }}

  } });


}


// For discussion and reference, visit:
// http://www.quirksmode.org/css/opacity.html
// http://www.quirksmode.org/js/opacity.html

var obj;
function initFade() {
	
  	// bug fix: mac firefox 1.5.0.6
  	// the next image flashes before delay
	document.getElementById('bug').style.visibility='visible';
	
	for (var i=9.9;i>=0;i--) {
	setTimeout('setOpacity('+i+')',20*i); }
	
}

function setOpacity(value) {

	obj.style.opacity = value/10;
	obj.style.MozOpacity = value/10;
	obj.style.KhtmlOpacity = value/10;
	obj.style.filter = 'alpha(opacity=' + value*10 + ')';
}

function Next(e) {

  // Author: Brian Carter
  
  obj = document.getElementById('container');
  setOpacity(0);

  // check for session cookie
  var count = getCookie("count") ? getCookie("count") : 0;
  
  if (e.currentTarget.id == 'next') { ++count; }
  if (e.currentTarget.id == 'prev') { --count; }

  if (count > (menu.length)-1) { count = 0 }
  if (count < 0) { count = (menu.length)-1 }
  
  // bug fix: mac firefox 1.5.0.6
  // the next image flashes before delay
  var span = '<span id="bug" style="visibility:hidden">';
  
  obj.innerHTML = span + menu[count] + '<\/span>';
  var fade = setTimeout('initFade()',10);
  
  // set session cookies
 setCookie("count", count);
 setCookie("container", escape(menu[count]));

  // return false
  e.preventDefault();

}

// For discussion and reference, visit:
// http://www.alistapart.com/articles/alternate/

function setCookie(name,value,days) {
	if (days) {
	var date = new Date();
	date.setTime(date.getTime()+(days*24*60*60*1000));
	var expires = "; expires="+date.toGMTString();
	}
	else expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function getCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
	var c = ca[i];
	while (c.charAt(0)==' ') c = c.substring(1,c.length);
	if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}
