function roundNumber(number,numDec)
{
	var roundNum=number*(Math.pow(10,numDec));
	roundNum=Math.round(roundNum);
	var returnNum=roundNum/(Math.pow(10,numDec));
	return returnNum;
}

function addCommas(sValue)
{
var sRegExp = new RegExp('(-?[0-9]+)([0-9]{3})');
	while(sRegExp.test(sValue)) {
	sValue = sValue.replace(sRegExp, '$1.$2');
	}
return sValue;
} 

function formato(num,dec)
{
	num = num + "";
	if(dec==1)
	{
		num = num + ".00";
	}
	else
	{
		var subcadena = num.substr(num.length-2,2);
		if(subcadena.indexOf(".")>=0)
		{
			num = num + "0";
		}
	}
	
//	if(num.length < 8) num = num +"\t"; 

	return num;
}

function calculasueldo(cual)
{
	bruto		= document.PREST1_FORM.BRUTO.value;
	pagas 		= document.PREST1_FORM.PAGAS.value;
	obj_civil 	= document.PREST1_FORM.CIVIL.value;
	sel_civil 	= document.PREST1_FORM.CIVIL.selectedIndex
	hijos		= document.PREST1_FORM.HIJOS.value;
	
	if (cual=="bruto") { 
		netas=0; 
	} else if (cual=="pagas") {	netas=0; } else if (cual=="hijos") {
		netas=0; } else if (cual=="civil") { netas=0; }
		
	if (bruto!=0 && pagas!=0 && netas==0 && bruto >= 5950)
	{
		ss=bruto*0.064;
		
		if (ss > 1882) { ss=1882; }
		//-----------
		if ( bruto <= 8113.66) {
			x=3005.06;
		} else if ( bruto > 8113.66 && bruto <= 12020.24) {
			x=3005.06 - (bruto - 8113.67);
		} else {
			x=2253.80;
		}
		//-----------
		if ( sel_civil==0 && hijos > 0) { retcivil=5409.11; } else { retcivil=3305.57; }
		//-----------
		baseretencion=bruto-ss-x-retcivil;
			
		if ( baseretencion < 3606.07)
			cuotaretencion= baseretencion * 0.18;
		else if ( baseretencion < 12621.25)
			cuotaretencion= 649.09 + (baseretencion - 3606.07) * 0.24;
		else if ( baseretencion < 24641.50)
			cuotaretencion = 2812.74 + (baseretencion - 12621.25) * 0.283;
		else if ( baseretencion < 39666.80)
			cuotaretencion = 6214.47 + (baseretencion - 24641.50) * 0.372;
		else if ( baseretencion < 66111.33)
			cuotaretencion = 11803.88 + (baseretencion - 39666.80) * 0.45;
		else
			cuotaretencion = 23703.92 + (baseretencion - 66111.33) * 0.48;
		//-----------
		var irpf1 = roundNumber((cuotaretencion * 100 / bruto), 2);
		var retenciontotal = (bruto*irpf1) / 100;

		if (hijos >0)
		{
			if (hijos <= 2) { retencionhijos = 1202.02 * hijos; } else { retencionhijos = 1803.04 * hijos; }
			//-----------
			if (retencionhijos > retenciontotal) { cuotaretencion = cuotaretencion - retenciontotal; } else {
				cuotaretencion = cuotaretencion - retencionhijos; }
			//-----------
		}
		
		irpf=roundNumber((cuotaretencion*100/bruto),2);
		neta=roundNumber (((bruto/pagas)-(bruto/pagas*irpf/100)-(ss/12)),0);

		neta 	= formato(Math.round(neta),0);
		neta 	= addCommas(neta);
		
		document.PREST1_FORM.SNETO.value=neta;
		
		if (pagas >12) { extra=roundNumber (((bruto/pagas)-(bruto/pagas*irpf/100)),0); }

		if (pagas==12) { extra=0; }
		
		if (pagas <12)
		{
			alert ("Debe haber como m&iacute;nimo 12 mensualidades de pagas");
			pagas=0;
			document.PREST1_FORM.PAGAS.value=pagas;
			extra=0;
			document.PREST1_FORM.EXTRA.value.value=extra;
			neta=0;
			document.PREST1_FORM.SNETO.value=neta;
		}


		extra 	= formato(Math.round(extra),0);
		extra 	= addCommas(extra);
		document.PREST1_FORM.PENETO.value=extra;
	}
	
	if (bruto < 5950 && bruto!=0)
	{
		alert ("Importe Bruto erroneo, el sueldo m&iacute;nimo interprofesional es de 5.950 &euro;.");
		bruto=0;
		document.PREST1_FORM.SNETO.value=bruto;
	}
	
	if (cual==" ") {
		alert("Falta datos, al menos de debe introducir el sueldo bruto y el n&uacute;mero de pagas.");
	}
}

document.getElementById("formulario_calculadora").innerHTML="<form name='PREST1_FORM'><p>SUELDO BRUTO ANUAL <input name='BRUTO' type='text' class='text2' id='BRUTO' size='6' tabindex='1' onChange='calculasueldo(\"bruto\");'/>&euro;</p><p>N&Uacute;MERO DE PAGAS: <input name='PAGAS' type='text' id='PAGAS' size='6' tabindex='2'onChange='calculasueldo(\"pagas\");' /></p><p>ESTADO CIVIL <select name='CIVIL' class='ftexto' id='CIVIL' tabindex='4' onChange='calculasueldo(\"civil\");'/></p><option value='1'>CASADO/A</option><option value='2'>SOLTERO/A</option></select><br><p>N&Uacute;MERO DE HIJOS: <input name='HIJOS' type='text' id='HIJOS' size='6' tabindex='2' onChange='calculasueldo('hijos');'/></p><p> <input name='button' type='button' class='texto' onClick='calculasueldo();' value='Calcular'/></p><p>SUELDO NETO MENSUAL: <input name='SNETO' type='text' id='SNETO' size='6'  readonly='readonly' tabindex='5' />&euro;</p><p>PAGAS EXTRAS NETAS: <input name='PENETO' type='text' id='PENETO' size='6' readonly='readonly' tabindex='5' />&euro;</p></form>";