var slider1;
var slider2;
var slider3;
var ppc_res_mnt;
var ppc_res_fee;
var ppc_res_teg;
var ppc_res_txn;
var ppc_res_tot;
var ppc_res_dur;
var ppc_res_cst;
var ppc_res_type_lbl;
var ppc_res_type_img;
var ppc_res_type_img_off; 
var okForAllDurations = true;

var sim = mediatisSimulator.div;
var simType = "div";
function onSliderMouseUpCallback(id)
{
}

var isInitState=true;
function onMoveSliderCallback(elemnt, value)
{
    if(isInitState)
    {
        isInitState=false;
        urchinTracker('/simulateur/sem_ppc/');
    }
    switch(elemnt.id) 
    {
        case 'slider1':
            sim.setAmountIndexFromValue(value);
            initSlider(slider2,slider2.parentNode.offsetWidth-slider2.offsetWidth,sim.getDurationList().length,sim.getDurationMin(),sim.getDurationMax());
            initSlider(slider3,slider3.parentNode.offsetWidth-slider3.offsetWidth,sim.getDurationList().length,sim.getDurationMin(),sim.getDurationMax());
            setSliderPosFromValue(slider2, sim.getDuration());
            setSliderPosFromValue(slider3, sim.getDurationInverse());
            break;
        case 'slider2':
            sim.setDurationIndex(indexFromSlider);
            initSlider(slider3,slider3.parentNode.offsetWidth-slider3.offsetWidth,sim.getDurationList().length,sim.getDurationMin(),sim.getDurationMax());
            setSliderPosFromValue(slider3, sim.getDurationInverse());
            break;
        case 'slider3':
            sim.setDurationIndex(inverseIndex(indexFromSlider,sim.getDurationList().length));
            initSlider(slider2,slider2.parentNode.offsetWidth-slider2.offsetWidth,sim.getDurationList().length,sim.getDurationMin(),sim.getDurationMax());
            setSliderPosFromValue(slider2, sim.getDuration());
            break;
    }

    setResult();
}


function onSetType(src)
{
    //alert(src.value+' click');
    setSim(src.value);
    initSliders();
    setSliderPos();
    setResult();
}
function setSim(type)
{
    switch (type)
    {
        case "VN":
            sim = mediatisSimulator.vn;
            simType = "vn";
            break;
        case "VO":
            sim = mediatisSimulator.vo;
            simType = "vo";
            break;
        case "TWX":
            sim = mediatisSimulator.tvx;
            simType = "twx";
            break;
        case "DIV":
            sim = mediatisSimulator.div;
            simType = "div";
            break;
    }
    sim.setDurationIndex(1);    
}
function initSliders()
{
    sim.setAmountIndex(6);
    carpeGetElementById('slider1_max').innerHTML="<span class='amount'>"+utils_floatToStr(sim.getAmountMax(),0)+"&nbsp;€</span>";
    carpeGetElementById('slider1_min').innerHTML="<span class='amount'>"+utils_floatToStr(sim.getAmountMin(),0)+"&nbsp;€</span>";

    slider1 = carpeGetElementById('slider1');
    initSlider(slider1,slider1.parentNode.offsetWidth-slider1.offsetWidth,sim.getAmountCount(),sim.getAmountMin(),sim.getAmountMax());

    slider2 = carpeGetElementById('slider2');
    initSlider(slider2,slider2.parentNode.offsetWidth-slider2.offsetWidth,sim.getDurationList().length,sim.getDurationMin(),sim.getDurationMax());

    slider3 = carpeGetElementById('slider3');
    initSlider(slider3,slider3.parentNode.offsetWidth-slider3.offsetWidth,sim.getDurationList().length,sim.getDurationMin(),sim.getDurationMax());

    ppc_res_mnt=carpeGetElementById('ppc_res_mnt');
    ppc_res_fee=carpeGetElementById('ppc_res_fee');
    ppc_res_dur=carpeGetElementById('ppc_res_dur');
    ppc_res_teg=carpeGetElementById('ppc_res_teg');
    ppc_res_txn=carpeGetElementById('ppc_res_txn');
    ppc_res_tot=carpeGetElementById('ppc_res_tot');
    ppc_res_cst=carpeGetElementById('ppc_res_cst');
}

function setSliderPos()
{
    setSliderPosFromValue(slider1, sim.getAmount());
    setSliderPosFromValue(slider2, sim.getDuration());
    setSliderPosFromValue(slider3, sim.getDurationInverse());
}

function setResult()
{
    var amount = utils_floatToStr(sim.getAmount(),0);
    var fee = utils_floatToStr(sim.getMonthlyPayment(),0);
    var dur = sim.getDuration()+"&nbsp;mois"; 
    
    slider1.innerHTML="<hr/>"+amount+"&nbsp;€";
    slider2.innerHTML="<hr/>"+dur;
    slider3.innerHTML="<hr/>"+fee+"€/mois";
    amount+="&nbsp;<span class='euro'>€</span>";
    fee+="<span class='euro'>€</span>/mois";
    if(ppc_res_mnt!=null)ppc_res_mnt.innerHTML=amount;
    if(ppc_res_fee!=null)ppc_res_fee.innerHTML=fee;
    if(ppc_res_dur!=null)ppc_res_dur.innerHTML=dur;
    if(ppc_res_teg!=null)ppc_res_teg.innerHTML=utils_floatToStr((sim.getTeg()), 2)+"&nbsp;%";
    if(ppc_res_txn!=null)ppc_res_txn.innerHTML=utils_floatToStr((sim.getTxn()), 2)+"&nbsp;%";
    if(ppc_res_tot!=null)ppc_res_tot.innerHTML=utils_floatToStr(sim.getTotalCost(), 2) +"<span class='euro'>&nbsp;€</span>";
    if(ppc_res_cst!=null)ppc_res_cst.innerHTML=sim.getExpense()+"<span class='euro'>&nbsp;€</span>";
}

function onLoadPage()
{
    //urlVar_setBtnUrl();
    urlVar_setSimPpcLinks();
    initSliders();
    setSliderPos();
    setResult();

}

function onMinusClick(event)
{
    switch (utils_crsbrwfix_getEventTarget(event).id)
    {
    case 'slider1_less':
        sim.lessAmount();
        initSlider(slider2,slider2.parentNode.offsetWidth-slider2.offsetWidth,sim.getDurationList().length,sim.getDurationMin(),sim.getDurationMax());
        initSlider(slider3,slider3.parentNode.offsetWidth-slider3.offsetWidth,sim.getDurationList().length,sim.getDurationMin(),sim.getDurationMax());
        setSliderPosFromValue(slider1, sim.getAmount());
        setSliderPosFromValue(slider2, sim.getDuration());
        setSliderPosFromValue(slider3, sim.getDurationInverse());
        break;
    case 'slider2_less':
        sim.lessDuration();
        setSliderPosFromValue(slider2, sim.getDuration());
        setSliderPosFromValue(slider3, sim.getDurationInverse());
        break;
    case 'slider3_less':
        sim.moreDuration();
        setSliderPosFromValue(slider2, sim.getDuration());
        setSliderPosFromValue(slider3, sim.getDurationInverse());
        break;
    }       
    //setSliderPos();
    setResult();
}

function onPlusClick(event)
{
    switch (utils_crsbrwfix_getEventTarget(event).id)
    {
    case 'slider1_more':
        sim.moreAmount();
        initSlider(slider2,slider2.parentNode.offsetWidth-slider2.offsetWidth,sim.getDurationList().length,sim.getDurationMin(),sim.getDurationMax());
        initSlider(slider3,slider3.parentNode.offsetWidth-slider3.offsetWidth,sim.getDurationList().length,sim.getDurationMin(),sim.getDurationMax());
        setSliderPosFromValue(slider1, sim.getAmount());
        setSliderPosFromValue(slider2, sim.getDuration());
        setSliderPosFromValue(slider3, sim.getDurationInverse());
        break;
    case 'slider2_more':
        sim.moreDuration();
        setSliderPosFromValue(slider2, sim.getDuration());
        setSliderPosFromValue(slider3, sim.getDurationInverse());
        break;
    case 'slider3_more':
        sim.lessDuration();
        setSliderPosFromValue(slider2, sim.getDuration());
        setSliderPosFromValue(slider3, sim.getDurationInverse());
        break;
    }
    //setSliderPos();           
    setResult();
}

function ppcAppendParam()
{
    var target=document.getElementById("ppc_print").href;
    utils_openPrintPage(target,
    "tot="+utils_floatToStr(sim.getTotalCost(),2)
    +"&mnt="+utils_floatToStr(sim.getAmount(),0)
    +"&typ="+simType
    +"&mns="+utils_floatToStr(sim.getMonthlyPayment(),2)
    +"&teg="+utils_floatToStr(sim.getTeg(),2)
    +"&txn="+utils_floatToStr(sim.getTxn(),2)
    +"&cst="+utils_floatToStr(sim.getExpense(),0)
    +"&dur="+sim.getDuration());
    return false;
}

function ppcUrlVar()
{
    var type="";
    switch(simType)
    {
    case'vn':
        type='PPCAMCVN';
        break;
    case'vo':
        type='PPCAMCVO';
        break;
    case'twx':
        type='PPCTRV';
        break;
    case'div':
        type='PPCDIV';
        break;
    }
    //return "&produit="+type+"&mtProjet="+sim.getAmount()+"&MONTANT_MENSUALITE_MAX="+sim.getMonthlyPayment();
    return "&typeProjet="+type+"&mtProjet="+sim.getAmount()+"&drProjet="+sim.getDuration();
}

function setBtn2Href(link)
{
    urlVar_appendToHrefUtmLinker(link,ppcUrlVar());
}

function inverseIndex(index,listSize){
    var inverseIndexList = new Array();
    var j = listSize-1;
    for(var i=0;i<listSize;i++){
        inverseIndexList[i] = j;
        j--;
    }
    if(index<0)
        return inverseIndexList[0];
    else if(index>=listSize)
        return inverseIndexList[listSize-1]
    else
        return inverseIndexList[index];
}

