//	Variable initialization
var max_text = 240;

mess_remaining = max_text;
var timerID = 0;
save_string = new MakeArray(7);
done = new MakeArray(6);
var var1 = "";
var var2 = "";
var is_message = 0;
save_message = "";
var string_num = 1;
var curr_pos = 0;
var pos_limit = 3;
var goodbrowser_rollover = 0;
var goodbrowser_counter = 0;
var is_mac = 0;
var is_unix = 0;
var jump_ok = 0;
var default_short_speed = 100;
var default_long_speed = 1000;
var mac_short_speed = 80;
var mac_long_speed = 700;
var pc_ns3_short_speed_counter = 10;
var pc_ns3_long_speed_counter = 200;
var pc_ns4_short_speed_counter = 120;
var pc_ns4_long_speed_counter = 1000;
var counter_speed_short = 0;
var counter_speed_long = 0;

//	Testing browser for various capabilities
browserName = navigator.appName.substring(0,8);
browserVer = parseFloat(navigator.appVersion);

if (navigator.appVersion.charAt(navigator.appVersion.indexOf("(")+1) == "M"){
        is_mac = 1;
        }
else if (navigator.appVersion.charAt(navigator.appVersion.indexOf("(")+1) == "X"){
        is_unix = 1;
        }
else if (navigator.appVersion.charAt(navigator.appVersion.indexOf("(")+1) == "L"){
        is_unix = 1;
        }
else if (navigator.appVersion.charAt(navigator.appVersion.indexOf("(")+1) == "O"){
        is_unix = 1;
        }
if (navigator.appVersion.charAt(navigator.appVersion.indexOf("(")+1) == "M"){
        is_mac = 1;
        }
if ((browserName == "Netscape" && browserVer >= 3)||(browserName == "Microsof" && browserVer >= 3.01 && is_mac)){
        goodbrowser_rollover = 1;
        }
if ((browserName == "Netscape" && browserVer >= 3)||((browserName == "Microsof" && browserVer == 3.01) && is_mac)||(browserName == "Microsof" && browserVer >= 4.0 && !is_mac)){
		if (!is_unix){
        	goodbrowser_counter = 1;
        	}
        }

counter_speed_short = default_short_speed;
counter_speed_long = default_long_speed;
     
if (is_mac){
	counter_speed_short = mac_short_speed;
	counter_speed_long = mac_long_speed;
	}
if ((!is_mac)&&(browserName == "Netscape" && browserVer >= 3 && browserVer < 4)){
	counter_speed_short = pc_ns3_short_speed_counter;
	counter_speed_long = pc_ns3_long_speed_counter;
	}
if ((!is_mac)&&(browserName == "Netscape" && browserVer >= 4)){
	counter_speed_short = pc_ns4_short_speed_counter;
	counter_speed_long = pc_ns4_long_speed_counter;
	jump_ok = 1;
	}
   
 
        
//	Initialize all fields when the page loads
function initialize_noerase(){
	save_string[1] = document.frm.elements[0].value;
	save_string[2] = document.frm.elements[1].value;
	save_string[3] = document.frm.elements[2].value;
	save_string[4] = document.frm.elements[3].value;
	save_string[5] = document.frm.elements[4].value;
/*
	save_string[6] = document.frm.elements[5].value;
	save_string[7] = document.frm.elements[6].value;
	save_string[8] = document.frm.elements[7].value;
	save_string[9] = document.frm.elements[8].value;
*/
	if (save_string[1].length > 1){
		done[1] = true;
		done[2] = true;
		done[3] = true;
		done[4] = true;
		done[5] = true;
		done[6] = true;
		}
	else{
		done[1] = false;
		done[2] = false;
		done[3] = false;
		done[4] = false;
		done[5] = false;
		done[6] = false;
		}
	// The next part makes life a little easier, unfortunately, it has
	// bad side-effects on PCs, so only Mac users get this minor benefit.
	if (is_mac){   
		document.frm.elements[0].focus();
		}
	}


//	Initialize all fields when the "Clear" button is clicked.
function initialize(){
	document.frm.elements[0].value = "";
	document.frm.elements[1].value = "";
	document.frm.elements[2].value = "";
	document.frm.elements[3].value = "";
	document.frm.elements[4].value = "";

	document.frm.counter.value = "0";
	save_string[0] = "_";
	save_string[1] = "_";
	save_string[2] = "_";
	save_string[3] = "_";
	save_string[4] = "_";
	save_string[5] = "_";
	save_string[6] = "_";
	save_string[7] = "_";
	done[1] = false;
	done[2] = false;
	done[3] = false;
	done[4] = false;
	done[5] = false;
	done[6] = false;
	// The next part makes life a little easier, unfortunately, it has
	// bad side-effects on PCs, so only Mac users get this minor benefit.
	if (is_mac){   
		document.frm.elements[0].focus();
		}
	}


//	Make text variable array
function MakeArray(n){
	this.length = n;
	for (var i = 1; i<=n; i++) {
		this[i] = "_";
		}
	return this
}


//	The actual subroutine that starts the counter.  
function timer_start() {   
	running = true  
	now = new Date()        
	now = now.getTime()  
	if (is_message){   
		endTime = now + (counter_speed_short * 0.1 * 1)  
		}
	else{
		endTime = now + (autotab_speed_short * 0.1 * 1)  
		}
	show_timer()
	}


//	The actual subroutine that stops the counter.  
function timer_stop() {        
	clearTimeout(timerID)   
	running = false
	}


//	This subroutine shifts the focus about
//	while the timer is active in order to keep
//	the data length information current.  Also
//	displays the total remaining characters 
//	when the message box is the center of focus. 
function show_timer() {   
	var now = new Date()    
	now = now.getTime()     
	if (endTime - now <= 0) {  
		if ((is_message)&&(browserName != "Microsof")){
			document.frm.counter.focus()        	
			document.frm.MapMsg.focus();    
			}
		if (!(is_message)){
			if (pos1 == 0){ 
				if (browserName == "Microsof"){     	
					document.frm.counter.focus();  
					}
				else{
					document.frm.elements[pos1+1].focus();  
					}
				}
			else{
				document.frm.elements[pos1-1].focus();  
				}
			document.frm.elements[pos1].focus();    
			}
			
		if (is_message){         
			count_text(document.frm.MapMsg.value) 
			}
		if (!(is_message)){         
			count_it(document.frm.elements[pos1].value,pos1) 
			}
		} 
	else {               
		var delta = new Date(endTime - now)             
		var theMin = delta.getMinutes()         
		var theSec = delta.getSeconds()         
		var theTime = theMin            
		theTime += ((theSec < 10) ? ":0" : ":") + theSec                
		if (running) {      
			if (is_message){   
				timerID = setTimeout("show_timer()",counter_speed_long) 
				}
			else{
				timerID = setTimeout("show_timer()",autotab_speed_long) 
				}
			            
			}       	
		}
	}


//	Starts character counter when focus is 
//	brought to the message box.  Functions
//	slightly differently from the autotab
//	counter.
function count_text(data){
if (goodbrowser_counter){
	is_message = 1;
	curr_pos = 6;
	if (document.frm.MapMsg.length == 0){
		data = "";
		}
	data_length= data.length
	xcount = 0;
	ycount = 0;
	while (xcount < data_length){
		if (data.charAt(xcount) != "\r"){
			ycount++;
			}
		xcount++;
		} 
		
	data_length = ycount;
	document.frm.counter.value = data_length;
	mess_remaining = document.frm.counter.value;
	if (data_length > max_text){
		if (document.frm.MapMsg.value != save_message){
			document.frm.MapMsg.value=data.substring(0,max_text);
			document.frm.counter.value=max_text;
			document.frm.MapMsg.blur();
			save_message = document.frm.MapMsg.value;
			timer_stop();
			alert ("Maximum message length reached. Your message has been truncated at "+max_text+" characters.");
			}
		}
	timer_start();
	}
}


//	Stops character counter when focus leaves
//	the message box or the message changes.  
//	Functions slightly differently from the 
//	autotab counter.
function count_text2(form){
if (goodbrowser_counter){
	is_message = 1;
	curr_pos = 6;
	data = form.MapMsg.value;
	if (document.frm.MapMsg.length == 0){
		data = "";
		}
	data_length= data.length      
	xcount = 0;
	ycount = 0;
	while (xcount < data_length){
		if (data.charAt(xcount) != "\r"){
			ycount++;
			}
		xcount++;
		} 
	data_length = ycount;
	document.frm.counter.value = data_length;
	mess_remaining = document.frm.counter.value;
	if (data_length > max_text ) { 
		if (document.frm.MapMsg.value != save_message){
			document.frm.MapMsg.value=data.substring(0,max_text);
			document.frm.counter.value=max_text;
			document.frm.MapMsg.blur();
			save_message = document.frm.MapMsg.value;
			timer_stop();
			alert ("Maximum message length reached. Your message has been truncated at "+max_text+" characters.");
			}
		}
	timer_stop();
	}
}

function openaddbook() {
chooser = window.open("/cgi-bin/addbook/addbook.cgi", "chooser", "status=yes,toolbar=no,menubar=no,scrollbars=yes,width=400,height=400");
}