//Modificado por Oscar Otero
//para verificar los campos select
//gatotero@hotmail.com
//Script Created by Cesar Arraiz
//cesar_arraiz@hotmail.com
//necsolutions.com.ve

//La siguiente funcion valida que una forma se haya llenado corectamente
/*
Para hacer el llamado de la funcion, se hace de la siguiente forma:

<input type="button" value="Aceptar" onclick="validateForm(document.nombreForma, tipo, email, num)">

Parámetros:
document.nombreForma, es el nombre de la forma: ejemplo, document.forma1
tipo, es el tipo de validacion: 1 para validar todos los campos, 2 para validar solo algunos
email, es para verificar el email: 0 si no verifica email, 1 si lo quiere verificar
num, es para verificar campos numericos: 0 si no existen campos numericos, 1 si quiere verificar campos numericos, 2 si quiere permitir puntos de separacion

-
Si quiere verificar todos los campos del la forma debe llamar a la funcion asi:
onclick="validateForm(document.nombreForma, 1)"

Si existe alguna campo que puede quedar vacio, debe crear un campo oculto de nombre "fields" donde estaran
los nombres de los campos que pueden quedar vacios:
<input type="hidden" name="fields" value="campo1,campo2,campo3">

-
Si no quiere verificar todos los campos, si no algunos cuantos, debe llamar la funcion asi:
onclick="validateForm(document.nombreForma, 2)"

Y ademas debe crear el campo oculto de nombre "fields" donde estaran los nombres
de los campos que se verificaran:
<input type="hidden" name="fields" value="campo1,campo2,campo3">

-
Si ademas de verificar la forma, quiere verificar que este bien escrito el email:
onclick="validateForm(document.nombreForma, 1, 1)"

-
Si quiere verificar campos numericos:
onclick="validateForm(document.nombreForma, 1, 1, 1)"

Y ademas debe crear un campo oculto de nombre "numFields" donde estaran los nombres
de los campos a verificar:
<input type="hidden" name="numFields" value="campo1,campo2,campo3">

Si quiere permitir que el campo numerico contenga puntos de separacion:
onclick="validateForm(document.nombreForma, 1, 1, 2)"

-
Cualquier parametro se puede obviar colocando solo la coma, o colocando un cero 0:
onclick="validateForm(document.nombreForma, , , 1)"
onclick="validateForm(document.nombreForma, 0, 0, 1)"


*/


var form = "";
var submitted = false;
var error = false;
var error_message = "";
function check_select(field_name, field_default, message) {
  if (form.elements[field_name] && (form.elements[field_name].type != "hidden")) {
    var field_value = form.elements[field_name].value;

    if (field_value == field_default) {
      error_message = error_message + "* " + message + "\n";
   	error = true;
    }
  }
}
function validateForm(objFrm, iValType, blnEmail, blnNumFields)
	{
	var strFields = (objFrm.fields) ? objFrm.fields.value : ""
	var strNumFields = (objFrm.numFields) ? objFrm.numFields.value : ""
	error = false;
	form = objFrm;
	error_message = "Hay errores en su formulario!\nPor favor, haga las siguientes correciones:\n\n";

	check_select("Department","#", "Select a Department.");
  	check_select("Salutation","#", "Select a Salutation.");
  	check_select("Job Function","#", "Select a Job Function.");
	check_select("Country","#", "Select a Country.");
	if (error == true) {
    alert(error_message);
    return false;
	}else{ 
	
	for(var i=0; i<objFrm.length; i++)
	
		if(objFrm.elements[i].type == "text" || objFrm.elements[i].type == "textarea")
			{
			if((iValType == 2 && strFields.indexOf(objFrm.elements[i].name) != -1) || (iValType != 2 && strFields.indexOf(objFrm.elements[i].name) == -1))
				if(objFrm.elements[i].value.length == 0 || isBlank(objFrm.elements[i]))
					{
					alert("Debe llenar los campos obligatorios")
					objFrm.elements[i].select()
					return false
					}
			if(blnEmail && objFrm.elements[i].name.indexOf("Email") != -1 && !emailIsValid(objFrm.elements[i]))
				{
				alert("La direccion email no es válida")
				objFrm.elements[i].select()
				return false
			    }
			if(blnNumFields && strNumFields.indexOf(objFrm.elements[i].name) != -1)
				if(!isNumber(objFrm.elements[i], blnNumFields))
					{
					alert("Llene los campos numéricos correctamente")
					objFrm.elements[i].select()
					return false
					}
			}
	//objFrm.submit()
	refrescar();
	return createTarget();
	
	return true;
	}}
	
//Esta funcion verifica que por lo menos exista un caracter en el campo
function isBlank(objField)
	{
	 return (objField.value.match(/\S/)) ? false : true
	}

//Esta funcion verifica que el email este correcto
function emailIsValid(objField)
	{
	var exclude = /^@|^_@|(@)[^@]*\1/
	var check = /@[\w\-]+\./
	var checkend = /\.[a-zA-Z]{2,3}$/
	return (!objField.value.match(exclude) && objField.value.match(check) && objField.value.match(checkend)) ? true : false
	}

//Esta funcion verifica que el campo sea solo numerico
function isNumber(objField, iType)
	{
	var strChar
	if(iType==1)
		var num = /[0-9]/
	else
		var num = /[0-9.]/
	for(var j=0;j<objField.value.length;j++)
		{
		strChar = objField.value.charAt(j)
		if(!strChar.match(num))
			return false
		}
	return true
	}
  
 
function createTarget(){
window.open("","blanco", "left=50,top=100,toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=1,width=210,height=80");
return true;

}
function refrescar()
			{
			window.location.reload();
			}

