	function dums(fl)
	{
		var mas = new Array(3);
		mas[0] = Math.floor(conv(fl)/25.4);
		var rest = fl/25.4-mas[0];
		if (rest<=0.0625)
		{
			mas[1] = 0;
			mas[2] = 0;			
		}
		else
		{
			mas[2] = 16;
			for (mas[1]=1; mas[1]<=mas[2]; mas[1]++)
				if (Math.abs((mas[1]/16)-rest)<=(0.0625/2))     //1/16=0.0625
					break;
			
			switch(mas[1])
			{
				case 2: mas[1] = 1; mas[2] = 8; break;
				case 4: mas[1] = 1; mas[2] = 4; break;
				case 6: mas[1] = 3; mas[2] = 8; break;
				case 8: mas[1] = 1; mas[2] = 2; break;				
				case 10: mas[1] = 5; mas[2] = 8; break;				
				case 12: mas[1] = 3; mas[2] = 4; break;				
				case 14: mas[1] = 7; mas[2] = 8; break;				
				case 16: mas[0]++; mas[1] = 0; mas[2] = 16; break;								
			}
		}
		var max=mas.length;		
		if (max>0)
		{
			switch (max)
			{
				case 1: val = mas[0]*25.4;
						str = mas[0];
						break;
				case 2: val = (mas[0]/mas[1])*25.4;
						if (mas[1] == "")
							str = mas[0];
						else str = mas[0]+'/'+mas[1];
						break;
				default: val = (mas[0]+(mas[1]/mas[2]))*25.4;						
						if (mas[1] == "")
							str = mas[0];
						else str = mas[0]+'.'+mas[1]+'/'+mas[2];
						break;
			}   
		}
		return str;
	}
	
	function mm(fl)
	{
		var mas = new Array(3);
		fl = replace_string(fl, ',', '.');
		sep = fl.indexOf('.');
		if (sep == -1)
			sep = fl.length;
		mas[0] = fl.substr(0, sep);
		buf = fl.substr(sep+1, fl.length-sep+1);		
		if (buf == "")
		{
			res = mas[0]*25.4;
			res = Math.round(res*10)/10;
			return res;
		}
		else
		{
			sep = buf.indexOf('/');
			mas[1] = buf.substr(0, sep);
			mas[2] = buf.substr(sep+1, buf.length-sep+1);
			buf = mas[1]/mas[2];
			var res = parseFloat(mas[0]) + parseFloat(buf);
			res = res*25.4;
			res = Math.round(res*10)/10;
			res = String(res);
			sep = res.indexOf('.');
			if ((res.length-sep+1)>3)
				res = res.substr(0, sep+4);
			return res;
		}
	}	