//###############################################################################################
//###############################################################################################
//##											       ##
//## << Numeric Conversion Script V1.0 by Uhu >>					       ##
//##											       ##
//## Fri, July 30th, 1999								       ##
//##											       ##
//##-------------------------------------------------------------------------------------------##
//##											       ##
//## Uhu's Anime Zone:	http://www.anizone.de						       ##
//##			http://www.geocities.com/Tokyo/Flats/2711			       ##
//##			http://kei.animenetwork.com/anime/uhu				       ##
//##											       ##
//## Lum's World:	http://www.lumsworld.com					       ##
//##											       ##
//## ShampooCat's Cafe:	http://kei.animenetwork.com/ranma/catcafe			       ##
//##											       ##
//###############################################################################################
//###############################################################################################

function fillZero (numString, digits) {
	for (i=numString.length; i<digits; i++) {
		numString="0"+numString;
	}
	return(numString);
}

//###############################################################################################

function checkBin (binString) {
	var binRange="01";
	var ok=true;

	for (i=0; i<binString.length; i++) {
		if (binRange.indexOf(binString.charAt(i))<0) ok=false;
	}
	return(ok);
}

function checkOct (octString) {
	var octRange="01234567";
	var ok=true;

	for (i=0; i<octString.length; i++) {
		if (octRange.indexOf(octString.charAt(i))<0) ok=false;
	}
	return(ok);
}

function checkDec (decString) {
	var decRange="0123456789";
	var ok=true;

	for (i=0; i<decString.length; i++) {
		if (decRange.indexOf(decString.charAt(i))<0) ok=false;
	}
	return(ok);
}

function checkHex (hexString) {
	var hexRange="0123456789ABCDEFabcdef";
	var ok=true;

	for (i=0; i<hexString.length; i++) {
		if (hexRange.indexOf(hexString.charAt(i))<0) ok=false;
	}
	return(ok);
}

//###############################################################################################

function decToBin (decString) {
	var binString="-1";
	if (checkDec(decString)) binString=parseInt(decString).toString(2);
	return(binString.toUpperCase());
}

function decToOct (decString) {
	var octString="-1";
	if (checkDec(decString)) octString=parseInt(decString).toString(8);
	return(octString.toUpperCase());
}

function decToHex (decString) {
	var hexString="-1";
	if (checkDec(decString)) hexString=parseInt(decString).toString(16);
	return(hexString.toUpperCase());
}

//###############################################################################################

function binToDec (binString) {
	var decString=0;
	if (checkBin(binString)) {
		binString=parseInt(binString).toString();
		for (i=binString.length-1, j=0; i>=0; i--, j++) {
			decString=(Math.pow(2, j)*binString.charAt(i))+decString;
		}
		decString=decString.toString();
	}
	else decString="-1";
	return(decString);
}

function octToDec (octString) {
	var decString=0;
	if (checkOct(octString)) {
		octString=parseInt(octString).toString();
		for (i=octString.length-1, j=0; i>=0; i--, j++) {
			decString=(Math.pow(8, j)*octString.charAt(i))+decString;
		}
		decString=decString.toString();
	}
	else decString="-1";
	return(decString);
}

function hexToDec (hexString) {
	var hexNumbers="0123456789ABCDEF";
	var decString=0;
	if (checkHex(hexString)) {
		for (i=hexString.length-1, j=0; i>=0; i--, j++) {
			decNum=hexNumbers.indexOf(hexString.charAt(i).toUpperCase());
			decString=(Math.pow(16, j)*decNum)+decString;
		}
		decString=decString.toString();
	}
	else decString="-1";
	return(decString);
}

//###############################################################################################

function binToOct (binString) {
	var octString="-1";
	if (checkBin(binString)) octString=decToOct(binToDec(binString));
	return(octString);
}

function binToHex (binString) {
	var hexString="-1";
	if (checkBin(binString)) hexString=decToHex(binToDec(binString));
	return(hexString);
}

function octToBin (octString) {
	var binString="-1";
	if (checkOct(octString)) binString=decToBin(octToDec(octString));
	return(binString);
}

function octToHex (octString) {
	var hexString="-1";
	if (checkOct(octString)) hexString=decToHex(octToDec(octString));
	return(hexString);
}

function hexToBin (hexString) {
	var binString="-1";
	if (checkHex(hexString)) binString=decToBin(hexToDec(hexString));
	return(binString);
}

function hexToOct (hexString) {
	var octString="-1";
	if (checkHex(hexString)) octString=decToOct(hexToDec(hexString));
	return(octString);
}

