var ValidChars = "<>?{}[]$%&;:'";
var ValidTextChars = "<>{}[]$";
var ValidNumber = "1234567890";
var ValidSpace = " ";
var ValidEmail = "@.";
var Char;
var Email;


function ValidateEmailAddr() {
	var guestbook_form = document.getElementById('guestbook_form');
	var GNav_form = document.getElementById('GNav_form');
	EmailIsOk = false;
	if (Email != "") {
		EmailIsOk = true;
		for (i = 0; i < Email.length; i++) {
		   Char = Email.charAt(i);
		   if (ValidChars.indexOf(Char) != -1) {
				alert("U gebuikt ongeldige tekens in uw Email");
				bestelform.Email.value = "";
				EmailIsOk = false;
		   }
		}
	}
	else {
		alert ("Vul uw e-mail adres in");
	}
	if (EmailIsOk == true) {
		EmailIsOk = false;
		var IntString = 0;
		IntString = Email.lastIndexOf("http");
		if (IntString == -1) {
			IntString = Email.lastIndexOf("www.");
			if (IntString == -1) {
				IntString = Email.lastIndexOf("@");
				if (IntString == -1) {
					alert ("Het emailadres bevat geen '@'");
				}
				else {
					var IntStringAt = IntString;
					IntString = Email.indexOf(".",IntString);
					if(IntString == -1) {
						alert ("Het emailadres bevat geen '.' na '@provider'");
					}
					else {
						IntString = IntString - IntStringAt;
						if (IntString < 3) {
							alert ("Het emailadres bevat geen geldige provider");
						}
						else {
							IntString = Email.lastIndexOf(".");
							IntString = Email.length - IntString;
							if(IntString < 2) {
								alert ("Het emailadres bevat geen 'nl, com, eu...' na '@provider.'");
							}
							else {
								if (Email.length < 9) {
									alert ("Het emailadres is ongeldig");
								}
								else {
									// Email is OK
									EmailIsOk = true;
								}
							}
						}
					}
				}
			}
			else {
				alert ("Het emailadres kan geen 'www.' bevatten");
			}
		}
		else {
			alert ("Het emailadres kan geen 'http://' bevatten");
		}
	}
}

function checkForm() {
    var gname, gemail, gurl, gmessage;
	var checkedvoid;
	var radioLength;
	var i;
	var guestbook_form = document.getElementById('guestbook_form');
	var GNav_form = document.getElementById('GNav_form');
	
    with(guestbook_form) {
        gname    = user;
        gemail   = mail;
        gurl     = url;
        gmessage = p;
    }
    if(trim(gname.value) == '') {
        alert('Vul uw naam in');
        gname.focus();
        return false;
    }
    else if(trim(gemail.value) != '' && !isEmail(trim(gemail.value))) {
        alert('Uw e-mail adres is niet geldig');
        gemail.focus();
        return false;
    }
    else if(trim(gurl.value) !='' && !isUrl(trim(gurl.value))) {
        alert('Vul een geldig web adres in of laat het leeg.');
        gurl.focus();
        return false;
    }
    else if(trim(gmessage.value) == '') {
        alert('Type een bericht');
        gmessage.focus();
        return false;
    }
    else {
		//Test mail
		Email = gemail.value;
		ValidateEmailAddr();
		gemail.focus();
		if (EmailIsOk == true) {
			//do write to guestbook
			GNav_form.GuestbookName.value = gname.value;
			GNav_form.GuestbookMail.value = gemail.value;
			GNav_form.GuestbookPage.value = gurl.value;
			GNav_form.GuestbookMsg.value = gmessage.value;
			radioLength = guestbook_form.gvoid.length;
			for(i = 0; i < radioLength; i++) {
				if(guestbook_form.gvoid[i].checked) {
					checkedvoid = guestbook_form.gvoid[i].value;
				}
			}
			GNav_form.GuestbookVoid.value = checkedvoid;
			GNav_form.GuestbookCaptcha_Code.value = guestbook_form.captcha_code.value;
			GNav_form.GuestbookRemaddr.value = guestbook_form.remaddr.value;
			GNav_form.WriteGuestbook.value = true;
			GNav_form.submit();
		}

		return false;
    }
}

function g_toPage(pNum) {
	var GNav_form = document.getElementById('GNav_form');
	GNav_form.gpage.value = pNum;
	GNav_form.submit();
}

function trim(str) {
    return str.replace(/^\s+|\s+$/g,'');
}

function isEmail(str) {
    var regex = /^[-_.a-z0-9]+@(([-a-z0-9]+\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i;
    return regex.test(str);
}
function isUrl(str) {
        //var regex = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/i;
        var regex = /(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/i;
        return regex.test(str);
}
function addemoticos(smilie) {
	var guestbook_form = document.getElementById('guestbook_form');
    guestbook_form.p.value += ' ' + smilie + ' ';
}
function addhtml(html) {
	var guestbook_form = document.getElementById('guestbook_form');
    guestbook_form.p.value += ' ' + html + ' ';
}