var emailFlag = false;
var captchaFlag = false;

function validateName()
{
    var name = document.getElementById("name");
    var error = document.getElementById("inputerror");
    var illegal = new RegExp("[0-9`']");
    if (illegal.test(name.value))
    {
       	error.innerHTML = "Please enter a valid name";
		name.style.color = "red";
		error.style.color = "red";
		nameFlag = false;
		return false;
    }

    if (name.value.length < 2)
    {
		error.innerHTML = "That name is too short";
		name.style.color = "red";
		error.style.color = "red";
		nameFlag = false;
		return false;
    }
    else
    {
		error.innerHTML = "Name OK";
		name.style.color = "black";
		error.style.color = "007788";
		nameFlag = true;
		return true;
    }
}

function validateAddress()
{
    var name = document.getElementById("address");
    var error = document.getElementById("inputerror");
    var illegal = new RegExp("[0-9`']");
    if (illegal.test(name.value))
    {
       	error.innerHTML = "Please enter a valid city";
		address.style.color = "red";
		error.style.color = "red";
		addressFlag = false;
		return false;
    }

    if (name.value.length < 2)
    {
		error.innerHTML = "That city name is too short";
		address.style.color = "red";
		error.style.color = "red";
		addressFlag = false;
		return false;
    }
    else
    {
		error.innerHTML = "City name OK";
		address.style.color = "black";
		error.style.color = "007788";
		addressFlag = true;
		return true;
    }
}
function validateMessage()
{
    var message = document.getElementById("message");
    var error = document.getElementById("inputerror");
    var illegal = new RegExp("[`']");
    if (illegal.test(message.value))
    {
       	error.innerHTML = "Please enter a valid message";
		message.style.color = "red";
		error.style.color = "red";
		messageFlag = false;
		return false;
    }

    if (message.value.length < 5)
    {
		error.innerHTML = "That message is too short";
		message.style.color = "red";
		error.style.color = "red";
		messageFlag = false;
		return false;
    }
    else
    {
		error.innerHTML = "Message OK";
		message.style.color = "black";
		error.style.color = "007788";
		messageFlag = true;
		return true;
    }
}

function validateCell()
{
    var phone = document.getElementById("cell");
    var error = document.getElementById("inputerror");
    if (isNaN(phone.value) || phone.value.length < 10 )
    {
		error.innerHTML = "Please enter a valid phone number";
		phone.style.color = "red";
		error.style.color = "red";
		cellFlag = false;
		return false;
    }
    else
    {
		error.innerHTML = "Cellphone OK";
		phone.style.color = "black";
		error.style.color = "007788";
		cellFlag = true;
		return true;
    }
}

function validateEmail()
{
	var email = document.getElementById("email");
	var error = document.getElementById("inputerror");
	var illegal = new RegExp("[^A-Za-z0-9@.-]");
	var atpos = email.value.indexOf("@");
	var dotpos = email.value.lastIndexOf(".");

	if (illegal.test(email.value))
	{
		email.style.color = "red";
		error.innerHTML = "Not allowed";
		error.style.color = "red";
		emailFlag = false;
		return false;
	}

	if (atpos < 1 || (dotpos - atpos) < 2)
	{
		email.style.color = "red";
		error.innerHTML = "Not a valid email address";
		error.style.color = "red";
		emailFlag = false;
		return false;
	}
	else
	{
		email.style.color = "black";
		error.innerHTML = "Email OK";
		error.style.color = "007788";
		emailFlag = true;
		return true;
	}
}

function validateCaptcha()
{
	var num1 = parseInt(document.getElementById("num1").innerHTML);
	var num2 = parseInt(document.getElementById("num2").innerHTML);
	var res = num1 + num2;
	var ans = document.getElementById("captcha");
	var error = document.getElementById("inputerror");

    if (isNaN(ans.value) || parseInt(ans.value) != res)
    {
		error.innerHTML = "Please try the little mathematics sum again.";
		ans.style.color = "red";
		error.style.color = "red";
		captchaFlag = false;
		return false;
    }
    else
    {
		error.innerHTML = "Correct";
		ans.style.color = "black";
		error.style.color = "007788";
		captchaFlag = true;
		return true;
    }

}

function generateCaptcha()
	{
		var num1 = document.getElementById("num1");
		var num2 = document.getElementById("num2");
		num1.innerHTML = (Math.floor(Math.random()*11));
		num2.innerHTML = (Math.floor(Math.random()*11));
	}

function validateAll()
{
	validateName();
	validateEmail();
	validateCaptcha();
	validateMessage();
	validateCell();
	validateAddress();
	var error = document.getElementById("inputerror");
	if (!emailFlag )
	{
		error.style.color = "red";
		error.innerHTML = "Please fill in or correct the email address";
		return false;
	}
	if (!nameFlag )
	{
		error.style.color = "red";
		error.innerHTML = "Please fill in or correct your name";
		return false;
	}
	if (!messageFlag )
	{
		error.style.color = "red";
		error.innerHTML = "Please fill in or correct the message";
		return false;
	}
	if (!captchaFlag )
	{
		error.style.color = "red";
		error.innerHTML = "Please fill in or correct the mathematics sum";
		return false;
	}
	if (!cellFlag )
	{
		error.style.color = "red";
		error.innerHTML = "Please fill in or correct the cellphone number";
		return false;
	}
	if (!addressFlag )
	{
		error.style.color = "red";
		error.innerHTML = "Please fill in or correct the city/suburb";
		return false;
	}

	return true;
}
