function checkEmpty(elementNames)
{
	var errorElements = new Array();
	var j=0;
	for(var i=0; i < elementNames.length; i++)
	{
        if(document.getElementById(elementNames[i]).value == '')
		{
			errorElements[j] = elementNames[i];
			j++;
      //document.getElementById(elementNames[i]).select();
      //document.getElementById(elementNames[i]).focus(); // Dit werkt niet in IE
		}
	}
	return errorElements;
}

function checkNewGite(language)
{
	if(!checkEditGite(language))
	{
		return false;
	}
	else
    {
		return checkInputLanguage(language);
    }
}

function checkNewCH(language)
{
	if(!checkEditCH(language))
	{
		return false;
	}
	else
    {
		return checkInputLanguage(language);
    }
}

function checkNewChambre(language)
{
	if(!checkEditChambre(language))
	{
		return false;
	}
	else
    {
		return checkInputLanguage(language);
    }
}

function checkNewObject(language)
{
	if(!checkEditObject(language))
	{
		return false;
	}
	else
    {
		return checkInputLanguage(language);
    }
}

function checkInputLanguage(language)
{
	var errorMessage="";
	if(!document.editHouseForm.inputnl.checked)
	{
		if(!document.editHouseForm.inputen.checked)
		{
			if(!document.editHouseForm.inputfr.checked)
			{
				if (language == 1) //nl
                {
					errorMessage = 'Gelieve de taal aan te geven waarin u de teksten heeft ingevoerd';
                }
				else if(language == 2) //en
                {
					errorMessage = 'Please enter the language in which you filled in this form';
                }
				else if(language == 3) //fr
                {
					errorMessage = 'Veuillez indiquer la langue dans laquelle vous avez inséré les informations';
                }
				alert(errorMessage);
				return false;
			}
		}
	}
	return true;
}

function toggleRadio()
{
	if(document.editHouseForm.inputnl.checked)
	{
		document.editHouseForm.inputen.checked=false;
		document.editHouseForm.inputfr.checked=false;

	}
	if(document.editHouseForm.inputen.checked)
	{
		document.editHouseForm.inputnl.checked=false;
		document.editHouseForm.inputfr.checked=false;
	}
	if(document.editHouseForm.inputfr.checked)
	{
		document.editHouseForm.inputnl.checked=false;
		document.editHouseForm.inputen.checked=false;
	}
	return true;
}

function checkEditGite(language)
{
	var elementArray = new Array("location","gitename","max_persons");
	var errorElements = checkEmpty(elementArray);
	var errorMessage = '';
	if(errorElements.length != 0)
	{
		for(var k=0;k < errorElements.length;k++)
		{
			if(language==1)
			{
				if(errorElements[k] == 'gitename')
				{
					errorMessage += 'U heeft geen accommodatienaam ingevuld\n';
				}
				else if(errorElements[k] == 'location')
				{
					errorMessage += 'U heeft geen plaatsnaam ingevuld\n';
				}
				else if(errorElements[k] == 'max_persons')
				{
					errorMessage += 'U heeft geen maximaal aantal personen ingevuld\n';
				}
			}
			else if(language == 3)
			{
				// FRANSE TEKST!
				if(errorElements[k] == 'gitename')
				{
					errorMessage += 'Vous n´avez pas encore indiqué le nom de la gite.';
				}
				else if(errorElements[k] == 'location')
				{
					errorMessage += 'Vous n´avez pas encore indiqué le lieu.';
				}
				else if(errorElements[k] == 'max_persons')
				{
					errorMessage += 'Vous n´avez pas encore indiqué le nombre de personnes.';
				}
			}
			else
			{
				if(errorElements[k] == 'gitename')
				{
					errorMessage += 'You did not specify a housename';
				}
				else if(errorElements[k] == 'location')
				{
					errorMessage += 'You did not specify a city';
				}
				else if(errorElements[k] == 'max_persons')
				{
					errorMessage += 'You did not enter a maximum number of people';
				}
			}
		}
		alert(errorMessage);
		return false;
	} //skiing checks
	else if(document.editHouseForm.skiing.checked)
    {
        if (document.getElementById('ski_area').value == 0)
        {
            if(language == 1)
                alert('Selecteer een ski gebied');
            if(language == 2)
                alert('Select a skiing area');
            if(language == 3)
                alert('Selectez la station de ski');
            return false;
        }
        var afstandChecked = false;
        for (i=1;i<6;i++)
        {
            if (document.getElementById('skiafstand'+i).checked)
            {
                afstandChecked = true;
            }
        }
        if (afstandChecked == false)
        {
            if(language == 1)
                    alert('Selecteer een afstand tot de skiliften');
                if(language == 2)
                    alert('Select the distance to skiing lifts');
                if(language == 3)
                    alert('Selectez distance á remontees');
        }
        return afstandChecked;

    }
    else
    {
		return true;
	}
}

function checkEditObject(language)
{
	var elementArray = new Array('snippet', 'sell_price', 'description_js');
	var errorElements = checkEmpty(elementArray);
	var errorMessage = '';
	if(errorElements.length != 0)
	{
		for(var k=0; k < errorElements.length; k++)
		{
			if(language == 1) //NL
			{
				if(errorElements[k] == 'description_js')
				{
					errorMessage += 'U heeft geen omschrijving ingevuld\n';
				}
				else if(errorElements[k] == 'sell_price')
				{
					errorMessage += 'U heeft geen prijs ingevuld\n';
				}
				else if(errorElements[k] == 'snippet')
				{
					errorMessage += 'U heeft geen tekst bij de samenvatting ingevuld\n';
				}
			}
			else if(language == 3) // FR
			{
				if(errorElements[k] == 'description_js')
				{
					errorMessage += 'Vous n´avez pas encore indiqué le description\n';
				}
				else if(errorElements[k] == 'sell_price')
				{
					errorMessage += 'Vous n´avez pas encore indiqué le prix\n';
				}
                else if(errorElements[k] == 'snippet')
				{
					errorMessage += 'Vous n´avez pas encore indiqué le \'snippet\'\n';
				}
			}
			else //EN
			{
				if(errorElements[k] == 'description_js')
				{
					errorMessage += 'You did not enter a description\n';
				}
				else if(errorElements[k] == 'sell_price')
				{
					errorMessage += 'You did not enter a price\n';
				}
                else if(errorElements[k] == 'snippet')
				{
					errorMessage += 'You did not enter a text for the summary\n';
				}
			}
		}
		alert(errorMessage);
		return false;
	}
	else
	{
		return true;
	}
}

function checkEditCH(language)
{
	var elementArray = new Array("location","gitename");
	var errorElements = checkEmpty(elementArray);
	var errorMessage = '';
	if(errorElements.length != 0)
	{
		for(var k=0;k < errorElements.length;k++)
		{
			if(language==1)
			{
				if(errorElements[k] == 'gitename')
				{
					errorMessage += 'U heeft geen naam ingevuld\n';
				}
				else if(errorElements[k] == 'location')
				{
					errorMessage += 'U heeft geen plaatsnaam ingevuld\n';
				}
			}
			else if(language == 3)
			{
				// FRANSE TEKST!
				if(errorElements[k] == 'gitename')
				{
					errorMessage += 'Vous n´avez pas encore indiqué le nom de la gite.';
				}
				else if(errorElements[k] == 'location')
				{
					errorMessage += 'Vous n´avez pas encore indiqué le lieu.';
				}
			}
			else
			{
				if(errorElements[k] == 'gitename')
				{
					errorMessage += 'You did not specify a housename';
				}
				else if(errorElements[k] == 'location')
				{
					errorMessage += 'You did not specify a city';
				}
			}
		}
		alert(errorMessage);
		return false;
	}
	else
	{
		return true;
	}
}

function checkEditChambre(language)
{	var elementArray = new Array("gitename","max_persons");
	var errorElements = checkEmpty(elementArray);
	var errorMessage = '';
	if(errorElements.length != 0)
	{
		for(var k=0;k < errorElements.length;k++)
		{	if(language == 1)
			{
				if(errorElements[k] == 'gitename')
				{
					errorMessage += 'U heeft geen kamernaam ingevuld\n';
				}
				else if(errorElements[k] == 'max_persons')
				{
					errorMessage += 'U heeft geen aantal personen ingevuld\n';
				}
			}
			else if(language ==3)
			{
				if(errorElements[k] == 'gitename')
				{
					errorMessage += 'Vous n´avez pas encore indiqué le nom de la chambre.';
				}
				else if(errorElements[k] == 'max_persons')
				{
					errorMessage += 'Vous n´avez pas encore indiqué le nombre de personnes.';
				}
			}
			else
			{
				if(errorElements[k] == 'gitename')
				{
					errorMessage += 'You did not enter a roomname\n';
				}
				else if(errorElements[k] == 'max_persons')
				{
					errorMessage += 'You did not enter the number of persons\n';
				}
			}
		}
		alert(errorMessage);
		return false;
	}
	else
	{
		return true;
	}
}

function checkCreateObject(language)
{
    if(!( document.getElementById('objType1').checked ||
            document.getElementById('objType2').checked ||
                document.getElementById('objType3').checked ||
                    document.getElementById('objType4').checked ))
    {
        switch(language)
        {
            case '1':
                alert('U heeft geen objecttype geselecteerd');
                return false;
            case '3':
                alert('Vous n\'avez pas selecter une objecttype');
                return false;
            default:
                alert('You have not selected an objecttype');
                return false;
        }
    }
    else
    {
        return true;
    }
}

function checkAvailability(language)
{
	var elementArray = new Array("startdate","enddate");
	var errorElements = checkEmpty(elementArray);
	var errorMessage = '';
	if(errorElements.length != 0)
	{
		for(var k=0;k < errorElements.length;k++)
		{
			if(language == 1)
			{
				if(errorElements[k] == 'startdate')
				{
					errorMessage += 'U heeft geen startdatum gekozen.\n';
				}
				else if(errorElements[k] == 'enddate')
				{
					errorMessage += 'U heeft geen einddatum gekozen.\n';
				}
			}
			else if(language == 3)
			{
				// FRANSE TEKST!

				if(errorElements[k] == 'startdate')
				{
					errorMessage += 'Vous n´avez pas encore choisi une date de début.\n';
				}
				else if(errorElements[k] == 'enddate')
				{
					errorMessage += 'Vous n´avez pas encore choisi une date de fin.\n';
				}
			}
			else
			{
				if(errorElements[k] == 'startdate')
				{
					errorMessage += 'You did not select a start date.\n';
				}
				else if(errorElements[k] == 'enddate')
				{
					errorMessage += 'You did not select an end date.\n';
				}
			}
		}
		alert(errorMessage);
		return false;
	}
	else
	{
		//startdate and enddate are chosen, so now it is possible to check the LM-data
		if(document.getElementById('statusbox').value=='6') //6 == last minute
		{
			var lmCheck = checkLastMinute(language);

			if(lmCheck == true)
			{
				//alert('TEST - no problems found');		//all fields contain data
				return true;
			}
			else if(lmCheck == false)
			{
				//alert('TEST - some problems found');	//some fields don't contain data
				return false;
			}
		}
		else
		{
			return true;
		}

	}
}

function checkLastMinute(language)
{
	var elementArray  = new Array("newLmPrice");
	var errorElements = checkEmpty(elementArray);

	var errorMessage = '';

	if(errorElements.length != 0)
	{
		for(var k=0; k<errorElements.length; k++)
		{
			if(language == 1)
			{
				if(errorElements[k] == 'newLmPrice')
				{
					errorMessage += 'U heeft geen geldige korting opgegeven.\n';
				}
			}
			else if(language == 3)
			{
				// FRANSE TEKST!

				if(errorElements[k] == 'newLmPrice')
				{
					errorMessage += 'Vous n\'avez pas indiqué une réduction valide.\n';
				}
			}
			else
			{
				if(errorElements[k] == 'newLmPrice')
				{
					errorMessage += 'You haven\'t stated a valid discount.\n';
				}
			}
		}
	}

	//check if new price >0 (if not, then create an error)
	if(document.getElementById('newLmPrice').value == 0)
	{
		if(language == 1)
		{
			errorMessage += 'De nieuwe prijs is ongeldig.\n';
		}
		else if(language == 3)
		{
			errorMessage += 'Le nouveau prix n\'est pas en vigueur.\n';
		}
		else
		{
			errorMessage += 'The new price is not valid.\n';
		}
	}

  //Hier struikelt IE over, IE bug

	//check if a site for a LM is chosen
	//(= a radiobutton must be checked)
	if(document.getElementById('desctypeNl').checked==false &&
		document.getElementById('desctypeBiz').checked==false &&
		document.getElementById('desctypeAll').checked==false)
	{
		if(language == 1)
		{
			errorMessage += 'Er is geen site gekozen.\n';
		}
		else if(language == 3)
		{
			errorMessage += 'Vous n\'avez pas choisi de site.\n';
		}
		else
		{
			errorMessage += 'You haven\'t chosen a website.\n';
		}
	}
	else if(document.getElementById('desctypeNl').checked==true ||
		document.getElementById('desctypeBiz').checked==true ||
		document.getElementById('desctypeAll').checked==true)
	{
		//check if descriptions of the LM's are filled in
		//1) LM for .nl, but no description for .nl filled in
		//2) LM for .biz, but no description for .biz filled in
		//3) LM for .nl and .biz, but one of the descriptions not filled in

		var elementArray = new Array("desc_nl_text", "desc_biz_text");
		var errorElements = checkEmpty(elementArray);

		if(document.getElementById('desctypeNl').checked==true && errorElements.inArray('desc_nl_text')==true)
		{
			//alert('nl chosen, no description');
			var descNl=false;
		}
		else if(document.getElementById('desctypeBiz').checked==true && errorElements.inArray('desc_biz_text')==true)
		{
			//alert('biz chosen, no');
			var descBiz=false;
		}
		else if(document.getElementById('desctypeAll').checked==true)
		{
			if(errorElements.inArray('desc_nl_text')==true)
			{
				//alert('both chosen, no .nl description');
				var descNl  = false;
			}

			if(errorElements.inArray('desc_biz_text')==true)
			{
				//alert('both chosen, no .biz description');
				var descBiz = false;
			}
		}

		//use error message if needed
		if(descNl==false)
		{
			if(language == 1)
			{
				errorMessage += 'De omschrijving van Gites.nl ontbreekt.\n';
			}
			else if(language == 3)
			{
				errorMessage += 'La description pour Gites.nl manque.\n';
			}
			else
			{
				errorMessage += 'The description of Gîtes.nl is missing.\n';
			}
		}

		if(descBiz==false)
		{
			if(language == 1)
			{
				errorMessage += 'De omschrijving van Gites.biz ontbreekt.\n';
			}
			else if(language == 3)
			{
				errorMessage += 'La description pour Gites.biz manque.\n';
			}
			else
			{
				errorMessage += 'The description of Gîtes.biz is missing.\n';
			}
		}
	}

  var start = document.getElementById('startdate').value;
  var end = document.getElementById('enddate').value;
  var startDay = start.substring(0,2);
  var startMonth = start.substring(3,5);
	var startYear = start.substring(6,10);
  var endDay = end.substring(0,2);
	var endMonth = end.substring(3,5);
	var endYear = end.substring(6,10);
  start= startYear+'-'+startMonth+'-'+startDay;
  end= endDay +'-'+ endMonth +'-'+ endYear;

  var date1 = new Date()

  date1 = Date.UTC(y2k(date1.getYear()),date1.getMonth(),date1.getDate(),0,0,0) + (86400000*21);
  date1 = new Date(date1);
  date1 = date1.getFullYear()+'-'+(date1.getMonth()+1)+'-'+date1.getDate();

  var showDate = Date.UTC(y2k(startYear),(startMonth-1),startDay,0,0,0) - (86400000*21);
  showDate = new Date(showDate);
  showDate = showDate.getDate() +'-'+ (showDate.getMonth()+1) +'-'+ showDate.getFullYear();

  if(start > date1 && errorMessage=='')
  {
    if(language == 1)
    {
      errorMessage += 'De gekozen startdatum ligt meer dan 21 dagen in de toekomst. De last minute zal vanaf 21 dagen voor de startdatum, '+showDate+' tot en met '+end+', getoond worden.\n';
    }
    else if(language == 3)
    {
      errorMessage += 'La date de début que vous avez indiqué est plus que 3 semaines dans le futur. Cette offre de dernière minute sera publiée 3 semaines avant la date de début '+showDate+' jusqu\'au '+end+'.\n';
    }
    else
    {
      errorMessage += 'The starting date you entered is more than 21 days ahead. Your last minute offer will be visible as of 21 days before the indicated starting date '+showDate+' until '+end+'.\n';
    }

    alert(errorMessage);
    return true;
  }

	//end of check for descriptions

	//show the created error message
	if(errorMessage!='')
	{
		alert(errorMessage);
		return false;
	}
	else
	{
		return true;
	}
}

function checkMailForm(languageString)
{
	var elementArray = new Array("email_1","lastname","question");
	var errorElements = checkEmpty(elementArray);
	var errorMessage = '';
	if(errorElements.length != 0)
	{
		for(var k=0; k < errorElements.length; k++)
		{
			if(languageString == 'nl')
			{
				if(errorElements[k] == 'email_1')
				{
					errorMessage += 'U heeft geen e-mailadres ingevuld\n';
				}
				else if(errorElements[k] == 'lastname')
				{
					errorMessage += 'U heeft geen naam ingevuld\n';
				}
				else if(errorElements[k] == 'question')
				{
					errorMessage += 'U heeft geen vraag ingevuld\n';
				}
			}
			else if(languageString == 'en')
			{
				if(errorElements[k] == 'email_1')
				{
					errorMessage += 'You did not enter a email address\n';
				}
				else if(errorElements[k] == 'lastname')
				{
					errorMessage += 'You did not enter your name\n';
				}
				else if(errorElements[k] == 'question')
				{
					errorMessage += 'You did not enter a question\n';
				}
			}
			else
			{
				if(errorElements[k] == 'email_1')
				{
					errorMessage += 'Vous n\'avez pas donné votre adresse e-mail\n';
				}
				else if(errorElements[k] == 'lastname')
				{
					errorMessage += 'Vous n\'avez pas donné votre nom\n';
				}
				else if(errorElements[k] == 'question')
				{
					errorMessage += 'Vous n\'avez pas posé de question\n';
				}
			}
		}
		alert(errorMessage);
		return false;
	}
	else
	{
		if(!validateEmail(getElementValue("email_1")))
		{
			if(languageString == 'nl')
			{
				alert("E-mailadres is onjuist");
			}
			else if(languageString == 'en')
			{
				alert("E-mail address is not correct");
			}
			else
			{
				alert("Adresse e-mail incorrecte");
			}
            return false;
		}
		else
		{
			return true;
		}
	}
	return false;
}

function validLength(text, len)
{
	return (text.length >= len);
}

function checkUserForm(language, vatnum_length, vatnum_numeric)
{

    //check whether invoice fields have been filled in
    if (validLength(document.getElementById('invoiceStreet').value,1)
        || validLength(document.getElementById('invoicezipcode').value,1)
            || validLength(document.getElementById('invoicecity').value,1)
                || document.getElementById('invoicecountry').value != -1)
    {
        if (!validLength(document.getElementById('invoiceStreet').value,2)
        || !validLength(document.getElementById('invoicezipcode').value,4)
            || !validLength(document.getElementById('invoicecity').value,2)
                || document.getElementById('invoicecountry').value == -1)
        {
            if (language == 1)
            {
                alert('Vult u a.u.b. een volledig factuuradres in of laat het factuuradres leeg. (We gebruiken uw correspondentieadres)');
            }
            else if (language == 3)
            {
                alert('Veuillez indiquer une adresse de facturation complète ou laissez cette case vide. (Nous utiliserons votre adresse de correspondance)');
            }
            else
            {
                alert('Please fill out the complete billing adress or leave it empty. (We will use the above address)');
            }
            return false;
        }
    }

    if (!document.getElementById('gender_male').checked && !document.getElementById('gender_female').checked)
    {
        if (language == 1)
            {
                alert('Selecteert u alstublieft de Heer of Mevrouw');
            }
            else if (language == 3)
            {
                alert('Merci de choisir Mr. ou Mme.');
            }
            else
            {
                alert('Please select Mr. or Mrs.');
            }
            return false;
    }

    var elementArray = new Array("firstname","lastname","street","city","telephone_1","email_1","username","password");
	var errorElements = checkEmpty(elementArray);
	var errorMessage = '';
	var selectedCountry = document.getElementById('country').selectedIndex;

    if(document.getElementById('country').options[selectedCountry].value == '-1')
    {
         if (language == 1)
            {
                alert('Gelieve een land te selecteren');
            }
            else if (language == 3)
            {
                alert('Veuillez choisir un pays');
            }
            else
            {
                alert('Please select a country');
            }
            return false;
    }

    if (!checkInputLength(document.getElementById('vatnumber'), vatnum_length, vatnum_numeric, language))
    {
        return false;
    }

	if(errorElements.length != 0)
	{
		for(var k=0;k < errorElements.length;k++)
		{
			if(language == 1)
			{
				//if(country[].selected) {
					//errorMessage += 'Kiest u alstublieft een land\n';
				//}
				if(errorElements[k] == 'firstname')
				{
					errorMessage += 'Gelieve een voornaam in te vullen\n';
				}
				else if(errorElements[k] == 'lastname')
				{
					errorMessage += 'Gelieve een achternaam in te vullen\n';
				}
				else if(errorElements[k] == 'street')
				{
					errorMessage += 'Gelieve een straatnaam in te vullen\n';
				}
				else if(errorElements[k] == 'housenumber')
				{
					errorMessage += 'Gelieve een huisnummer in te vullen\n';
				}
				else if(errorElements[k] == 'city')
				{
					errorMessage += 'Gelieve een plaatsnaam in te vullen\n';
				}
				else if(errorElements[k] == 'telephone_1')
				{
					errorMessage += 'Gelieve een telefoonnummer in te vullen\n';
				}
				else if(errorElements[k] == 'email_1')
				{
					errorMessage += 'Gelieve een E-mail adres in te vullen\n';
				}
				else if(errorElements[k] == 'username')
				{
					errorMessage += 'Gelieve een gebruikersnaam in te vullen\n';
				}
				else if(errorElements[k] == 'password')
				{
					errorMessage += 'Gelieve een wachtwoord te vullen\n';
				}
				else if(errorElements[k] == 'country')
				{
					errorMessage += 'Gelieve een land te kiezen\n';
				}
				else
				{
					errorMessage += 'Onverklaarbare fout gevonden\n';
				}
			}
			else if(language == 3)
			{
				// FRANSE TEKST
				if(errorElements[k] == 'firstname')
				{
					errorMessage += 'Vous n´avez pas encore indiqué de prénom.\n';
				}
				else if(errorElements[k] == 'lastname')
				{
					errorMessage += 'Vous n´avez pas encore indiqué de nom.\n';
				}
				else if(errorElements[k] == 'street')
				{
					errorMessage += 'Vous n´avez pas encore rempli la rue.\n';
				}
				else if(errorElements[k] == 'housenumber')
				{
					errorMessage += 'Vous n´avez pas encore indiqué de numéro.\n';
				}
				else if(errorElements[k] == 'city')
				{
					errorMessage += 'Vous n´avez pas encore indiqué le lieu.\n';
				}
				else if(errorElements[k] == 'telephone_1')
				{
					errorMessage += 'Vous n´avez pas encore indiqué de numéro de téléphone.\n';
				}
				else if(errorElements[k] == 'email_1')
				{
					errorMessage += 'Vous n´avez pas encore indiqué d\'adresse e-mail.\n';
				}
				else if(errorElements[k] == 'username')
				{
					errorMessage += 'Vous n´avez pas encore rempli un nom d\'utilisateur.\n';
				}
				else if(errorElements[k] == 'password')
				{
					errorMessage += 'Vous n´avez pas encore indiqué votre mot de passe.\n';
				}
				else
				{
					errorMessage += '??';
				}
			}
			else
			{
				if(errorElements[k] == 'firstname')
				{
					errorMessage += 'Please fill in your initials or firstname\n';
				}
				else if(errorElements[k] == 'lastname')
				{
					errorMessage += 'Please fill in your surname\n';
				}
				else if(errorElements[k] == 'street')
				{
					errorMessage += 'Please fill in your address\n';
				}
				else if(errorElements[k] == 'city')
				{
					errorMessage += 'Please fill in your town\n';
				}
				else if(errorElements[k] == 'telephone_1')
				{
					errorMessage += 'Please fill in your phone number\n';
				}
				else if(errorElements[k] == 'email_1')
				{
					errorMessage += 'Please fill in an e-mail address\n';
				}
				else if(errorElements[k] == 'username')
				{
					errorMessage += 'Please fill in a login name\n';
				}
				else if(errorElements[k] == 'password')
				{
					errorMessage += 'Please fill in a password\n';
				}
				else
				{
					errorMessage += 'Onverklaarbare fout gevonden\n';
				}
			}
		}
		alert(errorMessage);
		return false;
	}
	else
	{
		if(!validateEmail(getElementValue("email_1")))
		{
			if(language == 1)
			{
				alert('E-mail adres is onjuist');
			}
			else if(language == 3)
			{
				//FRANSE TEKST
				alert('L\'adresse e-mail est incorrecte.');
			}
			else
			{
				alert("E-mail address not correct");
			}
			return false;
		}
		else
		{
			if(language == 1)
			{
				if(!checkLength('username',4,8))
				{
					alert("De gebruikersnaam moet tussen de 4 en 8 karakters zijn");
					return false;
				}
				else
				{
					if(!checkLength('password',4,8))
					{
						alert("Het password moet tussen de 4 en 8 karakters zijn");
						return false;
					}
					else
					{
						return true;
					}
				}

			}
			else if(language == 3)
			{
				// FRANSE TEKST
				if(!checkLength('username',4,8))
				{
					alert("Le nom d'utilisateur doit consister de 4 à 8 caractères");
					return false;
				}
				else
				{
					if(!checkLength('password',4,8))
					{
						alert("Le mot de passe doit consister de 4 à 8 caractères");
						return false;
					}
					else
					{
						return true;
					}
				}
			}
			else
			{
				if(!checkLength('username',4,8))
				{
					alert("The username should be between 4 and 8 characters");
					return false;
				}
				else
				{
					if(!checkLength('password',4,8))
					{
						alert("The password should be between 4 and 8 characters");
						return false;
					}
					else
					{
						return true;
					}
				}
			}
		}
	}
}
function setCountryCode(selectObject, textFieldId)
{
	selectedOption = selectObject.options[selectObject.selectedIndex];
	document.getElementById(textFieldId).value = selectedOption.id;

    countryCode = document.getElementById('invoicecountry').value;
        if (countryCode == '')
        {
            countryCode = document.getElementById('country').value;
        }
}

function getElementValue(elementName)
{
	return document.getElementById(elementName).value;
}
function checkLength(textObjectId, minLength, maxLength)
{
	var textObject = document.getElementById(textObjectId);
	if(textObject.value.length<minLength || textObject.value.length>maxLength)
		return false;
	return true;
}

function validateEmail(emailAddress)
{
	if(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(emailAddress))
		return true;
	return false;
}

function limitTextarea(field, maxlen, language)
{
    if (field.value.length > maxlen)
    {
        field.value = field.value.substring(0, maxlen);
        if (language == 'nl') //NL
        {
            alert('U kunt maximaal ' + maxlen + ' tekens invoeren');
        }
        else if (language == 'fr') //FR
        {
            alert('Vous pouvez seulement saisir' + maxlen + 'caractères');
        }
        else //EN
        {
            alert('You can only type ' + maxlen + ' characters');
        }
        return false;
    }
}

// checks if a field contains only
function isNumeric(textfield, language)
{
    inputstring = textfield.value;
    for (i = 0; i < inputstring.length; i++)
    {
        ch = inputstring.substring(i, i+1);
        if (ch < "0" || ch > "9")
          {
              if (language == 'nl')
              {
                  alert('U mag alleen cijfers bij dit veld gebruiken');
              }
              else if (language='fr')
              {
                  alert('Vous pouvez utiliser des chiffres uniquement à cet endroit');
              }
              else
              {
                  alert('You can only use numbers in this field');
              }
              textfield.value = textfield.value.substring(0, i);
              textfield.focus();
              return false;
          }
    }
    return true;
}

function isPrice(textfield, language)
{
    inputstring = textfield.value;
    for (i = 0; i < inputstring.length; i++)
    {
        ch = inputstring.substring(i, i+1);
        if (ch != '.' && (ch < "0" || ch > "9"))
          {
              if (language == 'nl')
              {
                  alert('U mag alleen cijfers of een punt bij dit veld gebruiken');
              }
              else if (language='fr')
              {
                  alert('Vous pouvez utiliser des chiffres uniquement ou une point(.) à cet endroit');
              }
              else
              {
                  alert('You can only use numbers or a point(.) in this field');
              }
              textfield.value = textfield.value.substring(0, i);
              textfield.focus();
              return false;
          }
    }
    return true;
}

function isAlphaNumeric(textfield, language)
{
	if (textfield.value.match(/^[a-zA-Z0-9]+$/))
	{
		return true;
	}
	else
	{
        if (language == 'nl')
              {
                  alert('U mag alleen cijfers of letters bij dit veld gebruiken');
              }
              else if (language='fr')
              {
                  alert('Vous pouvez seulement employer les caractères alphanumériques à cet endroit');
              }
              else
              {
                  alert('You can only use digits and lettres in this field');
              }
              textfield.value = '';
              textfield.focus();
		return false;
	}
}

function checkInputType(textfield, numeric, language)
{
    if (numeric == 1)
    {
        isNumeric(textfield, language);
    }
    else
    {
        isAlphaNumeric(textfield, language);
    }
}

function checkInputLength(textfield, possibleLengths, numeric, language)
{
    if (textfield.value.length == 0)
    {
        return true; //empty field
    }
    var tempLength = '';
    for(var i=0; i<possibleLengths.length; i++)
    {
        if (possibleLengths.charAt(i) != ',')
        {
            tempLength += possibleLengths.charAt(i);
        }
        else
        {
            if (textfield.value.length == tempLength)
            {
                return true;
            }
            tempLength = '';
        }
    }

    var letters = '';
    if (numeric == 0)
    {
        if (language == 1)
        {
            letters = ' (en letters)';
        }
        else if (language == 3)
        {
            letters = ' (et lettres)';
        }
        else
        {
            letters = ' (and characters)';
        }
    }

    possibleLengths = possibleLengths.substring(0, possibleLengths.length-1);

    if (language == 1)
    {
      alert('Een BTW nummer bestaat uit ' + possibleLengths + ' cijfers' + letters + '.\nWilt u het nummer corrigeren of als dat niet lukt leeglaten.\nAls u het nummer niet precies weet, dan kunt u het nu leeglaten en later invullen.');
    }
    else if (language == 3)
    {
      alert('Le numéro de TVA comporte ' + possibleLengths + ' chiffres ' + letters + '.\nVeuillez corriger le numéro. Si vous n\'y réussissez pas ou vous n\'en êtes pas sûr, vous pouvez remplir le numéro ultérieurement.');
    }
    else
    {
      alert('A VAT number consists of ' + possibleLengths + ' digits' + letters + '.\nWill you please enter the correct number or leave the field blank.\nYou can also enter the number at a later time.');
    }

    textfield.value = '';
    textfield.focus();
    return false;
}

function y2k(number)
{
    return (number < 1000) ? number + 1900 : number;
}

function checkInsertGbEntry(languageString)
{
	var elementArray = new Array("visitor_name","visitor_location","visitor_email","message","stayStartDay","stayStartMonth","stayStartYear","stayEndDay","stayEndMonth","stayEndYear","rating","capchaCode");
	var errorElements = checkEmpty(elementArray);
	var errorMessage = '';
	var dateCounter = 0;
	if(errorElements.length != 0)
	{
		for(var k=0; k < errorElements.length; k++)
		{
			if(languageString == 'nl')
			{
				if(errorElements[k] == 'visitor_name')
				{
					errorMessage += 'U heeft geen naam ingevuld\n';
				}
				else if(errorElements[k] == 'visitor_location')
				{
					errorMessage += 'U heeft geen woonplaats ingevuld\n';
				}
				else if(errorElements[k] == 'visitor_email')
				{
					errorMessage += 'U heeft geen e-mailadres ingevuld\n';
				}
				else if(dateCounter == 0 && (errorElements[k] == 'stayStartDay' || errorElements[k] == 'stayStartMonth' || errorElements[k] == 'stayStartYear' || errorElements[k] == 'stayEndDay' || errorElements[k] == 'stayEndMonth' || errorElements[k] == 'stayEndYear'))
				{
					errorMessage += 'U heeft de data van uw verblijf onvolledig ingevuld\n';
					dateCounter++;
				}
				else if(errorElements[k] == 'message')
				{
					errorMessage += 'U heeft geen bericht ingevuld\n';
				}
				else if(errorElements[k] == 'rating')
				{
					errorMessage += 'U heeft geen rapportcijfer ingevuld\n';
				}
				else if(errorElements[k] == 'capchaCode')
				{
					errorMessage += 'U heeft de code niet ingevuld\n';
				}
			}
			else
			{
				if(errorElements[k] == 'visitor_name')
				{
					errorMessage += 'You did not enter your name\n';
				}
				else if(errorElements[k] == 'visitor_location')
				{
					errorMessage += 'You did not enter your residence\n';
				}
				else if(errorElements[k] == 'visitor_email')
				{
					errorMessage += 'You did not enter a email address\n';
				}
				else if(dateCounter == 0 && (errorElements[k] == 'stayStartDay' || errorElements[k] == 'stayStartMonth' || errorElements[k] == 'stayStartYear' || errorElements[k] == 'stayEndDay' || errorElements[k] == 'stayEndMonth' || errorElements[k] == 'stayEndYear'))
				{
					errorMessage += 'You have filled in the dates of you stay incompletely\n';
					dateCounter++;
				}
				else if(errorElements[k] == 'message')
				{
					errorMessage += 'You did not enter a message\n';
				}
				else if(errorElements[k] == 'capchaCode')
				{
					errorMessage += 'You did not enter the code\n';
				}
			}
		}
		alert(errorMessage);
		return false;
	}
	else
	{
		var stayStartDay = getElementValue("stayStartDay").toString();
		var stayStartMonth = getElementValue("stayStartMonth").toString();
		var stayStartYear = getElementValue("stayStartYear").toString();
		var stayEndDay = getElementValue("stayEndDay").toString();
		var stayEndMonth = getElementValue("stayEndMonth").toString();
		var stayEndYear = getElementValue("stayEndYear").toString();
		var currentDate = new Date();
		var currentMonth = currentDate.getMonth() + 1;
		var currentDay = currentDate.getDate();

		if(stayStartDay.length == 1)
		{
			stayStartDay = "0" + stayStartDay;
		}
		if(stayStartMonth.length == 1)
		{
			stayStartMonth = "0" + stayStartMonth;
		}
		if(stayEndDay.length == 1)
		{
			stayEndDay = "0" + stayEndDay;
		}
		if(stayEndMonth.length == 1)
		{
			stayEndMonth = "0" + stayEndMonth;
		}
		if(currentMonth < 10)
		{
			currentMonth = "0" + currentMonth.toString();
		}
		if(currentDay < 10)
		{
			currentDay = "0" + currentDay.toString();
		}

		var startDate = parseFloat(stayStartYear+stayStartMonth+stayStartDay);
		var endDate = parseFloat(stayEndYear+stayEndMonth+stayEndDay);
		var todayDate = parseFloat(currentDate.getFullYear().toString()+currentMonth+currentDay);

		if(!validateEmail(getElementValue("visitor_email")))
		{
			if(languageString == 'nl')
			{
				alert("E-mailadres is onjuist");
			}
			else
			{
				alert("E-mail address is not correct");
			}
            return false;
		}
		else if(parseFloat(stayStartDay) > 31 || parseFloat(stayEndDay) > 31 || parseFloat(stayStartMonth) > 12 || parseFloat(stayEndMonth) > 12 || startDate >= endDate)
		{
			if(languageString == 'nl')
			{
				alert("De data van uw verblijf zijn onjuist");
			}
			else
			{
				alert("The dates of your stay are not correct");
			}
            return false;
		}
		else if (endDate > todayDate)
		{
			if(languageString == 'nl')
			{
				alert("De datum van uw verblijf ligt in de toekomst");
			}
			else
			{
				alert("The dates of your stay are is in the future");
			}
            return false;
		}
		else
		{
			return true;
		}
	}
	return false;
}

function checkContractUserForm(language)
{
    if (!document.getElementById('gender_male').checked && !document.getElementById('gender_female').checked)
    {
        if (language == 1)
            {
                alert('Selecteert u alstublieft de Heer of Mevrouw');
            }
            else if (language == 3)
            {
                alert('Merci de choisir Mr. ou Mme.');
            }
            else
            {
                alert('Please select Mr. or Mrs.');
            }
            return false;
    }

    var elementArray = new Array("firstname","lastname","street","city","telephone_1","email_1");
	var errorElements = checkEmpty(elementArray);
	var errorMessage = '';
	var selectedCountry = document.getElementById('country').selectedIndex;

    if(document.getElementById('country').options[selectedCountry].value == '-1')
    {
         if (language == 1)
            {
                alert('Gelieve een land te selecteren');
            }
            else if (language == 3)
            {
                alert('Veuillez choisir un pays');
            }
            else
            {
                alert('Please select a country');
            }
            return false;
    }

	if(errorElements.length != 0)
	{
		for(var k=0;k < errorElements.length;k++)
		{
			if(language == 1)
			{
				//if(country[].selected) {
					//errorMessage += 'Kiest u alstublieft een land\n';
				//}
				if(errorElements[k] == 'firstname')
				{
					errorMessage += 'Gelieve een voornaam in te vullen\n';
				}
				else if(errorElements[k] == 'lastname')
				{
					errorMessage += 'Gelieve een achternaam in te vullen\n';
				}
				else if(errorElements[k] == 'street')
				{
					errorMessage += 'Gelieve een straatnaam in te vullen\n';
				}
				else if(errorElements[k] == 'housenumber')
				{
					errorMessage += 'Gelieve een huisnummer in te vullen\n';
				}
				else if(errorElements[k] == 'city')
				{
					errorMessage += 'Gelieve een plaatsnaam in te vullen\n';
				}
				else if(errorElements[k] == 'telephone_1')
				{
					errorMessage += 'Gelieve een telefoonnummer in te vullen\n';
				}
				else if(errorElements[k] == 'email_1')
				{
					errorMessage += 'Gelieve een E-mail adres in te vullen\n';
				}
				else if(errorElements[k] == 'country')
				{
					errorMessage += 'Gelieve een land te kiezen\n';
				}
				else
				{
					errorMessage += 'Onverklaarbare fout gevonden\n';
				}
			}
			else if(language == 3)
			{
				// FRANSE TEKST
				if(errorElements[k] == 'firstname')
				{
					errorMessage += 'Vous n´avez pas encore indiqué de prénom.\n';
				}
				else if(errorElements[k] == 'lastname')
				{
					errorMessage += 'Vous n´avez pas encore indiqué de nom.\n';
				}
				else if(errorElements[k] == 'street')
				{
					errorMessage += 'Vous n´avez pas encore rempli la rue.\n';
				}
				else if(errorElements[k] == 'housenumber')
				{
					errorMessage += 'Vous n´avez pas encore indiqué de numéro.\n';
				}
				else if(errorElements[k] == 'city')
				{
					errorMessage += 'Vous n´avez pas encore indiqué le lieu.\n';
				}
				else if(errorElements[k] == 'telephone_1')
				{
					errorMessage += 'Vous n´avez pas encore indiqué de numéro de téléphone.\n';
				}
				else if(errorElements[k] == 'email_1')
				{
					errorMessage += 'Vous n´avez pas encore indiqué d\'adresse e-mail.\n';
				}
				else
				{
					errorMessage += '??';
				}
			}
			else
			{
				if(errorElements[k] == 'firstname')
				{
					errorMessage += 'Please fill in your initials or firstname\n';
				}
				else if(errorElements[k] == 'lastname')
				{
					errorMessage += 'Please fill in your surname\n';
				}
				else if(errorElements[k] == 'street')
				{
					errorMessage += 'Please fill in your address\n';
				}
				else if(errorElements[k] == 'city')
				{
					errorMessage += 'Please fill in your town\n';
				}
				else if(errorElements[k] == 'telephone_1')
				{
					errorMessage += 'Please fill in your phone number\n';
				}
				else if(errorElements[k] == 'email_1')
				{
					errorMessage += 'Please fill in an e-mail address\n';
				}
				else
				{
					errorMessage += 'Onverklaarbare fout gevonden\n';
				}
			}
		}
		alert(errorMessage);
		return false;
	}
	else
	{
		if(!validateEmail(getElementValue("email_1")))
		{
			if(language == 1)
			{
				alert('E-mail adres is onjuist');
			}
			else if(language == 3)
			{
				//FRANSE TEKST
				alert('L\'adresse e-mail est incorrecte.');
			}
			else
			{
				alert("E-mail address not correct");
			}
			return false;
		}
	}
}

Array.prototype.inArray = function (value)
// Returns true if the passed value is found in the
// array.  Returns false if it is not.
{
	var i;
	for (i=0; i < this.length; i++)
	{
		// Matches identical (===), not just similar (==).
		if (this[i] === value)
		{
			return true;
		}
	}

	return false;
};