// Documento JavaScript. Funciones genéricas
function checkDatosForm(objForm) {
	var alerta = 0;
		//campos texto
	if((document.getElementById("usr_nombre_apellidos").value == '') | 
	(document.getElementById("usr_nif").value == '') | 
	(document.getElementById("usr_email").value == '') |
	(document.getElementById("usr_telefono").value == '') |
	(document.getElementById("usr_direccion").value == '') |
	(document.getElementById("usr_poblacion").value == '') |
	(document.getElementById("usr_cp").value == '') |
	(document.getElementById("usr_provincia").value == '')
	){
		alerta = 1;
	}
	
		//selects
	/*
	 * Patch 0905: Se elimina el listado de provincias. 
	 * La provincia se calcula dinámicamente a través del código postal.
	 */
	 /*
	 
	if (document.getElementById("data[usr_provincia]").options[document.getElementById("data[usr_provincia]").selectedIndex].value== ''){
		alerta = 1;
	}	
	*/

	alertaMsj = '';
	if (alerta) alertaMsj = 'Debe rellenar TODOS los campos marcados con *.\n';
	
	//validación de email
	var filter= /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
	if (!filter.test(document.getElementById("usr_email").value)){
		alerta = 1;
		alertaMsj +=  'El valor del campo email no es correcto.\n';
	}
	
	if (document.getElementById("usr_envio_email").value!=""){//sólo si no está vacío ya que este no es obligatorio
		if (!filter.test(document.getElementById("usr_envio_email").value)){
			alerta = 1;
			alertaMsj +=  'El valor del campo email de envío no es correcto.\n';
		}
	}

	//validación de provincias. 
	if (document.getElementById("usr_provincia_ok").value == 0){
		alerta = 1;
		alertaMsj +=  'El valor del campo código postal no es correcto.\n';
	}
	
	//usr_envio_provincia_ok sólo valida si el campo de usr_envio_cp no está vacío
	if ((document.getElementById("usr_envio_provincia_ok").value == 0)& 
			(document.getElementById("usr_envio_cp").value != '') ){
		alerta = 1;
		alertaMsj +=  'El valor del campo código postal de envío no es correcto.\n';
	}
	
	//validación de NIF
	if (!validaNif(document.getElementById("usr_nif").value)){
		alerta = 1;
		alertaMsj +=  'Por favor introduzca un NIF con el formato correcto de 8 dígitos y una letra, sin espacios ni guiones.\n';
	}
	
	if (alerta){
		window.alert(alertaMsj);
		return false;
	}else{
		objForm.submit();
		return false;
		
	}
}

function someteKartDatosForm(){
	if (document.kart_form){
		//paso las observaciones al formulario
		document.kart_form.kart_observaciones.value = document.getElementById("kart_obs_visible").value;
        if(document.kart_form.nodatos.value==0){//formulario completo
            /*
		 	* Patch 0905: este código ya no es necesario
			if (checkDatosForm(document.kart_form)){
                //someto
                document.kart_form.submit();
                return false;
            }else{
                return false;	
            }
			*/
			//esto ya hace el submit si los datos son correctos y devuelve false.
			checkDatosForm(document.kart_form);
			return false;
         }else{//distingo si hay envío a terceros
		 	if (document.getElementById('kart_envio_terceros').checked){
				checkEnvioTercerosDatosForm(document.kart_form);
				return false;
			}else{
	         	document.kart_form.submit();
	            return false;
			}
         }
	}else{
		return true;	
	}
}

function unblockCp(inputObj, dstId, url_root){
	//alert('cargando ajax:\n -cp='+inputObj.value+'\n -prefix='+dstId);
	cargarAsincrono(url_root+'ajax_provincia.php?cp='+inputObj.value+'&prefix='+dstId, 'ajax_'+dstId);
}

function blockCp(dstId){
	document.getElementById(dstId+"_ok").value = 0;
}

function toggleEnvioTerceros(checkObj){
//alert('checkObj.checked = '+checkObj.checked+'\n datos1.style.display = '+document.getElementById('datos_1').style.display);
	if (checkObj.checked){
		//muestro form
		document.getElementById('datos_1').style.display = 'none';
		document.getElementById('datos_2').style.display = 'block';
	}
	else{
		//oculto form
		document.getElementById('datos_1').style.display = 'block';
		document.getElementById('datos_2').style.display = 'none';
		//borro los campos
		document.getElementById("kart_envio_nombre").value = '';
		document.getElementById("kart_envio_direccion").value = '';
		document.getElementById("kart_envio_poblacion").value = '';
		document.getElementById("kart_envio_cp").value = '';
		document.getElementById("kart_envio_provincia").value = '';
		document.getElementById("kart_envio_provinciaStr").value = '';
		document.getElementById("kart_envio_telefono").value = '';
		document.getElementById("kart_envio_email").value = '';
		document.getElementById("kart_envio_forma").value = '';
		document.getElementById("prov_msj").innerHTML = '';
		
		
	}
}

function checkEnvioTercerosDatosForm(objForm) {
	var alerta = 0;
		//campos texto
	if((document.getElementById("kart_envio_nombre").value == '') | 
	(document.getElementById("kart_envio_direccion").value == '') | 
	(document.getElementById("kart_envio_poblacion").value == '') |
	(document.getElementById("kart_envio_cp").value == '') |
	(document.getElementById("kart_envio_provincia").value == '') |
	(document.getElementById("kart_envio_telefono").value == '') |
	(document.getElementById("kart_envio_email").value == '') |
	(document.getElementById("kart_envio_forma").value == '')
	){
		alerta = 1;
	}

	alertaMsj = '';
	if (alerta) alertaMsj = 'Debe rellenar TODOS los campos marcados con *.\n';
	
	//validación de email
	var filter= /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
	if (!filter.test(document.getElementById("kart_envio_email").value)){
		alerta = 1;
		alertaMsj +=  'El valor del campo email no es correcto.\n';
	}

	//validación de provincias
	if (document.getElementById("kart_envio_provincia_ok").value == 0){
		alerta = 1;
		alertaMsj +=  'El valor del campo código postal no es correcto.\n';
	}
	
	if (alerta){
		window.alert(alertaMsj);
		return false;
	}else{
		objForm.submit();
		return false;
		
	}
}

function kartConfirm(url_root){
	if (confirm('¿Confirma el envío del pedido?')){
		showLightbox();
		window.location.href = url_root+'?pagina=confirmar';
	}else{
		return false;
	}
}

function kartConfirmFormaPago(objForm){
	if (objForm.fromform.value==1){//se requiere confirmación de forma de pago
		var alerta = true; 
		for (var i=0; i<objForm.usr_pago_forma.length; i++){
			alerta = (alerta)&(!(objForm.usr_pago_forma[i].checked));
		}
		if (alerta){
			window.alert('Debe seleccionar una forma de pago.');
			return false;
		}
	}
	if (confirm('¿Confirma el envío del pedido?')){
		showLightbox();
		objForm.submit();
	}else{
		return false;
	}
}

function delDatosEnvio(objForm) {
	/*
	Borra los campos del formulario de datos de envío de la extranet.
	*/
	document.getElementById("usr_envio_nombre").value = '';
	document.getElementById("usr_envio_direccion").value = '';
	document.getElementById("usr_envio_poblacion").value = '';
	document.getElementById("usr_envio_cp").value = '';
	document.getElementById("usr_envio_provincia").value = '';
	document.getElementById("usr_envio_provinciaStr").value = '';
	document.getElementById("usr_envio_provincia_ok").value = 0;
	document.getElementById("usr_envio_telefono").value = '';
	document.getElementById("usr_envio_email").value = '';
}

	
/*******************************
 Validación del nif/nif. Por Carlitos. carlosbernad@teleline.es
 Si usas este script, deja intactas estas líneas (créditos). Vale?
 También te agradecería un e-mail con tus comentarios.
 Idea original de validación de cif de KarlanKas
*******************************/

function validaCif(cif) {
	par = 0;
	non = 0;
	letras="ABCDEFGHKLMNPQS";
	let=cif.charAt(0);
	
	if (!isNaN(let)) {
	  nif=cif;
	  return validaNif(nif);
	}
	
	if (cif.length!=9) {
		//alert('El Cif debe tener 9 dígitos');
		return false
	 }
	
	if (letras.indexOf(let.toUpperCase())==-1)
	  {
	  //alert("El comienzo del Cif no es válido");
	  return false;
	  }
	
	for (zz=2;zz<8;zz+=2) {
	  par = par+parseInt(cif.charAt(zz));
	}
	
	for (zz=1;zz<9;zz+=2) {
	  nn = 2*parseInt(cif.charAt(zz));
	  if (nn > 9) nn = 1+(nn-10);
	  non = non+nn;
	}
	
	parcial = par + non;
	
	control = (10 - ( parcial % 10));

	if (control==10) control=0;
	
	if (control!=cif.charAt(8)) {
	  //alert("El Cif no es válido")
	  return false;
	 }
	//alert("El Cif es válido")
	return true;
}

function validaNif(abc) {
	dni=abc.substring(0,abc.length-1);
	let=abc.charAt(abc.length-1);
	if (!isNaN(let)) {
	  //alert('Falta la letra')
	  return false;
	 }
	else
	 {
	  cadena="TRWAGMYFPDXBNJZSQVHLCKET";
	  posicion = dni % 23;
	  letra = cadena.substring(posicion,posicion+1);
	  if (letra!=let.toUpperCase()){
	    //alert("Nif no válido")
	    return false;
	   }
	 }
	return true;
}