// Roman.cs - Roman numeral <-> Arabic numeral conversion script!
//
// 5/23/99, really early in the morning (actually really late last night)
//
// not very useful, but it had to be done! (right, Grym?)
//
//
// examples: Roman(1967) returns "MCMLXVII"
//           Arabic("MCMLXVII") returns 1967
//

function Roman(%number) {
	%roman = "";
	while (%number >= 1000) {
		%roman = %roman @ "M";
		%number = %number - 1000;
		}
	if (%number >= 900) {
		%roman = %roman @ "CM";
		%number = %number - 900;
		}
	if (%number >= 500) {
		%roman = %roman @ "D";
		%number = %number - 500;
		}
	if (%number >= 400) {
		%roman = %roman @ "CD";
		%number = %number - 400;
		}
	while (%number >= 100) {
		%roman = %roman @ "C";
		%number = %number - 100;
		}
	if (%number >= 90) {
		%roman = %roman @ "XC";
		%number = %number - 90;
		}
	if (%number >= 50) {
		%roman = %roman @ "L";
		%number = %number - 50;
		}
	if (%number >= 40) {
		%roman = %roman @ "XL";
		%number = %number - 40;
		}
	while (%number >= 10) {
		%roman = %roman @ "X";
		%number = %number - 10;
		}
	if (%number >= 9) {
		%roman = %roman @ "IX";
		%number = %number - 9;
		}
	if (%number >= 5) {
		%roman = %roman @ "V";
		%number = %number - 5;
		}
	if (%number >= 4) {
		%roman = %roman @ "IV";
		%number = %number - 4;
		}
	while (%number >= 1) {
		%roman = %roman @ "I";
		%number = %number - 1;
		}
	return %roman;
	}	

function Arabic(%roman) {
	%number = 0;
	%i = 0;
	while (String::getSubStr(%roman, %i, 1) == "M") {
		%number = %number + 1000;
		%i++;
		}
	if (String::getSubStr(%roman, %i, 2) == "CM") {
		%number = %number + 900;
		%i = %i + 2;
		}
	if (String::getSubStr(%roman, %i, 1) == "D") {
		%number = %number + 500;
		%i++;
		}
	if (String::getSubStr(%roman, %i, 2) == "CD") {
		%number = %number + 400;
		%i = %i + 2;
		}
	while (String::getSubStr(%roman, %i, 1) == "C") {
		%number = %number + 100;
		%i++;
		}
	if (String::getSubStr(%roman, %i, 2) == "XC") {
		%number = %number + 90;
		%i = %i + 2;
		}
	if (String::getSubStr(%roman, %i, 1) == "L") {
		%number = %number + 50;
		%i++;
		}
	if (String::getSubStr(%roman, %i, 2) == "XL") {
		%number = %number + 40;
		%i = %i + 2;
		}
	while (String::getSubStr(%roman, %i, 1) == "X") {
		%number = %number + 10;
		%i++;
		}
	if (String::getSubStr(%roman, %i, 2) == "IX") {
		%number = %number + 9;
		%i = %i + 2;
		}
	if (String::getSubStr(%roman, %i, 1) == "V") {
		%number = %number + 5;
		%i++;
		}
	if (String::getSubStr(%roman, %i, 2) == "IV") {
		%number = %number + 4;
		%i = %i + 2;
		}
	while (String::getSubStr(%roman, %i, 1) == "I") {
		%number = %number + 1;
		%i++;
		}
	return %number;
	}
	