// JavaScript Document

var _form = function(){
	
	// Form checker
	$('form').submit(function() {
		_trigger = true;
		_message = 'U heeft het formulier onjuist ingevuld:\n\n';
		
		// standaard form check
		$(this).find('input, textarea').each(function(){
			
			switch($(this).attr('alt')) {
				case 'required':
					if( $(this).attr('alt') && $(this).val().length == 0 ){
						_message += $(this).attr('rel')+' is verplicht\n';
						_trigger = false;
					}
				break;
				case 'email':
					if(!emailValidation($(this).val())){
						_message += 'Vul een geldig e-mailadres in\n';
						_trigger = false;
					}
				break;
				case 'url':
					if(!urlValidation($(this).val())){
						_trigger = false;
					}
				break;
				case 'number':
					if(!intValidation($(this).val())){
						_trigger = false;
					}
				break;
				case 'date':
					if(!dateValidation($(this).val())){
						_trigger = false;
					}
				break;
			}
		});
	
		
		if (!_trigger) {
			alert(_message);
			return false;
		}
		
	});
}


var emailValidation = function(str) {
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	if (str.indexOf(at)==-1){
	   return false
	}

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
	   return false
	}

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		return false
	}

	 if (str.indexOf(at,(lat+1))!=-1){
		return false
	 }

	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		return false
	 }

	 if (str.indexOf(dot,(lat+2))==-1){
		return false
	 }
	
	 if (str.indexOf(" ")!=-1){
		return false
	 }
	 return true					
}

var urlValidation = function(url){
    var RegExp = /^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/;
    if(RegExp.test(url)){
        return true;
    }else{
        return false;
    }
}

var intValidation = function(int){
	var valid = '1234567890';
	var bool = true;
	
	if(int.length > 0){
		for(i=0; i<int.length; i++){
			if( valid.indexOf(int[i]) < 0 ){
				bool = false;
			}
		}
	}
	else{
		bool = false;	
	}
	
	return bool;
}

var dateValidation = function(date){
	var valid = '1234567890';
	var bool = true;
	var glue = '-';
	var check=new Date();
		
	
	if(date.length == 10){
		if(date.indexOf(glue) == 2 && date.lastIndexOf(glue) == 5 && intValidation(date.replace(/-/g,''))){
			dateParts = date.split('-',3);
			
			check.setFullYear(dateParts[2],(dateParts[1]-1),dateParts[0]);
			
			debug(check);
			var day = (check.getDate() < 10 ? '0'+check.getDate() : check.getDate());
			var month = parseInt(check.getMonth()+1) < 10 ? '0'+check.getMonth()+1 : check.getMonth()+1;
			var year = check.getFullYear()
			test = day.toString().replace('00','0')+'-'+month.toString().replace('00','0')+'-'+year;
			
			
			
			debug(month);
			debug(date);
			debug(test);
			
			if(date != test){
				bool = false;
			}
			
		}
		else{
			debug('fout bij cehck 2');
			bool = false;	
		}
	
	}
	else{
		bool = false;	
	}
	
	return bool;
}

