//===========================================================
//= Validation Java Script version 1.0 ======================
//= Developed for HyperCube Studios, all rights reserved ====
//===========================================================
//===========================================================
//= Functions developed =====================================
//===========================================================
/*

  = 1:	field											  =
  = 2:	obrigatorio										  =
  = 3:	message											  =
  =============================================================
  =============================================================
  = Description of the properties =============================
  =============================================================
  = fields:		text, number, ddd, fone, ddd_fone, date, e-mail, cep, cpf, cnpj, rg, ie, combo, senha
*/


//===========================
//= Function para validação =
//===========================
//form_name:	name do form a ser validado
function ValidationOfForm(form_name){
	var tp = new String(), msg = new String(), rq = new String();
	if(form_name === Object(form_name)){
		for(i=0; i<form_name.length; i++){
			if(form_name.elements[i].getAttribute("type") != null && form_name.elements[i].getAttribute("type") != undefined && form_name.elements[i].getAttribute("type").toLowerCase() != "submit" && form_name.elements[i].getAttribute("type").toLowerCase() != "reset" && form_name.elements[i].getAttribute("type").toLowerCase() != "image" && form_name.elements[i].getAttribute("type").toLowerCase() != "hidden"){
				tp = (form_name.elements[i].getAttribute("field") != null && form_name.elements[i].getAttribute("field") != "" && form_name.elements[i].getAttribute("field") != undefined)? Replace(form_name.elements[i].getAttribute("field").toLowerCase(), " ", "") : null;
				msg = (form_name.elements[i].getAttribute("message") == null || form_name.elements[i].getAttribute("message") == "" || form_name.elements[i].getAttribute("message") == undefined)? "Field with invalid value!!" : form_name.elements[i].getAttribute("message");
				rq = (form_name.elements[i].getAttribute("obrigatorio") == "")? true : false;
				switch(tp){


				//CAMPO TEXT
				
				case("text"):
					if(rq == true){
						if(!ValidationText(form_name.elements[i])){
							alert(msg);
							form_name.elements[i].focus();
							//form_name.elements[i].value = "";
							return false;
						};
					}else{
						if(Replace(Value(form_name.elements[i], "input"), " ", "") != ""){
							if(!ValidationText(form_name.elements[i])){
								alert(msg);
								form_name.elements[i].focus();
								//form_name.elements[i].value = "";
								return false;
							};
						};
					};
				break;

				//CAMPO NUMBER

				case("number"):
					if(rq == true){
						if(!ValidationNumber(form_name.elements[i])){
							alert(msg);
							form_name.elements[i].focus();
							//form_name.elements[i].value = "";
							return false;
						};
					}else{
						if(Replace(Value(form_name.elements[i], "input"), " ", "") != ""){
							if(!ValidationNumber(form_name.elements[i])){
								alert(msg);
								form_name.elements[i].focus();
								//form_name.elements[i].value = "";
								return false;
							};
						};
					};
				break;

				//CAMPO DATE

				case("date"):
					if(rq == true){
						if(!ValidationData(form_name.elements[i])){
							alert(msg);
							form_name.elements[i].focus();
							//form_name.elements[i].value = "";
							return false;
						};
					}else{
						if(Replace(Value(form_name.elements[i], "input"), " ", "") != ""){
							if(!ValidationData(form_name.elements[i])){
								alert(msg);
								form_name.elements[i].focus();
								//form_name.elements[i].value = "";
								return false;
							};
						};
					};
				break;

				//CAMPO CNPJ

				case("cnpj"):
					if(rq == true){
						if(!validationCNPJ(form_name.elements[i])){
							alert(msg);
							form_name.elements[i].focus();
							//form_name.elements[i].value = "";
							return false;
						};
					}else{
						if(Replace(Value(form_name.elements[i], "input"), " ", "") != ""){
							if(!validationCNPJ(form_name.elements[i])){
								alert(msg);
								form_name.elements[i].focus();
								//form_name.elements[i].value = "";
								return false;
							};
						};
					};
				break;

				//CAMPO EMAIL

				case("email"):
					if(rq == true){
						if(!ValidationEmail(form_name.elements[i])){
							alert(msg);
							form_name.elements[i].focus();
							//form_name.elements[i].value = "";
							return false;
						};
					}else{
						if(Replace(Value(form_name.elements[i], "input"), " ", "") != ""){
							if(!ValidationEmail(form_name.elements[i])){
								alert(msg);
								form_name.elements[i].focus();
								//form_name.elements[i].value = "";
								return false;
							};
						};
					};
				break;

				//CAMPO EMAIL

				case("ddd"):
					if(rq == true){
						if(!ValidationDDD(form_name.elements[i])){
							alert(msg);
							form_name.elements[i].focus();
							//form_name.elements[i].value = "";
							return false;
						};
					}else{
						if(Replace(Value(form_name.elements[i], "input"), " ", "") != ""){
							if(!ValidationDDD(form_name.elements[i])){
								alert(msg);
								form_name.elements[i].focus();
								//form_name.elements[i].value = "";
								return false;
							};
						};
					};
				break;
				case("fone"):
					if(rq == true){
						if(!ValidationFone(form_name.elements[i])){
							alert(msg);
							form_name.elements[i].focus();
							//form_name.elements[i].value = "";
							return false;
						};
					}else{
						if(Replace(Value(form_name.elements[i], "input"), " ", "") != ""){
							if(!ValidationFone(form_name.elements[i])){
								alert(msg);
								form_name.elements[i].focus();
								//form_name.elements[i].value = "";
								return false;
							};
						};
					};
				break;
				case("ddd_fone"):
					if(rq == true){
						if(!ValidationDDD(form_name.elements[i])){
							alert(msg);
							form_name.elements[i].focus();
							form_name.elements[i].value = "";
							return false;
						};
					}else{
						if(Replace(Value(form_name.elements[i], "input"), " ", "") != ""){
							if(!ValidationDDD(form_name.elements[i])){
								alert(msg);
								form_name.elements[i].focus();
								form_name.elements[i].value = "";
								return false;
							};
						};
					};
				break;
				case("cpf"):
					if(rq == true){
						if(!ValidationCPF(form_name.elements[i])){
							alert(msg);
							form_name.elements[i].focus();
							form_name.elements[i].value = "";
							return false;
						};
					}else{
						if(Replace(Value(form_name.elements[i], "input"), " ", "") != ""){
							if(!ValidationCPF(form_name.elements[i])){
								alert(msg);
								form_name.elements[i].focus();
								form_name.elements[i].value = "";
								return false;
							};
						};
					};
				break;
				

				case("combo"):
					if(rq == true){
						if(!ValidationCombo(form_name.elements[i].value)){
							alert(msg);
							form_name.elements[i].focus();
							//form_name.elements[i].value = "";
							return false;
						};
					};
				break;

				case("rg"):
					if(rq == true){
						if(!ValidationRG(form_name.elements[i])){
							alert(msg);
							form_name.elements[i].focus();
							//form_name.elements[i].value = "";
							return false;
						};
					}else{
						if(Replace(Value(form_name.elements[i], "input"), " ", "") != ""){
							if(!ValidationRG(form_name.elements[i])){
								alert(msg);
								form_name.elements[i].focus();
								//form_name.elements[i].value = "";
								return false;
							};
						};
					};
				break;
		
				case("senha"):
					if(rq == true){
						if (form_name.elements[i].value != '' && form_name.elements[i+1].value != ''){
							if(form_name.elements[i].value != form_name.elements[i+1].value)
							{
								alert(msg);
								form_name.elements[i].focus();
								return false;
							};
						}else{
							alert(msg);
							return false;
						};
					};
				break;	
				};

			};
		};
	};
	return true;
};