function onLoadForm(widget)
{
	widget.addEventListener("beforeSubmit", function(widget, params)
	{
		if (window.pageTracker != undefined)
		{
			pageTracker._trackPageview(location.href + "?submit=" + widget.item.name.toLowerCase());
		}

		if (params["sendConfirm"] == "1")
		{
			document.getElementById("formStats"+widget.item.id).innerHTML = "Bedankt voor uw aanmelding. U ontvangt een e-mail om deze te bevestigen." +
					"<br>" +
					"Na bevestiging ontvangt u voortaan via e-mail het laatste nieuws over Geerpark." +
					"<br><br>" +
					"Let op: dit is geen officiële inschrijving voor huur-, koop-, of vrijstaande woningen." +
					"<br>" +
					"Daarvoor dient u zich in te schrijven bij Woonveste (huur) of Gemeente Heusden (vrijstaande woningen).";
		}
		
		document.getElementById("formStats"+widget.item.id).style.display = "block";
		document.getElementById("formDiv"+widget.item.id).style.display = "none";
	});
}

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

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('U heeft geen geldig e-mail adres ingevuld.');
		return false;
	}
}

function checkProfileForm()
{
	var checkFail = false;

	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(document.getElementById("email").value))
	{
		document.getElementById("label_email").className = "failed";
		checkFail = true;
		message = "Er is geen geldig e-mailadres ingevoerd.";
	}
	else
		document.getElementById("label_email").className = "";
	
	document.getElementById("label_oldpassword").className = "";
	document.getElementById("label_password").className = "";
	document.getElementById("label_password2").className = "";
	
	var oldp = document.getElementById("oldpassword").value;
	var p1 = document.getElementById("password").value;
	var p2 = document.getElementById("password2").value;
	
	if (oldp.length == 0)
	{
		document.getElementById("label_oldpassword").className = "failed";
		checkFail = true;
		message = "Vul het oude wachtwoord veld in.";
	}
	else if (p1.length > 0 && p2.length == 0)
	{
		
		document.getElementById("label_password2").className = "failed";
		checkFail = true;
		message = "Vul het 2e wachtwoord veld in.";
	}
	else if (p1.length == 0 && p2.length > 0)
	{
		document.getElementById("label_password").className = "failed";
		checkFail = true;
		message = "Vul het 1e wachtwoord veld in.";
	}
	else if (p1.length == 0 && p2.length == 0)
	{
		document.getElementById("label_password").className = "failed";
		document.getElementById("label_password2").className = "failed";
		checkFail = true;
		message = "Het nieuwe wachtwoord en de herhaling zijn niet ingevuld.";
	}
	else if (p1 != p2)
	{
		document.getElementById("label_password").className = "failed";
		document.getElementById("label_password2").className = "failed";
		checkFail = true;
		message = "Het 1e en 2e wachtwoord komen niet overeen.";
	}
	
	if (checkFail)
		window.alert(message);
	else
		document.getElementById("submitBtn").disabled = true;
		
	return !checkFail;
}

function checkUploadForm()
{
	var value = document.getElementById("file").value;
	
	if (value.indexOf("/") > -1)
	{
		value = value.substring(value.lastIndexOf("/")+1);
	}	
	else if (value.lastIndexOf("\\") > 0)
	{
		value = value.substring(value.lastIndexOf("\\")+1);
	}
	
	var regFile = new RegExp(/^[^\/^\\^\?^\|^<^>^\*^"]+\.\w{2,5}$/);
	var regExtForbid = new RegExp(/^[^\/^\\^\?^\|^<^>^\*^"]+\.(php|exe|htm|html|js|bat)$/);
	
	if (!regFile.test(value))
		window.alert("Er is geen geldig bestand geselecteerd.");
	else if (regExtForbid.test(value))
		window.alert("Dit type bestand is niet toegestaan.");
	else
		return true;
	
	return false;
}

function checkSideSearch()
{
	if (document.getElementById("sideSearch").value == "")
	{
		window.alert("Vul a.u.b. een zoekterm in");
		return false;
	}
}

function _smi_form(divObject, config)
{
	var itemId = config.getElementsByTagName("id")[0].firstChild.nodeValue;
	var onload = config.getElementsByTagName("onload");
	onload = onload.length > 0 && onload[0].firstChild ? onload[0].firstChild.nodeValue : false;
	
	var widget = new _smi_widget({ 
		divObject: divObject,
		item: {},
		form: null,
		
		// methods
		submit: function()
		{
			var ret = form_check(this.form, "");
			if (ret)
			{
				widget.fireEvent("beforeSubmit", {});
			}
			return ret;
		},
		
		submitWithoutCheck: function()
		{
			var params = Object();
			var sendConfirm = "0";
			var confirmEmail = "";
			for(var i=0; i<this.form.elements.length; i++)
			{
				var e = this.form.elements[i];
				if (!e)
					continue;
				
				var value = e.value;
				var name = e.name;

				if (e.type == "radio" && !e.checked)
					continue;
					
				if (e.type == "checkbox" && e.checked)
				{
					if (!params[name])
						params[name] = new Array();
					
					params[name].push(e.value);
					if (this.item.name == "Contactformulier 2" && name == "form_answer_10" && value == "15")
						sendConfirm = "1";
				}
				else if (e.type != "checkbox")
				{
					params[name] = value;
					
					if (this.item.name == "Contactformulier 2" && name == "form_openanswer_17")
						confirmEmail = value;
				}
			}
			var self = this;
			
			widget.fireEvent("beforeSubmit", {sendConfirm:sendConfirm});

			xajax.call("xajax_sendConfirm", {parameters:[itemId, sendConfirm, confirmEmail, params], context: {callback: function(resultSetId)
			{
				self.fireEvent("submitted", {resultSetId:resultSetId});
			}}});
		},
		
		showStatistics: function(callback)
		{
			var self = this;
			
			var ret = self.fireEvent("beforeStatistics");
			
			if (ret)
			xajax.call("xajax_call_item_method", {parameters: ["item_cms_form", itemId, "getStatisticsHTML", []],
				context: {
					callback: function(html)
					{
						divObject.innerHTML = html;
						self.fireEvent("statisticsLoaded");
					}
				}});
		},
		
		showForm: function(callback)
		{
			var self = this;
			xajax.call("xajax_call_item_method", {parameters: ["item_cms_form", itemId, "getHTML", []],
				context: {
					callback: function(html)
					{
						divObject.innerHTML = html;
						self.fireEvent("formLoaded");
						
						var list = Array();	
						dom_getElementsByTagName(divObject, "FORM", list);
						widget.form = list[0];
					}
				}});
		}
	});
	
	getItem("item_cms_form", itemId, function(item)
	{
		if (!item)
		{
			divObject.innerHTML = "Item not found: " + itemId;
			return;
		}
		
		widget.item = item;
		
		if (onload && (typeof onload != "string" || eval("typeof " + onload + " != 'undefined'")))
        {
        	var onloadFn = typeof onload == "string" ? eval(onload) : onload;
        	
        	onloadFn(widget);
        }
        widget.loaded = true;
        widget.fireEvent("loaded", {});

		var varPrefix = "form_" + item.id + "_";
		g_formJSVarsCache[item.id] = new Object();
		var jsVars = g_formJSVarsCache[item.id];
		jsVars[varPrefix + "obligatoryQuestions"] = item.obligatoryQuestions;
		jsVars[varPrefix + "answer2Question"] = item.answer2Question;
		jsVars[varPrefix + "answerRegexs"] = item.answerRegexs;
		jsVars[varPrefix + "answerRegexMessages"] = item.answerRegexMessages;
		jsVars[varPrefix + "fromWidget"] = widget;
		
		var ret = widget.fireEvent("beforeForm");
		try
		{
			if (ret)
			xajax.call("xajax_call_item_method", {parameters: ["item_cms_form", itemId, "getHTML", Array()],
				context: {
					callback: function(html)
					{
						divObject.innerHTML = html;
						var list = Array();	
						dom_getElementsByTagName(divObject, "FORM", list);
						widget.form = list[0];
						widget.fireEvent("formLoaded");
					}
				}});
		}
		catch(e)
		{
			//alert(e);	
		}
		
	});
}

var choiceArray = new Array();
var choiceCount = 0;
function checkChoices(checkbox, qId, col) 
{ 
     if (choiceArray[qId] == undefined)
     {
    	 choiceArray[qId] = new Array("", false, false, false);
     }
     
     setChoice(qId, col);
     if (checkbox.checked == false)
     {
    	 choiceCount--;
     }
     else if (checkbox.checked == true && choiceCount == 3)
     {
    	 window.alert("U mag maximaal drie tafelgesprekken selecteren.");
    	 return false;
     }
     else
     {
    	 choiceCount++;
     }

     return true;
}

function setChoice(qId, col)
{
	for (x in choiceArray)
	{
		if (choiceArray[x] != undefined)
		{
			if (x != qId && choiceArray[x][col] == true)
			{
				choiceArray[x][col] = false;
				document.getElementById("choice_" + x + "_" + col).checked = false;
				choiceCount--;
			}
			else if (x == qId)
			{
				for (var i = 1; i < choiceArray[x].length; i++)
				{
					if (i != col && choiceArray[x][i] == true)
					{
						choiceArray[x][i] = false;
						document.getElementById("choice_" + x + "_" + i).checked = false;
						choiceCount--;
					}
					else if (i == col)
					{
						choiceArray[x][i] = true;
					}
				}
			}
		}
	}
}







