function validate(f,theLang) {
 var alerts = new Array(); 
 if(theLang == "dk") {
 	alerts[0] = "Venligst udfyld fornavn.";
 	alerts[1] = "Venligst udfyld efternavn.";
 	alerts[2] = "Venligst udfyld adresse.";
 	alerts[3] = "Venligst udfyld postnr.";
 	alerts[4] = "Venligst udfyld by.";
 	alerts[5] = "Venligst udfyld land.";
 	alerts[6] = "Venligst udfyld telefonnummer.";
 	alerts[7] = "Ugyldig e-mail adresse. Ret venligst.";
 	alerts[8] = "Vælg venligst kreditkort type.";
 	alerts[9] = "Venligst udfyld kortindehaver.";
 	alerts[10] = "Venligst udfyld kortnummer.";
 	alerts[11] = "Vælg venligst hvilken måned dit kreditkort udløber.";
 	alerts[12] = "Vælg venligst hvilket år dit kreditkort udløber.";
 	alerts[13] = "Venligst udfyld password.";
 	alerts[14] = "Ugyldigt password.\nSe reglerne ved at bevæge musen henover spørgsmålstegnet til højre for feltet.";
 	alerts[15] = "Venligst udfyld mindst et call-back nummer.";
 	alerts[16] = "Vælg venligst forventet månedligt forbrug.";
 	alerts[17] = "Vælg venligst forventet månedligt forbrug for call-back nummer 2.";
 	alerts[18] = "Vælg venligst forventet månedligt forbrug for call-back nummer 3.";
 	alerts[19] = "Din tilmelding kan kun afsendes, når du har accepteret betingelserne for aftalen.";
 	alerts[20] = "Venligst udfyld e-mail.";
 } else if(theLang == "uk") {
  alerts[0] = "Please type first name.";
 	alerts[1] = "Please type surname.";
 	alerts[2] = "Please type address.";
 	alerts[3] = "Please type zip.";
 	alerts[4] = "Please type city";
 	alerts[5] = "Please type country.";
 	alerts[6] = "Please type phone number.";
 	alerts[7] = "Invalid e-mail adress. Please correct.";
 	alerts[8] = "Chose credit card type.";
 	alerts[9] = "Please type cardholders name";
 	alerts[10] = "Please type card number.";
 	alerts[11] = "Please type which month your creditcard expires.";
 	alerts[12] = "Please type which year your creditcard expires.";
 	alerts[13] = "Please type password.";
 	alerts[14] = "Invalid password.\nPlease check rules by using mouse-over at the questionmark at the right side.";
 	alerts[15] = "Please type at least one call-back number.";
 	alerts[16] = "Please choose estimated monthly usage.";
 	alerts[17] = "Please choose estimated monthly usage for call-back number 2.";
 	alerts[18] = "Please choose estimated monthly usage for call-back number 3.";
 	alerts[19] = "The form can only be submitted when you accept the conditions.";
 	alerts[20] = "Please type e-mail address.";
 } else if(theLang == "no") {
  alerts[0] = "Vennligst fyll ut fornavn.";
 	alerts[1] = "Vennligst fyll ut etternavn.";
 	alerts[2] = "Vennligst fyll ut adresse.";
 	alerts[3] = "Vennligst fyll ut postnr.";
 	alerts[4] = "Vennligst fyll ut by.";
 	alerts[5] = "Vennligst fyll ut land.";
 	alerts[6] = "Vennligst fyll ut telefonnummer.";
 	alerts[7] = "Ugyldig e-mail adresse. Vennligst korriger.";
 	alerts[8] = "Vennligst velg kredittkort type.";
 	alerts[9] = "Vennligst fyll ut kortinnehaver.";
 	alerts[10] = "Vennligst fyll ut kortnummer.";
 	alerts[11] = "Vennligst velg utløpsmåned.";
 	alerts[12] = "Vennligst utløpsår.";
 	alerts[13] = "Vennligst fyll ut password.";
 	alerts[14] = "Ugyldig password.\nSe reglene ved å bevege musen over spørsmålstegnet til høyre for feltet.";
 	alerts[15] = "Vennligst fyll ut minst et call-back nummer.";
 	alerts[16] = "Vennligst velg forventet månedlig forbruk.";
 	alerts[17] = "Vennligst velg forventet månedlig forbruk for call-back nummer 2.";
 	alerts[18] = "Vennligst velg forventet månedlig forbruk for call-back nummer 3.";
 	alerts[19] = "Din bestilling kan kun sendes, når du har akseptert avtalebetingelsene.";
 	alerts[20] = "Vennligst fyll ut e-mail.";
 } else if(theLang == "se") {
  alerts[0] = "Vänligan utfyll fornamn.";
 	alerts[1] = "Vänligan utfyll efternamn.";
 	alerts[2] = "Vänligan utfyll adress.";
 	alerts[3] = "Vänligan utfyll postnummer.";
 	alerts[4] = "Vänligan utfyll stad.";
 	alerts[5] = "Vänligan utfyll land.";
 	alerts[6] = "Vänligan utfyll telefonnummer.";
 	alerts[7] = "Ugyltig e-mail adress.";
 	alerts[8] = "Väjl kreditkort.";
 	alerts[9] = "Vänligan utfyll kortinnehavare.";
 	alerts[10] = "Vänligan utfyll kortnummer.";
 	alerts[11] = "Vänligan väjl hvilkan månad ditt kreditkort utlöber.";
 	alerts[12] = "Vänligan väjl hvilkat år ditt kreditkort utlöber.";
 	alerts[13] = "Vänligen utfyll password.";
 	alerts[14] = "Ugyltigt password.";
 	alerts[15] = "Vänligen utfyll min. ett call-back nummer.";
 	alerts[16] = "Vänligen väjl forbruk pr. månad";
 	alerts[17] = "Vänligen väjl forbruk pr. månad for call-back nummer 2.";
 	alerts[18] = "Vänligen väjl forbruk pr. månad for call-back nummer 3.";
 	alerts[19] = "Vänligen acceptera avtalan.";
 	alerts[20] = "Vänligan utfyll e-mail."; 	
 }
 
 if(isEmpty(f.FName.value)) {
  alert(alerts[0]);
  f.FName.focus();
  f.FName.select();
  return false;
 }
 if(isEmpty(f.LName.value)) {
  alert(alerts[1]);
  f.LName.focus();
  f.LName.select();
  return false;
 }
 if(isEmpty(f.MailAddr.value)) {
  alert(alerts[2]);
  f.MailAddr.focus();
  f.MailAddr.select();
  return false;
 }
 if(isEmpty(f.PostalCode.value)) {
  alert(alerts[3]);
  f.PostalCode.focus();
  f.PostalCode.select();
  return false;
 }
 if(isEmpty(f.City.value)) {
  alert(alerts[4]);
  f.City.focus();
  f.City.select();
  return false;
 }
 if(isEmpty(f.Country.value)) {
  alert(alerts[5]);
  f.Country.focus();
  f.Country.select();
  return false;
 }
 if(isEmpty(f.TelNum.value)) {
  alert(alerts[6]);
  f.TelNum.focus();
  f.TelNum.select();
  return false;
 }
 if(!isEmpty(f.email.value)) {
 	if(!isEmailValid(f.email.value)) {
 		alert(alerts[7]);
 		f.email.focus();
 		f.email.select();
 		return false;
  }
 } else {
  alert(alerts[20]);
  f.email.focus();
  f.email.select();
  return false; 	
 }
 if( !(f.CCARD[0].checked || f.CCARD[1].checked || f.CCARD[2].checked || f.CCARD[3].checked)) {
 	alert(alerts[8]);
 	return false;
 } 
 if(isEmpty(f.CardhName.value)) {
  alert(alerts[9]);
  f.CardhName.focus();
  f.CardhName.select();
  return false;
 }
 if(isEmpty(f.CardNb.value)) {
  alert(alerts[10]);
  f.CardNb.focus();
  f.CardNb.select();
  return false;
 }
 if(f.monthe.selectedIndex == 0) {
 	alert(alerts[11]);
 	return false;
 }
 if(f.yeare.selectedIndex == 0) {
 	alert(alerts[12]);
 	return false;
 }
 if(isEmpty(f.Pin.value)) {
  alert(alerts[13]);
  f.Pin.focus();
  f.Pin.select();
  return false;
 }
 pin = parseInt(f.Pin.value);
 if(isNaN(pin) || pin < 1000 || pin > 9999 || ((pin%1111)==0) ) {
 	alert(alerts[14]);
 	f.Pin.focus();
 	f.Pin.select();
 	return false;
 }
 if(isEmpty(f.CallbNumber1.value)) {
  alert(alerts[15]);
  f.CallbNumber1.focus();
  f.CallbNumber1.select();
  return false;
 } 
 if(f.MUsage1.selectedIndex == 0) {
 	alert(alerts[16]);
 	return false;
 }
 if(!isEmpty(f.CallbNumber2.value) && f.MUsage2.selectedIndex == 0) {
 	alert(alerts[17]);
 	return false;
 } 
 if(!isEmpty(f.CallbNumber3.value) && f.MUsage3.selectedIndex == 0) {
 	alert(alerts[18]);
 	return false;
 }
 if(!f.Agreement.checked) {
 	alert(alerts[19]);
 	return false;
 }
 
 var fNames = new Array("CompanyName","FName","LName","MailAddr","PostalCode","City","Country","TelNum","FaxNum","email","CardhName","CardNb","Pin","RefSource","CallbNumber1","Extension1","CallbNumber2","Extension2","CallbNumber3","Extension3","SD1","SD2","SD3");
 for(i=0; i<fNames.length; i++)
  f.elements[fNames[i]].value = removeInvalidChars(f.elements[fNames[i]].value);
  
 // Partner-ads, engodsag.dk
 var tmpImg = new Image();
 tmpImg.src = 'http://www.partner-ads.com/dk/leadtrack.php?programid=352&type=lead&uiv=' + f.email.value;
 
 return true;
}

function isEmpty(val) {
 if(val=="")
  return true;
 
 spaces=0
 for(i=0;i<val.length;i++)
  if(val.charAt(i)==" ")
   spaces++;
 if(spaces==val.length)
  return true;
 return false;
}

function isEmailValid(email) {
 ugyldigeTegn = " /:,;'"
			
 // Indeholder den ugyldige tegn?
 for (i=0; i<ugyldigeTegn.length; i++) {	
  fejlTegn = ugyldigeTegn.charAt(i);
  if (email.indexOf(fejlTegn,0) > -1)
   return false;  
 }
			
 // Der skal være et @-tegn
 paaPos = email.indexOf("@",1);
 if (paaPos == -1)
  return false; 
			
 // Og kun et @-tegn
 if (email.indexOf("@",paaPos+1) != -1)
  return false;
 
 punktumPos = email.indexOf(".",paaPos);
	
 // og mindst et punktum efter @-tegnet
 if (punktumPos == -1)
  return false; 
			
 // der skal være mindst 2 tegn efter punktummet
 if (punktumPos+3 > email.length)
  return false;
 
 return true;
}

function validateCC(string) {
 for(var i=0, output='', valid="0123456789"; i<string.length; i++)
  if (valid.indexOf(string.charAt(i)) != -1)
   output += string.charAt(i)
 return output;
}

function removeInvalidChars(string) {
	for (var i=0, output='', valid="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ@éëô/_#,.- ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþ\]^_`>oezY¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶· "; i<string.length; i++)
		if (valid.indexOf(string.charAt(i)) != -1)
			output += string.charAt(i)
	return output;
}
