var RZZ="_IVXLCDM";
var DZZ=new Array(0,1,5,10,50,100,500,1000);
var RZZ_=new Array("IIII","VIIII","XXXX","LXXXX","CCCC","DCCCC");
var RZZ__=new Array("IV","IX","XL","XC","CD","CM");
var RZZa=new Array("XLIX","XCIX","CDXC","CDXCIX","CMXC","CMXCIX");
var RZZb=new Array("IL","IC","XD","ID","XM","IM");
var rmax=4,rmm="MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM";
var rerw=1==1,reer=-1,rix=1==1;
var bigr="";
function roem_dez(r)
{
	var i,j,k,kk=1e36,d=0,t;
	r=String(r).toUpperCase().replace(/ /g,"");
	if((r.indexOf("VV")>-1)||(r.indexOf("LL")>-1)||(r.indexOf("DD")>-1))return reer;
	for(i=1;i<RZZ.length-1;i++)
	{
		t=RZZ.charAt(i);t+=t;t+=t;t+=t;t=t.substr(0,rmax+1);if(r.indexOf(t)>-1)return reer;
	}
	if(rerw)
	for(i=RZZb.length-1;i>=0;i--)
	{
		j=r.indexOf(RZZb[i]);
		if(j>-1)r=r.substr(0,j)+RZZa[i]+r.substring(j+RZZb[i].length,r.length);
	}
	for(i=RZZ__.length-1;i>=0;i--)
	{
		j=r.indexOf(RZZ__[i]);
		if(j>-1){r=r.substr(0,j)+RZZ_[i]+r.substring(j+RZZ__[i].length,r.length);}
	}
	r=r.replace(/iiiii/ig,"E").replace(/xxxxx/ig,"E").replace(/ccccc/ig,"E");
	for(i=0;i<r.length;i++)
	{
		k=RZZ.indexOf(r.charAt(i));if(k==-1)return reer;
		k=DZZ[k];
		if(k>kk)return reer;
		kk=k;d+=k;
	}
	return d;
}
function roem_dez_(r)
{
	r=String(r).toUpperCase().replace(/ /g,"")+"_";
	var i,d=0,D=new Array(r.length),min=1e36,mmin=min,f=(1==0),o=f,t="";
	for(i=1;i<RZZ.length-1;i++)
	{
		t=RZZ.charAt(i);t+=t;t+=t;t+=t;t=t.substr(0,rmax+1);if(r.indexOf(t)>-1)return reer;
	}
	for(i=0;i<r.length;i++)D[i]=dzz_(r.charAt(i));
	for(i=0;i<r.length;i++)
	{
		f=(RZZ.indexOf(r.charAt(i))%2)==0;
		if(D[i]==-99)return reer;
		if((D[i]>min)&&((!o)||(D[i]>mmin))){return reer;}
		if(D[i]<D[i+1])
		{
			if(o)return reer;
			o=true;
			//if(f)return reer;
			d-=D[i];
			min=Math.min(min,D[i]-.5); 
		}
		else
		{
			if((D[i]==D[i+1])&&(f||o))return reer;
			d+=D[i];
			o=false;
			mmin=min=Math.min(min,D[i]);
		}
	}
	if(d==0)return reer;
	return d;
}
function dzz_(r)
{
	var i=RZZ.indexOf(r);
	return(i>-1)?DZZ[i]:-99;
}
function dez_roem(d)
{
	var i=DZZ.length-2,z,r="",j,dd=d;
	bigr="";
	if(dd>=100000)
	{
		bigr="["+dez_roem(Math.floor(dd/100000),false)+"]";
		dd%=100000;
	}
	if(dd>=2000)
	{
		bigr+="("+dez_roem(Math.floor(dd/1000),false)+")";
		dd%=1000;
	}
	if(bigr!="")bigr+=dez_roem(dd);
	r+=rmm.substr(0,Math.floor(d/1000));d%=1000;
	while(d>0)
	{
		while(d<DZZ[i]){i--;z=0;if(i==0)return reer;}
		d-=DZZ[i];
		r+=RZZ.charAt(i);
	}
	if(rix)
	{
	for(i=RZZ_.length-1;i>=0;i--)
	{
		j=r.indexOf(RZZ_[i])
		if(j>-1){r=r.substr(0,j)+RZZ__[i]+r.substring(j+RZZ_[i].length,r.length);}
	}
	}
	if(rerw)
	for(i=RZZa.length-1;i>=0;i--)
	{
		
		j=r.indexOf(RZZa[i])
		if((j>-1)&&(j==r.length-RZZa[i].length)){r=r.substr(0,j)+RZZb[i];}
	}
	if(d>10000)return reer;
	return r;
}

