<!--
/*

  --------------------------------------------------------------
 |                                                              |
 |  All Code contained herein and that contained in the same    |
 |  directory location as this file or script including this    |
 |  script is the sole intellectual property of                 |
 |  DigitallyDistint.com. If you wish to use and or copy the    |
 |  above described property in part or in whole, please        |
 |  request permission to do so by sending an e-mail request to |
 |  codeuse@digitallydistinct.com. Wait for a confirmation      |
 |  reply email granting such permission before preceding       |
 |  to use and/or copy the above described property. Use of     |
 |  this code on any public or private web site is unauthorized |
 |  unless this entire copyright notice appears unchanged and   |
 |  you publicly display on the Web page a link to              |
 |  http://www.digitallydistinct.com/.                          |
 |                                                              |
 |  Copyright © 2001-2002 DigitallyDistinct.com. All rights     |
 |  reserved.                                                   |
 |                                                              |
 |  Contact codeuse@digitallydistinct.com for all other uses.   |
 |                                                              |
  --------------------------------------------------------------

 Organization: DigitallyDistinct.com
       Domain: www.troysartwork.com
         Date: January 4, 2002
      Purpose: Calculator script
 Dependencies: keypad.gif
   Programmer: B. Roberts
               broberts@digitalldistinct.com

*/

function trim(inString){
	var retVal = "";
	var start = 0;
	var space = false;
	var newstr="";
	while ((start < inString.length) && (inString.charAt(start) == ' ')) ++start;
	var end = inString.length;
	while ((end > 0) && (inString.charAt(end - 1) == ' ')) --end;
	retVal = inString.substring(start, end);
	for(var i=0;i<retVal.length;i++){
		if(!space) newstr+=retVal.charAt(i);
		if(retVal.charAt(i)==" " && retVal.charAt(i+1)==" ") space=true;
		else space=false;
	}
	retVal=newstr;
	return retVal;
}

function get_display(){
	var str=trim(document.calculator.LCD.value);
	if(str=="Error" || str=="Infinity" || str=="Overflow" || typeof str == "Error") return "";
	else return str;
}

function set_display(str){
	document.calculator.LCD.value = pad_display(str);
}

function pad_display(str){
	var display_size=16;
	var padding=" ";
	str=trim(str);
	if(navigator.appName=="Microsoft Internet Explorer" && parseInt(navigator.appVersion)<4) return str; // IE DOES NOT USE FIXED WIDTH FONT
	
	if(str.length<display_size){
		for(var i=(display_size-1);i>str.length;i--) padding += " ";
		return (padding + str);
	}
	else return str;
}

function update_display(str){
	var args=update_display.arguments;
	if(args.length<1) set_display("");
	else set_display(get_display()+str);
}

function clear_display(){
	set_display("");
}

function backspace(){
	str = get_display();
	if(str!=""){
		str = str.substring(0,(str.length-1))
		set_display(str);
	}
}

function keypad(str){
	update_display(trim(str));
}

function evaluate(){
	if(navigator.appName=="Netscape" && parseInt(navigator.appVersion)<=4) evaluate_Mozilla4();
	else evaluate_other();
}

function evaluate_Mozilla4(){
	var display_size=16;
	var eval_result = eval(get_display());
	if(isNaN(eval_result) || typeof eval_result=="undefined") set_display("Error");
	else{
			eval_result+=""
			if(eval_result.length>display_size) set_display("Overflow");
			else set_display(eval_result);
	}
}

function evaluate_other(){
	var display_size=16;
	var eval_result;
	try{
		eval_result = eval(get_display());
		if(isNaN(eval_result) || typeof eval_result=="undefined") set_display("Error");
		else{
			eval_result+=""
			if(eval_result.length>display_size) set_display("Overflow");
			else set_display(eval_result);
		}
	}
	catch(er){
		set_display("Error");
	}
}
	
//-->

