<!--

/* JavaScript by Peter Kosenko, kosenko@netwood.net, http://www.netwood.net/~kosenko/
 * Feel free to use an adapt it, if you have any use for it (which I seriously doubt).
 * But try to remember to give me credit.  The IsInteger() function comes from the standard
 * Netscape JavaScript form validation set.
 */

var digitArray = new Array; // to store the decimal digits

/* Number digit positions are from right to left
 *
 *	number                  7777
 *	digit array index       3210
 *
 * Since we will be using 0-based array positions to evaluate,
 * eval("pos" + pos + "Array[i]") will return an appropriate roman
 * string (except, of course, after position 2)
 */

var pos3Array = new Array;
pos3Array[0] = "M";  // only one character required for thousands

var pos2Array = new Array;
pos2Array[0] = "C"; pos2Array[1] = "CD"; pos2Array[2] = "D"; pos2Array[3] = "CM";

var pos1Array = new Array;
pos1Array[0] = "X"; pos1Array[1] = "XL"; pos1Array[2] = "L"; pos1Array[3] = "XC";

var pos0Array = new Array;
pos0Array[0] = "I"; pos0Array[1] = "IV"; pos0Array[2] = "V"; pos0Array[3] = "IX";

function IsInteger(s) {
	for (var i = 0; i < s.length; i++) {
		var c = s.charAt(i);
		if (!((c >= "0") && (c <= "9"))) {
			return false;
		}
	}
	return true;
}

function remainder(pos, numChars) {
	var string = "";
	for (var i = 1; i <= numChars; i++) {
		string += eval("pos" + pos + "Array[0]");
	}
	return string;
}

function convertDigit(pos, digit) {

	digit = parseInt(digit); // convert to integer
	if (pos <= 2) {
		if (digit == 0) return "";
		if (digit == 9) return eval("pos" + pos + "Array[3]");
		if (digit == 5) return eval("pos" + pos + "Array[2]");
		if (digit == 4) return eval("pos" + pos + "Array[1]");
		if (digit > 5) return (eval("pos" + pos + "Array[2]")	+ remainder(pos, digit - 5));
		return remainder(pos, digit);
	} else {
		return remainder(pos, digit);
	}
}

function processForm(Form) {

	var i, j;
	var decimal = Form.decimal.value;
	var roman = "";

	if (!IsInteger(decimal)) {
		alert("Hey, your input contains characters other than digits 0 to 9.\n" +
		"You'll have to correct the error for the program to work.");
	} else {

		// store decimal digits in array
	
		for (i = 0; i < decimal.length ; i++) {
			digitArray[i] = decimal.charAt(i);
		}
	
		// read out digits backwards, converting and adding to roman
		// j counts forward from 0 to give number position from right to left (0,1,2)
	
		for (i = decimal.length - 1, j = 0; i >= 0; i--, j++) {
		roman = convertDigit(j, digitArray[i]) + roman;
		}
		j = 0; // reset
	}

	// place roman value in roman textbox

	Form.roman.value = roman;

}

//-->

//ilgio matai

function convert (entryform, from, to)

{
        convertfrom = from.selectedIndex
        convertto = to.selectedIndex
        entryform.display.value = (entryform.input.value * from[convertfrom].value / to[convertto].value )
}

function addChar (input, character)
{

        if((character=='.' && decimal=="0") || character!='.')

        {
                (input.value == "" || input.value == "0") ? input.value = character : input.value += character

                convert(input.form,input.form.measure1,input.form.measure2)
        
                computed = true 

                if (character=='.')
                {
                        decimal=1
                }       
        }
}

function openVothcom()
{
        window.open("","Display window","toolbar=no,directories=no,menubar=no");
}

function clear (form)
{
        form.input.value = 0
        form.display.value = 0
        decimal=0
}

//ploto matmenys

var arrFactors = new Array(43);
var prevValue = 0;
var prevBox = null;


arrFactors[1] = parseFloat('4.04685642240000E+0003');
arrFactors[2] = parseFloat('1.00000000000000E+0002');
arrFactors[3] = parseFloat('1.00000000000000E+0004');
arrFactors[4] = parseFloat('2.58998811030000E+0006');
arrFactors[5] = parseFloat('1.00000000000000E-0004');
arrFactors[6] = parseFloat('9.29030400000000E-0002');
arrFactors[7] = parseFloat('6.45160000000000E-0004');
arrFactors[8] = parseFloat('1.00000000000000E+0006');
arrFactors[9] = parseFloat('1.00000000000000E+0000');
arrFactors[10] = parseFloat('2.58998811030000E+0006');
arrFactors[11] = parseFloat('1.00000000000000E-0006');
arrFactors[12] = parseFloat('2.52928526400000E+0001');
arrFactors[13] = parseFloat('8.36127360000000E-0001');
arrFactors[14] = parseFloat('9.32395719720000E+0007');
arrFactors[15] = parseFloat('2.00000000000000E-0001');
arrFactors[16] = parseFloat('3.88791666670000E+0000');
arrFactors[17] = parseFloat('1.77184519530000E+0000');
arrFactors[18] = parseFloat('3.88791666670000E+0000');
arrFactors[19] = parseFloat('6.47986111110000E-0002');
arrFactors[20] = parseFloat('6.47986111110000E-0002');
arrFactors[21] = parseFloat('6.47986111110000E-0002');
arrFactors[22] = parseFloat('1.00000000000000E+0000');
arrFactors[23] = parseFloat('5.08023454400000E+0004');
arrFactors[24] = parseFloat('4.53592370000000E+0004');
arrFactors[25] = parseFloat('1.00000000000000E+0003');
arrFactors[26] = parseFloat('1.00000000000000E-0006');
arrFactors[27] = parseFloat('1.00000000000000E-0003');
arrFactors[28] = parseFloat('3.11033333330000E+0001');
arrFactors[29] = parseFloat('2.83495231250000E+0001');
arrFactors[30] = parseFloat('3.11033333330000E+0001');
arrFactors[31] = parseFloat('1.55516666670000E+0000');
arrFactors[32] = parseFloat('3.73240000000000E+0002');
arrFactors[33] = parseFloat('4.53592370000000E+0002');
arrFactors[34] = parseFloat('3.73240000000000E+0002');
arrFactors[35] = parseFloat('1.29597222220000E+0000');
arrFactors[36] = parseFloat('5.22536000000000E+0003');
arrFactors[37] = parseFloat('1.01604690880000E+0006');
arrFactors[38] = parseFloat('1.00000000000000E+0006');
arrFactors[39] = parseFloat('9.07184740000000E+0005');

function convert(form, id) {
  var val, fromFactor, i;
  
  // start at 1 since 0 is catid element
  val = parseFloat(form[id].value);
  if (isNaN(val) || prevValue == val) return;
 
  // highlight the new box for visibility
  if (form[id].style) {
    if (prevBox != null) {
      form[prevBox].style.color = '';
      document.getElementById('lbl' + prevBox).style.fontWeight = 'normal';
    }
    form[id].style.color = '#0000ff';
    document.getElementById('lbl' + id).style.fontWeight = 'bold';
  }
  prevBox = id;
  
  if (val == '' || isNaN(val)) val = 0;
  fromFactor = arrFactors[id];
  
  for (i = 1; i < form.length; i++) 
    if (i != id) form[i].value = fromFactor / arrFactors[i] * val;
}

function enterBox(form, id) {
  prevValue = parseFloat(form[id].value);
}



