var err_color = '#FFFF99'
function Form_Sat_Validator(objForm){
	var field_value, field_name, required, validation;
	for (i=0; i<objForm.elements.length; i++){

		required = objForm.elements[i].required;
		field_value = objForm.elements[i].value;
		field_name = objForm.elements[i].field_name;
		field_validation = objForm.elements[i].validation;
		field_foco = objForm.elements[i].foco;
		
		switch (required){
			case '0':
				if (field_value == ''){
					alert('O campo '+field_name+' é de preenchimento obrigatório');
					objForm.elements[i].style.backgroundColor = err_color;
					if(field_foco)
						objForm.elements[i].focus(); 
					return false;
				}else{
					validation = Validation_Method(field_value, field_validation, field_name)
					if (!validation){
						objForm.elements[i].style.backgroundColor = err_color;
						return false;
					}
				}
			break;
			case '1':
				if (field_value!=''){
					validation = Validation_Method(field_value, field_validation, field_name)
					if (!validation){
						objForm.elements[i].style.backgroundColor = err_color;
						if(field_foco)
							objForm.elements[i].focus(); 
						return false;
					}
				} 
			break;			
			default:
				if (i>=objForm.elements.length)
					return true;
			break;
		}
	}
}

function Validation_Method(objValue, psType, objName){
	if(typeof(psType)!='undefined')
		psType = psType.toUpperCase()
	else
		psType = 'NULL'
	
	switch(psType){
		case 'DATA':
			return Date_Validation(objValue, objName);
			break;
		case 'EMAIL':
			return IsValidEmail(objValue, objName)
			break;
		case 'MONEY':
			return IsValidMoney(objValue, objName)
			break;
		case 'ALPHA':
			return isValidAlphabet(objValue, objName)
			break;
		case 'NUMERIC':
			return isValidNumbers(objValue, objName)
			break;
		case 'CPF':
			return isValidCPF(objValue);
			break;
		default:
			return true;
			break
	}
}