var GastEscPtmoImporte="10000000"
var GastEscVivImporte="15000000"
var GastEscComApertura="0.00"

var elForm;
var decimales=0;

//elForm.importe.value=presenta(nImpPmoFor,decimales);
//elForm.importe2.value=presenta(nImpComEsc,decimales);
//elForm.comapert.value=presenta(comisionApertura,2);

function ValoresPorDefecto() {
	elForm=((navigator.appName.toLowerCase() == "netscape")?document.layers['elformul'].document.forms[1]:document.forms[1])
	elForm.importe.value=presenta(GastEscPtmoImporte,decimales);
	elForm.importe2.value=presenta(GastEscVivImporte,decimales);
	elForm.comapert.value=presenta(GastEscComApertura,decimales);
	elForm.moneda[0].checked="1";		//ESP
	elForm.antig[0].checked="1";		//NUEVA
	LlenaProvincias();
	HazCalculo();
}

function LlenaProvincias() {
for (var i=0; i <provincias.length ; i++) {
	elForm.provincia.options[i] = new Option(provincias[i][provinciasProvincia], provincias[i][provinciasProvincia]);
	if (i==0) {elForm.provincia.options[i].selected=true	}
}
}

function SumaAranceles(importe,tipoGasto,tipoEscritura,moneda) {
var gasto=0.0;
var finAnt=0.0;
var impoFin=0.0;
var impoIni=0.0;

condicion="(aranceles[i][arancelesTipoAran]== '"+tipoGasto+"' && aranceles[i][arancelesMoneda]== '"+moneda+"')";
SubAranceles=SelectArray(aranceles, condicion) ;

for (i=0; i<SubAranceles.length; i++) {
	impoFin=parseFloat(SubAranceles[i][arancelesImpoFin]);
	if (importe>=impoFin) {
		gasto=gasto+(SubAranceles[i][arancelesTipoIncr]=="F"?parseFloat(SubAranceles[i][arancelesIncremen]):parseFloat(SubAranceles[i][arancelesIncremen])*(impoFin-finAnt)/100.0);
		finAnt=impoFin;
	} else {
		impoIni=parseFloat(SubAranceles[i][arancelesImpoIni]);
		if (importe>impoIni){
			gasto=gasto+(SubAranceles[i][arancelesTipoIncr]=="F"?parseFloat(SubAranceles[i][arancelesIncremen]):parseFloat(SubAranceles[i][arancelesIncremen])*(importe-finAnt)/100.0);
		}
	}
}
return gasto
}

function SumaGastos(gasto,importe,tipoGasto,tipoEscritura,moneda) {
var auxgasto=0.0;
condicion="(tabgas[i][tabgasCodigo]== '"+tipoEscritura+"' && tabgas[i][tabgasMoneda]== '"+moneda+"')";
SubGastos=SelectArray(tabgas,condicion) ;	// debería devolver sólo una fila o ninguna

if (SubGastos.length==0) {
	auxGasto=-999999999;
} else {
	switch (tipoGasto) {
		case "N":
			auxGasto=(gasto*parseFloat(SubGastos[0][tabgasPorcNota]))+parseFloat(SubGastos[0][tabgasFijoNota]);
			auxGasto=auxGasto+(auxGasto*parseFloat(SubGastos[0][tabgasIvaNota]/100.0));
			break;
		case "R":
			auxGasto=(gasto*SubGastos[0][tabgasPorcRegi])+parseFloat(SubGastos[0][tabgasFijoRegi]);
			auxGasto=auxGasto+(auxGasto*parseFloat(SubGastos[0][tabgasIvaRegi])/100.0);
			break;
		case "G":
			auxGasto=parseFloat(SubGastos[0][tabgasGestoria]);
			break;
	}
}

return auxGasto;
}

function obtenerGastos(importe, tipoGasto, tipoEscritura, moneda,laProvincia) {
var gasto=0.0;
if ("NRT".indexOf(tipoGasto)>=0) {
	gasto=SumaAranceles(importe, tipoGasto, tipoEscritura, moneda);
}
if ("NRG".indexOf(tipoGasto)>=0) {
	gasto=SumaGastos(gasto,importe, tipoGasto, tipoEscritura, moneda);
}
if ("Lerida,Gerona,Barcelona,Tarragona".indexOf(laProvincia)>=0) {
	gasto=gasto+(moneda=="P"?10000.0:10000.0/166.386)
}
return gasto;
}

function HazCalculo() {

nResHipo=1.627;

unaProvincia=elForm.provincia[elForm.provincia.selectedIndex].value;
nImpPmoFor=parseReal(elForm.importe.value);
nImpComEsc=parseReal(elForm.importe2.value);

if ((nImpPmoFor==0) || (nImpComEsc==0)) {
	 impComAper=0;
	 nActJurHip=0;
	 nIva=0;
	 nGasTasaci=0;
	 nGasNotHip=0;
	 nGasRegHip=0;
	 nGasGesHip=0;
	 nTotGasFor=0;
	 nGasNotCom=0;
	 nGasRegCom=0;
	 nGasGesCom=0;
	 nTotGasEsc=0;
	 nGasTot=0;
	nActJurEsc=0;
	nImpTraPat=0;

	alert("Debe rellenar los campos de Importe del Prestamo y de la Vivienda.");
} else {

cTipoVnda=(elForm.antig[0].checked?"nueva":"usada")
cMoneda=(elForm.moneda[0].checked?"P":"E")
comisionApertura=parseReal(elForm.comapert.value);

iProv=BuscaClave(provincias,provinciasProvincia,unaProvincia);
impComAper=nImpPmoFor*comisionApertura/100.0;
if (cTipoVnda=="nueva") {
	nIva=nImpComEsc*parseFloat(provincias[iProv][provinciasIva])/100;
	nActJurEsc=nImpComEsc*parseFloat(provincias[iProv][provinciasImpuAcJu])/100;
	nImpTraPat=0.0
} else { 
	nIva=0.0;
	nActJurEsc=0.0;
	nImpTraPat=nImpComEsc*parseFloat(provincias[iProv][provinciasItp])/100;
 }

nActJurHip=nImpPmoFor*nResHipo*parseFloat(provincias[iProv][provinciasImpuAcJu])/100;
nGasNotCom=obtenerGastos(nImpComEsc,"N","CV",cMoneda,unaProvincia);
nGasRegCom=obtenerGastos(nImpComEsc,"R","CV",cMoneda,unaProvincia);
nGasGesCom=obtenerGastos(nImpComEsc,"G","CV",cMoneda,unaProvincia);	
nGasTasaci=obtenerGastos(nImpPmoFor,"T","HP",cMoneda,unaProvincia);
nGasNotHip=obtenerGastos(nImpPmoFor*nResHipo,"N","HP",cMoneda,unaProvincia);
nGasRegHip=obtenerGastos(nImpPmoFor*nResHipo,"R","HP",cMoneda,unaProvincia);
nGasGesHip=obtenerGastos(0.0,"G","HP",cMoneda,unaProvincia);

decimales=(cMoneda=="P"?0:2)				//decimales de la moneda en curso
nActJurHip = roundOff(nActJurHip,decimales);	// se redondean los parciales
nGasTasaci = roundOff(nGasTasaci,decimales);
nGasNotHip = roundOff(nGasNotHip,decimales);
nGasGesHip = roundOff(nGasGesHip,decimales);
nGasRegHip = roundOff(nGasRegHip,decimales);
impComAper = roundOff(impComAper,decimales);
nGasNotCom = roundOff(nGasNotCom,decimales);
nGasRegCom = roundOff(nGasRegCom,decimales);
nIva = roundOff(nIva,decimales);
nGasGesCom = roundOff(nGasGesCom,decimales);
nActJurEsc = roundOff(nActJurEsc,decimales);
nImpTraPat = roundOff(nImpTraPat,decimales);

// se suma y redondea la suma
nTotGasEsc=roundOff(nGasNotCom+nGasRegCom+nGasGesCom+nIva+nActJurEsc+nImpTraPat,decimales);
nTotGasFor=roundOff(nGasTasaci+nGasNotHip+nGasRegHip+nGasGesHip+nActJurHip+impComAper,decimales);
nGasTot=roundOff(nTotGasEsc+nTotGasFor,decimales);
}

if (cTipoVnda=="nueva") {
	elForm.tasa32.value=presenta(nActJurEsc+nImpTraPat,decimales);
	elForm.tasa22.value=presenta(0,decimales);
} else {
	elForm.tasa32.value=presenta(0,decimales);
	elForm.tasa22.value=presenta(nActJurEsc+nImpTraPat,decimales); 
}

elForm.tasa2.value=presenta(impComAper,decimales);	
elForm.tasa3.value=presenta(nActJurHip,decimales);	
elForm.tasa8.value=presenta(nIva,decimales);		
elForm.tasa.value=presenta(nGasTasaci,decimales);
elForm.tasa4.value=presenta(nGasNotHip,decimales);
elForm.tasa5.value=presenta(nGasRegHip,decimales);
elForm.tasa6.value=presenta(nGasGesHip,decimales);
elForm.tasa7.value=presenta(nTotGasFor,decimales);
elForm.tasa42.value=presenta(nGasNotCom,decimales);
elForm.tasa52.value=presenta(nGasRegCom,decimales);
elForm.tasa62.value=presenta(nGasGesCom,decimales);
elForm.tasa72.value=presenta(nTotGasEsc,decimales);
elForm.sumtotal.value=presenta(nGasTot,decimales);

elForm.importe.value=presenta(nImpPmoFor,decimales);
elForm.importe2.value=presenta(nImpComEsc,decimales);
elForm.comapert.value=presenta(comisionApertura,2);
}