/*Version: $Id: presentation1.js 1323 2005-10-07 11:52:46Z ray $*/

var newwindow = '';

function myVoid() { ; } // do nothing

/*---------------------------------*/
/*Code for generating rollover images
/*---------------------------------*/

function rollover(doc_name, image_name, image_src) {
	doc_name.getElementById(image_name).src = image_src;
}

/*---------------------------------*/
/*Code for generating random banners
/*---------------------------------*/

function bannerRotate (banners, anchor_target_id, image_target_id) {
	var n;
	//pick a random image number
	n = Math.floor(Math.random() * banners.length);
	document.getElementById(image_target_id).src = banners[n][0];
	document.getElementById(anchor_target_id).href = banners[n][1];
	//alert(images[n]);
	return 0;
}

/*---------------------------------*/
/*Code for fixing Internet Explorer!!!
/*Fortunately, can use some DOM1 methods with IE5 but still have to resort to IE5 DHTML to retrieve objects.
/*IE4, like NS4, does not support the DOM model at all and therefore the help elements probably won't disappear, anyway... i think
/*---------------------------------*/

function fixIERender(doc_name) {
	var imgs = document.body.all.tags("img");
	for (i = 0; i < imgs.length; i++) {
		if (imgs[i].getAttributeNode('class').value == 'infoBubbleDiv') {
			imgs[i].style.visibility = 'inherit';
		}
	}
}

/*---------------------------------*/
/*Automatic execution*/
/*---------------------------------*/

window.onload = function() {
	if (document.getElementById('quoteDiv')) {
		//document.getElementById('quoteDiv').innerHTML = getRandomQuote();
	}
/*
	if (document.layers) { // Netscape
		document.captureEvents(Event.MOUSEMOVE);
		document.onmousemove = captureMousePosition;
	} else if (document.getElementById) { // Netcsape 6
		document.getElementById("documentBody").onmousemove = captureMousePosition;
	}
*/

	if (document.all) {
		myMenus = document.getElementsByClass("menu");
		myId = document.getElementById("menu");
		if (myId) myMenus[myMenus.length] = myId;

		for (i = 0; i < myMenus.length; i++) {
			sfHover(myMenus[i]);
		}
		
	}
}

/*---------------------------------*/
/*Generally useful*/
/*---------------------------------*/

document.getElementsByClass = function (needle)
{
  var         my_array = document.getElementsByTagName("*");
  var         retvalue = new Array();
  var        i = 0;
  var        j = 0;

  for (i = 0, j= 0; i < my_array.length; i++)
  {
    var c = " " + my_array[i].className + " ";
    if (c.indexOf(" " + needle + " ") != -1)
      retvalue[j++] = my_array[i];
  }
  return retvalue;
}

/*---------------------------------*/
/*menu gubbins*/
/*son of suckerfish: http://www.htmldog.com/articles/suckerfish/dropdowns/*/
/*---------------------------------*/

sfHover = function(menuElement) {
	var sfEls = menuElement.getElementsByTagName("LI");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className+=" sfhover";
		}
		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
		}
	}
}

/*---------------------------------*/
/*font size functions            */
/*---------------------------------*/

function setFontSize(size) {
	var myEl;
	
	myEl = document.getElementsByTagName('html')[0];
	
	myEl.style.fontSize = size + "em";
}

/*---------------------------------*/
/*popup window           */
/*---------------------------------*/

function newPopUp (url, name, options) {
	
	//assume for the time being it is 3 characters 
	var myWidth = options.substr(options.indexOf("width=") + 6, 3);
	var myHeight = options.substr(options.indexOf("height=") + 7, 3);

	if (!newwindow.closed && newwindow.location)
	{
		newwindow.location.href = url;
		newwindow.resizeTo(myWidth, myHeight);
		newwindow.focus();
	}
	else
	{
		newwindow=window.open(url,name,options);
		if (!newwindow.opener) newwindow.opener = self;
	}
	if (window.focus) {newwindow.focus()}
	return false;
}

/*---------------------------------*/
/*kev's pagination script          */
/*---------------------------------*/

  function pagination(anchor, current_page, maxpage, thisURI ) {
     var work_str = '';

     if ( current_page == 0 && maxpage == 1 ) {
        return '';
     }
     for ( i=0; i<maxpage; i++) {
       if ( i == current_page ) {
          work_str = work_str+' '+(i+1);
       }
       else {
           work_str = work_str+' <a href="'+thisURI+'?pa='+i+'#'+anchor+'">'+(i+1)+'</a>';
       }
     }
     return work_str;
  }

/*---------------------------------*/
/*kev's 'new' and 'updated' flags  */
/*---------------------------------*/

		  function newFlag(dateString,createdString,startString) {
		  var today=new Date();
		  var one_day=1000*60*60*24;
		  var publishedDate = new Date(getDateFromFormat(dateString,'yyyy-MM-dd HH:mm')); 
		  var createdDate = new Date(getDateFromFormat(createdString,'yyyy-MM-dd HH:mm')); 
		  
		  var PublishedDaysOld = Math.ceil((today.getTime()-publishedDate.getTime())/(one_day)); 
		  var CreatedDaysOld = Math.ceil((today.getTime()-createdDate.getTime())/(one_day)); 
		  
		  if ( startString ) {
		     var startDate = new Date(getDateFromFormat(startString,'yyyy-MM-dd HH:mm')); 
		     var StartDaysOld = Math.ceil((today.getTime()-startDate.getTime())/(one_day)); 
                     if ( StartDaysOld < 30 ) {
                         return '<span class="newarticle">New!</span>';
                     }
		     if ( createdDate >= startDate ) {
                        if ( PublishedDaysOld < 30 && (PublishedDaysOld < StartDaysOld ) ) {
                          return '<span class="newarticle">Updated!</span>';
		        }
		      } 
		  }
		  if ( PublishedDaysOld < 30 ) {
                     if ( CreatedDaysOld < 30 || ( CreatedDaysOld <= PublishedDaysOld) ) {
                        return '<span class="newarticle">New!</span>';
                     }
                  else {
                     return '<span class="newarticle">Updated!</span>';
                  }
               }
               return ''; 
               } 
               
    /***************************/
    /* date & time              */
    /***************************/
    
			function getCalendarDate()
			{
			   var months = new Array(13);
			   months[0]  = "January";
			   months[1]  = "February";
			   months[2]  = "March";
			   months[3]  = "April";
			   months[4]  = "May";
			   months[5]  = "June";
			   months[6]  = "July";
			   months[7]  = "August";
			   months[8]  = "September";
			   months[9]  = "October";
			   months[10] = "November";
			   months[11] = "December";
			   var days   = new Array(7);
			   days[1]    = "Monday";
			   days[2]    = "Tuesday";
			   days[3]    = "Wednesday";
			   days[4]    = "Thursday";
			   days[5]    = "Friday";
			   days[6]    = "Saturday";
			   days[7]    = "Sunday";
			   var now         = new Date();
			   var monthnumber = now.getMonth();
			   var monthname   = months[monthnumber];
			   var monthday    = now.getDate();
			   var weekday     = days[now.getDay()];
			   var year        = now.getYear();
			   if(year < 2000) { year = year + 1900; }
			   var dateString = weekday +
			                    '&#xA0;' +			   
			                    monthname + 
								'&#xA0;' + 
								monthday + 
								'&#xA0;' + 
								year;
			   return dateString;
			}
	
			function getClockTime()
			{
			   var now    = new Date();
			   var hour   = now.getHours();
			   var minute = now.getMinutes();
			   var ap = "AM";
			   if (hour   > 11) { ap = "PM";             }
			   if (hour   > 12) { hour = hour - 12;      }
			   if (hour   == 0) { hour = 12;             }
			   //if (hour   < 10) { hour   = "0" + hour;   }
			   if (minute < 10) { minute = "0" + minute; }
			   var timeString = hour + 
								':' + 
								minute + 
								" " + 
								ap;
			   return timeString;
			}
			
	function doDate(dateString,dateFormat) { 
		var createdDate = new Date(getDateFromFormat(dateString,'yyyy-MM-dd HH:mm'));
		if ( !(dateFormat) ) {
			dateFormat = 'd NNN y';
		}
	   
		return '&#xA0;'+formatDate(createdDate,dateFormat)+'&#xA0;';
	}
