// Invoer controle van een HTM formulier
//
// Installatie:
// ------------
//
// Toevoegen in page waar formulier in staat:
// 	   ==> <script language="javascript" src="checkmail.js"></script>
//     ==> "_check" toevoegen aan naam van te controleren form object. ("Veld1" wordt dan "Veld1_check")
//     ==> extra controles op zelfde manier toevoegen aan naam van betreffende object
//         "_check_postcode" voor controle op 4 cijfers + 2 letters syntax
//         "_check_telefoon" voor controle op minimaal 10 cijfers en beginnend met een 0
//         "_check_email" voor controle op "*@*.**" syntax
//     ==> controle funktie aanroepen:
//         <input type="submit" name="Submit" onclick="return email_controle(this.form, 'error.htm');" value="Versturen">
//	       de 2e parameter "error.htm" aanpassen, is de naam van de foutmeldings-page
//         "alertbox" als 2e parameter gebruiken om foutmelding in een "alertbox" te plaatsen.
//         "checkmail_layer" gebruiken om foutmelding in formulier-page te plaatsen
//         ==> de volgende regel in formulier-page toevoegen op willekeurige plek : <div id="checkmail_layer"></div>
//             in deze layer komt de foutmelding dan te staan.
//
// Toevoegen aan foutmeldings-page:
//     ==> <script language="javascript">document.write(unescape(location.search.substring(1)));</script>
//         Kan willekeurig geplaatst worden, bijv. in een tabel
//     ==> <input type="submit" name="terug" value="Terug" onClick="javascript:window.history.back()">
//         Om een knop te plaatsen waarmee je terugkeert naar formulier 
//
// Foutmeldingen in checkmail.js aanpassen:
//     ==> De onderstaande foutmeldingen kunnen vrij aangepast worden.
// 
// -----------------------------------------------------------------------------------------------------------

// Foutmeldingen
var errorurl        = "ERROR_URL variabele kan niet gevonden worden .....";
var checkboxerror   = " is niet aangevinkt .....";
var invoervelderror = " is niet ingevuld .....";
var postcodeerror   = "Postcode is niet juist ingevoerd (formaat = 1234AB)";
var emailerror      = "Email-adres is niet juist ingevoerd .....";
var telefoonerror   = "Telefoon nummer is niet juist ingevoerd .....";

// Hieronder geen veranderingen maken
//------------------------------------------------------------------------------------------------------------

// Controleren van invoer in formulier
function email_controle(naam_formulier, error_url)
{

	if (error_url == undefined || error_url == "")
	{
		document.write(errorurl);
		return false;
	}
	
	var tekst = "";
	var i = 0;
	
	while (tekst == "" && i < naam_formulier.length)
	{
		if (naam_formulier.elements[i].type != "button" || naam_formulier.elements[i].type != "submit" || naam_formulier.elements[i].type != "reset")
		{
			if (naam_formulier.elements[i].name.search("_check") != -1)
			{
				if (naam_formulier.elements[i].type == "checkbox")
				{
					if (naam_formulier.elements[i].status == false)
						tekst = "" + naam_formulier.elements[i].name + checkboxerror;
				}
				else
				{
					if (naam_formulier.elements[i].value == "")
						tekst = "" + naam_formulier.elements[i].name + invoervelderror;
					else
					{
						if (naam_formulier.elements[i].name.search("_postcode") != -1)
						{
							if (naam_formulier.elements[i].value.length != 6)
								tekst = "" + postcodeerror;
							else
							{
								part1 = parseInt(naam_formulier.elements[i].value.substring(0, 4));
								if (part1 == "NaN")
									tekst = "" + postcodeerror;
								str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
								part2 = naam_formulier.elements[i].value.substring(4, 5);
								part3 = naam_formulier.elements[i].value.substring(5, 6);
								if (str.indexOf(part2) == -1 || str.indexOf(part3) == -1)
									tekst = "" + postcodeerror;
							}
						}
						if (naam_formulier.elements[i].name.search("_telefoon") != -1)
						{
							if (naam_formulier.elements[i].value.length < 10 || naam_formulier.elements[i].value.substring(0, 1) != "0")
								tekst = "" + telefoonerror;
						}
						if (naam_formulier.elements[i].name.search("_email") != -1)
						{
							var xapestaart = naam_formulier.elements[i].value.indexOf("@");
							if (xapestaart ==  - 1 || naam_formulier.elements[i].value.indexOf(".", xapestaart + 2) == -1 || naam_formulier.elements[i].value.lastIndexOf(".") == naam_formulier.elements[i].value.length - 1)
								tekst = "" + emailerror;
						}
					}
				}
			}
		}
		i++;
	}
		
	if (tekst == "") return true;
	tekst = tekst.replace("_check", "");
	tekst = tekst.replace("_postcode", "");
	tekst = tekst.replace("_telefoon", "");
	tekst = tekst.replace("_email", "");
	if (error_url == "checkmail_layer")
	{
		this.ver=navigator.appVersion
		this.agent=navigator.userAgent
		this.dom=document.getElementById?1:0
		this.opera5=this.agent.indexOf("Opera 5")>-1
		this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0; 
		this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0;
		this.ie4=(document.all && !this.dom && !this.opera5)?1:0;
		this.ie=this.ie4||this.ie5||this.ie6
		if (ie)
		{ 
			document.all.checkmail_layer.innerHTML = tekst; 
		}	 
		else
		{
			document.layers["checkmail_layer"].document.open(); 
			document.layers["checkmail_layer"].document.writeln("tekst"); 
			document.layers["checkmail_layer"].document.close(); 
		}
	}
	else
	{
		if (error_url == "alertbox")
			alert(tekst);
		else
	 		location.href = error_url + "?" + tekst;
	}
	return false;
}

