function isEmailAddress (string) {
  var addressPattern = 
    /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
  return addressPattern.test(string);
}

function isTelOrMobile(string){
   var pattern = /^06-[1-9][0-9]{7}|0[1-9][0-9]-[1-9][0-9]{6}|[01-9][0-9]{2}-[1-9][0-9]{5}$/;
    return pattern.test(string);
}

function isTel (string) {
  var addressPattern = 
  /^([0]\d{2}(-|\s)[1-9]\d{6})|([0]\d{3}(-|\s)[1-9]\d{5})|([0]\d{9})$/;
  return addressPattern.test(string);
}


function isMobile (string) {
  var addressPattern = 
    /^06(-{0,1})[1-9][0-9]{7}$/;
  return addressPattern.test(string);
}


function isTijd (string) {
  var addressPattern = 
     /^([01]?[0-9]|[2][0-3]):[0-5][0-9]$/;
  return addressPattern.test(string);
}

function isNum (string) {
    var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;
 
   for (i = 0; i < string.length && IsNumber == true; i++) 
      { 
      Char = string.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
}

function chkage(obj, format) {
 t    = new Date();	// get current date 
 year = t.getFullYear();	// get year of current
 mon  = t.getMonth() + 1;	// get month of current
 day  = t.getDate();	// get date of current
 
  dateBits = DateComponents(obj.value, format);
  DD = dateBits[0];
  MM = dateBits[1];
  YY = dateBits[2];
 
  age = year - YY;
  if ((MM > mon) || (MM == mon && day < DD)) age --;
   return age;
}

function ValiDate(obj, format){
   dateBits = DateComponents(obj.value, format);
   
   if (dateBits == null) return false;

   day = dateBits[0];
   month = dateBits[1];
   year = dateBits[2];

   if ((month < 1 || month > 12) || (day < 1 || day > 31)) { // check month range 
        return false;
   } 
   
   if ((month==4 || month==6 || month==9 || month==11) && day==31) {
        return false;
   }
	      
   if (month == 2) {
	testyear = year;
       // check for february 29th 
       if(year < 20){
       	testyear = 20 + year;
   }else if(year<100){
      	testyear = 19 + year;
   }	       
   var isleap = (testyear % 4 == 0 && (testyear % 100 != 0 || testyear % 400 == 0)); 
       if (day>29 || (day==29 && !isleap)) {
           return false;
          }
       } 
	   
   return true;
}

function DateComponents(dateStr, morfat) {
  var splitChar = (morfat.indexOf('-')>0?'-':(morfat.indexOf('/')>0?'/':(morfat.indexOf('.')>0?'.':'')));
  var morfatArr = morfat.split(splitChar);
  var dateArr = dateStr.split(splitChar);
  var retArr = new Array(morfatArr.length);  
    
  if(dateArr.length == morfatArr.length){
	  for(i=0;i<morfatArr.length;i++){
		if(morfatArr[i]=="dd" && dateArr[i]<=31){			
			retArr[0] = dateArr[i];
		}else if(morfatArr[i]=="mm" && dateArr[i]<=12){
			retArr[1] = dateArr[i];
		}else if(morfatArr[i]=="yyyy" && dateArr[i]<3000 && dateArr[i]>999){
			retArr[2] = dateArr[i];
		}else if(morfatArr[i]=="yy" && dateArr[i]<100 && dateArr[i]>=0){
			retArr[2] = dateArr[i];
		}else{
			return null;
		}
	  }	  
	  return retArr;
  }else{
    return null;
  }
}


function submitform(addNew) {
  var submitdata = true;
  var errorstr = "";
  var smsEmail;

  if(addNew) {
  	document.ontvanger_toevoegen.nog_een.value = 1;
  }

  errorstr = "";

   if (document.ontvanger_toevoegen.mobile && document.ontvanger_toevoegen.email) {

   	
   	if ( document.ontvanger_toevoegen.email.value.length==0 && document.ontvanger_toevoegen.mobile.value.length==0 )
	     {
	       errorstr = errorstr + "\n" + "  -  U dient minstens een mobiel nummer of een e-mailadres in te vullen";
	       submitdata = false;
	       var smsEmail = 1;
	     }
	     
	   if (document.ontvanger_toevoegen.mobile && !smsEmail ) {
		  if ( !isMobile(document.ontvanger_toevoegen.mobile.value) && document.ontvanger_toevoegen.mobile.value.length > 0 )
		     {
		       errorstr = errorstr + "\n" + "  -  Mobiel nummer niet geldig";
		       submitdata = false;
		     }
	   }

	   if (document.ontvanger_toevoegen.email && !smsEmail) {
		  if ( !isEmailAddress(document.ontvanger_toevoegen.email.value) && document.ontvanger_toevoegen.email.value.length > 0 )
		     {
		       errorstr = errorstr + "\n" + "  -  Uw e-mail adres is verplicht.";
		       submitdata = false;
		     }
	   }

   }else {

	   if (document.ontvanger_toevoegen.mobile ) {
		  if ( !isMobile(document.ontvanger_toevoegen.mobile.value) && document.ontvanger_toevoegen.mobile.value.length > 0 )
		     {
		       errorstr = errorstr + "\n" + "  -  Mobiel nummer niet geldig";
		       submitdata = false;
		     }
		  if ( document.ontvanger_toevoegen.mobile.value.length == 0 )
		     {
		       errorstr = errorstr + "\n" + "  -  Vul een mobiel nummer in";
		       submitdata = false;
		     }
	   }

	   if (document.ontvanger_toevoegen.email) {
		  if ( !isEmailAddress(document.ontvanger_toevoegen.email.value) && document.ontvanger_toevoegen.email.value.length > 0 )
		     {
		       errorstr = errorstr + "\n" + "  -  Uw e-mail adres is verplicht.";
		       submitdata = false;
		     }
		  if ( document.ontvanger_toevoegen.email.value.length == 0 )
		     {
		       errorstr = errorstr + "\n" + "  -  Uw e-mail adres is verplicht.";
		       submitdata = false;
		     }
	   }

   }
	  if ( !ValiDate(document.ontvanger_toevoegen.birthdate, "dd-mm-yyyy") && document.ontvanger_toevoegen.birthdate.value.length > 0 )
     {
       errorstr = errorstr + "\n" + "  -  'Geboortedatum' moet een datum zijn";
       submitdata = false;
     }

  if (submitdata==true)
   {
     document.ontvanger_toevoegen.action="../newsletter_submit.php";
     document.ontvanger_toevoegen.submit();
   }
  else
   {
     alert(errorstr);
     return false;
   }
}