// JavaScript Document
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

// Defining variables and prices
var NUM_PRICES = 6;
var NO_DOMAIN = 0.00;
var DOMAIN = 9.50;
var FTP = 0.30;
var MYSQL = 0.50;
var PERSO = 1.00;
var PRO = 1.50;
var PREMIUM = 2.50;
var ULTRA = 4.50;

var numQty = 7;
quantities = new Array(numQty);
quantities[1] = 9999;

prices = new Array(NUM_PRICES);
prices[FTP] = new price("Ftp", 0.30);
prices[MYSQL] = new price("MySQL", 0.50);
prices[PERSO] = new price("Perso", 1.00);
prices[PRO] = new price("Pro", 1.50);
prices[PREMIUM] = new price("Premium", 2.50);
prices[ULTRA] = new price("Ultra", 4.50);

function CheckCheckBox(form)
  {
    if (!form.domain[1].checked)
      form.domain[1].focus()
	  form.domain_name.value="";
  }
  
function CheckCheckPack(form)
  {
  	  form.qty200.readOnly=true;	  
	  form.qty500.readOnly=true;
	  form.qty1000.readOnly=true;	  
	  form.qty2000.readOnly=true;
	  form.qtyFTP.readOnly=true;
	  form.qtyFTPbis.readOnly=true;
	  form.qtySQL.readOnly=true;
	  form.qtySQLbis.readOnly=true;
	  
    if (form.pack[0].checked) {
			  form.qty200.readOnly=false;
			  form.qtyFTP.readOnly=false;
			  form.qtyFTPbis.readOnly=false;
			  form.qtySQL.readOnly=false;
			  form.qtySQLbis.readOnly=false;
			  form.qty200.value=1;
			  form.qty500.value=0;
			  form.qty1000.value=0;
			  form.qty2000.value=0;			  
			  calctotals(form);} 
		 else {
            if (form.pack[1].checked) {
			  form.qty500.readOnly=false; 
			  form.qtyFTP.readOnly=false;
			  form.qtyFTPbis.readOnly=false;
			  form.qtySQL.readOnly=false;
			  form.qtySQLbis.readOnly=false;
			  form.qty200.value=0;
			  form.qty500.value=1;
			  form.qty1000.value=0;
			  form.qty2000.value=0;			  
			  calctotals(form);} 
		 else 
		 	 if (form.pack[2].checked) {
			  form.qty1000.readOnly=false; 
			  form.qtyFTP.readOnly=false;
			  form.qtyFTPbis.readOnly=false;
			  form.qtySQL.readOnly=false;
			  form.qtySQLbis.readOnly=false;
			  form.qty200.value=0;
			  form.qty500.value=0;
			  form.qty1000.value=1;
			  form.qty2000.value=0;			  
			  calctotals(form);} 
		 else 
		 	 if (form.pack[3].checked) {
			  form.qty2000.readOnly=false; 
			  form.qtyFTP.readOnly=false;
			  form.qtyFTPbis.readOnly=false;
			  form.qtySQL.readOnly=false;
			  form.qtySQLbis.readOnly=false;
			  form.qty200.value=0;
			  form.qty500.value=0;
			  form.qty1000.value=0;			  
			  form.qty2000.value=1;	
			  calctotals(form);} 
         }
	}

  
function price(name, price1) {
   this.price = new Array(7);
   this.name = name;
   this.price[1] = price1;
}

function isNumberString (InString)  {
	if(InString.length==0) 
		return (false);
	RefString="1234567890";
	for (Count=0; Count < InString.length; Count++)  {
		TempChar= InString.substring (Count, Count+1);
		if (RefString.indexOf (TempChar, 0)==-1)  {
			return (false);
		}
	}
	return (true);
}

function isAlphabeticString (InString)  {
	if(InString.length==0)
		return (true);
	InString=InString.toLowerCase ()
	RefString="abcdefghijklmnopqrstuvwxyz ";
	for (Count=0; Count < InString.length; Count++)  {
		TempChar= InString.substring(Count, Count+1);
		if (RefString.indexOf(TempChar, 0)==-1) 
			return (false);
	}
	return (true);
}

function isAlphabeticNumericString (InString)  {
	if(InString.length==0)
		return (true);
	InString=InString.toLowerCase ()
	RefString="abcdefghijklmnopqrstuvwxyz1234567890-";
	for (Count=0; Count < InString.length; Count++)  {
		TempChar= InString.substring(Count, Count+1);
		if (RefString.indexOf(TempChar, 0)==-1) 
			return (false);
	}
	return (true);
}

function removeLeadingSpaces(inString) {
	var outString=inString;
	for (i=0; i < inString.length; i++) {
		var tempChar = inString.substring(i, i+1);
		if (tempChar != " ") {
			outString=inString.substring(i, inString.length)
			break;
		}
	}
	return(outString);
}

function amtchange(form) {
	calctotals(form)
}

function calcAmount(product, qty) {
var intQty, discQty;
	amt = "";
	qty = removeLeadingSpaces(qty);
	if (isNumberString(qty)) {
		intQty = parseInt(qty);
		for (var j = 1; j<numQty+1; j++) {
			if (intQty <= quantities[j]) {
				amt = prices[product].price[j] * intQty;
				return(amt);
			}
		}
	}
	return(amt);
} 

function calcAmount2(product, qty, month) {
var intQty, discQty, monthQty;
	amt = "";
	qty = removeLeadingSpaces(qty);
	month = removeLeadingSpaces(month);
	if (isNumberString(qty) && isNumberString(month)) {
		intQty = parseInt(qty);
		monthQty = parseInt(month);
		for (var j = 1; j<numQty+1; j++) {
			if (intQty <= quantities[j]) {
				amt = prices[product].price[j] * intQty * monthQty;
	return(amt);
			}
		}
	}
	return(amt);
} 

function calctotals(form) {
   var subt = 0;
   var domain = 0;
   var tot = 0;
   var amt = 0;
   var num_ordered = 0;
   var upper_case = "";
   
   amt = calcAmount(PERSO, form.qty200.value);
   form.amt200.value = formatDollar(amt, false);
  if (amt != "") {
		subt += amt;
		num_ordered += parseInt(form.qty200.value);
   }
   amt = calcAmount(PRO, form.qty500.value, subt);
   form.amt500.value = formatDollar(amt, false);
   if (amt != "") {
		subt += amt;
		num_ordered += parseInt(form.qty500.value);
   }
   amt = calcAmount(PREMIUM, form.qty1000.value, subt);
   form.amt1000.value = formatDollar(amt, false);
   if (amt != "") {
		subt += amt;
		num_ordered += parseInt(form.qty1000.value);
   }
   amt = calcAmount(ULTRA, form.qty2000.value, subt);
   form.amt2000.value = formatDollar(amt, false);
   if (amt != "") {
		subt += amt;
		num_ordered += parseInt(form.qty2000.value);
   }
   amt = calcAmount2(FTP, form.qtyFTPbis.value, form.qtyFTP.value, subt);
   form.amtFTP.value = formatDollar(amt, false);
   if (amt != "") {
		subt += amt;
		num_ordered += parseInt(form.qtyFTPbis.value);
   }
   amt = calcAmount2(MYSQL, form.qtySQLbis.value, form.qtySQL.value, subt);
   form.amtSQL.value = formatDollar(amt, false);
   if (amt != "") {
		subt += amt;
		num_ordered += parseInt(form.qtySQL.value);
   } 
         if (form.domain[0].checked) {
            domain = NO_DOMAIN;
			form.domain_name.value="";
         } else {
            if (form.domain[1].checked) {
               domain = DOMAIN;
            }
         }
  
   tot = subt + domain;
   //form.subtotal.value = formatDollar(subt, false);
   //form.shipping.value = formatDollar(domain, false);
   form.total.value = formatDollar (tot, false);
}

// verifPersonnal
function verifPersonnal(form) {
   if (form.name.value == "") {
      alert ("Aucun nom n'a \351t\351 entr\351.");
      form.name.focus();
      return;
   }
   if (!isAlphabeticString(form.name.value)) {
      alert ("Nom invalide.\nN'utilisez pas de points, d'apostrophes, de tirets, etc.");
      form.name.focus();
      return;
   }
   if (form.address.value == "") {
      alert ("Aucune adresse entr\351e.");
      form.address.focus();
      return;
   }
   if (form.city.value == "") {
      alert ("Aucun nom de ville entr\351.");
      form.city.focus();
      return;
   }
   if (!isAlphabeticString(form.city.value)) {
      alert ("Nom de ville invalide.\nN'utilisez pas de points, d'apostrophes, de tirets, etc.");
      form.city.focus();
      return;
   }
   if (form.zip.value == "") {
      alert ("Aucun code postal entr\351.");
      form.zip.focus();
      return;
   }
   if (form.country.value == "") { 
      alert ("Aucun pays entr\351.");
      form.country.focus();
      return;
   }
   if (!isAlphabeticString(form.country.value)) {
      alert ("Pays invalide.");
      form.country.focus();
      return;
   }
	if (form.email.value == "") {
		alert ("Votre adresse mail est obligatoire.");
		form.email.focus();
		return;
	}
	if (form.email2.value == "") {
		alert ("Vous devez confirmer votre adresse mail.");
		form.email2.focus();
		return;
	}
	if (form.email.value != form.email2.value) {
		alert ("Les deux adresses email tap\351es sont diff\351rentes!");
		form.email.focus();
		return;
	}
	for (i=0; i<form.oldenough.length; i++) {
        if (form.oldenough[1].checked) {
			alert("Vous devez avoir 13 ou plus pour continuer.");
        	form.oldenough[0].focus();
			return;
		}
	}
	if (form.cgv.checked == false ) {
	alert ("Vous devez acceptez les Conditions G\351n\351rales de Vente pour continuer.");
	form.cgv.focus();
	return;
	}

	txt=form.email.value;
	if (txt != "") {
		if (txt.indexOf("@")==-1){
			alert("Adresse mail non valide.");
			form.email.focus();
			return;
		}
		if ((txt.indexOf(".")==-1)){
			alert("Adresse mail non valide.");
			form.email.focus();
			return;
		}
	}
	
   form.submit();
}

function verifCommande(form) {
   calctotals(form);

   	//  Forcing selection of pack
   if (form.pack.checked == false) {
      alert ("Aucun service sélectionné.");
      form.pack.focus();
      return;
}

   form.submit();
}

function formatDollar (Val, DollarSign)  {
        Val=""+Val;
        if (Val.indexOf (".", 0)!=-1) {
                Dollars = Val.substring(0, Val.indexOf (".", 0));
                Cents = Val.substring(Val.indexOf (".", 0)+1, Val.indexOf (".", 0)+3);
                if (Cents.length==0) 
                        Cents="00";
                if (Cents.length==1)
                        Cents=Cents+"0";
        } else {
                Dollars = Val;
                Cents = "00";
        }
        OutString="";
        len=Dollars.length;
        if (len>=3) {
                while (len>0) {
                        TempString=Dollars.substring(len-3, len)
                        if (TempString.length==3) {
                                OutString=","+TempString+OutString
                                len=len-3;
                        } else {
                                OutString=TempString+OutString
                                len=0
                        }
                }
                if (OutString.substring(0, 1)==",") 
                        Dollars=OutString.substring (1, OutString.length)
                else
                        Dollars=OutString
        } 
        RetString=Dollars+"."+Cents;
        if (RetString == "0.00" || RetString == ".00") {
                return "";
        }
        if (DollarSign) {
                RetString="$"+RetString;
        }
        return RetString;
}
function zeroTrim(inString) {
	var outString=inString;
	for (i=0; i < inString.length; i++) {
		var tempChar = inString.substring(i, i+1);
		if (tempChar != "0") {
			outString=inString.substring(i, inString.length)
			break;
		}
	}
	return(outString);
}

// Vérification de l'envoi d'un msg (formulaire contacts)
function verifContact(form) {
	
   if (form.lname.value == "") {
      alert ("Aucun nom n'a \351t\351 entr\351.");
      form.lname.focus();
      return;
   }
   if (!isAlphabeticString(form.lname.value)) {
      alert ("Nom invalide.\nN'utilisez pas de points, d'apostrophes, de tirets, etc.");
      form.lname.focus();
      return;
   }
   if (form.fname.value == "") {
      alert ("Aucun pr\351nom n'a \351t\351 entr\351.");
      form.fname.focus();
      return;
   }
   if (!isAlphabeticString(form.fname.value)) {
      alert ("Pr\351nom invalide.\nN'utilisez pas de points, d'apostrophes, de tirets, etc.");
      form.fname.focus();
      return;
   }
	if (form.email.value == "") {
		alert ("Votre adresse mail est obligatoire.");
		form.email.focus();
		return;
	}
   if (form.message.value == "") {
      alert ("Aucun message entr\351.");
      form.message.focus();
      return;
   }
	txt=form.email.value;
	if (txt != "") {
		if (txt.indexOf("@")==-1){
			alert("Adresse mail non valide.");
			form.email.focus();
			return;
		}
		if ((txt.indexOf(".")==-1)){
			alert("Adresse mail non valide.");
			form.email.focus();
			return;
		}
	}
   form.submit();
}

// Vérification du pseudo
function verifPseudo(login)
     {
     if(login != '')
               {
               if(login.length<5)
                         writediv('<span style="color:#cc0000"><b>'+login+' :</b> ce login est trop court <i>(5 caract\350res min.)</i></span>');
               else if(login.length>30)
                         writediv('<span style="color:#cc0000"><b>'+login+' :</b> ce login est trop long <i>(30 caract\350res max.)</i></span>');
               else if(texte = file('includes/verifpseudo.php?login='+escape(login)))
                         {
          if(texte == 1) 
               writediv('<span style="color:#cc0000"><b>'+login+' :</b> ce login est d\351j\340 pris</span>');
          else if(texte == 2)
               writediv('<span style="color:#1A7917"><b>'+login+' :</b> ce login est libre</span>');
		 else
               writediv(texte);
                         }
               }
     }

// Boîte de texte
function writediv(texte)
     {
     document.getElementById('pseudobox').innerHTML = texte;
	 return;
     }
	 
// Vérification du formulaire
function verifAccount(form) {
	
	if (form.login.value.length<5) {
		alert ("Ce login est trop court!");
		form.login.focus();
		return;
	}
	if (form.login.value.length>30) {
		alert ("Ce login est trop long!");
		form.login.focus();
		return;
	}
	if (texte = file('includes/verifpseudo.php?login='+escape(form.login.value))) {
		if(texte == 1) {
			alert ("Veuillez choisir un autre login!");
			form.login.focus();
			return;
		}
	}
	if (!isAlphabeticNumericString(form.login.value)) {
		alert ("Login invalide.\nVous ne pouvez utiliser que des lettres, des chiffres et le tiret du milieu.");
		form.login.focus();
		return;
	}
   form.submit();
}

// Vérification du formulaire
function verifExisting(form) {

	if (form.login.value == "") {
		alert ("Veuillez renseigner votre login existant!");
		form.login.focus();
		return;
	}  
   	if (form.email.value == "") {
		alert ("Votre adresse mail est obligatoire.");
		form.email.focus();
		return;
	}
	if (form.email2.value == "") {
		alert ("Vous devez confirmer votre adresse mail.");
		form.email2.focus();
		return;
	}
	if (form.email.value != form.email2.value) {
		alert ("Les deux adresses email tap\351es sont diff\351rentes!");
		form.email.focus();
		return;
	}
	txt=form.email.value;
	if (txt != "") {
		if (txt.indexOf("@")==-1){
			alert("Adresse mail non valide.");
			form.email.focus();
			return;
		}
		if ((txt.indexOf(".")==-1)){
			alert("Adresse mail non valide.");
			form.email.focus();
			return;
		}
	}
   form.submit();
}

// Récupération et lecture du fichier verifpseudo.php
function file(fichier)
     {
     if(window.XMLHttpRequest) // FIREFOX
          xhr_object = new XMLHttpRequest();
     else if(window.ActiveXObject) // IE
          xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
     else
          return(false);
     xhr_object.open("GET", fichier, false);
     xhr_object.send(null);
     if(xhr_object.readyState == 4) return(xhr_object.responseText);
     else return(false);
     }