var colorOptionalFormElement  = "#fff";
var colorValidatedFormElement = "#f0ffff";
var colorDisabledFormElement  = "#f0ffff";
var colorRequiredFormElement  = "#c2f0c1";
var colorInvalidFormElement   = "#fcc";

var error             = 0;
var	errorFormElements = "";
var	errorMessage      = "";

var myDate = new Date();
var myYear = myDate.getFullYear();
var myMonth = myDate.getMonth()+1;
myMonth = "0"+myMonth.toString();
myMonth = myMonth.substr(myMonth.length-2,2);
var myDay = myDate.getDate();
myDay = "0"+myDay.toString();
myDay = myDay.substr(myDay.length-2,2);
var todayFormatted = myDay + "-" + myMonth + "-" + myYear;

function highlight(formElement)
{
	error = 1;
	formElement.style.backgroundColor = colorInvalidFormElement;
}

function unhighlight(formElement)
{
	if (formElement.type != "checkbox"	&&
		formElement.type != "radio"		)
	{
		if (formElement.getAttribute("rel") == "required")
		{
			formElement.style.backgroundColor = colorRequiredFormElement;
		}
		else
		{
			formElement.style.backgroundColor = colorOptionalFormElement;
		}
	}
	else
	{
		formElement.style.backgroundColor = colorValidatedFormElement;
	}
	formElement.title = "";
}

function check(formElement)
{
	if (formElement.getAttribute("rel") == "required")
	{
		if (formElement.type == "text" || formElement.type == "textarea")
		{
			if (formElement.value == "")
			{
				highlight(formElement);
				formElement.title = "Verplicht veld";
				errorFormElements += "'" + formElement.name + "'|";
			}
			else
			{
				unhighlight(formElement);
			}
		}
		if (formElement.type == "checkbox")
		{
			if (!formElement.checked)
			{
				highlight(formElement);
				formElement.title = "Verplicht veld";
				errorFormElements += "'" + formElement.name + "'|";
			}
			else
			{
				unhighlight(formElement);
			}
		}
		if (formElement.type == "radio")
		{
			var radiochecked = false;
			for (var i = formElement.length-1; i > -1; i--)
			{
				if (formElement[i].checked)
				{
					radiochecked = true;
				}
			}
			if (!radiochecked)
			{
				highlight(formElement);
				formElement.title = "Verplicht veld";
				errorFormElements += "'" + formElement.name + "'|";
			}
			else
			{
				unhighlight(formElement);
			}
		}
		if (formElement.type == "select-one" || formElement.type == "select-multiple")
		{
			if (formElement.selectedIndex == -1 || formElement.options[formElement.selectedIndex].value == "")
			{
				highlight(formElement);
				formElement.title = "Verplicht veld";
				errorFormElements += "'" + formElement.name + "'|";
			}
			else
			{
				unhighlight(formElement);
			}
		}
	}
	return (error == 0);
}

function checkForm (formObject)
{
	error             = 0;
	errorFormElements = "";
	errorMessage      = "";
	
	for (var i = 0 ; i < formObject.elements.length ; i++)
	{
		if (formObject.elements[i].disabled == false)
		{
			if (formObject.elements[i].getAttribute("rel") == "required")
			{
				check(formObject.elements[i]);
			}
		}
	}
	if (error == 0)
	{
		return true;
	}
	else
	{
		errorFormElements = errorFormElements.substr(0,errorFormElements.length-1);
		var errorFormElementsArray = errorFormElements.split("|");
		if (errorFormElementsArray.length == 1)
		{
			var errorText = "We verzoeken je vriendelijk ";
			errorText += errorFormElementsArray[0].replace(/_/g,' ');
		}
		else
		{
			var errorText = "We verzoeken je vriendelijk de velden ";
			for (var i=0; i<errorFormElementsArray.length-1; i++)
			{
				errorText += errorFormElementsArray[i].replace(/_/g,' ');
				if (i < (errorFormElementsArray.length-2))
				{
					errorText += ", ";
				}
				else
				{
					errorText += " en " + errorFormElementsArray[i+1].replace(/_/g,' ');
				}
			}
		}
		errorText += " in te vullen.";
		alert(errorText+"\n\n"+errorMessage);
		return false;
	}
}



function initForm ()
{
	if (document.forms[0])
	{
		formObject = document.forms[0];
	
		for (var i = 0 ; i < formObject.elements.length ; i++)
		{
			if (formObject.elements[i].type == "text" 			||
				formObject.elements[i].type == "select-one" 	||
				formObject.elements[i].type == "select-multiple")
			{
				formObject.elements[i].style.backgroundColor = colorOptionalFormElement;
			}
			if (formObject.elements[i].type != "radio"		&&
				formObject.elements[i].type != "checkbox"	)
			{
				if (formObject.elements[i].getAttribute("rel") == "required")
				{
					formObject.elements[i].style.backgroundColor = colorRequiredFormElement;
				}
			}
			if (formObject.elements[i].disabled == true)
			{
				if (formObject.elements[i].type != "button" &&
					formObject.elements[i].type != "submit"	)
				{
					formObject.elements[i].style.backgroundColor = colorDisabledFormElement;
				}
			}
		}
	}
}
