String.prototype.endsWith = function(s) { return this.length >= s.length && this.substr(this.length - s.length) == s; } String.prototype.startsWith = function(s) { return this.length >= s.length && this.substr(0, s.length) == s; } function round(value,precision) { var exp = Math.pow(10,precision); return Math.round(value*exp)/exp; } var unitRatios = new Array(); function addUnit(name,ratio) { unitRatios[name] = ratio; } addUnit("Ton",1000000); addUnit("Kilogram",1000); addUnit("Dekagram",10); addUnit("Gram",1) addUnit("Milligram",0.001); addUnit("Mikrogram",0.000001); addUnit("Amu",1.66053892173e-24); addUnit("TonUK",1016046.9); addUnit("TonUS",907184.740); addUnit("HundredweightUK",50802.345); addUnit("HundredweightUS",45359.2370); addUnit("Stone",6350.29318); addUnit("Pound",453.59237); addUnit("Ounce",28.3495231); addUnit("Grain", 0.06479891); addUnit("Kwintal",100000); addUnit("Carat",0.2); addUnit("TroyOunce",31.1034768); addUnit("Cetnar",64832); addUnit("Kamien",12966.4); addUnit("Funt",405.2); addUnit("Grzywna",202.6); addUnit("Lut",12.6625); function initialize() { document.chooseForm.unitKilogram.value = 1; recalculate(document.chooseForm.unitKilogram); } function recalculate(field) { if(field.value.indexOf(',')>0) field.value = field.value.replace(',','.'); var numberRegExp = new RegExp("^[0-9\.,-e\+]*$"); if(!numberRegExp.test(field.value)) field.value = field.value.replace(/[^0-9\.,-e\+]*/ig,''); //check for double decimal separator var firstSep = field.value.indexOf("."); var secondSep = firstSep>0?field.value.indexOf(".",firstSep+1):-1; if(firstSep>0 && secondSep>firstSep) { field.value = field.value.substring(0,secondSep); } if(field.value[field.value.length-1]=='.') return; var reset = false; if(field.value.length == 0) { reset = true; } var ratio = field.value * unitRatios[field.id.substring(4)]; for(var i = 0; i < document.chooseForm.elements.length; i++) { var currentElement = document.chooseForm.elements[i]; if(currentElement == field) continue; if(reset) { currentElement.value = ''; continue; } var result = (ratio / unitRatios[currentElement.id.substring(4)]).toPrecision(7); if(result>0.0000001 && result<10000000) result = round(result,6); currentElement.value = result; } } function selectInput(field) { addClass(field,"form-selected"); for(var i = 0; i < document.chooseForm.elements.length; i++) { var currentElement = document.chooseForm.elements[i]; if(currentElement == field) continue; removeClass(currentElement,"form-selected"); } } function addClass(item, classname) { var obj = item if (typeof item=="string") { obj = document.getElementById(item) } obj.className += " " + classname } function removeClass(item, classname) { var obj = item if (typeof item=="string") { obj = document.getElementById(item) } var classes = ""+obj.className while (classes.indexOf(classname)>-1) { classes = classes.replace (classname, "") } obj.className = classes }