/*******************************************************************************
checking est le nom de la routine générale qui check le formulaire en onsubmit
dans l'instruction <FORM... POST...	
*******************************************************************************/


// Returns true if character c is a digit 
// (0 .. 9).

function isDigit (c)
{   return ((c >= "0") && (c <= "9"))
}




function checkform() {
	if (!check_revendeur()) return(false)
	if (!check_password()) return(false)
	if (!check_submit_by()) return(false)
	if (!check_reemail2()) return(false)
//	if (!check_retva()) return(false)
//	if (!check_abonnement()) return(false)
//	if (!check_description_site()) return(false)
//	if (!check_nveau_dom()) return(false)
//	if (!check_nom_domaine()) return(false)
//	if (!check_extension_dom()) return(false)
//	if (!check_nom()) return(false)
//	if (!check_prenom()) return(false)
//	if (!check_email()) return(false)
//	if (!check_email2()) return(false)
//	if (!check_organisation()) return(false)
//	if (!check_adresse()) return(false)
//	if (!check_ville()) return(false)
//	if (!check_code_postal()) return(false)
//	if (!check_phone()) return(false)
//	if (!check_fax()) return(false)
//	if (!check_paiement_monthes()) return(false)
//	if (!check_paiement_cheques()) return(false)
//	if (!check_paiement()) return(false)
	return(true);
	
}


function check_revendeur(){
/*******************************************************************************
- doit compléter son nom de client
*******************************************************************************/

if (document.theForm.revendeur.value == "")

	{
    alert("Vous n'avez pas donné votre nom de client");
    document.theForm.revendeur.focus();
    return (false);
	}




  return (true);
}




function check_password(){
/*******************************************************************************
- doit compléter son code client
*******************************************************************************/


if (document.theForm.password.value == "")

{
    alert("Vous n'avez pas donné votre code client");
    document.theForm.password.focus();
    return (false);

}



	if (document.theForm.password.value.length != 6)
{	
	alert("Votre code client doit être composé de 6 chiffres");
	document.theForm.password.focus();

	return (false);
}


  var checkOK = "1234567890";
  var checkStr = document.theForm.password.value;
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
    alert("Votre code client doit être composé de 6 chiffres");
    document.theForm.password.focus();
    return (false);
  }

  return (true);
}




function check_abonnement(){
/*******************************************************************************
Vérification sélection d'un type d'abonnement :
- doit cocher un bouton radio	
*******************************************************************************/

  var radioSelected = false;
  for (i = 0;  i < document.theForm.abonnement.length;  i++)
  {
    if (document.theForm.abonnement[i].checked)
        radioSelected = true;
  }
  if (!radioSelected)
  {
    alert("Sélectionnez un type d'abonnement");
    return (false);
  }

  if (document.theForm.abonnement[4].checked)

//------- function check_type_serveur_NT
//- si a choisi NT développeur Plus, doit cocher un bouton radio

{
  var radioSelected = false;
  for (i = 0;  i < document.theForm.type_serveur_NT.length;  i++)
  {
    if (document.theForm.type_serveur_NT[i].checked)
        radioSelected = true;
  }
  if (!radioSelected)
  {
    alert("Pour les abonnements NT Développeur Plus, choisissez le type de serveur que vous désirez");
    return (false);
  }


  return (true);
}


//------fin 

  return (true);
}



function check_description_site(){
/*******************************************************************************
- doit compléter
*******************************************************************************/


  if (document.theForm.description_site.value == "")
  {
    alert("Vous n'avez pas donné de description succinte de votre site");
    document.theForm.description_site.focus();
    return (false);
  }

  return (true);
}


function check_nveau_dom(){
/*******************************************************************************
Vérification choix nouveau ou transfert nom de domaine :
- doit cocher un bouton radio	
*******************************************************************************/

  var radioSelected = false;
  for (i = 0;  i < document.theForm.nveau_dom.length;  i++)
  {
    if (document.theForm.nveau_dom[i].checked)
        radioSelected = true;
  }
  if (!radioSelected)
  {
    alert("Sélectionnez si vous déposez un nouveau domaine ou transférez un domaine existant");
    return (false);
  }

  return (true);
}

function check_nom_domaine(){
/*******************************************************************************
Vérification nom de domaine :
- pas vide
- caractères accéptés	
*******************************************************************************/


  if (document.theForm.nom_domaine.value == "")
  {
    alert("Vous n'avez pas donné de nom de domaine");
    document.theForm.nom_domaine.focus();
    return (false);
  }


  var checkOK = "abcdefghijklmnopqrstuvwxyz-1234567890";
  var checkStr = document.theForm.nom_domaine.value;
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
    alert("Ecrivez le nom de domaine en minuscules. Il ne peut contenir que lettres, chiffres, et le tirets - mais pas de point .");
    document.theForm.nom_domaine.focus();
    return (false);
  }

  return (true);
}


function check_extension_dom() {
/*******************************************************************************
Vérification extension nom de domaine :
- pas vide
- caractères accéptés	
*******************************************************************************/


  if (document.theForm.extension_dom.value == "")
  {
    alert("Vous n'avez pas donné d'extension de nom de domaine");
    document.theForm.extension_dom.focus();
    return (false);
  }


  var checkOK = "abcdefghijklmnopqrstuvwxyz.";
  var checkStr = document.theForm.extension_dom.value;
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
    alert("Ecrivez l'extension du nom de domaine en minuscules. Elle ne peut contenir que des lettres et des points");
// Remarque : la ligne ci-desssous dès qu'on submit le form scroll le formulaire sur le champs erroné
    document.theForm.extension_dom.focus();
    return (false);

  }

  return (true);
}

function check_nom() {
/*******************************************************************************
Vérification nom de l'abonné :
- pas vide
- caractères accéptés	
*******************************************************************************/


  if (document.theForm.nom.value == "")
  {
    alert("Vous devez compléter la case Nom sous le nom de domaine");
    document.theForm.nom.focus();
    return (false);
  }


  var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz@&1234567890- ";
  var checkStr = document.theForm.nom.value;
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
    alert("Ecrivez le nom sous le nom de domaine sans accentuation (é,è,ç,à....), ni ponctuation (point, virgule, apostrophe...) à l'exception du tiret -, du @ et du &");
    document.theForm.nom.focus();
    return (false);
  }

  return (true);
}

function check_prenom() {
/*******************************************************************************
Vérification prénom de l'abonné :
- pas vide
- caractères accéptés	
*******************************************************************************/



  if (document.theForm.prenom.value == "")
  {
    alert("Vous devez compléter la case Prénom sous le nom de domaine");
    document.theForm.prenom.focus();
    return (false);
  }


  var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz@&1234567890- ";
  var checkStr = document.theForm.prenom.value;
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
    alert("Ecrivez le Prénom sous le nom de domaine sans accentuation (é,è,ç,à....), ni ponctuation (point, virgule, apostrophe...) à l'exception du tiret -, du @ et du &");
    document.theForm.prenom.focus();
    return (false);
  }


  return (true);
}


function check_submit_by() {
/*******************************************************************************
Vérification 1ère adresse email 
- pas vide
- caractères accéptés : a-z A-Z 0-9 . - @ et [] pour les adresse IP.
*******************************************************************************/

//CHECK si email pas vide

  if (document.theForm.submit_by.value == "")
  {
    alert("Votre adresse email n'est pas valable");
    document.theForm.submit_by.focus();
    return (false);
  }

//check si email minimimum 5 caractères 1@3.5, a@b.c= adr minimale

  if (document.theForm.submit_by.value.length < 5)
  {
    alert("Votre adresse email n'est pas valable");
    document.theForm.submit_by.focus();
    return (false);
  }

//CHECK si adresse contient au moins un @/

if (document.theForm.submit_by.value.indexOf('@',0)==-1)
  {
    alert("Votre adresse email n'est pas valable");
    document.theForm.submit_by.focus();
    return (false);
  }

//CHECK si adresse contient au moins un point


if (document.theForm.submit_by.value.indexOf('.',0)==-1)
  {
    alert("Votre adresse email n'est pas valable");
    document.theForm.submit_by.focus();
    return (false);
  }

  return (true);
}




function check_reemail2() {
/*******************************************************************************
Vérification 2ème adresse email 
- reemail2 pas vide (on s'en fout car tester en submit_by)
- reemail2 doit être égal à email1
*******************************************************************************/

//CHECK si email pas vide

  if (document.theForm.reemail2.value == "")
  {
    alert("Vous devez retapez votre adresse email dans la case - Retapez votre adresse Email -");
    document.theForm.reemail2.focus();
    return (false);
  }

//CHECK SI reemail2=submit_by

 if (document.theForm.submit_by.value != document.theForm.reemail2.value)
  {
    alert("L'adresse email sous la mention -Retapez votre adresse Email- doit être identique à la première.");
    document.theForm.reemail2.focus();
    return (false);
  }



  return (true);
}



function check_email() {
/*******************************************************************************
Vérification 1ère adresse email 
- pas vide
- caractères accéptés : a-z A-Z 0-9 . - @ et [] pour les adresse IP.
*******************************************************************************/

//CHECK si email pas vide

  if (document.theForm.email.value == "")
  {
    alert("Vous devez taper une adresse email sous le nom de domaine");
    document.theForm.email.focus();
    return (false);
  }

//check si email minimimum 5 caractères 1@3.5, a@b.c= adr minimale

  if (document.theForm.email.value.length < 5)
  {
    alert("L'adresse email sous le nom de domaine n'est pas valable");
    document.theForm.email.focus();
    return (false);
  }

//CHECK si adresse contient au moins un @/

if (document.theForm.email.value.indexOf('@',0)==-1)
  {
    alert("L'adresse email sous le nom de domaine n'est pas valable");
    document.theForm.email.focus();
    return (false);
  }

//CHECK si adresse contient au moins un point


if (document.theForm.email.value.indexOf('.',0)==-1)
  {
    alert("L'adresse email sous le nom de domaine n'est pas valable");
    document.theForm.email.focus();
    return (false);
  }

  return (true);
}




function check_email2() {
/*******************************************************************************
Vérification 2ème adresse email 
- email2 pas vide (on s'en fout car tester en submit_by)
- email2 doit être égal à email1
*******************************************************************************/

//CHECK si email pas vide

  if (document.theForm.email2.value == "")
  {
    alert("Vous devez retapez une adresse email sous le nom de domaine dans la case - Retapez votre adresse Email -");
    document.theForm.email2.focus();
    return (false);
  }

//CHECK SI email2=submit_by

 if (document.theForm.email.value != document.theForm.email2.value)
  {
    alert("La deuxième adresse email sous le nom de domaine doit être identique à la première sous le nom de domaine.");
    document.theForm.email2.focus();
    return (false);
  }



  return (true);
}





function check_organisation() {
/*******************************************************************************
Vérification de l'organisation :
- caractères accéptés	
	
*******************************************************************************/


  var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz@&1234567890- ";
  var checkStr = document.theForm.organisation.value;
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
    alert("Ecrivez le nom de l'organisation sous le nom de domaine sans accentuation (é,è,ç,à....), ni ponctuation (point, virgule, apostrophe...) à l'exception du tiret -, du @ et du &");
    document.theForm.organisation.focus();
    return (false);
  }

  return (true);
}



function check_adresse() {
/*******************************************************************************
Vérification de l'adresse :
- pas vide
- caractères accéptés	

*******************************************************************************/


  if (document.theForm.adresse.value == "")
  {
    alert("Vous devez compléter la case Adresse sous le nom de domaine ");
    document.theForm.adresse.focus();
    return (false);
  }


  var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz@&1234567890- ";
  var checkStr = document.theForm.adresse.value;
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
    alert("Ecrivez l'adresse sous le nom de domaine sans accentuation (é,è,ç,à....), ni ponctuation (point, virgule, apostrophe...) à l'exception du tiret -, du @ et du &");
    document.theForm.adresse.focus();
    return (false);
  }

  return (true);
}

function check_ville() {
/*******************************************************************************
Vérification de la ville :
- pas vide
- caractères accéptés	

*******************************************************************************/


  if (document.theForm.ville.value == "")
  {
    alert("Vous devez compléter la case Ville sous le nom de domaine");
    document.theForm.ville.focus();
    return (false);
  }


  var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz@&1234567890- ";
  var checkStr = document.theForm.ville.value;
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
    alert("Ecrivez le nom de la Ville sous le nom de domaine sans accentuation (é,è,ç,à....), ni ponctuation (point, virgule, apostrophe...) à l'exception du tiret -, du @ et du &");
    document.theForm.ville.focus();
    return (false);
  }

  return (true);
}


function check_code_postal() {
/*******************************************************************************
Vérification du code postal :
- pas vide
- caractères accéptés	

*******************************************************************************/


  if (document.theForm.code_postal.value == "")
  {
    alert("Vous devez compléter la case Code Postal sous le nom de domaine");
    document.theForm.code_postal.focus();
    return (false);
  }


  var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz&1234567890-";
  var checkStr = document.theForm.code_postal.value;
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
    alert("Le Code Postal sous le nom de domaine ne peut contenir que des chiffres, des lettres, et le tiret");
    document.theForm.code_postal.focus();
    return (false);
  }

  return (true);
}


function check_retva() {
/*******************************************************************************
Vérification de la TVA :
- caractères accéptés	

*******************************************************************************/
// Vérifie si le champs tva n'est pas vide
if (document.theForm.retva.value!="")
{
//
var repays_index=document.theForm.repays.selectedIndex
if (document.theForm.repays.options[repays_index].value=="FR")
{

// Check numéro français. Syntaxe :
//FR-99.999.999.999   soit 17 caractères au total
//12345678901234567   numérotation des caractères

function tvawarnfr()
{
	alert("Votre numéro de TVA n'est pas correct - La syntaxe correcte est : FR-99.999.999.999");
	document.theForm.retva.focus();
}

var checkStr = document.theForm.retva.value;

// doit contenir 17 caractères

	if (checkStr.length != 17)
{	tvawarnfr();
	return (false);
}

// doit commencer par FR-

	if (checkStr.charAt(0)!= "F")
{	tvawarnfr();
	return (false);
}
	if (checkStr.charAt(1)!= "R")
{	tvawarnfr();
	return (false);
}
	if (checkStr.charAt(2)!= "-")
{	tvawarnfr();
	return (false);
}
// 4 & 5ème car = chiffre

	if (!isDigit((checkStr.charAt(3)))) 
{	tvawarnfr();
	return (false);
}
	if (!isDigit((checkStr.charAt(4)))) 
{	tvawarnfr();
	return (false);
}

// 6è car = .

	if (checkStr.charAt(5)!= ".")
{	tvawarnfr();
	return (false);
}

// 7,8 & 9ème car = chiffre

	if (!isDigit((checkStr.charAt(6)))) 
{	tvawarnfr();
	return (false);
}
	if (!isDigit((checkStr.charAt(7)))) 
{	tvawarnfr();
	return (false);
}
	if (!isDigit((checkStr.charAt(8)))) 
{	tvawarnfr();
	return (false);
}

// 10è car = .

	if (checkStr.charAt(9)!= ".")
{	tvawarnfr();
	return (false);
}

// 11,12 & 13ème car = chiffre

	if (!isDigit((checkStr.charAt(10)))) 
{	tvawarnfr();
	return (false);
}
	if (!isDigit((checkStr.charAt(11)))) 
{	tvawarnfr();
	return (false);
}
	if (!isDigit((checkStr.charAt(12)))) 
{	tvawarnfr();
	return (false);
}

// 14è car = .

	if (checkStr.charAt(13)!= ".")
{	tvawarnfr();
	return (false);
}

// 15,16 & 17ème car = chiffre

	if (!isDigit((checkStr.charAt(14)))) 
{	tvawarnfr();
	return (false);
}
	if (!isDigit((checkStr.charAt(15)))) 
{	tvawarnfr();
	return (false);
}
	if (!isDigit((checkStr.charAt(16)))) 
{	tvawarnfr();
	return (false);
}

//
}

/////////////////////////////////

if (document.theForm.repays.options[repays_index].value=="BE")
{

// Check numéro belge. Syntaxe :
//BE-0999.999.999   soit 15 caractères au total
//012345678901234   numérotation des caractères

function tvawarnbe()
{
	alert("Votre numéro de TVA n'est pas correct - La syntaxe correcte est : BE-0999.999.999");
	document.theForm.retva.focus();
}

var checkStr = document.theForm.retva.value;

// doit contenir 15 caractères

	if (checkStr.length != 15)
{	tvawarnbe();
	return (false);
}

// doit commencer par BE-

	if (checkStr.charAt(0)!= "B")
{	tvawarnbe();
	return (false);
}
	if (checkStr.charAt(1)!= "E")
{	tvawarnbe();
	return (false);
}
	if (checkStr.charAt(2)!= "-")
{	tvawarnbe();
	return (false);
}


// 3,4,5 & 6ème car = chiffre

	if (!isDigit((checkStr.charAt(3)))) 
{	tvawarnbe();
	return (false);
}
	if (!isDigit((checkStr.charAt(4)))) 
{	tvawarnbe();
	return (false);
}
	if (!isDigit((checkStr.charAt(5)))) 
{	tvawarnbe();
	return (false);
}
	if (!isDigit((checkStr.charAt(6)))) 
{	tvawarnbe();
	return (false);
}

// 8è car = .

	if (checkStr.charAt(7)!= ".")
{	tvawarnbe();
	return (false);
}

// 9,10 & 11ème car = chiffre

	if (!isDigit((checkStr.charAt(8)))) 
{	tvawarnbe();
	return (false);
}
	if (!isDigit((checkStr.charAt(9)))) 
{	tvawarnbe();
	return (false);
}
	if (!isDigit((checkStr.charAt(10)))) 
{	tvawarnbe();
	return (false);
}

// 12è car = .

	if (checkStr.charAt(11)!= ".")
{	tvawarnbe();
	return (false);
}

// 13,14 & 15ème car = chiffre

	if (!isDigit((checkStr.charAt(12)))) 
{	tvawarnbe();
	return (false);
}
	if (!isDigit((checkStr.charAt(13)))) 
{	tvawarnbe();
	return (false);
}
	if (!isDigit((checkStr.charAt(14)))) 
{	tvawarnbe();
	return (false);
}

//FIN fonction check if be select tva -->
}

/////////////////////////// VERIFICATION TVA DE


if (document.theForm.repays.options[repays_index].value=="DE")
{

// Check numéro allemand. Syntaxe :
//DE999999999   soit 11 caractères au total
//12345678901   numérotation des caractères

function tvawarnde()
{
	alert("Votre numéro de TVA n'est pas correct - La syntaxe correcte est : DE999999999");
	document.theForm.retva.focus();
}


var checkStr = document.theForm.retva.value;

// doit contenir 11 caractères

	if (checkStr.length != 11)
{	tvawarnde();
	return (false);
}

// doit commencer par DE

	var checkStr = document.theForm.retva.value.substring(0,2);
	if (checkStr!="DE")
		{tvawarnde();
		return(false);
		}	

/////////position 3 à 11 = chiffre

var checkOK = "1234567890";
var checkStr = document.theForm.retva.value.substring(2,11);
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
   tvawarnde();
    return (false);
  }

}
///////// FIN VERIFICATION TVA DE

/////////////////////////// VERIFICATION TVA AUT

if (document.theForm.repays.options[repays_index].value=="AT")
{

// Check numéro AU. Syntaxe :
//ATU99999999   soit 11 caractères au total
//12345678901   numérotation des caractères

function tvawarnau()
{
	alert("Votre numéro de TVA n'est pas correct - La syntaxe correcte est : ATU99999999");
	document.theForm.retva.focus();
}


var checkStr = document.theForm.retva.value;

// doit contenir 11 caractères

	if (checkStr.length != 11)
{	tvawarnau();
	return (false);
}

// doit commencer par ATU

	var checkStr = document.theForm.retva.value.substring(0,3);
	if (checkStr!="ATU")
		{tvawarnau();
		return(false);
		}	

/////////position 4 à 11 = chiffre

var checkOK = "1234567890";
var checkStr = document.theForm.retva.value.substring(3,11);
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
   tvawarnau();
    return (false);
  }
}

///////// FIN VERIFICATION TVA AUT

/////////////////////////// VERIFICATION TVA DK



if (document.theForm.repays.options[repays_index].value=="DK")
{

// Check numéro AU. Syntaxe :
//DK99999999   soit 10 caractères au total
//1234567890   numérotation des caractères

function tvawarndk()
{
	alert("Votre numéro de TVA n'est pas correct - La syntaxe correcte est : DK99999999");
	document.theForm.retva.focus();
}


var checkStr = document.theForm.retva.value;

// doit contenir 10 caractères

	if (checkStr.length != 10)
{	tvawarndk();
	return (false);
}

// doit commencer par DK

	var checkStr = document.theForm.retva.value.substring(0,2);
	if (checkStr!="DK")
		{tvawarndk();
		return(false);
		}	

/////////position 3 à 10 = chiffre

var checkOK = "1234567890";
var checkStr = document.theForm.retva.value.substring(2,10);
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
   tvawarndk();
    return (false);
  }
}

///////// FIN VERIFICATION TVA DK

/////////////////////////// VERIFICATION TVA Grèce



if (document.theForm.repays.options[repays_index].value=="GR")
{

// Check numéro GR Syntaxe :
//EL999999999 soit 11 caractères au total
//12345678901234   numérotation des caractères

function tvawarnGR()
{
	alert("Votre numéro de TVA n'est pas correct - La syntaxe correcte est : EL999999999 ");
	document.theForm.retva.focus();
}


var checkStr = document.theForm.retva.value;

// doit contenir 11 caractères

	if (checkStr.length != 11)
{	tvawarnGR();
	return (false);
}

// doit commencer par EL

	var checkStr = document.theForm.retva.value.substring(0,2);
	if (checkStr!="EL")
		{tvawarnGR();
		return(false);
		}	

/////////position 1 11 = chiffre

var checkOK = "1234567890";
var checkStr = document.theForm.retva.value.substring(2,11);
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
   tvawarnGR();
    return (false);
  }
}

///////// FIN VERIFICATION TVA Grèce


/////////////////////////// VERIFICATION TVA Irlande



if (document.theForm.repays.options[repays_index].value=="IE")
{

// Check numéro IE Syntaxe :
//IE9999999X soit 10 caractères au total
//12345678901234   numérotation des caractères

function tvawarnIE()
{
	alert("Votre numéro de TVA n'est pas correct - La syntaxe correcte est : IE9999999X ");
	document.theForm.retva.focus();
}


var checkStr = document.theForm.retva.value;

// doit contenir 10 caractères

	if (checkStr.length != 10)
{	tvawarnIE();
	return (false);
}

// doit commencer par IE

	var checkStr = document.theForm.retva.value.substring(0,2);
	if (checkStr!="IE")
		{tvawarnIE();
		return(false);
		}	

/////////position 1 9 = chiffre

var checkOK = "1234567890";
var checkStr = document.theForm.retva.value.substring(2,9);
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
   tvawarnIE();
    return (false);
  }

/////////position 10 = lettre

var checkOK = "ABCDEFGHIJKLMNOPQRSTUVW";
var checkStr = document.theForm.retva.value.charAt(9);
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
   tvawarnIE();
    return (false);
  }


}

///////// FIN VERIFICATION TVA Irlande


/////////////////////////// VERIFICATION TVA Italie



if (document.theForm.repays.options[repays_index].value=="IT")
{

// Check numéro IT Syntaxe :
//IT99999999999 soit 13 caractères au total
//12345678901234   numérotation des caractères

function tvawarnIT()
{
	alert("Votre numéro de TVA n'est pas correct - La syntaxe correcte est : IT99999999999 ");
	document.theForm.retva.focus();
}


var checkStr = document.theForm.retva.value;

// doit contenir 13 caractères

	if (checkStr.length != 13)
{	tvawarnIT();
	return (false);
}

// doit commencer par IT

	var checkStr = document.theForm.retva.value.substring(0,2);
	if (checkStr!="IT")
		{tvawarnIT();
		return(false);
		}	

/////////position 1 13 = chiffre

var checkOK = "1234567890";
var checkStr = document.theForm.retva.value.substring(2,13);
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
   tvawarnIT();
    return (false);
  }
}

///////// FIN VERIFICATION TVA Italie


/////////////////////////// VERIFICATION TVA Luxembourg



if (document.theForm.repays.options[repays_index].value=="LU")
{

// Check numéro LU Syntaxe :
//LU99999999 soit 10 caractères au total
//12345678901234   numérotation des caractères

function tvawarnLU()
{
	alert("Votre numéro de TVA n'est pas correct - La syntaxe correcte est : LU99999999 ");
	document.theForm.retva.focus();
}


var checkStr = document.theForm.retva.value;

// doit contenir 10 caractères

	if (checkStr.length != 10)
{	tvawarnLU();
	return (false);
}

// doit commencer par LU

	var checkStr = document.theForm.retva.value.substring(0,2);
	if (checkStr!="LU")
		{tvawarnLU();
		return(false);
		}	

/////////position 1 10 = chiffre

var checkOK = "1234567890";
var checkStr = document.theForm.retva.value.substring(2,10);
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
   tvawarnLU();
    return (false);
  }
}

///////// FIN VERIFICATION TVA Luxembourg


/////////////////////////// VERIFICATION TVA repays-Bas



if (document.theForm.repays.options[repays_index].value=="NL")
{

// Check numéro NL Syntaxe :
//NL999999999B99 soit 14 caractères au total
//12345678901234   numérotation des caractères

function tvawarnNL()
{
	alert("Votre numéro de TVA n'est pas correct - La syntaxe correcte est : NL999999999B99 ");
	document.theForm.retva.focus();
}


var checkStr = document.theForm.retva.value;

// doit contenir 14 caractères

	if (checkStr.length != 14)
{	tvawarnNL();
	return (false);
}

// doit commencer par NL

	var checkStr = document.theForm.retva.value.substring(0,2);
	if (checkStr!="NL")
		{tvawarnNL();
		return(false);
		}	

/////////position 3 11 = chiffre

var checkOK = "1234567890";
var checkStr = document.theForm.retva.value.substring(2,11);
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
   tvawarnNL();
    return (false);
  }

//////// posit 12 = B
	if (document.theForm.retva.value.charAt(11)!= "B")
{	tvawarnNL();
	return (false);
}

/////////position 13 14 = chiffre

var checkOK = "1234567890";
var checkStr = document.theForm.retva.value.substring(12,14);
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
   tvawarnNL();
    return (false);
  }



}

///////// FIN VERIFICATION TVA repays-Bas


/////////////////////////// VERIFICATION TVA Portugal


if (document.theForm.repays.options[repays_index].value=="PT")
{

// Check numéro PT Syntaxe :
//PT999999999 soit 11 caractères au total
//12345678901234   numérotation des caractères

function tvawarnPT()
{
	alert("Votre numéro de TVA n'est pas correct - La syntaxe correcte est : PT999999999 ");
	document.theForm.retva.focus();
}


var checkStr = document.theForm.retva.value;

// doit contenir 11 caractères

	if (checkStr.length != 11)
{	tvawarnPT();
	return (false);
}

// doit commencer par PT

	var checkStr = document.theForm.retva.value.substring(0,2);
	if (checkStr!="PT")
		{tvawarnPT();
		return(false);
		}	

/////////position 1 11 = chiffre

var checkOK = "1234567890";
var checkStr = document.theForm.retva.value.substring(2,11);
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
   tvawarnPT();
    return (false);
  }
}

///////// FIN VERIFICATION TVA Portugal

/////////////////////////// VERIFICATION TVA Suède



if (document.theForm.repays.options[repays_index].value=="SE")
{

// Check numéro SE Syntaxe :
//SE999999999999 soit 14 caractères au total
//12345678901234   numérotation des caractères

function tvawarnSE()
{
	alert("Votre numéro de TVA n'est pas correct - La syntaxe correcte est : SE999999999999 ");
	document.theForm.retva.focus();
}


var checkStr = document.theForm.retva.value;

// doit contenir 14 caractères

	if (checkStr.length != 14)
{	tvawarnSE();
	return (false);
}

// doit commencer par SE

	var checkStr = document.theForm.retva.value.substring(0,2);
	if (checkStr!="SE")
		{tvawarnSE();
		return(false);
		}	

/////////position 1 14 = chiffre

var checkOK = "1234567890";
var checkStr = document.theForm.retva.value.substring(2,14);
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
   tvawarnSE();
    return (false);
  }
}

///////// FIN VERIFICATION TVA Suède

/////////////////////////// VERIFICATION TVA Finlande



if (document.theForm.repays.options[repays_index].value=="FI")
{

// Check numéro FI Syntaxe :
//FI99999999 ou FI9999999-9 soit 10 caractères au total
//12345678901234   numérotation des caractères

	function tvawarnFI()
	{
		alert("Votre numéro de TVA n'est pas correct - La syntaxe correcte est : FI99999999 ou FI9999999-9 ");
		document.theForm.retva.focus();
	}


var checkStr = document.theForm.retva.value;

// doit contenir 10 caractères

	if (checkStr.length != 10)
 {	

// doit contenir 11 caractères

	if (checkStr.length != 11)
{	tvawarnFI();
	return (false);
}


// doit commencer par FI

	var checkStr = document.theForm.retva.value.substring(0,2);
	if (checkStr!="FI")
		{tvawarnFI();
		return(false);
		}	

/////////position 3 à 9 = chiffre

var checkOK = "1234567890";
var checkStr = document.theForm.retva.value.substring(2,9);
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
   tvawarnFI();
    return (false);
  }
///  pos 10 = tiret

	if (document.theForm.retva.value.charAt(9)!= "-")
{	tvawarnFI();
	return (false);
}


/////////position 11 = chiffre

var checkOK = "1234567890";
var checkStr = document.theForm.retva.value.charAt(10);
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
   tvawarnFI();
    return (false);
  }


///
 }

else
 {
// doit commencer par FI

	var checkStr = document.theForm.retva.value.substring(0,2);
	if (checkStr!="FI")
		{tvawarnFI();
		return(false);
		}	

/////////position 1 10 = chiffre

var checkOK = "1234567890";
var checkStr = document.theForm.retva.value.substring(2,10);
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
   tvawarnFI();
    return (false);
  }
 }
}


///////// FIN VERIFICATION TVA Finlande


/////////////////////////// VERIFICATION TVA Espagne



if (document.theForm.repays.options[repays_index].value=="ES")
{

// Check numéro ES Syntaxe :
//ESX99999999 ou ES99999999X ou ESX9999999X soit 11 caractères au total
//12345678901234   numérotation des caractères

function tvawarnES()
{
	alert("Votre numéro de TVA n'est pas correct - La syntaxe correcte est : ESX99999999 ou ES99999999X ou ESX9999999X ");
	document.theForm.retva.focus();
}


var checkStr = document.theForm.retva.value;

// doit contenir 11 caractères

	if (checkStr.length != 11)
{	tvawarnES();
	return (false);
}

// doit commencer par ES

	var checkStr = document.theForm.retva.value.substring(0,2);
	if (checkStr!="ES")
		{tvawarnES();
		return(false);
		}	
//////////////position 3 = chiffre ou lettre 

var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
var checkStr = document.theForm.retva.value.charAt(2);
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
   tvawarnES();
    return (false);
  }



/////////position 4 10 = chiffre

var checkOK = "1234567890";
var checkStr = document.theForm.retva.value.substring(3,10);
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
   tvawarnES();
    return (false);
  }
//////////////position 11 = chiffre ou lettre 

var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
var checkStr = document.theForm.retva.value.charAt(10);
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
   tvawarnES();
    return (false);
  }

//// Si 3ème car est pas une lettre then 11ème = chiffre et pas lettre

var checkStr = document.theForm.retva.value.charAt(2);
if ((checkStr >= "0") && (checkStr <= "9"))
{
var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var checkStr = document.theForm.retva.value.charAt(10);
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
   tvawarnES();
    return (false);
  }




 } 


///


}

///////// FIN VERIFICATION TVA Espagne

/////////////////////////// VERIFICATION TVA UK



if (document.theForm.repays.options[repays_index].value=="UK")
{

// Check numéro UK Syntaxe :
//GB999999999 soit 11 caractères au total
//12345678901234   numérotation des caractères

function tvawarnUK()
{
	alert("Votre numéro de TVA n'est pas correct - La syntaxe correcte est : GB999999999 ou GB999999999999 ou GBGD999 ou GBHA999");
	document.theForm.retva.focus();
}


var checkStr = document.theForm.retva.value;

// doit contenir 11 caractères

	if (checkStr.length != 11)
{	

// doit contenir 14 caractères

	if (checkStr.length != 14)
{	


// doit contenir 7 caractères
	
	if (checkStr.length != 7)
{	tvawarnUK();
	return (false);
}

else

{

// doit commencer par GBGD

	var checkStr = document.theForm.retva.value.substring(0,4);
	if (checkStr!="GBGD")

	{	if (checkStr!="GBHA")

			{tvawarnUK();
			return(false);
			}	
			}

else

{
/////////position 5 7 = chiffre

var checkOK = "1234567890";
var checkStr = document.theForm.retva.value.substring(4,7);
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
   tvawarnUK();
    return (false);
  }
}
			} // fin else
///////// FIN VERIFICATION TVA UK3


}

else
{  //verif 14
// doit commencer par GB

	var checkStr = document.theForm.retva.value.substring(0,2);
	if (checkStr!="GB")
			{tvawarnUK();
			return(false);
			}	

/////////position 3 14 = chiffre

var checkOK = "1234567890";
var checkStr = document.theForm.retva.value.substring(2,14);
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
   tvawarnUK();
    return (false);
  }
}

///////// FIN VERIFICATION TVA UK

}
else
{
// doit commencer par GB

	var checkStr = document.theForm.retva.value.substring(0,2);
	if (checkStr!="GB")
		{tvawarnUK();
		return(false);
		}	

/////////position 3 11 = chiffre

var checkOK = "1234567890";
var checkStr = document.theForm.retva.value.substring(2,11);
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
   tvawarnUK();
    return (false);
  }
} // fin de else

} // FIN VERIFICATION TVA UK





//FIN fonction Vérifie si le champs tva n'est pas vide
}

//FIN fonction check_retva

  return (true);
}


function check_phone() {
/*******************************************************************************
Vérification du téléphone :
- pas vide
- caractères accéptés	

*******************************************************************************/


  if (document.theForm.phone.value == "")
  {
    alert("Vous devez compléter la case Téléphone sous le nom de domaine");
    document.theForm.phone.focus();
    return (false);
  }


  var checkOK = "1234567890.+ ";
  var checkStr = document.theForm.phone.value;
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
    alert("Le numéro de Téléphone sous le nom de domaine ne peut contenir que des chiffres, des points, des espaces et le + pour l'international");
    document.theForm.phone.focus();
    return (false);
  }

  return (true);
}


function check_fax() {
/*******************************************************************************
Vérification du fax :
- caractères accéptés	

*******************************************************************************/


  var checkOK = "1234567890.+ ";
  var checkStr = document.theForm.fax.value;
  var allValid = true;
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
  }
  if (!allValid)
  {
    alert("Le numéro de Fax sous le nom de domaine ne peut contenir que des chiffres, des points, des espaces et le + pour l'international");
    document.theForm.fax.focus();
    return (false);
  }

  return (true);
}


function check_paiement_monthes() {

/*******************************************************************************
Vérification si a choisi chèque que durée <>1mois
*******************************************************************************/

 var radioSelected = false;
  for (i = 0;  i < document.theForm.monthes.length;  i++)
  {
    if (document.theForm.monthes[i].checked)
        radioSelected = true;
  }
  if (!radioSelected)
  {
    alert("Sélectionnez une durée de facturation.");
    return (false);
  }



  return (true);
}


function check_paiement_cheques() {

/*******************************************************************************
Vérification si a choisi chèque que durée <>1mois
*******************************************************************************/

 if (document.theForm.paiement[0].checked)

	{
	if (document.theForm.monthes[0].checked)
		{alert("Pour les paiements par chèque la durée minimale de facturation est de trois mois. Veuillez corrigez votre choix de durée sur minimum 3 mois");
		return (false);
		}
 	}



  return (true);
}



function check_paiement() {

/*******************************************************************************
Vérification choix d'un mode de paiement :
- doit cocher un bouton radio	
vérification du paiement = function checkpaiement()
critéres :
- choisir un mode de paiement
- si paiement par carte choisi, check coordonnées carte
*******************************************************************************/


  var radioSelected = false;
  for (i = 0;  i < document.theForm.paiement.length;  i++)
  {
    if (document.theForm.paiement[i].checked)
    radioSelected = true;

  }

  if (!radioSelected)
  {
    alert("Sélectionnez une des options \"paiement\".");
    return (false);
  }

  if (document.theForm.paiement[2].checked)

// check les coordonnées de la carte si paiement par carte coché

{

        failed=false
        Str=document.theForm.num_carte.value
        newStr=''
        card=''

        month_index = document.theForm.exp_month.selectedIndex
        exp_month = document.theForm.exp_month.options[month_index].text

        year_index = document.theForm.exp_year.selectedIndex
        exp_year = document.theForm.exp_year.options[year_index].text

        d=new Date()
        cur_month = d.getMonth() + 1
        cur_year = d.getYear()
		if (cur_year < 1000) {cur_year += 1900}







        //get card type
        if(document.theForm.type_carte[0].checked){card="euro_mastercard"}
        if(document.theForm.type_carte[1].checked){card="visa"}
        if(document.theForm.type_carte[2].checked){card="amex"}
        if(document.theForm.type_carte[3].checked){card="diners"}

        if (card=='') {
                error("Vous n'avez pas sélectionné un type de carte")
                return (false);
        }

        //check the expiration date
        if (exp_year < cur_year) {
                error("Votre carte a expiré")
                return (false);
        }
        
        if ((exp_year == cur_year) && (exp_month < cur_month)) {
                error("Votre carte a expiré")
                return (false);
        }
        
//check if card name has been typed

  if (document.theForm.nom_carte.value == "")
  {
    alert("Vous devez taper le nom tel qu'il apparaît sur la carte");
    document.theForm.nom_carte.focus();
    return (false);
  }

        //remove spaces and dashes
        for (var k = 0; k < Str.length; k++){
                var oneChar = Str.charAt(k)
                        if ((oneChar != " ") && (oneChar != "-")) {
                                newStr += Str.charAt(k)
                                
                        }
        }

        //check for digits only
        
        for (var k = 0; k < newStr.length; k++){
                var oneChar = newStr.charAt(k)
                if (oneChar < "0" || oneChar > "9") {
                        error("Seuls les chiffres et les espaces sont autorisés dans le numéro de carte.")
                        return (false);
                        
                }

        }
        

        //check length for card type

        if(card == "visa"){
                if((newStr.length != "13") && (newStr.length != "16")){
                        error("Numéro de carte incorrect : trop ou pas assez de chiffres.")
                        return (false);
                }

        }

        if(card == "euro_mastercard"){
                if(newStr.length != "16"){
                        error("Numéro de carte incorrect : trop ou pas assez de chiffres.")
                        return (false);
                }

        }

        if(card == "amex"){
                if(newStr.length != "15"){
                        error("Numéro de carte incorrect : trop ou pas assez de chiffres.")
                        return (false);
                }

        }

        if(card == "diners"){
                if(newStr.length != "14"){
                        error("Numéro de carte incorrect : trop ou pas assez de chiffres.")
                        return (false);
                }

        }

        //verify Mod 10

        if(newStr.length == "13")
//function len13()
	{
        cc0 = newStr.charAt(0)
        cc1 = newStr.charAt(1)
        cc2 = newStr.charAt(2)
        cc3 = newStr.charAt(3)
        cc4 = newStr.charAt(4)
        cc5 = newStr.charAt(5)
        cc6 = newStr.charAt(6)
        cc7 = newStr.charAt(7)
        cc8 = newStr.charAt(8)
        cc9 = newStr.charAt(9)
        cc10 = newStr.charAt(10)
        cc11 = newStr.charAt(11)
        cc12 = newStr.charAt(12)

        cc1a = cc1 * 2
        cc3a = cc3 * 2
        cc5a = cc5 * 2
        cc7a = cc7 * 2
        cc9a = cc9 * 2
        cc11a = cc11 * 2

        if(cc1a >= 10) {
                cc1a=cc1a.toString()
                cc1b = cc1a.charAt(0)
                cc1c = cc1a.charAt(1)
                cc1 = parseFloat(cc1b) + parseFloat(cc1c)
        }
        else {
                cc1 = cc1a
        }

        if(cc3a >= 10) {

                cc3a=cc3a.toString()
                cc3b = cc3a.charAt(0)
                cc3c = cc3a.charAt(1)
                cc3 = parseFloat(cc3b) + parseFloat(cc3c)

        }

        else {
                cc3 = cc3a
        }

        if (cc5a >= 10) {
                cc5a=cc5a.toString()
                cc5b = cc5a.charAt(0)
                cc5c = cc5a.charAt(1)
                cc5 = parseFloat(cc5b) + parseFloat(cc5c)

        }
        
        else {
                cc5 = cc5a
        }

        if (cc7a >= 10) {
                cc7a=cc7a.toString()
                cc7b = cc7a.charAt(0)
                cc7c = cc7a.charAt(1)
                cc7 = parseFloat(cc7b) + parseFloat(cc7c)
        }

        else {
                cc7 = cc7a
        }

        if (cc9a >= 10) {
                cc9a=cc9a.toString()
                cc9b = cc9a.charAt(0)
                cc9c = cc9a.charAt(1)
                cc9 = parseFloat(cc9b) + parseFloat(cc9c)
        }

        else {
                cc9 = cc9a
        }

        if (cc11a >= 10) {
                cc11a=cc11a.toString()
                cc11b = cc11a.charAt(0)
                cc11c = cc11a.charAt(1)
                cc11 = parseFloat(cc11b) + parseFloat(cc11c)
        }
        
        else {
                cc11 = cc11a
        }


        value = 0
        value +=parseFloat(cc0)
        value +=parseFloat(cc1)
        value +=parseFloat(cc2)
        value +=parseFloat(cc3)
        value +=parseFloat(cc4)
        value +=parseFloat(cc5)
        value +=parseFloat(cc6)
        value +=parseFloat(cc7)
        value +=parseFloat(cc8)
        value +=parseFloat(cc9)
        value +=parseFloat(cc10)
        value +=parseFloat(cc11)
        value +=parseFloat(cc12)

        value=value.toString()

        if (value.charAt(1) != 0){

                error("Numéro de carte incorrect.")
                        return (false);
        }
        
}
        if(newStr.length == "14")
//function len14()
	{
        cc0 = newStr.charAt(0)
        cc1 = newStr.charAt(1)
        cc2 = newStr.charAt(2)
        cc3 = newStr.charAt(3)
        cc4 = newStr.charAt(4)
        cc5 = newStr.charAt(5)
        cc6 = newStr.charAt(6)
        cc7 = newStr.charAt(7)
        cc8 = newStr.charAt(8)
        cc9 = newStr.charAt(9)
        cc10 = newStr.charAt(10)
        cc11 = newStr.charAt(11)
        cc12 = newStr.charAt(12)
        cc13 = newStr.charAt(13)

        cc0a = cc0 * 2
        cc2a = cc2 * 2
        cc4a = cc4 * 2
        cc6a = cc6 * 2
        cc8a = cc8 * 2
        cc10a = cc10 * 2
        cc12a = cc12 * 2

        if(cc0a >= 10) {
                cc0a=cc0a.toString()
                cc0b = cc0a.charAt(0)
                cc0c = cc0a.charAt(1)
                cc0 = parseFloat(cc0b) + parseFloat(cc0c)
        }
        else {
                cc0 = cc0a
        }

        if(cc2a >= 10) {

                cc2a=cc2a.toString()
                cc2b = cc2a.charAt(0)
                cc2c = cc2a.charAt(1)
                cc2 = parseFloat(cc2b) + parseFloat(cc2c)
        }

        else {
                cc2 = cc2a
        }

        if (cc4a >= 10) {
                cc4a=cc4a.toString()
                cc4b = cc4a.charAt(0)
                cc4c = cc4a.charAt(1)
                cc4 = parseFloat(cc4b) + parseFloat(cc4c)
        }
        
        else {
                cc4 = cc4a
        }

        if (cc6a >= 10) {
                cc6a=cc6a.toString()
                cc6b = cc6a.charAt(0)
                cc6c = cc6a.charAt(1)
                cc6 = parseFloat(cc6b) + parseFloat(cc6c)
        }

        else {
                cc6 = cc6a
        }

        if (cc8a >= 10) {
                cc8a=cc8a.toString()
                cc8b = cc8a.charAt(0)
                cc8c = cc8a.charAt(1)
                cc8 = parseFloat(cc8b) + parseFloat(cc8c)
        }

        else {
                cc8 = cc8a
        }

        if (cc10a >= 10) {
                cc10a=cc10a.toString()
                cc10b = cc10a.charAt(0)
                cc10c = cc10a.charAt(1)
                cc10 = parseFloat(cc10b) + parseFloat(cc10c)
        }

        else {
                cc10 = cc10a
        }

        if (cc12a >= 10) {
                cc12a=cc12a.toString()
                cc12b = cc12a.charAt(0)
                cc12c = cc12a.charAt(1)
                cc12 = parseFloat(cc12b) + parseFloat(cc12c)
        }
        
        else {
                cc12 = cc12a
        }


        value = 0
        value +=parseFloat(cc0)
        value +=parseFloat(cc1)
        value +=parseFloat(cc2)
        value +=parseFloat(cc3)
        value +=parseFloat(cc4)
        value +=parseFloat(cc5)
        value +=parseFloat(cc6)
        value +=parseFloat(cc7)
        value +=parseFloat(cc8)
        value +=parseFloat(cc9)
        value +=parseFloat(cc10)
        value +=parseFloat(cc11)
        value +=parseFloat(cc12)
        value +=parseFloat(cc13)


        value=value.toString()

        if (value.charAt(1) != 0) {

                error("Numéro de carte incorrect.")
                        return (false);
        }

}
        if(newStr.length == "15")
//function len15()
	{
        cc0 = newStr.charAt(0)
        cc1 = newStr.charAt(1)
        cc2 = newStr.charAt(2)
        cc3 = newStr.charAt(3)
        cc4 = newStr.charAt(4)
        cc5 = newStr.charAt(5)
        cc6 = newStr.charAt(6)
        cc7 = newStr.charAt(7)
        cc8 = newStr.charAt(8)
        cc9 = newStr.charAt(9)
        cc10 = newStr.charAt(10)
        cc11 = newStr.charAt(11)
        cc12 = newStr.charAt(12)
        cc13 = newStr.charAt(13)
        cc14 = newStr.charAt(14)

        cc1a = cc1 * 2
        cc3a = cc3 * 2
        cc5a = cc5 * 2
        cc7a = cc7 * 2
        cc9a = cc9 * 2
        cc11a = cc11 * 2
        cc13a = cc13 * 2

        if(cc1a >= 10) {
                cc1a=cc1a.toString()
                cc1b = cc1a.charAt(0)
                cc1c = cc1a.charAt(1)
                cc1 = parseFloat(cc1b) + parseFloat(cc1c)
        }
        else {
                cc1 = cc1a
        }

        if(cc3a >= 10) {

                cc3a=cc3a.toString()
                cc3b = cc3a.charAt(0)
                cc3c = cc3a.charAt(1)
                cc3 = parseFloat(cc3b) + parseFloat(cc3c)
        }

        else {
                cc3 = cc3a
        }

        if (cc5a >= 10) {
                cc5a=cc5a.toString()
                cc5b = cc5a.charAt(0)
                cc5c = cc5a.charAt(1)
                cc5 = parseFloat(cc5b) + parseFloat(cc5c)
        }
        
        else {
                cc5 = cc5a
        }

        if (cc7a >= 10) {
                cc7a=cc7a.toString()
                cc7b = cc7a.charAt(0)
                cc7c = cc7a.charAt(1)
                cc7 = parseFloat(cc7b) + parseFloat(cc7c)
        }

        else {
                cc7 = cc7a
        }

        if (cc9a >= 10){
                cc9a=cc9a.toString()
                cc9b = cc9a.charAt(0)
                cc9c = cc9a.charAt(1)
                cc9 = parseFloat(cc9b) + parseFloat(cc9c)
        }

        else {
                cc9 = cc9a
        }

        if (cc11a >= 10) {
                cc11a=cc11a.toString()
                cc11b = cc11a.charAt(0)
                cc11c = cc11a.charAt(1)
                cc11 = parseFloat(cc11b) + parseFloat(cc11c)
        }
        
        else {
                cc11 = cc11a
        }

        if (cc13a >= 10) {
                cc13a=cc13a.toString()
                cc13b = cc13a.charAt(0)
                cc13c = cc13a.charAt(1)
                cc13 = parseFloat(cc13b) + parseFloat(cc13c)
        }
        
        else {
                cc13 = cc13a
        }

        value = 0
        value +=parseFloat(cc0)
        value +=parseFloat(cc1)
        value +=parseFloat(cc2)
        value +=parseFloat(cc3)
        value +=parseFloat(cc4)
        value +=parseFloat(cc5)
        value +=parseFloat(cc6)
        value +=parseFloat(cc7)
        value +=parseFloat(cc8)
        value +=parseFloat(cc9)
        value +=parseFloat(cc10)
        value +=parseFloat(cc11)
        value +=parseFloat(cc12)
        value +=parseFloat(cc13)
        value +=parseFloat(cc14)

        value=value.toString()

        if (value.charAt(1) != 0) {

                error("Numéro de carte incorrect.")
                        return (false);
        }       
}
        if(newStr.length == "16")
//function len16()
	{
        cc0 = newStr.charAt(0)
        cc1 = newStr.charAt(1)
        cc2 = newStr.charAt(2)
        cc3 = newStr.charAt(3)
        cc4 = newStr.charAt(4)
        cc5 = newStr.charAt(5)
        cc6 = newStr.charAt(6)
        cc7 = newStr.charAt(7)
        cc8 = newStr.charAt(8)
        cc9 = newStr.charAt(9)
        cc10 = newStr.charAt(10)
        cc11 = newStr.charAt(11)
        cc12 = newStr.charAt(12)
        cc13 = newStr.charAt(13)
        cc14 = newStr.charAt(14)
        cc15 = newStr.charAt(15)

        cc0a = cc0 * 2
        cc2a = cc2 * 2
        cc4a = cc4 * 2
        cc6a = cc6 * 2
        cc8a = cc8 * 2
        cc10a = cc10 * 2
        cc12a = cc12 * 2
        cc14a = cc14 * 2

        if(cc0a >= 10) {
                cc0a=cc0a.toString()
                cc0b = cc0a.charAt(0)
                cc0c = cc0a.charAt(1)
                cc0 = parseFloat(cc0b) + parseFloat(cc0c)
        }
        else {
                cc0 = cc0a
        }

        if(cc2a >= 10) {

                cc2a=cc2a.toString()
                cc2b = cc2a.charAt(0)
                cc2c = cc2a.charAt(1)
                cc2 = parseFloat(cc2b) + parseFloat(cc2c)
        }

        else {
                cc2 = cc2a
        }

        if (cc4a >= 10) {
                cc4a=cc4a.toString()
                cc4b = cc4a.charAt(0)
                cc4c = cc4a.charAt(1)
                cc4 = parseFloat(cc4b) + parseFloat(cc4c)
        }
        
        else {
                cc4 = cc4a
        }

        if (cc6a >= 10) {
                cc6a=cc6a.toString()
                cc6b = cc6a.charAt(0)
                cc6c = cc6a.charAt(1)
                cc6 = parseFloat(cc6b) + parseFloat(cc6c)
        }

        else {
                cc6 = cc6a
        }

        if (cc8a >= 10) {
                cc8a=cc8a.toString()
                cc8b = cc8a.charAt(0)
                cc8c = cc8a.charAt(1)
                cc8 = parseFloat(cc8b) + parseFloat(cc8c)
        }

        else {
                cc8 = cc8a
        }

        if (cc10a >= 10) {
                cc10a=cc10a.toString()
                cc10b = cc10a.charAt(0)
                cc10c = cc10a.charAt(1)
                cc10 = parseFloat(cc10b) + parseFloat(cc10c)
        }

        else {
                cc10 = cc10a
        }

        if (cc12a >= 10) {
                cc12a=cc12a.toString()
                cc12b = cc12a.charAt(0)
                cc12c = cc12a.charAt(1)
                cc12 = parseFloat(cc12b) + parseFloat(cc12c)
        }
        
        else {
                cc12 = cc12a
        }

        if (cc14a >= 10) {
                cc14a=cc14a.toString()
                cc14b = cc14a.charAt(0)
                cc14c = cc14a.charAt(1)
                cc14 = parseFloat(cc14b) + parseFloat(cc14c)
        }
        
        else {
                cc14 = cc14a
        }

        value = 0
        value +=parseFloat(cc0)
        value +=parseFloat(cc1)
        value +=parseFloat(cc2)
        value +=parseFloat(cc3)
        value +=parseFloat(cc4)
        value +=parseFloat(cc5)
        value +=parseFloat(cc6)
        value +=parseFloat(cc7)
        value +=parseFloat(cc8)
        value +=parseFloat(cc9)
        value +=parseFloat(cc10)
        value +=parseFloat(cc11)
        value +=parseFloat(cc12)
        value +=parseFloat(cc13)
        value +=parseFloat(cc14)
        value +=parseFloat(cc15)

        value=value.toString()

        if (value.charAt(1) != 0) {

                error("Numéro de carte incorrect.")
                        return (false);
        }

}
                

        // if all tests passed
        if (!failed){
                //whatever redirection is necessary goes here
                //alert("The credit card number is valid.")

        }

        
}//end of checkcc function






function error(msg) {
        alert(msg)
        failed=true
}


//end check cc

  return (true);
}



