/**************************************************************************
Validator functions 
Auteur: Stefan Jansen (extra functie)
Datum:  06-11-2003
Doel:   Validatie functies van invoervelden op formulier
        Dit is een kopie CZValidators.js van 06-11-2003
        Extra functie toegevoegd om show-hide te togglen
**************************************************************************/

function validateTextDate(field, required)
{
	if(required||(field.value>''))
	{
		var re1 = /^(3[01]|([0]?)[1-9]|[12]\d)\/(([0]?)[1-9]|1[012])\/\d{4}/;
		var re2 = /^(3[01]|([0]?)[1-9]|[12]\d)\-(([0]?)[1-9]|1[012])\-\d{4}/;
		
		if (!re1.test(field.value)&&!re2.test(field.value)) 
		{
			return field.name +' > datum niet correct'+' \n'; 
		}
	}
	return ''; 
}

function validateTextEmail(field, required)
{

	if(required||(field.value>''))
	{
		//var re = /^.+\@.+\..+$/;
		var re=/^[A-Za-z0-9._%-]+@[A-Za-z0-9._%-]+\.[A-Za-z0-9._%-]{2,4}$/;
		
		if (!re.test(field.value)) 
		{
			return field.name +' > email niet correct'+' \n'; 
		}
	}
	return ''; 
}

function validatePhone(field, required, regioCode)
{
	
	if(required||(field.value>''))
	{
		var re1 = /^\D*\d{2}?\D*\d{8}?\D*$/;
		var re2 = /^\D*\d{3}?\D*\d{7}?\D*$/;
		var re3 = /^\D*\d{4}?\D*\d{6}?\D*$/;
		if (!re1.test(field.value)&&!re2.test(field.value)&&!re3.test(field.value)) 
		{
			return field.name +' > telefoon nummer niet goed'+' \n'; 
		}
	}
	return ''; 
}

function validateSelect(field, required)
{
	if (required&&(field.value=="0"))
	{
		return field.name +' > Selecteer een Optie'+' \n'; 
	}
	return ''; 
}

function validateRadio(field, required) 
{ 
	if(required)
	{
		isSelected = field[0].name +' > maak een selectie ' +' \n';
		for (var i=0; i < field.length; i++) 
		{ 
			if (field[i].checked) 
			{ 
				isSelected = ''; 
			}
		}
		return isSelected; 
	}
	else
	{
		return '';
	}
} 

function validateText(field, required) 
{ 
	if(required&&(field.value<=''))
	{
		return 	 field.name +' > Veld invullen ' +' \n';
	}
	return ''
} 

function validateTextCharacterCount(field, required, maxCharCount)
{
	if(required||(field.value>''))
	{
		if (field.value.length>maxCharCount)	return 'u mag niet meer dan ' +maxCharCount +' tekens gebruiken \n';
	}
	return '';
}

function validateTextWordCount(field, required, maxWordCount)
{
	if(required||(field.value>''))
	{
		var fullStr = field.value + " ";
		var initial_whitespace_rExp = /^[^A-Za-z0-9]+/gi;
		var left_trimmedStr = fullStr.replace(initial_whitespace_rExp, "");
		var non_alphanumerics_rExp = rExp = /[^A-Za-z0-9]+/gi;
		var cleanedStr = left_trimmedStr.replace(non_alphanumerics_rExp, " ");
		var splitString = cleanedStr.split(" ");
		var words = splitString.length -1;
		
		if (fullStr.length <2) words = 0;
		
		if (words>maxWordCount) return 'u mag niet meer dan '+maxWordCount +' woorden gebruiken \n';
	}	
	return '';
}

function validateZip(field, required, areaCode)
{
	if(required&&(field.value<=''))
	{
		return field.name +' > Veld invullen ' +' \n';
	}
	return '';
}

function validateCheckbox(field, required, minimum)
{
	var checked=0;
	for (var i=0; i < field.length; i++) 
	{ 
		if (field[i].checked) 
		{ 
			checked++; 
		}
	}
	
	if (required &&(checked<minimum))
	{
		return 	 field[0].name +' > minimaal ' +minimum +' opties selecten ' +' \n';
	}
	return '';
}


function validateCZReleatienummer(field, required)
{
	if(required||(field.value>''))
	{
		var re = /^\d{9}$/;
		if (!re.test(field.value)) 
		{
			return field.name +' > Relatienummer niet correct'+' \n'; 
		}
	}
	return '';
}

/**************************************************************************
Support functions
**************************************************************************/
function showGroup()
{
	for(var _p=0;_p<arguments.length;_p++) 
	{
		showDiv(arguments[_p]);
	}
}

function hideGroup()
{
	for(var _p=0;_p<arguments.length;_p++) 
	{
		hideDiv(arguments[_p]);
	}
}

function toggleGroup(obj, groupName)
{
  switch (obj.type)
  {
    case 'checkbox':
        if (obj.checked)
        {
            showGroup(groupName);
            //return 1;
        }
        else
        {
            hideGroup(groupName);
            //return 0;
        }
        break;
  }
}

function clearFormFields()
{
    	for(var _p=0;_p<arguments.length;_p++) 
    	{
    		document.forms[0].elements[arguments[_p]].value=""
    	}
}

function showDiv(id)
{
		if (navigator.appName == "Netscape" && parseInt(navigator.appVersion) >= 4)
		{
			document.layers[id].visibility = "visible";
		}
		else if(navigator.userAgent.indexOf("MSIE") != -1 && parseInt(navigator.appVersion) >= 4)
		{
			document.all(id).style.display = "inline";							
		}
}

function hideDiv(id)
{
		if (navigator.appName == "Netscape" && parseInt(navigator.appVersion) >= 4)
		{
			document.layers[id].visibility = "hidden";
		}
		else if(navigator.userAgent.indexOf("MSIE") != -1 && parseInt(navigator.appVersion) >= 4)
		{
			document.all(id).style.display = "none";
		}
}

/***************************************************************
 * gezondheidslijn
 ***************************************************************/
function showBox(start,end,name,parent) {
	var parentbox = document.getElementsByName(name)[parent];
	for(var i = start; i<=end; i++) {
		var box = document.getElementsByName(name)[i];
		if(parentbox.checked != true) {
			box.disabled = true;
			box.checked = false;
		}	
		else {
			box.disabled = false;
		}
	}
	return false;
}

