//validation functions for forms

function eraseText(elem,text){
	if (elem.value == text){
		elem.value = "";
	}
}

//===========================================================//

function checkTest(nQuestions,nAnswers) {
	var error = "";
	var contQ = 0;
	var contA = 0;
	
	for (contQ = 0;contQ<nQuestions;contQ++){
		var q = document.getElementById('question'+contQ);
		if (q.value.length == 0) {
			error += " - Question "+(contQ+1)+" is empty \n";
		}
		var someCheck = false;
		for (contA = 0;contA<nAnswers;contA++){
			var ca = document.getElementById('checkAnswer'+contQ+contA);
			var a = document.getElementById('answer'+contQ+contA);
			
			if (ca.checked == true){
				someCheck = true;
			}
			if (a.value.length == 0) {
				error += " - Answer "+(contQ+1)+"."+(contA+1)+ " is empty \n";
			}
		}
		if (!someCheck){
			error += " - Question "+(contQ+1)+" has no anwser selected \n";
		}
	}
	
	var rPDF = document.getElementById('relatedPDFURL');
	var rHTML = document.getElementById('relatedHTMLULR');
	
	if ((rPDF == null || rPDF.value.length == 0) && (rHTML == null || rHTML.value.length == 0)){
		error += " - Either related PDF or HTML location must be introduced\n";
	}
	
	if (error.length > 0){
		alert (error);
	}
	
	return (error.length == 0);
}

//===========================================================//

function checkEmail (mail){
	var result;
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
	
	if (filter.test(mail))
		result=true;
	else{
		result=false;
	}
	return (result);
}

//===========================================================//

function checkPhone(p){
	//var phoneFilter = /^(\(\+\d{2}\))?\d{9}$/;
	var phoneFilter = /^\d*$/;
	if (phoneFilter.test(p))
		result=true;
	else{
		result=false;
	}
	return (result);
}

//===========================================================//

function checkDate(d)
{
	result = "";
	var dateFilter = /^\d{2}-\d{2}-\d{4}$/;
	
	if (dateFilter.test(d) == false){
		result += " - Wrong date format (DD-MM-YYYY)";
	}
	else{
		//check if is a valid date
		var date_array = d.split('-');
		var day = date_array[0];
		// Attention! Javascript consider months in the range 0 - 11
		var month = date_array[1] - 1;
		var year = date_array[2];
		
		//alert ("Extracted date: "+day+" "+month+" "+year);
		
		// This instruction will create a date object
		source_date = new Date(year,month,day);
		
		//alert ("Created date: "+source_date.getDate()+" "+source_date.getMonth()+" "+source_date.getFullYear());
		
		if(year != source_date.getFullYear())
		{
			result += " - Year is not valid!\n";
		}
		
		if(month != source_date.getMonth())
		{
			result += " - Month is not valid!\n";
		}
		
		if(day != source_date.getDate())
		{
			result += " - Day is not valid!\n";
		}
	}
	return (result);
}

//===========================================================//

function checkUser(){
	var name = document.getElementById('nameInput');
	var surname = document.getElementById('surnameInput');
	var email = document.getElementById('emailInput');
	var pass1 = document.getElementById('passwordInput');
	var pass2 = document.getElementById('passwordInput2');
	var phone = document.getElementById('phoneInput');
	var address = document.getElementById('addressInput');
	var city = document.getElementById('cityInput');
	var regDate = document.getElementById('dateSignUpInput');
	
	var error="";
	
	if (name.value.length == 0){
		error += " - Name cannot be empty\n"
	}
	if (surname.value.length == 0){
		error += " - Surname cannot be empty\n"
	}
	if (email.value.length == 0){
		error += " - eMail cannot be empty\n"
	}
	else {
		//check the formtat with a Regex
		if (!checkEmail(email.value)){
			error += " - Write a valid eMail\n";
		}
	}
	if (pass1.value.length == 0){
		error += " - Password cannot be empty\n"
	}
	else {
		if (pass1.value.length < 6){
			error += " - Password must have 6 or more characters\n";
		}
	}
	if (pass2.value.length == 0){
		error += " - Password confirmation cannot be empty\n"
	}
	//check if both password are equal
	if (pass1.value != pass2.value){
		error += " - Passwords are different\n";
	}
	if (phone.value.length > 0){
		//check if the cell phone has the correct format
		if (!checkPhone(phone.value)){
			error += "- Wrong phone (Only numbers)";
		}
	}
	if (regDate.value.length > 0){
		error += checkDate(regDate.value);
	}
	else {
		error += "- Date cannot be empty\n";
	}
	
	
	if (error.length > 0){
		alert (error);
	}
	
	return (error.length == 0);
}

//===========================================================//

function checkDocumentForm(){
	var name = document.getElementById('nameInput');
	var surname = document.getElementById('surnameInput');
	var email = document.getElementById('emailInput');
	
	var error="";
	
	if (name.value.length == 0){
		error += " - Name cannot be empty\n"
	}
	if (surname.value.length == 0){
		error += " - Surname cannot be empty\n"
	}
	
	if (email.value.length == 0){
		error += " - Email cannot be empty\n"
	}
	else {
		//check the formtat with a Regex
		if (!checkEmail(email.value)){
			error += " - Write a valid eMail\n";
		}
	}
	
	if (error.length > 0){
		alert (error);
	}
	
	return (error.length == 0);
}

//===========================================================//

function toggleSubmit(check, btn) {
	if (check.checked == true){
		btn.disabled = false;
	}
	else {
		btn.disabled = true;
	}
}

