﻿// declaracion de ajax
/*
	Script Hecho por : Walter Willis Naveda
	efectiva S.A. tiene los derechos reservados de este script 
*/

var FechaInicioxyz = '';
/* impresion de formulario */
/* <script language="Javascript"> */
function imprSelec(nombre)
{
  var ficha = document.getElementById(nombre);
  var ventimp = window.open(' ', 'popimpr');
  //ventimp.document.write( "<header > <style> </style></header>");
  ventimp.document.writeln("<head>");
  ventimp.document.writeln("<title>.:EDPYME Alternativa</title>");
  ventimp.document.writeln("<LINK href=\"alternativa_archivos/stylei.css\" rel=\"stylesheet\" type=\"text/css\">");
  ventimp.document.writeln("<style type=\"text/css\" media=\"all\">@import \"style.css\";</style>");
  /* ventimp.document.writeln("<script language=\"JavaScript\" type=\"text/javascript\" src=\"sim.js\"></script>"); */
  ventimp.document.writeln("</head>");
  
  
  ventimp.document.write( ficha.innerHTML );
  ventimp.document.close();
  ventimp.print( );
  ventimp.close();
}
/* </script>  */

/****************************/
function creaAjax(){
         var objetoAjax=false;
         try {
          /*Para navegadores distintos a internet explorer*/
          objetoAjax = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
          try {
                   /*Para explorer*/
                   objetoAjax = new ActiveXObject("Microsoft.XMLHTTP");
                   }
                   catch (E) {
                   objetoAjax = false;
          }
         }

         if (!objetoAjax && typeof XMLHttpRequest!='undefined') {
          objetoAjax = new XMLHttpRequest();
         }
         return objetoAjax;
}
//var ajax=creaAjax();         
		 

//  funcion para que en le casillero solo acepte numeros
var nav4 = window.Event ? true : false;
function SoloNum(evt){
// NOTE: Backspace = 8, Enter = 13, '0' = 48, '9' = 57
var key = nav4 ? evt.which : evt.keyCode;
return (key <= 13 || (key >= 48 && key <= 57));
}

function AddZeroCad(Num){
var Cad = ' ';
	if ( Num < 10 ){
		if (Num.length == 2){ // for firefox
			return Num;
		} else if (Num.length == 1){ // for IE
			Cad = '0' + Num;
			return String(Cad);
		}
	} else {
	return Num;
	} 
}




function IsNumeric(sText){
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
	// verificar si es los datos ingresados son nulos
	if(sText.length == 0)
		IsNumber = false;
	
   return IsNumber;
}

// recoleccion del mes
function getMonthNum(abbMonth)
  {
    var arrMon = new Array("Jan","Feb","Mar","Apr","May","Jun",
          "Jul","Aug","Sep","Oct","Nov","Dec");
    for(y=0; y<arrMon.length; y++)
    {
      if(abbMonth == arrMon[y])
	  	// en caos que sea menor que 10 pogo un cero adelante
	    if(y <= 8 ){
			tmpCountMes = y + 1;
			tmpMes = "0" + tmpCountMes;
        return tmpMes;
		} else {
		return y+1;	
		}
    }
  }


// funcion de suma de días
function FechaPagoCuota(FechaIni2) {
	
	var NuevaFecha;
	var nDias;
	var FechaFinal;
	var FechaIni = FechaIni2;
	arrFecha = FechaIni.split("/");
	var ConvDia = parseFloat(arrFecha[0]);
	var ConvMes = arrFecha[1] - 1;
	var ConvAnno = arrFecha[2];
	var timeSptamp = 	new Date(ConvAnno,ConvMes,ConvDia,0,0,0).getTime() / 1000 ;
	nDias = document.getElementById('tipocredit').value
	NuevaFecha = timeSptamp + nDias * 24 * 60 * 60;	
	var theDate = new Date(NuevaFecha * 1000);
		dateString = theDate.toGMTString();
		arrDateStr = dateString.split(" ");
return AddZeroCad(arrDateStr[1]) + '/' + getMonthNum(arrDateStr[2]) + '/' + arrDateStr[3];
}


function valida_fecha(strFechaValidate){
	var arrFechVal = new Array();
	var tmpFech = new Number();
	var tmpFech2 = new Number();
	var tmpFech3 = new Number();
	var datFecha = new Array();
	var sw1 = new Boolean();
	//con lo cual, puedes saber si es feriado.
	//Para el resto de las fiestas, deberias tener un array con los días fiesta:
	var feriados = new Array();
	feriados[0] = "01/01";
	feriados[1] = "20/03"; // seman santa
	feriados[2] = "21/03"; // semana santa
	feriados[3] = "01/05";
	feriados[4] = "28/07";
	feriados[5] = "29/07";
	feriados[6] = "30/08";
	feriados[7] = "08/10";
	feriados[8] = "01/11";
	feriados[9] = "08/12";
	feriados[10] = "25/12";
	//feriados[1] = "20/03";
	arrFechVal = strFechaValidate.split("/");
	var dateEval = new Date(arrFechVal[2],arrFechVal[1] -1,arrFechVal[0]);
	
	// verifico un array de fechas, para ver si es un dia feriado
	for (var i=0; i < feriados.length; i++) {
		//document.write("<br>recorrido : "+i + " -- dia :  " +  strFechaValidate)
		//datFecha = feriados[i];
		datFecha = feriados[i].split("/");
		//document.write("<br>mes fiesta: "+datFecha[1]+ " -> "+ dateEval.getMonth() + " -- dia fiesta: " + datFecha[0])
		if (((dateEval.getMonth() + 1) == parseFloat(datFecha[1])) && (dateEval.getDate() == parseFloat(datFecha[0]))) {
		//document.write(' -- <b>Dia de fiesta!</b> ->' + i );
		//alert(sw1);
		return false;
		}
	}

	//document.write(" - pasa a validar dia comun -- ");
	// evaluo si es fecha de la semana
	//alert("fecha ingresada: " + dateEval)
	if ((dateEval.getDay() == 0) || (dateEval.getDay() == 6)){ 
		//document.write(" - no laborable");
		return false;
	} else { 
		//document.write(" - dia habil");
		return true;
	}
	


//alert("term validacion")
}
//valida_fecha("25/12/2008");


// valido fecha
function y2k(number) { return (number < 1000) ? number + 1900 : number; }
function isDate(day, month, year)
{
var today = new Date();
year = ((!year) ? y2k(today.getYear()):year);
	month = ((!month) ? today.getMonth():month-1);
	if (!day) return false
	var test = new Date(year,month,day);
	//alert("test: " + test)
	//alert("anno : " + test.getYear() + "  - mes: " + test.getMonth() + "  - dia: " + test.getDate())
	// verificacion total
	if ( (y2k(test.getYear()) == year) && (month == test.getMonth()) && (day == test.getDate()) ){
		return true;
	} else {
		return false;
	}
}



//valida_fecha();
function FechaSiguiente(strFecha, NumDias){
	var strTemp = new String();
	var arrFech = new Array();
	var tmpFech = new Number();
	var tmpFech2 = new Number();
	var tmpFech3 = new Number();
	
	arrFech = strFecha.split("/");
	// en un array tengo la fecha, 0 dia 1 mes  + 1 y 2 año
	for(j = 0; j < NumDias; j++){
		// sumo un dia, en caso de que estar correcto, paso al mes para sumarle uno
		// comienzo por el dia
		tmpFech = parseFloat(arrFech[0]) + 1;
		tmpFech2 = arrFech[1] + 1;
		//alert("nueva fecha: " + tmpFech);
		// sumo un dia
		if(isDate(tmpFech, arrFech[1], arrFech[2])){ // si es valida la fecha
			//document.write ("<br>dia, es fecha: " + tmpFech + "/"+ arrFech[1] + "/"+ arrFech[2] );
			return tmpFech + "/"+ arrFech[1] + "/"+ arrFech[2];
		} else {  // si no es fecha, sumo al mes y el contador del dia a cero
			tmpFech = "01";
			tmpFech2 = parseFloat(arrFech[1]) + 1;
			//document.write ("<br>dia, no es fecha");
			if(isDate(tmpFech, tmpFech2, arrFech[2])){
				//document.write ("<br>mes , es fecha: "+ tmpFech + "/"+ tmpFech2 + "/"+ arrFech[2]);
				return tmpFech + "/"+ tmpFech2 + "/"+ arrFech[2]
			} else { // no es mes , pasamos al año y reseteo el dia y el mes
				tmpFech = "01";
				tmpFech2 = "01";
				tmpFech3 = parseFloat(arrFech[2]) + 1;
				//document.write ("<br>mes, no es fecha");
				if(isDate(tmpFech, tmpFech2, arrFech[2])){
					//document.write ("<br>mes , es fecha: "+ tmpFech + "/"+ tmpFech2 + "/"+ tmpFech3);
					return tmpFech + "/"+ tmpFech2 + "/"+ tmpFech3;
				}else {
					alert ("<br>No se puede calcular");
					return 0;
				}
				
			}
		}
	}
	//document.write ("<br> FechaSiguiente -> Nueva fecha: " + tmpFech + "/"+ arrFech[1] + "/"+ arrFech[2] );
} // end function
//FechaSiguiente("31/12/2008", 1)
// formato a la fecha
function FormatDate(srtDateDesord){
	var ordFech = new Array();
	ordFech = srtDateDesord.split("/");
	
//AddZeroCad(Num);
return AddZeroCad(ordFech[0]) + "/" + AddZeroCad(ordFech[1]) + "/" + ordFech[2]
	
}


function crono_dates(strDate, numDates){
var topefech = new Number(); // numero de cuotas
var fechRpta = new String();
var i = new Number(1);
numDates = parseFloat(numDates)
	//sumarle determinada cantidad de dias para uqe la cuota no sea en el momento
	// ojo sacando los dias no laborables
	// ingreso de este tipo FechaSiguiente("31/12/2008", 1)
	// hago las iteraciones para sacar los los dias de la proxima cuota
	while(i <= numDates){
		//document.write("<br> fecha: " + FechaSiguiente(strDate, 1));
		strDate = FechaSiguiente(strDate, 1);
		//document.write("<br><b>Contador(aumento): " + i + " -- " + valida_fecha(strDate) + " -- la fecha es: " + strDate +"</b>" );
		// valido si es feriado o no; si es sumo uno, sino no sumo
		i++;
	}
	var swz = new Boolean(true);
	// ahora verifico la fecha, si es o no laborable
	do{
		//alert(document.getElementById('help').innerHTML)
		if(!valida_fecha(strDate)){
			//document.getElementById('debug').innerHTML = document.getElementById('debug').innerHTML + "<br><b>no es laborable:</b> " + FormatDate(strDate);
			strDate = FechaSiguiente(strDate, 1);
			
		} else {
			//document.getElementById('debug').innerHTML = document.getElementById('debug').innerHTML + "<br><b>es laborable:</b> " + FormatDate(strDate);
			swz = false;
		}
		
		//swz = false;
	}while(swz);
	//document.write("<br><b>Fecha respuesta : </b>" +strDate )
	return FormatDate(strDate);
}

//crono_dates("17/07/2008", 15); // fecha , numero de dias
//alert(isDate(05,02,2008));



// para el cambio de credito antes de hacer el cambio se chequea el tiempo moneda
function OpcPorntChange(x){
	var opc1 = "Mensual";
	var opc2 = "Diario";
	var opc3 = "Semanal y Quincenal";
	var opc4 = "Mensual"
	var opc5 = "Mensual"
	var groups = document.formulario.FrmTipoCredito.options.length;
	var group=new Array(groups);
	for (i=0; i<groups; i++)
	group[i]=new Array();
		group[0][0]=new Option("Mensual",30);
		group[0][1]=new Option("Quincenal",15);
		group[0][2]=new Option("Semanal",7);
		group[1][0]=new Option("Diario",1);
		group[2][0]=new Option("Mensual",30);
		group[2][1]=new Option("Quincenal",15);
		group[2][2]=new Option("Semanal",7);
		group[2][3]=new Option("Diario",1);
		group[3][0]=new Option("Mensual",30);
		group[4][0]=new Option("Mensual",30);
		group[5][0]=new Option("Mensual",30);
		group[6][0]=new Option("Mensual",30);
		group[7][0]=new Option("Mensual",30);
		group[8][0]=new Option("Mensual",30);
		group[9][0]=new Option("Mensual",30);
	var temp = document.formulario.FrmTipo
		for (m=temp.options.length-1;m>0;m--)
			temp.options[m]=null
		for (i=0;i<group[x].length;i++){
			temp.options[i]=new Option(group[x][i].text,group[x][i].value) // dando valores
		}
	temp.options[0].selected=true
	//AutoOpcPorntChangeTEA();
}







// interes efectivo anual que se ofrece a los clientes expresada en decimales 
function PorcToInt(PorcAnualTEA){
	var TsEfAnual;
	TsEfAnual = PorcAnualTEA /100;
return TsEfAnual;
}


function BaseTEA(PorcAnualTEA, TiempoDias){
	var IdDiario = new Number();
	// convierto el porcentaje a numeros comunes
	var TsEfAnual = PorcToInt(PorcAnualTEA);
	// formula para el interes diario
	//alert ("Base TEA : Por Anual TEA: "+ PorcAnualTEA + "Tiempo DIAS: "+TiempoDias)
	IdDiario = ((Math.pow((1 + TsEfAnual), (TiempoDias/360)) ) - 1) /* 100 */;
	//document.getElementById('cuarta').innerHTML = 'Basetea: ' + IdDiario ;
	//document.write("Resultado : <b>" + IdDiario + "</b><br />");
	return IdDiario;
}


// funcion que crea rows en la tabla
function addRow(id, cont1, cont2,cont3,cont4, cont5, cont6, cont7, cont8, cont9 ){
    var tbody = document.getElementById(id).getElementsByTagName("TBODY")[0];
    var row = document.createElement("TR");
	row.id = 'rowline' +cont1 ;
	
    var td1 = document.createElement("TD");
	td1.id = 'coutaid';
	td1.appendChild(document.createTextNode(cont1));
	td1.setAttribute('class', 'bordercontenido1');
    var td2 = document.createElement("TD");
	td2.appendChild (document.createTextNode(cont2));
	td2.setAttribute('class', 'bordercontenido1');
    var td3 = document.createElement("TD");
	td3.appendChild (document.createTextNode(cont3));
	td3.setAttribute('class', 'bordercontenido1');
    var td4 = document.createElement("TD");
	td4.appendChild (document.createTextNode(cont4));
	td4.setAttribute('class', 'bordercontenido1');
    var td5 = document.createElement("TD");
	td5.appendChild (document.createTextNode(cont5));
	td5.setAttribute('class', 'bordercontenido1');
    var td6 = document.createElement("TD");
	td6.appendChild (document.createTextNode(cont6));
	td6.setAttribute('class', 'bordercontenido1');
    var td7 = document.createElement("TD");
	td7.appendChild (document.createTextNode(cont7));
	td7.setAttribute('class', 'bordercontenido1');
	var td8 = document.createElement("TD");
	td8.appendChild (document.createTextNode(cont8));
	td8.setAttribute('class', 'bordercontenido2');
	//var td9 = document.createElement("TD");
	//td9.appendChild (document.createTextNode(cont9));
	
    row.appendChild(td1);
    row.appendChild(td2);
    row.appendChild(td3);
    row.appendChild(td4);
    row.appendChild(td5);
    row.appendChild(td6);
    row.appendChild(td7);
	row.appendChild(td8);
	//row.appendChild(td9);

    tbody.appendChild(row);
}

function addRowTotales(id, cont1, cont2,cont3,cont4, cont5, cont6, cont7, cont8, cont9 ){
    var tbody = document.getElementById(id).getElementsByTagName("TBODY")[0];
    var row = document.createElement("TR");
	row.id = 'rowline' +"suntotales" ;
    var td1 = document.createElement("TD");
	td1.id = 'coutaid';
	//td1.setAttribute('colspan', '3');
	td1.colSpan=3;
	td1.appendChild(document.createTextNode(cont1));
	td1.setAttribute('class', 'bordercontenido3');
    var td2 = document.createElement("TD");
	td2.appendChild (document.createTextNode(cont2));
	td2.setAttribute('class', 'bordercontenido3');
    var td3 = document.createElement("TD");
	td3.appendChild (document.createTextNode(cont3));
	td3.setAttribute('class', 'bordercontenido3');
    var td4 = document.createElement("TD");
	td4.appendChild (document.createTextNode(cont4));
	td4.setAttribute('class', 'bordercontenido3');
    var td5 = document.createElement("TD");
	td5.appendChild (document.createTextNode(cont5));
	td5.setAttribute('class', 'bordercontenido3');
    var td6 = document.createElement("TD");
	td6.appendChild (document.createTextNode(cont6));
	td6.setAttribute('class', 'bordercontenido3');
    var td7 = document.createElement("TD");
	td7.appendChild (document.createTextNode(cont7));
	td7.setAttribute('class', 'bordercontenido3');
	var td8 = document.createElement("TD");
	td8.appendChild (document.createTextNode(cont8));
	//var td9 = document.createElement("TD");
	//td9.appendChild (document.createTextNode(cont9));
	
    row.appendChild(td1);
    //row.appendChild(td2);
    //row.appendChild(td3);
    row.appendChild(td4);
    row.appendChild(td5);
    row.appendChild(td6);
    row.appendChild(td7);
	row.appendChild(td8);
	//row.appendChild(td9);

    tbody.appendChild(row);
}

// funcion de verificacion de existencia de un tag "tr, td, table, p, div" por id
function vertr(iddetr){
	tagdetr = document.getElementById('rowline' + iddetr );
	if (tagdetr){
	//alert('Existe el tr');
	return true;
	} else {
	//alert('No Existe el tr');
	return false;
	}
}




var xyz;
function constructorObjeto(idObj) {
 //Defino metodos y variables privadas que no pueden ser accesibles desde fuera del objeto
 var texto = "Texto privado";
 var metodoPrivado = function () {
  //alert(texto + "----Esto es un metodo privado que utiliza una variable privada y que se accede a el solo desde dentro del objeto")
  xyz = 'respuesta';
  return xyz;
 }
return texto;
 //metodoPrivado();
 //alert(metodoPrivado());
}
function LlamarAlObjeto(paramValue) {
 // Definimos un nuevo objeto por medio de nuestro constructor, asi en la siguiente linea podemos acceder a todos sus metodos y variables
 var miObjeto = new constructorObjeto(paramValue); // declaro el constructor
 alert(eval(miObjeto.xyz) + ' ' + paramValue);
  document.getElementById('segunda').innerHTML = 'segunda '+ miObjeto.metodoPrivado;
}





// funcion para limpiar la tabla cuando se haga otro calculo
function LimpiarTabla2(){
//tagdetr = document.getElementById('rowline1')
//if (tagdetr){
var counter;
counter = 1;
	while(vertr(counter)){
	alert('id = ' + counter);
	document.getElementById('loading').innerHTML = 'borrada tr rowline' + counter ;
	// corro los <tr>
	var y = document.getElementById('prueba'); //se obtiene la tabla 
	var Count=document.getElementById('Count'); // se obtiene el id
	counter = counter + 1;
	}
}

// funcion final para el limpiado de la tabla
function LimpiarTabla() {
var counter;
counter = 1;
var TABLE = document.getElementById("myTable");
var tablita = TABLE.rows.length ;
//alert('cantidad de rows: ' + tablita);
	while(counter < tablita){
	//alert('Contadors: ' + counter);
		TABLE.deleteRow(TABLE.rows.length-1);
		//TABLE.deleteRow(TABLE.rows.length-1);
	counter = counter + 1;
	}
}

// cargar el porcentaje del combo
function LoadTipoCredito(PorcentTea){
	//cargo el tipo de credito + el porcentaje
	alert("algo");
}

function AsigFecha(a){
FechaInicioxyz = a	;
	
	
}



function FormulaPri(){
	//rpta=exp()
	alert(rpta);
}



// funcion de redondeo
function Redond(NumFloat, precision){
        NumFloat = NumFloat + ''; //convert value to string
        precision = parseInt(precision);
		
		var NumFloat2 = typeof(NumFloat);
var Punto;
var ContadorPunto;
var TTotal;
var DcExpo = 10;
var DcExpoRpta = '';
var sw = true;
var RestDc = 0;
var NumPointsFl;
var ApPoint = 0;
Punto = NumFloat.indexOf('.');
if (Punto < 0){
	for(var i = 1; i <= precision; i++){
		DcExpoRpta = DcExpoRpta + '0';
	}
	NumFloat = NumFloat + '.' + DcExpoRpta;
	// devolvemos el tamaño de la cadena, en este caso no tiene
	// no es un decimal, por lo tanto la devolvemos tal y como esta
	TTotal = NumFloat.length + 1;
	
	
	
} else {
	ContadorPunto = 0;
			for (var Cont=0; Cont < NumFloat.length; Cont++) {
				if (NumFloat.substr(Cont, 1) == "."){
					ContadorPunto = ContadorPunto + 1;
				}
				if (ContadorPunto == 1 && sw == true){ // y que no se repita
					// grabo el numero de la aparicion de la variable
					ApPoint = Cont + 1;
					//alert(ApPoint);
					sw = false;
				}
			}		
	
	// verificamos si tiene varios puntos, si tiene mas de un punto saldra un errror
	if ( ContadorPunto > 1){
		alert('el numero tiene ' + ContadorPunto + ' puntos.');
	return 0;
	}
	//ContadorPunto = ContadorPunto + 1;
	// saber cuantos decimales tiene el float
	RestDc = NumFloat.length - ApPoint;
	//document.getElementById('sexta').innerHTML = '<b>Presicion: </b>: ' + precision;
	// por aqui se tiene que correguir haber si no tiene punto se le pondria el punto al final
	//document.getElementById('octava').innerHTML = 'Aparición de punto: ' + ApPoint;
	// algoritmo para la  presencia de un cero en la respuesta,
	// en caso de que los decimales no cubran la cantidad de decimales a mostrar
	if(RestDc < precision){
		
		// resto para saber cuantos ceros faltan
		NumPointsFl = precision - RestDc;
		// creo los ceros que falta
		for(var i = 1; i <= NumPointsFl; i++){
			DcExpoRpta = DcExpoRpta + '0';
		}
		NumFloat = NumFloat + DcExpoRpta;
		//document.getElementById('novena').innerHTML = 'numero de decimales menor que presicion: ' + NumPointsFl;
	}
	// en todo caso tiene decimales suficientes para poder cortar el decimal con la presion que se pidio
	
	// funcion de redondeo
	// devolvemos una cadena con formato de numero que nos piden
	//TTotal = ContadorPunto + ApPoint;
	TTotal = precision + ApPoint;
} // fin del else revision si tiene punto o no sentencia IF ()



// retornamos el numero
TTotal = NumFloat.substr(0, TTotal);
	return TTotal;
} // eof Redond()



// funcion para cargar el combobox
function OnLoadSimulador(){
	var TipoCredit = document.forms['formulario'].FrmTipoCredito.options.selectedIndex;
	//alert(TipoCredit)
	OpcPorntChange(TipoCredit);
}



// ***********************************************************************
// funcion de validacion de monto de prestamo 
// Mensual
function TypeMensual1(MontoCapital){
var Rpta;
	if (200 <= MontoCapital && MontoCapital <= 1000){
		Rpta = 69.59;
	} else if (1001 <= MontoCapital && MontoCapital <= 3000){
		Rpta = 60.10;
	} else if (3001 <= MontoCapital && MontoCapital <= 6000){
		Rpta = 56.45;
	} else if (6001 <= MontoCapital && MontoCapital <= 10000){
		Rpta = 52.87;
	} else if(10001 <= MontoCapital){
		Rpta = 49.36;
	} else {
		Rpta = null;
	}
return Rpta;
}

// Quincenal
function TypeQuincenal(MontoCapital){
var Rpta;
	if (200 <= MontoCapital && MontoCapital <= 15000){
		Rpta = 75.52;
	} else {
		Rpta = null;
	}
return Rpta;
}

// Quincenal
function TypeSemanal(MontoCapital){
var Rpta;
	if (200 <= MontoCapital && MontoCapital <= 15000){
		Rpta = 75.52;
	} else {
		Rpta = null;
	}
return Rpta;
}

// Diario
function TypeDiario1(MontoCapital){
var Rpta;
	if (200 <= MontoCapital && MontoCapital <= 6000){
		Rpta = 112.91;
		//alert("entre 200 y 6000")
	} else if (6001 <= MontoCapital && MontoCapital <= 15000){
		Rpta = 101.22;
		//alert('entre 6001 y 15000')
	} else {
		Rpta = null;
		alert('null')
	}
return Rpta;
}

// mejorando la casa
function TypeMejorCasa(MontoCapital){
var Rpta;
	if ( 0 <= MontoCapital ){
		Rpta = 42.58;
	} else {
		Rpta = null;
	}
return Rpta;
}

// Moneda Extranjera
function TypeMonExtranj(MontoCapital){
var Rpta;
	if (200 <= MontoCapital && MontoCapital <= 5000){
		Rpta = 34.49;
	} else if ( 5001 <= MontoCapital ){
		Rpta = 31.37;
	} else {
		Rpta = null;
	}
return Rpta;
}

// credito vehicular 
function TypeCredVehicular(MontoCapital){
var Rpta;
	if (500 <= MontoCapital ){
		Rpta = 18.00;
	} else {
		Rpta = null;
	}
return Rpta;
}

// formula de desgravamen 
function SeguroDesgravamen(DesgCapital, PorcDesgra){
	var DesGv =  new Number();
	// D = S * d
	// D = Monto a cobrar de desgravamen
	// S = Monto de la deuda (o saldo capital)
	PorcDesgra = PorcDesgra / 100;
	DesGv = DesgCapital * PorcDesgra;	
return DesGv;	
}

// ***********************************************************************


function nombretag(){
document.getElementById('loading').innerHTML = "Loading...";

}

// funciones para sacar la tir 
function CalcTIR(TempNumTIR, TempNumCouta, TempMontCuota ){
var TempSuma = 0;
	for (y=1; y <= TempNumCouta; y++){
		TempCalc = Math.pow((1 + TempNumTIR),y);
		TempCalc2 = TempMontCuota / TempCalc;
		TempSuma = TempSuma + TempCalc2;
	}
return TempSuma;
}


// funcion de la TIR
function GetTIR(Cuota, NumCuota, MonTotal){
// se tiene que usar un metodo de iteraciones 
var NumCalTIR = new Number();
var TempCalTIR = new Number();
//var NumDecimCalc = new Number();
var RptaTIR = new Number();
var DecimalCalc = new Number();
var ContDecimLoop;
var TempCalc;
var TempCalc2;
var TempSuma;
var sw;
var ww;


NumCalTIR = 0.01;
TempSuma = 0;
sw = true;
TempCalc = 0; // numero de la suma en el acto
TempCalc2 = 0; // almacena el numero de la suma anterior
ContDecimLoop = 1;
DecimalCalc = 0.1;
// hago un loop para sacar un porcentaje mas preciso
NumCalTIR = 0;
	while(ContDecimLoop <= 6){
	// rutina para el calculo
	TempCalc = 0; // numero de la suma en el acto
	TempCalc2 = 0; // almacena el numero de la suma anterior
	ww = 0;
	sw = true;
	//// calculo de los decimales, division itinerante para poder sacar el resultadobv
	DecimalCalc = DecimalCalc /10;
	DecimalCalc = DecimalCalc.toFixed(ContDecimLoop+1);
	//NumDecimCalc = DecimalCalc;
	NumCalTIR = TempCalTIR; 
		while(sw){ // tiene que ser verdadero	
			//while(ww < 11){ // tiene que ser verdadero
			// hago el calculo
			if(DecimalCalc  >= 0.1){
				//ww = 12;
				sw  = false;
			}
			
			TempSuma = CalcTIR(NumCalTIR, NumCuota, Cuota);
				if (TempCalc > MonTotal && MonTotal > TempCalc2){
					sw  = false;
				}
		
				if(sw){
					if (TempCalc2 != 0){
						TempCalc = TempCalc2; 
					}
					
					TempCalc2 = TempSuma;
					TempCalTIR = NumCalTIR - parseFloat(DecimalCalc);	
					NumCalTIR = parseFloat(NumCalTIR) + parseFloat(DecimalCalc);
				}
		// si el la suma TempCalc2 mayor que suma y  TempCalc2 es menor que suma 
		//ww++;
		} // end While
	ContDecimLoop++;
	} // end while(ContDecimLoop <= 6){

RptaTIR = parseFloat(TempCalTIR.toFixed(6));
//alert("Resultado tir: " + RptaTIR)
return RptaTIR;
//return RptaTIR.toFixed(2);
}


function RptaTirNode(BrTIR){
var CalTime = new Number();
var RptaTIR = new Number();
//alert("tae ingresada : "+BrTIR)
	FactTiempoTEA = document.getElementById('tipocredit').name;
	if (document.getElementById('tipocredit').value == 7){
		CalTime = 52;	
	} else if (document.getElementById('tipocredit').value == 30){
		CalTime = 12;
	} else if (document.getElementById('tipocredit').value == 15){
		CalTime = 24;
	} else if (document.getElementById('tipocredit').value == 1){
		CalTime = 360;
	} else {
		alert("La función no contempla otros valores !!!");	
		return 0;
	}
	//alert(BrTIR)
	RptaTIR = Math.pow(1 + parseFloat(BrTIR.toFixed(6)), CalTime) - 1;
	// dando formato
	RptaTIR = RptaTIR *100;
return RptaTIR.toFixed(2);
}


// funcion de la formula de la TEA
function CalcFormulaTEA(MontoPrestado, NumCuotas, IntersPorcnt){
	// 3 valores necesita la formula, capital nuemro de cuotas, interes expresado en decimales
	var CalculoIS = new Number();
	var NumPotencia = new Number();
	var PartSup = new Number();
	var PartInf = new Number();
	var CuotaRpta = new Number();
	var PorcentajeITF = new Number();
	CalculoIS = 1 + parseFloat(IntersPorcnt);
	NumPotencia = Math.pow(CalculoIS.toFixed(6), NumCuotas);
	// Parte superior de la formula.
	PartSup = parseFloat(IntersPorcnt) * parseFloat(NumPotencia.toFixed(6));
	// parte inferior de la formula.
	PartInf = parseFloat(NumPotencia.toFixed(6)) - 1;
	// calculo de la formula.
	//CuotaRpta = parseFloat(MontoPrestado) * (parseFloat(PartSup) / parseFloat(PartInf));
	return parseFloat(MontoPrestado) * (parseFloat(PartSup) / parseFloat(PartInf));
}

function RoundNumber(NumberTmp, Round){
	var NumTmp = new Number();
	NumTmp = NumberTmp;
return NumTmp.toFixed(Round)	;
	
}
// funcion para detectar si  la fecha ingresada esta en el mismo mes
function MismoMes(fecha1, fecha2){
	var arrFech1 =  new Array();
	var arrFech2 =  new Array();
	arrFech1 = fecha1.split("/");
	arrFech2 = fecha2.split("/");
	if (arrFech1[1] == arrFech2[1] && arrFech1[2] == arrFech2[2]){
		//alert("son iguales")
		return true;
	} else {
		//alert("son diferentes")
		return false;
	}
	
}


////////////////////////////////////////////////////////////////////////////////////
// funcion para sacar calculos y TEA Funcional
function CalculoCompleto(){
var Capital = new Number(); // monto a prestar ingresado formulario
var TmpCapital = new Number();
var Is = new Number(); // interes semanal BaseTEA(PorcAnualTEA, TiempoDias)
var IsCronograma = new Number();
var NCuotas; // numero de cuotas ingresada por formulario
var TEA; // TEA anual ingresada por formulario
var FactTiempoTEA // ingresado formulario;
var CuotaPrestamo; // respuesta
var IntPotc;
var IntPotc1;
var sw = true;
var cont1;
var saldo;
var subsaldo2;
var subsaldo3;
var FechaInicio;
var MontoITF = new Number();
var MontoITFtmp = new Number();
var MontoTotal = new Number();
var MontoTotalTmp = new Number();
var Part1;
var part2;
var IntGastos;
var IntGsPart;
var NumTIR = new Number();
var Cprestamo = new Number();
var CprestamoTmp = new Number();
var SegDesgrav = new Number();
var IsTmp = new Number();
// parametros de configuracion
var PorcentDesgrav = new Number();
PorcentDesgrav = 0.0269654;
var ValTipoCred = new Number();

// ajax
// asignando valores
Capital = document.getElementById('capital_prst').value // Capital
NCuotas = document.getElementById('ncuotas').value // Número de cuotas
ValTipoCred = document.getElementById('tipocredit').value 
//alert("nuevo number: " + ValTipoCred)
//TEA  = document.getElementById('tea').value // Tasa Efectiva Anual(TEA)

// Valido los casilleros de ingreso de datos 
	if(!IsNumeric(Capital)){
		alert('Ingrese un capital valido.');	
		document.formulario.capital.focus();
		return 0;
	}
	if(!IsNumeric(NCuotas)){
		alert('Ingrese un número de cuotas valido.');	
		document.formulario.ncoutas.focus();
		return 0;
	}
// valido lo que elige en tipo de credito 
//alert(document.forms['formulario'].FrmTipoCredito.options.selectedIndex)

var TipoCredit = document.forms['formulario'].FrmTipoCredito.options.selectedIndex;
var TipoPrest = document.forms['formulario'].FrmTipo.options.selectedIndex;
	
var TemporalTEA = new Number();	
if (TipoCredit == 0){ 
	if (TipoPrest == 0){
		if (TypeMensual1(Capital) == null){
			alert ("el monto no esta dentro de los parametros de prestamo"); 
			return 0;
		} else {
			//alert("le doy la tea: " + TypeMensual1(Capital))
			TemporalTEA = TypeMensual1(Capital);
		}
	}else if (TipoPrest == 1){
		if (TypeQuincenal(Capital) == null){
			alert ("el monto no esta dentro de los parametros de prestamo"); 
			return 0;
		} else {
			TemporalTEA = TypeQuincenal(Capital);
		}
	}else if (TipoPrest == 2){
		if (TypeSemanal(Capital) == null){
			alert ("el monto no esta dentro de los parametros de prestamo"); 
			return 0;
		} else {
			TemporalTEA = TypeSemanal(Capital);
		}
	} 
	
	
} else if (TipoCredit == 1){
	if (TipoPrest == 0){
		if (TypeDiario1(Capital) == null){
			alert ("el monto no esta dentro de los parametros de prestamo"); 
			return 0;
		} else {
			TemporalTEA = TypeDiario1(Capital);
		}
	}
	
} else if (TipoCredit == 2){
	//alert ("tipo credito: " + TipoCredit);
	if (TipoPrest == 0){
		if (TypeMensual1(Capital) == null){
			alert ("el monto no esta dentro de los parametros de prestamo"); 
			return 0;
		} else {
			//alert("le doy la tea: " + TypeMensual1(Capital))
			TemporalTEA = TypeMensual1(Capital);
		}
	} else if (TipoPrest == 1){
		if (TypeQuincenal(Capital) == null){
			alert ("el monto no esta dentro de los parametros de prestamo"); 
			return 0;
		} else {
			TemporalTEA = TypeQuincenal(Capital);
		}
	}else if (TipoPrest == 2){
		if (TypeSemanal(Capital) == null){
			alert ("el monto no esta dentro de los parametros de prestamo"); 
			return 0;
		} else {
			TemporalTEA = TypeSemanal(Capital);
		}
	}else if (TipoPrest == 3){
		if (TypeDiario1(Capital) == null){
			alert ("el monto no esta dentro de los parametros de prestamo"); 
			return 0;
		} else {
			//alert('contempla vale ')
			TemporalTEA = TypeDiario1(Capital);
		}
	}
	
} else if (TipoCredit == 3){
	if (TipoPrest == 0){
		if (TypeMensual1(Capital) == null){
			alert ("el monto no esta dentro de los parametros de prestamo"); 
			return 0;
		} else {
			//alert("le doy la tea: " + TypeMensual1(Capital))
			TemporalTEA = TypeMensual1(Capital);
		}
	}
	
} else if (TipoCredit == 4){
	if (TipoPrest == 0){
		if (TypeMensual1(Capital) == null){
			alert ("el monto no esta dentro de los parametros de prestamo"); 
			return 0;
		} else {
			//alert("le doy la tea: " + TypeMensual1(Capital))
			TemporalTEA = TypeMensual1(Capital);
		}
	}
	
} else if (TipoCredit == 5){
	if (TipoPrest == 0){
		if (TypeMensual1(Capital) == null){
			alert ("el monto no esta dentro de los parametros de prestamo"); 
			return 0;
		} else {
			//alert("le doy la tea: " + TypeMensual1(Capital))
			TemporalTEA = TypeMensual1(Capital);
		}
	}	
} else if (TipoCredit == 6){
	if (TipoPrest == 0){
		if (TypeMejorCasa(Capital) == null){
			alert ("el monto no esta dentro de los parametros de prestamo"); 
			return 0;
		} else {
			//alert("le doy la tea: " + TypeMensual1(Capital))
			TemporalTEA = TypeMejorCasa(Capital);
		}
	}	
} else if (TipoCredit == 7){
	if (TipoPrest == 0){
		if (TypeMensual1(Capital) == null){
			alert ("el monto no esta dentro de los parametros de prestamo"); 
			return 0;
		} else {
			//alert("le doy la tea: " + TypeMensual1(Capital))
			TemporalTEA = TypeMensual1(Capital);
		}
	}	
} else if (TipoCredit == 8){
	if (TipoPrest == 0){
		if (TypeCredVehicular(Capital) == null){
			alert ("el monto no esta dentro de los parametros de prestamo"); 
			return 0;
		} else {
			//alert("le doy la tea: " + TypeMensual1(Capital))
			TemporalTEA = TypeCredVehicular(Capital);
		}
	}	
	
} else if (TipoCredit == 9){
	if (TipoPrest == 0){
		if (TypeMonExtranj(Capital) == null){
			alert ("el monto no esta dentro de los parametros de prestamo"); 
			return 0;
		} else {
			//alert("le doy la tea: " + TypeMensual1(Capital))
			TemporalTEA = TypeMonExtranj(Capital);
		}
	}	
	
}
// Seguro de desgravamen /////////////////////////
TEA = TemporalTEA;
SegDesgrav = SeguroDesgravamen(Capital, PorcentDesgrav);
SegDesgrav = SegDesgrav.toFixed(2);
/////////////////////////////////////////////////
TmpCapital = Capital;
FactTiempoTEA = document.getElementById('tipocredit').value
// llamamos a la formula de conversion de porcentaje, +2 redondeamos el decimal
Is = BaseTEA(TEA, FactTiempoTEA); /* formula de conversion de porcentaje */
IsCronograma = Is.toFixed(9);
Is = Is.toFixed(9);
IsTmp = Is;
/*********************************************************/
// calculamos el monto de la cuota por medio de la formula, esto calcula el monto
// para las cuotas, esto no tiene nada que ver con la tir 
Cprestamo = CalcFormulaTEA(Capital, NCuotas, Is);
Cprestamo = Cprestamo.toFixed(2);
/// ejecucion de ITF para montos de prestamo
MontoITF = Cprestamo * 0.0007 ;
MontoTotal = parseFloat(Cprestamo) + parseFloat(MontoITF) + parseFloat(SegDesgrav);
// termino la parte que se muestra 
MontoTotal = MontoTotal.toFixed(2);


/* ==================================================== */
/* ==================================================== */
// calculo de la cuota pero para sacar el calculo de la TIR.
Is = BaseTEA(TEA, 30); // formula de conversion de porcentaje
Is = Is.toFixed(10);
CprestamoTmp = CalcFormulaTEA(Capital, NCuotas, Is);
MontoITFtmp = CprestamoTmp * 0.0007;
MontoTotalTmp = CprestamoTmp + MontoITFtmp;

NumTIR = GetTIR(MontoTotal , NCuotas, Capital);
NumTIR = RptaTirNode(NumTIR);
/* ==================================================== */
/* ==================================================== */


// fin calculo de la tea
// tabla cronograma
// saco los numeros correspondientes y procedo al acalculo
Capital = parseFloat(Capital);
saldo = Capital.toFixed(2);
subsaldo2 = 0;
LimpiarTabla();

// asignamos el varlor de la cuota al casillero
document.getElementById('cuota_prestamo2').value = MontoTotal; // valor de la cuota

var SumInteres = new Number();
var SumCapital = new Number();
var SumCuota = new Number();
var SumDresgra = new Number();
var SumCITF = new Number();
var SumTotal = new Number();
var IntsCuota = new Number();
var SumtempCapital = new Number();
var FechasTmpLine = new String();
//alert("saldo saldo " + saldo)
//***************************************************************************
_objetus = new creaAjax();  
_URL_ = "fecha.php" //URL
_objetus.open("GET", _URL_, true); //abrir procesador
_objetus.onreadystatechange=function() { //funcion controlador
	if (_objetus.readyState == 4) //control de estados del proceso
	{
		//si se da un status 200 (TERMINADO CON EXITO)
		if(_objetus.status == 200)
		{
			//procesos que se realizaran con los datos obtenidos/////////////////////////////////////////////////////////
			FechaInicioxyz = _objetus.responseText;
			////////////////////////////return FechaInicioxyz;/
			//alert(FechaInicioxyz)
			for(i=1; i <= NCuotas; i++){
				
				
				if (i == NCuotas) {
					//alert ("cuota numero 24 y la suma de capital es: " + SumCapital)
					SumtempCapital = Capital - SumCapital;
					subsaldo3 = SumtempCapital.toFixed(2);
					//alert('Desgrabamen : ' + SegDesgrav + ' -- Monto itf : ' + MontoITF + 'Subsaldo3 :' + subsaldo3 )
					// reconfiguro el interes para que la linea tenga consistencia con los datos 
					IntsCuota = MontoTotal - (parseFloat(SegDesgrav) + parseFloat(MontoITF) + parseFloat(subsaldo3))
					IntsCuota = IntsCuota.toFixed(2);
				}
				
				
				//alert("entrada de datos")
				FechasTmpLine = FechaInicioxyz;
				FechaInicioxyz = crono_dates(FechaInicioxyz, ValTipoCred); // funcion para la nueva fecha 
				//alert("proceso : " + FechaInicioxyz)
				subsaldo2 = Redond(saldo * IsCronograma, 2);
				subsaldo3 = saldo * IsTmp;
				// saco lo que queda de la cuota
				subsaldo3 = Cprestamo - subsaldo3;
				subsaldo3 = subsaldo3.toFixed(2);
				// aplico la formul;a para el seguro de desgravamen con respecto ala capital
				
				SegDesgrav = SeguroDesgravamen(saldo, PorcentDesgrav);
				SegDesgrav = SegDesgrav.toFixed(2);
				
				//alert("fechini: "+ FechaInicioxyz) 
				if ( i != 1 ){
				// si es diario o semanal, aplicamos 
				if (ValTipoCred < 30){
					// funcion para el desgravamen
					// si el mes de la fecha esta diferente , saca desgravamen, en todo caso muestra cero
					if (MismoMes(FechasTmpLine, FechaInicioxyz) == true ){
						SegDesgrav = '0.00';
					} //else {
					//} 
					//alert(ValTipoCred)
				}
				}
				
				
				// saco el monto del interes
				IntsCuota = MontoTotal - (parseFloat(SegDesgrav) + parseFloat(MontoITF) + parseFloat(subsaldo3))
				IntsCuota = IntsCuota.toFixed(2)

/*

				//alert("fechini: "+ FechaInicioxyz) 
				if ( i != 1 ){
				// si es diario o semanal, aplicamos 
				if (ValTipoCred < 30){
					// funcion para el desgravamen
					// si el mes de la fecha esta diferente , saca desgravamen, en todo caso muestra cero
					if (MismoMes(FechasTmpLine, FechaInicioxyz) == true ){
						SegDesgrav = '0.00';
					} //else {
					//} 
					//alert(ValTipoCred)
				}
				}

*/


				
				addRow('myTable', i, String(FechaInicioxyz), saldo, IntsCuota, subsaldo3, SegDesgrav, MontoITF.toFixed(2), MontoTotal);
				// nueva fecha
				// recalcular las cuotas, par alo qeu quiere roger 
				// descontamos el capital para poder hacer otro calculo
				
				//alert("fechini: "+ FechaInicioxyz) 
				if ( i != 1 ){
				// si es diario o semanal, aplicamos 
				if (ValTipoCred < 30){
					// funcion para el desgravamen
					// si el mes de la fecha esta diferente , saca desgravamen, en todo caso muestra cero
					if (MismoMes(FechasTmpLine, FechaInicioxyz) == true ){
						SegDesgrav = '0.00';
					} /*else {
					} */
					//alert(ValTipoCred)
				}
				}
				
				
				saldo = Redond(saldo - subsaldo3, 2) ;
				//FechaInicioxyz = FechaPagoCuota( FechaInicioxyz );
				// Calculos suma interes
				SumInteres = parseFloat(SumInteres) + parseFloat(subsaldo2);
				SumCapital = parseFloat(SumCapital) + parseFloat(subsaldo3);
				SumCapital = SumCapital.toFixed(2);
				SumCuota = parseFloat(SumCuota) + parseFloat(Cprestamo);
				SumCITF = parseFloat(SumCITF) + parseFloat(MontoITF.toFixed(2));
				SumDresgra = parseFloat(SumDresgra) + parseFloat(SegDesgrav);
				SumTotal = parseFloat(SumTotal) + parseFloat(MontoTotal);
			} // fin bucle for
			// totales de los formularios
			
			// validamos la suma del capital para poder redondearlo
			addRowTotales('myTable', "Totales a Pagar", " ", " ", SumInteres.toFixed(2), SumCapital, SumDresgra.toFixed(2), SumCITF.toFixed(2), SumTotal.toFixed(2));

			// aqui para ponerle datos a lo de tir y tea
		document.getElementById('InsertTEA').innerHTML = 'Tasa efectiva anual(TEA): ' + TEA.toFixed(2) + ' % '  ;
		document.getElementById('InsertTIR').innerHTML = 'Tasa del costo efectivo anual: ' + NumTIR  + ' % '  ;
		} //eof _objetus.status
	}
}
_objetus.send(null); //envío nulo de variables

}




function CalTEA_TIR(MontoCapital, Is, NunCuotas, ITF){
	var NCuotas = new Number();
	var IntPotc = new Number();
	var IntPotc1 = new Number();
	var capital
NCuotas = 12;
}

//CronoFechas_pay();