/*
  Valideerscripts / Thomas van Noorden / DE REE Archiefsystemen 2001
*/

function isEmailAddr(email)
{
  var result = false;
  var theStr = new String(email);
  var index = theStr.indexOf("@");
  if (index > 0)
  {
    var pindex = theStr.indexOf(".",index);
    if ((pindex > index+1) && (theStr.length > pindex+1))
	result = true;
  }
  return result;
}

function validRequired(formField,fieldLabel,minimumLengte)
{
	var result = true;
	
	if (formField.value == "")
	{
		alert('Vul aub ' + fieldLabel +' in.');
		formField.focus();
		result = false;
	}

	else if (formField.value.length < minimumLengte) {
		alert(fieldLabel+': vul minimaal '+minimumLengte+' tekens in.');
		formField.focus();
		result = false;
	}

	return result;
}

function validRadio (formField,fieldLabel)
{
	var result = true;
	var keuze = false;

	for (x=0; x<formField.length; x++)
		if (formField[x].checked) keuze = true;

	if (!keuze)
		{
			alert ('Selecteer aub ' + fieldLabel + '.');
			result = false;
		}
	return result;
}

function allDigits(str)
{
	return inValidCharSet(str,"0123456789");
}

function inValidCharSet(str,charset)
{
	var result = true;

	for (var i=0;i<str.length;i++)
		if (charset.indexOf(str.substr(i,1))<0)
		{
			result = false;
			break;
		}
	
	return result;
}

function validEmail(formField,fieldLabel,required)
{
	var result = true;
	
	if (required && !validRequired(formField,fieldLabel))
		result = false;

	if (result && ((formField.value.length < 3) || !isEmailAddr(formField.value)) )
	{
		alert("Vul een juist emailadres in, bv. jouwnaam@domein.nl");
		formField.focus();
		result = false;
	}
   
  return result;

}

function validNum(formField,fieldLabel,required)
{
	var result = true;

	if (required && !validRequired(formField,fieldLabel))
		result = false;
  
 	if (result)
 	{
 		if (!allDigits(formField.value))
 		{
 			alert('Vul aub alleen getallen in bij de datum');
			formField.focus();		
			result = false;
		}
	} 
	
	return result;
}


function validInt(formField,fieldLabel,required)
{
	var result = true;

	if (required && !validRequired(formField,fieldLabel))
		result = false;
  
 	if (result)
 	{
 		var num = parseInt(formField.value);
 		if (isNaN(num))
 		{
 			alert('Vul een juist telefoonnummer in "' + fieldLabel +'" field.');
			formField.focus();		
			result = false;
		}
	} 
	
	return result;
}

function testPW(nieuwPWveld,nieuwPWcontroleveld){
  var resultaat = true;
  if (!(nieuwPWveld.value == nieuwPWcontroleveld.value)){
    alert('De nieuwe wachtwoorden zijn verschillend. Zorg ervoor dat deze hetzelfde zijn.');
    nieuwPWveld.focus();
    resultaat = false; 
  }
  return resultaat;
}

function valideerForm(theForm)
{
	if (!validRequired(theForm.voornaam,"je voornaam",1))
		return false;

	if (!validRequired(theForm.username,"je gebruikersnaam",4))
		return false;

	if (!validRequired(theForm.password,"je wachtwoord",5))
		return false;

        if (!testPW(theForm.password,theForm.newpasscheck,5))
                return false;

	if (!validEmail(theForm.emailadres,"je emailadres"))
		return false;

	return true;
}

function valideerWijzigForm(theForm)
{
        if (!validRequired(theForm.voornaam,"je voornaam"))
                return false;

        if (!validRequired(theForm.achternaam,"je achternaam"))
                return false;

        if (theForm.geslacht && !validRequired(theForm.geslacht,"je geslacht"))
                return false;

        if (!validRequired(theForm.woonplaats,"je woonplaats"))
                return false;

        if (!validRequired(theForm.regio,"je regio"))
                return false;

        if(theForm.username && !validRequired(theForm.username,"je gebruikersnaam",5))
                return false;

        if (!validRequired(theForm.password,"je wachtwoord",5))
                return false;

	if (!testPW(theForm.password,theForm.newpasscheck))
		return false;

        if (!validEmail(theForm.emailadres,"je emailadres",true))
                return false;

        if (theForm.msn.value && !isEmailAddr(theForm.msn.value))
        {
                alert("Vul een juist MSN-emailadres in, bv. jouwnaam@hotmail.com");
                theForm.msn.focus();
                return false;
        }



        if (!validNum(theForm.d1,"je geboortedatum",true))
                return false;

        if (!validNum(theForm.d2,"je geboortedatum",true))
                return false;

        if (!validNum(theForm.d3,"je geboortedatum",true))
                return false;

        // <--------- End

        return true;
}

function valideerRegForm(theForm)
{
        if (!validRequired(theForm.voornaam,"je voornaam"))
                return false;
        if (!validRequired(theForm.achternaam,"je achternaam"))
                return false;
        if (!validRequired(theForm.geslacht,"je geslacht"))
                return false;
        if (!validRequired(theForm.woonplaats,"je woonplaats"))
                return false;
        if (!validRequired(theForm.regio,"je regio"))
                return false;


        s = theForm.username.value;
        if (!s.match(/^([a-zA-Z0-9_:*@#]){5,15}$/g)) 
        {
          alert ('Je gebruikersnaam moet minimaal 5 en maximaal 15 karakters lang zijn. Toegestane karakters zijn: letters, cijfers en de tekens _, *, @, # en :.');
          theForm.username.focus();
          return false;  
        }

//        if(theForm.username && !validRequired(theForm.username,"je gebruikersnaam",5))
//                return false;

        if (!validEmail(theForm.emailadres,"je emailadres",true))
		return false;
        if (!validNum(theForm.d1,"je geboortedatum",true))
                return false;
        if (!validNum(theForm.d2,"je geboortedatum",true))
                return false;
        if (!validNum(theForm.d3,"je geboortedatum",true))
                return false;

	if (!(theForm.elements["disclaimer"].checked))
    		return false;
}

function valideerUpload(theForm){
        if (!validRequired(theForm.bestand,"het te plaatsen bestand"))
                return false;

               
          if (!validNum(theForm.d1,"de datum",true))
            return false;

          if (!validNum(theForm.d2,"de datum",true))
            return false;
//        if (!validNum(theForm.d3,"de datum",true))
//                return false;

}

function valideerUl(theForm){
       if (!validRequired(theForm.plaats,"de uitgaansgelegenheid"))
                return false;

        if (!theForm.j.value && !theForm.elements["datering"].checked) 
        {
		alert ("Vul aub de datum in.");
		return false;
	}

  if (!(theForm.elements["disclaimer"].checked))
    return false;

  theForm.j.disabled = false;
  theForm.m.disabled = false;
  theForm.d.disabled = false;

//  e = document.getElementById('udiv');
//  e.style.display = none;
  return true;
}

function valideerMailing(theForm){
        if (!validRequired(theForm.username,"je gebruikersnaam"))
                return false;

        if (!validEmail(theForm.emailadres,"je emailadres",true))
                return false;
}

function valideerLogin(theForm){
        if (!validRequired(theForm.username,"je gebruikersnaam",5))
                return false;
        if (!validRequired(theForm.password,"je wachtwoord",5))
                return false;
}


function valideerMailVeld(theForm){
        if (!validEmail(theForm.emailadres,"een emailadres",true))
                return false;
}

function valideerUnMailing(theForm){
        if (!validEmail(theForm.emailadres,"je emailadres",true))
                return false;
}

function valideerMsg(theForm){
        if (!validRequired(theForm.to,"het aan-veld"))
                return false;

	if (!validRequired(theForm.bericht,"een bericht"))
		return false;

        if (theForm.bericht.value.length > 2048)
        {
          alert("Je bericht is te lang. Het mag maximaal 2048 tekens lang zijn.");
          return false;
        }
}

function valideerAddvraag(theForm){
        if (!validRequired(theForm.vraag,"de vraag",0))
                return false;
        if (!validRequired(theForm.a1,"antwoord A",0))
                return false;
        if (!validRequired(theForm.a2,"antwoord B",0))
                return false;
        if (!validRequired(theForm.a3,"antwoord C",0))
                return false;
        if (!validRadio(theForm.ok,"de knop voor het juiste antwoord",1))
                return false;
}

function valideerWijzigvraag(theForm){
        if (!validRequired(theForm.vraag,"de vraag",0))
                return false;
        if (!validRadio(theForm.ok,"de knop voor het juiste antwoord",1))
                return false;
}

function valideerJump(theForm){
        if (!validRequired(theForm.id,"de foto-ID",0))
                return false;

	if (!allDigits(theForm.id.value))
	{
        alert('Vul aub een getal in.');
        return false;
        }
}

function valideerBestel(theForm){
        if (!validRequired(theForm.naam,"je naam"))
                return false;

        if (!validEmail(theForm.emailadres,"je emailadres",true))
                return false;

        if (!validRequired(theForm.telefoonnummer,"je telefoonnummer"))
                return false;

	if (!confirm("Wil je dit shirt bestellen?")) return false;
}
