
	function OCDRoman()
	{
		this.ValidateNumeral = ValidateNumeral;
		this.NumeralToDecimal = NumeralToDecimal;
		this.DecimalToNumeral = DecimalToNumeral;
	
		function ValidateNumeral(string)
		{
		}
		
		function NumeralToDecimal(numeral)
		{
			var decimal = 0;
			var previous = 0;
			var digits = new Array();
			
			digits['M'] = 1000;
			digits['D'] = 500;
			digits['C'] = 100;
			digits['L'] = 50;
			digits['X'] = 10;
			digits['V'] = 5;
			digits['I'] = 1;
			
			for (var i = 0; i < numeral.length; i++)
			{
				// Damn IE doesn't support string[index] notation. I miss C :(
				digit = digits[numeral.charAt(i).toUpperCase()];
				decimal += (previous < digit ? digit - (2 * previous) : digit);
				previous = digit;
			}
			return decimal;
		}
		
		//
		// Converts a decimal number into a roman numeral.
		//
		function DecimalToNumeral(number)
		{
			var numeral = '';
			var digits = [[1000, 'M'],
						  [900, 'CM'],
						  [500, 'D'],
						  [400, 'CD'],
						  [100, 'C'],
						  [90, 'XC'],
						  [50, 'L'],
						  [40, 'XL'],
						  [10, 'X'],
						  [9, 'IX'],
						  [5, 'V'],
						  [4, 'IV'],
						  [1, 'I']];
							
			var digitID = 0;
			while (number > 0)
			{
				digit = digits[digitID];
				if (number >= digit[0])
				{
					number = number - digit[0];
					numeral += digit[1];
				}
				else
				{
					digitID++;
				}
			}
			return numeral;
		}
	}