var Soon = Class.create();

Soon.prototype = {
    	initialize: function() {
    },
    bindMe: function(element) {
		Event.observe(element, 'click', this.tellMe.bindAsEventListener(this), false);
    },
    tellMe: function() {
    	$('naam').className='off';
    	$('errorNaam').innerHTML='';
		$('emailadres').className='off';
		$('errorEmailadres').innerHTML='';
		$('telefoon').className='off';
		$('errorTelefoon').innerHTML='';
    
	  	if (!this.checkName()){
			$('errorNaam').innerHTML='Vul uw naam in s.v.p.';
	    	$('naam').className='error';
	    }
	    if($('emailadres').value != ""){
	    	if (!this.checkEmail()){
				$('errorEmailadres').innerHTML='Vul s.v.p. een geldig e-mailadres in.';
		    	$('emailadres').className='error';
		    }
	    }
	  	else if (!this.checkTelephone()){
	  		$('errorEmailadres').innerHTML='Vul uw e mailadres in of';
	    	$('errorTelefoon').innerHTML='een telefoonnummer waarop u te bereiken bent.';
	    	$('emailadres').className='error';
	    	$('telefoon').className='error';
	    }
	  	
	  	if (this.checkName() && (this.checkEmail() || this.checkTelephone())) {
	  		this.submitMe();
	  	}  	
    },
    checkName: function() {
    	if ($('naam').value != "") { return true; }
    	return false;
    },
    checkEmail: function() {
    	var addr = $('emailadres').value;
        
		var invalidChars = '\/\'\\ ";:?!()[]\{\}^|';
        for (i=0; i<invalidChars.length; i++) {
           if (addr.indexOf(invalidChars.charAt(i),0) > -1) {
              return false;
           }
        }
        for (i=0; i<addr.length; i++) {
           if (addr.charCodeAt(i)>127) {
              return false;
           }
        }
        var atPos = addr.indexOf('@',0);
        if (atPos == -1) {
           return false;
        }
        if (atPos == 0) {
           return false;
        }
        if (addr.indexOf('@', atPos + 1) > - 1) {
           return false;
        }
        if (addr.indexOf('.', atPos) == -1) {
           return false;
        }
        if (addr.indexOf('@.',0) != -1) {
           return false;
        }
        if (addr.indexOf('.@',0) != -1){
           return false;
        }
        if (addr.indexOf('..',0) != -1) {
           return false;
        }
        var suffix = addr.substring(addr.lastIndexOf('.')+1);
        if (suffix.length != 2 && suffix != 'com' && suffix != 'net' && suffix != 'org' && suffix != 'edu' && suffix != 'int' && suffix != 'mil' && suffix != 'gov' & suffix != 'arpa' && suffix != 'biz' && suffix != 'aero' && suffix != 'name' && suffix != 'coop' && suffix != 'info' && suffix != 'pro' && suffix != 'museum') {
           return false;
        }
		return true;
    },
    checkTelephone: function() {
    	if ($('telefoon').value != "") { return true; }
    	return false;
    },
    submitMe: function() {
    	$('afspraak').submit();
    }
}

function soonWindowOnLoad() {
	var mySoon = new Soon();
	mySoon.bindMe('btn-send');
}

Event.observe(window, 'load', soonWindowOnLoad, false);





