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 sim = mediatisSimulator_rac;
var percent;

var URL_EXCEEDING_AMOUNT = '/rachat-credit/solution.html';

var isInitState=true;
function onMoveSliderCallback(slider,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;
			//sim.setAmountIndexFromValue(rac_mnt1+rac_mnt2);
			//setDurationIndexFromValue(sim.getDuration());
			rac_mnt1=Math.round(value/sim.getAmountStep())*sim.getAmountStep();
			sim.setAmountIndexFromValue(rac_mnt1+rac_mnt2);
			initSlider(slider3,slider3.parentNode.offsetWidth-slider3.offsetWidth,sim.getDurationList().length,sim.getDurationMin(),sim.getDurationMax());
			setSliderPosFromValue(slider3, sim.getDurationInverse());
			break;
		case 'slider2':
			rac_mns=Math.round(value/rac_mns_precision)*rac_mns_precision;
			break;

		case 'slider3':
			sim.setDurationIndex(inverseIndex(indexFromSlider,sim.getDurationList().length));
			//sim.setDurationIndexFromMonthlyPayment(value);
			//setSliderPosFromValue(slider3, sim.getDurationInverse());
			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;€</nobr>";
	slider2.innerHTML = "<nobr>"+utils_floatToStr(rac_mns,0)+"&nbsp;€/mois</nobr>";
	slider3.innerHTML = "<nobr>"+utils_floatToStr(sim.getMonthlyPayment(),0)+"&nbsp;<span class='euro'>€</span>/mois</nobr>";

	percent = sim.getMonthlyPayment()-rac_mns;
	percent= percent<0.0? percent/rac_mns*100.0:0; 
	rac_res_dif_val.innerHTML=utils_floatToStr(percent, 0)+"&nbsp;%" 
	rac_res_dur_val.innerHTML=sim.getDuration() +"&nbsp;mois";
	rac_res_teg_val.innerHTML=utils_floatToStr((sim.getTeg()), 2)+"&nbsp;%";
	rac_res_tot_val.innerHTML=utils_floatToStr(sim.getTotalCost(), 2) +"<span class='euro'>&nbsp;€</span></span>";
	rac_res_cst_val.innerHTML=sim.getExpense() + "<span class='euro'>&nbsp;€</span>"; 
	var mntStr=utils_floatToStr(sim.getAmount(),0)+"&nbsp;€";
	carpeGetElementById('rac_ctr_mnt_val').innerHTML=mntStr;	
	carpeGetElementById('rac_res_mnt_val').innerHTML=mntStr;
		
}

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>sim.getAdditionnalFinancementMax()){
				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/sim.getAmountStep())*sim.getAmountStep();
				rac_mnt2 +=rac_ctr_mnt_input_prev;
				//s = Math.ceil(s/sim.getAmountStep())*sim.getAmountStep();
				//var montantTotalEmprunte = sim.getAmount()+s;
				sim.setAmountIndexFromValue(rac_mnt1+rac_mnt2);
				initSlider(slider3,slider3.parentNode.offsetWidth-slider3.offsetWidth,sim.getDurationCount(),sim.getMonthlyPaymentMin(),sim.getMonthlyPaymentMax());
				//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;

	sim.setAmountStep(1000);
	
	slider1 = carpeGetElementById('slider1');
	rac_mnt1_max = 80000.0;
	rac_mnt1_min = 3000.0;
	rac_mnt1_precision = 1000.0;
	initSlider(slider1,slider1.parentNode.offsetWidth-slider1.offsetWidth,sim.getAmountCount(),sim.getAmountMin(),sim.getAmountMax());
	var tps = utils_getURLParam('mtProjet');
	if (utils_isInteger(tps)){ 
		tps = Math.ceil(tps/sim.getAmountStep())*sim.getAmountStep();
		sim.setAmountIndexFromValue(tps);
	}
	else
		sim.setAmountIndex(0);
	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(),sim.getMonthlyPaymentMin(),sim.getMonthlyPaymentMax());
	initSlider(slider3,slider3.parentNode.offsetWidth-slider3.offsetWidth,sim.getDurationList().length,sim.getDurationMin(),sim.getDurationMax());
	sim.setDurationIndex(6);
	//setDurationIndexFromValue(96);
	
	var mntStr=utils_floatToStr(rac_mnt1+rac_mnt2,0)+"&nbsp;€";
	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');

	
	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());
	setSliderPosFromValue(slider3, sim.getDurationInverse());
}
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);
			initSlider(slider3,slider3.parentNode.offsetWidth-slider3.offsetWidth,sim.getDurationList().length,sim.getDurationMin(),sim.getDurationMax());
			setSliderPosFromValue(slider1, rac_mnt1);
			setSliderPosFromValue(slider3, sim.getDurationInverse());
			//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);
			initSlider(slider3,slider3.parentNode.offsetWidth-slider3.offsetWidth,sim.getDurationList().length,sim.getDurationMin(),sim.getDurationMax());
			setSliderPosFromValue(slider1, rac_mnt1);
			setSliderPosFromValue(slider3, sim.getDurationInverse());
			//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;
		setSliderPosFromValue(slider2, rac_mns);
		break;
	case 'slider2_more':
		if(rac_mns+rac_mns_precision<=rac_mns_max)
			rac_mns+=rac_mns_precision;
		setSliderPosFromValue(slider2, rac_mns);
		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();
			//sim.setDurationIndex(inverseIndex(indexFromSlider,sim.getDurationList().length));
		setSliderPosFromValue(slider3, sim.getDurationInverse());
		break;
	case 'slider3_more':
		sim.lessDuration();
		setSliderPosFromValue(slider3, sim.getDurationInverse());
			//sim.setDurationIndex(inverseIndex(indexFromSlider,sim.getDurationList().length));
		break;
	}	
}

function showExceedingAmount(){
	window.open(URL_EXCEEDING_AMOUNT,'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.getMonthlyPayment(),2)+"&sup="+utils_floatToStr(rac_mnt2,0)+"&bmns="+utils_floatToStr(percent,0)+"&teg="+utils_floatToStr(sim.getTeg(),2)+"&cst="+utils_floatToStr(sim.getExpense(),0)+"&dur="+sim.getDuration());
	return false;
}

function racUrlVar()
{
	//alert(sim.getAmount());
	return "&mtProjet="+rac_mnt1+"&drProjet="+sim.getDuration()+"&fsProjet="+rac_mnt2;
}

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];
}