function onLoadForm(widget)
{
	widget.addEventListener("beforeSubmit", function()
	{
		document.getElementById("formMessage"+widget.item.id).style.display = "block";
		document.getElementById("formDiv"+widget.item.id).style.display = "none";
	});
}

function displayRegistrationFields()
{
	if (document.getElementById("companyType_id") != undefined)
	{
		var elem = document.getElementById("companyType_id");
		if(elem.selectedIndex == 0)
		{
			document.getElementById("kvk_row").style.display = "none";
			document.getElementById("kvk_row").style.visibility = "hidden";
			document.getElementById("btw_row").style.display = "none";
			document.getElementById("btw_row").style.visibility = "hidden";
			document.getElementById("company_row").style.display = "none";
			document.getElementById("company_row").style.visibility = "hidden";
		}
		else
		{
			document.getElementById("kvk_row").style.display = "table-row";
			document.getElementById("kvk_row").style.visibility = "visible";
			document.getElementById("btw_row").style.display = "table-row";
			document.getElementById("btw_row").style.visibility = "visible";
			document.getElementById("company_row").style.display = "table-row";
			document.getElementById("company_row").style.visibility = "visible";
		}
	}
}

function updateUserName()
{
	var v = document.getElementById("email_id").value;
	var elem = document.getElementById("username_id");
	
	if (elem.value == "")
	{
		elem.value = v;
	}
}

function setLabel(e, label, type)
{
	var failed = false;
	switch(type)
	{
		default:
			if (e.value == "")
			{
				label.className = "failed";
				failed = true;
			}
			break;
		case "telephone":
			var regX = new RegExp(/^[0-9 ]+$/);
			if (!regX.test(e.value))
			{
				label.className = "failed";
				failed = true;
			}
			break;
		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(e.value))
			{
				label.className = "failed";
				failed = true;
			}
		case "password":
			if (e.value.length < 6)
			{
				label.className = "failed";
				failed = true;
			}
			else
			{
				label.className = "";
			}	
			break;
	}
	return failed;
}

function check_register(form, msg)
{
	var failed = false;
	var pw = "";
	var pw2 = "";
	var bday = false;
	document.getElementById("birthday").className = "";
	
	var elements = form.elements;
	
	for (var i = 0; i < elements.length; i++)
	{
		var e = elements[i];
		
		if (e.name.length > 0)
		{
			var label = document.getElementById(e.name);
			if (label)
				label.className = "";
			
			var fieldFailed = false;
			
			switch(e.name)
			{
				case "firstName":
					fieldFailed = setLabel(e, label, "string");
					break;
				case "lastName":
					fieldFailed = setLabel(e, label, "string");
					break;
				case "address":
					fieldFailed = setLabel(e, label, "string");
					break;
				case "number":
					fieldFailed = setLabel(e, label, "string");
					break;
				case "postalcode":
					fieldFailed = setLabel(e, label, "string");
					break;
				case "city":
					fieldFailed = setLabel(e, label, "string");
					break;
				case "telephone":
					fieldFailed = setLabel(e, label, "telephone");
					break;
				case "fax":
					if (e.value != "")
						fieldFailed = setLabel(e, label, "telephone");
					break;
				case "mobile":
					if (e.value != "")
						fieldFailed = setLabel(e, label, "telephone");
					break;
				case "email":
					fieldFailed = setLabel(e, label, "email");
					break;
				case "username":
					fieldFailed = setLabel(e, label, "email");
					break;
				case "password":
					label = document.getElementById("pw");
					setLabel(e, label, "password");
					pw = e.value;
					break;
				case "dd": 
					var regX = /(0[1-9]|[12][0-9]|3[0-1])/;
					if (!regX.test(e.value))
					{
						fieldFailed = true;
						bday = true;
						
						document.getElementById("birthday").className = "failed";
					}
					break;
				case "mm": 
					var regX = /(0[1-9]|1[0-2])/;
					if (!regX.test(e.value))
					{
						fieldFailed = true;
						bday = true;
						document.getElementById("birthday").className = "failed";
					}
					break;
				case "yyyy":
					var regX = /(19|20)\d{2}/;
					if (!regX.test(e.value))
					{
						fieldFailed = true;
						bday = true;
						
						document.getElementById("birthday").className = "failed";
					}
					break;
				case "password2":
					label = document.getElementById("pw2");
					setLabel(e, label, "password");
					pw2 = e.value;
					break;
			}
			
			if (fieldFailed)
			{
				failed = fieldFailed;
			}
		}
	}
	
	if (bday)
	{
		document.getElementById("birthday").className = "failed";
	}
	
	if (failed)
	{
		window.alert(msg);
		return false;
	}

	if (pw == "" || pw2 == "" || pw != pw2)
	{
		window.alert(translate('De twee ingevulde wachtwoorden komen niet overeen.'));
		return false;
	}
}

function checkStep1()
{
	if (document.getElementById("productSelect") == undefined)
	{
		window.alert(translate("Er is nog geen product gekozen."));
		return false;
	}
}

function showProducts(selectBox)
{
	var params = new Object();
	params["action"] = "step1";
	params["template"] = "order/step1_select.tpl";
	params["id"] = selectBox.options[selectBox.selectedIndex].value;

	var div = document.getElementById("selectFields");
	if (div)
	{
		xajax.call("xajax_getHTML", {parameters:[params], context: {
			callback: function(html)
			{
				div.innerHTML = html;
			}
		}});
	}
}

function checkSendOption(checkBox)
{
	var checkboxes = new Array("sendPhoto", "mailPhoto", "editPhoto", "uploadPhoto");
	
	for (var i = 0; i < checkboxes.length; i++)
	{
		var checkbox = document.getElementById(checkboxes[i]);
		
		if (checkbox && checkBox.id !== checkboxes[i])
		{
			checkbox.checked = false;
		}
		else
		{
			checkBox.checked = true;
		}
		
		var div = document.getElementById("uploadedPhoto");
		if (div)
		{
			if (checkBox.id === "uploadPhoto")
			{	
				div.style.display = "block";
			}
			else
			{
				div.style.display = "none";
				
				/**
				 * reload iframe
				 */
				document.getElementById("step1UploadFileIframe").contentDocument.location.reload(true);
			}
		}
	}
}

function resetForm()
{
	var params = new Object();
	params["action"] = "step1";
	params["template"] = "order/step1_select.tpl";
	params["id"] = -1;

	var div = document.getElementById("selectFields");
	if (div)
	{
		xajax.call("xajax_getHTML", {parameters:[params], context: {
			callback: function(html)
			{
				div.innerHTML = html;
			}
		}});
	}
}

function displayInvoiceAddress()
{
	var elem = document.getElementById("invoiceSame");
	if(elem.checked)
	{
		var display = "none";
		var visibility = "hidden";
	}
	else
	{
		var display = "table-row";
		var visibility = "visible";
	}
	
	for (var i = 1; i <= 11; i++)
	{
		var elem = document.getElementById("invoice_id_" + i);
		elem.style.display = display;
		elem.style.visibility = visibility;
	}
}

function checkStep3(form, cartCount)
{
	var passCheck = true;
	
	if (cartCount <= 0)
	{
		window.alert(translate('U heeft geen producten in uw winkelmandje.'));
		return false;
	}
	
	var labels = form.getElementsByTagName("th");
	for (var i = 0; i < labels.length; i++)
	{
		if (labels[i].id != null && labels[i].id.indexOf("label_") > -1)
		{
			var id = labels[i].id.substr(6);
			if (document.getElementById(id).value == "")
			{
				labels[i].className = "failed";
				passCheck = false;
			}
			else
			{
				labels[i].className = "";
			}
		}
		
	}
	
	var checkbox = document.getElementById("invoiceSame");	
	for (var i = 1; i <= 11; i++)
	{
		var elem = document.getElementById("invoice_id_" + i);
		if (!checkbox.checked && document.getElementById("invoice_field_" + i) != undefined && document.getElementById("invoice_field_" + i).value == "")
		{
			elem.firstChild.className = "failed";
			passCheck = false;
		}
		else
		{
			elem.firstChild.className = "";
		}
	}
	
	if (!passCheck)
	{
		window.alert(translate('U heeft niet alle verplichte velden correct ingevuld. De incorrecte velden zijn rood gekleurd.'));
	}
	
	return passCheck;
}

function checkLogin()
{
	var userField = document.getElementById("username");
	var pwField = document.getElementById("password");
	if (userField.value == "")
	{
		window.alert(translate('Vul a.u.b. een gebruikersnaam in.'));
		return false;
	}
	if (pwField.value == "")
	{
		window.alert(translate('Vul a.u.b. een wachtwoord.'));
		return false;
	}
}

function logout()
{
	post({action: "logout"});
}

function checkPasswordForm()
{
	var userField = document.getElementById("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(userField.value))
	{
		window.alert(translate('U heeft geen geldig e-mailadres ingevuld.'));
		return false;
	}
}

function translate(input)
{
	var key = input.toLowerCase();
	
	key = key.replace(/(\(|\)|\:|\!|\?|\*|\'|\,|\.|\s|\-)/g, "_");
	
	if (translations[key])
	{
		return translations[key];
	}
	else if (locale == "nl_NL" || locale == "")
	{
		return input;
	}
	else
	{
		return "GEEN VERTALING VOOR: " + input;
	}
}
