// JavaScript Document

function validateEmpty(fld,errID) {
    var error = "";
	var tfld=trim(fld.value);
	
    if (tfld.length == 0) {
        fld.style.background = 'Yellow'; 
        error = "Obligatorio.";  
    } else {
        fld.style.background = 'White';
    }
	
	switchErrDisplay(errID,error);
    return error;  
}


function trim(s)
{
  return s.replace(/^\s+|\s+$/, '');
}

function switchErrDisplay(errID,err){
	var elem = document.getElementById(errID);
	elem.firstChild.nodeValue = err;  
	
	if(err.length>0){
		elem.className = "errDisplay";   // set the CSS class to adjust appearance of message
		focus(elem);
		select(elem);
	} else {
		elem.className = "errHidden";   // set the CSS class to adjust appearance of message
	}
}

function validateEmptyEmail(fld,errID) {
    var error=validateEmpty(fld,errID);
	
	if(error.length==0){
		error=validateEmail(fld,errID);
	}
    return error;
}

function validateEmail(fld, errID) {
    var error="";

	if (fld.value.length>0) {
		var tfld = trim(fld.value);                        // value of field with whitespace trimmed off
		var emailFilter = /^[a-z0-9]+([-_\+\.]?[a-z0-9]+)*@[a-z0-9]+([-_\+\.]?[a-z0-9]+)*\.[a-z]{2,4}$/i ;
		if (!emailFilter.test(tfld)) {              //test email for illegal characters
			fld.style.background = 'Yellow';
			error = "Dirección de correo electrónico no válida.";
		} else {
			fld.style.background = 'White';
			error="";
		}
	}
	
	switchErrDisplay(errID,error);
	return error;
}



function validateEmptyPhone(fld, errID) {
    var error=validateEmpty(fld,errID);
	
	if(error.length==0){
		error=validatePhone(fld,errID);
	}
    return error;
}


function validatePhone(fld, errID) {
    var error = "";

	if (fld.value.length>0){
		var stripped = fld.value.replace(/[\(\)\.\-\s]/g, '');    
		var phoneFilter=/^\+[0-9]{6,15}$|^[0-9]{9,9}$/i;
		if (!phoneFilter.test(stripped)) {              //test email for illegal characters
			error = "Número de teléfono no válido.";
			fld.style.background = 'Yellow';
		} else {
			fld.style.background = 'White';
		}		
	}
	switchErrDisplay(errID,error);
	return error;
}
