function checkChecked(strContact,intCheckboxjes)
{
	var bChecked = false;
	var checkboxNo = 0;
	var len = document.formulier.elements.length

	for (checkboxNo = 0;checkboxNo < len;checkboxNo++)
	{
		

		if (document.formulier.elements[checkboxNo].name == 'IDs')
		{
			if (document.formulier.elements[checkboxNo].checked == true)
			{
				bChecked = true
			}
		}
	}
	if (bChecked)
	{
		document.formulier.submit();
	}
	else
	{
		alert("U dient een minstens één " + strContact + " aan te vinken om de mailing naar te versturen.");
	}
}


function setActionValue(strValue)
{
	document.formulier.actie.value = strValue;
}

function ValidateAndSubmit(objForm)
{
   if(ValidateForm(objForm)==true) objForm.submit()
}

function ValidateForm(objForm)
{
   var intIndex, strName
   for(intIndex=0;intIndex<=objForm.elements.length-1;intIndex++)
      if(ValidateElement(objForm.elements[intIndex])==false) return(false)
   for(intIndex=0;intIndex<=objForm.elements.length-1;intIndex++)
   {
      if(objForm.elements[intIndex].name.indexOf("name=")!=-1)
      {
         strName=Parse(objForm.elements[intIndex].name,"name")
         if(strName!="") objForm.elements[intIndex].name=strName
      }
   }
   return(true)
}

function ValidateElement(objElement)
{
   var strName, strValue, strName2, strDatatype, fltMin, fltMax, intMin, intMax, strRequired
   if(objElement.name.indexOf("name=")!=-1)
   {
      strName=objElement.name
      strValue=objElement.value
      strName2=Parse(strName,"name")
      strDatatype=Parse(strName,"datatype")
      strRequired=Parse(strName,"required")
      if(strRequired=="yes" && strValue=="")
      {
         alert("Verplicht veld niet ingevuld. Voer een waarde in...")
         objElement.focus()
         return(false)
      }
      if(strValue!="") switch(strDatatype)
      {
         case "date":
            if(ValidateDateNL(strValue)==false)
            {
               alert("Incorrect datumformaat. Voer een datum in met het formaat \"DD/MM/YYYY\".")
               objElement.focus()
               return(false)
            }
            break
         case "email":
            if(ValidateEmail(strValue)==false)
            {
               alert("Incorrect e-mail adres. Voer een e-mail adres in met het formaat \"naam@domein.land\".")
               objElement.focus()
               return(false)
            }
            break
         case "float":
            fltMin=parseFloat(Parse(strName,"min"))
            fltMax=parseFloat(Parse(strName,"max"))
            if(isNaN(fltMin)||isNaN(fltMax))
            {
               alert("error: float min/max waarde is niet gecodeerd.")
               return(false)
            }
            if(ValidateFloat(strValue,fltMin,fltMax)==false)
            {
               alert("Incorrecte waarde. Voer een numerieke waarde in tussen "+fltMin+".."+fltMax+".")
               objElement.focus()
               return(false)
            }
            break
         case "integer":
            if(ValidateInteger(strValue)==false)
            {
               alert("Incorrecte waarde. Voer een getal in.")
               objElement.focus()
               return(false)
            }
            break
         default: break
      }
   }
   return(true)
}

function Parse(strLine, strParameter)
{
   var intIndex, strParameterValue=""
   if(strParameter!="" && (intIndex=strLine.indexOf(strParameter+"="))!=-1)
   {
      intIndex+=strParameter.length+1
      while(intIndex<strLine.length && strLine.charAt(intIndex)!=" ")
         strParameterValue+=strLine.charAt(intIndex++)
   }
   return(strParameterValue)
}

function StringToInt(strString)
{
   var arrMatch=new RegExp("^([-]?)0*([0-9]+)$").exec(strString)
   if(arrMatch) return(parseInt(arrMatch[1]+arrMatch[2])); else return(NaN)
}

function ValidateDateNL(strValue)
{
   var arrMatch=new RegExp("^([0-9]{1,2})[/-]([0-9]{1,2})[/-]([0-9]{2}|[0-9]{4})$").exec(strValue)
   var intDay, intMonth, intYear
   /* Getallen */
   if(!arrMatch) return(false)
   intDay=StringToInt(arrMatch[1])
   intMonth=StringToInt(arrMatch[2])
   intYear=StringToInt(arrMatch[3])
   if(arrMatch[3].length==2) if(intYear<20) intYear+=2000; else intYear+=1900
   /* Geldige datum */
   if(isNaN(intDay) || intDay<1 || intDay>31) return(false)
   if(isNaN(intMonth) || intMonth<1 || intMonth>12) return(false)
   if(intDay>29 && intMonth==2) return(false)
   if(intDay==31 && (intMonth==4 || intMonth==6 || intMonth==9 || intMonth==11)) return(false)
   if(isNaN(intYear) || intYear<1000 || intYear>9999) return(false)
   if(intDay==29 && intMonth==2 && (intYear%4!=0 || (intYear%100==0 && intYear%400!=0))) return(false)
   return(true)
}

function ValidateEmail(strValue)
{
   var arrMatch=new RegExp("^[A-Za-z0-9_-]+([.][A-Za-z0-9_-]+){0,4}[@][A-Za-z0-9_-]+([.][A-Za-z0-9_-]+){1,3}$").exec(strValue)
   if(!arrMatch) return(false); else return(true)
}

function ValidateFloat(strValue, fltMin, fltMax)
{
   var arrMatch=new RegExp("^([-]?[0-9]+([.][0-9]+)?)$").exec(strValue)
   if(!arrMatch || parseFloat(arrMatch[1])<fltMin || parseFloat(arrMatch[1])>fltMax) return(false)
   else return(true)
}

function ValidateInteger(strValue)
{
   var arrMatch=new RegExp("^([-]?[0-9-,-.]+)$").exec(strValue)
   if(!arrMatch) return(false)
   else return(true)
}
