// JavaScript Document
var dtCh= "-";
var minYear=1900;
var maxYear=2100;

function submit_onclick(obj,post){
	var msg='';
	var form=document.getElementById(obj);	
	var el = form.getElementsByTagName('label');

for(i=0;i<form.elements.length;i++){	
		if(form.elements[i].id!='' && form.elements[i].title!=''){
			if(form.elements[i].accessKey!=undefined && form.elements[i].accessKey!=''){ //if form element contains owner attribute
				if(document.getElementById(form.elements[i].accessKey).style.display!='none'){ //then only check if shown
					msg = msg + chckField(form.elements[i],form.elements[i].title)
				}
			}else{
				msg = msg + chckField(form.elements[i],form.elements[i].title)
			}
		}
	}
	for (var e=0; e<el.length; e++) { //check for radio/checkboxes
	    var objLabel = el[e];
	    if (el[e].id != '') {
	        var domLabel = document.getElementById(objLabel.getAttribute('id'));
	        var domLabelText = document.getElementById(objLabel.getAttribute('id')).innerHTML;
	        var id_1 = domLabel.id.replace('lbl', '')

	        var spanObj = document.getElementById(id_1 + '_group');
	        var radio_checked1 = false;
	        var radio_result = '';

	        var allInputTags = spanObj.getElementsByTagName('INPUT');
	        for (var c = 0; c < allInputTags.length; c++) {
	            if (allInputTags[c].checked) {
	                radio_checked1 = true;
	                radio_result = allInputTags[c].value;
	                break;
	            }
	        }
	        if (!radio_checked1) {
	            msg = msg + '- ' + allInputTags[0].title + '\n';
	        }
	    }
	}
	if(obj == 'frmProfile' || obj == 'frmCheckout2'){
		if(document.getElementById('password').value!=''){
			if(!UserOK) {
				msg=msg + '- Uw e-mail adres\n';
				errorLayout(document.getElementById('username'),false);
			}else{
				errorLayout(document.getElementById('username'),true);
			}
		}
		if(document.getElementById('email').value!=''){

			if(document.getElementById('password').value!=document.getElementById('passwordBis').value) {
				msg=msg + '- Wachtwoorden zijn niet aan elkaar gelijk\n';
				errorLayout(document.getElementById('password'),false);
				errorLayout(document.getElementById('passwordBis'),false);
			}else{
				if(document.getElementById('password').value=='' && obj == 'frmCheckout2'){
					//msg=msg + '- Wachtwoord\n';
					errorLayout(document.getElementById('password'),false);
					errorLayout(document.getElementById('passwordBis'),false);
				}else{
					errorLayout(document.getElementById('password'),true);
					errorLayout(document.getElementById('passwordBis'),true);
				}
			}
		}else{
			errorLayout(document.getElementById('password'),true);
			errorLayout(document.getElementById('passwordBis'),true);
		}
	}
	if(msg!='') {
		alert("Uw invoer kan nog niet verwerkt worden, volg onderstaande instructies:\n" + msg);
		return false;
	}	else {
		if(post) form.submit()
	}
}

//place your checks here please
function chckField(obj,title) {
	var err = ''
	if (obj.id.indexOf('email')>-1 && obj.value!=''){
		if (!isEmail(obj.value)){
			err = err + "- Het emailadres is niet correct, het correcte formaat is: info@easer.com\n"  
			errorLayout(obj,false);
		}else{
			errorLayout(obj,true);
		}
	}
	if (obj.id.indexOf('_tel')>-1 && obj.value!=''){
		if (obj.value.length<10){
			err = err + "- Een telefoonnummer dient 10 tekens lang te zijn\n"
			errorLayout(obj,false);
		}else{
			errorLayout(obj,true);
		}
	}
	if (obj.id.indexOf('voorkeursdatum')>-1 && obj.value!=''){
		if (FV_IsDateInPast(obj.value)){
			err = err + "- Datum dient in de toekomst te zijn\n"  
			errorLayout(obj,false);
		}else{
			errorLayout(obj,true);
		}
	}
	
	if (obj.id.indexOf('DD')>-1 && obj.value!='') {
		//alert('Geboortedatum: \'' + obj.value+'-'+document.getElementById(obj.id.replace('DD','MM')).value+'-'+document.getElementById(obj.id.replace('DD','YY')).value + '\'');
		if (!isDate(obj.value+'-'+document.getElementById(obj.id.replace('DD','MM')).value+'-'+document.getElementById(obj.id.replace('DD','YY')).value)){
			err = err + "- "+obj.title+" incorrect\n";
			errorLayout(obj,false);
			errorLayout(document.getElementById(obj.id.replace('DD','MM')),false);
			errorLayout(document.getElementById(obj.id.replace('DD','YY')),false);
		}else{
			errorLayout(obj,true);
			errorLayout(document.getElementById(obj.id.replace('DD','MM')),true);
			errorLayout(document.getElementById(obj.id.replace('DD','YY')),true);

			if (obj.id.indexOf('birthDD')>-1 && obj.value!=''){
				if (!FV_IsDateIsBirthDate(obj.value+'-'+document.getElementById(obj.id.replace('DD','MM')).value+'-'+document.getElementById(obj.id.replace('DD','YY')).value)){
					err = err + "- De minimale leeftijd is 18 jaar\n";
					errorLayout(obj,false);
					errorLayout(document.getElementById(obj.id.replace('DD','MM')),false);
					errorLayout(document.getElementById(obj.id.replace('DD','YY')),false);
				}else{
					errorLayout(obj,true);
					errorLayout(document.getElementById(obj.id.replace('DD','MM')),true);
					errorLayout(document.getElementById(obj.id.replace('DD','YY')),true);
				}
			}
		}
	}else{
		if(obj.value=='' || obj.value==title){
			err = "- " + title + " niet ingevuld of aangevinkt\n";
			errorLayout(obj,false);
			}
		else {
			errorLayout(obj,true);
		}
	}
	return err
}

function errorLayout(obj,ok){ //set colors submit_onclick form if error
    if (obj) {
        if (ok) {
            obj.style.backgroundColor = "";
            obj.style.color = "#333333";
        } else {
            obj.style.backgroundColor = "#cccccc";
            obj.style.color = "#333333";
        }
    }
}

function isEmail(string) {
	if (string.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
		return true;
	else
		return false;
}

function isNumberKey(e) {
	var k;
	document.all ? k = e.keyCode : k = e.which;
	return ( ((k > 47 && k < 58) || k == 46 || k==8 || k==9 || k==0 )  );
}

function isEnterKey(e) {
	var k;
	document.all ? k = e.keyCode : k = e.which;
	if(k == 13){
		getLocs()
	}
}


function isTelefoon(obj,e) {
	var k;
	document.all ? k = e.keyCode : k = e.which;
	if(obj.value.length<10){
		return ((k > 47 && k < 58 || k == 46 || k == 8 || k==9 || k==0 ));
	}else{
		alert('Een telefoonnummer kan max. 10 cijfers lang te zijn.')
	}
}

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this
}

function isDate(dtStr){
	var daysInMonth = DaysArray(12)
	var arrDate = dtStr.split(dtCh)
	strDay=arrDate[0]
	strMonth=arrDate[1]
	strYear=arrDate[2]
	if(strDay.length>0 && strMonth.length>0 && strYear.length>0) {
		month=parseInt(strMonth)
		day=parseInt(strDay)
		year=parseInt(strYear)
		if (day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || (day > daysInMonth[month] || daysInMonth[month]==undefined ) || (strYear.length<4)  ){
			return false
		}
		return true
	}else{
		return false
	}
}

function FV_IsDateIsBirthDate(val)
{
	var eighteenYearsAgo = new Date();
	var valDateSplit = val.split('-');
	var birthDate = new Date();
	
	eighteenYearsAgo.setYear(eighteenYearsAgo.getFullYear() - 18);
	birthDate.setYear(valDateSplit[2]);
	birthDate.setMonth(valDateSplit[1]-1);
	birthDate.setDate(valDateSplit[0]);
	birthDate.setHours(0);
	birthDate.setMinutes(0);
	birthDate.setSeconds(1);

	return (eighteenYearsAgo.getTime() > birthDate.getTime());
}

function FV_IsDateInPast(val) {

	var now = new Date();
	now = now.getTime(); //NN3
	
	var valueDate = val.split('-');
	
	var dateToCheck = new Date();
	dateToCheck.setYear(valueDate[2]);
	dateToCheck.setMonth(valueDate[1]-1);
	dateToCheck.setDate(valueDate[0]-1);
	var checkDate = dateToCheck.getTime();

	var pastDate = (now > checkDate);

	return pastDate;
}

function doElfCheck(bankNummer) {
  var totaal = 0
  var bankgiro = bankNummer.value
  var oneToTen = new Array()
  if (bankgiro.length == 9) {
	  oneToTen[0]=10*bankgiro.substring(0,0)
	  oneToTen[1]=9*bankgiro.substring(0,1)
	  oneToTen[2]=8*bankgiro.substring(1,2)
	  oneToTen[3]=7*bankgiro.substring(2,3)
	  oneToTen[4]=6*bankgiro.substring(3,4)
	  oneToTen[5]=5*bankgiro.substring(4,5)
	  oneToTen[6]=4*bankgiro.substring(5,6)
	  oneToTen[7]=3*bankgiro.substring(6,7)
	  oneToTen[8]=2*bankgiro.substring(7,8)
	  oneToTen[9]=1*bankgiro.substring(8,9)
	  for (i=0;i<10;i++){
	    totaal=totaal+oneToTen[i]
	  }
	  totaal=totaal/11
	  if (totaal!=Math.round(totaal)){
	  	return "- Ongeldig bank/girorekening" + "\n";
	  } else {
			return ""
	  }
  }else if (bankgiro.length == 10) {
	  oneToTen[0]=10*bankgiro.substring(0,1)
	  oneToTen[1]=9*bankgiro.substring(1,2)
	  oneToTen[2]=8*bankgiro.substring(2,3)
	  oneToTen[3]=7*bankgiro.substring(3,4)
	  oneToTen[4]=6*bankgiro.substring(4,5)
	  oneToTen[5]=5*bankgiro.substring(5,6)
	  oneToTen[6]=4*bankgiro.substring(6,7)
	  oneToTen[7]=3*bankgiro.substring(7,8)
	  oneToTen[8]=2*bankgiro.substring(8,9)
	  oneToTen[9]=1*bankgiro.substring(9,10)
	  for (i=0;i<10;i++){
	    totaal=totaal+oneToTen[i]
	  }
	  totaal=totaal/11
	  if (totaal!=Math.round(totaal)){
	  	return "- Ongeldig bank/girorekening" + "\n";
	  } else {
			return ""
		}
  }
	return ""
}
