/* - - - - - - - - - - - - - - - - - - - - - - -
 JavaScript
 vendredi 24 juillet 2009 11:52:52
 HAPedit 3.1.11.111
 - - - - - - - - - - - - - - - - - - - - - - - */

var rac_std = new creditSim(
valeur_mediatis1,valeur_mediatis2,
valeur_mediatis3,valeur_mediatis4,valeur_mediatis5,
valeur_mediatis6);

function onSliderMouseUpCallback(){}

var slider1;
var slider2;
var slider3;

var rac_mnt1;
var rac_mnt1_precision;
var rac_mnt2;

var rac_mns;
var rac_mns_precision;

var rac_mnt1_max;
var rac_mnt1_min;
var rac_mns_max;
var rac_mns_min;
var rac_dur_max;
var rac_dur_max_index;

var rac_res_dur_val;
var rac_res_dif_val;
var rac_res_teg_val;
var rac_res_cst_val;
var rac_res_tot_val;

var rac_res_mdt_val;

var sim = rac_std;
var percent;

//var URL_EXCEEDING_AMOUNT = '/rachat-credit/solution.html';

var isInitState=true;

function onMoveSliderCallback(slider,value)
{
  //alert(value);
 if(isInitState)
 {
 isInitState=false;
 /*urchinTracker('/simulateur/rachat');
 urchinTracker(urlVar_urchinTrackerUrl()+'/simulateur');*/
 }
 switch(slider.id)
 {
 case 'slider1':
 rac_mnt1=Math.round(value/rac_mnt1_precision)*rac_mnt1_precision; /* arondie la valeur de slide 1 de 3000 à 80000  */
 sim.setAmountIndexFromValue(rac_mnt1+rac_mnt2); /* ajoute à la valeur du slide, le montant crédit arrondie supplémantaire   */
 setDurationIndexFromValue(sim.getDuration());   /* définit les paramêtres de mois max des mensualité et du slide 3      */
 setSliderPosFromValue(slider3, sim.getDuration());
 break;
 case 'slider2':
 rac_mns=Math.round(value/rac_mns_precision)*rac_mns_precision;
 break;

 case 'slider3':
 setDurationIndexFromValue(value);
 setSliderPosFromValue(slider3, sim.getDuration());
 break;
 }
 setResult();
}

function setDurationIndexFromValue(value)
{
 if(rac_mnt1+rac_mnt2<21501)
 {
   rac_dur_max = 84;
   rac_dur_max_index=sim.getIndexFromDuration(rac_dur_max);
   initSlider(slider3,slider3.parentNode.offsetWidth-slider3.offsetWidth,sim.getDurationCount(),rac_dur_max,sim.getDurationMin());
   setSliderPosFromValue(slider3, sim.getDuration());
 }
 else if(rac_mnt1+rac_mnt2<46001)
 
 {
   rac_dur_max = 120;
   rac_dur_max_index=sim.getIndexFromDuration(rac_dur_max);
   initSlider(slider3,slider3.parentNode.offsetWidth-slider3.offsetWidth,sim.getDurationCount(),rac_dur_max,sim.getDurationMin());
   setSliderPosFromValue(slider3, sim.getDuration());
 }
 else
 {
   rac_dur_max = sim.getDurationMax();
   rac_dur_max_index=sim.getDurationCount()-1;
   initSlider(slider3,slider3.parentNode.offsetWidth-slider3.offsetWidth,sim.getDurationCount(),sim.getDurationMax(),sim.getDurationMin());
   setSliderPosFromValue(slider3, sim.getDuration());
 }
 if(value>=rac_dur_max)
     sim.setDurationIndex(rac_dur_max_index);
 else if(value<=sim.getDurationMin())
      sim.setDurationIndex(0);
 else
     sim.setDurationIndexFromValue(value);
}

function setResult()
{
    slider1.innerHTML = "<nobr>"+utils_floatToStr(rac_mnt1,0)+"&nbsp;&euro;</nobr>";
    slider2.innerHTML = "<nobr>"+utils_floatToStr(rac_mns,0)+"&nbsp;&euro;/mois</nobr>";
    /*slider3.innerHTML = "<nobr>"+utils_floatToStr(sim.getMonthlyFee(),0)+"&nbsp;<span class='euro'>&euro;</span>/mois</nobr>";*/
    
	teg =  Math.pow((1 + sim.getTeg()),(1/12)) - 1;
    
    cal1 = (sim.getAmount() * (Math.pow((1 + teg),0)));
    cal2 = (teg / (1 - Math.pow((1 + teg),-(sim.getDuration() - 0))));
    cal3 = utils_floatToStr((cal1 * cal2),0);
        
    slider3.innerHTML = "<nobr>"+cal3+"&nbsp;<span class='euro'>&euro;</span>/mois</nobr>";
    
    percent = cal3-rac_mns;
    percent = percent<0.0? percent/rac_mns*100.0:0;
    rac_res_dif_val.innerHTML=utils_floatToStr(percent, 0)+"&nbsp;&#37;";
    
    rac_res_dur_val.innerHTML=sim.getDuration() +"&nbsp;mois";
    rac_res_teg_val.innerHTML=utils_floatToStr((sim.getTeg() * 100.0), 2)+"&nbsp;&#37;";
    
    rac_res_tot_val.innerHTML=utils_floatToStr(sim.getTotalCost(),2) +"<span class='euro'>&nbsp;&euro;</span></span>";
        
    rac_res_cst_val.innerHTML=sim.getExpense() + "<span class='euro'>&nbsp;&euro;</span>";
    var mntStr=utils_floatToStr(sim.getAmount(),0)+"&nbsp;&euro;";
    carpeGetElementById('rac_ctr_mnt_val').innerHTML=mntStr;
    carpeGetElementById('rac_res_mnt_val').innerHTML=mntStr;

    rac_res_mdt_val.innerHTML = sim.getMandat()+ "<span class='euro'>&nbsp;&euro;</span>";

}

function isInteger(s)
{
 if(!s)return false;
 var c;
 for (var i = 0; i < s.length; i++)
 {
 c = s.charAt(i);
 if (((c < "0") || (c > "9")))
 return false;
 }
 return true;
}

function addAmount(elmnt)
{
 if(isInitState)
 {
    isInitState=false;
 }

 if (elmnt.value.length<=EXTRA_AMOUNT_MAX_NUMBER_SIZE)
 {
    var s=elmnt.value;
    if(!s)
    {
        s = '0';
    }
    if (isInteger(s))
    {
        if(s>5000){
            //alert('Vous avez dépassé le financement supplémentaire autorisé!');
            elmnt.value=0;
        }
        else{
            if(sim.getAmount()>75000 && sim.getAmount()<=80000){
                if(s>(80000-sim.getAmount())){
                    //alert('Vous avez dépassé le financement supplémentaire autorisé!');
                    elmnt.value=0;
                }
            }
            rac_mnt2 -= rac_ctr_mnt_input_prev;
            rac_ctr_mnt_input_prev = parseInt(s);
            rac_ctr_mnt_input_prev = Math.ceil(rac_ctr_mnt_input_prev/rac_mnt1_precision)*rac_mnt1_precision;
            rac_mnt2 +=rac_ctr_mnt_input_prev;
            sim.setAmountIndexFromValue(rac_mnt1+rac_mnt2);
            setDurationIndexFromValue(sim.getDuration());
            setResult();
       }
    }
 }
}

function onLoadPage()
{

 //urlVar_setBtnUrl();
 urlVar_setSimRacLinks();

 var rac_ctr_mnt_input=carpeGetElementById('rac_ctr_mnt_input');
 
 EXTRA_AMOUNT_MAX_NUMBER_SIZE = 4;
 
 rac_ctr_mnt_input.maxLength = EXTRA_AMOUNT_MAX_NUMBER_SIZE;
 
 rac_ctr_mnt_input_prev = parseInt(rac_ctr_mnt_input.value);
 if(isNaN(rac_ctr_mnt_input_prev))
 rac_ctr_mnt_input_prev=0;
 rac_mnt2=rac_ctr_mnt_input_prev;

 slider1 = carpeGetElementById('slider1');
 rac_mnt1_max = 80000.0;
 rac_mnt1_min = 6000.0;
 rac_mnt1_precision = 1000.0;
 initSlider(slider1,slider1.parentNode.offsetWidth-slider1.offsetWidth,((rac_mnt1_max-rac_mnt1_min)/rac_mnt1_precision)+1,rac_mnt1_min,rac_mnt1_max);
 var tps = utils_getURLParam('mtProjet');
 if (utils_isInteger(tps)){
 tps = Math.ceil(tps/1000)*1000;
 sim.setAmountIndexFromValue(tps);
 }
 else
 sim.setAmountIndexFromValue(6000);
 rac_mnt1 = sim.getAmount();

 slider2 = carpeGetElementById('slider2');
 rac_mns_precision = 50.0;
 rac_mns_min=50.0;
 rac_mns_max=5000.0;
 initSlider(slider2,slider2.parentNode.offsetWidth-slider2.offsetWidth,((rac_mns_max-rac_mns_min)/rac_mns_precision)+1,rac_mns_min,rac_mns_max);
 rac_mns = rac_mns_min;


 slider3 = carpeGetElementById('slider3');
 //initSlider(slider3,slider3.parentNode.offsetWidth-slider3.offsetWidth,sim.getDurationCount(),sim.getDurationMin(),sim.getDurationMax());
 //initSlider(slider3,slider3.parentNode.offsetWidth-slider3.offsetWidth,sim.getDurationCount()+10,sim.getDurationMax(),sim.getDurationMin());
 initSlider(slider3,slider3.parentNode.offsetWidth-slider3.offsetWidth,sim.getDurationCount(),96,sim.getDurationMin());
 setDurationIndexFromValue(96);

 var mntStr=utils_floatToStr(rac_mnt1+rac_mnt2,0)+"&nbsp;&euro;";
 carpeGetElementById('rac_ctr_mnt_val').innerHTML=mntStr;
 carpeGetElementById('rac_res_mnt_val').innerHTML=mntStr;
 rac_res_dur_val=carpeGetElementById('rac_res_dur_val');
 rac_res_dif_val=carpeGetElementById('rac_res_dif_val');
 rac_res_teg_val=carpeGetElementById('rac_res_teg_val');
 rac_res_cst_val=carpeGetElementById('rac_res_cst_val');
 rac_res_tot_val=carpeGetElementById('rac_res_tot_val');
 rac_res_mdt_val=carpeGetElementById('rac_res_mdt_val');

 setSliderPos();
 setResult();
 var rac_res_type_lbl=carpeGetElementById('rac_res_type_lbl');

}

function setSliderPos()
{
 setSliderPosFromValue(slider1, rac_mnt1);
 setSliderPosFromValue(slider2, rac_mns);
 //setSliderPosFromValue(slider3, sim.getDurationMin()-sim.getDuration()+sim.getDurationMax());
 setSliderPosFromValue(slider3, sim.getDuration());
}
function onMinusClick(evnt)
{
 moveOneStep(evnt);
 setSliderPos();
 setResult();

}
function onPlusClick(evnt)
{
 moveOneStep(evnt);
 setSliderPos();
 setResult();

}
function moveOneStep(evnt)
{
 switch (utils_crsbrwfix_getEventTarget(evnt).id)
 {
 case 'slider1_less':
 if(rac_mnt1-rac_mnt1_precision>=rac_mnt1_min){
 rac_mnt1-=rac_mnt1_precision;
 sim.setAmountIndexFromValue(rac_mnt1+rac_mnt2);
 setDurationIndexFromValue(sim.getDuration());
 setSliderPosFromValue(slider3, sim.getDuration());
 }
 break;
 case 'slider1_more':
 if(rac_mnt1+rac_mnt1_precision<=rac_mnt1_max){
 rac_mnt1+=rac_mnt1_precision;
 sim.setAmountIndexFromValue(rac_mnt1+rac_mnt2);
 setDurationIndexFromValue(sim.getDuration());
 setSliderPosFromValue(slider3, sim.getDuration());
 }
 else {
    showExceedingAmount();
 }
 break;
 case 'slider2_less':
 if(rac_mns-rac_mns_precision>=rac_mns_min)
 rac_mns-=rac_mns_precision;
 break;
 case 'slider2_more':
 if(rac_mns+rac_mns_precision<=rac_mns_max)
 rac_mns+=rac_mns_precision;
 break;
 case 'slider3_less':
 if(sim.durationIndex<rac_dur_max_index)
 sim.setDurationIndex(sim.durationIndex+1);
 else
 sim.setDurationIndex(rac_dur_max_index);
 //sim.moreDuration();
 break;
 case 'slider3_more':
 sim.lessDuration();
 break;
 }
}

function showExceedingAmount(){
 window.open(URL_EXCEEDING_AMOUNT+'?map="'+IMAGE_AGENCE+'"','RAC', 'directories=no, resizable=0, menubar=no, location=no, scrollbar=no, width=650, height=480, top=200, left=500');
}


function btnUp(elemnt)
{
 elemnt.style.backgroundPosition="0px 0px";
}

function btnDown(elemnt)
{
 elemnt.style.backgroundPosition="0px 1px";
}

function racAppendParam()
{
 var target= document.getElementById("rac_print").href;
 utils_openPrintPage(target,"tot="+utils_floatToStr(sim.getTotalCost(),2)+"&mnt="+utils_floatToStr(sim.getAmount(),0)+"&mns="+utils_floatToStr(sim.getMonthlyFee(),2)+"&sup="+utils_floatToStr(rac_mnt2,0)+"&bmns="+utils_floatToStr(percent,0)+"&teg="+utils_floatToStr(sim.getTeg()*100,2)+"&cst="+utils_floatToStr(sim.getExpense(),0)+"&dur="+sim.getDuration()+"&mdt="+sim.getMandat());
 return false;
}

function racUrlVar()
{
 //alert(sim.getAmount());
 return "&mtProjet="+rac_mnt1+"&drProjet="+sim.getDuration()+"&fsProjet="+rac_mnt2;
}

