
function SetFocus() {
  if (document.forms.length > 0) {
    var field = document.forms[0];
    for (var i=0; i<field.length; i++) {
      if ( (field.elements[i].type != "image") &&
           (field.elements[i].type != "hidden") &&
           (field.elements[i].type != "reset") &&
           (field.elements[i].type != "submit") ) {

        document.forms[0].elements[i].focus();

        if ( (field.elements[i].type == "text") ||
             (field.elements[i].type == "password") )
          document.forms[0].elements[i].select();

        break;
      }
    }
  }
}


function desactiveSubmit() {
  if (document.forms.length > 0) {
		var nombreForms=document.forms.length;
		//alert("nombreForms : "+nombreForms);
		for(var j=0; j<nombreForms; j++) {
			var subType = '';
			var field = document.forms[j];
			var fieldName=field.getAttribute('name');
			//alert("fieldName : "+fieldName);
			for (var i=0; i<field.length; i++) {
				subType=field.elements[i].type;

				if (subType == "submit") {
					var inputSubmit=field.elements[i];
					var inputSubmitName=inputSubmit.getAttribute('name');

					inputSubmit.onclick=function() 
					//inputSubmit.onmouseout=function(j,i) 
					{
						var subQueryString="";
						var inputName = this.name;
						var subParent = this.parentNode;
						var formName=subParent.getAttribute('name');
						var subChildren = subParent.childNodes;
						//alert("inputSubmit : "+inputSubmit+" ; inputSubmitName : "+inputSubmitName+" ; inputName="+inputName);
						
						// recupérer les input placés dans ce formulaire
						for(var k=0; k<subChildren.length; k++) {
							if(subChildren[k].name) {
								var ceformulaire=this.form;
								var ceformulaireName=ceformulaire.getAttribute('name');
								var ceinputName=subChildren[k].name;
								var ceinputValue=subChildren[k].value;
								var ceformName=formName;
								var language;
								//alert("TOP --------- formulaire: "+ceformulaire+" ; ceformulaireName: "+ceformulaireName+" ; subParent : "+subParent+" ; ceformName="+ceformName+" ; ceinputName="+ceinputName+" ; ceinputValue="+ceinputValue);
								//switch(subChildren[k].name) 
								switch(ceinputName) 
								{
									case 'Continuer' : case 'Continue' :
										if(inputName==ceinputName) {
											if(ceinputName=='Continuer') language='french'; else language = 'english';
											var no_message_erreur = verifieJit(ceformulaire,language);
										
											if(no_message_erreur==true) {
												//alert("update_data -- no_message_erreur : "+no_message_erreur);
											
												if(phraseConfirm) {
													var valeurOriginale=this.value;
													this.value="Requête en cours";
													this.disabled=true;
													// confirmer 
													if(confirm(phraseConfirm)==true){
														this.value="Requête en cours";
														this.disabled=false;
														return true;
													}
													this.value=valeurOriginale;
													this.disabled=false;
													return false;
												}
												else return true;
											}
											else return false;	
										}									
									break;
									case 'delete_data' :
										if(inputName==ceinputName) {
											if(inputLabelValueId) {
												var phraseConfirm="Voulez-vous réellement supprimer "+inputLabel+" N° "+inputLabelValueId+"  ?";
											}
											else {
												var phraseConfirm="Voulez-vous réellement supprimer cet enregistrement  ?";
											}
											//alert("formulaire: "+ceformulaire+" ; ceformulaireName: "+ceformulaireName+" ; subParent : "+subParent+" ; ceformName="+ceformName+" ; ceinputName="+ceinputName+" ; ceinputValue="+ceinputValue);
											this.value="Requête en cours";
											this.disabled=true;
											// confirmer la suppression 
											if(confirm(phraseConfirm)==true){
												this.value="Supprimer";
												this.disabled=false;
												return true;
											}
											this.value="Supprimer";
											this.disabled=false;
											return false;
										}
									break;
									case 'insert_client' :
										if(inputName==ceinputName) {
											var no_message_erreur = verifieJit(ceformulaire);
											//alert("insert_client -- no_message_erreur : "+no_message_erreur);
											if(no_message_erreur==true) {
												//alert("formulaire: "+ceformulaire+" ; ceformulaireName: "+ceformulaireName+" ; subParent : "+subParent+" ; ceformName="+ceformName+" ; ceinputName="+ceinputName+" ; ceinputValue="+ceinputValue);
												//alert("inputName : "+inputName+" == ceinputName : "+ceinputName+" ?");
												
												if(inputLabelValueId) {
													var phraseConfirm="Vous allez convertir "+inputLabel+" N° "+inputLabelValueId+"  en client ; cette action est irréversible et vous donnera accès à la création d'un contrat de prestations. \nConfirmez-vous la création de ce nouveau client ?";
												}
												else {
													var phraseConfirm="Voulez-vous réellement ajouter un client ?";
												}
												this.value="Requête en cours";
												this.disabled=true;
												// confirmer la suppression 
												if(confirm(phraseConfirm)==true){
													this.value="Ajouter un client";
													this.disabled=false;
													return true;
												}
												this.value="Ajouter un client";
												this.disabled=false;
												return false;
											}
											else return false;
										}
									break;
									case 'form_delete_prospects' : case 'delete_all_clients':
										if(inputName==ceinputName) {
											var inputLabel = (inputName=='form_delete_prospects') ? 'prospects' : 'clients';
											var valeurOriginale=this.value;
											var phraseConfirm="Attention ! Vous allez supprimer TOUS les "+inputLabel+" ! \n Etes-vous sûr de vouloir tout supprimer ? Cette action est irréversible ...";
											//alert("formulaire: "+ceformulaire+" ; ceformulaireName: "+ceformulaireName+" ; subParent : "+subParent+" ; ceformName="+ceformName+" ; ceinputName="+ceinputName+" ; ceinputValue="+ceinputValue);
											this.value="Requête en cours";
											this.disabled=true;
											// confirmer la suppression 
											if(confirm(phraseConfirm)==true){
												this.value=valeurOriginale;
												this.disabled=false;
												return true;
											}
											this.value=valeurOriginale;
											this.disabled=false;
											return false;
										}
									break;
									case 'annuler_edit_data_c' :
										if(inputName==ceinputName) {
											ceformulaire.style.display="none";
											document.getElementById("msg_erreur").innerHTML="";
											activeBoutonModifierCie();
										}
										return false;
									break;
									case 'edit_data_cie':
										//alert("edit_data_cie ------ formulaire: "+ceformulaire+" ; ceformulaireName: "+ceformulaireName+" ; subParent : "+subParent+" ; ceformName="+ceformName+" ; ceinputName="+ceinputName+" ; ceinputValue="+ceinputValue);
										if(inputName==ceinputName) {
											if(document.forms['new_and_edit']) {
												var formEditClient = document.forms['new_and_edit'];
												//alert("formEditClient : "+formEditClient);
												formEditClient.style.display="block";
												return false;
											}
											//else return true;
										}
									break;
									case 'delete_data_cc' :
										if(inputName==ceinputName) {
											var valeurOriginale=this.value;
											if(inputLabelValueId) {
												var phraseConfirm="Voulez-vous réellement supprimer "+inputLabel+" N° "+inputLabelValueId+"  ?";
											}
											else {
												var phraseConfirm="Voulez-vous réellement supprimer cet enregistrement  ?";
											}
											//alert("formulaire: "+ceformulaire+" ; ceformulaireName: "+ceformulaireName+" ; subParent : "+subParent+" ; ceformName="+ceformName+" ; ceinputName="+ceinputName+" ; ceinputValue="+ceinputValue);
											this.value="Requête en cours";
											this.disabled=true;
											// confirmer la suppression 
											if(confirm(phraseConfirm)==true){
												this.value=valeurOriginale;
												this.disabled=false;
												return true;
											}
											this.value=valeurOriginale;
											this.disabled=false;
											return false;
										}
									break;
									case 'ouvrir_session' :
										//alert("formulaire: "+ceformulaire+" ; ceformulaireName: "+ceformulaireName+" ; subParent : "+subParent+" ; ceformName="+ceformName+" ; ceinputName="+ceinputName+" ; ceinputValue="+ceinputValue);
										return verifieJit(ceformulaire);
									break;
									case 'annuler_edit_data_cc': 
										this.form.style.display="none";
										//return true;
									break;
									case 'annuler': 
										return true;
									break;
									case 'update_contrat': case 'edit_update_contrat' : case 'insert_contrat' :
										if(inputName==ceinputName) {
										return verifieJit(ceformulaire);
										}
									break;
									case 'update_data_c' : case 'insert_new_data_c' :
										if(inputName==ceinputName) {
											return verifieJit(ceformulaire);
										}
									break;
								}
								subQueryString += subChildren[k].name+"="+subChildren[k].value;
								if(k<subChildren.length) subQueryString += "&";
								//alert("subParent : "+subParent+" ;  formName : "+formName+" ; inputName : "+inputName+" ; subQueryString : "+subQueryString);
							}
						}
						while(subQueryString.substr((subQueryString.length)-1,subQueryString.length)=='&') {
							subQueryString=subQueryString.substr(0,(subQueryString.length)-1);
						}
					}
				}
			}
		}
  }
}


function verifieJit(Formulaire, lang) {
	// récupérer les champs du formulaire à vérifier
	var champs = Formulaire.elements;
	var nbre_champs=champs.length;
	//alert("Formulaire : "+Formulaire);
	//alert("nbre_champs : "+nbre_champs);
	var messageAverts=Array;
	var messageAvert = '';
	var msgErreur = "";
	var j=0;
	for(var i=0; i<nbre_champs; i++) {
		var champNode=champs[i];

		if(champNode.className=='requis') {
			var champType=champNode.type;
			var champName=champNode.name;
			var champValue=champNode.value;
			var champLabel='';
			//alert('champType : '+champType);
			if(champValue=="" || champValue=="0") {
				j++;
			//alert("champType : "+champType+" ; champName : "+champName+" ; champValue : "+champValue+"\n");
				switch (champName) {
					case 'gender' : champLabel = lang=='french' ? 'votre civilité' : 'your gender' ;	break;
					case 'firstname' : champLabel = lang=='french' ? 'votre prénom' : 'your first name' ;	break;
					case 'lastname' : case 'name' : champLabel = lang=='french' ? 'votre nom' : 'your last name' ;	break;
					case 'street_address' : champLabel = lang=='french' ? 'le nom de la rue' : 'the street address' ;	break;
					case 'suburb' : champLabel = lang=='french' ? 'le nom de la rue' : 'the suburb' ;	break;
					case 'postcode' : champLabel = lang=='french' ? 'le code postal' : 'the postcode' ;	break;
					case 'city' : champLabel = lang=='french' ? 'le nom de la ville' : 'the city' ;	break;
					case 'country' : champLabel = lang=='french' ? 'le pays' : 'the country' ;	break;
					case 'state' : champLabel = lang=='french' ? 'l\'état ou département' : 'the state' ;	break;
					case 'email_address' : case 'email' : champLabel = lang=='french' ? 'votre courriel' : 'your email' ;	break;
					case 'telephone' : champLabel = lang=='french' ? 'votre numéro de téléphone' : 'your phone number' ;	break;
					case 'telephone_mobile' : champLabel = lang=='french' ? 'votre numéro de téléphone mobile' : 'your phone number' ;	break;
					case 'fax' : champLabel = lang=='french' ? 'votre numéro de fax' : 'your fax number' ;	break;
					case 'password' : champLabel = lang=='french' ? 'le mot de passe' : 'the password' ;	break;
					case 'password_current' : champLabel = lang=='french' ? 'le mot de passe actuel' : 'the current password' ;	break;
					case 'password_new' : champLabel = lang=='french' ? 'le nouveau mot de passe' : 'the new password' ;	break;
					case 'confirmation' : case 'password_confirmation' : champLabel = lang=='french' ? 'la confirmation du mot de passe' : 'the password confirmation' ;	break;
					case 'enquiry' : champLabel = lang=='french' ? 'votre message' : 'your message' ;	break;
					case 'agree' : 
						if (Formulaire.agree.checked == false ) {
							champLabel = lang=='french' ? 'Veuillez lire nos conditions générales de vente et les accepter sinon nous ne pourrons vous livrer.' : 'Please read our conditions of use and agree to them. If you do not so, we can not deliver to you.' ;
						}
						else champLabel='';
					break;
				}
				//alert("champType : "+champType+" ; champName : "+champName+" ; champValue : "+champValue+" ; champLabel : "+champLabel+"\n");
				messageAverts[j] = champLabel;
			}
		}
	}
	if(messageAverts.length>0) {
		for(var k=1; k<=j; k++) {
			messageAvert += messageAverts[k];
			var et_and = lang=='french' ? ' et ' : ' and ';
			messageAvert += k<(j-1) ? ', ' : (k==(j-1) ? et_and : '');
		}
	}
	//alert("messageAvert : "+messageAvert+"\n");
	if(messageAvert!='') {
		var phrase_intro = Formulaire.name != 'checkout_confirmation' ? (lang=='french' ? "Veuillez renseigner " : "Please select ") : '';
		msgErreur = phrase_intro+" "+messageAvert ;
		
		//alert('msgErreur : '+msgErreur);
		var emplaceErreur = document.getElementById("msg_erreur");
		remplacerHtml(emplaceErreur, msgErreur);
	
		return false;
	}
	return true;
}

function activeBoutonModifierCie(){
	var formModifier = document.forms['form_update_data_c'];
	var boutonModifier = formModifier.elements['edit_data_cie'];
	boutonModifier.type="submit";
	boutonModifier.value="Modifier";
	boutonModifier.disabled=false;
	desactiveSubmit();
}


///////////////////
function rowOverEffect(object) {
  if (object.className == 'moduleRow') object.className = 'moduleRowOver';
}

function rowOutEffect(object) {
  if (object.className == 'moduleRowOver') object.className = 'moduleRow';
}

Number.prototype.nombreFormate = function (decimales, signe, separateurMilliers) {
/*
Exemples:
var monEntier = 1234567891011;
var monFlottant = 12345.1556;
monEntier.nombreFormate(); // 1 234 567 891 011.00
monFlottant.nombreFormate(3, ',', '`'); // 12`345,156
*/
	var _sNombre = String(this), i, _sRetour = "", _sDecimales = "";
	if (decimales == undefined) decimales = 2;
	if (signe == undefined) signe = '.';
	if (separateurMilliers == undefined) separateurMilliers = ' ';
	
	function separeMilliers (sNombre) {
		var sRetour = "";
		while (sNombre.length % 3 != 0) {
			sNombre = "0"+sNombre;
		}
		for (i = 0; i < sNombre.length; i += 3) {
			if (i ==  sNombre.length-1) separateurMilliers = '';
			sRetour += sNombre.substr(i, 3)+separateurMilliers;
		}
		while (sRetour.substr(0, 1) == "0") {
			sRetour = sRetour.substr(1);
		}
		return sRetour.substr(0, sRetour.lastIndexOf(separateurMilliers));
	}
	if (_sNombre.indexOf('.') == -1) {
		for (i = 0; i < decimales; i++) {
			_sDecimales += "0";
		}
		_sRetour = separeMilliers(_sNombre)+signe+_sDecimales;
	} else {
		var sDecimalesTmp = (_sNombre.substr(_sNombre.indexOf('.')+1));
		if (sDecimalesTmp.length > decimales) {
			var nDecimalesManquantes = sDecimalesTmp.length - decimales;
			var nDiv = 1;
			for (i = 0; i < nDecimalesManquantes; i++) {
				nDiv *= 10;
			}
			_sDecimales = Math.round(Number(sDecimalesTmp) / nDiv);
		} 
		else {
    _sDecimales = sDecimalesTmp;
    for (i = sDecimalesTmp.length; i < decimales; i++) {
    _sDecimales += "0";
    }     
	}

		_sRetour = separeMilliers(_sNombre.substr(0, _sNombre.indexOf('.')))+String(signe)+_sDecimales; 
	}
	return _sRetour;
}