// JavaScript Document
var dtCh= "-";
var minYear=1900;
var maxYear=2100;

var errorCaption = '';
var errorCaptionColor = '';
var errorInputBackground = '';
var errorInputBackgroundGrey = '#ababab';
var errorInputBackgroundGreen = '#4daa1a';
var errorInputColor = '';
var errorClassName = 'error';
var normalInputBackground = '';
var normalInputColor = '';

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 (objLabel.getAttribute('id')) {
//			var domLabel = document.getElementById(objLabel.getAttribute('id'));
//			var domLabelText = document.getElementById(objLabel.getAttribute('id')).innerHTML;
//			var id_1 = domLabel.id.replace('lbl', '')
//			msg = msg + chckFieldRadio(id_1);
//		}
//	}

	if (msg != '') {
		//alert("De volgende velden zijn verplicht:\n" + msg);
		return false;
	} else {
		if (post) {
			form.submit()
		} else {
			return true;
		}
	}
}

//function chckFieldRadio(title) { // Voor checkboxes & radio buttons.
//	var spanObj = document.getElementById(title + '_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;
//		}
//	}
//	for (var c = 0; c < allInputTags.length; c++) {
//		errorLayout(allInputTags[c], radio_checked1, errorCaption);
//		//errorLayout(spanObj,radio_checked1,errorCaption);
//	}
//	if (!radio_checked1) {
//		return title;
//	} else {
//		return '';
//	}
//}

//place your checks here please
function chckField(obj, title) {
	var err = ''
	if (obj.id.indexOf('email') > -1 && obj.value != '') {
		if (!isEmail(obj.value)) {
			err = 1
			errorLayout(obj, false, 'Het emailadres is niet correct');
		} else {
			errorLayout(obj, true, '');
		}
	} else {
		if ((obj.id.indexOf('street') > -1 || obj.id.indexOf('housenr') > -1) && !(obj.id.indexOf('extra') > -1)) {
			if (obj.value == '') {
				var streetMarker = obj.id.replace('housenr', 'street');
				errorLayout($('#' + streetMarker), false, 'Verplicht');
			} else {
				errorLayout($('#' + streetMarker), true, '');
			}
		} else {
			if (obj.id.indexOf('zipcode') > -1 || obj.id.indexOf('city') > -1) {
				if (obj.value == '') {
					var zipcodeMarker = obj.id.replace('city', 'zipcode');
					errorLayout($('#' + zipcodeMarker), false, 'Verplicht');
				} else {
					errorLayout($('#' + zipcodeMarker), true, '');
				}
			} else {
				if (obj.id.indexOf('_tel') > -1 && obj.value != '') {
					if (obj.value.length < 10) {
						err = 1
						errorLayout(obj, false, 'Een telefoonnummer dient 10 tekens lang te zijn');
					} else {
						errorLayout(obj, true, '');
					}
				} else {
					if (obj.id == ('dob_date')) {
						var replaceDate = obj.value;
						for (var d = 0; d < 2; d++) {
							replaceDate = replaceDate.replace("/", "-");
						}
						if (!FV_IsDateIsBirthDate(replaceDate) || !(isDate(replaceDate))) {
							err = 1
							errorLayout(obj, false, obj.title + ' incorrect');
						} else {
							errorLayout(obj, true, '');
						}

					} else {
						if (obj.type == 'checkbox') {
							if (!obj.checked) {
								err = 1
								errorLayout(obj, false, errorCaption);
							} else {
								errorLayout(obj, true, '');
							}
						} else {
							if ((obj.value == '' || obj.value.toLowerCase() == title.toLowerCase()) && obj.title != '') {
								err = 1;
								errorLayout(obj, false, 'Verplicht');
							} else {
								errorLayout(obj, true, '');
							}
						}
					}
				}
			}
		}
	}
	return err;
}


function errorLayout(obj, ok, error) { //set colors submit_onclick form if error		
	var id = $(obj).attr('id');
	if (ok) {
		$(obj).parents('.item').removeClass('error');
		$(obj).parents('.item').addClass('correct');
		$('#marker_' + id).addClass('correct').removeClass('error'); //.attr('alt','').attr('title','');
	} else {
		$(obj).parents('.item').addClass('error');
		$(obj).parents('.item').removeClass('correct');
		$('#marker_' + id).addClass('error').removeClass('correct'); //.attr('alt',error).attr('title',error);
	}
}

function isEmail(string) {
	var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (filter.test(string))
		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 || (k > 95 && k < 106) ));
	}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(isNaN(strDay) || isNaN(strMonth) || isNaN(strYear)) return false
	if(strDay.length>0 && strMonth.length>0 && strYear.length>0) {
		month=parseInt(strMonth)		
		day=parseFloat(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 now = new Date();
	var thisYear = now.getFullYear() - 18  //minimum 18 years old
	now.setFullYear(thisYear)
	now = now.getTime(); //NN3

	var valueDate = val.split('-');
	
	var dateToCheck = new Date();
	if (valueDate[2] < 1900) {
		return false;
	}
	dateToCheck.setYear(valueDate[2]);
	dateToCheck.setMonth(valueDate[1]-1);
	dateToCheck.setDate(valueDate[0]);
	var checkDate = dateToCheck.getTime();

	var pastDate = (now > checkDate);

	return pastDate;
}

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 ""
}

