function onLoadForm(widget)
{
	widget.addEventListener("formLoaded", function()
	{
		var id = widget.item.id;
		
		document.getElementById("pageName").value = activeMenu;
		document.getElementById("categoryName").value = object;
	});
	
	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";
		}
	});
}

// Shop action

function onLoadShopActionForm(widget)
{
	widget.addEventListener("formLoaded", function()
	{
		document.getElementById("timeTable").style.visibility = "visible";
		
		if (window.formTime != null && window.formShop != null && window.formObjectId != null)
		{
			document.getElementById("formContainer").style.visibility = "visible";
			
			document.getElementById("tijdField").value = formTime;
			document.getElementById("winkelField").value = formShop;
			document.getElementById("actionObjectId").value = formObjectId;
		}
	});
	
	widget.addEventListener("beforeSubmit", function()
	{
		var id = widget.item.id;
		var form = document.getElementById("form_" + id);
		if (form)
		{
			form.style.display = "none";
			document.getElementById("timeTable").style.display = "none";
		}
		
		var done = document.getElementById("done_" + id);
		if (done)
		{
			done.style.display = "block";
		}
	});
	
	widget.addEventListener("submitted", function(widget, params)
	{
		xajax.call("xajax_submitObjectLock", { parameters: [params.resultSetId], context: { callback: function() {}}});
	});
}

function checkMax(checkBox, maxAmount)
{
	var elements = document.getElementsByName(checkBox.name);
	var checked = 0;
	for (var i = 0; i < elements.length; i++)
	{
		if (elements[i].checked)
		{
			checked++;
		}
	}
	
	if (checked > 3)
	{
		return false;
	}
	
	return true;
}

function updateTimeTable()
{
	xajax.call("xajax_getHTML", {parameters:["timeTable"], context: {
		callback: function(html)
		{
			document.getElementById("timeTable").innerHTML = html;
		}
	}});
}

function lockObject(objId, timeStr, shopStr)
{
	if (!isNaN(objId))
	{
		xajax.call("xajax_lockObject", { parameters: [objId], context: { callback: function(result)
		{
			if (result == "objLocked")
			{
				window.alert("Het door jou gekozen tijdstip is voorlopig vastgelegd. Vul het formulier graag binnen 10 minuten in, anders komt u gekozen tijdstip automatisch weer vrij voor een ander. Bedankt.");
				
				document.getElementById("tijdField").value = timeStr;
				document.getElementById("winkelField").value = shopStr;
				document.getElementById("actionObjectId").value = objId;
				
				document.getElementById("formContainer").style.visibility = "visible";
				
				updateTimeTable();
			}
			else if (result == "objExists")
			{
				window.alert("Dit tijstip is reeds bezet. Kies a.u.b. een ander tijdstip.");
			}
			else if (result == "objError")
			{
				window.alert("Het vastleggen van het tijdstip is mislukt. Probeer a.u.b. nogmaals.");
			}
		}}});
	}
	
	return false;
}

function checkShopAction(form)
{
	var objId = Number(document.getElementById("actionObjectId").value);
	if (objId <= 0)
	{
		window.alert("Dit tijdstip isongeldig. Selecteer a.u.b. een ander tijdstip.");
		return false;
	}
	
	xajax.call("xajax_checkObjectLock", { parameters: [objId], context: { callback: function(result)
	{
		if (result == "objLocked")
		{
			form_check(form, "U heeft niet alle vragen volledig of juist beantwoord.");
		}
		else
		{
			updateTimeTable();
			
			window.alert("Uw reservering is verlopen. Selecteer opnieuw een tijdstip.");
		}
	}}});
	
	return false;
}

function reactionCheck(msg)
{
	var emailField = document.getElementById("email");
	var websiteField = document.getElementById("website");
	var commentField = document.getElementById("comment");
	
	var fail = false;
	
	var regXemail = new RegExp(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*\.(\w{2}|(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum))$/);
	var regXsite = new RegExp(/^http(s)?:\/\/[a-z0-9-]+(.[a-z0-9-_!]+)*(:[0-9]+)?(\/.*)?$/);
	
	if (!regXemail.test(emailField.value))
	{
		fail = true;
		document.getElementById("email_id").className = "failed";
	}
	if (websiteField.value != "" && websiteField.value != "http://")
	{
		if (!regXsite.test(websiteField.value.toLowerCase()))
		{
			fail = true;
			document.getElementById("website_id").className = "failed";
		}
	}
	if (commentField.value == "")
	{
		fail = true;
		document.getElementById("reactie_id").className = "failed";
	}

	if (fail)
	{
		window.alert(msg);
		return false;
	}
}

function check_register(f, msg)
{
	var checkFail = false;
	var pw = "";var pw2 = "";
	var email = ""; var email2 = "";
		
	for (var i = 0; i < f.elements.length; i++)
	{
		if ((f.elements[i].type == "text" || f.elements[i].type == "password" || f.elements[i].type == "textarea") && f.elements[i].name != "company")
		{
			switch(f.elements[i].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(f.elements[i].value))
					{
						checkFail = true;
						document.getElementById("email").className = "failed";
					}
					else
					{
						email = f.elements[i].value;
						document.getElementById("email").className = "normal";
					}
					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(f.elements[i].value))
					{
						checkFail = true;
						document.getElementById("emailForControl").className = "failed";
					}
					else
					{
						email2 = f.elements[i].value;
						document.getElementById("emailForControl").className = "normal";
					}
					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(f.elements[i].value))
					{
						checkFail = true;
						document.getElementById("username").className = "failed";
					}
					else
					{
						document.getElementById("username").className = "normal";
					}
					break;
				case "postalcode":
					var regX = new RegExp(/^[0-9]{4}\s*[a-zA-Z]{2}$/);
					if (!regX.test(f.elements[i].value))
					{
						checkFail = true;
						document.getElementById("postalcode").className = "failed";
					}
					else
					{
						document.getElementById("postalcode").className = "normal";
					}
					break;
				case "telephone":
					var regX = new RegExp(/^[0-9]{3,4}(\s|\-)?[0-9]{6,7}$/);
					if (!regX.test(f.elements[i].value))
					{
						checkFail = true;
						document.getElementById("telephone").className = "failed";
					}
					else
					{
						document.getElementById("telephone").className = "normal";
					}
					break;
				case "password":
					if (userId > -1)
					{
						if (f.elements[i].value != "")
						{
							if(f.elements[i].value.length < 6)
							{
								checkFail = true;
								document.getElementById("pw").className = "failed";
							}
							else
							{
								pw = f.elements[i].value;
								document.getElementById("pw").className = "normal";
							}	
						}
					}
					else
					{
						if (f.elements[i].value == "" || f.elements[i].value.length < 6)
						{
							checkFail = true;
							document.getElementById("pw").className = "failed";
						}
						else
						{
							pw = f.elements[i].value;
							document.getElementById("pw").className = "normal";
						}
					}
					break;
				case "password2":
					if (userId > -1)
					{
						if (f.elements[i].value != "")
						{
							if(f.elements[i].value.length < 6)
							{
								checkFail = true;
								document.getElementById("pw2").className = "failed";
							}
							else
							{
								pw2 = f.elements[i].value;
								document.getElementById("pw2").className = "normal";
							}
						}
					}
					else
					{
						if (f.elements[i].value == "" || f.elements[i].value.length < 6)
						{
							checkFail = true;
							document.getElementById("pw2").className = "failed";
						}
						else
						{
							pw2 = f.elements[i].value;
							document.getElementById("pw2").className = "normal";
						}
					}
					break;
				default:
					if (userId == -1)
					{
						if (f.elements[i].value == "")
						{
							checkFail = true;
							document.getElementById(f.elements[i].name).className = "failed";
						}
						else
						{
							document.getElementById(f.elements[i].name).className = "normal";
						}
					}
					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;
	}
}
