//Diversas funciones en javascript par ser usadas en el Boletin de Cotización:

// JavaScript para hacer llamadas sin post back
function nuevoAjax(){
	var xmlhttp=false;
	try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");  		// Creación del objeto ajax para navegadores diferentes a Explorer
	} catch (e) {
		try {								// o bien
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");		// Creación del objet ajax para Explorer
		} catch (E) {
			xmlhttp = false;
		}
	}

	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
		xmlhttp = new XMLHttpRequest();
	}
	return xmlhttp;
}

// cargar porcentajes segun el codigo de cotizacion
function CargaPorcentajes(objeto)
{
	
	var variable = objeto.value;
		
	if (variable != 0)
	{
		var contenedor = document.getElementById('contenedorporcenpago1');
		ajax = nuevoAjax();
		ajax.open("GET","porcentajes.asp?provin=" + variable,false);
		ajax.onreadystatechange=function()
		{
			if (ajax.readyState==4) 
			{	
				//alert(ajax.responseText);
				contenedor.innerHTML = ajax.responseText;
				
			}
		}
		ajax.send(null);
	}
	else
	{
		alert('Debe eligir un código');
	}
}

//Función que obtiene los dígitos de control del código de cuenta cotización:

function getCtrlDigts (prv, num)
{
//document.write ("Parámetros: "+prv+", "+num+"<BR>");
  var multiplier = ((num / 1000000) < 1) ? 1000000 : 10000000; //Si el nº empieza por 
  tmp0 = (prv * multiplier) + (num * 1.0);//Provincia más patronal.Lo del num es cutre pero vale para pasar de string a num.
  tmp1 = tmp0 / 97; //Dividimos entre 97
  tmp1 = parseInt (tmp1); //Pasamos el resultado a entero.
  tmp1 *= 97; //Lo multiplicamos por 97
  var resTmp = tmp0 - tmp1;
  //var resStr = new String (resTmp);
  var res = ((resTmp / 10) < 1) ? "0" + resTmp : resTmp ;
  return res;
}

//Función que prepara el formulario:
function setupForm ()
{
	
	if (! document.form1.pagoAtrasado.checked)
	{
	
		document.form1.formaPago[0].disabled = true; 
		document.form1.formaPago[1].disabled = true;
		//document.form1.pagoDesdeMes.disabled = true; //Deshabilitamso las fechas.
		//document.form1.pagoDesdeAnno.disabled = true;
		//document.form1.pagoHastaMes.disabled = true;
		//document.form1.pagoHastaAnno.disabled = true;
		document.form1.pagoAtrasado.checked=true;
	}
	return true;
}

//Función que actualiza el campo de dígitos de control del CCC:
function updateCtrlDigts () 
{
	if (isNaN (document.form1.ccc2.value)) //Controlamos los datos antes de evaluar.
	{
		alert ("El Código de Cuenta Cotización SÓLO debe contener números");
		document.form1.ccc2.focus (); //Damos el foco al campo ccc2
		document.form1.ccc2.select ();
		return -1;
	}
	if (document.form1.ccc2.value == "")
	{
		alert ("El Código de Cuenta Cotización NO puede tener campos vacios");
		document.form1.ccc2.focus (); //Damos el foco al campo ccc2
		document.form1.ccc2.select ();
		return -1;
	}
	if (document.form1.ccc2.value.length < 7)
	{
		alert ("Se deben indicar 7 dígitos, rellenar con CEROS si es necesario");
		document.form1.ccc2.focus (); //Damos el foco al campo ccc2
		document.form1.ccc2.select ();
		return -1;
	}
	if (document.form1.ccc1.value == 0)
	{
		alert ("Debe rellenar los dígitos de su provincia correctamente");
		document.form1.ccc1.focus (); //Damos el foco al campo ccc2
		//document.form1.ccc2.select ();
		return -1;
	}
	var ctrl = getCtrlDigts(document.form1.ccc1.options[document.form1.ccc1.selectedIndex].value, document.form1.ccc2.value);
	document.form1.ccc3.value=ctrl;
	//document.form1.intBaseATEP.focus (); //Pasamos al siguiente campo.
document.form1.Codigo_Cuenta_Cotizacion.value= document.form1.ccc1.value + document.form1.ccc2.value + document.form1.ccc3.value;
	return true;
}

//Función que verifica si hay que actualizar los dígitos de control alcambiar los dígitos de
//provincia
function updateProvDig ()
{
	if (document.form1.ccc2.value != "")
	{
		var ctrl = getCtrlDigts(document.form1.ccc1.options[document.form1.ccc1.selectedIndex].value, document.form1.ccc2.value);
		document.form1.ccc3.value=ctrl;
		document.form1.intBaseATEP.focus (); //Pasamos al siguiente campo.
		return true;
	}
	else
		return true;
}

//Función que adecua el periodo de meses de pago al pago anual
function updateAnualMonths ()
{
	var date = new Date (); //Fecha actual
	var previousAnno = date.getFullYear() - 1;
	var annoIndex = 0;
	if (previousAnno == 2001) //Seleccionamos el año.
		annoIndex = 1;
	else if (previousAnno == 2002)
		annoIndex = 2;
	else if (previousAnno == 2003)
		annoIndex = 3;
	else if (previousAnno == 2004)
		annoIndex = 4;
	else
		return -1;
	if (! document.form1.pagoAtrasado.checked) //Si el pago no es atrasado.
	{
		document.form1.pagoDesdeMes.options[0].selected = true; //Ponemos el mes a Enero.
		document.form1.pagoDesdeAnno.options[annoIndex].selected = true; //Año al anterior.
		document.form1.pagoHastaMes.options[11].selected = true; //Mes a Diciembre.
		document.form1.pagoHastaAnno.options[annoIndex].selected = true;
		document.form1.introducirDatos.focus ();
		return true;
	}
	return true;
}
	
//Función que adecua el periodo de meses de pago al pago mensual
function updateMensualMonths ()
{
	var date = new Date (); //Fecha actual
	var anno = date.getFullYear();
	var annoIndex = 0;
	if (anno == 2001) //Seleccionamos el año.
		annoIndex = 1;
	else if (anno == 2002)
		annoIndex = 2;
	else if (anno == 2003)
		annoIndex = 3;
	else if (anno == 2004)
		annoIndex = 4;
	else
		return -1;
	if (! document.form1.pagoAtrasado.checked) //Si el pago no es atrasado.
	{
		previousMonth = date.getMonth() - 1; //Mes anterior
		if (previousMonth < 0)  //Si estamso en enero lo ponemos a diciembre
		{
			previousMonth = 11;
			annoIndex--; //Será el año anterior.
		}
		document.form1.pagoDesdeMes.options[previousMonth].selected = true; //Ponemos el mes a Enero.
		document.form1.pagoDesdeAnno.options[annoIndex].selected = true; //Año al anterior.
		document.form1.pagoHastaMes.options[previousMonth].selected = true; 
		document.form1.pagoHastaAnno.options[annoIndex].selected = true;
		document.form1.introducirDatos.focus ();
		return true;
	}
	return true;
}
//Función que actualiza campos y focos en caso de elegir pago atrasado:
function updateTipoPago ()
{
	if (document.form1.pagoAtrasado.checked)
	{
		document.form1.formaPago[0].disabled = true; //Desabilitamos las casillas de pago
		document.form1.formaPago[1].disabled = true;
		document.form1.pagoDesdeMes.disabled = false;//Habilitamos las fechas.
		document.form1.pagoDesdeAnno.disabled = false;
		document.form1.pagoHastaMes.disabled = false;
		document.form1.pagoHastaAnno.disabled = false;
		document.form1.pagoDesdeMes.focus ();
	}
	else
	{
		document.form1.formaPago[0].disabled = false; //Casillas pago
		document.form1.formaPago[1].disabled = false;
		document.form1.formaPago[0].checked = false;
		document.form1.formaPago[1].checked = true;
		document.form1.pagoDesdeMes.disabled = false; //Fechas
		document.form1.pagoDesdeAnno.disabled = false;
		document.form1.pagoHastaMes.disabled = false;
		document.form1.pagoHastaAnno.disabled = false;
	}
	//this.updateAnualMonths(); 
	this.updateMensualMonths();
	return true;
}
//Funciónes que controlan si se puede tener el foco de las fechas:
function pagoDesdeMesFoco ()
{
	if (!document.form1.pagoAtrasado.checked)
		document.form1.pagoDesdeMes.blur();
}
function pagoDesdeAnnoFoco ()
{
	if (!document.form1.pagoAtrasado.checked)
		document.form1.pagoDesdeAnno.blur();
}
function pagoHastaMesFoco ()
{
	if (!document.form1.pagoAtrasado.checked)
		document.form1.pagoHastaMes.blur();
}
function pagoHastaAnnoFoco ()
{
	if (!document.form1.pagoAtrasado.checked)
		document.form1.pagoHastaAnno.blur();
}


//Funciones que comprueban que determinados campos estén correctamente rellenados:
function ctrlcnae ()
{
	if ((document.form1.cnae.value != "") && (isNaN (document.form1.cnae.value)))
	{
		alert ("El valor  de C.N.A.E sólo puede contener números");
		document.form1.cnae.focus ();
		document.form1.cnae.select ();
		return true;
	}
	return true;
}
function ctrlcp () 
{
	if (isNaN (document.form1.cp.value))
	{
		alert ("El Código Postal sólo puede contener números");
		document.form1.cp.focus();
		document.form1.cp.select ();
		return true;
	}
	return true;
}
function ctrlnif ()
{
	if (isNaN (document.form1.nif.value))
	{
		alert ("El NIF sólo puede estar compuesto por números");
		document.form1.nif.focus ();
		document.form1.nif.select ();
		return true;
	}
	return true;
}
function ctrlnifl ()
{
	if (! isNaN (document.form1.nifl.value))
	{
		alert ("El NIF sólo puede estar compuesto por una letra");
		document.form1.nifl.focus ();
		document.form1.nifl.select ();
		return true;
	}
	return true;
}
function ctrlnTrabajadores ()
{
	if (isNaN (document.form1.nTrabajadores.value))
	{
		alert ("No se admite texto en el nº de trabajadores");
		document.form1.nTrabajadores.focus ();
		document.form1.nTrabajadores.select ();
		return true;
	}
	return true;
}
function ctrlintBaseATEP ()
{
	if (isNaN (document.form1.intBaseATEP.value))
	{
		alert ("No se admite texto en la Base de A.T y E.P");
		document.form1.intBaseATEP.focus ();
		document.form1.intBaseATEP.select ();
		return true;
	}
	return true;
}
function ctrldecBaseATEP ()
{
	if (isNaN (document.form1.decBaseATEP.value))
	{
		alert ("No se admite texto en la Base de A.T y E.P");
		document.form1.decBaseATEP.focus ();
		document.form1.decBaseATEP.select ();
		return true;
	}
	if (document.form1.decBaseATEP.value=="")
	{
		document.form1.decBaseATEP.value=00;
	}
	return true;
}	

//Función que controla el envio del formulario:
function sendForm ()
{
	var errors = "";
	var errorFinded = false;
	var field = null;

	//Habilitamos campos con las fechas:
	document.form1.pagoDesdeMes.disabled = false;
	document.form1.pagoDesdeAnno.disabled = false;
	document.form1.pagoHastaMes.disabled = false;
	document.form1.pagoHastaAnno.disabled = false;
	
	//Comprobamos errores en todos los campos:
	if (document.form1.nombreEmpresa.value == "")
	{
		errors += "-Debe indicar el nombre de la empresa \n";
		if (!errorFinded) {field = document.form1.nombreEmpresa; errorFinded = true;}
	}
	if (document.form1.domicilioEmpresa.value == "")
	{
		errors += "-Debe indicar el domicilio de la empresa \n";
		if (!errorFinded) {field = document.form1.domicilioEmpresa; errorFinded = true;}
	}
	if (document.form1.atep.value == "")
	{
		errors += "-La entidad A.t y E.P no se indicó \n";
		if (!errorFinded) {field = document.form1.atep; errorFinded = true;}
	}
	if (document.form1.provincia.value == "")
	{
		errors += "-Debe indicar la provincia donde esté situada su empresa \n";
		if (!errorFinded) {field = document.form1.provincia; errorFinded = true;}
	}
	if (document.form1.localidad.value == "")
	{
		errors += "-Debe indicar la localidad donde este situada su empresa \n";
		if (!errorFinded) {field = document.form1.localidad; errorFinded = true;}
	}
	if (document.form1.cp.value == "")
	{
		errors += "-El Código Postal de su empresa no fue indicado \n";
		if (!errorFinded) {field = document.form1.cp; errorFinded = true;}
	}
	if (document.form1.nif.value == "")
	{
		errors += "-No indicó el NIF de su empresa \n";
		if (!errorFinded) {field = document.form1.nif; errorFinded = true;}
	}
	if (document.form1.ccc1.selectedIndex == 0)
	{
		errors += "-Ha de seleccionar el número de provincia que le corresponda \n\ten su Código de Cuenta Cotización \n";
		if (!errorFinded) {field = document.form1.ccc1; errorFinded = true;}
	}
	if (document.form1.ccc2.value == "")
	{
		errors += "-No se indicaron los dígitos de su Código de Cuenta Cotización \n";
		if (!errorFinded) {field = document.form1.ccc2; errorFinded = true;}
	}
	if (document.form1.ccc3.value != getCtrlDigts (document.form1.ccc1.options[document.form1.ccc1.selectedIndex].value, document.form1.ccc2.value))
	{
		errors += "-El Código Cuenta Cotización es incorrecto \n";
		if (!errorFinded) {field = document.form1.ccc3; errorFinded = true;}
	}
	if (document.form1.intBaseATEP.value == "")
	{
		errors += "-La base de A.T y E.P no rellenó correctamente \n";
		if (!errorFinded) {field = document.form1.intBaseATEP; errorFinded = true;}
	}

	// comprobar que la fecha desde sea mayor que la fecha hasta solo cuando el pago sea atrasado
	// 
	if (document.form1.pagoAtrasado.checked)
	{
		if (document.form1.pagoHastaAnno.selectedIndex < document.form1.pagoDesdeAnno.selectedIndex) 
		{
			errors += "-La fecha desde debe ser mayor o igual a la fecha hasta \n";
			if (!errorFinded) {field = document.form1.pagoDesdeMes; errorFinded = true;}
		}
		else 
		{
			if (document.form1.pagoHastaAnno.selectedIndex == document.form1.pagoDesdeAnno.selectedIndex) 
			{
				if (document.form1.pagoHastaMes.selectedIndex < document.form1.pagoDesdeMes.selectedIndex) 
				{
					errors += "-La fecha desde debe ser mayor o igual a la fecha hasta \n";
					if (!errorFinded) {field = document.form1.pagoDesdeMes; errorFinded = true;}
				}
			}
		}	

	}

	//if (document.form1.nTrabajadores.value == "")
	//{
	//	errors += "-No indicó el número de trabajdores de su empresa \n";
	//	if (!errorFinded) {field = document.form1.nTrabajadores; errorFinded = true;}
	//}
	if (errorFinded) //Si hubo errores lo indicamos y pasamos el foco el primero
	{
		alert ("El boletin no pudo generarse debido a los siguientes errores:\n" + errors);

		field.focus();
		if (!field.name == "pagoDesdeMes"){field.select ();}
	}
	else //Si no mandamos el formulario
	{
		
		// si hay mas de un porcentaje le avisamos para que sepa el porcentaje que va a pagar
		if (document.forms[0].porcenpago1.options.length > 1) {
		if (!confirm("El porcentaje de pago que se aplicará sobre la base de A.T. y E.P es de un " + 
					document.forms[0].porcenpago1.options[document.forms[0].porcenpago1.selectedIndex].text +
					" % \n \n                                       ¿ Desea continuar ?"))
					return false;
		}

		document.form1.submit ();
	} 
	return true;
}

//Función que espera a que el usuario de el visto bueno al formulario, si lo hace
//le muestra una ventana para imprimir:
function printBoletin ()
{
	//var res = confirm ("Por favor compruebe si el Boletín generado es correcto");
	if (confirm ("Por favor compruebe si el Boletín generado es correcto"))
	{
		alert ("Se imprimirán versiones del Boletín para la Empresa y la Entidad Bancaria.\nCORTAR POR LA LÍNEA PUNTEADA");
		window.print ();
	}
	else
	{
		history.go(-1);
	}
	return true;
}

	


		


	






  

