(function($){
	$.fn.conv_romarab=function(options){
		$(document).ready(function(){	
		//alert("ok1");
		var test=0;
		var valarab=0;	
		var valrom="";	
		var valatester=0; 
		var valacalcul=0;
		var valmoins1=0;	
		var val_part=0;
		var count_aster=0; 
		var Rg=0; 
		var chn1_rom1="";
		var rom1_millions=0;
		var lg_rom1_millions=0;
		var chn2_rom1="";
		var rom1_milliers=0; 
		var lg_rom1_milliers=0;
		var rom1_classic=0;
		var lg_rom1_classic=0;
		// -------------------------------
		var defaults = 
          	{	
			chiffr_rom1: $("form#form_conv_romarab input:#chiffre_rom").val(),
			chiffr_arab: parseInt($("form#form_conv_romarab input:#chiffre_arab").val())
			};
		// mélange des paramètres fournis et des paramètres par défaut
	        opts = $.extend(defaults, options); 
			chiffre_arab = opts.chiffr_arab;
			if(opts.chiffr_rom1){
				test=1;	
				//alert("ok2 "+test+"");
			}else{
				test=0;
				//alert("ok2 "+test+"");
			}	
			if(test==1){
				lg_tot_chiffr_rom1 = opts.chiffr_rom1.length;
				for(i=0;i<=lg_tot_chiffr_rom1;i++){
					if(opts.chiffr_rom1.substring(i,i+1)=='*'){
						count_aster +=1;
					}
				}
				switch (count_aster){
					case 3: 
						chn1_rom1 = opts.chiffr_rom1.split('**');
						rom1_millions = chn1_rom1[0];
						lg_rom1_millions = rom1_millions.length;
						chn2_rom1 = chn1_rom1[1].split('*');
						rom1_milliers =	chn2_rom1[0]; 
						lg_rom1_milliers = rom1_milliers.length;
						rom1_classic = chn2_rom1[1];
						lg_rom1_classic = rom1_classic.length;
						break; 
					case 2:	  
						chn1_rom1 = opts.chiffr_rom1.split('**');
						rom1_millions = chn1_rom1[0];
						lg_rom1_millions = rom1_millions.length;  
						rom1_milliers = 0;
						rom1_classic = 0;
						break;
					case 1:
						chn1_rom1 = opts.chiffr_rom1.split('*');
						rom1_milliers =	chn1_rom1[0];  
						lg_rom1_milliers = rom1_milliers.length;
						rom1_classic = chn1_rom1[1];
						lg_rom1_classic = rom1_classic.length;
						break; 	
					default:
						rom1_classic = opts.chiffr_rom1;
						lg_rom1_classic = rom1_classic.length; 
				} 
				//alert(count_aster+" - "+rom1_millions+" - "+rom1_milliers+" - "+rom1_classic); 
				//alert(lg_rom1_millions+" - "+lg_rom1_milliers+" - "+lg_rom1_classic);  
				if(lg_rom1_millions > 0){
					for(i=0;i<=lg_rom1_millions;i++){
						valatester = rom1_millions.substring(i,i+1);
						calcul_valarab(valatester);
					}	
					valarab = val_part*1000000; 
					//alert(valarab);	
				}
				if(lg_rom1_milliers > 0){ 
					val_part=0;	 
					valmoins1=0;
					for(i=0;i<=lg_rom1_milliers;i++){
						valatester = rom1_milliers.substring(i,i+1);	
						calcul_valarab(valatester);
					}	
					valarab += val_part*1000; 
					//alert(valarab);	
				}
				if(lg_rom1_classic > 0){
					val_part=0;	
					valmoins1=0;
					for(i=0;i<=lg_rom1_classic;i++){
						valatester = rom1_classic.substring(i,i+1);
						calcul_valarab(valatester);
					}	
					valarab += val_part; 
					//alert(valarab);	
				} 
				$("form#form_conv_romarab input:#chiffre_arab").val(valarab);
			}else{
				var NumRom1 = new Array(4,9);
				NumRom1[0] = new Array('I','II','III','IV','V','VI','VII','VIII','IX');						// Unités					1 à 9
				NumRom1[1] = new Array('X','XX','XXX','XL','L','LX','LXX','LXXX','XC');	   					// Dizaines 				10 à 90
				NumRom1[2] = new Array('C','CC','CCC','CD','D','DC','DCC','DCCC','CM');						// Centaines 				100 à 900  
				NumRom1[3] = new Array('M','MM','MMM','MMMM','','','','','');								// Milliers 				1000 à 9000
			   	if (chiffre_arab >= 1000000 && chiffre_arab <= 4999000000){ 
					valacalcul=parseInt(chiffre_arab/1000000);
					calcul_valrom1(valacalcul); 
					valrom = valrom + "**"; 
					chiffre_arab = chiffre_arab-parseInt(chiffre_arab/1000000)*1000000;
					//alert(valrom+" - "+chiffre_arab);
				}
				if (chiffre_arab >= 5000 && chiffre_arab <= 999000 ){ 	
					valacalcul=parseInt(chiffre_arab/1000);
					calcul_valrom1(valacalcul); 
					valrom = valrom + "*"; 
					chiffre_arab = chiffre_arab-parseInt(chiffre_arab/1000)*1000;
					//alert(valrom+" - "+chiffre_arab);
				}
				if (chiffre_arab <= 4999){	
					valacalcul=chiffre_arab;
					calcul_valrom1(valacalcul); 
				}
				$("form#form_conv_romarab input:#chiffre_rom").val(valrom);/**/
			} 	
		function calcul_valrom1(valacalcul)
		{	
			//alert("ok3 "+parseInt(valacalcul/1000));
			if(valacalcul >= 1000 && parseInt(valacalcul/1000)){ 
				rg=parseInt(valacalcul/1000)-1;	  
			 	valrom = valrom + NumRom1[3][rg];
				valacalcul = valacalcul-parseInt(valacalcul/1000)*1000;
				//alert(valrom+" - "+valacalcul);
			}
			if(valacalcul >= 100 && parseInt(valacalcul/100)){ 
				rg=parseInt(valacalcul/100)-1;	  
			 	valrom = valrom + NumRom1[2][rg];
				valacalcul = valacalcul-parseInt(valacalcul/100)*100;
				//alert(valrom+" - "+valacalcul);
			}
			if(valacalcul >= 10 && parseInt(valacalcul/10)){ 
				rg=parseInt(valacalcul/10)-1;	  
			 	valrom = valrom + NumRom1[1][rg];
				valacalcul = valacalcul-parseInt(valacalcul/10)*10;
				//alert(valrom+" - "+valacalcul);
			}
			if(valacalcul >= 1){ 
				rg=valacalcul-1;	  
			 	valrom = valrom + NumRom1[0][rg];
				//alert(valrom+" - "+valacalcul);
			}
		
		;}	
		function calcul_valarab(valatester)
		{	
			//alert(valatester);
			switch(valatester){	   
				case 'I':
					val_part += 1;
					valmoins1=1;
					break;
				case 'V':
				   	val_part += 5;
					if(valmoins1==1){val_part -= 2;}
				   	valmoins1 = 5;
					break;
				case 'X':
				   	val_part += 10;
					if(valmoins1==1){val_part -= 2;}
				   	valmoins1 = 10;
					break;
				case 'L':
				   	val_part += 50; 
					if(valmoins1==1){val_part -= 2;}
					if(valmoins1==10){val_part -= 20;}
				   	valmoins1 = 50;
					break;
				case 'C':
				   	val_part += 100;
					if(valmoins1==1){val_part -= 2;}
					if(valmoins1==10){val_part -= 20;}
				   	valmoins1 = 100;
					break
				case 'D':
				   	val_part += 500;	
					if(valmoins1==1){val_part -= 2;}
					if(valmoins1==10){val_part -= 20;}
					if(valmoins1==100){val_part -= 200;}
				   	valmoins1 = 500;
					break;
				case 'M':
				   	val_part += 1000;   
					if(valmoins1==1){val_part -= 2;}
					if(valmoins1==10){val_part -= 20;}
					if(valmoins1==100){val_part -= 200;}
				   	valmoins1 = 1000;
					break;
				default:  
			}
		;}			
			
		});
    };
})(jQuery);


