function round(value,precision) { var exp = Math.pow(10,precision); return Math.round(value*exp)/exp; } var initialized = false; function initialize() { document.chooseForm.numberDecimal.value = new Date().getFullYear(); recalculate(document.chooseForm.numberDecimal); initialized = true; } function recalculate(field) { var form = field.form; if(field.id=="numberRoman") { var numberRegExp = new RegExp("^[IVXLCDM]*$"); if(!numberRegExp.test(field.value)) field.value = field.value.replace(/[^IVXLCDM]*/ig,''); form.numberDecimal.value = fromRoman(form.numberRoman.value); } if(field.id=="numberDecimal") { if(field.value.indexOf(',')>0) field.value = field.value.replace(',','.'); var numberRegExp = new RegExp("^[0-9\.,]*$"); if(!numberRegExp.test(field.value)) field.value = field.value.replace(/[^0-9\.,]*/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; if(field.value>4999) { form.numberRoman.value = "zbyt duża liczba"; return; } form.numberRoman.value = toRoman(form.numberDecimal.value); } if(initialized) gTrackEvent("roman","recalculate",field.id); } var roman = new Array( "M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"); var romanOccurrence = new Array( 4, 1, 1, 1, 3, 1, 1, 1, 3, 1, 1, 1, 3); var romanSkip = new Array( 0, 3, 1, 1, 0, 3, 1, 1, 0, 3, 1, 1, 0); var decimal = new Array(1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1); function toRoman(number) { var result = ""; for(var i=0; i= decimal[i]) { number -= decimal[i]; result += roman[i]; } return result; } function fromRoman(romanNumber) { var result = 0; romanNumber = romanNumber.toUpperCase(); for(var i=0; iromanOccurrence[i]) return "błędna liczba"; romanNumber = romanNumber.substring(roman[i].length); result += decimal[i]; } if(occurrence>0) i+= romanSkip[i]; } if(romanNumber.length>0) return "błędna liczba"; return result; } function selectInput(field) { addClass(field,"input_selected"); for(var i = 0; i < document.forms.length; i++) for(var j = 0; j < document.forms[i].elements.length; j++) { var currentElement = document.forms[i].elements[j]; if(currentElement == field) continue; removeClass(currentElement,"input_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 } Number.prototype.toMoney = function(decimals, decimalSeparator, thousandsSeparator) { var n = this; c = isNaN(decimals) ? 2 : Math.abs(decimals); d = decimalSeparator || '.'; t = (typeof thousandsSeparator === 'undefined') ? ' ' : thousandsSeparator; sign = (n < 0) ? '-' : '', i = parseInt(n = Math.abs(n).toFixed(c)) + '', j = ((j = i.length) > 3) ? j % 3 : 0; return sign + (j ? i.substr(0, j) + t : '') + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : ''); } String.prototype.startsWith = function (str) { return this.indexOf(str) == 0; };