// standaard javafuncties voor alle formulieren
var bFramedMode = (top == self);
var isNav4 = false, isNav5 = false, isIE4 = false
var strSeperator = "-"; 
// If you are using any Java validation on the back side you will want to use the / because 
// Java date validations do not recognize the dash as a valid date separator.
var vDateType = 3; // Global value for type of date format
//                1 = mm/dd/yyyy
//                2 = yyyy/dd/mm  (Unable to do date check at this time)
//                3 = dd/mm/yyyy
var vYearType = 4; //Set to 2 or 4 for number of digits in the year for Netscape
var vYearLength = 2; // Set to 4 if you want to force the user to enter 4 digits for the year before validating.
var err = 0; // Set the error code to a default of zero

if (navigator.appName == "Netscape"){
	if (navigator.appVersion < "5"){
		isNav4 = true;
		isNav5 = false;
	}else
		if (navigator.appVersion > "4"){
			isNav4 = false;
			isNav5 = true;
		}
}else{
	isIE4 = true;
}

function DateFormat(vDateName, vDateValue, e, dateCheck, dateType){
   vDateType = dateType;
   // vDateName = object name
   // vDateValue = value in the field being checked
   // e = event
   // dateCheck 
   //       True  = Verify that the vDateValue is a valid date
   //       False = Format values being entered into vDateValue only
   // vDateType
   //       1 = mm-dd-yyyy
   //       2 = yyyy-mm-dd
   //       3 = dd-mm-yyyy
   //Enter a tilde sign for the first number and you can check the variable information.
   var whichCode = (window.Event) ? e.which : e.keyCode;
   // Check to see if a seperator is already present.
   // bypass the date if a seperator is present and the length greater than 8
   if (vDateValue.length > 8 && isNav4){
      if ((vDateValue.indexOf("-") >= 1) || (vDateValue.indexOf("/") >= 1)) return true;
   }
   
   //Eliminate all the ASCII codes that are not valid
   var alphaCheck = " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/-";
   if (alphaCheck.indexOf(vDateValue) >= 1){
      if (isNav4){
         vDateName.value = "";
         vDateName.focus();
         vDateName.select();
         return false;
      }else{
         vDateName.value = vDateName.value.substr(0, (vDateValue.length-1));
         return false;
      } 
   }
   if (whichCode == 8) //Ignore the Netscape value for backspace. IE has no value
      return false;
   else{
      //Create numeric string values for 0123456789/
      //The codes provided include both keyboard and keypad values
      var strCheck = '47,48,49,50,51,52,53,54,55,56,57,58,59,95,96,97,98,99,100,101,102,103,104,105';
      if (strCheck.indexOf(whichCode) != -1){
         if (isNav4){
            if (((vDateValue.length < 6 && dateCheck) || (vDateValue.length == 7 && dateCheck)) && (vDateValue.length >=1)){
               alert("Datum notatie is niet correct\n");
               vDateName.value = "";
               vDateName.focus();
               vDateName.select();
               return false;
            }
            if (vDateValue.length == 6 && dateCheck){
               var mDay = vDateName.value.substr(2,2);
               var mMonth = vDateName.value.substr(0,2);
               var mYear = vDateName.value.substr(4,4)
               //Turn a two digit year into a 4 digit year
               if (mYear.length == 2 && vYearType == 4){
                  var mToday = new Date();
                  //If the year is greater than 30 years from now use 19, otherwise use 20
                  var checkYear = mToday.getFullYear() + 30; 
                  var mCheckYear = '20' + mYear;
                  if (mCheckYear >= checkYear)
                     mYear = '19' + mYear;
                  else
                     mYear = '20' + mYear;
               }
               var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
               if (!dateValid(vDateValueCheck)){
                  alert("Datum notatie is niet correct.\n");
                  vDateName.value = "";
                  vDateName.focus();
                  vDateName.select();
                  return false;
		         }
               return true;
            }else{
               // Reformat the date for validation and set date type to a 1
               if (vDateValue.length >= 8  && dateCheck){
                  if (vDateType == 1){
                  	// mmddyyyy
                     var mDay = vDateName.value.substr(2,2);
                     var mMonth = vDateName.value.substr(0,2);
                     var mYear = vDateName.value.substr(4,4)
                     vDateName.value = mMonth+strSeperator+mDay+strSeperator+mYear;
                  }
                  if (vDateType == 2){
                  	// yyyymmdd
                    var mYear = vDateName.value.substr(0,4)
                    var mMonth = vDateName.value.substr(4,2);
                    var mDay = vDateName.value.substr(6,2);
                    vDateName.value = mYear+strSeperator+mMonth+strSeperator+mDay;
                  }
                  if (vDateType == 3){
                  	// ddmmyyyy
					var mMonth = vDateName.value.substr(2,2);
					var mDay = vDateName.value.substr(0,2);
					var mYear = vDateName.value.substr(4,4)
					vDateName.value = mDay+strSeperator+mMonth+strSeperator+mYear;
                  }
                  //Create a temporary variable for storing the DateType and change
                  //the DateType to a 1 for validation.
                  var vDateTypeTemp = vDateType;
                  vDateType = 1;
                  var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
                  if (!dateValid(vDateValueCheck)){
                  	alert("Datum notatie is niet correct.\n");
					//vDateType = vDateTypeTemp;
					vDateName.value = "";
					vDateName.focus();
					vDateName.select();
					return false;
	            }
				vDateType = vDateTypeTemp;
				return true;
	            }else{
	            	if (((vDateValue.length < 8 && dateCheck) || (vDateValue.length == 9 && dateCheck)) && (vDateValue.length >=1)){
						alert("Datum notatie is niet correct.\nPlease Re-Enter");
						vDateName.value = "";
						vDateName.focus();
						vDateName.select();
						return false;
                  }
               }
            }
         }else{
	         // Non isNav Check
            if (((vDateValue.length < 8 && dateCheck) || (vDateValue.length == 9 && dateCheck)) && (vDateValue.length >=1)){
               alert("Datum notatie is niet correct.\n");
               vDateName.value = "";
               vDateName.focus();
               return true;
            }
            // Reformat date to format that can be validated. mm/dd/yyyy
            if (vDateValue.length >= 8 && dateCheck){
               // Additional date formats can be entered here and parsed out to
               // a valid date format that the validation routine will recognize.
               if (vDateType == 1){
               	// mm/dd/yyyy
                  var mMonth = vDateName.value.substr(0,2);
                  var mDay = vDateName.value.substr(3,2);
                  var mYear = vDateName.value.substr(6,4)
               }
               if (vDateType == 2){
               		// yyyy/mm/dd
                  var mYear = vDateName.value.substr(0,4)
                  var mMonth = vDateName.value.substr(5,2);
                  var mDay = vDateName.value.substr(8,2);
               }
               if (vDateType == 3){
               	// dd/mm/yyyy
                  var mDay = vDateName.value.substr(0,2);
                  var mMonth = vDateName.value.substr(3,2);
                  var mYear = vDateName.value.substr(6,4)
               }
               if (vYearLength == 4){
                  if (mYear.length < 4){
                     alert("Datum notatie is niet correct.\n");
                     vDateName.value = "";
                     vDateName.focus();
                     return true;
                  }
               }
               // Create temp. variable for storing the current vDateType
               var vDateTypeTemp = vDateType;
               // Change vDateType to a 1 for standard date format for validation
               // Type will be changed back when validation is completed.
               vDateType = 1;
               // Store reformatted date to new variable for validation.
               var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
               if (mYear.length == 2 && vYearType == 4 && dateCheck){
                  //Turn a two digit year into a 4 digit year
                  var mToday = new Date();
                  //If the year is greater than 30 years from now use 19, otherwise use 20
                  var checkYear = mToday.getFullYear() + 30; 
                  var mCheckYear = '20' + mYear;
                  if (mCheckYear >= checkYear)
                     mYear = '19' + mYear;
                  else
                     mYear = '20' + mYear;
                  vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
                  
                  // Store the new value back to the field.  This function will
                  // not work with date type of 2 since the year is entered first.
                  
                  if (vDateTypeTemp == 1) // mm/dd/yyyy
                     vDateName.value = mMonth+strSeperator+mDay+strSeperator+mYear;
                  if (vDateTypeTemp == 3) // dd/mm/yyyy
                     vDateName.value = mDay+strSeperator+mMonth+strSeperator+mYear;
               } 
               if (!dateValid(vDateValueCheck)){
                  alert("Datum notatie is niet correct.\n");
                  vDateType = vDateTypeTemp;
                  vDateName.value = "";
                  vDateName.focus();
                  return false;
		         }
               vDateType = vDateTypeTemp;
               return true;
            }else{
               if (vDateType == 1){
                  if (vDateValue.length == 2){
                     vDateName.value = vDateValue+strSeperator;
                  }
                  if (vDateValue.length == 5){
                     vDateName.value = vDateValue+strSeperator;
                  }
               }
               if (vDateType == 2){
                  if (vDateValue.length == 4){
                     vDateName.value = vDateValue+strSeperator;
                  }
                  if (vDateValue.length == 7){
                     vDateName.value = vDateValue+strSeperator;
                  }
               } 
               if (vDateType == 3){
                  if (vDateValue.length == 2){
                     vDateName.value = vDateValue+strSeperator;
                  }
                  if (vDateValue.length == 5){
                     vDateName.value = vDateValue+strSeperator;
                  }
               }
               return true;
            }
         }
         if (vDateValue.length == 10   && dateCheck){
            if (!dateValid(vDateName)){
                  alert("Datum notatie is niet correct.\n");
                  vDateName.value = "";
                  vDateName.focus();
                  vDateName.select();
                  return false;
	         }
         }
         return false;
      }else{
         // If the value is not in the string return the string minus the last
         // key entered.
         if (isNav4){
            vDateName.value = "";
            vDateName.focus();
            vDateName.select();
            return false;
         }else{
            vDateName.value = vDateName.value.substr(0, (vDateValue.length-1));
            return false;
         }
		}
	}
}

	function dateValid(objName) {
	  var strDate;
	  var strDateArray;
	  var strDay;
	  var strMonth;
	  var strYear;
	  var intday;
	  var intMonth;
	  var intYear;
	  var booFound = false;
	  var datefield = objName;
	  var strSeparatorArray = new Array("-"," ","/",".");
	  var intElementNr;
	  // var err = 0;
	  var strMonthArray = new Array(12);
	  strMonthArray[0] = "Jan";
	  strMonthArray[1] = "Feb";
	  strMonthArray[2] = "Mar";
	  strMonthArray[3] = "Apr";
	  strMonthArray[4] = "May";
	  strMonthArray[5] = "Jun";
	  strMonthArray[6] = "Jul";
	  strMonthArray[7] = "Aug";
	  strMonthArray[8] = "Sep";
	  strMonthArray[9] = "Oct";
	  strMonthArray[10] = "Nov";
	  strMonthArray[11] = "Dec";
	  
	  //strDate = datefield.value;
	  strDate = objName;
	  
	  if (strDate.length < 1) {
	     return true;
	  }
	  for (intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++) {
	     if (strDate.indexOf(strSeparatorArray[intElementNr]) != -1) 
	     {
	        strDateArray = strDate.split(strSeparatorArray[intElementNr]);
	        if (strDateArray.length != 3) 
	        {
	           err = 1;
	           return false;
	        }
	        else 
	        {
	           strDay = strDateArray[0];
	           strMonth = strDateArray[1];
	           strYear = strDateArray[2];
	        }
	        booFound = true;
	     }
	  }
	  if (booFound == false) {
	     if (strDate.length>5) {
	        strDay = strDate.substr(0, 2);
	        strMonth = strDate.substr(2, 2);
	        strYear = strDate.substr(4);
	     }
	  }
	  //Adjustment for short years entered
	  if (strYear.length == 2) {
	     strYear = '20' + strYear;
	  }
	  strTemp = strDay;
	  strDay = strMonth;
	  strMonth = strTemp;
	  intday = parseInt(strDay, 10);
	  if (isNaN(intday)) {
	     err = 2;
	     return false;
	  }
	  
	  intMonth = parseInt(strMonth, 10);
	  if (isNaN(intMonth)) {
	     for (i = 0;i<12;i++) {
	        if (strMonth.toUpperCase() == strMonthArray[i].toUpperCase()) {
	           intMonth = i+1;
	           strMonth = strMonthArray[i];
	           i = 12;
	        }
	     }
	     if (isNaN(intMonth)) {
	        err = 3;
	        return false;
	     }
	  }
	  intYear = parseInt(strYear, 10);
	  if (isNaN(intYear)) {
	     err = 4;
	     return false;
	  }
	  if (intMonth>12 || intMonth<1) {
	     err = 5;
	     return false;
	  }
	  if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1)) {
	     err = 6;
	     return false;
	  }
	  if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1)) {
	     err = 7;
	     return false;
	  }
	  if (intMonth == 2) {
	     if (intday < 1) {
	        err = 8;
	        return false;
	     }
	     if (LeapYear(intYear) == true) {
	        if (intday > 29) {
	           err = 9;
	           return false;
	        }
	     }
	     else {
	        if (intday > 28) {
	           err = 10;
	           return false;
	        }
	     }
	    }
		return true;
	}

function LeapYear(intYear){
	if (intYear % 100 == 0){
		if (intYear % 400 == 0){ return true; }
	}else{
		if ((intYear % 4) == 0){ return true; }
	}
	return false;
}

function checkNumeric(field){
	if (field.value != "") {
		field.value = field.value.replace(/,/g,'.');
		field.value = parseFloat(field.value);
		if (isNaN(field.value)) {
			field.value = '0';
		}
		//field.value = field.value.replace(/\./g,',');
	} else{
		field.value = '0';
	}
}

function confirmDelete(){
	var agree=confirm("Weet u zeker dat u dit wilt verwijderen?");
	if (agree){
		return true; 
	}else{
		return false;
	}
}

function UpperMe(field){
	field.value = field.value.toUpperCase();
	// alleen bepaalde chars toestaan
	var strOK = "";
	var strField = field.value;
	for (i = 0; i < strField.length; i++){
	 	if (!('/-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'.indexOf(strField.charAt(i)) < 0)){
			strOK = strOK + strField.charAt(i);
		}
	}
	field.value = strOK;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

function MA_setTextOfLayer(objName,newText) { //v4.01
  if ((obj=MM_findObj(objName))!=null) with (obj)
    if (document.layers) {document.write(unescape(newText)); document.close();}
    else innerHTML = unescape(newText);
}

function popup_evenementen(strURL){
	var strOptions='toolbar=no,location=no,resizable=no,status=no,scrollbars=1,menubar=no,width=572,height=500,left=1,top=1';
	window.open(strURL,'naw',strOptions);
}

function imageBoxShow(strImage) {		
	var img = document.getElementById('imageSrc');
	if (img != null) img.src = strImage;
}
function imageBoxHide() {
	var img  = document.getElementById('imageBox');
	if (img != null) img.style.display = 'none';
}
function imageBoxResize() {	
	img = document.getElementById('imageSrc');
	box = document.getElementById('imageBox');
	if (img != null) {
		b = document.body;
		w = img.width;
		h = img.height;
		if (img != null && (img.src.indexOf('2px_tr.gif') < 0)) {
			document.getElementById('imageBox').style.display = '';			
			box.style.pixelTop = ((b.clientHeight - box.clientHeight) / 2) + b.scrollTop;
			box.style.pixelLeft = ((b.clientWidth - box.clientWidth) / 2) + b.scrollLeft;						
		}
	}
}
