/* Copyright by Xplora comunicació visual www.xploravisual.com */

function tratarError(){  
   return true;  
}  

//window.onerror = tratarError;

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

function MM_jumpMenu2(targ,selObj,restore){ //v3.0
	// Asistencia -> Provincias
	if (selObj.options[selObj.selectedIndex].value=="#") {
	  alert ('En esta provincia actualmente no hay disponible servicio oficial de asistencia Pasquali.\nDisculpe las molestias que este pueda causarle.');
	  return false;
	}
	eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
	if (restore) selObj.selectedIndex=0;
}

function validar (formulario) {
	// Formulario de contacto
	if ( formulario.nombre.value == "" ) {
		Error = "Atención:\n"
			+ "No ha completado el campo 'Nombre y apellidos' del formulario.\n"
			+ "Este campo es necesario para poder atenderle correctamente.\n\n"
			+ "Por favor, revise el formulario.\n\n";
		alert(Error);
		formulario.nombre.focus();
		return false;
	}
	
	if ( formulario.trato.value == "" ) {
		Error = "Atención:\n"
			+ "No ha completado el campo '¿Empresa o particular?' del formulario.\n"
			+ "Este campo es necesario para poder atenderle correctamente.\n\n"
			+ "Por favor, revise el formulario.\n\n";
		alert(Error);
		formulario.trato.focus();
		return false;
	}

	if ( formulario.trato.value == "Me dirigo como empresa" ) {
		if ( formulario.empresa.value == "" ) {
			Error = "Atención:\n"
				+ "No ha completado el campo 'Nombre de la empresa' del formulario.\n"
				+ "Este campo es necesario para poder atenderle correctamente.\n\n"
				+ "Por favor, revise el formulario.\n\n";
			alert(Error);
			formulario.empresa.focus();
			return false;
		}
		if ( formulario.cargo.value == "" ) {
			Error = "Atención:\n"
				+ "No ha completado el campo 'Cargo en la empresa' del formulario.\n"
				+ "Este campo es necesario para poder atenderle correctamente.\n\n"
				+ "Por favor, revise el formulario.\n\n";
			alert(Error);
			formulario.cargo.focus();
			return false;
		}
	}

	if ( formulario.poblacion.value == "" ) {
		Error = "Atención:\n"
			+ "No ha completado el campo 'Población' del formulario.\n"
			+ "Este campo es necesario para poder atenderle correctamente.\n\n"
			+ "Por favor, revise el formulario.\n\n";
		alert(Error);
		formulario.poblacion.focus();
		return false;
	}

	if ( formulario.telefono.value == "" ) {
		Error = "Atención:\n"
			+ "No ha completado el campo 'Teléfono' del formulario.\n"
			+ "Este campo es necesario para poder atenderle correctamente.\n\n"
			+ "Por favor, revise el formulario.\n\n";
		alert(Error);
		formulario.telefono.focus();
		return false;
	}

	if ( (!formulario.viatelefono.checked) && (!formulario.viafax.checked) && (!formulario.viaemail.checked) ) {
		Error = "Atención:\n"
			+ "Debe seleccionar la vía en la que desea ser contactado.\n"
			+ "Este campo es necesario para poder atenderle correctamente.\n\n"
			+ "Por favor, revise el formulario.\n\n";
		alert(Error);
		formulario.viatelefono.focus();
		return false;
	}

	if (formulario.viafax.checked) {
		if ( formulario.fax.value == "" ) {
			Error = "Atención:\n"
				+ "Usted ha seleccionado ser contactado vía Fax, pero no ha completado \nel campo 'Fax' del formulario.\n"
				+ "Este campo es necesario para poder atenderle correctamente.\n\n"
				+ "Por favor, revise el formulario.\n\n";
			alert(Error);
			formulario.fax.focus();
			return false;
		}
	}

	if (formulario.viaemail.checked) {
		if ( formulario.email.value == "" ) {
			Error = "Atención:\n"
				+ "Usted ha seleccionado ser contactado vía e-mail, pero no ha completado \nel campo 'E-mail' del formulario.\n"
				+ "Este campo es necesario para poder atenderle correctamente.\n\n"
				+ "Por favor, revise el formulario.\n\n";
			alert(Error);
			formulario.email.focus();
			return false;
		}
	}

	if ( formulario.asunto.value == "" ) {
		Error = "Atención:\n"
			+ "No ha completado el campo 'Asunto' del formulario.\n"
			+ "Este campo es necesario para poder atenderle correctamente.\n\n"
			+ "Por favor, revise el formulario.\n\n";
		alert(Error);
		formulario.asunto.focus();
		return false;
	}

	if (!formulario.acepto.checked) {
		Error = "Atención:\n"
			+ "Debe aceptar nuestra política de privacidad para contactarnos.\n"
			+ "Este campo es necesario para poder atenderle correctamente.\n\n"
			+ "Por favor, revise el formulario.\n\n";
		alert(Error);
		formulario.acepto.focus();
		return false;
	}

	return true;
}

function validar2 (formulario) { 
	// Area distribuidores -> Log in
	// Verifico largada de campo USUARIO
	if ( formulario.usuario.value.length < 3 ) {
		Error = "Atención:\n"
			+ "No ha insertado el nombre de usuario del formulario correctamente.\n"
			+ "Por favor, revise el formulario.\n\n";
		alert(Error);
		formulario.usuario.focus();
		return false;
	}
	
	// Verifico contenido de campo USUARIO
	var checkOK = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZÁÉÍÓÚ" + "abcdefghijklmnñopqrstuvwxyzáéíóú" + "0123456789";
	var checkStr = formulario.usuario.value;
	var allValid = true;
	for (i = 0; i < checkStr.length; i++) {
		ch = checkStr.charAt(i);
		for (j = 0; j < checkOK.length; j++)
		if (ch == checkOK.charAt(j))
		break;
		if (j == checkOK.length) {
			allValid = false;
			break;
		}
	}
	if (!allValid) {
		Error = "Atención:\n"
			+ "El nombre de usuario insertado no es válido.\n"
			+ "Por favor, revise el formulario.\n\n";
		alert(Error);
		formulario.usuario.focus();
		return (false);
	}
	
	// Verifico largada de campo CONTRASENA
	if ( formulario.contrasena.value == "" ) {
		Error = "Atención:\n"
			+ "No ha insertado la contraseña del formulario.\n"
			+ "Por favor, revise el formulario.\n\n";
		alert(Error);
		formulario.contrasena.focus();
		return false;
	}

	// Verifico contenido de campo CONTRASENA
	var checkOK = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZÁÉÍÓÚ" + "abcdefghijklmnñopqrstuvwxyzáéíóú" + "0123456789";
	var checkStr = formulario.contrasena.value;
	var allValid = true;
	for (i = 0; i < checkStr.length; i++) {
		ch = checkStr.charAt(i);
		for (j = 0; j < checkOK.length; j++)
		if (ch == checkOK.charAt(j))
		break;
		if (j == checkOK.length) {
			allValid = false;
			break;
		}
	}
	if (!allValid) {
		Error = "Atención:\n"
			+ "La contraseña insertada no es válida.\n"
			+ "Por favor, revise el formulario.\n\n";
		alert(Error);
		formulario.contrasena.focus();
		return (false);
	}
	
	return true;
}

function validar3 (formulario) {
	// Area distribuidores -> Recordatorio contraseña
	// Verifico largada de campo EMAIL
	if ( formulario.email.value == "" ) {
		Error = "Atención:\n"
			+ "No ha insertado la dirección e-mail del formulario.\n"
			+ "Por favor, revise el formulario.\n\n";
		alert(Error);
		formulario.email.focus();
		return false;
	}

	// Verifico contenido de campo EMAIL
	var checkOK = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZÁÉÍÓÚ" + "abcdefghijklmnñopqrstuvwxyzáéíóú" + "0123456789" + "-_@.";
	var checkStr = formulario.email.value;
	var allValid = true;
	for (i = 0; i < checkStr.length; i++) {
		ch = checkStr.charAt(i);
		for (j = 0; j < checkOK.length; j++)
		if (ch == checkOK.charAt(j))
		break;
		if (j == checkOK.length) {
			allValid = false;
			break;
		}
	}
	if (!allValid) {
		Error = "Atención:\n"
			+ "La dirección de e-mail insertada no es válida.\n"
			+ "Por favor, revise el formulario.\n\n";
		alert(Error);
		formulario.email.focus();
		return (false);
	}
	
	return true;
}

function validar4 (formulario) {
	// Area distribuidores -> Gestión de garantías
	if ( formulario.modelo.value == "" ) {
		Error = "Atención:\n"
			+ "No ha completado el campo 'Modelo de la máquina' del formulario.\n"
			+ "Este campo es necesario para poder atenderle correctamente.\n\n"
			+ "Por favor, revise el formulario.\n\n";
		alert(Error);
		formulario.modelo.focus();
		return false;
	}
	
	if ( formulario.numero.value == "" ) {
		Error = "Atención:\n"
			+ "No ha completado el campo 'Número' del formulario.\n"
			+ "Este campo es necesario para poder atenderle correctamente.\n\n"
			+ "Por favor, revise el formulario.\n\n";
		alert(Error);
		formulario.numero.focus();
		return false;
	}

	if ( formulario.usuario.value == "" ) {
		Error = "Atención:\n"
			+ "No ha completado el campo 'Usuario' del formulario.\n"
			+ "Este campo es necesario para poder atenderle correctamente.\n\n"
			+ "Por favor, revise el formulario.\n\n";
		alert(Error);
		formulario.usuario.focus();
		return false;
	}

	if ( formulario.domicilio.value == "" ) {
		Error = "Atención:\n"
			+ "No ha completado el campo 'Domicilio' del formulario.\n"
			+ "Este campo es necesario para poder atenderle correctamente.\n\n"
			+ "Por favor, revise el formulario.\n\n";
		alert(Error);
		formulario.domicilio.focus();
		return false;
	}

	if ( formulario.poblacion.value == "" ) {
		Error = "Atención:\n"
			+ "No ha completado el campo 'Población' del formulario.\n"
			+ "Este campo es necesario para poder atenderle correctamente.\n\n"
			+ "Por favor, revise el formulario.\n\n";
		alert(Error);
		formulario.poblacion.focus();
		return false;
	}

	if ( (formulario.fecha.value == "") || (formulario.fecha.value == "00/00/0000")) {
		Error = "Atención:\n"
			+ "No ha completado el campo 'Fecha de venta' del formulario.\n"
			+ "Este campo es necesario para poder atenderle correctamente.\n\n"
			+ "Por favor, revise el formulario.\n\n";
		alert(Error);
		formulario.fecha.focus();
		return false;
	}

	if (!formulario.acepto.checked) {
		Error = "Atención:\n"
			+ "Debe aceptar nuestra política de privacidad para contactarnos.\n"
			+ "Este campo es necesario para poder atenderle correctamente.\n\n"
			+ "Por favor, revise el formulario.\n\n";
		alert(Error);
		formulario.acepto.focus();
		return false;
	}

	return true;
}

function filter(camp){
	camp.value = camp.value.replace(/\D/,"");
}

function finance_validar (formulario) {
	// Area distribuidores -> Gestión de garantías
	if ( formulario.cantidad.value == "" ) {
		Error = "Atención:\n"
			+ "No ha insertado ningún importe a financiar.\n"
			+ "Este campo es necesario para poder realizar el cálculo correctamente.\n\n"
			+ "Por favor, revise el formulario.\n\n";
		alert(Error);
		formulario.cantidad.focus();
		return false;
	}
	
	if ( formulario.plazo.value == "" ) {
		Error = "Atención:\n"
			+ "No ha indicado el plazo de la financiación.\n"
			+ "Este campo es necesario para poder realizar el cálculo correctamente.\n\n"
			+ "Por favor, revise el formulario.\n\n";
		alert(Error);
		formulario.plazo.focus();
		return false;
	}

	if ( formulario.cuota.value == "" ) {
		Error = "Atención:\n"
			+ "No ha indicado el tipo de cuota de la financiación.\n"
			+ "Este campo es necesario para poder realizar el cálculo correctamente.\n\n"
			+ "Por favor, revise el formulario.\n\n";
		alert(Error);
		formulario.cuota.focus();
		return false;
	}

	if ( ((formulario.plazo.value == "1") || (formulario.plazo.value == "2")) && ((formulario.cuota.value == "semestral") || (formulario.cuota.value == "anual")) ) {
		Error = "Atención:\n"
			+ "La financiación a 1 o 2 años sólo permite cuotas mensuales o trimestrales.\n"
			+ "Por favor, revise el formulario.\n\n";
		alert(Error);
		formulario.cuota.focus();
		return false;
	}
	return true;
}

function calcula (){
	form['cantidad'].value = form2['cantidad'].value;
	
	var cantidad = parseInt(form['cantidad'].value);
	var tipo = parseInt(form['tipo'].value);

	switch (tipo) {
		case 1: { 
			// Renting
			if (cantidad >= 120001) {
				// Más de 120.000
				var factor1 = 0.044872;
				var factor2 = 0.031022;
				var factor3 = 0.024085;
			} else {
				if (cantidad >= 30001) {
					// Más de 30.000
					var factor1 = 0.044977;
					var factor2 = 0.031131;
					var factor3 = 0.024198;
				} else {
					// Hasta 30.000
					var factor1 = 0.045081;
					var factor2 = 0.031241;
					var factor3 = 0.024311;
				}
			}
			var com1 = 0;
			var com2 = "";
			var resto = "";
			break 
			}
		case 2: { 
			// Leasing fijo
			if (cantidad >= 120001) {
				// Más de 120.000
				var factor1 = 0.042213;
				var factor2 = 0.02929;
				var factor3 = 0.022706;
				var com1 = 0.0075;
				var com2 = "0,75 %";
			} else {
				if (cantidad >= 30001) {
					// Más de 30.000
					var factor1 = 0.042316;
					var factor2 = 0.029396;
					var factor3 = 0.022815;
					var com1 = 0.01;
					var com2 = "1,00 %";
				} else {
					// Hasta 30.000
					var factor1 = 0.042419;
					var factor2 = 0.029502;
					var factor3 = 0.022924;
					var com1 = 0.0125;
					var com2 = "1,25 %";
				}
			}
			var resto = "";
			break 
			}
		case 3: { 
			// Leasing variable
			if (cantidad >= 120001) {
				// Más de 120.000
				var factor1 = 0.04172;
				var factor2 = 0.028782;
				var factor3 = 0.022188;
				var com1 = 0.0075;
				var com2 = "0,75 %";
				var resto = "euribor + 1,25";
			} else {
				if (cantidad >= 30001) {
					// Más de 30.000
					var factor1 = 0.041822;
					var factor2 = 0.028888;
					var factor3 = 0.022295;
					var com1 = 0.01;
					var com2 = "1,00 %";
					var resto = "euribor + 1,50";
				} else {
					// Hasta 30.000
					var factor1 = 0.041925;
					var factor2 = 0.028993;
					var factor3 = 0.022403;
					var com1 = 0.0125;
					var com2 = "1,25 %";
					var resto = "euribor + 1,75";
				}
			}
			break 
			}
	}
	
	//Cuota 1
	var cuota1 = cantidad * factor1;
	cuota1 = String(cuota1);
	// Revisión DECIMALES
	if (cuota1.indexOf('.')==-1) {
		cuota1 = cuota1 + ',00';
	} else {
		cuota1 = cuota1 + '00';
		var coma = cuota1.indexOf('.');
		cuota1 = cuota1.substring(0, coma) + ',' + cuota1.substring(coma + 1, coma + 3);
	}
	// Revisión MILLARES
	var coma = cuota1.indexOf(',');
	millares = parseInt(cuota1.substring(0, coma));
	if (millares>=1000) {
		cuota1 = cuota1.substring(0, coma - 3) + '.' + cuota1.substring(coma - 3, coma) + ',' + cuota1.substring(coma + 1, coma + 3);
	}
	form['cuota1'].value = cuota1 + " €";

	//Cuota 2
	var cuota2 = cantidad * factor2;
	cuota2 = String(cuota2);
	// Revisión DECIMALES
	if (cuota2.indexOf('.')==-1) {
		cuota2 = cuota2 + ',00';
	} else {
		cuota2 = cuota2 + '00';
		var coma = cuota2.indexOf('.');
		cuota2 = cuota2.substring(0, coma) + ',' + cuota2.substring(coma + 1, coma + 3);
	}
	// Revisión MILLARES
	var coma = cuota2.indexOf(',');
	millares = parseInt(cuota2.substring(0, coma));
	if (millares>=1000) {
		cuota2 = cuota2.substring(0, coma - 3) + '.' + cuota2.substring(coma - 3, coma) + ',' + cuota2.substring(coma + 1, coma + 3);
	}
	form['cuota2'].value = cuota2 + " €";

	//Cuota 3
	var cuota3 = cantidad * factor3;
	cuota3 = String(cuota3);
	// Revisión DECIMALES
	if (cuota3.indexOf('.')==-1) {
		cuota3 = cuota3 + ',00';
	} else {
		cuota3 = cuota3 + '00';
		var coma = cuota3.indexOf('.');
		cuota3 = cuota3.substring(0, coma) + ',' + cuota3.substring(coma + 1, coma + 3);
	}
	// Revisión MILLARES
	var coma = cuota3.indexOf(',');
	millares = parseInt(cuota3.substring(0, coma));
	if (millares>=1000) {
		cuota3 = cuota3.substring(0, coma - 3) + '.' + cuota3.substring(coma - 3, coma) + ',' + cuota3.substring(coma + 1, coma + 3);
	}
	form['cuota3'].value = cuota3 + " €";
	form['cuota3'].value = cuota3 + " €";
	
	//Comision 1
	if (com1!= 0) {
		// Revisión DECIMALES
		var comision1 = cantidad * com1;
		comision1 = String(comision1);
		if (comision1.indexOf('.')==-1) {
			comision1 = comision1 + ',00';
		} else {
			comision1 = comision1 + '00';
			var coma = comision1.indexOf('.');
			comision1 = comision1.substring(0, coma) + ',' + comision1.substring(coma + 1, coma + 3);
		}
		// Revisión MILLARES
		var coma = comision1.indexOf(',');
		millares = parseInt(comision1.substring(0, coma));
		if (millares>=1000) {
			comision1 = comision1.substring(0, coma - 3) + '.' + comision1.substring(coma - 3, coma) + ',' + comision1.substring(coma + 1, coma + 3);
		}
		form['comision1'].value = comision1 + " €";
	} else {
		form['comision1'].value = "";
	}
	
	form['comision2'].value = com2;
	form['resto1'].value = resto;
	form['resto2'].value = resto;
	form['resto3'].value = resto;
	
	return false;
}

function calcula_validar_1 (){
	// Financiación: Auto-Validación al selecciona plazo
	plazo = document.forms['formulario'].elements['plazo'];
	cuota = document.forms['formulario'].elements['cuota'];
	
	if ((plazo.value==1) || (plazo.value==2)) {
		// Elimino cuotas semestrales y anuales
		cuota.options[4]=null;
		cuota.options[3]=null;
	} else {
		// Reviso que no se haya eliminado cuotas semestrales y anuales
		if (cuota.options.length<=3) {
			// Sí; se eliminó. Restauro valores.
			cuota.options[3] = new Option('Semestral','semestral');
			cuota.options[4] = new Option('Anual','anual');
		}
	}
}

function calcula_validar_2 (){
	// Financiación: Auto-Validación al selecciona cuota
	plazo = document.forms['formulario'].elements['plazo'];
	cuota = document.forms['formulario'].elements['cuota'];
	
	if ((cuota.value=='semestral') || (cuota.value=='anual')) {
		// Elimino cuotas semestrales y anuales
		if (plazo.options.length>5) {
			plazo.options[2]=null;
			plazo.options[1]=null;
		}
	} else {
		// Reviso que no se haya eliminado cuotas semestrales y anuales
		if (plazo.options.length<=5) {
			// Sí; se eliminó. Restauro valores.
			plazo.options[5] = new Option(plazo.options[3].text,plazo.options[3].value);
			plazo.options[6] = new Option(plazo.options[4].text,plazo.options[4].value);
			plazo.options[4] = new Option(plazo.options[2].text,plazo.options[2].value);
			plazo.options[3] = new Option(plazo.options[1].text,plazo.options[1].value);
			plazo.options[2] = new Option('2 años','2');
			plazo.options[1] = new Option('1 año','1');
		}
	}
}
