<!--
var strCOLLECTSUBMITHEADER = new String( 
			"______________________________________________________________\n"
			+"Het formulier is niet verstuurd omdat er fouten zijn.\n"
			+"Corrigeer deze fouten en verstuur het formulier opnieuw.\n"
			+"_____________________________________________________________\n");

var strVALUEREQUIRED = new String ("Waarde is verplicht.");
var strMASKERROR = new String ("Geef een geldige waarde");
var arrErrDteType = new Array (
			"Geef een geldig getal"
			, "Geef een geldige datum in het formaat \'MM-DD-YYYY\'"	// DATEENG
			, "Geef een geldige datum in het formaat \'DD-MM-YYYY\'"	// DATENED
			);

var m_blnUseClassName = true;
var m_blnCollectSubmitErrors = true;

function stringToDate(str, fDateFormat)
{
  var rx= new RegExp("^(\\d{1,2})[/-](\\d{1,2})[/-](\\d{4}$|\\d{2}$)");
  if (!rx.test(str)) 
  {
    return null;
  } 
  else 
  {
    rx.exec(str);
    if (fDateFormat) 
    {
      var day=   new Number(RegExp.$2);
      var month= new Number(RegExp.$1);
    }
    else
    {
      var day=   new Number(RegExp.$1);
      var month= new Number(RegExp.$2);		
    }
    var year=  new Number(RegExp.$3);
    if (year<100)
      year+=((year>=50)?1900:2000);
    if (isValidDate (day, month, year)) 
    {
      var newDate= new Date(year, (month-1), day);
      if (isNaN(newDate) == false)
      {
        return day + "/" + month + "/" + year;
      }
      else
      {
        return null;
      }
      //return isNaN(newDate)?null:newDate;
    } 
    else
    {
      return null;
    }
  }
}

function isValidDate(d,m,y)
{
  var daysInMonth= new Array (31,0,31,30,31,30,31,31,30,31,30,31);
  daysInMonth[1]= ((y%4==0)&&((y%100!=0)||(y%400==0)))?29:28;
  retval= ((d<1)||(d>daysInMonth[m-1])||(m<1)||(m>12)||(y<0))?false:true;
  return retval;
}

function isNumber(strValue)
{
  var rx= new RegExp("^([0-9]+$)");
  if (!rx.test(strValue)) 
  {
    return false;
  } 
  else 
  {
    return true;		
  }
}

function StrLTrim(myString)
{
  var str=new String(myString);
  str = str.replace(/^(\s+)/g, '');
  return str;
}

function StrRTrim(myString)
{
  var str = new String(myString);
  str = str.replace(/(\s+)$/g, '');
  return str;
}

function StrTrim(myString)
{
  var str= new String(myString);
  str = str.replace(/(\s+)/g, '');
  return str;
}

var m_strSubmitErrMsg = '';
var m_elmFirstErrElement=null;

function xlala()
{
	alert('xlala');
}
function SubmitFormValidate(frmForm) {

	var i=0;
	var e;
	var blnReturn=true;
	var blnSubmitErr=false;
	var msg="";

	m_strSubmitErrMsg = '';
	for (i=0; i < frmForm.length; i++) {
		e = frmForm.elements(i);
		
		blnReturn = true;
			
		if (null != e.type && IsDisplayed(e))  {
			if ((e.type.toUpperCase() == 'SELECT-ONE') ||(e.type.toUpperCase() == 'TEXT') || (e.type.toUpperCase() == 'TEXTAREA') || (e.type.toUpperCase() == 'PASSWORD')) {		

				if (e.required && blnReturn && m_blnCollectSubmitErrors) {
					blnReturn = CheckRequired(e);
				}
					
				if (e.value.length > 0 && e.datatype && blnReturn && m_blnCollectSubmitErrors) {
					blnReturn = CheckDatatype(e);
				}
	
				if (e.value.length > 0 && e.mask && blnReturn && m_blnCollectSubmitErrors) {
					blnReturn = CheckMask(e);
				}
				
				if (!blnReturn) {
					blnSubmitErr=true;
				}

				if (!blnReturn && !m_blnCollectSubmitErrors) {
					return false;
				}
			}
		}
	}
	
	if (blnSubmitErr && m_blnCollectSubmitErrors) {
		msg = strCOLLECTSUBMITHEADER;  // CollectSubmitHeader
			
		msg += m_strSubmitErrMsg;
			
		alert(msg);
			
		m_strSubmitErrMsg = "";
			
		if (null != m_elmFirstErrElement) {
			try
			{	m_elmFirstErrElement.select();
				m_elmFirstErrElement.focus();
			}catch(e){}		
		}
		return false;				// cancel form_submit..
	}
	return true;
}


function CheckRequired(elmE) {

	var blnReturn=true;
	var strMessage = "";
	
	if (StrLTrim(elmE.value).length == 0) {

		strMessage = strVALUEREQUIRED;
		blnReturn = false;
	}
	else {			
		blnReturn = true;
	}

	if (!blnReturn) {
		ValidateShowMessage(elmE, strMessage);
	} 
	else {
	
		if (m_blnUseClassName) {
			if (null != elmE.tempclass) {
				elmE.className = elmE.tempclass;
			}
		}
	}
	return blnReturn;
}



function CheckDatatype(elmE) {

	var blnReturn=true;
	var strMessage = "";
	var newDate;

	switch (elmE.datatype.toUpperCase()) {
		case 'INT':
			if (!isNumber(elmE.value)) {
	 			strMessage = arrErrDteType[0];
				blnReturn= false;
			}	
	 		else {
	 			blnReturn= true;
	 		}
		 		
			break;			

		case 'DATEENG':
				
			if (null == stringToDate(elmE.value, true)) {
				strMessage = arrErrDteType[1];
				blnReturn = false;
			}	
	 		else {
				blnReturn= true;
			}
			break;			

		case 'DATENED':			

			newDate = stringToDate(elmE.value, false);
			if (null == newDate) 
			{
				strMessage = arrErrDteType[2];
				blnReturn = false;
			}	
	 		else 
	 		{
				blnReturn= true;
			}
			break;			
			
		default :
			alert ('unsupported datatype \'' + elmE.datatype.toUpperCase() + '\' on \'' + elmE.name + '\'');
			blnReturn = true;
			break;
	}

	if (!blnReturn) {
		ValidateShowMessage(elmE, strMessage);
	}
	else {
		if (m_blnUseClassName) {
			if (null != elmE.tempclass) {
				elmE.className = elmE.tempclass;
			}
		}
	}

	return blnReturn;
}


function CheckMask(elmE) {	

	var blnReturn;
	var strMessage="";

	var reg = new RegExp(elmE.mask);
			
	if (!reg.test(elmE.value)) {
		strMessage = strMASKERROR;

		blnReturn = false;				
	}
	else {
		blnReturn = true;
	}

	if (!blnReturn) {	
		ValidateShowMessage(elmE, strMessage);
	} 
	else {
		if (m_blnUseClassName) {
			if (null != elmE.tempclass) {
				elmE.className = elmE.tempclass;
			}
		}
	}
	return blnReturn;
}


function ValidateShowMessage(elmE, strMessage) {
	var strMsg="";
	
	if (null != elmE.msg)
		if (elmE.caption == "undefined")
		{
			strMsg = elmE.name + ":\t" + elmE.msg;
		}
		else
		{
			strMsg = elmE.caption + ":\t" + elmE.msg;
		}
	else
		if (elmE.caption == "undefined" || elmE.caption == null)
		{
			strMsg = elmE.name + ":\t" + strMessage;	
		}
		else
		{
			strMsg = elmE.caption + ":\t" + strMessage;	
		}

	if (!m_blnCollectSubmitErrors) {
		alert(strMsg);
		elmE.focus();
		elmE.select();
	}
	else {
		m_strSubmitErrMsg += strMsg + "\n";	
		if (!m_elmFirstErrElement) {
			m_elmFirstErrElement = elmE;
		}
	}
	if (m_blnUseClassName) {
		if (null != elmE.className && elmE.className != "badinput") {
			elmE.tempclass = elmE.className;
		}
		elmE.className = "badinput";
	}
	return strMsg;
}

function IsDisplayed(objElement)
{
	/**************************************************
	*  IsDisplayed
	*
	*  Checks if the element is displayed to the user.
	***************************************************/

	if (objElement.style.visibility == '' && (objElement.style.display == 'block' || objElement.style.display == ''))
	{
		if (objElement.parentNode != null && objElement.parentNode.style != null)
		{
			return IsDisplayed(objElement.parentNode);
		}
		else
		{
			return true;
		}
	}
	else if (objElement.style.visibility == 'hidden' || (objElement.style.display == 'none' && objElement.skipRequired == 'true'))
	{
		return false;
	}
	else
	{
		return true;
	}
}

//-->