var VALIDATION_OFF = 0;
var VALIDATION_ADMIN = 1;
var VALIDATION_SECTION1 = 2;
var VALIDATION_SECTION2 = 3;
var VALIDATION_SECTION3 = 4;
var VALIDATION_SECTION_REMOVE = 5;
var VALIDATION_CLARIFY_FORM = 6;


// JavaScript Document


function dropdownNotSelected(select_box, msg){
	if (select_box.selectedIndex == -1){
		window.alert(msg);
		return true;
	}	
	return false;
}
function nameEmpty(input_box, msg){
	if (input_box.value == "" || input_box.value == null){
		window.alert(msg);
		return true;
	}
	return false;
}

function emailValidation(field, msg){
	// n conter caracteres estranhos so de a-z . e arroba
	// conter uma unica arroba e 1 ou mais pontos	
	with (field){
		apos=value.indexOf("@")
		dotpos=value.lastIndexOf(".")
		if (apos<1||dotpos-apos<2){
			window.alert(msg);
			return false;
		}
		else{
			return true;
		}
	}
}

function passConf(p1, p2){
	if(p1.value == "" || p1.value == null){
		alert("Palavra-passe nula.");
		return false;
	}else if(p1.value != p2.value){
		alert("Palavra-passe difere nos dois campos.");
		return false;
	}
	return true;
}

function valAdministrator(){
	var input_box = document.getElementById("nome");
	
	if (nameEmpty(input_box, "Campo \""+input_box.name+"\" inválido.")){
		return false;								   
	}
	if (!emailValidation(document.getElementById("user"), "E-Mail inválido.")){
		return false;
	}
	if (!passConf(document.getElementById("pass_nova"), document.getElementById("pass_nova_conf"))){
		return false;
	}
	return true;
}
function valSectionNameAndModel(){
	var input_box = document.getElementById("nome");
	
	if (nameEmpty(input_box, "Campo \""+input_box.name+"\" inválido.")){
		return false;
	}
	if (dropdownNotSelected(document.getElementById("sel_models"), "Modelo não seleccionado.")){
		return false;
	}	
	return true;	
}



function valClarifyForm(){
	if (nameEmpty(document.getElementById("nome"), "Campo [Nome] vazio.")){
		return false;
	}
	if (isNaN(document.getElementById("numero").value)){
		window.alert("Campo [Numero] inválido.");
		return false;
  	}
	if (!(document.getElementById("numero").value.length == 9 || document.getElementById("numero").value.length == 0)){
		window.alert("Campo [Numero] inválido, introduza os 9 digitos do numero.");
		return false;
  	}
	if (!emailValidation(document.getElementById("email"), "E-Mail inválido.")){
		return false;
	}
	if (nameEmpty(document.getElementById("assunto"), "Campo [Assunto] vazio.")){
		return false;
	}
	if (nameEmpty(document.getElementById("mensagem"), "Campo [Questão] vazio.")){
		return false;
	}
	return true;
}


/*------------------------------------------------------------------------------*/
function onSubmit2(action, action_id, form_type){
	document.getElementById("acID").value = action_id;
	onSubmit(action, form_type);	
}

function onSubmit(action, form_type) {
	var validated;

	switch(form_type){
		case VALIDATION_OFF:
			validated = true;
			break;
		case VALIDATION_ADMIN: 
			validated = valAdministrator();
			break;
		case VALIDATION_SECTION1:
			validated = valSectionNameAndModel();
			break;
		case VALIDATION_SECTION2:
			validated = true;
			break;
		case VALIDATION_SECTION3:
			validated = true;
			break;
		case VALIDATION_SECTION_REMOVE:
			validated = window.confirm("Tem a certeza que deseja \nremover a secção actual e todas as \nsuas sub-secções?");
			break;
		case VALIDATION_CLARIFY_FORM:
			validated = valClarifyForm();
			break;
		default:
			validated = false;
	}
	
	if (validated){
		document.getElementById("ac").value = action;
		//alert(document.getElementById("ac").value);
		document.getElementById("form1").submit();
	}else{
		//alert("validacao invalida, formulario nao submetido");	
	}
}
