/*
globale Variablen - Beginn
*/

var mReturnOnError = '';
var bBlockError = false;
// erlaubte Zeichen für Dezimalzahlen
var aDecimals = "0123456789";
// erlaube Zeichen für römische Zahlen (einfache Umrechnung, Subtraktionsregel)
var aRomans = "IVXLCDM";
// erlaube Zeichen für römische Zahlen (Multiplikationsschreibweise)
var aRomans_multip = "IVXLCDM*";
// erlaube Zeichen für römische Zahlen (mit Cifrao oder Calderon)
var aRomans_cifr = "IVXLCDM$";
// erlaube Zeichen für römische Zahlen (mit Apostrophus)
var aRomans_apos = "IVXLCD"+String.fromCharCode(9642)+String.fromCharCode(8576)+String.fromCharCode(8577)+String.fromCharCode(8578);
// grösste mögliche Dezimalzahl
// bis jetzt 9999
var iMaximalDecimal = 9999999;
// maximale Stellen der Dezimalzahl
// bis jetzt 4 Stellen
var iMaximalDecimalLen = 7;
// maximale Stellen der römischen Zahl
// bis jetzt 21 Stellen
var iMaximalRoman = 10005;
var subs = new Array(4);
subs["I"] = true;
subs["X"] = true;
subs["C"] = true;
subs["M"] = true;

var counter = new Array(7);

/*
globale Variablen - Ende
*/


/*
maximale Zeichenanzahl bei Eingabefeld setzen - Beginn
*/

function setML(){
	document.getElementById('decimalValue').setAttribute('maxlength',iMaximalDecimalLen);
	//document.getElementById('romanValue').setAttribute('maxlength',iMaximalRoman);
}

/*
maximale Zeichenanzahl bei Eingabefeld setzen - Ende
*/


/*
Umrechnung Dezimal in Römisch - Beginn
*/

/*
Ermittelt die römische Zahl die gleich der dezimalen Eingabe
ist. Die Umrechnung erfolgt stellenweise von links nach rechts. 
*/

/*
Mögliche Zeichenfolgen bei der Umrechnung Dezimal in Römisch
Umrechnungsart: Subtraktionsregel
Übergabe: Position des aktuellen Zeichens, aktuelles Zeichen
Rückgabe: römische Zahl
*/
function functionGetRoman(iPosition, iDigit) {
	if(iPosition == 1) { // 0 - 9
		if(iDigit == 0) return "";
		if(iDigit == 1) return "I";
		if(iDigit == 2) return "II";
		if(iDigit == 3) return "III";
		if(iDigit == 4) return "IV";
		if(iDigit == 5) return "V";
		if(iDigit == 6) return "VI";
		if(iDigit == 7) return "VII";
		if(iDigit == 8) return "VIII";
		if(iDigit == 9) return "IX";
	}
	if(iPosition == 2) { // 10 - 99
		if(iDigit == 0) return "";
		if(iDigit == 1) return "X";
		if(iDigit == 2) return "XX";
		if(iDigit == 3) return "XXX";
		if(iDigit == 4) return "XL";
		if(iDigit == 5) return "L";
		if(iDigit == 6) return "LX";
		if(iDigit == 7) return "LXX";
		if(iDigit == 8) return "LXXX";
		if(iDigit == 9) return "XC";
	}
	if(iPosition == 3) { // 100 - 999
		if(iDigit == 0) return "";
		if(iDigit == 1) return "C";
		if(iDigit == 2) return "CC";
		if(iDigit == 3) return "CCC";
		if(iDigit == 4) return "CD";
		if(iDigit == 5) return "D";
		if(iDigit == 6) return "DC";
		if(iDigit == 7) return "DCC";
		if(iDigit == 8) return "DCCC";
		if(iDigit == 9) return "CM";
	}
	if(iPosition >= 4) { // 1000 -
		var sRoman = "";
		var sMal = Math.pow( 10, (iPosition - 4));
		for(var i=1; i<=(iDigit * sMal); i++) {
			sRoman	= sRoman + "M";
		}
		return sRoman;
	}
}

/*
Mögliche Zeichenfolgen bei der Umrechnung Dezimal in Römisch
Umrechnungsart: einfache Umrechnung
Übergabe: Position des aktuellen Zeichens, aktuelles Zeichen
Rückgabe: römische Zahl
*/
function functionGetRoman_einf(iPosition, iDigit) {
	if(iPosition == 1) { // 0 - 9
		if(iDigit == 0) return "";
		if(iDigit == 1) return "I";
		if(iDigit == 2) return "II";
		if(iDigit == 3) return "III";
		if(iDigit == 4) return "IIII";
		if(iDigit == 5) return "V";
		if(iDigit == 6) return "VI";
		if(iDigit == 7) return "VII";
		if(iDigit == 8) return "VIII";
		if(iDigit == 9) return "VIIII";
	}
	if(iPosition == 2) { // 10 - 99
		if(iDigit == 0) return "";
		if(iDigit == 1) return "X";
		if(iDigit == 2) return "XX";
		if(iDigit == 3) return "XXX";
		if(iDigit == 4) return "XXXX";
		if(iDigit == 5) return "L";
		if(iDigit == 6) return "LX";
		if(iDigit == 7) return "LXX";
		if(iDigit == 8) return "LXXX";
		if(iDigit == 9) return "LXXXX";
	}
	if(iPosition == 3) { // 100 - 999
		if(iDigit == 0) return "";
		if(iDigit == 1) return "C";
		if(iDigit == 2) return "CC";
		if(iDigit == 3) return "CCC";
		if(iDigit == 4) return "CCCC";
		if(iDigit == 5) return "D";
		if(iDigit == 6) return "DC";
		if(iDigit == 7) return "DCC";
		if(iDigit == 8) return "DCCC";
		if(iDigit == 9) return "DCCCC";
	}
	if(iPosition >= 4) { // 1000 -
		var sRoman = "";
		var sMal = Math.pow( 10, (iPosition - 4));
		for(var i=1; i<=(iDigit * sMal); i++) {
			sRoman	= sRoman + "M";
		}
		return sRoman;
	}
}


/*
Mögliche Zeichenfolgen bei der Umrechnung Dezimal in Römisch
Umrechnungsart: mit Vinculum
Übergabe: Position des aktuellen Zeichens, aktuelles Zeichen, maximale Zeichenanzahl
Rückgabe: römische Zahl
*/
function functionGetRoman_vinc(iPosition, iDigit, iMax) {
	if(iPosition == 1) { // 0 - 9
		if(iDigit == 0) return "";
		if(iDigit == 1) return "I";
		if(iDigit == 2) return "II";
		if(iDigit == 3) return "III";
		if(iDigit == 4) return "IV";
		if(iDigit == 5) return "V";
		if(iDigit == 6) return "VI";
		if(iDigit == 7) return "VII";
		if(iDigit == 8) return "VIII";
		if(iDigit == 9) return "IX";
	}
	if(iPosition == 2) { // 10 - 99
		if(iDigit == 0) return "";
		if(iDigit == 1) return "X";
		if(iDigit == 2) return "XX";
		if(iDigit == 3) return "XXX";
		if(iDigit == 4) return "XL";
		if(iDigit == 5) return "L";
		if(iDigit == 6) return "LX";
		if(iDigit == 7) return "LXX";
		if(iDigit == 8) return "LXXX";
		if(iDigit == 9) return "XC";
	}
	if(iPosition == 3) { // 100 - 999
		if(iDigit == 0) return "";
		if(iDigit == 1) return "C";
		if(iDigit == 2) return "CC";
		if(iDigit == 3) return "CCC";
		if(iDigit == 4) return "CD";
		if(iDigit == 5) return "D";
		if(iDigit == 6) return "DC";
		if(iDigit == 7) return "DCC";
		if(iDigit == 8) return "DCCC";
		if(iDigit == 9) return "CM";
	}
	if (iPosition == 4) { // 1000 - 9999
		if(iDigit == 0) return "";
		if (iMax == 4) {
			if(iDigit == 1) return "M";
		} else {
			if(iDigit == 1) return "I";
		}
		if(iDigit == 2) return "II";
		if(iDigit == 3) return "III";
		if(iDigit == 4) return "IV";
		if(iDigit == 5) return "V";
		if(iDigit == 6) return "VI";
		if(iDigit == 7) return "VII";
		if(iDigit == 8) return "VIII";
		if(iDigit == 9) return "IX";
	}
	if(iPosition == 5) { // 10.000 - 99.999
		if(iDigit == 0) return "";
		if(iDigit == 1) return "X";
		if(iDigit == 2) return "XX";
		if(iDigit == 3) return "XXX";
		if(iDigit == 4) return "XL";
		if(iDigit == 5) return "L";
		if(iDigit == 6) return "LX";
		if(iDigit == 7) return "LXX";
		if(iDigit == 8) return "LXXX";
		if(iDigit == 9) return "XC";
	}
	if(iPosition == 6) { // 100.000 - 999.999
		if(iDigit == 0) return "";
		if(iDigit == 1) return "C";
		if(iDigit == 2) return "CC";
		if(iDigit == 3) return "CCC";
		if(iDigit == 4) return "CD";
		if(iDigit == 5) return "D";
		if(iDigit == 6) return "DC";
		if(iDigit == 7) return "DCC";
		if(iDigit == 8) return "DCCC";
		if(iDigit == 9) return "CM";
	}
	if (iPosition == 7) { // 1.000.000 - 9.999.999
		if(iDigit == 0) return "";
		if(iDigit == 1) return "I";
		if(iDigit == 2) return "II";
		if(iDigit == 3) return "III";
		if(iDigit == 4) return "IV";
		if(iDigit == 5) return "V";
		if(iDigit == 6) return "VI";
		if(iDigit == 7) return "VII";
		if(iDigit == 8) return "VIII";
		if(iDigit == 9) return "IX";
	}
	if(iPosition == 8) { // 10.000.000 - 99.999.999
		if(iDigit == 0) return "";
		if(iDigit == 1) return "X";
		if(iDigit == 2) return "XX";
		if(iDigit == 3) return "XXX";
		if(iDigit == 4) return "XL";
		if(iDigit == 5) return "L";
		if(iDigit == 6) return "LX";
		if(iDigit == 7) return "LXX";
		if(iDigit == 8) return "LXXX";
		if(iDigit == 9) return "XC";
	}
	if(iPosition == 9) { // 100.000.000 - 999.999.999
		if(iDigit == 0) return "";
		if(iDigit == 1) return "C";
		if(iDigit == 2) return "CC";
		if(iDigit == 3) return "CCC";
		if(iDigit == 4) return "CD";
		if(iDigit == 5) return "D";
		if(iDigit == 6) return "DC";
		if(iDigit == 7) return "DCC";
		if(iDigit == 8) return "DCCC";
		if(iDigit == 9) return "CM";
	}
}

/*
Mögliche Zeichenfolgen bei der Umrechnung Dezimal in Römisch
Umrechnungsart: Multiplikationsschreibweise
Übergabe: Position des aktuellen Zeichens, aktuelles Zeichen, maximale Zeichenanzahl
Rückgabe: römische Zahl
*/
function functionGetRoman_multip(iPosition, iDigit, iMax) {
	if(iPosition == 1) { // 0 - 9
		if(iDigit == 0) return "";
		if(iDigit == 1) return "I";
		if(iDigit == 2) return "II";
		if(iDigit == 3) return "III";
		if(iDigit == 4) return "IV";
		if(iDigit == 5) return "V";
		if(iDigit == 6) return "VI";
		if(iDigit == 7) return "VII";
		if(iDigit == 8) return "VIII";
		if(iDigit == 9) return "IX";
	}
	if(iPosition == 2) { // 10 - 99
		if(iDigit == 0) return "";
		if(iDigit == 1) return "X";
		if(iDigit == 2) return "XX";
		if(iDigit == 3) return "XXX";
		if(iDigit == 4) return "XL";
		if(iDigit == 5) return "L";
		if(iDigit == 6) return "LX";
		if(iDigit == 7) return "LXX";
		if(iDigit == 8) return "LXXX";
		if(iDigit == 9) return "XC";
	}
	if(iPosition == 3) { // 100 - 999
		if(iDigit == 0) return "";
		if(iDigit == 1) return "C";
		if(iDigit == 2) return "CC";
		if(iDigit == 3) return "CCC";
		if(iDigit == 4) return "CD";
		if(iDigit == 5) return "D";
		if(iDigit == 6) return "DC";
		if(iDigit == 7) return "DCC";
		if(iDigit == 8) return "DCCC";
		if(iDigit == 9) return "CM";
	}
	if(iPosition == 4) { // 1000 - 9999
		if(iDigit == 0) return "";
		if (iMax == 4) {
			if(iDigit == 1) return "M";
		} else {
			if(iDigit == 1) return "I * M ";
		}
		if(iDigit == 2) return "II * M ";
		if(iDigit == 3) return "III * M ";
		if(iDigit == 4) return "IV * M ";
		if(iDigit == 5) return "V * M ";
		if(iDigit == 6) return "VI * M ";
		if(iDigit == 7) return "VII * M ";
		if(iDigit == 8) return "VIII * M ";
		if(iDigit == 9) return "IX * M ";
	}
	if(iPosition == 5) { // 10.000 - 99.999
		if(iDigit == 0) return "";
		if(iDigit == 1) return "X";
		if(iDigit == 2) return "XX";
		if(iDigit == 3) return "XXX";
		if(iDigit == 4) return "XL";
		if(iDigit == 5) return "L";
		if(iDigit == 6) return "LX";
		if(iDigit == 7) return "LXX";
		if(iDigit == 8) return "LXXX";
		if(iDigit == 9) return "XC";
	}
	if(iPosition == 6) { // 100.000 - 999.999
		if(iDigit == 0) return "";
		if(iDigit == 1) return "C";
		if(iDigit == 2) return "CC";
		if(iDigit == 3) return "CCC";
		if(iDigit == 4) return "CD";
		if(iDigit == 5) return "D";
		if(iDigit == 6) return "DC";
		if(iDigit == 7) return "DCC";
		if(iDigit == 8) return "DCCC";
		if(iDigit == 9) return "CM";
	}
	if(iPosition == 7) { // 1.000.000 - 9.999.999
		if(iDigit == 0) return "";
		if (iMax == 7) {
			if(iDigit == 1) return "M";
		} else {
			if(iDigit == 1) return "I * M ";
		}
		if(iDigit == 2) return "II * M ";
		if(iDigit == 3) return "III * M ";
		if(iDigit == 4) return "IV * M ";
		if(iDigit == 5) return "V * M ";
		if(iDigit == 6) return "VI * M ";
		if(iDigit == 7) return "VII * M ";
		if(iDigit == 8) return "VIII * M ";
		if(iDigit == 9) return "IX * M ";
	}
	if(iPosition == 8) { // 10.000.000 - 99.999.999
		if(iDigit == 0) return "";
		if(iDigit == 1) return "X";
		if(iDigit == 2) return "XX";
		if(iDigit == 3) return "XXX";
		if(iDigit == 4) return "XL";
		if(iDigit == 5) return "L";
		if(iDigit == 6) return "LX";
		if(iDigit == 7) return "LXX";
		if(iDigit == 8) return "LXXX";
		if(iDigit == 9) return "XC";
	}
	if(iPosition == 9) { // 100.000.000 - 999.999.999
		if(iDigit == 0) return "";
		if(iDigit == 1) return "C";
		if(iDigit == 2) return "CC";
		if(iDigit == 3) return "CCC";
		if(iDigit == 4) return "CD";
		if(iDigit == 5) return "D";
		if(iDigit == 6) return "DC";
		if(iDigit == 7) return "DCC";
		if(iDigit == 8) return "DCCC";
		if(iDigit == 9) return "CM";
	}
}

/*
Mögliche Zeichenfolgen bei der Umrechnung Dezimal in Römisch
Umrechnungsart: mit Cifrao oder Calderon
Übergabe: Position des aktuellen Zeichens, aktuelles Zeichen
Rückgabe: römische Zahl
*/
function functionGetRoman_cifr(iPosition, iDigit) {
	if(iPosition == 1) { // 0 - 9
		if(iDigit == 0) return "";
		if(iDigit == 1) return "I";
		if(iDigit == 2) return "II";
		if(iDigit == 3) return "III";
		if(iDigit == 4) return "IV";
		if(iDigit == 5) return "V";
		if(iDigit == 6) return "VI";
		if(iDigit == 7) return "VII";
		if(iDigit == 8) return "VIII";
		if(iDigit == 9) return "IX";
	}
	if(iPosition == 2) { // 10 - 99
		if(iDigit == 0) return "";
		if(iDigit == 1) return "X";
		if(iDigit == 2) return "XX";
		if(iDigit == 3) return "XXX";
		if(iDigit == 4) return "XL";
		if(iDigit == 5) return "L";
		if(iDigit == 6) return "LX";
		if(iDigit == 7) return "LXX";
		if(iDigit == 8) return "LXXX";
		if(iDigit == 9) return "XC";
	}
	if(iPosition == 3) { // 100 - 999
		if(iDigit == 0) return "";
		if(iDigit == 1) return "C";
		if(iDigit == 2) return "CC";
		if(iDigit == 3) return "CCC";
		if(iDigit == 4) return "CD";
		if(iDigit == 5) return "D";
		if(iDigit == 6) return "DC";
		if(iDigit == 7) return "DCC";
		if(iDigit == 8) return "DCCC";
		if(iDigit == 9) return "CM";
	}
	if(iPosition == 4) { // 1000 - 9999
		if(iDigit == 0) return "";
		if(iDigit == 1) return "I $ ";
		if(iDigit == 2) return "II $ ";
		if(iDigit == 3) return "III $ ";
		if(iDigit == 4) return "IV $ ";
		if(iDigit == 5) return "V $ ";
		if(iDigit == 6) return "VI $ ";
		if(iDigit == 7) return "VII $ ";
		if(iDigit == 8) return "VIII $ ";
		if(iDigit == 9) return "IX $ ";
	}
	if(iPosition == 5) { // 10.000 - 99.999
		if(iDigit == 0) return "";
		if(iDigit == 1) return "X";
		if(iDigit == 2) return "XX";
		if(iDigit == 3) return "XXX";
		if(iDigit == 4) return "XL";
		if(iDigit == 5) return "L";
		if(iDigit == 6) return "LX";
		if(iDigit == 7) return "LXX";
		if(iDigit == 8) return "LXXX";
		if(iDigit == 9) return "XC";
	}
	if(iPosition == 6) { // 100.000 - 999.999
		if(iDigit == 0) return "";
		if(iDigit == 1) return "C";
		if(iDigit == 2) return "CC";
		if(iDigit == 3) return "CCC";
		if(iDigit == 4) return "CD";
		if(iDigit == 5) return "D";
		if(iDigit == 6) return "DC";
		if(iDigit == 7) return "DCC";
		if(iDigit == 8) return "DCCC";
		if(iDigit == 9) return "CM";
	}
	if(iPosition == 7) { // 1.000.000 - 9.999.999
		if(iDigit == 0) return "";
		if(iDigit == 1) return "I $ ";
		if(iDigit == 2) return "II $ ";
		if(iDigit == 3) return "III $ ";
		if(iDigit == 4) return "IV $ ";
		if(iDigit == 5) return "V $ ";
		if(iDigit == 6) return "VI $ ";
		if(iDigit == 7) return "VII $ ";
		if(iDigit == 8) return "VIII $ ";
		if(iDigit == 9) return "IX $ ";
	}
	if(iPosition == 8) { // 10.000.000 - 99.999.999
		if(iDigit == 0) return "";
		if(iDigit == 1) return "X";
		if(iDigit == 2) return "XX";
		if(iDigit == 3) return "XXX";
		if(iDigit == 4) return "XL";
		if(iDigit == 5) return "L";
		if(iDigit == 6) return "LX";
		if(iDigit == 7) return "LXX";
		if(iDigit == 8) return "LXXX";
		if(iDigit == 9) return "XC";
	}
	if(iPosition == 9) { // 100.000.000 - 999.999.999
		if(iDigit == 0) return "";
		if(iDigit == 1) return "C";
		if(iDigit == 2) return "CC";
		if(iDigit == 3) return "CCC";
		if(iDigit == 4) return "CD";
		if(iDigit == 5) return "D";
		if(iDigit == 6) return "DC";
		if(iDigit == 7) return "DCC";
		if(iDigit == 8) return "DCCC";
		if(iDigit == 9) return "CM";
	}
}

/*
Mögliche Zeichenfolgen bei der Umrechnung Dezimal in Römisch
Umrechnungsart: mit Apostrophus
Übergabe: Position des aktuellen Zeichens, aktuelles Zeichen
Rückgabe: römische Zahl
*/
function functionGetRoman_apos(iPosition, iDigit) {
	if(iPosition == 1) { // 0 - 9
		if(iDigit == 0) return "";
		if(iDigit == 1) return "I";
		if(iDigit == 2) return "II";
		if(iDigit == 3) return "III";
		if(iDigit == 4) return "IV";
		if(iDigit == 5) return "V";
		if(iDigit == 6) return "VI";
		if(iDigit == 7) return "VII";
		if(iDigit == 8) return "VIII";
		if(iDigit == 9) return "IX";
	}
	if(iPosition == 2) { // 10 - 99
		if(iDigit == 0) return "";
		if(iDigit == 1) return "X";
		if(iDigit == 2) return "XX";
		if(iDigit == 3) return "XXX";
		if(iDigit == 4) return "XL";
		if(iDigit == 5) return "L";
		if(iDigit == 6) return "LX";
		if(iDigit == 7) return "LXX";
		if(iDigit == 8) return "LXXX";
		if(iDigit == 9) return "XC";
	}
	if(iPosition == 3) { // 100 - 999
		if(iDigit == 0) return "";
		if(iDigit == 1) return "C";
		if(iDigit == 2) return "CC";
		if(iDigit == 3) return "CCC";
		if(iDigit == 4) return "CI"+String.fromCharCode(9642);
		if(iDigit == 5) return "I"+String.fromCharCode(9642);
		if(iDigit == 6) return "I"+String.fromCharCode(9642)+"C";
		if(iDigit == 7) return "I"+String.fromCharCode(9642)+"CC";
		if(iDigit == 8) return "I"+String.fromCharCode(9642)+"CCC";
		if(iDigit == 9) return "C"+String.fromCharCode(8576);
	}
	if(iPosition == 4) { // 1000 - 9999
		if(iDigit == 0) return "";
		if(iDigit == 1) return String.fromCharCode(8576);
		if(iDigit == 2) return String.fromCharCode(8576,8576);
		if(iDigit == 3) return String.fromCharCode(8576,8576,8576);
		if(iDigit == 4) return String.fromCharCode(8576,8577);
		if(iDigit == 5) return String.fromCharCode(8577);
		if(iDigit == 6) return String.fromCharCode(8577,8576);
		if(iDigit == 7) return String.fromCharCode(8577,8576,8576);
		if(iDigit == 8) return String.fromCharCode(8577,8576,8576,8576);
		if(iDigit == 9) return String.fromCharCode(8576,8578);
	}
	if(iPosition == 5) { // 10.000 - 99.999
		if(iDigit == 0) return "";
		if(iDigit == 1) return String.fromCharCode(8578);
		if(iDigit == 2) return String.fromCharCode(8578,8578);
		if(iDigit == 3) return String.fromCharCode(8578,8578,8578);
		if(iDigit == 4) return String.fromCharCode(8578)+"I"+String.fromCharCode(9642,9642,9642);
		if(iDigit == 5) return "I"+String.fromCharCode(9642,9642,9642);
		if(iDigit == 6) return "I"+String.fromCharCode(9642,9642,9642,8578);
		if(iDigit == 7) return "I"+String.fromCharCode(9642,9642,9642,8578,8578);
		if(iDigit == 8) return "I"+String.fromCharCode(9642,9642,9642,8578,8578,8578);
		if(iDigit == 9) return String.fromCharCode(8578)+"CCCI"+String.fromCharCode(9642,9642,9642);
	}
	if(iPosition == 6) { // 100.000 - 999.999
		if(iDigit == 0) return "";
		if(iDigit == 1) return "CCCI"+String.fromCharCode(9642,9642,9642);
		if(iDigit == 2) return "CCCI"+String.fromCharCode(9642,9642,9642)+"CCCI"+String.fromCharCode(9642,9642,9642) + "\n";
		if(iDigit == 3) return "CCCI"+String.fromCharCode(9642,9642,9642)+"CCCI"+String.fromCharCode(9642,9642,9642)+"CCCI"+String.fromCharCode(9642,9642,9642) + "\n";
		if(iDigit == 4) return "CCCI"+String.fromCharCode(9642,9642,9642)+"I"+String.fromCharCode(9642,9642,9642,9642) + "\n";
		if(iDigit == 5) return "I"+String.fromCharCode(9642,9642,9642,9642) + "\n";
		if(iDigit == 6) return "I"+String.fromCharCode(9642,9642,9642,9642)+"CCCI"+String.fromCharCode(9642,9642,9642) + "\n";
		if(iDigit == 7) return "I"+String.fromCharCode(9642,9642,9642,9642)+"CCCI"+String.fromCharCode(9642,9642,9642)+"CCCI"+String.fromCharCode(9642,9642,9642) + "\n";
		if(iDigit == 8) return "I"+String.fromCharCode(9642,9642,9642,9642)+"CCCI"+String.fromCharCode(9642,9642,9642)+"CCCI"+String.fromCharCode(9642,9642,9642)+"CCCI"+String.fromCharCode(9642,9642,9642) + "\n";
		if(iDigit == 9) return "CCCI"+String.fromCharCode(9642,9642,9642)+"CCCCI"+String.fromCharCode(9642,9642,9642,9642) + "\n";
	}
	if(iPosition == 7) { // 1.000.000 - 9.999.999
		if(iDigit == 0) return "";
		if(iDigit == 1) return "CCCCI"+String.fromCharCode(9642,9642,9642,9642) + "\n";
		if(iDigit == 2) return "CCCCI"+String.fromCharCode(9642,9642,9642,9642)+"CCCCI"+String.fromCharCode(9642,9642,9642,9642) + "\n";
		if(iDigit == 3) return "CCCCI"+String.fromCharCode(9642,9642,9642,9642)+"CCCCI"+String.fromCharCode(9642,9642,9642,9642)+"CCCCI"+String.fromCharCode(9642,9642,9642,9642) + "\n";
		if(iDigit == 4) return "CCCCI"+String.fromCharCode(9642,9642,9642,9642)+"I"+String.fromCharCode(9642,9642,9642,9642,9642) + "\n";
		if(iDigit == 5) return "I"+String.fromCharCode(9642,9642,9642,9642,9642) + "\n";
		if(iDigit == 6) return "I"+String.fromCharCode(9642,9642,9642,9642,9642)+"CCCCI"+String.fromCharCode(9642,9642,9642,9642) + "\n";
		if(iDigit == 7) return "I"+String.fromCharCode(9642,9642,9642,9642,9642)+"CCCCI"+String.fromCharCode(9642,9642,9642,9642)+"CCCCI"+String.fromCharCode(9642,9642,9642,9642) + "\n";
		if(iDigit == 8) return "I"+String.fromCharCode(9642,9642,9642,9642,9642)+"CCCCI"+String.fromCharCode(9642,9642,9642,9642) + "\n" +"CCCCI"+String.fromCharCode(9642,9642,9642,9642)+"CCCCI"+String.fromCharCode(9642,9642,9642,9642);
		if(iDigit == 9) return "CCCCI"+String.fromCharCode(9642,9642,9642,9642)+"CCCCCI"+String.fromCharCode(9642,9642,9642,9642,9642) + "\n";
	}
	if(iPosition == 8) { // 10.000.000 - 99.999.999
		if(iDigit == 0) return "";
		if(iDigit == 1) return "CCCCCI"+String.fromCharCode(9642,9642,9642,9642,9642) + "\n";
		if(iDigit == 2) return "CCCCCI"+String.fromCharCode(9642,9642,9642,9642,9642)+"CCCCCI"+String.fromCharCode(9642,9642,9642,9642,9642) + "\n";
		if(iDigit == 3) return "CCCCCI"+String.fromCharCode(9642,9642,9642,9642,9642)+"CCCCCI"+String.fromCharCode(9642,9642,9642,9642,9642)+"CCCCCI"+String.fromCharCode(9642,9642,9642,9642,9642) + "\n";
		if(iDigit == 4) return "CCCCCI"+String.fromCharCode(9642,9642,9642,9642,9642)+"I"+String.fromCharCode(9642,9642,9642,9642,9642,9642) + "\n";
		if(iDigit == 5) return "I"+String.fromCharCode(9642,9642,9642,9642,9642,9642) + "\n";
		if(iDigit == 6) return "I"+String.fromCharCode(9642,9642,9642,9642,9642,9642)+"CCCCCI"+String.fromCharCode(9642,9642,9642,9642,9642) + "\n";
		if(iDigit == 7) return "I"+String.fromCharCode(9642,9642,9642,9642,9642,9642)+"CCCCCI"+String.fromCharCode(9642,9642,9642,9642,9642)+"CCCCCI"+String.fromCharCode(9642,9642,9642,9642,9642) + "\n";
		if(iDigit == 8) return "I"+String.fromCharCode(9642,9642,9642,9642,9642,9642)+"CCCCCI"+String.fromCharCode(9642,9642,9642,9642,9642) + "\n" +"CCCCCI"+String.fromCharCode(9642,9642,9642,9642,9642)+"CCCCCI"+String.fromCharCode(9642,9642,9642,9642,9642);
		if(iDigit == 9) return "CCCCCI"+String.fromCharCode(9642,9642,9642,9642,9642)+"CCCCCCI"+String.fromCharCode(9642,9642,9642,9642,9642,9642) + "\n";
	}
	if(iPosition == 9) { // 100.000.000 - 999.999.999
		if(iDigit == 0) return "";
		if(iDigit == 1) return "CCCCCCI"+String.fromCharCode(9642,9642,9642,9642,9642,9642) + "\n";
		if(iDigit == 2) return "CCCCCCI"+String.fromCharCode(9642,9642,9642,9642,9642,9642)+"CCCCCCI"+String.fromCharCode(9642,9642,9642,9642,9642,9642) + "\n";
		if(iDigit == 3) return "CCCCCCI"+String.fromCharCode(9642,9642,9642,9642,9642,9642)+"CCCCCCI"+String.fromCharCode(9642,9642,9642,9642,9642,9642)+"CCCCCCI"+String.fromCharCode(9642,9642,9642,9642,9642,9642);
		if(iDigit == 4) return "CCCCCCI"+String.fromCharCode(9642,9642,9642,9642,9642,9642)+"I"+String.fromCharCode(9642,9642,9642,9642,9642,9642,9642) + "\n";
		if(iDigit == 5) return "I"+String.fromCharCode(9642,9642,9642,9642,9642,9642,9642) + "\n";
		if(iDigit == 6) return "I"+String.fromCharCode(9642,9642,9642,9642,9642,9642,9642)+"CCCCCCI"+String.fromCharCode(9642,9642,9642,9642,9642,9642) + "\n";
		if(iDigit == 7) return "I"+String.fromCharCode(9642,9642,9642,9642,9642,9642,9642)+"CCCCCCI"+String.fromCharCode(9642,9642,9642,9642,9642,9642)+"CCCCCCI"+String.fromCharCode(9642,9642,9642,9642,9642,9642) + "\n";
		if(iDigit == 8) return "I"+String.fromCharCode(9642,9642,9642,9642,9642,9642,9642)+"CCCCCCI"+String.fromCharCode(9642,9642,9642,9642,9642,9642) + "\n" +"CCCCCCI"+String.fromCharCode(9642,9642,9642,9642,9642,9642)+"CCCCCCI"+String.fromCharCode(9642,9642,9642,9642,9642,9642);
		if(iDigit == 9) return "CCCCCCI"+String.fromCharCode(9642,9642,9642,9642,9642,9642)+"CCCCCCCI"+String.fromCharCode(9642,9642,9642,9642,9642,9642,9642) + "\n";
	}
}

/*
Mögliche Zeichenfolgen bei der Umrechnung Dezimal in Römisch
Umrechnungsart: mit Rahmen
Übergabe: Position des aktuellen Zeichens, aktuelles Zeichen
Rückgabe: römische Zahl
*/
function functionGetRoman_rahm(iPosition, iDigit) {
	if(iPosition == 1) { // 0 - 9
		if(iDigit == 0) return "";
		if(iDigit == 1) return "I";
		if(iDigit == 2) return "II";
		if(iDigit == 3) return "III";
		if(iDigit == 4) return "IV";
		if(iDigit == 5) return "V";
		if(iDigit == 6) return "VI";
		if(iDigit == 7) return "VII";
		if(iDigit == 8) return "VIII";
		if(iDigit == 9) return "IX";
	}
	if(iPosition == 2) { // 10 - 99
		if(iDigit == 0) return "";
		if(iDigit == 1) return "X";
		if(iDigit == 2) return "XX";
		if(iDigit == 3) return "XXX";
		if(iDigit == 4) return "XL";
		if(iDigit == 5) return "L";
		if(iDigit == 6) return "LX";
		if(iDigit == 7) return "LXX";
		if(iDigit == 8) return "LXXX";
		if(iDigit == 9) return "XC";
	}
	if(iPosition == 3) { // 100 - 999
		if(iDigit == 0) return "";
		if(iDigit == 1) return "C";
		if(iDigit == 2) return "CC";
		if(iDigit == 3) return "CCC";
		if(iDigit == 4) return "CD";
		if(iDigit == 5) return "D";
		if(iDigit == 6) return "DC";
		if(iDigit == 7) return "DCC";
		if(iDigit == 8) return "DCCC";
		if(iDigit == 9) return "CM";
	}
	if(iPosition == 4) { // 1000 - 9999
		if(iDigit == 0) return "";
		if(iDigit == 1) return "M";
		if(iDigit == 2) return "MM";
		if(iDigit == 3) return "MMM";
		if(iDigit == 4) return "M" + String.fromCharCode(8577);
		if(iDigit == 5) return String.fromCharCode(8577);
		if(iDigit == 6) return String.fromCharCode(8577) + "M";
		if(iDigit == 7) return String.fromCharCode(8577) + "MM";
		if(iDigit == 8) return String.fromCharCode(8577) + "MMM";
		if(iDigit == 9) return "M" + String.fromCharCode(8578);
	}
	if(iPosition == 5) { // 10.000 - 99.999
		if(iDigit == 0) return "";
		if(iDigit == 1) return String.fromCharCode(8578);
		if(iDigit == 2) return String.fromCharCode(8578,8578);
		if(iDigit == 3) return String.fromCharCode(8578,8578,8578);
		if(iDigit == 4) return String.fromCharCode(8578)+"I"+String.fromCharCode(9642,9642,9642);
		if(iDigit == 5) return "I"+String.fromCharCode(9642,9642,9642);
		if(iDigit == 6) return "I"+String.fromCharCode(9642,9642,9642,8578);
		if(iDigit == 7) return "I"+String.fromCharCode(9642,9642,9642,8578,8578);
		if(iDigit == 8) return "I"+String.fromCharCode(9642,9642,9642,8578,8578,8578);
		if(iDigit == 9) return String.fromCharCode(8578)+"CCCI"+String.fromCharCode(9642,9642,9642);
	}
	if(iPosition == 6) { // 100.000 - 999.999
		if(iDigit == 0) return "";
		if(iDigit == 1) return "I";
		if(iDigit == 2) return "II";
		if(iDigit == 3) return "III";
		if(iDigit == 4) return "IV";
		if(iDigit == 5) return "V";
		if(iDigit == 6) return "VI";
		if(iDigit == 7) return "VII";
		if(iDigit == 8) return "VIII";
		if(iDigit == 9) return "IX";
	}
	if(iPosition == 7) { // 1.000.000 - 9.999.999
		if(iDigit == 0) return "";
		if(iDigit == 1) return "X";
		if(iDigit == 2) return "XX";
		if(iDigit == 3) return "XXX";
		if(iDigit == 4) return "XL";
		if(iDigit == 5) return "L";
		if(iDigit == 6) return "LX";
		if(iDigit == 7) return "LXX";
		if(iDigit == 8) return "LXXX";
		if(iDigit == 9) return "XC";
	}
	if(iPosition == 8) { // 10.000.000 - 99.999.999
		if(iDigit == 0) return "";
		if(iDigit == 1) return "C";
		if(iDigit == 2) return "CC";
		if(iDigit == 3) return "CCC";
		if(iDigit == 4) return "CD";
		if(iDigit == 5) return "D";
		if(iDigit == 6) return "DC";
		if(iDigit == 7) return "DCC";
		if(iDigit == 8) return "DCCC";
		if(iDigit == 9) return "CM";
	}
	if(iPosition == 9) { // 100.000.000 - 999.999.999
		if(iDigit == 0) return "";
		if(iDigit == 1) return "M";
		if(iDigit == 2) return "MM";
		if(iDigit == 3) return "MMM";
		if(iDigit == 4) return "M" + String.fromCharCode(8577);
		if(iDigit == 5) return String.fromCharCode(8577);
		if(iDigit == 6) return String.fromCharCode(8577) + "M";
		if(iDigit == 7) return String.fromCharCode(8577) + "MM";
		if(iDigit == 8) return String.fromCharCode(8577) + "MMM";
		if(iDigit == 9) return "M" + String.fromCharCode(8578);
	}
}


/*
Funktion zur Umrechnung einer Dezimalzahl in eine römische Zahl.
Greift auf die vorherigen Funktionen mit erlaubten Zeichenfolgen
zurück.
Übergabe: Dezimalzahl, Korrekturrechnung / eigentliche Umrechnung, Art der Umrechnung
(die Art der Umrechnung ist nur bei Korrekturrechnungen nötig)
Rückgabe: Dezimalzahl
*/
function getDecimalToRoman(iDecimal, korrektur, umrvar) {
	// Fehler bei Zeichenüberpruefung
	var fehler = false;
	// Zwischenspeicher für Dezimalzahl
	var tempDecimal = '';
	// Leerzeichen vom Anfang und vom Ende der Dezimalzahl entfernen
	iDecimal = iDecimal.replace(/^ */,"")
	iDecimal = iDecimal.replace(/ *$/,"");
	// Vornullen entfernen
	iDecimal = iDecimal.replace(/^0*/,"")
	// Prüfen ob Eingabe nur gültige Zeichen enthält
	// die Umrechnung wird mit den gültigen Zeichen durchgeführt
	for(var i=0; i<iDecimal.length; i++) {
		if(aDecimals.indexOf(iDecimal.charAt(i)) == -1) {
			fehler = true;
		} else {
			tempDecimal = tempDecimal + iDecimal.charAt(i);
		}
	}
	iDecimal = tempDecimal;
	// Grösse der Deziamlzahl prüfen
	if(iDecimal > iMaximalDecimal) {
		romanArabicErrorHandler("__ERR_ZAHL_GROESSE__" + " " + iMaximalDecimal);
		return mReturnOnError;
	}
	// Position des letzten Zeichens
	var i = iDecimal.length - 1;
	// erster Teil der römischen Zahl
	var sRomanInt = "";
	// zweiter Teil der römischen Zahl
	var sRomanInt1 = "";
	// dritter Teil der römischen Zahl
	var sRomanInt2 = "";
	// Art der Umrechnung (Standard: Subtraktionsregel)
	var romart = "2";
	if(!korrektur) {
		// Korrekturbox löschen
		if (umrvar > 0) {
			document.getElementById('corrector').value = "";
		}
		// Art der Umrechnung ermitteln
		for (var x = 0; x < document.getElementsByName('romart').length; x++) {
			if (document.getElementsByName('romart')[x].checked == true) {
				romart = document.getElementsByName('romart')[x].value;
			}
		}
	} else {
		// bei einer Korrekturrechnung wird die Art der Umrechnung vorgegeben
		romart = umrvar;
	}
	// eigentliche Umrechnung von links nach rechts
	while(i>=0) {
		if (romart == 1) {
			// einfache Umrechnung
			sRomanInt = functionGetRoman_einf((iDecimal.length - i), iDecimal.charAt(i)) + sRomanInt;
		} else if (romart == 2) {
			// Subtraktionsregel
			sRomanInt = functionGetRoman((iDecimal.length - i), iDecimal.charAt(i)) + sRomanInt;
		} else if (romart == 3) {
			// mit Vinculum (drei Terme möglich)
			if (i < (iDecimal.length - 6)) {
				sRomanInt2 = functionGetRoman_vinc((iDecimal.length - i), iDecimal.charAt(i), iDecimal.length) + sRomanInt2;
			} else if (i < (iDecimal.length - 3)) {
				sRomanInt1 = functionGetRoman_vinc((iDecimal.length - i), iDecimal.charAt(i), iDecimal.length) + sRomanInt1;
				if (sRomanInt1 == 'M') {
					sRomanInt = sRomanInt1 + sRomanInt;
					sRomanInt1 = "";
				}
			} else {
				sRomanInt = functionGetRoman_vinc((iDecimal.length - i), iDecimal.charAt(i), iDecimal.length) + sRomanInt;
			}
		} else if (romart == 4) {
			// Multiplikationsschreibweise
			sRomanInt = functionGetRoman_multip((iDecimal.length - i), iDecimal.charAt(i), iDecimal.length) + sRomanInt;
		} else if (romart == 5) {
			// mit Cifrao oder Calderon
			sRomanInt = functionGetRoman_cifr((iDecimal.length - i), iDecimal.charAt(i)) + sRomanInt;
		} else if (romart == 6) {
			// mit Apostrophus
			sRomanInt = functionGetRoman_apos((iDecimal.length - i), iDecimal.charAt(i)) + sRomanInt;
		} else if (romart == 7) {
			// mit Rahmen (zwei Terme möglich)
			if (i < (iDecimal.length - 5)) {
				sRomanInt1 = functionGetRoman_rahm((iDecimal.length - i), iDecimal.charAt(i), iDecimal.length) + sRomanInt1;
			} else {
				sRomanInt = functionGetRoman_rahm((iDecimal.length - i), iDecimal.charAt(i), iDecimal.length) + sRomanInt;
			}
		} else {
			sRomanInt = functionGetRoman((iDecimal.length - i), iDecimal.charAt(i)) + sRomanInt;
		}
		i--;
	}
	bBlockError = false;
	if(!korrektur){
		// dritten Term in Ergebnisbox schreiben
		if (sRomanInt2.length > 0) {
			if (document.getElementById('vinculum2').firstChild == null) {
				if (sRomanInt2.length > 0) {
					if (document.getElementById('romerg').childNodes[1].firstChild == null) {
						document.getElementById('romerg').childNodes[1].appendChild(document.createTextNode(String.fromCharCode(160)));
					} else {
						document.getElementById('romerg').childNodes[1].data=String.fromCharCode(160);
					}
					document.getElementById('vinculum2').appendChild(document.createTextNode(sRomanInt2));
				} else {
					document.getElementById('vinculum2').appendChild(document.createTextNode(sRomanInt2));
				}
			} else {
				if (sRomanInt2.length > 0) {
					if (document.getElementById('romerg').childNodes[1].firstChild == null) {
						document.getElementById('romerg').childNodes[1].appendChild(document.createTextNode(String.fromCharCode(160)));
					} else {
						document.getElementById('romerg').childNodes[1].data=String.fromCharCode(160);
					}
					document.getElementById('vinculum2').firstChild.data=sRomanInt2;
				} else {
					document.getElementById('vinculum2').firstChild.data=sRomanInt2;
				}
			}
		}
		// zweiten Term in Ergebnisbox schreiben
		if (sRomanInt1.length > 0) {
			if (romart == 7) {
				if (document.getElementById('rahmen1').firstChild == null) {
					document.getElementById('rahmen1').appendChild(document.createTextNode(sRomanInt1));
				} else {
					document.getElementById('rahmen1').firstChild.data=sRomanInt1;
				}
			} else {
				if (document.getElementById('vinculum1').firstChild == null) {
					document.getElementById('vinculum1').appendChild(document.createTextNode(sRomanInt1));
				} else {
					document.getElementById('vinculum1').firstChild.data=sRomanInt1;
				}
			}
		}
		// ersten Term in Ergebnisbox schreiben
		if (sRomanInt.length > 0) {
			if (sRomanInt1.length > 0) {
				if (romart == 7) {
					showrahm();
				}
				document.getElementById('romerg').style.lineHeight="1.8";
				document.getElementById('romerg').childNodes[4].data=String.fromCharCode(160) + sRomanInt;
			} else {
				hiderahm();
				document.getElementById('romerg').style.lineHeight="1.1";
				if ((romart == 3) || (romart == 4) || (romart == 6) || (romart == 7)) {
					document.getElementById('romerg').childNodes[4].data=sRomanInt;
				} else if (romart == 5) {
					document.getElementById('romerg').childNodes[4].data=sRomanInt;
				} else {
					document.getElementById('romerg').childNodes[4].data=zeilenumbruch(sRomanInt);
				}
			}
		} else {
			document.getElementById('romerg').childNodes[4].data=String.fromCharCode(160);
		}
	}
	// prüfen ob ungültige Zeichen in Dezimalzahl enthalten waren
	if (fehler) {
		document.getElementById('decimalValue').value=iDecimal;
		if (!korrektur) {
			romanArabicErrorHandler("__ERR_DEZZAHL_FALSCH_ZIFFER__" + " " + aDecimals);
			mReturnOnError = sRomanInt;
			return mReturnOnError;
		}
	}
	return sRomanInt;
}

/*
Umrechnung Dezimal in Römisch - Ende
*/


/*
Umrechnung Römisch in Dezimal - Beginn
*/

/*
Zuordnung Dezimalzahl zu römischer Zahl
Umrechnungsart: einfache Umrechnung + Subtraktionsregel
Übergabe: römische Zahl
Rückhabe: Dezimalzahl
*/
function getDecimalFromRoman(sRoman) {
	if(sRoman == "I") return 1;
	if(sRoman == "V") return 5;
	if(sRoman == "X") return 10;
	if(sRoman == "L") return 50;
	if(sRoman == "C") return 100;
	if(sRoman == "D") return 500;
	if(sRoman == "M") return 1000;
	return 0;
}

/*
Prüfung ob römische Zahl in Subtraktionsschreibweise verwendet werden kann
Umrechnungsart: Subtraktionsregel
Übergabe: römische Zahl
Rückhabe: Wahrheitswert
*/
function getCanSubstr(sRoman) {
	if(sRoman == "I") return true;
	if(sRoman == "X") return true;
	if(sRoman == "C") return true;
	if(sRoman == "M") return true;
	return false;
}

/*
Zuordnung Dezimalzahl zu römischer Zahl
Umrechnungsart: mit Apostrophus
Übergabe: römische Zahl
Rückhabe: Dezimalzahl
*/
function getDecimalFromRoman_apos(sRoman) {
	var vergl="";
	if(sRoman == "I") return 1;
	if(sRoman == "V") return 5;
	if(sRoman == "X") return 10;
	if(sRoman == "L") return 50;
	if(sRoman == "C") return 100;
	vergl="I"+String.fromCharCode(9642);
	if(sRoman == vergl) return 500;
	vergl=String.fromCharCode(8576);
	if(sRoman == vergl) return 1000;
	vergl="CI"+String.fromCharCode(9642);
	if(sRoman == vergl) return 1000;
	vergl=String.fromCharCode(8577);
	if(sRoman == vergl) return 5000;
	vergl="I"+String.fromCharCode(9642,9642);
	if(sRoman == vergl) return 5000;
	vergl=String.fromCharCode(8578);
	if(sRoman == vergl) return 10000;
	vergl="CCI"+String.fromCharCode(9642,9642);
	if(sRoman == vergl) return 10000;
	vergl="I"+String.fromCharCode(9642,9642,9642);
	if(sRoman == vergl) return 50000;
	vergl="CCCI"+String.fromCharCode(9642,9642,9642);
	if(sRoman == vergl) return 100000;
	vergl="I"+String.fromCharCode(9642,9642,9642,9642);
	if(sRoman == vergl) return 500000;
	vergl="CCCCI"+String.fromCharCode(9642,9642,9642,9642);
	if(sRoman == vergl) return 1000000;
	vergl="I"+String.fromCharCode(9642,9642,9642,9642,9642);
	if(sRoman == vergl) return 5000000;
	vergl="CCCCCI"+String.fromCharCode(9642,9642,9642,9642,9642);
	if(sRoman == vergl) return 10000000;
	vergl="I"+String.fromCharCode(9642,9642,9642,9642,9642,9642);
	if(sRoman == vergl) return 50000000;
	vergl="CCCCCCI"+String.fromCharCode(9642,9642,9642,9642,9642,9642);
	if(sRoman == vergl) return 100000000;
	vergl="I"+String.fromCharCode(9642,9642,9642,9642,9642,9642,9642);
	if(sRoman == vergl) return 500000000;
	return 0;
}

/*
Prüfung ob römische Zahl in Subtraktionsschreibweise verwendet werden kann
Umrechnungsart: mit Apostrophus
Übergabe: römische Zahl
Rückhabe: Wahrheitswert
*/
function getCanSubstr_apos(sRoman) {
	if(sRoman == "I") return true;
	if(sRoman == "X") return true;
	if(sRoman == "C") return true;
	vergl=String.fromCharCode(8576);
	if(sRoman == vergl) return true;
	vergl=String.fromCharCode(8578);
	if(sRoman == vergl) return true;
	vergl="CI"+String.fromCharCode(9642);
	if(sRoman == vergl) return true;
	vergl="CCI"+String.fromCharCode(9642,9642);
	if(sRoman == vergl) return true;
	vergl="CCCI"+String.fromCharCode(9642,9642,9642);
	if(sRoman == vergl) return true;
	vergl="CCCCI"+String.fromCharCode(9642,9642,9642,9642);
	if(sRoman == vergl) return true;
	vergl="CCCCCI"+String.fromCharCode(9642,9642,9642,9642,9642);
	if(sRoman == vergl) return true;
	vergl="CCCCCCI"+String.fromCharCode(9642,9642,9642,9642,9642,9642);
	if(sRoman == vergl) return true;
	return false;
}


/*
Korrektur
Umrechnungsart: einfache Umrechnung
Übergabe: römische Zahl
*/
function getRomanToDecimal_einf_korr(iRoman) {
	var iDecimal = 0;
	var i = iRoman.length - 1;
	if (iRoman.length > 0) {
		// Umrechnung von links nach rechts
		while(i >= 0) {
			iDecimal = iDecimal + getDecimalFromRoman(iRoman.charAt(i));
			i--;
		}
	}
	// Ergebnisbox löschen
	document.getElementById('decimalValue').value=0;
	getDecimalToRoman(document.getElementById('decimalValue').value,false,0);
	// Ergebnis in Korrekturbox legen
	document.getElementById('decimalValue').value=iDecimal;
	document.getElementById('corrector').value=getDecimalToRoman(document.getElementById('decimalValue').value,true,1);
	//return iDecimal;
}


/*
eigentliche Umrechnung
Umrechnungsart: einfache Umrechnung
Übergabe: römische Zahl
Rückgabe: Dezimalzahl
*/
function getRomanToDecimal_einf(iRoman) {
	var iDecimal = 0;
	var i = iRoman.length - 1;
	// Umrechnung von links nach rechts
	while(i>=0) {
		// prüfen ob Vorgänger kleiner
		if(getDecimalFromRoman(iRoman.charAt(i)) < getDecimalFromRoman(iRoman.charAt(i+1))) {
			romanArabicErrorHandler("__ERR_ZEICHEN_KLEIN_VOR_GROSS__");
			//Korrektur der Eingabe
			getRomanToDecimal_einf_korr(iRoman);
			/*
			var tempzeichen = '';
			for(var z=i; z < iRoman.length; z++) {
				tempzeichen = tempzeichen + iRoman.charAt(z);
			}
			document.getElementById('romanValue').value=tempzeichen;
			*/
			document.getElementById('decimalValue').value=iDecimal;
			return mReturnOnError;
		} else {
			// prüfen ob nicht in tausender Stellen gerechnet wird und aktuelles Zeichen und Vorgänger gleich
			if ((getDecimalFromRoman(iRoman.charAt(i)) == getDecimalFromRoman(iRoman.charAt(i+1))) && (iRoman.charAt(i) != "M")) {
				// prüfen ob Zeichen und Vorgänger als Subtraktionselement verwendet werden kann
				if ((!getCanSubstr(iRoman.charAt(i))) && (!getCanSubstr(iRoman.charAt(i+1)))) {
					romanArabicErrorHandler("__ERR_ZEICHEN_ORDNUNG__");
					//Korrektur der Eingabe
					getRomanToDecimal_einf_korr(iRoman);
					//document.getElementById('romanValue').value=tempzeichen;
					document.getElementById('decimalValue').value=iDecimal;
					return mReturnOnError;
				}
				// prüfen ob fünf gleiche Zeichen nebeneinander stehen
				if((i+2) <= (iRoman.length - 1) ) {
					if(getDecimalFromRoman(iRoman.charAt(i+1)) == getDecimalFromRoman(iRoman.charAt(i+2))) {
						if((i+3) <= (iRoman.length - 1) ) {
							if(getDecimalFromRoman(iRoman.charAt(i+2)) == getDecimalFromRoman(iRoman.charAt(i+3))) {
								if((i+4) <= (iRoman.length - 1) ) {
									if(getDecimalFromRoman(iRoman.charAt(i+3)) == getDecimalFromRoman(iRoman.charAt(i+4))) {
										romanArabicErrorHandler("__ERR_ZAHLEN_ROEM_ANWENDUNG__");
										//Korrektur der Eingabe
										getRomanToDecimal_einf_korr(iRoman);
										//document.getElementById('romanValue').value=tempzeichen;
										document.getElementById('decimalValue').value=iDecimal;
										return mReturnOnError;
									}
								}
							}
						}
					}
				}
			}
			iDecimal = iDecimal + getDecimalFromRoman(iRoman.charAt(i));
		}
		i--;
	}
	return iDecimal;
}

/*
Korrektur
Umrechnungsart: Subtraktionsregel
Übergabe: römische Zahl, Teilrechnung / keine Teilrechnung
*/
function getRomanToDecimal_subtr_korr(iRoman,teil) {
	var iDecimal = 0;
	var i = iRoman.length - 1;
	if (iRoman.length > 0) {
		// Umrechnung von links nach rechts
		while(i >= 0) {
			iDecimal = iDecimal + getDecimalFromRoman(iRoman.charAt(i));
			i--;
		}
	}
	if (teil == 0) {
		// Ergebnis nur ausgeben wenn keine Teilrechnung
		// Ergebnisbox löschen
		document.getElementById('decimalValue').value=0;
		getDecimalToRoman(document.getElementById('decimalValue').value,false,0);
		// Ergebnis in Korrekturbox legen
		document.getElementById('decimalValue').value=iDecimal;
		document.getElementById('corrector').value=getDecimalToRoman(document.getElementById('decimalValue').value,true,2);
	} else {
		return iDecimal;
	}
}

/*
eigentliche Umrechnung
Umrechnungsart: Subtraktionsregel
Übergabe: römische Zahl, Teilrechnung / keine Teilrechnung
Rückgabe: Dezimalzahl
*/
function getRomanToDecimal_subtr(iRoman,teil) {
	var iDecimal = 0;
	var i = iRoman.length - 1;
	var fehler = false;
	// Umrechnung von links nach rechts
	while(i>=0) {
		// wurde mit der Subtraktionsschreibweise gearbeitet?
		if(getDecimalFromRoman(iRoman.charAt(i)) < getDecimalFromRoman(iRoman.charAt(i+1))) {
			// kann dieses Zeichen bei der Subtraktionsschreibweise überhaupt genutzt werden?
			if (!getCanSubstr(iRoman.charAt(i))) {
				if (teil == 0){
					romanArabicErrorHandler("__ERR_ZEICHEN_VOR_ZAHL_GROSS_SUBTR__");
					// Korrektur der Eingabe
					getRomanToDecimal_subtr_korr(iRoman,0);
					/*
					var tempzeichen = '';
					for(var z=i; z < iRoman.length; z++) {
						tempzeichen = tempzeichen + iRoman.charAt(z);
					}
					document.getElementById('romanValue').value=tempzeichen;
					*/
					document.getElementById('romanValue').value=iRoman.toUpperCase();
					document.getElementById('decimalValue').value=iDecimal;
					return mReturnOnError;
				} else {
					romanArabicErrorHandler("__ERR_SUBTRAKT_TERM__" + " " + teil);
					document.getElementById('romanValue').value=iRoman.toUpperCase();
					fehler = true;
				}
			}
			// ist die Zeichenkombination überhaupt möglich?
			if((aRomans.indexOf(iRoman.charAt(i+1)) - aRomans.indexOf(iRoman.charAt(i)) - 2) > 0 ) {
				if (teil == 0) {
					romanArabicErrorHandler("__ERR_ZEICHENKOMBI_NAECHSTGR_ZAHLZEICHEN__");
					// Korrektur der Eingabe
					getRomanToDecimal_subtr_korr(iRoman,0);
					/*
					var tempzeichen = '';
					for(var z=i; z < iRoman.length; z++) {
						tempzeichen = tempzeichen + iRoman.charAt(z);
					}
					document.getElementById('romanValue').value=tempzeichen;
					*/
					document.getElementById('romanValue').value=iRoman.toUpperCase();
					document.getElementById('decimalValue').value=iDecimal;
					return mReturnOnError;
				} else {
					romanArabicErrorHandler("__ERR_ZEICHENKOMBI_TERM__" + " " + teil);
					document.getElementById('romanValue').value=iRoman.toUpperCase();
					fehler = true;
				}
			}
			// prüfen ob ein kleineres römisches Zeichen vor zwei grösseren römischen Zeichen steht, Bsp.: IXX
			// oder ein kleineres römisches Zeichen vor einem grösseren römischen Zeichen und dieses
			// wiederum vor dem gleichen kleineren Zeichen steht, Bsp: IXI
			if((i+2) <= (iRoman.length - 1) ) {
				if((getDecimalFromRoman(iRoman.charAt(i+1)) == getDecimalFromRoman(iRoman.charAt(i+2))) || (getDecimalFromRoman(iRoman.charAt(i)) <= getDecimalFromRoman(iRoman.charAt(i+2)))) {
					if (teil == 0) {
						romanArabicErrorHandler("__ERR_SORT_ROEMZAHL__");
						// Korrektur der Eingabe
						getRomanToDecimal_subtr_korr(iRoman,0);
						/*
						var tempzeichen = '';
						for(var z=i+2; z < iRoman.length; z++) {
							tempzeichen = tempzeichen + iRoman.charAt(z);
						}
						document.getElementById('romanValue').value=tempzeichen;
						*/
						document.getElementById('romanValue').value=iRoman.toUpperCase();
						document.getElementById('decimalValue').value=iDecimal;
						return mReturnOnError;
					} else {
						romanArabicErrorHandler("__ERR_SORT_TERM__" + " " + teil);
						document.getElementById('romanValue').value=iRoman.toUpperCase();
						fehler = true;
					}
				}
			}
			// prüfen ob ein kleineres römisches Zeichen vor drei grösseren römischen Zeichen steht, Bsp.: XIIV
			if((i+3)<=(iRoman.length - 1)) {
				if(getDecimalFromRoman(iRoman.charAt(i+1)) <= getDecimalFromRoman(iRoman.charAt(i+3))) {
					if(getDecimalFromRoman(iRoman.charAt(i)) > getDecimalFromRoman(iRoman.charAt(i+2))) {
						if (teil == 0) {
							romanArabicErrorHandler("__ERR_SORT_ROEMZAHL__");
							// Korrektur der Eingabe
							getRomanToDecimal_subtr_korr(iRoman,0);
							/*
							var tempzeichen = '';
							for(var z=i+1; z < iRoman.length; z++) {
								tempzeichen = tempzeichen + iRoman.charAt(z);
							}
							document.getElementById('romanValue').value=tempzeichen;
							*/
							document.getElementById('romanValue').value=iRoman.toUpperCase();
							document.getElementById('decimalValue').value=iDecimal;
							return mReturnOnError;
						} else {
							romanArabicErrorHandler("__ERR_SORT_TERM__" + " " + teil);
							document.getElementById('romanValue').value=iRoman.toUpperCase();
							fehler = true;
						}
					}
				}
			}
			// prüfen ob der Vorgänger grösser und der Nachfolger kleiner als das aktuelle Zeichen ist
			if((i-1)>=0) {
				if(getDecimalFromRoman(iRoman.charAt(i-1)) < getDecimalFromRoman(iRoman.charAt(i+1))) {
					if (teil == 0) {
						romanArabicErrorHandler("__ERR_SORT_ROEMZAHL__");
						// Korrektur der Eingabe
						getRomanToDecimal_subtr_korr(iRoman,0);
						/*
						var tempzeichen = '';
						for(var z=i; z < iRoman.length; z++) {
							tempzeichen = tempzeichen + iRoman.charAt(z);
						}
						document.getElementById('romanValue').value=tempzeichen;
						*/
						document.getElementById('romanValue').value=iRoman.toUpperCase();
						document.getElementById('decimalValue').value=iDecimal;
						return mReturnOnError;
					} else {
						romanArabicErrorHandler("__ERR_SORT_TERM__" + " " + teil);
						document.getElementById('romanValue').value=iRoman.toUpperCase();
						fehler = true;
					}
				}
			}
			iDecimal = iDecimal - getDecimalFromRoman(iRoman.charAt(i));
		} else {
			// prüfen ob aktuelles Zeichen und Vorgänger gleich und das nicht in den tausender Stellen gerechnet wird
			if ((getDecimalFromRoman(iRoman.charAt(i)) == getDecimalFromRoman(iRoman.charAt(i+1))) && (iRoman.charAt(i) != "M")) {
				// prüfen ob aktuelles Zeichen udn Vorgänger für Subtraktionsregel genutzt werden können
				if ((!getCanSubstr(iRoman.charAt(i))) && (!getCanSubstr(iRoman.charAt(i+1)))) {
					if (teil == 0) {
						romanArabicErrorHandler("__ERR_ZEICHEN_ORDNUNG__");
						// Korrektur der Eingabe
						getRomanToDecimal_subtr_korr(iRoman,0);
						document.getElementById('romanValue').value=iRoman.toUpperCase();
						document.getElementById('decimalValue').value=iDecimal;
						return mReturnOnError;
					} else {
						romanArabicErrorHandler("__ERR_ORDNUNG_TERM__" + " " + teil);
						document.getElementById('romanValue').value=iRoman.toUpperCase();
						fehler = true;
					}
				}
				// prüfen ob vier gleiche Zahlen nebeneinander
				if((i+2) <= (iRoman.length - 1) ) {
					if(getDecimalFromRoman(iRoman.charAt(i+1)) == getDecimalFromRoman(iRoman.charAt(i+2))) {
						if((i+3) <= (iRoman.length - 1) ) {
							if(getDecimalFromRoman(iRoman.charAt(i+2)) == getDecimalFromRoman(iRoman.charAt(i+3))) {
								if (teil == 0) {
									romanArabicErrorHandler("__ERR_SUBTRAKT__");
									// Korrektur der Eingabe
									getRomanToDecimal_subtr_korr(iRoman,0);
									document.getElementById('romanValue').value=iRoman.toUpperCase();
									document.getElementById('decimalValue').value=iDecimal;
									return mReturnOnError;
								} else {
									romanArabicErrorHandler("__ERR_SUBTRAKT_KORR_TERM__" + " " + teil);
									document.getElementById('romanValue').value=iRoman.toUpperCase();
									fehler = true;
								}
							}
						}
					}
				}
			} else {
				// prüfen ob eine kleinere Zahl vor einer grösseren steht ohne Subtraktion
				if((i+3)<=(iRoman.length - 1)) {
					if(getDecimalFromRoman(iRoman.charAt(i+1)) == getDecimalFromRoman(iRoman.charAt(i+3))) {
						if(getDecimalFromRoman(iRoman.charAt(i)) < getDecimalFromRoman(iRoman.charAt(i+2))) {
							if (teil == 0) {
								romanArabicErrorHandler("__ERR_SORT_ROEMZAHL__");
								//Korrektur der Eingabe
								getRomanToDecimal_subtr_korr(iRoman,0);
								/*
								var tempzeichen = '';
								for(var z=i+1; z < iRoman.length; z++) {
									tempzeichen = tempzeichen + iRoman.charAt(z);
								}
								document.getElementById('romanValue').value=tempzeichen;
								*/
								document.getElementById('romanValue').value=iRoman.toUpperCase();
								document.getElementById('decimalValue').value=iDecimal;
								return mReturnOnError;
							} else {
								romanArabicErrorHandler("__ERR_SORT_TERM__" + " " + teil);
								document.getElementById('romanValue').value=iRoman.toUpperCase();
								fehler = true;
							}
						}
					}
				}
			}
			iDecimal = iDecimal + getDecimalFromRoman(iRoman.charAt(i));
		}
		i--;
	}
	if (fehler) {
		iDecimal = 0;
	}
	return iDecimal;
}

/*
Korrektur
Umrechnungsart: Multiplikationsschreibweise
Übergabe: römische Zahl
*/
function getRomanToDecimal_multip_korr(iRoman) {
	var iDecimal = 0;
	if (iRoman.length > 0) {
		// römische Zahl aufteilen
		var terme = iRoman.split("*");
		if (terme.length > 0) {
			// Terme einzeln berechnen
			iDecimal = getRomanToDecimal_subtr_korr(terme[terme.length-1],terme.length);
			var i = terme.length - 2;
			var iTemp = 0;
			var multiwert = 1000;
			while (i >= 0) {
				iTemp = getRomanToDecimal_subtr_korr(terme[i],i + 1);
				iTemp *= multiwert;
				iDecimal = iTemp + (iDecimal - multiwert);
				multiwert *= 1000;
				iTemp = 0;
				i--;
			}
		} else {
			iDecimal = getRomanToDecimal_subtr_korr(iRoman,1);
		}
	}
	// Ergebnisbox löschen
	document.getElementById('decimalValue').value=0;
	getDecimalToRoman(document.getElementById('decimalValue').value,false,0);
	// Ergebnis in Korrekturbox legen
	document.getElementById('decimalValue').value=iDecimal;
	document.getElementById('corrector').value=getDecimalToRoman(document.getElementById('decimalValue').value,true,4);
	//return iDecimal;
}

/*
eigentliche Umrechnung
Umrechnungsart: Multiplikationsschreibweise
Übergabe: römische Zahl
Rückgabe: Dezimalzahl
*/
function getRomanToDecimal_multip(iRoman) {
	var iDecimal = 0;
	if (iRoman.length > 0) {
		// römische Zahl aufteilen
		var terme = iRoman.split("*");
		if (terme.length > 0) {
			// Terme einzeln berechnen
			iDecimal = getRomanToDecimal_subtr(terme[terme.length-1],terme.length);
			if (iDecimal == 0) {
				// Korrektur der Eingabe
				getRomanToDecimal_multip_korr(iRoman);
				return mReturnOnError;
			}
			// prüfen ob Term mindestens der Zahl 1000 entspricht
			if (iDecimal >= 1000) {
				var i = terme.length - 2;
				var iTemp = 0;
				var multiwert = 1000;
				while (i >= 0) {
					iTemp = getRomanToDecimal_subtr(terme[i],i + 1);
					if (iTemp == 0) {
						// Korrektur der Eingabe
						getRomanToDecimal_multip_korr(iRoman);
						return mReturnOnError;
					}
					if (i > 0) {
						// prüfen ob Term mindestens der Zahl 1000 entspricht
						if (iTemp < 1000) {
							if (terme[i].length > 0) {
								romanArabicErrorHandler("__ERR_MULTIPLIK__");
								// Korrektur der Eingabe
								getRomanToDecimal_multip_korr(iRoman);
								document.getElementById('romanValue').value=iRoman.toUpperCase();
								document.getElementById('decimalValue').value=iDecimal;
								return mReturnOnError;
							}
						}
					}
					iTemp *= multiwert;
					iDecimal = iTemp + (iDecimal - multiwert);
					multiwert *= 1000;
					iTemp = 0;
					i--;
				}
			} else if (terme.length > 1) {
				if (terme[terme.length-1].length > 0) {
					romanArabicErrorHandler("__ERR_MULTIPLIK__");
					// Korrektur der Eingabe
					getRomanToDecimal_multip_korr(iRoman);
					document.getElementById('romanValue').value=iRoman.toUpperCase();
					document.getElementById('decimalValue').value=iDecimal;
					return mReturnOnError;
				}
			}
		} else {
			romanArabicErrorHandler("__ERR_ZERLEGUNG__");
			// Korrektur der Eingabe
			getRomanToDecimal_multip_korr(iRoman);
			document.getElementById('romanValue').value=iRoman.toUpperCase();
			return mReturnOnError;
		}
	}
	return iDecimal;
}

/*
Korrektur
Umrechnungsart: mit Cifrao oder Calderon
Übergabe: römische Zahl
*/
function getRomanToDecimal_cifr_korr(iRoman) {
	var iDecimal = 0;
	if (iRoman.length > 0) {
		// römische Zahl aufteilen
		var terme = iRoman.split("$");
		if (terme.length > 0) {
			// Terme einzeln berechnen
			iDecimal = getRomanToDecimal_subtr_korr(terme[terme.length-1],terme.length);
			iDecimal = iDecimal + "";
			if ((iDecimal.length < 3) && (terme.length > 1)) {
				while (iDecimal.length < 3) {
					iDecimal = "0" + iDecimal;
				}
			}
			var i = terme.length - 2;
			var iTemp = 0;
			while (i >= 0) {
				iTemp = getRomanToDecimal_subtr_korr(terme[i],i + 1);
				if (i > 0) {
					iTemp = iTemp + "";
					if (iTemp.length < 3) {
						while (iTemp.length < 3) {
							iTemp = "0" + iTemp;
						}
					}
				}
				iDecimal = (iTemp + "").concat(iDecimal);
				iTemp = 0;
				i--;
			}
		} else {
			iDecimal = getRomanToDecimal_subtr_korr(terme[terme.length-1],1);
		}
	}
	// Ergebnisbox löschen
	document.getElementById('decimalValue').value=0;
	getDecimalToRoman(document.getElementById('decimalValue').value,false,0);
	// Ergebnis in Korrekturbox legen
	document.getElementById('decimalValue').value=iDecimal;
	document.getElementById('corrector').value=getDecimalToRoman(document.getElementById('decimalValue').value,true,5);
	//return iDecimal;
}

/*
eigentliche Umrechnung
Umrechnungsart: mit Cifrao oder Calderon
Übergabe: römische Zahl
Rückgabe: Dezimalzahl
*/
function getRomanToDecimal_cifr(iRoman) {
	var iDecimal = "";
	if (iRoman.length > 0) {
		// römische Zahl aufteilen
		var terme = iRoman.split("$");
		if (terme.length > 0) {
			// Terme einzeln berechnen
			iDecimal = getRomanToDecimal_subtr(terme[terme.length-1],terme.length);
			if (iDecimal == 0) {
				// Korrektur der Eingabe
				getRomanToDecimal_cifr_korr(iRoman);
				return mReturnOnError;
			}
			iDecimal = iDecimal + "";
			// Zahl mit führenden Nullen auffüllen
			if ((iDecimal.length < 3) && (terme.length > 1)) {
				while (iDecimal.length < 3) {
					iDecimal = "0" + iDecimal;
				}
			}
			// prüfen ob Term kleiner als 1000
			if (iDecimal < 1000) {
				var i = terme.length - 2;
				var iTemp = 0;
				while (i >= 0) {
					iTemp = getRomanToDecimal_subtr(terme[i],i + 1);
					if (iTemp == 0) {
						// Korrektur der Eingabe
						getRomanToDecimal_cifr_korr(iRoman);
						return mReturnOnError;
					}
					if (i > 0) {
						// prüfen ob Term kleiner als 1000
						if (iTemp >= 1000) {
							romanArabicErrorHandler("__ERR_CIFRAO__");
							//Korrektur der Eingabe
							getRomanToDecimal_cifr_korr(iRoman);
							document.getElementById('romanValue').value=iRoman.toUpperCase();
							document.getElementById('decimalValue').value=iDecimal;
							return mReturnOnError;
						}
					}
					if (i > 0) {
						iTemp = iTemp + "";
						// Zahl mit führenden Nullen auffüllen
						if (iTemp.length < 3) {
							while (iTemp.length < 3) {
								iTemp = "0" + iTemp;
							}
						}
					}
					iDecimal = (iTemp + "").concat(iDecimal);
					iTemp = 0;
					i--;
				}
			} else {
				romanArabicErrorHandler("__ERR_CIFRAO__");
				// Korrektur der Eingabe
				getRomanToDecimal_cifr_korr(iRoman);
				document.getElementById('romanValue').value=iRoman.toUpperCase();
				document.getElementById('decimalValue').value=iDecimal;
				return mReturnOnError;
			}
		} else {
			romanArabicErrorHandler("__ERR_ZERLEGUNG__");
			// Korrektur der Eingabe
			getRomanToDecimal_cifr_korr(iRoman);
			document.getElementById('romanValue').value=iRoman.toUpperCase();
			return mReturnOnError;
		}
	}
	return iDecimal;
}

/*
Korrektur
Umrechnungsart: mit Apostrophus
Übergabe: römische Zahl
*/
function getRomanToDecimal_apos_korr(iRoman_temp) {
	var iDecimal = 0;
	var iRoman = new Array();
	var i = iRoman_temp.length - 1;
	var tmptxt1 = "";
	var tmptxt2 = "";
	if (iRoman_temp.length > 0) {
		//zuerst den String in ein Array zerlegen
		while(i >= 0) {
			tmptxt1 = iRoman_temp.charAt(i);
			tmptxt1 = tmptxt1.concat(tmptxt2);
			if (getDecimalFromRoman_apos(tmptxt1) > 0) {
				tmptxt2 = tmptxt1;
			} else if ((iRoman_temp.charAt(i) == "C") && (tmptxt1.search(/\W/) != -1)) {
				tmptxt2 = tmptxt1;
			} else if (getDecimalFromRoman_apos(tmptxt2) > 0) {
				iRoman[iRoman.length] = tmptxt2;
				tmptxt2 = iRoman_temp.charAt(i);
			} else {
				tmptxt2 = tmptxt1;
			}
			i--;
		}
		iRoman[iRoman.length] = tmptxt2;

		// Umrechnung auf Basis des Arrays
		i = 0;
		while(i <= (iRoman.length - 1)) {
			iDecimal = iDecimal + getDecimalFromRoman_apos(iRoman[i]);
			i++;
		}
	}
	// Ergebnisbox löschen
	document.getElementById('decimalValue').value=0;
	getDecimalToRoman(document.getElementById('decimalValue').value,false,0);
	// Ergebnis in Korrekturbox legen
	document.getElementById('decimalValue').value=iDecimal;
	document.getElementById('corrector').value=getDecimalToRoman(document.getElementById('decimalValue').value,true,6);
	//return iDecimal;
}

/*
eigentliche Umrechnung
Umrechnungsart: mit Apostrophus
Übergabe: römische Zahl
Rückgabe: Dezimalzahl
*/
function getRomanToDecimal_apos(iRoman_temp) {
	var iDecimal = 0;
	var iRoman = new Array();
	var i = iRoman_temp.length - 1;
	var tmptxt1 = "";
	var tmptxt2 = "";

	if (iRoman_temp.length > 0) {
		//zuerst den String in ein Array zerlegen
		while(i >= 0) {
			tmptxt1 = iRoman_temp.charAt(i);
			tmptxt1 = tmptxt1.concat(tmptxt2);
			if (getDecimalFromRoman_apos(tmptxt1) > 0) {
				tmptxt2 = tmptxt1;
			} else if ((iRoman_temp.charAt(i) == "C") && (tmptxt1.search(/\W/) != -1)) {
				tmptxt2 = tmptxt1;
			} else if (getDecimalFromRoman_apos(tmptxt2) > 0) {
				iRoman[iRoman.length] = tmptxt2;
				tmptxt2 = iRoman_temp.charAt(i);
			} else {
				tmptxt2 = tmptxt1;
			}
			i--;
		}
		iRoman[iRoman.length] = tmptxt2;

		i = 0;
		// Umrechnung auf Basis des Arrays
		while(i <= (iRoman.length - 1)) {
			// wurde mit der Subtraktionsschreibweise gearbeitet?
			if (getDecimalFromRoman_apos(iRoman[i]) < getDecimalFromRoman_apos(iRoman[i-1])) {
				// kann dieses Zeichen bei der Subtraktionsschreibweise überhaupt genutzt werden?
				if (!getCanSubstr_apos(iRoman[i])) {
					romanArabicErrorHandler("__ERR_SUBTRAKT_ZEICHEN__" + " " + iRoman[i]);
					// Korrektur der Eingabe
					getRomanToDecimal_apos_korr(iRoman_temp);
					document.getElementById('romanValue').value=iRoman_temp.toUpperCase();
					document.getElementById('decimalValue').value=iDecimal;
					return mReturnOnError;
				}
				// ist die Zeichenkombination überhaupt möglich?
				if((i-1) >= 0) {
					if((getDecimalFromRoman_apos(iRoman[i]) * 10) < getDecimalFromRoman_apos(iRoman[i-1])) {
						romanArabicErrorHandler("__ERR_ZEICHENKOMBI_NAECHSTGR_ZAHLZEICHEN__");
						// Korrektur der Eingabe
						getRomanToDecimal_apos_korr(iRoman_temp);
						document.getElementById('romanValue').value=iRoman_temp.toUpperCase();
						document.getElementById('decimalValue').value=iDecimal;
						return mReturnOnError;
					}
				}
				// prüfen ob aktuelles Zeichen kleiner als die beiden Nachfolger, Bsp.: XCC
				if((i-2) >= 0) {
					if((getDecimalFromRoman_apos(iRoman[i-1]) == getDecimalFromRoman_apos(iRoman[i-2])) || (getDecimalFromRoman_apos(iRoman[i]) <= getDecimalFromRoman_apos(iRoman[i-2]))) {
						romanArabicErrorHandler("__ERR_SORT_ROEMZAHL__");
						// Korrektur der Eingabe
						getRomanToDecimal_apos_korr(iRoman_temp);
						document.getElementById('romanValue').value=iRoman_temp.toUpperCase();
						document.getElementById('decimalValue').value=iDecimal;
						return mReturnOnError;
					}
				}
				// prüfen ob aktuelles Zeichen kleiner als dritter Nachfolger, Bsp.: XCIC
				if((i-3) >= 0) {
					if(getDecimalFromRoman_apos(iRoman[i-1]) <= getDecimalFromRoman_apos(iRoman[i-3])) {
						if(getDecimalFromRoman_apos(iRoman[i]) > getDecimalFromRoman_apos(iRoman[i-2])) {
							romanArabicErrorHandler("__ERR_SORT_ROEMZAHL__");
							// Korrektur der Eingabe
							getRomanToDecimal_apos_korr(iRoman_temp);
							document.getElementById('romanValue').value=iRoman_temp.toUpperCase();
							document.getElementById('decimalValue').value=iDecimal;
							return mReturnOnError;
						}
					}
				}
				// prüfen ob aktuelles Zeichen kleiner als zweiter Nachfolger aber grösser als erster Nachfolger, Bsp.: XIC
				if((i+1) <= (iRoman.length - 1)) {
					if(getDecimalFromRoman_apos(iRoman[i+1]) < getDecimalFromRoman_apos(iRoman[i-1])) {
						romanArabicErrorHandler("__ERR_SORT_ROEMZAHL__");
						// Korrektur der Eingabe
						getRomanToDecimal_apos_korr(iRoman_temp);
						document.getElementById('romanValue').value=iRoman_temp.toUpperCase();
						document.getElementById('decimalValue').value=iDecimal;
						return mReturnOnError;
					}
				}
				iDecimal = iDecimal - getDecimalFromRoman_apos(iRoman[i]);
			} else {
				// prüfen ob Zeichenkombination so möglich
				if (getDecimalFromRoman_apos(iRoman[i]) == getDecimalFromRoman_apos(iRoman[i-1])) {
					if ((!getCanSubstr_apos(iRoman[i])) && (!getCanSubstr_apos(iRoman[i-1]))) {
						romanArabicErrorHandler("__ERR_ZEICHEN_ORDNUNG__");
						// Korrektur der Eingabe
						getRomanToDecimal_apos_korr(iRoman_temp);
						document.getElementById('romanValue').value=iRoman_temp.toUpperCase();
						document.getElementById('decimalValue').value=iDecimal;
						return mReturnOnError;
					}
					// prüfen ob vier gleiche Zeichen nebeneinander
					if((i-2) >= 0) {
						if(getDecimalFromRoman_apos(iRoman[i-1]) == getDecimalFromRoman_apos(iRoman[i-2])) {
							if((i-3) >= 0) {
								if(getDecimalFromRoman_apos(iRoman[i-2]) == getDecimalFromRoman_apos(iRoman[i-3])) {
									romanArabicErrorHandler("__ERR_SUBTRAKT__");
									// Korrektur der Eingabe
									getRomanToDecimal_apos_korr(iRoman_temp);
									document.getElementById('romanValue').value=iRoman_temp.toUpperCase();
									document.getElementById('decimalValue').value=iDecimal;
									return mReturnOnError;
								}
							}
						}
					}
				} else {
					// prüfen ob aktuelles Zeichen kleiner als dritter Nachfolger, Bsp.: XCIC
					if((i-3) >= 0) { 
						if(getDecimalFromRoman_apos(iRoman[i-1]) == getDecimalFromRoman_apos(iRoman[i-3])) {
							if(getDecimalFromRoman_apos(iRoman[i]) < getDecimalFromRoman_apos(iRoman[i-2])) {
								romanArabicErrorHandler("__ERR_SORT_ROEMZAHL__");
								// Korrektur der Eingabe
								getRomanToDecimal_apos_korr(iRoman_temp);
								document.getElementById('romanValue').value=iRoman_temp.toUpperCase();
								document.getElementById('decimalValue').value=iDecimal;
								return mReturnOnError;
							}
						}
					}
				}
				iDecimal = iDecimal + getDecimalFromRoman_apos(iRoman[i]);
			}
			i++;
		}
	}
	return iDecimal;
}

/*
Funktion die aus Oberfläche aufgerufen wird
Übergabe: römische Zahl
*/
function getRomanToDecimal(iRoman) {
	var fehler = false;
	// Leerzeichen aus Eingabe entfernen
	var iRoman = iRoman.replace(/ /g,"");
	var tempRoman = '';
	var iDecimal = 0;

	// nach gewählter Umrechnungsart unterscheiden
	var romart = "2";
	for (var x = 0; x < document.getElementsByName('romart').length; x++) {
		if (document.getElementsByName('romart')[x].checked == true) {
			romart = document.getElementsByName('romart')[x].value;
		}
	}
	if (romart == 1) {
		// einfache Umrechnung
		// Eingabe auf ungültige Zeichen prüfen
		iRoman = iRoman.toUpperCase();
		for(var i=0; i<iRoman.length; i++) {
			if(aRomans.indexOf(iRoman.charAt(i)) == -1) {
				fehler = true;
			} else {
				tempRoman = tempRoman + iRoman.charAt(i);
			}
		}
		iRoman = tempRoman;

		// prüfen ob Eingabe nicht zu gross
		if(iRoman.length > iMaximalRoman) {
			document.getElementById('romanValue').value = iRoman.substring(0,iMaximalRoman);
			iRoman = iRoman.substring(0,iMaximalRoman);
		}

		// Umrechnung
		if (fehler == false) {
			iDecimal = getRomanToDecimal_einf(iRoman);
		}
	} else if (romart == 2) {
		// Subtraktionsregel
		// Eingabe auf ungültige Zeichen prüfen
		iRoman = iRoman.toUpperCase();
		for(var i=0; i<iRoman.length; i++) {
			if(aRomans.indexOf(iRoman.charAt(i)) == -1) {
				fehler = true;
			} else {
				tempRoman = tempRoman + iRoman.charAt(i);
			}
		}
		iRoman = tempRoman;

		// prüfen ob Eingabe nicht zu gross
		if(iRoman.length > iMaximalRoman) {
			document.getElementById('romanValue').value = iRoman.substring(0,iMaximalRoman);
			iRoman = iRoman.substring(0,iMaximalRoman);
		}

		// Umrechnung
		if (fehler == false) {
			iDecimal = getRomanToDecimal_subtr(iRoman,0);
		}
	} else if (romart == 3) {
		//iDecimal = getRomanToDecimal_vinc(iRoman);
	} else if (romart == 4) {
		// Multiplikationsschreibweise
		// Eingabe auf ungültige Zeichen prüfen
		iRoman = iRoman.toUpperCase();
		for(var i=0; i<iRoman.length; i++) {
			if(aRomans_multip.indexOf(iRoman.charAt(i)) == -1) {
				fehler = true;
			} else {
				tempRoman = tempRoman + iRoman.charAt(i);
			}
		}
		iRoman = tempRoman;

		// prüfen ob Eingabe nicht zu gross
		if(iRoman.length > iMaximalRoman) {
			document.getElementById('romanValue').value = iRoman.substring(0,iMaximalRoman);
			iRoman = iRoman.substring(0,iMaximalRoman);
		}

		// Umrechnung
		if (fehler == false) {
			iDecimal = getRomanToDecimal_multip(iRoman);
		}
	} else if (romart == 5) {
		// mit Cifrao oder Calderon
		// Eingabe auf ungültige Zeichen pruefen
		iRoman = iRoman.toUpperCase();
		for(var i=0; i<iRoman.length; i++) {
			if(aRomans_cifr.indexOf(iRoman.charAt(i)) == -1) {
				fehler = true;
			} else {
				tempRoman = tempRoman + iRoman.charAt(i);
			}
		}
		iRoman = tempRoman;

		// prüfen ob Eingabe nicht zu gross
		if(iRoman.length > iMaximalRoman) {
			document.getElementById('romanValue').value = iRoman.substring(0,iMaximalRoman);
			iRoman = iRoman.substring(0,iMaximalRoman);
		}

		// Umrechnung
		if (fehler == false) {
			iDecimal = getRomanToDecimal_cifr(iRoman);
		}
	} else if (romart == 6) {
		// mit Apostrophus 
		// Eingabe auf ungültige Zeichen prüfen
		iRoman = iRoman.toUpperCase();
		for(var i=0; i<iRoman.length; i++) {
			if(aRomans_apos.indexOf(iRoman.charAt(i)) == -1) {
				fehler = true;
			} else {
				tempRoman = tempRoman + iRoman.charAt(i);
			}
		}
		iRoman = tempRoman;

		// prüfen ob Eingabe nicht zu gross
		if(iRoman.length > iMaximalRoman) {
			document.getElementById('romanValue').value = iRoman.substring(0,iMaximalRoman);
			iRoman = iRoman.substring(0,iMaximalRoman);
		}

		// Umrechnung
		if (fehler == false) {
			iDecimal = getRomanToDecimal_apos(iRoman);
		}
	} else if (romart == 7) {
		//iDecimal = getRomanToDecimal_rahm(iRoman);
	} else {
		iDecimal = getRomanToDecimal_subtr(iRoman);
	}

	document.getElementById('romanValue').value=iRoman.toUpperCase();
	bBlockError = false;
	// Fehlerausgabe
	if (fehler) {
		if ((romart == 1) || (romart == 2)) {
			romanArabicErrorHandler("__ERR_ROEMZAHL_FALSCH_ZEICHEN__" + " " + aRomans);
		} else if (romart == 4) {
			romanArabicErrorHandler("__ERR_ROEMZAHL_FALSCH_ZEICHEN__" + " " + aRomans_multip);
		} else if (romart == 5) {
			romanArabicErrorHandler("__ERR_ROEMZAHL_FALSCH_ZEICHEN__" + " " + aRomans_cifr);
		} else if (romart == 6) {
			romanArabicErrorHandler("__ERR_ROEMZAHL_FALSCH_ZEICHEN__" + " " + aRomans_apos);
		} else {
			romanArabicErrorHandler("__ERR_ROEMZAHL_FALSCH__");
		}
		mReturnOnError = iDecimal;
		return mReturnOnError;
	}

	document.getElementById('decimalValue').value=iDecimal;
	//return iDecimal;
}

/*
Umrechnung Römisch in Dezimal - Ende
*/


/*
Steuerfunktionen für Ausgabe - Beginn
*/

/*
Zeilenumbrüche in den Ausgabetext schreiben
Übergabe: Text
Rückgabe: Text
*/
function zeilenumbruch(text){
	if (text.length > 15) {
		var tmptext = text;
		var newtext = "";
		var x = 0;
		// Text Zeichen für Zeichen durchlaufen und nach jeweils 15 Zeichen einen Zeilenumbruch einfügen
		while(x < tmptext.length) {
			if (newtext.length > 0) {
				newtext = newtext.concat("\n");
			}
			if ((tmptext.length - x) > 14) {
				if (newtext.length > 0) {
					newtext = newtext.concat(tmptext.substr(x,15));
				} else {
					newtext = tmptext.substr(x,15);
				}
			} else {
				if (newtext.length > 0) {
					newtext = newtext.concat(tmptext.substr(x,(tmptext.length - x)));
				} else {
					newtext = tmptext.substr(x,(tmptext.length - x));
				}
			}
			x = x + 15;
		}
	} else {
		var newtext = text;
	}
	return newtext;
}

/*
römische Eingabe einblenden
*/
function showroman(){
	document.getElementById('romanbez').style.display="";
	document.getElementById('romanValue').style.display="";
}

/*
römische Eingabe ausblenden
*/
function hideroman(){
	document.getElementById('romanbez').style.display="none";
	document.getElementById('romanValue').style.display="none";
}

/*
Ergebnisausgabe für Umrechnung mit Vinculum einblenden
*/
function showvinc(){
	document.getElementById('vinculum2').style.display="";
	document.getElementById('vinculum1').style.display="";
	document.getElementById('romerg').childNodes[1].style.display="";
}

/*
Ergebnisausgabe für Umrechnung mit Vinculum ausblenden
*/
function hidevinc(){
	document.getElementById('vinculum2').style.display="none";
	document.getElementById('vinculum1').style.display="none";
	document.getElementById('romerg').childNodes[1].style.display="none";
}

/*
Ergebnisausgabe für Umrechnung mit Rahmen einblenden
*/
function showrahm(){
	document.getElementById('rahmen1').style.display="";
}

/*
Ergebnisausgabe für Umrechnung mit Rahmen ausblenden
*/
function hiderahm(){
	document.getElementById('rahmen1').style.display="none";
}

/*
Korrekturbox einblenden
*/
function showcorrect(){
	document.getElementById('correctbez').style.display="";
	document.getElementById('corrector').style.display="";
}

/*
Korrekturbox ausblenden
*/
function hidecorrect(){
	document.getElementById('correctbez').style.display="none";
	document.getElementById('corrector').style.display="none";
}

/*
Buttons zur Übernahme des Ergebnisses bzw. der Korrektur einblenden
*/
function showbutton(){
	document.getElementById('correctueb').style.display="";
	document.getElementById('dezueber').style.display="";
}

/*
Buttons zur Übernahme des Ergebnisses bzw. der Korrektur ausblenden
*/
function hidebutton(){
	document.getElementById('correctueb').style.display="none";
	document.getElementById('dezueber').style.display="none";
}

/*
Werte aus der Ergebnisbox bzw. Korrekturbox in römische Eingabe übernehmen
*/
function fillRomanValue(box){
	var iRoman = "";
	if (box == 1) {
		// aus Korrekturbox
		if (document.getElementById('corrector').value.length > 0) {
			document.getElementById('decimalValue').value=0;
			getDecimalToRoman(document.getElementById('decimalValue').value,false,0);
			clearRomanValue();
			document.getElementById('romanValue').value = document.getElementById('corrector').value;
			getRomanToDecimal(document.getElementById('romanValue').value,false,2);
		}
	} else if (box == 2) {
		// aus Ergebnisbox
		if (document.getElementById('romerg').childNodes[1].data != null) {
			iRoman = encodeURI(document.getElementById('romerg').childNodes[1].data).replace(/%A0/g,"");
			//alert('A: ' + iRoman);
			iRoman = decodeURI(iRoman).replace(/ /g,"");
			iRoman = iRoman.replace(/\n/g,"");
			if (iRoman.length > 0) {
				document.getElementById('corrector').value = "";
				clearRomanValue();
				document.getElementById('romanValue').value += iRoman;
				getRomanToDecimal(document.getElementById('romanValue').value,false,2);
			}
		}
		if (document.getElementById('romerg').childNodes[4].data != null) {
			iRoman = encodeURI(document.getElementById('romerg').childNodes[4].data).replace(/%A0/g,"");
			iRoman = decodeURI(iRoman).replace(/ /g,"");
			iRoman = iRoman.replace(/\n/g,"");
			if (iRoman.length > 0) {
				document.getElementById('corrector').value = "";
				clearRomanValue();
				document.getElementById('romanValue').value += iRoman;
				getRomanToDecimal(document.getElementById('romanValue').value,false,2);
			}
		}
	}
}

/*
römische Eingabe leeren
*/
function clearRomanValue(){
	document.getElementById('romanValue').value = "";
}

/*
Auswahl der Zeichen für Umrechnung mit Apostrophus einblenden
*/
function showaposauswahl(){
	document.getElementById('apos_auswahl_titel0').style.display="";
	document.getElementById('apos_auswahl_titel1').style.display="";
	document.getElementById('apos_auswahl_titel2').style.display="";
	document.getElementById('apos_auswahl1_1').style.display="";
	document.getElementById('apos_auswahl1_2').style.display="";
	document.getElementById('apos_auswahl2_1').style.display="";
	document.getElementById('apos_auswahl2_2').style.display="";
	document.getElementById('apos_auswahl3_1').style.display="";
	document.getElementById('apos_auswahl3_2').style.display="";
	document.getElementById('apos_auswahl4_1').style.display="";
	document.getElementById('apos_auswahl4_2').style.display="";
	document.getElementById('apos_auswahl5_1').style.display="";
	document.getElementById('apos_auswahl5_2').style.display="";
	document.getElementById('apos_auswahl6_1').style.display="";
	document.getElementById('apos_auswahl6_2').style.display="";
	document.getElementById('apos_auswahl7_1').style.display="";
	document.getElementById('apos_auswahl7_2').style.display="";
	document.getElementById('apos_auswahl8_1').style.display="";
	document.getElementById('apos_auswahl8_2').style.display="";
	document.getElementById('apos_auswahl9_1').style.display="";
	document.getElementById('apos_auswahl9_2').style.display="";
	document.getElementById('apos_auswahl10_1').style.display="";
	document.getElementById('apos_auswahl10_2').style.display="";
	document.getElementById('apos_auswahl11_1').style.display="";
	document.getElementById('apos_auswahl11_2').style.display="";
	document.getElementById('apos_auswahl12_1').style.display="";
	document.getElementById('apos_auswahl12_2').style.display="";
	document.getElementById('apos_auswahl13_1').style.display="";
	document.getElementById('apos_auswahl13_2').style.display="";
	document.getElementById('apos_auswahl14_1').style.display="";
	document.getElementById('apos_auswahl14_2').style.display="";
	document.getElementById('apos_auswahl15_1').style.display="";
	document.getElementById('apos_auswahl15_2').style.display="";
	document.getElementById('apos_auswahl16_1').style.display="";
	document.getElementById('apos_auswahl16_2').style.display="";
	document.getElementById('apos_auswahl17_1').style.display="";
	document.getElementById('apos_auswahl17_2').style.display="";
	document.getElementById('apos_auswahl18_1').style.display="";
	document.getElementById('apos_auswahl18_2').style.display="";
	document.getElementById('aposueber').style.display="";
	document.getElementById('aposdel').style.display="";
}

/*
Auswahl der Zeichen für Umrechnung mit Apostrophus ausblenden
*/
function hideaposauswahl(){
	document.getElementById('apos_auswahl_titel0').style.display="none";
	document.getElementById('apos_auswahl_titel1').style.display="none";
	document.getElementById('apos_auswahl_titel2').style.display="none";
	document.getElementById('apos_auswahl1_1').style.display="none";
	document.getElementById('apos_auswahl1_2').style.display="none";
	document.getElementById('apos_auswahl2_1').style.display="none";
	document.getElementById('apos_auswahl2_2').style.display="none";
	document.getElementById('apos_auswahl3_1').style.display="none";
	document.getElementById('apos_auswahl3_2').style.display="none";
	document.getElementById('apos_auswahl4_1').style.display="none";
	document.getElementById('apos_auswahl4_2').style.display="none";
	document.getElementById('apos_auswahl5_1').style.display="none";
	document.getElementById('apos_auswahl5_2').style.display="none";
	document.getElementById('apos_auswahl6_1').style.display="none";
	document.getElementById('apos_auswahl6_2').style.display="none";
	document.getElementById('apos_auswahl7_1').style.display="none";
	document.getElementById('apos_auswahl7_2').style.display="none";
	document.getElementById('apos_auswahl8_1').style.display="none";
	document.getElementById('apos_auswahl8_2').style.display="none";
	document.getElementById('apos_auswahl9_1').style.display="none";
	document.getElementById('apos_auswahl9_2').style.display="none";
	document.getElementById('apos_auswahl10_1').style.display="none";
	document.getElementById('apos_auswahl10_2').style.display="none";
	document.getElementById('apos_auswahl11_1').style.display="none";
	document.getElementById('apos_auswahl11_2').style.display="none";
	document.getElementById('apos_auswahl12_1').style.display="none";
	document.getElementById('apos_auswahl12_2').style.display="none";
	document.getElementById('apos_auswahl13_1').style.display="none";
	document.getElementById('apos_auswahl13_2').style.display="none";
	document.getElementById('apos_auswahl14_1').style.display="none";
	document.getElementById('apos_auswahl14_2').style.display="none";
	document.getElementById('apos_auswahl15_1').style.display="none";
	document.getElementById('apos_auswahl15_2').style.display="none";
	document.getElementById('apos_auswahl16_1').style.display="none";
	document.getElementById('apos_auswahl16_2').style.display="none";
	document.getElementById('apos_auswahl17_1').style.display="none";
	document.getElementById('apos_auswahl17_2').style.display="none";
	document.getElementById('apos_auswahl18_1').style.display="none";
	document.getElementById('apos_auswahl18_2').style.display="none";
	document.getElementById('aposueber').style.display="none";
	document.getElementById('aposdel').style.display="none";
}

/*
Steuerfunktionen für Ausgabe - Ende
*/


/*
Einfuegen an Cursorposition http://aktuell.de.selfhtml.org/artikel/javascript/bbcode/
*/


/*
Zeichenübernahme Umrechnung mit Apostrophus - Anfang
*/

/*
Zeichen zur römischen Eingabe an Cursorposition hinzufügen
*/
function inputApos() {
	// gewähltes Zeichen ermitteln
	var aposzeichen = "";
	var inpzeichen = "0";
	for (var x = 0; x < document.getElementsByName('inpzeichen').length; x++) {
		if (document.getElementsByName('inpzeichen')[x].checked == true) {
			inpzeichen = document.getElementsByName('inpzeichen')[x].value;
		}
	}
	if ((inpzeichen != "0") && (inpzeichen.length > 0)){
		var i = inpzeichen.length - 1;
		while( i>=0 ) {
			aposzeichen = functionGetRoman_apos((inpzeichen.length - i), inpzeichen.charAt(i)) + aposzeichen;
			i--;
		}
		aposzeichen = aposzeichen.replace(/ /g,"");
		aposzeichen = aposzeichen.replace(/\n/g,"");
	} else {
		romanArabicErrorHandler("__ERR_ZEICHENWAHL__");
		mReturnOnError = 0;
		return mReturnOnError;
	}

	var input = document.getElementById('romanValue');
	input.focus();
	// für Internet Explorer
	if(typeof document.selection != 'undefined') {
		// Einfügen des Formatierungscodes
		var range = document.selection.createRange();
		range.text = aposzeichen;
		// Anpassen der Cursorposition
		range = document.selection.createRange();
		range.move('character', aposzeichen.length);
		range.select();
	}
	// für neuere auf Gecko basierende Browser
	else if(typeof input.selectionStart != 'undefined') {
		/* Einfügen des Formatierungscodes */
		var start = input.selectionStart;
		var end = input.selectionEnd;
		input.value = input.value.substr(0, start) + aposzeichen + input.value.substr(end);
		/* Anpassen der Cursorposition */
		var pos;
		pos = start + aposzeichen.length;
		input.selectionStart = pos;
		input.selectionEnd = pos;
	}
	// für die übrigen Browser
	else{
		// Abfrage der Einfügeposition
		var pos;
		var re = new RegExp('^[0-9]{0,3}$');
		while(!re.test(pos)) {
			pos = prompt("Einfuegen an Position (0.." + input.value.length + "):", "0");
		}
		if(pos > input.value.length) {
			pos = input.value.length;
		}
		// Einfügen des Formatierungscodes
		input.value = input.value.substr(0, pos) + aposzeichen + input.value.substr(pos);
	}
}

/*
Zeichen zur römischen Eingabe an Cursorposition löschen
*/
function delApos() {
	var input = document.getElementById('romanValue');
	input.focus();
	// für Internet Explorer
	if(typeof document.selection != 'undefined') {
		// Einfügen des Formatierungscodes
		var range = document.selection.createRange();

		// zu löschende Zeichen suchen
		var tmptxt1 = "";
		var isttext = "";
		var abbruch = 0;
		range.moveStart('character', -1);
		while (abbruch == 0) {
			isttext = range.text;
			range.moveStart('character', -1);
			tmptxt1 = range.text;
			if ((getDecimalFromRoman_apos(tmptxt1) == 0) && (tmptxt1.charAt(0) != "C") && (getDecimalFromRoman_apos(tmptxt1.substring(1, tmptxt1.length)) > 0)) {
				abbruch = 2;
			}
			if (isttext == range.text) {
				abbruch = 1;
			}
		}
		if ((abbruch == 1) && (getDecimalFromRoman_apos(isttext) > 0)){
			//range.moveStart('character', 1);
			range.text="";
		} else if (abbruch == 2) {
			range.moveStart('character', 1);
			range.text="";
		}

		//range.text = aposzeichen;
		// Anpassen der Cursorposition
		range = document.selection.createRange();
		range.moveStart('character', -isttext.length);
		//range.text="";
		//range.select();
	}
	// für neuere auf Gecko basierende Browser
	else if(typeof input.selectionStart != 'undefined') {
		// Einfügen des Formatierungscodes
		var start = input.selectionStart;
		var end = input.selectionEnd;
		// zu löschende Zeichen suchen
		var tmptxt1 = "";
		var pos = start;
		var i = start - 1;
		while(i >= 0) {
			if (pos == start) {
				tmptxt1 = input.value.substring(i,start);
				if ((getDecimalFromRoman_apos(tmptxt1) == 0) && (tmptxt1.charAt(0) != "C") && (getDecimalFromRoman_apos(input.value.substring(i+1, start)) > 0)) {
					pos = i + 1;
				}
			}
			i--;
		}
		if ((pos == start) && (getDecimalFromRoman_apos(input.value.substring(0, start)) > 0)) {
			pos = 0;
		}
		if (pos != start) {
			tmptxt1 = input.value.substring(pos,start);
		} else {
			tmptxt1 = "";
		}
		input.value = input.value.substr(0, pos) + input.value.substr(end);
		// Anpassen der Cursorposition
		var pos;
		pos = start - tmptxt1.length;
		input.selectionStart = pos;
		input.selectionEnd = pos;
	}
	// für die übrigen Browser
	else{
		// Abfrage der Einfügeposition
		var start;
		var re = new RegExp('^[0-9]{0,3}$');
		while(!re.test(start)) {
			start = prompt("Löschen an Position (0.." + input.value.length + "):", "0");
		}
		if(start > input.value.length) {
			start = input.value.length;
		}
		// zu löschende Zeichen suchen
		var tmptxt1 = "";
		var pos = start;
		var i = start - 1;
		while(i >= 0) {
			if (pos == start) {
				tmptxt1 = input.value.substring(i,start);
				if ((getDecimalFromRoman_apos(tmptxt1) == 0) && (tmptxt1.charAt(0) != "C") && (getDecimalFromRoman_apos(input.value.substring(i+1, start)) > 0)) {
					pos = i + 1;
				}
			}
			i--;
		}
		if ((pos == start) && (getDecimalFromRoman_apos(input.value.substring(0, start)) > 0)) {
			pos = 0;
		}
		if (pos != start) {
			tmptxt1 = input.value.substring(pos,start);
		} else {
			tmptxt1 = "";
		}
		// Einfügen des Formatierungscodes
		input.value = input.value.substr(0, pos) + input.value.substr(start);
	}
}

/*
Zeichenübernahme Umrechnung mit Apostrophus - Ende
*/
