
/*

        Author:		Robbe D. Morris
		Date:		September 22, 2002
		URL:		http://www.robbemorris.com

*/

function getTISUC(prazo)
{
	if (prazo <= 12)
	{
		return arrTISUC[prazo - 6];
	}
	if (prazo > 12 && prazo < 60)
	{
		return arrTISUC[6];
	}
	return arrTISUC[7];
}

function Mont_Financiado(montante_credito, prazo, modalidade)
{
    switch (modalidade)
    {
        case 0:
            return montante_credito * 1 / (1 - getTISUC(prazo));
            break;
        case 1:
            return montante_credito * (1 + getTSV2(prazo)) / (1 - getTISUC(prazo));
            break;
        case 2:
            return montante_credito * (1 + getPPC(prazo)) / (1 - getTISUC(prazo));
            break;
            
        case 3:
            return montante_credito * (1 + getTSV(prazo)) / (1 - getTISUC(prazo));
            break;
    }
    
}

function Calc_Prest_Mensal(montante_pedido, prazo)
{
	montante_financiado = Mont_Financiado(montante_pedido, prazo, 3);
	return (montante_financiado * I12) / (1 - Math.pow((1 + I12), (prazo * (-1))));
}

function Calc_Mont_Credito(prestacao_mensal, prazo)
{
	montante_financiado = prestacao_mensal * (1 - Math.pow((1 + I12), (prazo * (-1))));
	
	return (montante_financiaco * (1 - getTISUC(prazo))) / (1 + getTSV(prazo));
	//return (montante_financiaco * (1 - TISUC)) / (1 + TSV);
}

function Calc_Meses(montante, prestacao)
{
	var i, valor2;
	for(i = numero_min_meses; Calc_Prest_Mensal(montante, i) > prestacao; i++);
	
	return i;
}

function Prest_Min(montante, prestacao_minima)
{
	return Calc_Prest_Mensal(montante, (Calc_Meses(montante, prestacao_minima) - 1));
}

function getTSV(prazo)
{
	if (prazo == 6)
	{
		return arrTSV[0]
	}
	
	return arrTSV[Math.floor((prazo - 1) / 6) - 1];
}

function getTSV2(prazo)
{
	if (prazo == 6)
	{
		return arrTSV[0]
	}

	return arrTSV[Math.floor((prazo - 1) / 6)];
}

function getPPC(prazo)
{
	if (prazo == 6)
	{
		return arrPPC[0]
	}
	return arrPPC[Math.floor((prazo - 1) / 6)];
}

function SliderSetOtherSliders()
{
	var oSliderRow;
	var lArrayLength=0;
	var lLoop=0;
	var lRowWeight=0;
	var lTotal=0;
	var lSubTotal=0;
	var lDelta=0;
	var lAdjustableItems=0;
	var lSumTotal=100;
	var fZerosAdjusted=false;
	var lZeroDelta=0;
	var lHotItemAdjuster=0;

	try
 	{
 		// montante de crédito
 		if (SliderCurrentIdx == 0)
 		{ 			
			oSliderRow = SliderArrays[0];
			valor = parseFloat(oSliderRow[idxSliderDisplayWeight]);
			
			oSliderRow = SliderArrays[1];
			min_prest = Prest_Min(valor, 25);
			if ((Calc_Meses(valor, min_prest)) < numero_max_meses)
			{
				meses = (Calc_Meses(valor, min_prest));
			}
			else
			{
				meses = numero_max_meses;
			}
			oSliderRow[idxTop] = meses;
			oSliderRow[idxSliderDisplayWeight] = meses;
			
			SliderArrays[1] = oSliderRow;
			
			oSliderRow = SliderArrays[2];
			
			//alert(getTISUC(meses) + ' - ' + getTSV(meses) + ' - ' + meses)
			
			prest = Calc_Prest_Mensal(valor, meses);
			oSliderRow[idxSliderDisplayWeight] = prest;			
			
			min_prest = Calc_Prest_Mensal(valor, meses);
			oSliderRow[idxBottom] = SliderRoundNumber(min_prest,"2",true);
			
			max_prest = Calc_Prest_Mensal(valor, numero_min_meses);
			oSliderRow[idxTop] = SliderRoundNumber(max_prest,"2",true);
			SliderArrays[2] = oSliderRow;
		}
		else if (SliderCurrentIdx == 1)
		{
			oSliderRow = SliderArrays[0];
			valor = parseFloat(oSliderRow[idxSliderDisplayWeight]);
			
			oSliderRow = SliderArrays[1];			
			meses = Math.round(parseFloat(oSliderRow[idxSliderDisplayWeight]));

			oSliderRow = SliderArrays[2];
			prest = Calc_Prest_Mensal(valor, meses);
			oSliderRow[idxSliderDisplayWeight] = prest;
			SliderArrays[2] = oSliderRow;
		}
		else if (SliderCurrentIdx == 2)
		{
			oSliderRow = SliderArrays[0];
			valor = parseFloat(oSliderRow[idxSliderDisplayWeight]);
			
			oSliderRow = SliderArrays[2];
			prest = parseFloat(oSliderRow[idxSliderDisplayWeight]);
			
			//var i, valor2;
			//for(i = numero_min_meses; (valor2 = Calc_Prest_Mensal(valor, i)) > prest; i++);
			var i;
			i = Calc_Meses(valor, prest);
						
			oSliderRow = SliderArrays[1];
			oSliderRow[idxSliderDisplayWeight] = i;
			SliderArrays[1] = oSliderRow;
		}
	}
	catch (exception)
	{
		//if (exception.description == null) { alert("Slider Set Other Sliders: " + exception.message); }
		//else {  alert("Slider Set Other Sliders: " + exception.description); }
	}

	return true;
}

	function SliderConvertWidthToWeight(nWidth, nTop, nBottom)
	{
         var nRet=0;
	 var nMax=0;
	 var nWeight=0;
	 
	 nTop = parseFloat(nTop);
	 nBottom = parseFloat(nBottom);
	 
	 nMax = parseFloat(SliderMaxWidth);
         nWidth = parseFloat(nWidth);
         

         switch (SliderMathOption)
		{

              case 1:

                           nWeight = (nWidth / nMax) * 100;
                           nRet =  nWeight;
				           break;

			  case 2:
				nWeight = (nWidth / nMax) * (nTop - nBottom) + nBottom;				
				nRet =  nWeight;
				break;

		}

		 return nRet;

	}

	function SliderConvertWeightToWidth(nWeight, nTop, nBottom, bFloat)
	{
         var nRet=0;
		 var nMax=0;
		 var nWidthPercent=0;

		 nMax = parseFloat(SliderMaxWidth);
         nWeight = parseFloat(nWeight);

         switch (SliderMathOption)
		{

              case 1:

                           nWeight = nWeight * 2;
                           nRet = SliderRoundNumber(nWeight,"2",bFloat);
				           break;

			  case 2:
				           //if (nWeight<nBottom) { nWeight=nBottom;}
				           //if (nWeight>nTop) { nWeight=nTop;}
				           if (nTop != nBottom)
						   nWidthPercent = (nWeight-nBottom) / (nTop-nBottom);
					   else
					   	nWidthPercent = 1;
                           nRet = SliderRoundNumber(nMax * nWidthPercent,"2",bFloat);                           
				           break;

		}

		 return nRet;

	}

	  function SliderRoundNumber(number,x,bFloat)
  {

		var number2;
		var TmpNum;

		 x=(!x ? 1:x);

		if (bFloat) {
			number2 = Math.round(number*Math.pow(10,x))/Math.pow(10,x);			
			TmpNum = "" + number2;
			var TmpArray = TmpNum.split(".");
			if (TmpArray.length <2) { number2 = number2 + ".00"; }
		}
		else {
			number2 = Math.round(number);
		}

	    return number2;
  }