function onLoadForm(widget)
{
	widget.addEventListener("beforeSubmit", function()
	{
		var id = widget.item.id;
		var form = document.getElementById("form_" + id);
		if (form)
		{
			form.style.display = "none";
		}
		
		var done = document.getElementById("done_" + id);
		if (done)
		{
			done.style.display = "block";
		}
	});
}

function setFailed(input, label, bool)
{
	var input = input || false;
	
	var label = label || false;
	
	if (bool)
	{
		if (input)
		{
			input.className = input.className.match(/failed-input/) ? input.className : input.className += " failed-input";
		}
		
		if (label)
		{
			label.className = label.className.match(/failed-label/) ? label.className : label.className += " failed-label";
		}
	}
	else
	{
		if (input)
		{
			input.className = input.className.replace(" failed-input", "");
		}
		
		if (label)
		{
			label.className = label.className.replace(" failed-label", "");
		}
	}
}

function loadForm(path, id)
{
	var divObject = document.getElementById("xajaxFormDiv");

	if (divObject)
	{
		var params = {
			path: path,
			id: id
		};
		
		xajax.call("xajax_getForm", {parameters:[params], context: {
			callback: function(html)
			{
				divObject.innerHTML = html;
				divObject.style.backgroundImage = 'none';
			}
		}});
	}
}

function check_formFields(f, msg)
{
	var checkFail = false;
	var pw = "";var pw2 = "";
	var email = ""; var email2 = "";
	
	for (var i = 0; i < f.elements.length; i++)
	{
		var element = f.elements[i];
		
		var label = document.getElementById(element.name + "_id");

		setFailed(element, label, false);
		
		if ((element.type == "text" || element.type == "password" || element.type == "textarea")
			&& element.name != "company" && element.className.match(/obligatory/))
		{			
			switch(element.name)
			{
				case "email":
					var regX = new RegExp(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*\.(\w{2}|(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum))$/);
					if (!regX.test(element.value))
					{
						checkFail = true;
						
						setFailed(element, label, true);
					}
					break;
				case "emailForControl":
					var regX = new RegExp(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*\.(\w{2}|(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum))$/);
					if (!regX.test(element.value))
					{
						checkFail = true;

						setFailed(element, label, true);
					}
					break;
				case "username":
					var regX = new RegExp(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*\.(\w{2}|(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum))$/);
					if (!regX.test(element.value))
					{
						checkFail = true;
						
						setFailed(element, label, true);
					}
					break;
				case "postalcode":
					var regX = new RegExp(/^[0-9a-zA-Z\-\s]+$/);
					if (!regX.test(element.value))
					{
						checkFail = true;
						
						setFailed(element, label, true);
					}
					break;
				case "telephone":
					//var regX = new RegExp(/^((\+\d{1,3}(-| )?\(?\d\)?(-| )?\d{1,5})|(\(?\d{2,6}\)?))(-| )?(\d{3,4})(-| )?(\d{4})(( x| ext)\d{1,5}){0,1}$/);
					var regX = new RegExp(/^[0-9\s\-\(\)\+]+$/);
					if (!regX.test(element.value))
					{
						checkFail = true;

						setFailed(element, label, true);
					}
					break;
				case "website":
					var regX = new RegExp(/^(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&amp;:/~\+#]*[\w\-\@?^=%&amp;/~\+#])?$/);
					if (element.value != "" && element.value != "http://")
					{
						if (!regX.test(element.value.toLowerCase()))
						{
							checkFail = true;

							setFailed(element, label, true);
						}
					}
					break;
				case "password":
					if (userId > -1)
					{
						if ((element.value == "" && document.getElementById("oldPassword").value != "") || element.value != "")
						{
							if(element.value.length < 6)
							{
								checkFail = true;
								
								setFailed(element, label, true);
							}
							else
							{
								pw = element.value;
							}	
						}
					}
					else
					{
						if (element.value == "" || element.value.length < 6)
						{
							checkFail = true;
							
							setFailed(element, label, true);
						}
						else
						{
							pw = element.value;
						}
					}
					break;
				case "password2":
					if (userId > -1)
					{
						if ((element.value == "" && document.getElementById("oldPassword").value != "") || element.value != "")
						{
							if(element.value.length < 6)
							{
								checkFail = true;
								
								setFailed(element, label, true);
							}
							else
							{
								pw2 = element.value;
							}
						}
					}
					else
					{
						if (element.value == "" || element.value.length < 6)
						{
							checkFail = true;
							
							setFailed(element, label, true);
						}
						else
						{
							pw2 = element.value;
						}
					}
					break;
				default:
					if (element.value == "")
					{
						checkFail = true;
						
						setFailed(element, label, true);
					}
					break;
			}
		}
	}	
	
	if (checkFail)
	{
		if (email != "" && email2 != "" && email != email2)
		{
			//window.alert("De twee ingevulde email adressen komen niet overeen.");
			getTranslation("De twee ingevulde email adressen komen niet overeen.");
		}
		else if (pw != "" && pw2 != "" && pw != pw2)
		{
			//window.alert("De twee ingevulde wachtwoorden komen niet overeen.");
			getTranslation("De twee ingevulde wachtwoorden komen niet overeen.");
		}
		else
		{
			window.alert(msg);
		}
		
		return false;
	}
	else if (email != "" && email2 != "" && email != email2)
	{
		//window.alert("De twee ingevulde email adressen komen niet overeen.");
		getTranslation("De twee ingevulde email adressen komen niet overeen.");
		return false;
	}
	else if (pw != "" && pw2 != "" && pw != pw2)
	{
		//window.alert("De twee ingevulde wachtwoorden komen niet overeen.");
		getTranslation("De twee ingevulde wachtwoorden komen niet overeen.");
		return false;
	}
	
	return true;
}
