 //============================
function verifNum(valeur)
//============================
{
for (var i=0; i< valeur.value.length; i++) {
var caractere=valeur.value.substring(i,i+1);
if (!( caractere >= "0" && caractere <= "9" )){
valeur.value="";
valeur.focus();
return false;
}
}
return true;
}
//============================
function ValeurNumerique(valeurentest)
//============================
{
var EstValNum = new RegExp("^[0-9-.]*$","g");
return EstValNum.test(valeurentest)
}
//============================
// ISF
//============================
function AchargeEgale(charge) {
demipart = parseInt(charge)
for(var k = 0; k < charge.length;k++)
{
var c = charge.substring(k,k+1);
if((c == ",")||(c == "."))
{
if(charge.substring(k+1,k+2)>0)
{
demipart = demipart + 0.5
}
break
}
}
return demipart;
}
function MakeArray(n) {
this.lenght = n;
for (var i=1; i<=n; i++){
this[i]=0;}
return this
}
function base(borne,pourcentage) {
this.borne=borne;
this.pourcentage=pourcentage;
}
// Calcul
function calcul() {
tranche = new MakeArray(5);
tranche[1]= new base(790000, 0.0055)
tranche[2]= new base(1280000, 0.0075)
tranche[3]= new base(2520000, 0.01)
tranche[4]= new base(3960000, 0.013)
tranche[5]= new base(7570000, 0.0165)
tranche[6]= new base(16480000, 0.018)
var charge = document.isf.charge.value;
var patrimoine = document.isf.patrimoine.value;
eperon = new Array();
rePatrimoine = /[^0-9]/;
reCharge = /^[0-9]+(((,{1})|(\.{1}))[0-9]+)?$/;
for (i=1;i<7;i++){
eperon[i] = document.getElementById('error' + i).style;
}
for (i=1;i<7;i++){
eperon[i].visibility = 'hidden';
}
if (document.isf.patrimoine.value == "" || document.isf.charge.value == "") {
eperon[1].visibility = 'visible';
writeHTML("resultat",'')
}
else if (rePatrimoine.test(document.isf.patrimoine.value) || !charge.match(reCharge)) {
if (rePatrimoine.test(document.isf.patrimoine.value))
eperon[5].visibility = 'visible';
else if (!charge.match(reCharge))
eperon[6].visibility = 'visible';
writeHTML("resultat",'')
}
else {
patrimoine = parseInt(patrimoine);
charge = parseFloat(AchargeEgale(charge));
document.isf.charge.value = charge;
montant = 0;
for ( var n=6 ;n>0; n--) {
limite = tranche[n].borne;
limite = parseInt(limite);
coeff = tranche[n].pourcentage;
coeff = parseFloat(coeff);
if (patrimoine > limite) {
montant = montant + ((patrimoine - limite) * coeff);
patrimoine=limite;
}
}
montant = montant - (150 * charge);
// Modif 2006 arrondi à l'euro le plus proche
montant = Math.round(montant);
<!-- Modif 2008 -->
var pme75 = parseInt(document.isf.reduc_PME75.value,10);
var pme50 = parseInt(document.isf.reduc_PME50.value,10);
var dons75 = parseInt(document.isf.reduc_DONS75.value,10);
if ( ValeurNumerique(pme75) == false ) {pme75 = 0}
if ( ValeurNumerique(pme50) == false ) {pme50 = 0}
if ( ValeurNumerique(dons75) == false ) {dons75 = 0}
var reduction = (75*pme75)/100;
(0.5*pme50 > 20000) ? reduction = reduction + 20000 : reduction = reduction + (0.5*pme50);
reduction = reduction + (0.75*dons75);
if ( reduction > 50000 ) {reduction = 50000}
montant = montant - reduction;
montant = Math.round(montant);
<!-- fin Modif 2008 -->
if (montant<0) {
montant=0;
}
writeHTML("resultat",'<span class="resultcalcul">&nbsp;&nbsp;' + parseInt(montant) + '&nbsp;&euro;</span>');//
if (montant>0) {
eperon[3].visibility = 'visible';
} else {
eperon[4].visibility = 'visible';
}
}
}
//============================
// Frais kilométriques
//============================
function coeff(cv, a0, a5, b5, a20) {
this.cv = cv;
this.a0 = a0;
this.a5 = a5;
this.b5 = b5;
this.a20 = a20;
}
function tableau(n) {
this.length = n;
for (var i = 1; i <= n; i++)
this[i] = 0;
return this;
}
bareme = new tableau(11)
// bareme auto 2009
bareme[1] = new coeff(3,0.387,0.232,778,0.271)
bareme[2] = new coeff(4,0.466,0.262,1020,0.313)
bareme[3] = new coeff(5,0.512,0.287,1123,0.343)
bareme[4] = new coeff(6,0.536,0.301,1178,0.36)
bareme[5] = new coeff(7,0.561,0.318,1218,0.379)
bareme[6] = new coeff(8,0.592,0.337,1278,0.401)
bareme[7] = new coeff(9,0.607,0.352,1278,0.416)
bareme[8] = new coeff(10,0.639,0.374,1323,0.44)
bareme[9] = new coeff(11,0.651,0.392,1298,0.457)
bareme[10] = new coeff(12,0.685,0.408,1383,0.477)
bareme[11] = new coeff(13,0.697,0.424,1363,0.492)
// Calcul voitures
function compute() {
document.getElementById('error').style.visibility = 'hidden';
writeHTML("resultat","");
if (document.sel.kms.value == 0 || document.sel.kms.value.length == 0 || isNaN(document.sel.kms.value)){
document.getElementById('error').style.visibility = 'visible';
document.sel.kms.focus();
}
else if (document.sel.kms.value != 0 && document.sel.kms.value.length != 0) {
// chevaux selectionner
c = document.sel.cv.options[document.sel.cv.selectedIndex].value;
// nombre de kilomètre
d = document.sel.kms.value;
for ( var i=1; i<=11; i++) {
ccv = eval("bareme[" + i + "].cv");
if ( ccv == c )index = i
}
if ( d <= 5000 ) {
pr = eval("bareme["+index+"].a0");
res = pr * d;
}
if ( d >= 5001 && d <= 20000 ) {
pr1 = eval("bareme["+index+"].a5");
pr2 = eval("bareme["+index+"].b5") ;
res = ( pr1 * d ) + pr2;
}
if ( d >= 20001 ) {
pr = eval("bareme["+index+"].a20");
res = pr * d;
}
res = Math.round(res);
writeHTML('resultat','<span class="resultcalcul">&nbsp;&nbsp;' + res + '&nbsp;&euro;</span>');
}
}
// Calcul 2 roues < 50 cm3
function compute_scoot() {
document.getElementById('error').style.visibility = 'hidden';
writeHTML("resultat","");
if (document.sel.kms.value == 0 || document.sel.kms.value.length == 0 || isNaN(document.sel.kms.value)){
document.getElementById('error').style.visibility = 'visible';
document.sel.kms.focus();
}
else if (document.sel.kms.value != 0 && document.sel.kms.value.length != 0) {
d = document.sel.kms.value
if ( d <= 2000 ) res = 0.254 * d
if ( d > 2000 && d <= 5000 ) res = ( 0.061 * d ) + 386
if ( d > 5000 )res = 0.138 * d
res = Math.round(res);
writeHTML("resultat",'<span class="resultcalcul">&nbsp;&nbsp;' + res + '&nbsp;&euro;</span>');
}
}
function coeff_moto(a0, a1, b1, a2) {
this.a0 = a0;
this.a1 = a1;
this.b1 = b1;
this.a2 = a2;
}
function tableau_moto(n) {
this.length = n;
for (var i = 1; i <= n; i++)
this[i] = 0;
return this;
}
bareme_moto = new tableau(3)
// bareme moto 2009
bareme_moto[0] = new coeff_moto(0.318,0.080,714,0.199)
bareme_moto[1] = new coeff_moto(0.378,0.066,936,0.222)
bareme_moto[2] = new coeff_moto(0.489,0.063,1278,0.276)
// Calcul 2 roues > 50 cm3
function compute_moto() {
document.getElementById('error').style.visibility = 'hidden';
writeHTML("resultat","");
if (document.sel.kms.value == 0 || document.sel.kms.value.length == 0 || isNaN(document.sel.kms.value)){
document.getElementById('error').style.visibility = 'visible';
document.sel.kms.focus();
}
else if (document.sel.kms.value != 0 && document.sel.kms.value.length != 0) {
index = document.sel.cv.options[document.sel.cv.selectedIndex].value;
d = document.sel.kms.value;
var l =0;
var l_bis = 0;
var der;
var res_bis;
var dec;
var dec2=0;
var dec3=0;
var lavirgule_bis;
if ( d <= 3000 ) {
pr = eval("bareme_moto["+index+"].a0");
res = pr * d;
}
if ( d > 3000 && d <= 6000 ) {
pr1 = eval("bareme_moto["+index+"].a1")
pr2 = eval("bareme_moto["+index+"].b1")
res = ( pr1 * d ) + pr2
}
if ( d > 6000 ){
pr = eval("bareme_moto["+index+"].a2")
res = pr * d
}
res = res.toString();
if (res.indexOf(".")>0){
lavirgule = res.indexOf(".");
l = res.length;
l_bis = l-1;
l_der1= lavirgule+1;
l_der2= lavirgule+2;
lavirgule_bis = lavirgule + 1;
der = res.substring(l_der1,l_der2);
enter = res.substring(0,lavirgule);
if(der>=5){
enter = enter.valueOf();
document.sel.decimal.value = (eval(enter) + 1);
enter = document.sel.decimal.value;
res = enter;
}
else res = enter;
}
writeHTML('resultat','<span class="resultcalcul">&nbsp;&nbsp;' + res + '&nbsp;&euro;</span>');
}
}