Dimensions={};function Dimension(a,c){for(var b in c){this[b]=c[b]}this.name=a;if(this.passive){this.input=this.passive}Dimensions[a]=this}Dimension.free=function(b){for(var a in Dimensions){if(a.indexOf(b)===0){delete Dimensions[a]}}};Dimension.prototype={value:false,fromR:function(a){alert("Метод "+this.name+".fromR не определен.")},toR:function(a){alert("Метод "+this.name+".toR не определен.")},toInput:function(){if(this.input){return this.input}var a=this;this.input=$("<input>").attr({name:this.name,breaker:true}).attr(this.value?{value:this.value}:{}).attr({breaker:false}).get(0);this.input.onchange=this.input.onkeyup=function(){if(!this.breaker&&!isNaN(new Number(this.value))){a.change(this.value)}};return this.input},change:function(b){var a=Math.round(this.toR(b)*1000)/1000;Dimensions.R.change(a,this.name);this.value=b}};new Dimension("R",{label:"R<sub>сферы</sub>",value:4.5,fromR:function(a){return a?a:this.value},change:function(c,b){b||(b="R");for(var a in Dimensions){if(a!=b){var d=Dimensions[a];d.input.breaker=true;d.value=Math.round(d.fromR(c)*1000)/1000;if(Dimensions[a]&&d.input){if(d.passive){d.passive.innerHTML=d.value}else{d.input.value=d.value}}d.input.breaker=false}}this.value=c},e:"м"});
