// JavaScript Document

//*************************************************************	

	function validarForma(forma){

		document.forms[0].Name.mandatory = true
		document.forms[0].Email.mandatory = true
		document.forms[0].Subject.mandatory = true
		document.forms[0].MsgBody.mandatory =true
		
		if(!verificaCamposVacios(forma) && 
		correoValido(forma.Email) &&		
		esAlfabetico(forma.Name) )	
		forma.submit();
	}

/**************************************************************/

	function correoValido(direccion){
		locArroba = direccion.value.indexOf("@")
		locPunto = direccion.value.indexOf(".")
		valido = true
		//alert(locPunto)
		if(!estaVacio(direccion.value)){
			if (direccion.value.length < 5) {
				return false
			}
			if (locArroba == -1 || locPunto == -1 || locArroba > locPunto) {
				valido = false
			}
			if (locArroba == 0) {
				valido = false
			}

			if (locPunto - locArroba <= 1) {
				valido = false
			}
			if (direccion.value.length - locPunto <= 1) {
				valido = false
			}
			if (!valido){
				alert("La dirección de Correo Electrónico no es válida")
				direccion.select()			
				return false
			}
		}	
		// Cadena Valida
		return true
	}

/**************************************************************/
	function verificaCamposVacios(forma){

		var camposFaltantes = new Array()
		var totalFaltantes = 0
		var indice = 0

		while (indice < forma.length) {
			// Es un campo obligatorio?
			if ((forma[indice].type == "text" ||
				forma[indice].type == "textarea" ||
				forma[indice].type == "password") &&
				forma[indice].mandatory) {
				// Esta vacio?
				if (estaVacio(forma[indice].value) == true || sonBlancos(forma[indice].value) == true) {
					camposFaltantes[totalFaltantes] = forma[indice]
					totalFaltantes++
				} 
			} 
			else
				if (forma[indice].type == "select-one" && forma[indice].selectedIndex == 0 && forma[indice].mandatory){
					camposFaltantes[totalFaltantes] = forma[indice]
					totalFaltantes++
				}
				else
					if (forma[indice].type == "radio" ){
						// Si ninguno esta activado
					    if(radioActivado(forma, indice) == -1){
							camposFaltantes[totalFaltantes] = forma[indice]
							totalFaltantes++			
						}					
						//alert("la longitud del grupo " + forma[indice].name + " es de " + longitudRadio (forma, indice))
						// Saltar todos los radio buttons
						indice += longitudRadio (forma, indice) -1
					}			
				indice++		
		} // Fin while()
		// Hubo campos vacios?
		if (totalFaltantes > 0) {
			var mensajeError = "Es importante para Dinamiyk que ingrese sus datos en " +
								(totalFaltantes == 1 ? "el campo: " : "los campos: ") +
								"\n__________________________________\n\n"
			
			// Iterar a traves de los campos faltantes
			for (indice = 0; indice < camposFaltantes.length; indice++) {
				mensajeError += camposFaltantes[indice].id + "\n"
			}
			// Mostrar el mensaje
			mensajeError += "__________________________________\n\n" +
							"Por favor, complete su información y envíela de nuevo."
			alert(mensajeError)
			// Poner focus en el primer campo faltante
			camposFaltantes[0].focus()
			return true
		} // Fin if
		else {
			return false
		} // Fin else
	} // Fin funcion verificaCampoVacio

/**************************************************************/

	function estaVacio(cadena){
		if (cadena == "" || cadena == null) {
			return true
		}	
		// No esta vacia
		return false
	 } // Fin estaVacio

	function sonBlancos(cadena){
		var blancos = "\n\r\t"

		if(cadena.charAt(0) != ' ') {
			for (var indice=0; indice < cadena.length; indice++) {
				var caracterAct = cadena.charAt(indice)
				if (blancos.indexOf(caracterAct) == -1) {
					return false
				}
			} // fin for
		}
		// La cadena solo tiene espacios en blanco
		return true
	 }

	function esLetra(character) {
		var letters = "abcdefghijklmnñopqrstuvstuvwxyz'. ABCDEFGHIJKLMNÑOPQRSTUVWXYZ"

		if (letters.indexOf(character) == -1){
			return false
		}
		// caracter permitido
		return true
	}
//**************************************************************************************************	

//**************************************************************************************************	

	function esNumerico(campo, tipo) {

		// Caracteres permitidos
			if (tipo == "dec")
				var caracteres = "1234567890."
			else
			  	var caracteres = "1234567890"
		if(!estaVacio(campo.value)){
			for (var counter = 0; counter < campo.value.length; counter++){
				if (caracteres.indexOf(campo.value.charAt(counter)) == -1){
					if (tipo == "tel"){
						alert("El apartado Teléfono, únicamente acepta números." +
						"\n\nIngresa tu número telefónico sin espacios ni guiones")
					}
					else{
						alert("El apartado: " + campo.id + 
							"\núnicamente acepta números")
					}
					campo.select()			
					return false
				}
			}
		}
		// caracter permitido
		return true
	}
	
	function esAlfabetico(campo){
		var string_value = campo.value
		if(!estaVacio(campo.value)){		
			for (var counter = 0; counter < string_value.length; counter++){
				currentChar = string_value.charAt(counter)
			//Si no es caracter permitido regresa falso
				if (!esLetra(currentChar)){
					alert("El apartado: " + campo.id + 
						"\núnicamente acepta letras y los simbolos ' - .")
					campo.select()
					return false
				}
			}
		}
		// De lo contrario, la cadena contiene caracteres permitidos
		return true
	}
