// JavaScript Document
function checkBox() {
	var naam = document.getElementById('gastenboekBox_naam').value;
	var tekst = document.getElementById('gastenboekBox_tekst').value;
	var email = document.getElementById('gastenboekBox_email').value;
	if (naam=="") {
		document.getElementById('gastenboekNaamError').style.display='block';
		document.getElementById('gastenboekTekstError').style.display='none';
		document.getElementById('gastenboekEmailError').style.display='none';		
		return false;	
	} else if (tekst=="") {
		document.getElementById('gastenboekNaamError').style.display='none';	
		document.getElementById('gastenboekTekstError').style.display='block';
		document.getElementById('gastenboekEmailError').style.display='none';
		return false;
	} else if (email=="") {
		document.getElementById('gastenboekNaamError').style.display='none';
		document.getElementById('gastenboekTekstError').style.display='none';
		document.getElementById('gastenboekEmailError').style.display='block';		
		return false;
	} else {
		return true;
	}
}
	
function check_form() {
 
	
	var inputs = document.getElementsByTagName('input');
	var groepen = new Array();
	var melding_check = new Array();
	var minimum = new Array();
	for(i=0;i<inputs.length;i++){
		if(inputs[i].getAttribute('validatie')!=null) {
		
			
			var checks = inputs[i].getAttribute('validatie').split(';');
				
			var meldingen = inputs[i].getAttribute('melding').split(';');
			for(j=0;j<checks.length;j++) {
				
				var definitie = checks[j].split(':');

							
				if(definitie[0]=='min') {
					var groep = inputs[i].getAttribute('groep');
					if(groepen[groep]==null) {
						groepen[groep]=0;
					}
					
					if(inputs[i].checked==true){
						groepen[groep]++;
						
					}
					melding_check[groep] = meldingen[j];
					minimum[groep]=definitie[1];
				}
				
				if(checks[j]=='not_empty'&&inputs[i].value=='') {
					print_error(meldingen[j]);
					return false;	
				}
				
				if(checks[j]=='date'&&!isValidDate(inputs[i].value, 'yyyy/mm/dd')) {
					print_error(meldingen[j]);
					return false;	
				}
				
				if(checks[j]=='numchars'&&!isValidNumchar(inputs[i].value, 'yyyy/mm/dd')) {
					print_error(meldingen[j]);
					return false;	
				}
			
			}
			
		}
	}
	
	for(x in groepen) {
		if(groepen[x] < minimum[x]) {
		 	print_error(melding_check[x]);
			return false;	
		}
		

	}
	
	var textareas = document.getElementsByTagName('textarea');
	

	for(i=0;i<textareas.length;i++){
		if(textareas[i].getAttribute('verplicht')!=null&&textareas[i].getAttribute('verplicht')=='1'&&textareas[i].value=='') {
			
			print_error(textareas[i].getAttribute('melding'));
			return false;
		}
	}
	
	var selects = document.getElementsByTagName('select');
	
	for(i=0;i<selects.length;i++){
			
		if(selects[i].getAttribute('verplicht')!=null&&selects[i].getAttribute('verplicht')=='1'&&selects[i].options[selects[i].selectedIndex].value=='') {
			print_error(selects[i].getAttribute('melding'));
			return false;
		}
		
	}
	
	for (i=1; i<= 3; i++)
	{
		if ($("#bedrijf_"+i+" option[value='"+$('#bedrijf_'+i).val()+"']").is(':disabled'))
		{
			print_error('Je hebt een bedrijf gekozen dat niet geschikt is');
			return false;
		}
	}
	
	return true;
}

function print_error(error) {
	alert(error);	
}

function isValidDate(date_string, format) {
	
    var days = [31,28,31,30,31,30,31,31,30,31,30,31];
    var year;
    var month;
    var day;
    var date_parts = null;
    var rtrn = true;

    if (/^m{1}[./-]d{1}[./-]y{1}$/.test(format)) {
        //US Date
        date_parts = date_string.match(/^(\d{1,2})[./-](\d{1,2})[./-](\d{2}|\d{4})$/);
        if (date_parts) {
            month = date_parts[1];
            day = date_parts[2];
            year = date_parts[3];
        }
    } else if (/^m{2}[./-]d{2}[./-]y{2}$/.test(format)) {
        //US Short Date
        date_parts = date_string.match(/^(\d{1,2})[./-](\d{1,2})[./-](\d{2})$/);
        if (date_parts) {
            month = date_parts[1];
            day = date_parts[2];
            year = date_parts[3];
        }
    } else if (/^m{2}[./-]d{2}[./-]y{4}$/.test(format)) {
        //US Long Date
        date_parts = date_string.match(/^(\d{1,2})[./-](\d{1,2})[./-](\d{4})$/);
        if (date_parts) {
            month = date_parts[1];
            day = date_parts[2];
            year = date_parts[3];
        }
    } else if (/^y{1}[./-]m{1}[./-]d{1}$/.test(format)) {
        //EU Date
        date_parts = date_string.match(/^(\d{2}|\d{4})[./-](\d{1,2})[./-](\d{1,2})$/);
        if (date_parts) {
            year = date_parts[1];
            month = date_parts[2];
            day = date_parts[3];
        }
    } else if (/^y{2}[./-]m{2}[./-]d{2}/.test(format)) {
        //EU Short Date
        date_parts = date_string.match(/^(\d{1,2})[./-](\d{1,2})[./-](\d{1,2})$/);
        if (date_parts) {
            year = date_parts[1];
            month = date_parts[2];
            day = date_parts[3];
        }
    } else if (/^y{4}[./-]m{2}[./-]d{2}/.test(format)) {
        //EU Long Date
        date_parts = date_string.match(/^(\d{4})[./-](\d{1,2})[./-](\d{1,2})$/);
        if (date_parts) {
            year = date_parts[1];
            month = date_parts[2];
            day = date_parts[3];
        }
    } else {
        rtrn = false;
    }
	
    if (date_parts) {
        if (1 <= month && month <= 12) {
            if (month == 2) {
                if (year % 4 != 0 ? false : ( year % 100 != 0? true: (year % 1000 != 0? false : true))) {
                    rtrn = (1 <= day && day <= 29);
                } else {
                    rtrn = (1 <= day && day <= 28);
                }
            } else {
                rtrn = (1 <= day && day <= days[month -1]);
            }
        }else {
		
            rtrn = false;
        }
    } else {
        rtrn = false;
    }
	
    return rtrn;
}//eof isValidDate

function isValidNumchar(value) {
  var objRegExp  = /([0-9a-zA-z])/;

  return objRegExp.test(value);
	
}