window.addEvent('domready', function() { calcIPTTax(''); }); var split_glob = new Array; var percent= new Array; var the_text= new Array; var result_prices = new Array; the_text[0] = "€12,500 and under" split_glob[0] = 12500; percent[0] = 0.0; the_text[1] = "€1 to €€40,000"; split_glob[1] = 40000; percent[1] = 0.6; the_text[2] = "€40,001 to €€120,000"; split_glob[2] = 120000; percent[2] = 0.8; the_text[3] = "€120,001 to €€170,000"; split_glob[3] = 170000; percent[3] = 0.9; the_text[4] = "€170,001 to €€300,000"; split_glob[4] = 300000; percent[4] = 1.1; the_text[5] = "€300,001 to €€500,000"; split_glob[5] = 500000; percent[5] = 1.5; the_text[6] = "€500,001 to €€800,000"; split_glob[6] = 800000; percent[6] = 1.5; the_text[7] = "€800,001 to €€3,000,000"; split_glob[7] = 3000000; percent[7] = 1.7; the_text[8] = "over €3,000,000"; percent[8] = 1.9; split_glob[8] = 3000001; var second_stamp_percent = 0.2; function calcIPTTax(A) { if($('ipt_price').get('value').replace(",", "")) { var type = $$('input[name=as_ipt]:checked').map(function(e) { return e.value; }); var result_single; var is_joint = ""; if(type=="Joint") { var result_single_cal = calcTransferIPT($('ipt_price').get('value').replace(",", ""),1); result_single = calcTransferIPT($('ipt_price').get('value').replace(",", ""),2); //var total_joint = result_joint[1]+result_joint[2]+result_joint[3]; is_joint = "per person"; } else result_single =calcTransferIPT($('ipt_price').get('value').replace(",", ""),1); var total_single = 0; var res res = ""; res = res+""; var contract_price = $('ipt_price').get('value').replace(",", ""); var used_price = 0; //show exampt if(result_single[0]=="exempt") { res = res+""+is_joint+""; } //foreach result single for (var i=1;i"+is_joint+""; total_single = result_single[i]+total_single; } val = parseFloat(total_single); val = Math.round(val*100)/100; val = val.toFixed(2); res = res+""+is_joint+""; if(is_joint) { var total_single_calc = 0; for (var i=1;i"; } } res = res+"
Tax BracketTaxable Value%Total
"+the_text[0]+"€"+addCommas(result_prices[0])+"at "+percent[0]+"%"+addCommas(result_single[0])+"
"+the_text[i]+"€"+addCommas(result_prices[i])+"at "+percent[i]+"%€"+addCommas(result_single[i])+"

Total Immovable Property Tax€"+addCommas(val)+"
Saving as Joint€"+addCommas(total_single_calc)+"
"; $('ipt_tax_display').set('html', res); } function calcTransferIPT(price,multiply) { var results=new Array(); var first_split = split_glob[1]; var second_split = split_glob[2]; pricev=parseFloat(price); pricev = pricev / multiply; //work out 1st if(pricev<=split_glob[0] ) { result_prices[0] = pricev; results[0] = "exempt"; } else if(pricev<=split_glob[1] ) { result_prices[1] = pricev; results[1] = Math.round((eval(pricev/100)*percent[1])*100)/100; //first results[1] = parseFloat(results[1].toFixed(2)); } else if(pricev<=split_glob[2]) { result_prices[1] = first_split; results[1] = Math.round((eval(first_split/100)*percent[1])*100)/100; //first results[1] = parseFloat(results[1].toFixed(2)); pricev = pricev - split_glob[1]; result_prices[2] = pricev; results[2] = Math.round((eval(pricev/100)*percent[2])*100)/100; //second results[2] = parseFloat(results[2].toFixed(2)); } else if(pricev<=split_glob[3]) { result_prices[1] = first_split; results[1] = Math.round((eval(result_prices[1]/100)*percent[1])*100)/100; //first results[1] = parseFloat(results[1].toFixed(2)); result_prices[2] = split_glob[2] - split_glob[1]; results[2] = Math.round((eval(result_prices[2] /100)*percent[2])*100)/100; //second results[2] = parseFloat(results[2].toFixed(2)); result_prices[3] = pricev - result_prices[2] - result_prices[1]; results[3] = Math.round((eval(result_prices[3]/100)*percent[3])*100)/100; //second results[3] = parseFloat(results[3].toFixed(2)); } else if(pricev<=split_glob[4]) { result_prices[1] = first_split; results[1] = Math.round((eval(result_prices[1] /100)*percent[1])*100)/100; //first results[1] = parseFloat(results[1].toFixed(2)); result_prices[2] = split_glob[2] - result_prices[1]; results[2] = Math.round((eval(result_prices[2]/100)*percent[2])*100)/100; //second results[2] = parseFloat(results[2].toFixed(2)); result_prices[3] = split_glob[3] - result_prices[2] - result_prices[1]; results[3] = Math.round((eval(result_prices[3]/100)*percent[3])*100)/100; //second results[3] = parseFloat(results[3].toFixed(2)); result_prices[4] = pricev - result_prices[3] - result_prices[2] - result_prices[1]; results[4] = Math.round((eval(result_prices[4] /100)*percent[4])*100)/100; //second results[4] = parseFloat(results[4].toFixed(2)); } else if(pricev<=split_glob[5]) { result_prices[1] = first_split; results[1] = Math.round((eval(result_prices[1] /100)*percent[1])*100)/100; //first results[1] = parseFloat(results[1].toFixed(2)); result_prices[2] = split_glob[2] - result_prices[1]; results[2] = Math.round((eval(result_prices[2]/100)*percent[2])*100)/100; //second results[2] = parseFloat(results[2].toFixed(2)); result_prices[3] = split_glob[3] - result_prices[2] - result_prices[1]; results[3] = Math.round((eval(result_prices[3]/100)*percent[3])*100)/100; //second results[3] = parseFloat(results[3].toFixed(2)); result_prices[4] = split_glob[4] - result_prices[3] - result_prices[2] - result_prices[1]; results[4] = Math.round((eval(result_prices[4] /100)*percent[4])*100)/100; //second results[4] = parseFloat(results[4].toFixed(2)); result_prices[5] = pricev - result_prices[4] - result_prices[3] - result_prices[2] - result_prices[1]; results[5] = Math.round((eval(result_prices[5] /100)*percent[5])*100)/100; //second results[5] = parseFloat(results[5].toFixed(2)); } else if(pricev<=split_glob[6]) { result_prices[1] = first_split; results[1] = Math.round((eval(result_prices[1] /100)*percent[1])*100)/100; //first results[1] = parseFloat(results[1].toFixed(2)); result_prices[2] = split_glob[2] - result_prices[1]; results[2] = Math.round((eval(result_prices[2]/100)*percent[2])*100)/100; //second results[2] = parseFloat(results[2].toFixed(2)); result_prices[3] = split_glob[3] - result_prices[2] - result_prices[1]; results[3] = Math.round((eval(result_prices[3]/100)*percent[3])*100)/100; //second results[3] = parseFloat(results[3].toFixed(2)); result_prices[4] = split_glob[4] - result_prices[3] - result_prices[2] - result_prices[1]; results[4] = Math.round((eval(result_prices[4] /100)*percent[4])*100)/100; //second results[4] = parseFloat(results[4].toFixed(2)); result_prices[5] = split_glob[5] - result_prices[4] - result_prices[3] - result_prices[2] - result_prices[1]; results[5] = Math.round((eval(result_prices[5] /100)*percent[5])*100)/100; //second results[5] = parseFloat(results[5].toFixed(2)); result_prices[6] = pricev - result_prices[5] - result_prices[4] - result_prices[3] - result_prices[2] - result_prices[1]; results[6] = Math.round((eval(result_prices[6] /100)*percent[6])*100)/100; //second results[6] = parseFloat(results[6].toFixed(2)); } else if(pricev<=split_glob[7]) { result_prices[1] = first_split; results[1] = Math.round((eval(result_prices[1] /100)*percent[1])*100)/100; //first results[1] = parseFloat(results[1].toFixed(2)); result_prices[2] = split_glob[2] - result_prices[1]; results[2] = Math.round((eval(result_prices[2]/100)*percent[2])*100)/100; //second results[2] = parseFloat(results[2].toFixed(2)); result_prices[3] = split_glob[3] - result_prices[2] - result_prices[1]; results[3] = Math.round((eval(result_prices[3]/100)*percent[3])*100)/100; //second results[3] = parseFloat(results[3].toFixed(2)); result_prices[4] = split_glob[4] - result_prices[3] - result_prices[2] - result_prices[1]; results[4] = Math.round((eval(result_prices[4] /100)*percent[4])*100)/100; //second results[4] = parseFloat(results[4].toFixed(2)); result_prices[5] = split_glob[5] - result_prices[4] - result_prices[3] - result_prices[2] - result_prices[1]; results[5] = Math.round((eval(result_prices[5] /100)*percent[5])*100)/100; //second results[5] = parseFloat(results[5].toFixed(2)); result_prices[6] = split_glob[6] - result_prices[5] - result_prices[4] - result_prices[3] - result_prices[2] - result_prices[1]; results[6] = Math.round((eval(result_prices[6] /100)*percent[6])*100)/100; //second results[6] = parseFloat(results[6].toFixed(2)); result_prices[7] = pricev - result_prices[6] - result_prices[5] - result_prices[4] - result_prices[3] - result_prices[2] - result_prices[1]; results[7] = Math.round((eval(result_prices[7] /100)*percent[7])*100)/100; //second results[7] = parseFloat(results[7].toFixed(2)); } else if(price>split_glob[8]) { result_prices[1] = first_split; results[1] = Math.round((eval(result_prices[1] /100)*percent[1])*100)/100; //first results[1] = parseFloat(results[1].toFixed(2)); result_prices[2] = split_glob[2] - result_prices[1]; results[2] = Math.round((eval(result_prices[2]/100)*percent[2])*100)/100; //second results[2] = parseFloat(results[2].toFixed(2)); result_prices[3] = split_glob[3] - result_prices[2] - result_prices[1]; results[3] = Math.round((eval(result_prices[3]/100)*percent[3])*100)/100; //second results[3] = parseFloat(results[3].toFixed(2)); result_prices[4] = split_glob[4] - result_prices[3] - result_prices[2] - result_prices[1]; results[4] = Math.round((eval(result_prices[4] /100)*percent[4])*100)/100; //second results[4] = parseFloat(results[4].toFixed(2)); result_prices[5] = split_glob[5] - result_prices[4] - result_prices[3] - result_prices[2] - result_prices[1]; results[5] = Math.round((eval(result_prices[5] /100)*percent[5])*100)/100; //second results[5] = parseFloat(results[5].toFixed(2)); result_prices[6] = split_glob[6] - result_prices[5] - result_prices[4] - result_prices[3] - result_prices[2] - result_prices[1]; results[6] = Math.round((eval(result_prices[6] /100)*percent[6])*100)/100; //second results[6] = parseFloat(results[6].toFixed(2)); result_prices[7] = split_glob[7] - result_prices[6] - result_prices[5] - result_prices[4] - result_prices[3] - result_prices[2] - result_prices[1]; results[7] = Math.round((eval(result_prices[7] /100)*percent[7])*100)/100; //second results[7] = parseFloat(results[7].toFixed(2)); result_prices[8] = pricev - result_prices[7] - result_prices[6] - result_prices[5] - result_prices[4] - result_prices[3] - result_prices[2] - result_prices[1]; results[8] = Math.round((eval(result_prices[8] /100)*percent[8])*100)/100; //second results[8] = parseFloat(results[8].toFixed(2)); } return results; } function addCommas(nStr) { nStr += ''; x = nStr.split('.'); x1 = x[0]; x2 = x.length > 1 ? '.' + x[1] : ''; var rgx = /(\d+)(\d{3})/; while (rgx.test(x1)) { x1 = x1.replace(rgx, '$1' + ',' + '$2'); } return x1 + x2; }