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("Kilometer",1000); addUnit("Meter",1); addUnit("Centimeter",0.01); addUnit("Millimeter",0.001); addUnit("Micrometer",0.000001); addUnit("Nanometer",0.000000001); addUnit("Angstrem",0.0000000001); addUnit("Mile",1609.344); addUnit("Yard",0.9144); addUnit("Foot",0.3048); addUnit("Inch",0.0254); addUnit("NauticalMile",1851.852); addUnit("Parsec",648000/Math.PI*149597870700); addUnit("LightYear",9460730472580800); addUnit("AstronomicalUnit",149597870700); addUnit("Sazen",1.787); addUnit("Lokiec",0.59554); addUnit("Stopa",0.29777); addUnit("Sztych",0.19851); addUnit("Cwierc",0.14887); addUnit("Dlon",0.07444); addUnit("Palec",0.02482); addUnit("Ziarno",0.00310); function initialize() { document.chooseForm.unitMeter.value = 1; recalculate(document.chooseForm.unitMeter); } 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 }