// Patch NBL (jQuery) 01-12-08
// =================================================== //
// =================== VARIABLES GLOBALES ============= //
// =================================================== //
var objAjax = null;
var champFocus = null;
var messagesErreursFr = new Array();
var messagesErreursEn = new Array();
var langue = null; // La langue du site présentement utilisée

// ============================== ===================== //
// ==================== FONCTONS ===================== //
// ============================== ===================== //
var initApp = function(page) {
	try {
        if( page.indexOf('achat') > -1 == true ) {
            page = 'achat';
        }

        var texte = null;
        $("#txtPrenom").focus();    
                
        messagesErreursFr.push("Le champ prénom est vide.<br />");
        messagesErreursEn.push("The first name field is empty.<br />");    
        
        messagesErreursFr.push("Le champ nom est vide.<br />");
        messagesErreursEn.push("The last name field is empty.<br />");
            
        messagesErreursFr.push("Le champ de la ville est vide.<br />");
        messagesErreursEn.push("The city field is empty.<br />");
        
        messagesErreursFr.push("Une province doit être sélectionnée.<br />");
        messagesErreursEn.push("Please select your province/state.<br />");

        messagesErreursFr.push("Un pays doit être sélectionné.<br />");
        messagesErreursEn.push("Please select your country.<br />");
        
        messagesErreursFr.push("Le champ courriel est vide ou ne suit pas le bon format. Exemple de format correct: vous@domaine.com.<br />");
        messagesErreursEn.push("The e-mail field is empty or doesn't follow the right syntax. Example: you@domain.com.<br />");                
        
        messagesErreursFr.push("Le champ demande est vide.<br />");
        messagesErreursEn.push("The question field is empty.<br />");
        
        messagesErreursFr.push("Le code de sécurité est vide ou invalide.<br />");
        messagesErreursEn.push("The security code is empty or invalid.<br />");                
        
        messagesErreursFr.push("Le champ du numéro de téléphone est vide.<br />");
        messagesErreursEn.push("The phone number field is empty.<br />");      
        
        // Autres messages
        messagesErreursFr.push("Analyse de votre demande en cours....<br />");
        messagesErreursEn.push("Analyzing your question...<br />");    
        
        messagesErreursFr.push("Commencez à taper votre question.");
        messagesErreursEn.push("Please start typing your question.");    
        
        if( langue =='fr' ) {
            texte = messagesErreursFr[6];
        } else {
            texte = messagesErreursEn[6];
        }
        
        try {
            afficherErreurCallbackPost(arrChampsErreurs, arrChampsMessages);
        } catch(e) { }
    
    }  catch (e) { }
};


var setLangueJS = function(lang) {
	langue = lang;
};


function checkEnter(e) {
	var characterCode;
	
	try {
		if(e && e.which) {
			e = e;
			characterCode = e.which;
		} else{
			e = event;
			characterCode = e.keyCode;
		}
		
		// Vérification du code du caractère
		if(characterCode == 13 && champFocus == 'txtRecherche' ) {
			lancerRecherche();
			return false;
		} else {
			return true;
		}	
	} catch(e) { }
}

// ========================================================== //
// ================ Validation du formulaire de contact ================ //
// ========================================================== //
var validerEmail = function(str) {
	var patternEmail = new RegExp(/^[\w\.\-]+@([\w\-]+\.)+[a-zA-Z]+$/);
	return (patternEmail.test(str) );
};

var validerFrmContact = function() {
	var totalErreur = 0;
	var strMessage = '';
	
	if( $("#txtPrenom").attr('value') == '' ) {
		afficherChampErreur("txtPrenom");
		totalErreur++;
		if( langue == 'fr') {
			strMessage += messagesErreursFr[0];
		} else {
			strMessage += messagesErreursEn[0];
		}
	} else {
		setBackgroundNormal("txtPrenom");
	}	
	
	if( $("#txtNom").attr('value') == '' ) {
		afficherChampErreur("txtNom");
		totalErreur++;
		if( langue == 'fr') {
			strMessage += messagesErreursFr[1];
		} else {
			strMessage += messagesErreursEn[1];
		}
	} else {
		setBackgroundNormal("txtNom");
	}
	
	if( $("#txtVille").attr('value') == '' ) {
		afficherChampErreur("txtVille");
		totalErreur++;
		if( langue == 'fr') {
			strMessage += messagesErreursFr[2];
		} else {
			strMessage += messagesErreursEn[2];
		}	
	} else {
		setBackgroundNormal("txtVille");
	}
		
	if( $("#txtProvince").attr('value') == '' ) {
		afficherChampErreur("txtProvince");
		totalErreur++;
		if( langue == 'fr') {
			strMessage += messagesErreursFr[3];
		} else {
			strMessage += messagesErreursEn[3];
		}	
	} else {
		setBackgroundNormal("txtProvince");
	}	
	
	if( document.getElementById("txtPays").selectedIndex == 0 ) {
		afficherChampErreur("txtPays");
		totalErreur++;
		if( langue == 'fr') {
			strMessage += messagesErreursFr[4];
		} else {
			strMessage += messagesErreursEn[4];
		}	
	} else {
		setBackgroundNormal("txtPays");
	}
	
	// Si on a un courriel, on suit la validation
	if( $("#txtTelephone").attr('value') == '' ) {
		afficherChampErreur("txtTelephone");
		totalErreur++;
		if( langue == 'fr') {
			strMessage += messagesErreursFr[8];
		} else {
			strMessage += messagesErreursEn[8];
		}		
	} else {
		setBackgroundNormal("txtTelephone");
	}
	
	// Si on a un courriel, on suit la validation
	if( $("#txtCourriel").attr('value') == '' || !validerEmail($("#txtCourriel").attr('value')) ) {
		afficherChampErreur("txtCourriel");
		totalErreur++;
		if( langue == 'fr') {
			strMessage += messagesErreursFr[5];
		} else {
			strMessage += messagesErreursEn[5];
		}		
	} else {
		setBackgroundNormal("txtCourriel");
	}
	
	if( $("#txtDemande").attr('value') == '' ) {
		afficherChampErreur("txtDemande");
		totalErreur++;
		if( langue == 'fr') {
			strMessage += messagesErreursFr[6];
		} else {
			strMessage += messagesErreursEn[6];
		}	
	} else {
		setBackgroundNormal("txtDemande");
	}
	
	if( $("#txtCodeSecurite").attr('value') == '' ) {
		afficherChampErreur("txtCodeSecurite");
		totalErreur++;
		if( langue == 'fr') {
			strMessage += messagesErreursFr[7];
		} else {
			strMessage += messagesErreursEn[7];
		}
	} else {
		setBackgroundNormal("txtCodeSecurite");
	}
	
	if( totalErreur > 0 ) {
		// On affiche les champs en erreur et le message d'erreur général
		afficherErreur(strMessage);
	} else {
		masquerMessageErreur();
		//$("#btnEnvoyer").setAttribute("value", "Veuillez patienter...");
		//$("#btnEnvoyer").disabled = 'disabled';
		$("#frmDemandeContact").submit();
	}
};

// ========================================================== //
// ================= Fonctions de gestion des erreurs ================ //
// ========================================================== //
var masquerMessageErreur = function() {
    $("#messageErreur").css("background-color", '');
    $("#messageErreur").css("border", '');
    $("#messageErreur").css("padding", '');
    $("#messageErreur").css("margin-bottom", '');
	$("#messageErreur").innerHTML = '&nbsp;';
};

var setBackgroundNormal = function(id) {
    document.getElementById(id).className = '';
    document.getElementById("txt_" + id).className = 'formContact';  
};

var afficherChampErreur = function(id) {
	document.getElementById(id).className = 'champErreur';
    document.getElementById("txt_" + id).className = 'texteGras';
};

var afficherErreur = function(str) {
	
	// Si on a le second argument optinnel qui est le ID du div
	// du message d'erreur, on l'affiche dans ce id
	var div = '';
	
	if (arguments.length > 1) {
		div = arguments[1];	 // 1 car le 0 est la string à afficher
	} else {
		div = 'messageErreur';
	}
	
	masquerMessageErreur();
	
	var str = '<table width=\"95%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr>'
	+ '<td width=\"3%\" style=\"padding-right: 10px;\"><img id=\"img_Erreur\" src=\"img/icon_error_40x40.gif\" />'
	+ '</td><td width=\"97%\">'+ str +'</td></tr></table>';	
	
    var obj = document.getElementById(div);
    obj.style.backgroundColor = "#ffffcc";
    obj.style.border = "1px solid #aaaaaa";
    obj.style.marginBottom = "20px";
    obj.innerHTML = str;
    obj.className = 'erreur';
};

var afficherErreurCallbackPost = function(arrChampErr, arrMessage) {
	
	for(var i=0; i < arrChampErr.length; i++) {
		
		var messageErreur = '';
		
		afficherChampErreur(arrChampErr[i]);
		
		if( langue == 'fr' ) {
			messageErreur += messagesErreursFr[arrMessage[i]];
		} else {
			messageErreur += messagesErreursEn[arrMessage[i]];
		}
	}
	
	afficherErreur(messageErreur);
};

function getElementsByAttribute(attribute, attributeValue)
{
  var elementArray = new Array();
  var matchedArray = new Array();

  if (document.all)
  {
    elementArray = document.all;
  }
  else
  {
    elementArray = document.getElementsByTagName("*");
  }

  for (var i = 0; i < elementArray.length; i++)
  {
    if (attribute == "class")
    {
      var pattern = new RegExp("(^| )" + attributeValue + "( |$)");

      if (pattern.test(elementArray[i].className))
      {
        matchedArray[matchedArray.length] = elementArray[i];
      }
    }
    else if (attribute == "for")
    {
      if (elementArray[i].getAttribute("htmlFor") || elementArray[i].getAttribute("for"))
      {
        if (elementArray[i].htmlFor == attributeValue)
        {
          matchedArray[matchedArray.length] = elementArray[i];
        }
      }
    }
    else if (elementArray[i].getAttribute(attribute) == attributeValue)
    {
      matchedArray[matchedArray.length] = elementArray[i];
    }
  }

  return matchedArray;
}




// ======================= Afficher/Masquer modèles ====================== /
var switchAff = function(idConteneur) {
	
	var arrayConteneurs = new Array('mod18x22_int', 'mod18x22_ext', 'mod24x22_int', 'mod24x22_ext', 'mod34x22_int', 'mod34x22_ext');
	var tempNomVue = '';
	
	for( var i =0; i < arrayConteneurs.length; i++ ) {
		
		if( arrayConteneurs[i] == idConteneur ) {
			$("#" + arrayConteneurs[i]).css("display", "block");
		} else {
			$("#" + arrayConteneurs[i]).css("display", "none");
		}
		
		tempNomVue = '';
	}	
};

var selectThis = function(idobj) {
	$("#conteneurTabs").css("display", "none");
	$("#navigationTab").css("display", "block");
	$("#titreModele").innerHTML = '';
	switch(idobj) {
		case '1':
		case '2':
			$("#navigationTab").css("background-color", "#edffdf");
			
			if( idobj == '1')
				$("#titreModele").innerHTML = "Modèles 18' x 22' vue extérieure";
			else
				$("#titreModele").innerHTML = "Modèles 18' x 22' vue intérieure";
		break;
		case  '3':
		case  '4':
			$("#navigationTab").css("background-color", "#fffbbf");
			
			if( idobj == '3')
				$("#titreModele").innerHTML = "Modèles 24' x 22' vue extérieure";
			else
				$("#titreModele").innerHTML = "Modèles 24' x 22' vue intérieure";
			
		break;
		case  '5':
		case  '6':
			$("#navigationTab").css("background-color", "#dff3ff");
			
			if( idobj == '5')
				$("#titreModele").innerHTML = "Modèles 34' x 22' vue extérieure";
			else
				$("#titreModele").innerHTML = "Modèles 34' x 22' vue intérieure";
			
			
		break;
	}	
};

var retourAffichageTabs = function() {
	$("#conteneurTabs").css("display", "block");
	$("#navigationTab").css("display", "none"); 	
	
	var arrayConteneurs = new Array('mod18x22_int', 'mod18x22_ext', 'mod24x22_int', 'mod24x22_ext', 'mod34x22_int', 'mod34x22_ext');
	
	for( var i =0; i < arrayConteneurs.length; i++ ) {
		$("#" + arrayConteneurs[i]).css("display", "none");
	}	
	
	
};

// ======================= Menu caractéristiques ====================== /
var menuCaract = function() {
	// subNavCaract
	$("#subNavCaract").toggle();
};

var popUpConseiller = function(lang) {
	window.open('https://secure.habitaflex.com/SoumissionsContratsFrance/MenuDistributeur.php?lang='+lang, 'titre', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=0,width=1000,height=750,left = 122,top = 98.5');
};

var popUpPartenaires = function(lang) {
	window.open('https://secure.habitaflex.com/Distributeurs/loginProspects.php?lang='+lang, 'titre', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=0,width=1000,height=750,left = 122,top = 98.5');
};

var showMenuProd = function() {
	var etat = $("#autresProduits").css("display");
	if( etat == '' || etat == 'none' ) {
		$("#autresProduits").css("display", "block");
		//new Effect.BlindDown("autresProduits");
		$("#icoMenu").src = "img/icoMenuOn.jpg";
	} else {
		$("#autresProduits").css("display", "none");
		//new Effect.BlindUp("autresProduits");
		$("#icoMenu").src = "img/icoMenuOff.jpg";
	}
};

var fermerAutresProd = function() {
	$("#autresProduits").css("display", "none");
	$("#icoMenu").src = "img/icoMenuOff.jpg";
};

// Switch de langue
var switchLangue = function(lang) {
	var ajax = false;
	
	if(window.XMLHttpRequest) {
		try {
			ajax = new XMLHttpRequest();
		} catch(e) {
			ajax = false;
		}
	} else if(window.ActiveXObject) {
		try {
			ajax = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try {
				ajax = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e) {
				ajax = false;
			}
		}
	}
	
	if(ajax) {                
		ajax.open("GET", "setLangue.php?lang="+lang, false);
		try {
			ajax.send(null);
			window.location.reload();
		} catch(e) { }
	}
};

var masquervid = function() {
    $("#VideoPlayback").css("display", "none");
};

var affvid = function() {
    try {
        $("#VideoPlayback").css("display", "block");
    } catch(e) { }
};