// JavaScript General Purpose Routines
//
// RCS version : $Id: common.js,v 1.2 2000/04/24 18:31:29 root Exp $
// RCS log entries
// $Log: common.js,v $
// Revision 1.2  2000/04/24 18:31:29  root
// corrected `{` within a comment, caused by format change
//
// Revision 1.1  2000/04/24 18:05:19  root
// Initial revision
//
//
function makeArray0() {
	for (i = 0; i<makeArray0.arguments.length; i++)
		this[i] = makeArray0.arguments[i];
}
function WhichBrowser() {
	var bnames = new makeArray0( "unidentified","Netscape Navigator","Microsoft Internet Explorer","America Online", "Opera" );
	var agent = navigator.userAgent.toLowerCase();
	var s = (-1 != agent.indexOf("opera")) ? 4 : (-1 != agent.indexOf ("aol")) ? 3 : (-1 != agent.indexOf ("msie")) ? 2 : (-1 != agent.indexOf ("mozilla")) ? 1 : 0 ;
	return bnames[s];
}
function WhichViewNo() {
	var agent = navigator.userAgent.toLowerCase();
	var s = ( (-1 != agent.indexOf("opera")) ? 4 : (-1 != agent.indexOf ("aol")) ? 3 : ( -1 != agent.indexOf ("msie")) ? 2 : ( -1 != agent.indexOf ("mozilla")) ? 1 : 0);
   return s;
}
function WhichViewVer() {
	return parseInt(navigator.appVersion);
}
top.wcreated = new Array();
function open_window( file ) {
	var argv = open_window.arguments;
	var argc = open_window.arguments.length;
	var agent = navigator.userAgent.toLowerCase();
	var major_ver = parseInt(navigator.appVersion);
	var new_window = null;
      var no_window_exists =  true;
	var window_name = (argc > 3) ? argv[3] : "remote_window";	// name for window [defaults]
	if( !top.wcreated[window_name] || top.wcreated[window_name].closed ) {
		if (argc < 1 ) {
			var window_attributes = "";
		}
		else {
			var window_attributes = "" +
((argc > 4) ? ((argv[4] == null) ? "" : ((argv[4] == 1) ? "resizable=1" : "resizable=0")): "" )+
((argc > 5) ? ((argv[5] == null) ? "" : ((argv[5] == 1) ? ",scrollbars=1" : ",scrollbars=0")): "") +
((argc > 6) ? ((argv[6] == null) ? "" : ((argv[6] == 1) ? ",status=1" : ",status=0")): "") +
((argc > 7) ? ((argv[7] == null) ? "" : ((argv[7] == 1) ? ",location=1" : ",location=0")): "") +
((argc > 8) ? ((argv[8] == null) ? "" : ((argv[8] == 1) ? ",menubar=1" : ",menubar=0")): "") +
((argc > 9) ? ((argv[9] == null) ? "" : ((argv[9] == 1) ? ",directories=1" : ",directories=0")): "") +
((argc > 10) ? ((argv[10] == null) ? "" : ((argv[10] == 1) ? ",toolbar=1" : ",toolbar=0")): "");
			if( ((agent.indexOf('mozilla')!=-1) && (agent.indexOf('spoofer')==-1) && (agent.indexOf('compatible') == -1)) && (major_ver >= 4) ) {
				window_attributes = "" + window_attributes +
((argc > 1) ? ((argv[1] == null) ? "" : ",innerWidth=" + ((eval(argv[1]) > 100) ? argv[1]: 100) ) : "") +
((argc > 2) ? ((argv[2] == null) ? "" : ",innerHeight=" + ((eval(argv[2]) > 100) ? argv[2]: 100) ) : "") +
((argc > 11) ? ((argv[11] == null) ? "" : ",screenX="+argv[11]) : "") +
((argc > 12) ? ((argv[12] == null) ? "" : ",screenY="+argv[12]) : "") +
((argc > 13) ? ((argv[13] == null) ? "" : ",outerHeight=" + ((eval(argv[13]) > 100) ? argv[13]: 100) ) : "") +
((argc > 14) ? ((argv[14] == null) ? "" : ",outerWidth=" +  ((eval(argv[1]) > 100) ? argv[1]: 100) ) : "") +
((argc > 15) ? ((argv[15] == null) ? "" : ((argv[15] == 1) ? ",dependent=1" : ",dependent=0")): "") ;
			}
			else {
				window_attributes = "" + window_attributes +
((argc > 1) ? ((argv[1] == null) ? "" : ",width=" + ((eval(argv[1]) > 100) ? argv[1]: 100) ) : "") +
((argc > 2) ? ((argv[2] == null) ? "" : ",height=" + ((eval(argv[2]) > 100) ? argv[2]: 100) ) : "") ;
				if( (agent.indexOf('msie')!=-1) && (major_ver >= 4) ) {
					window_attributes = "" + window_attributes +
((argc > 11) ? ((argv[11] == null) ? "" : ",screenX="+argv[11]) : "") +
((argc > 12) ? ((argv[12] == null) ? "" : ",screenY="+argv[12]) : "") +
((argc > 16) ? ((argv[16] == null) ? "" : ((argv[16] == 1) ? ",fullscreen=1" : ",fullscreen=0")): "") + 
((argc > 17) ? ((argv[17] == null) ? "" : ((argv[17] == 1) ? ",channelmode=1" : ",channelmode=0")): "");
				}
			}
		}
		new_window = window.open( file, window_name, window_attributes );
		new_window.opener = SetOpener(new_window);
		if( !new_window ) {
			no_window_exists = true;
		}
		else {
			no_window_exists = false;
			new_window.opener = SetOpener(new_window);
			top.wcreated[window_name] = new_window;
		}
	}
	else {
		no_window_exists = false;
		top.wcreated[window_name].location.href = file;
	}
	if( (major_ver > 2) && !( no_window_exists) ) {
		top.wcreated[window_name].focus();
	}
	return no_window_exists;
}
/* crib list for format
open_window( file,width|innerWidth,height|innerHeight,window name,resizable,scrollbars,status,location,menubar,directories,toolbar,screenX|left,screenY|top,outerHeight,outerWidth,dependent,fullscreen,channelmode)
*/
function close_created() {
	var argv = close_created.arguments;
	var argc = close_created.arguments.length;
	if( argc < 1) {
		for( rwin in top.wcreated) {
			(top.wcreated[rwin] == null) ? "" : top.wcreated[rwin].close();
			top.wcreated[rwin] = null;
		}
	}
	else {
		for(var i = 0 ; i < argc ; i++) {
			for( rwin in top.wcreated) {
				if( (rwin == argv[i])  && (top.wcreated[rwin] != null) ) {
					top.wcreated[rwin].close();
					top.wcreated[rwin] = null;
				}
			}
		}
	}
}
function SetOpener(target) {
	var originator = null;
	originator = ((target.opener == null) ? self : target.opener);
	return  originator;
}
function RetraceStep() {
	if(isEmpty(document.referrer)) {
		parent.location = window.top.location;
	}
	else {
		if(window.opener == null) {
			parent.location = document.referrer;
		}
		else {
			opener.location = document.referrer;
			self.close();
		}
	}
	return;
}
function closeW() {
	top.close();
return;
}
function isEmpty(s) {   
	return ((s == null) || (s.length == 0));
}
function formatnumber( number, places ) {
	var power =  parseInt(places);
	if( power < 0 ) {
		var a = ((number > 0) ?  String( Math.round(number * Math.pow(10, power)) ) : "0.");
	}
	else {
		var a = ((number > 0) ?  String( Math.round( number * Math.pow(10, power ) ) / Math.pow(10, power) ) : "0.");
		a = ((a.indexOf(".")==-1) ? "0." : (a.indexOf(".") == 0) ? "0"+a : a);
		if( a.length < (a.indexOf(".") + power+1) ) {
			for( var i = 0; (a.length - a.indexOf(".") ) < power+1; i++) {
				a += "0";
			}
		}
		a = a.substr(0, a.indexOf(".") + ((power==0) ? 0: power+1) );
	}
	return a;
}
// Randow images
function rImages() {
	rc=Math.floor(rImages.arguments.length*Math.random());
	ri=rImages.arguments[rc];
	return ri;
}
// use a line with the following format within the page
//document.write('<IMG SRC=\"../images/'+ rImages("r1.jpg","r2.jpg",....,"rn.jpg") + '\" BORDER=0>');
//
// The loader function for the 
// Maintainable Modifiable JavaScript Menu
/* called by
in-page launch or re-direct <A HREF="menu1.htm" onClick="return MenuLoader()">Click for Help</A>
*/
//
function MenuLoader() {
	var loadplain = true;
	if( (!document.images) && (!document.layers) && (!document.all) ) {
		// a version 2 browser
		loadplain = open_window("menu2.htm#menu01",350,120,"menuwin");
		location.href = self.location.href;
 	}
	else if( document.images ) {
		// a version 3
		loadplain = open_window("menu3.htm#menu0",580,170,"menuwin",null,1);
	}
	else if ( (document.layers) || (document.all) ) {
		loadplain = open_window("menu3.htm#menu0",580,170,"menuwin",null,1);	// temp use same as 3
	}
	else {
		loadplain = true;
	}
	return loadplain;
}
function y2k(year) {
	return (year < 1000) ? year + 1900 : year;
}
var sday = new makeArray0("Sun","Mon","Tue","Wed","Thur","Fri","Sat");
var lday = new makeArray0("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
var smonth = new makeArray0('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
var lmonth = new makeArray0('January','February','March','April','May','June','July','August','September','October','November','December');
function nths(day) {
	var nth = ((day == 1 || day == 21 || day == 31) ? 'st': (day == 2 || day == 22) ? 'nd' : (day == 3 || day == 23) ? 'rd' : 'th' );
	return nth;
}
function date_ddmmmyyyy(date,ShowDay) {
	var dn = sday[date.getDay()];
	var d = date.getDate();
	var m = smonth[date.getMonth()];
	var y = y2k(date.getYear());
	s = ((ShowDay) ? "" + dn + ", " + d + " " + m + " " + y : "" +(d<10?"0"+d:d) + "-" + m + "-" + y);
	return s;
}
function date_long(date) {
	var dn = lday[date.getDay()];
	var d = date.getDate() + nths(date.getDate());
	var m = lmonth[date.getMonth()];
	var y = y2k(date.getYear());
	return "" + dn + ", " + d + " " + m + " " + y;
}
function date_diff(d1, d2) {
	return ( Date.UTC( y2k(d2.getYear()), d2.getMonth(), d2.getDate(), 0, 0, 0) - Date.UTC( y2k(d1.getYear()), d1.getMonth(), d1.getDate(), 0, 0, 0) ) / (1000 * 60 * 60 * 24);
}
function date_lastmodified(ShowNoDays,FormDate) {
	var lmd = document.lastModified;
	var s   = "Unknown";
	var d1;
	// check if we have a valid date
	if(0 != (d1=Date.parse(lmd))) {
		var d2 = new Date(d1);
		if(ShowNoDays) {
			var d = date_diff(d2, new Date());
			s = ((0 == d) ? "today" : (1 == d) ? "yesterday" : "" + d + " days ago" );
		}
		else {
			s = ((FormDate == 1) ? "" + date_ddmmmyyyy(d2,1) : ( FormDate == 2 ) ? "" + date_long(d2) : "" + date_ddmmmyyyy(d2,0));
		}
	}
	return s;
}
function FormatHour( time ) {
	var argv = FormatHour.arguments;
	var argc = FormatHour.arguments.length;
	var form = (argc >1) ? argv[1] : 0;
	var hours = time.getHours();
	var minutes = time.getMinutes();
	var seconds = time.getSeconds();
	var timeValue = "" + ((form == 0) ? ((hours < 10) ? "0" : "") + hours :(hours < 12) ? hours : hours - 12);
	timeValue += ((minutes < 10) ? ":0" : ":") + minutes;
	timeValue += ((seconds < 10) ? ":0" : ":") + seconds;
	timeValue += ((form == 0) ? "" : (hours < 12) ? " AM" : " PM");
	return timeValue;
}
var timerID = null;
var timerRunning = false;
function stopclock() {
	if(timerRunning) {
		clearTimeout(timerID);
	}
	timerRunning = false;
	return;
}
function startclock() {
	stopclock();
	showtime();
	return;
}
function showtime() {
	var now = new Date();
	document.clock.face.value = " " + FormatHour( now )
	timerID = setTimeout("showtime()",1000);
	timerRunning = true;
	return;
}
