/* Scripts Sotomayor Elías, S.C.
   última modificación 27/10/2007
*/
function expandCollapse() {
	for (var i=0; i<expandCollapse.arguments.length; i++) {
		var element = document.getElementById(expandCollapse.arguments[i]);
		element.style.display = (element.style.display == "none") ? "block" : "none";
	}
}

function mmsj(correo,dominio,extension,subject) 
{ 
	if (!extension)
		{extension = "com" ;} // Si no envio la extension tomo por defecto "com"
	if (!subject)
		{subject="Contacto desde www.sotomayorelias.com.mx";} // Dejo un Asunto Automatico
	location.href("mailto:" + correo + "@" + dominio + "." + extension + "?" + "subject" + "=" + subject); 
} 

// Validaciónes del formulario de correo
function validarcampos(formulario) {

	//Validar email
	var emailStr = formulario.email.value;
	var checkTLD=1;
    var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
    var emailPat=/^(.+)@(.+)$/;
    var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
    var validChars="\[^\\s" + specialChars + "\]";
    var quotedUser="(\"[^\"]*\")";
    var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
    var atom=validChars + '+';
    var word="(" + atom + "|" + quotedUser + ")";
    var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
    var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
    var matchArray=emailStr.match(emailPat);
    if (matchArray==null) {
    	alert("Su dirección de correo no aparece o es incorrecta (comprueba @ y .'s)");
    	return false;
    }
    var user=matchArray[1];
    var domain=matchArray[2];
    for (i=0; i<user.length; i++) {
    	if (user.charCodeAt(i)>127) {
	    alert("Su dirección de correo contiene caracteres no válidos.");
    	return false;
       }
    }
    for (i=0; i<domain.length; i++) {
    	if (domain.charCodeAt(i)>127) {
	    alert("El dominio de la dirección introducida contiene caracteres no válidos.");
    	return false;
       }
    }
    if (user.match(userPat)==null) {
    	alert("La dirección de correo parece incorrecta, por favor compruebela.");
    	return false;
    }
    var IPArray=domain.match(ipDomainPat);
    if (IPArray!=null) {
    	for (var i=1;i<=4;i++) {
    		if (IPArray[i]>255) {
    			alert("La dirección IP de destino no es correcta!");
    			return false;
       		}
    	}
    	return true;
    }
    var atomPat=new RegExp("^" + atom + "$");
    var domArr=domain.split(".");
    var len=domArr.length;
    for (i=0;i<len;i++) {
    	if (domArr[i].search(atomPat)==-1) {
    		alert("La dirección de correo parece incorrecta, por favor compruebelo, incluyendo el uso incorrecto de signos de puntuación, comas , o puntos [.] al final de la dirección.");
    		return false;
       }
    }
    if (checkTLD && domArr[domArr.length-1].length!=2 && 
    	domArr[domArr.length-1].search(knownDomsPat)==-1) {
    	alert("Su dirección de correo debe terminar en un dominio o dos letras " + "país.");
    	return false;
    }
    if (len<2) {
    	alert("Falta el nombre del host en su dirección de correo - compruebelo. O debes de haber añadido un espacio en blanco al final de la dirección - corrija el error e intentelo de nuevo.");
    	return false;
    }
	
	//Validar nombre
	if (formulario.nombre.value.length < 4) {
		alert("Escriba por lo menos 4 caracteres en el campo Nombre.");
		formulario.nombre.focus();
		return false;
	}
	var checkOK = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZÁÉÍÓÚ" + "abcdefghijklmnñopqrstuvwxyzáéíóú ";
	var checkStr = formulario.nombre.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) {
		alert("Escriba sólo letras en el campo Nombre.");
		formulario.nombre.focus();
		return false;
	}
	
	//Validar apellido paterno
	if (formulario.appat.value.length < 4) {
		alert("Escriba por lo menos 4 caracteres en el campo Apellido Paterno.");
		formulario.appat.focus();
		return false;
	}
	var checkOK = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZÁÉÍÓÚ" + "abcdefghijklmnñopqrstuvwxyzáéíóú ";
	var checkStr = formulario.appat.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) {
		alert("Escriba sólo letras en el campo Apellido Paterno.");
		formulario.appat.focus();
		return false;
	}
	
	//Validar apellido materno
	if (formulario.apmat.value.length < 4) {
		alert("Escriba por lo menos 4 caracteres en el campo Apellido Paterno.");
		formulario.apmat.focus();
		return false;
	}
	var checkOK = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZÁÉÍÓÚ" + "abcdefghijklmnñopqrstuvwxyzáéíóú ";
	var checkStr = formulario.apmat.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) {
		alert("Escriba sólo letras en el campo Apellido Materno.");
		formulario.apmat.focus();
		return false;
	}
	
	if (formulario.comp.value.length <= 0) {
		alert("La compañía no puede quedar vacía.");
		formulario.comp.focus();
		return false;
	}
	
	if (formulario.address.value.length <= 0) {
		alert("La dirección no puede quedar vacía.");
		formulario.address.focus();
		return false;
	}

	if (formulario.comment.value.length <= 0) {
		alert("El comentario no puede quedar vacío.");
		formulario.comment.focus();
		return false;
	}

	return true;
}