var _GLOBAL_error_Color = '#FFF0E0';
var _GLOBAL_ok_Color 	= '#FFF';

function VerifDataAndSubmit()
{
	var _Data = new Array();
	_Data[0] = new Array( 'email'  , "EMAIL" ,"", "Email" );
	
	var _FieldsInError =  fieldCheck( _Data );
   if ( _FieldsInError != false )
   {
   	ColorFieldsAndAnswer( _FieldsInError[0] ,  _FieldsInError[1] , _FieldsInError[2], _FieldsInError[3] , _Data  );
   }
}

function fieldCheck( _arrWithDat )
{
	var ArrErr = new Array();
	var _Blank = new Array();  
	var _field ;
	var _type;
	var _plusAccepChar;
	var _AcceptedBlank;
	var _FieldNameInCaseOfError;
	var _field_min_len ;
	var _Point_Of_ArrErr = 0;
	var _len_arrWithDat = _arrWithDat.length;
	var _String_blank = "";
	var _String_ArrErr = "" ;
	
	var _fieldValue;
	var _lenghtField;
	var _lenghtAccepChars;
	var _lessOne ;
	
	
	for( var _w = 0 ; _w < _len_arrWithDat ; _w++ )//FOR PRINCIPAL
	{
		
		_field 						= document.getElementById( _arrWithDat[_w][0] ) ;
		_type 						= _arrWithDat[_w][1] ;
		_plusAccepChar 			= _arrWithDat[_w][2] ;
		_AcceptedBlank 			= _arrWithDat[_w][3] ;
		_FieldNameInCaseOfError = _arrWithDat[_w][4] ;
		_field_min_len 			= _arrWithDat[_w][5];
		_Blank[_w] 					= new Array( true , _field.name , _FieldNameInCaseOfError );
		
		_fieldValue = _field.value;
		_lenghtField = _fieldValue.length;
		_lenghtAccepChars = _plusAccepChar.length;
		
		if ( _type == "STR" || _type == "NUM" || _type == "STRNUM" || _type == "JUST_THIS" || _type == "TELEFONO" ) //IF PRINCIPAL
		{
			switch ( _type )
			{
				case ("STR" ):
					var acceptedChars =	"abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ"	+ _plusAccepChar ;
					var _ERRORTEXT = "Solo se admiten letras";
				break;
				case ( "NUM" ):
					var acceptedChars = "0123456789" + _plusAccepChar ;
					var _ERRORTEXT = "Solo se admiten  numeros";
				break;
				case ( "STRNUM" ):
					var acceptedChars =	"abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ0123456789" + _plusAccepChar ;
					var _ERRORTEXT = "Solo se admiten letras, numeros y espacios";
				break;
				case ( "TELEFONO" ):
					var acceptedChars =	"0123456789+-()_ " + _plusAccepChar ;
					var _ERRORTEXT = "Solo se admiten numeros, espacios y los siguiente caracteres : \"+\",  \"-\",  \"(\",  \")\", \"_\"";
				break;
				case ( "JUST_THIS" ):
					var acceptedChars = " " + _plusAccepChar ;// el " " permite el espacio
				break;
			}
			
			if ( !_AcceptedBlank )
			{
				if ( _fieldValue.charAt(0) == " " )
				{
					ArrErr[_Point_Of_ArrErr] = new Array( _field.name ,	_FieldNameInCaseOfError );
					_String_ArrErr = _String_ArrErr + "<li><strong>" +	ArrErr[_Point_Of_ArrErr][1] + "</strong>: Primer caracter blanco</li>" ;
					_Point_Of_ArrErr++;
					_Blank[_w][0] =	false;
				}else{
					if( _lenghtField < _field_min_len )
					{
						if( _lenghtField > 0 )
						{
							ArrErr[_Point_Of_ArrErr] = new Array( _field.name ,	_FieldNameInCaseOfError );
							_String_ArrErr = _String_ArrErr + "<li><strong>" + _FieldNameInCaseOfError +  "</strong>: Minimo " + _field_min_len + " caracteres.</li>"  ;
							_Point_Of_ArrErr++;
							_Blank[_w][0] = false;
						}else{
							_Blank[_w][0] = true;
						}
					}else{
						if ( _lenghtField > 0 )
						{
							_Blank[_w][0] = false;
						}
						for( var _i = 0 ; _i < _lenghtField ; _i++ )
						{
							if ( acceptedChars.indexOf( _fieldValue.charAt(_i) ) == -1 )
							{
								if ( _fieldValue.charAt(_i) != " " )
								{
									if( _Point_Of_ArrErr > 0 )
									{
										_lessOne = _Point_Of_ArrErr - 1 ;
										if ( ArrErr[_lessOne][0] != _field.name )
										{
											ArrErr[_Point_Of_ArrErr] = new Array( _field.name ,	_FieldNameInCaseOfError );
											_String_ArrErr = _String_ArrErr + "<li><strong>" + ArrErr[_Point_Of_ArrErr][1] + ":</strong> "+_ERRORTEXT+".</li>" ;
											_Point_Of_ArrErr++;
										}
									}else{
										ArrErr[_Point_Of_ArrErr] = new Array( _field.name , _FieldNameInCaseOfError );
										_String_ArrErr = _String_ArrErr + "<li><strong>" + ArrErr[_Point_Of_ArrErr][1] + ":</strong> "+_ERRORTEXT+".</li>"	;
										_Point_Of_ArrErr++;
									}
									_i = _lenghtField;
									_Blank[_w][0] = false;
								}
							}else{
								if ( _fieldValue.charAt(_i) != " " )
								{
									_Blank[_w][0] =	false;
								}
							}
						}
						
					}
				}
			}else{
				_Blank[_w][0] =	false;
				for( var _i = 0 ; _i < _lenghtField ; _i++ )
				{
					if ( _fieldValue.charAt(0) == " " )
					{
						ArrErr[_Point_Of_ArrErr] = new Array( _field.name ,	_FieldNameInCaseOfError );
						_String_ArrErr = _String_ArrErr + "<li><strong>" +	ArrErr[_Point_Of_ArrErr][1] + ":</strong> Incorrecto.</li>" ;
						_Point_Of_ArrErr++;
						_i = _lenghtField;
					}else{
						if ( acceptedChars.indexOf( _fieldValue.charAt(_i) ) ==	-1 )
						{
							ArrErr[_Point_Of_ArrErr] = new Array( _field.name ,	_FieldNameInCaseOfError );
							_String_ArrErr = _String_ArrErr + "<li><strong>" + ArrErr[_Point_Of_ArrErr][1] + ":</strong> Incorrecto.</li>" ;
							_Point_Of_ArrErr++;
							_i = _lenghtField;
						}
					}
				}
			}
		}else{// ELSE DE IF PRINCIPAL
			switch ( _type )
			{
				case ( "NOTZERO" ):
					if ( _fieldValue == "0" )
					{
						ArrErr[_Point_Of_ArrErr] = new Array( _field.name ,	_FieldNameInCaseOfError );
						_String_ArrErr = _String_ArrErr +	"<li><strong>" + ArrErr[_Point_Of_ArrErr][1] + ":</strong> Incorrecto.</li>" ;
						_Point_Of_ArrErr++;
					}
					_Blank[_w][0] =	false;
				break;
				case ( "EMAIL" ):
					var _email = document.getElementById( _arrWithDat[_w][0] );
					if ( _email.value != "" )
					{
						var _checked = isEmailAddress( _email.value );
						if ( !_checked )
						{
							ArrErr[_Point_Of_ArrErr] = new Array( _field.name , _FieldNameInCaseOfError );
							_String_ArrErr = _String_ArrErr + "<li><strong>Email:</strong> Incorrecto.</li>" ;
							_Point_Of_ArrErr++;
                  }
						_Blank[_w][0] =	false;
					}else{
						ArrErr[_Point_Of_ArrErr] = new Array( _field.name , _FieldNameInCaseOfError );
						_String_ArrErr = _String_ArrErr + "<li><strong>Email:</strong> Incorrecto.</li>" ;
						_Point_Of_ArrErr++;
						_Blank[_w][0] =	false;
					}
				break;
				case ( "LEN" ):
					var _fieldValue = document.getElementById( _arrWithDat[_w][0] ).value;
					if ( _fieldValue == "" )
					{
						_Blank[_w][0] = true;
					}else{
						_Blank[_w][0] = false;
					}
				break;
				case ( "PADRON" ):
					var acceptedChars = "0123456789";
					var _fieldValue = document.getElementById( _arrWithDat[_w][0] ).value;
					if ( _fieldValue == "" )
					{
						_Blank[_w][0] = true;
					}else{
						if ( parseInt(_fieldValue) > 110000 )
						{
							ArrErr[_Point_Of_ArrErr] = new Array( _field.name ,	_FieldNameInCaseOfError );
							_String_ArrErr = _String_ArrErr + "<li><strong>" + ArrErr[_Point_Of_ArrErr][1] + ":</strong> Incorrecto.</li>" ;
							_Point_Of_ArrErr++;
						}else{
							for( var _i = 0 ; _i < _lenghtField ; _i++ )
							{
								if ( acceptedChars.indexOf( _fieldValue.charAt(_i) ) == -1 )
								{
									ArrErr[_Point_Of_ArrErr] = new Array( _field.name ,	_FieldNameInCaseOfError );
									_String_ArrErr = _String_ArrErr + "<li><strong>" + ArrErr[_Point_Of_ArrErr][1] + ":</strong> Solo se Permiten Numeros.</li>" ;
									_Point_Of_ArrErr++;
									_i = _lenghtField ;
								}
							}
						}
						_Blank[_w][0] = false;
					}
				break;
			}
		}
	}//END FOR PRINCIPAL
	var _len_Blank = _Blank.length ;
	var _errBlank = new Array();
	var _Point_Of_Blank	= 0;
	
	for( var _u = 0 ; _u < _len_Blank ; _u++ )
	{
		if ( _Blank[_u][0] )
		{
			_errBlank[_Point_Of_Blank] = new Array(	_Blank[_u][1] , _Blank[_u][2] );
			_String_blank = _String_blank +	"<li><strong>" + _errBlank[_Point_Of_Blank][1] + ":</strong> Incompleto</li>";
			_Point_Of_Blank++;
		}
	}
	var _AllErr = new Array ( ArrErr , _String_ArrErr , _errBlank , _String_blank );
	return( _AllErr )

}



function ColorFieldsAndAnswer( ArrErr , _String_ArrErr , _errBlank , _String_blank , _DataFields )
{
	var _len_ArrErr = ArrErr.length;
	var _len_errBlank = _errBlank.length;
	var _len_DataFields = _DataFields.length;
	var _field;
	var _error_div = document.getElementById("div_error_real_contacto");
	var _tit = "<p>Hay campos con errores:</p>";
	var _pie = "<p>Los campos con errores se encuentran pintados.</p><p><a href=\"javascript:Cerrar();\">Volver al Formulario</a></p>";
	
	for ( var _w = 0 ; _w < _len_DataFields ; _w++ )
	{
		_field = document.getElementById( _DataFields[_w][0] ) ;
		_field.style.background = _GLOBAL_ok_Color;
	}

	if ( _len_ArrErr > 0 && _len_errBlank > 0 )
	{
		for ( var _i = 0 ; _i < _len_ArrErr ; _i++ )
		{
			_field = document.getElementById( ArrErr[_i][0] );
			_field.style.background = _GLOBAL_error_Color;
		}
		for ( var _o = 0 ; _o < _len_errBlank ; _o++ )
		{
			_field = document.getElementById( _errBlank[_o][0] );
			_field.style.background = _GLOBAL_error_Color;
		}
		_error_div.innerHTML = _tit + "<ul>" + _String_ArrErr + _String_blank +	"</ul>" + _pie;
		_error_div.style.display = "inline";
	}else if ( _len_ArrErr > 0 ){
		for ( var _i = 0 ; _i < _len_ArrErr ; _i++ )
		{
			_field = document.getElementById( ArrErr[_i][0] );
			_field.style.background = _GLOBAL_error_Color;
		}
		_error_div.innerHTML = _tit + "<ul>" + _String_ArrErr + "</ul>" + _pie ;
		_error_div.style.display = "inline";
	}else if( _len_errBlank > 0	){
		for ( var _o = 0 ; _o < _len_errBlank ; _o++ )
		{
			_field = document.getElementById( _errBlank[_o][0] );
			_field.style.background = _GLOBAL_error_Color;
		}
		_error_div.innerHTML = _tit + "<ul>" + _String_blank + "</ul>" + _pie ;
		_error_div.style.display = "inline";
	}else{
		var _form = document.getElementById( 'form1' );
		_form.submit();
	}
	_field.style.border = "1px solid #909090";
}



function isEmailAddress( emailStr )
{
	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 )
	{
		return false
	}
	var user = matchArray[1]
	var domain = matchArray[2]
	
	if ( user.match(userPat) == null )
	{
		return false
	}
	var IPArray = domain.match(ipDomainPat)
	if ( IPArray !=	null )
	{
		for ( var i=1 ; i <= 4 ; i++ )
		{
			if ( IPArray[i] > 255 )
			{
				return	false
			}
		}
	return true
	}
	var domainArray = domain.match(domainPat)
	if ( domainArray == null )
	{
		return false
	}
	var atomPat = new RegExp(atom,"g")
	var domArr = domain.match(atomPat)
	var	len = domArr.length
	if ( domArr[domArr.length-1].length < 2 ||	domArr[domArr.length-1].length > 3 )
	{
		return false
	}
	if ( len < 2 )
	{
		return false
	}
	 return true;
}



function Cerrar()
{
	var _error_div = document.getElementById("div_error_real_contacto");
	_error_div.style.display = "none";
}




function clickTextAreaContacto()
{
	var textarea = document.getElementById("consulta");
	if ( textarea.value == "Escriba aquí su consulta y nosotros le responderemos a la brevedad." )
	{
		textarea.value = "";
		textarea.style.color = "black";
		textarea.style.fontStyle = "normal";
	}
}



function blurTextAreaContacto()
{
	var textarea = document.getElementById("consulta");
	if ( textarea.value == "" )
	{
		textarea.style.color = "#909090";
		textarea.style.fontStyle = "italic";
		textarea.value = "Escriba aquí su consulta y nosotros le responderemos a la brevedad."
	}
}

function clickEmailContacto()
{
	var input = document.getElementById("email");
	if ( input.value == "Email" )
	{
		input.value = "";
		input.style.color = "black";
		input.style.fontStyle = "normal";
	}

}



function blurEmailContacto()
{
	var input = document.getElementById("email");
	if ( input.value == "" )
	{
		input.style.color = "#909090";
		input.style.fontStyle = "italic";
		input.value = "Email"
	}
}















