// JavaScript Document

	//Initialisations des variables globales
	var LnkWcbVarTelephone = "";
	var LnkWcbVarForm = "";
	var LnkWcbVarFormStatus = "";
	var LnkWcbVarUserStatus = "";
	var LnkWcbVarBureauxStatus = "";
	var LnkWcbDivContentActif = "";
	var LnkWcbVarDate = "";
	var LnkWcbVarHeure = "";
	var messageErreur = "";


	//Initialisations des textes pour l'internaute
	var LnkWcbVarTxtUserInit = "Initialisation, merci de patienter ...";
	var LnkWcbVarTxtUserChargement = "Chargement en cours, merci de patienter ...";
	var LnkWcbVarTxtUserAppelEnCours = "Appel en cours ...";
	var LnkWcbVarTxtUserBtn = "Rappel imm&eacute;diat et gratuit";
	var LnkWcbVarTxtUserMsgBienvenue = LnkWcbVarSociete+" vous souhaite la bienvenue.";
	var LnkWcbVarTxtUserAttente = "merci de patienter ...";
	var LnkWcbVarTxtUserEchec = "Nous ne pouvons r&eacute;pondre &agrave; votre demande, veuillez <a href=\"javascript:;\" onClick=\"initLnkWcb('"+LnkWcbVarMode+"');\">cliquer ici</a> pour renouvelez votre appel.";
	var LnkWcbVarTxtUserComEnCours = "Communication en cours,  merci de patienter ...";
	var LnkWcbVarTxtUserComEtablie = "La communication est &eacute;tablie.";
	var LnkWcbVarTxtUserRaccroche = "Vous avez interrompu la communication.";
	var LnkWcbVarTxtUserInconnu = "";
	var LnkWcbVarTxtUserEnd = LnkWcbVarSociete+" vous remercie de votre appel.";
	var LnkWcbVarTxtUserDelayOk = "Votre demande de rappel a bien &eacute;t&eacute; enregistr&eacute;e.";
	var LnkWcbVarTxtUserDelayNo = "Votre demande de rappel n'a pas &eacute;t&eacute; enregistr&eacute;e. <a href=\"javascript:;\" onClick=\"initLnkWcb('"+LnkWcbVarMode+"');\">Cliquer ici</a> pour renouvelez votre demande.";
	//Initialisations des textes d'erreur
	var LnkWcbVarTxtErrorAppelEnCours = "Un appel est d&eacute;j&agrave; en cours";
	var LnkWcbVarTxtErrorCauseFerme = "Nous ne pouvons vous r&eacute;pondre actuellement, nous vous contacterons dans les plus brefs d&eacute;lais.";
	var LnkWcbVarTxtErrorFieldDateNull = "- Vous devez renseigner une date de rappel.<br/>";
	var LnkWcbVarTxtErrorFieldDateFerme = "- Les bureaux sont ferm&eacute;s &agrave; la date choisie.<br/>";
	var LnkWcbVarTxtErrorFieldTel = "- Vous devez renseigner votre num&eacute;ro de t&eacute;l&eacute;phone.<br/>";



	function addScriptTag(id, type, src, language,code) {
		try {
			var head = document.getElementsByTagName("head")[0];
			var sc = document.createElement("script");
			if (id != null && id != undefined && id != "") {
				sc.id = id;
			}
			if (type != null && type != undefined && type != "") {
				sc.type = type;
			}
			if (language != null && language != undefined && language != "") {
				sc.language = language;
			}
			sc.src = src;
			head.appendChild(sc);
			
		} catch (exc) {
			alert(exc);
		}
	}
	
	
	function addLinkTag(id, rel, type, href) {
		try {
			var head = document.getElementsByTagName("head")[0];
			var l = document.createElement("link");
			if (id != null && id != undefined && id != "") {
				l.id = sId;
			}
			l.rel = rel;
			l.type = type;
			l.href = href;
			head.appendChild(l);
		} catch (exc) {
			alert(exc);
		}
	}
	
	// Initialisation du wcbFrontal et CSS
	addLinkTag(null,"stylesheet","text/css",LnkWcbVarUrl+"css/LnkWcb.css");
	addScriptTag("wcbJs","text/javascript" ,"http://wcb.linkeo.com/wcbFrontalProd.js");


	// Chargement du contenu
	function loaddata(url,divId) {
		var cible = document.getElementById(divId);
		var req = null;
		var loadurl = url;
		cible.innerHTML = "Started...";
		
		if (window.XMLHttpRequest) {
			req = new XMLHttpRequest;
		} else if (window.ActiveXObject) {
			try {
				req = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				try {
					req = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {
				}
			}
		}
		req.onreadystatechange = function () {
				cible.innerHTML = LnkWcbVarTxtUserChargement;


				if (req.readyState == 4) {
					if (req.status == 200) {
						cible.innerHTML = req.responseText;
						if (url == LnkWcbVarUrl + "wcb-differe.htm") {
							try {
								document.getElementById("LnkWcbFieldTelephone").value = LnkWcbVarTelephone;
								horaires(LnkWcbVarCodeboutonDiff);
								showLnkDate("dateDiv", "hourDiv");
								showLnkTime("hourDiv", 5);
								showComponents();

							} catch (exc) {
							}
						}
						/*verifierOuverture();*/
					} else {
						cible.innerHTML = "Error: returned status code " + req.status + " " + req.statusText;
					}
				}
				
				
		};
		req.open("GET", loadurl, true);
        req.setRequestHeader("Cache-Control","no-cache");
        req.setRequestHeader('Pragma', 'no-cache');
        req.setRequestHeader('Expires', '-2');
        req.setRequestHeader("cache-control", "no-store");
        req.send(null);
	}	
	





	// Rappel immediat
	function call(){
		try{
			LnkWcbVarForm = document.getElementById("LnkWcbForm");
			LnkWcbVarFormStatus = document.getElementById("LnkWcbFormStatus");
			LnkWcbVarUserStatus = document.getElementById("LnkWcbUserStatus");
			LnkWcbVarTelephone = document.getElementById('LnkWcbFieldTelephone').value;
			messageErreur = "";
	
			if(LnkWcbVarTelephone == null || LnkWcbVarTelephone == undefined || LnkWcbVarTelephone == "" || LnkWcbVarTelephone == "Téléphone" || LnkWcbVarTelephone.length != 10){
				messageErreur += LnkWcbVarTxtErrorFieldTel;
			}
			if (messageErreur != "") {
				LnkWcbVarFormStatus.style.display ="block";
				LnkWcbVarFormStatus.innerHTML =messageErreur;
				setTimeout("masqueFormStatus()",4000);
				return;
			}else {
				LnkWcbVarUserStatus.style.display ="block";
				LnkWcbVarUserStatus.innerHTML ="";
				LnkWcbVarForm.style.display ="none";
			}
			callMeBack(LnkWcbVarCodebouton,LnkWcbVarTelephone, 'LnkWcbUserStatus', 'retour', null, 'LnkWcbForm', 'fonctionPourDebordement');
		}
		catch(exc){
			alert(exc);
			
		}
	}

	//Fonction de retour donnant le résultat de la demande de rappel immediat.
	//Le nom de cette fonction est spécifiée en paramètre de la fonction callMeBack.
	function retour(response,options){
		try{
			LnkWcbVarUserStatus = document.getElementById("LnkWcbUserStatus");
			var obj = response.responseObj;
			if(obj != null && obj != undefined){
				var a = obj.a;
				var aStatus = obj.aStatus;
				var u = obj.u;
				var uStatus = obj.uStatus;
				if(uStatus == "APPEL_EN_COURS"){
					u = LnkWcbVarTxtUserAppelEnCours;
				}
				else if(uStatus == "MESSAGE_BIENVENUE"){
					u = LnkWcbVarTxtUserMsgBienvenue;
				}
				else if(uStatus == "MUSIQUE_ATTENTE"){
					u = LnkWcbVarTxtUserAttente;
				}
				else if(uStatus == "ECHEC_APPEL"){
					u = LnkWcbVarTxtUserEchec;
				}
				else if(uStatus == "COMMUNICATION_EN_COURS"){
					u = LnkWcbVarTxtUserComEnCours;
				}
				else if(uStatus == "COMMUNICATION_ETABLIE"){
					u = LnkWcbVarTxtUserComEtablie;
				}
				else if(uStatus == "RACCROCHE"){
					u = LnkWcbVarTxtUserRaccroche;
				}
				else if(uStatus == "INCONNU"){
					u = LnkWcbVarTxtUserInconnu;
				}
				else if(uStatus != null && uStatus != undefined){
					LnkWcbVarUserStatus.innerHTML = u;
				}
				LnkWcbVarUserStatus.innerHTML = u;

				//status final de l'appel
				var status = obj.status;
				if(status != null && status != undefined){
					//alert(status);
				}
				//cause de l'éventuel échec de l'appel
				var cause = obj.cause;
				if(cause != null && cause != undefined){
					//LnkWcbVarUserStatus.innerHTML = cause; 	
				}
				if(obj.ended == "1"){
					LnkWcbVarUserStatus.innerHTML = LnkWcbVarTxtUserEnd;
				}
			}
		}
		catch(exc){
			
		}
	}
	
	
	
	//Récupère les exceptions wcb
    function handleLnkWcbExc(exc, excObj) {
		LnkWcbVarUserStatus = document.getElementById("LnkWcbUserStatus");
        try {
            if (excObj.cause == "APPEL_EN_COURS") {
                LnkWcbVarUserStatus.innerHTML = LnkWcbVarTxtErrorAppelEnCours;
            } else if (excObj.cause == "CAUSE_FERME") {
                LnkWcbVarUserStatus.innerHTML = LnkWcbVarTxtErrorCauseFerme;
            } else {
                //alert(exc);
            }
        } catch (exc) {
        }
    }
	

	// Rappel differe
	function delayCall(){
		try{
			
			LnkWcbVarForm = document.getElementById("LnkWcbForm");
			LnkWcbVarFormStatus = document.getElementById("LnkWcbFormStatus");
			LnkWcbVarUserStatus = document.getElementById("LnkWcbUserStatus");
			LnkWcbVarTelephone = document.getElementById('LnkWcbFieldTelephone').value;
			LnkWcbVarDate = getLnkDate('dateDiv');
			LnkWcbVarHeure = document.getElementById('hourDiv_hours').options[0].value;
			messageErreur = "";
			
			if(LnkWcbVarTelephone == null || LnkWcbVarTelephone == undefined || LnkWcbVarTelephone == "" || LnkWcbVarTelephone == "Téléphone" || LnkWcbVarTelephone.length != 10){
				messageErreur += LnkWcbVarTxtErrorFieldTel;
			}
			if(LnkWcbVarDate == null || LnkWcbVarDate == undefined || LnkWcbVarDate == "" || LnkWcbVarDate == " --:--"){
				messageErreur += LnkWcbVarTxtErrorFieldDateNull;
			}
			if(LnkWcbVarDate != " --:--" && LnkWcbVarHeure == "--"){
				messageErreur += LnkWcbVarTxtErrorFieldDateFerme;
			}
			if (messageErreur != "") {
				LnkWcbVarFormStatus.style.display ="block";
				LnkWcbVarFormStatus.innerHTML =messageErreur;
				setTimeout("masqueFormStatus()",4000);
				return;
			}else {
				LnkWcbVarUserStatus.style.display ="block";
				LnkWcbVarUserStatus.innerHTML ="";
				LnkWcbVarForm.style.display ="none";
			}
			delayCallBack(LnkWcbVarCodeboutonDiff,LnkWcbVarTelephone,LnkWcbVarDate,null,'retourDelayCallBack');
			
		}
		catch(exc){
			alert(exc);
		}
	}


	//Fonction de retour donnant le résultat de la demande de rappel différé.
	//Le nom de cette fonction est spécifiée en paramètre de la fonction delayCallBack.
	function retourDelayCallBack(xmlResponse,options){
		LnkWcbVarUserStatus = document.getElementById("LnkWcbUserStatus");
		try{
			hideMask(null);
			//Si la demande a réussi alors un callId est envoyé.
			var callId = xmlResponse.responseObj.callId;
			if(callId != null && callId != undefined && callId != ""){
				LnkWcbVarUserStatus.innerHTML = LnkWcbVarTxtUserDelayOk;
				return;
			}
			LnkWcbVarUserStatus.innerHTML = LnkWcbVarTxtUserDelayNo;
		}
		catch(exc){
		}
	}

	// Debordement d'appel
	function fonctionPourDebordement(response,options){
		try{
			var obj = response.responseObj;
			if(obj != null && obj != undefined){
				var type = obj.debordementType;
				var valeur = obj.debordementValue;
				if(type == "URL"){
					if(valeur != null && valeur != undefined){
						loaddata(LnkWcbVarUrl+'wcb-differe.htm','LnkWcb');
						return;
					}
				}
				if(type == "SIMPLE"){
					if(valeur != null && valeur != undefined){
						document.getElementById("LnkWcbUserStatus").innerHTML =valeur;
						return;
					}
				}
			}
		}
		catch(exc){
		   
		}
	}


    function verifierOuverture() {
        try {
            estOuvert(LnkWcbVarCodebouton);
        } catch (exc) {
            alert(exc);
        }
    }

    function retourEstOuvert(response) {
        try {
			
			//Indique si le canal est actif
            var estActif = response.estActif;
			//Indique si le canal peut recevoir des appels
            var peutRecevoirAppel = response.peutRecevoirAppel;
			//Indique si le canal est ouvert
            var estOuvert = response.estOuvert;
			//Indique l'état d'ouverture du canal
			//Si estOuvert=true alors etatOuverture="OUVERT"
			//Sinon etatOuverture = "FERME" ou "FERIE"
            var etatOuverture = response.etatOuverture;
			if (estActif == false) {
				//alert("test");
				// Execution du script pour les bureaux fermés
				LnkWcbVarMode = "canalInactif";
            } else if (estOuvert == false) {
				// Execution du script pour les bureaux fermés
				LnkWcbVarMode = "bureauxFermes";
            } 
			// Initialisation Module Callback
			initLnkWcb(LnkWcbVarMode);
        } catch (exc) {
            alert(exc);
        }
    }



	// Formulaire, saisie chiffres uniquement
	function ValidSaisieNombre(champ){
	   var chiffres = new RegExp("[0-9]");
	   var verif;
	   for(i=0; i<champ.value.length; i++)
	   {
		  verif = chiffres.test(champ.value.charAt(i));
		  if(verif == false){champ.value = champ.value.substr(0,i) + champ.value.substr(i+1,champ.value.length-i+1); i--;}
	   }
	}
	
	// Ouverture popup pour mode btnPop
	function openwcb(url) {
		window.open(url,"LinkeoWcbWindow","width="+LnkWcbLargeur+",height="+LnkWcbHauteur+",top=5,left=5,toolbar=no,location=no,directories=no,status=no,scrollbars=no,resizable=no");
	}

	// cache la zone LnkWcbFormStatus
	function masqueFormStatus() {
		document.getElementById("LnkWcbFormStatus").style.display ="none";	
	}
		
	// Initialisation du mode
	function initLnkWcb(mode){
		LnkWcbDivContentActif = document.getElementById("LnkWcb");
		//alert(LnkWcbVarMode);
		if(mode == "btnInte"){
			LnkWcbDivContentActif.innerHTML = "<a href=\"javascript:;\" id=\"LnkWcbLink\" onclick=\"initLnkWcb('fullInte');\">"+LnkWcbVarTxtUserBtn+"</a>";
		}
		if(mode == "fullInte"){
			loaddata(LnkWcbVarUrl+'wcb-immediat.htm','LnkWcb');
		}
		if(mode == "fullInteDiffere"){
			loaddata(LnkWcbVarUrl+'wcb-differe.htm','LnkWcb');
		}
		if(mode == "bureauxFermes"){
			loaddata(LnkWcbVarUrl+'wcb-differe.htm','LnkWcb');
		}
		if(mode == "canalInactif"){
			LnkWcbDivContentActif.innerHTML = "";
			document.getElementById("LnkWcb").style.display ="none";
		}
		if(mode == "btnPop"){
			if (! LnkWcbVarCodeboutonDiff){
				LnkWcbVarCodeboutonDiff = "";
			}
			LnkWcbDivContentActif.innerHTML = "<a href=\" "+LnkWcbVarUrl+"wcb-pop.htm?SOCIETE="+LnkWcbVarSociete+"&CODEBOUTON="+LnkWcbVarCodebouton+"&CODEBOUTONDIFF="+LnkWcbVarCodeboutonDiff+"&  \" rel=\"shadowbox;width=420;height=400\" id=\"LnkWcbLink\" \">"+LnkWcbVarTxtUserBtn+"</a>";
			
		}
	}
	
	
	
	
	// Initialisation LnkWcb
	document.write('<div id="LnkWcb">'+LnkWcbVarTxtUserInit+'</div>');
	initLnkWcb(LnkWcbVarMode);
	

	

