// JavaScript Document

	//Initialisations variables
	var LnkWcbVarTelephone = "";


	function addScriptTag(id, type, src, language) {
		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(null,"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 = "Chargement en cours, merci de patienter ...";


				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) {
							}
						}
					} else {
						cible.innerHTML = "Error: returned status code " + req.status + " " + req.statusText;
					}
				}
				
				
		};
		req.open("GET", loadurl, true);
		req.send(null);
	}	
	


	// Rappel immediat
	function call(){
		try{
			var LnkWcbVarForm = document.getElementById("LnkWcbForm");
			var LnkWcbVarFormStatus = document.getElementById("LnkWcbFormStatus");
			var LnkWcbVarUserStatus = document.getElementById("LnkWcbUserStatus");
			LnkWcbVarTelephone = document.getElementById('LnkWcbFieldTelephone').value;
			var messageErreur="";
	
			if(LnkWcbVarTelephone == null || LnkWcbVarTelephone == undefined || LnkWcbVarTelephone == "" || LnkWcbVarTelephone == "Téléphone" || LnkWcbVarTelephone.length != 10){
				messageErreur += '- Vous devez renseigner votre num&eacute;ro de t&eacute;l&eacute;phone.<br/>';
			}
			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{
			
			var obj = response.responseObj;
			if(obj != null && obj != undefined){
				var u = obj.u;
				if(u == "appel en cours"){
					u = "Appel en cours ...";
				}
				else if(u == "message de bienvenue"){
					u = LnkWcbVarSociete+" vous souhaite la bienvenue.";
				}
				else if(u == "musique d'attente"){
					u = "merci de patienter ...";
				}
				else if(u == "échec appel"){
					u = "Nous ne pouvons répondre à votre demande, veuillez <a href=''>cliquer ici</a> pour renouvelez votre appel.";
				}
				else if(u == "communication en cours"){
					u = "Communication en cours,  merci de patienter ...";
				}
				else if(u != null && u != undefined){
					document.getElementById("LnkWcbUserStatus").innerHTML = u;
				}
				document.getElementById("LnkWcbUserStatus").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){
					//document.getElementById("userStatus").innerHTML = cause; 	
				}
				if(obj.ended == "1"){
					document.getElementById("LnkWcbUserStatus").innerHTML = LnkWcbVarSociete+" vous remercie de votre appel."	
				}
			}
		}
		catch(exc){
			
		}
	}

	
	//Récupère les exceptions wcb
	function handleLnkWcbExc(exc,excObj){
			try{
				alert(exc);
				
			}
			catch(exc){
			}
	}

	

	// Rappel differe
	function delayCall(){
		try{
			
			var LnkWcbVarForm = document.getElementById("LnkWcbForm");
			var LnkWcbVarFormStatus = document.getElementById("LnkWcbFormStatus");
			var LnkWcbVarUserStatus = document.getElementById("LnkWcbUserStatus");
			LnkWcbVarTelephone = document.getElementById('LnkWcbFieldTelephone').value;
			var LnkWcbVarDate = getLnkDate('dateDiv');
			var LnkWcbVarHeure = document.getElementById('hourDiv_hours').options[0].value;
			var messageErreur="";
			
			if(LnkWcbVarTelephone == null || LnkWcbVarTelephone == undefined || LnkWcbVarTelephone == "" || LnkWcbVarTelephone == "Téléphone" || LnkWcbVarTelephone.length != 10){
				messageErreur += '- Vous devez renseigner votre num&eacute;ro de t&eacute;l&eacute;phone.<br/>';
			}
			if(LnkWcbVarDate == null || LnkWcbVarDate == undefined || LnkWcbVarDate == "" || LnkWcbVarDate == " --:--"){
				messageErreur += '- Vous devez renseigner une date de rappel.<br/>';
			}
			if(LnkWcbVarDate != " --:--" && LnkWcbVarHeure == "--"){
				messageErreur += '- Les bureaux sont fermés à la date que vous avez choisi.<br/>';
			}
			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){
		var 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 ="Votre demande de rappel a bien été enregistrée.";
				return;
			}
			LnkWcbVarUserStatus.innerHTML ="Votre demande de rappel n'a pas été enregistrée.";
		}
		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){
		   
		}
	}

	//Fonction de retour pour savoir si les centres d'appels sont ouverts pour le canal donné
	function retourEstOuvert(resp){
		try{
			if(resp.estOuvert == true){
				return;
			}
			//Cas où les bureaux sont fermés
			var msg = "Les bureaux sont actuellement fermés";
		}
		catch(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){
		var LnkWcbDivContentActif = document.getElementById("LnkWcb");
		if(mode == "btnInte"){
			LnkWcbDivContentActif.innerHTML = "<a href=\"javascript:;\" id=\"LnkWcbLink\" onclick=\"loaddata(\'"+LnkWcbVarUrl+"wcb-immediat.htm\',\'LnkWcb\');\">Rappel immédiat et gratuit</a>";
		}
		if(mode == "fullInte"){
			loaddata(LnkWcbVarUrl+'wcb-immediat.htm','LnkWcb');
		}
		if(mode == "fullInteDiffere"){
			loaddata(LnkWcbVarUrl+'wcb-differe.htm','LnkWcb');
		}
		if(mode == "btnPop"){
			if (LnkWcbVarCodeboutonDiff == null && LnkWcbVarCodeboutonDiff == undefined){
				var LnkWcbVarCodeboutonDiff = "";
			}
			LnkWcbDivContentActif.innerHTML = "<a href=\"javascript:;\" id=\"LnkWcbLink\" onclick=\"openwcb('"+LnkWcbVarUrl+"wcb-pop.htm?SOCIETE="+LnkWcbVarSociete+"&CODEBOUTON="+LnkWcbVarCodebouton+"&CODEBOUTONDIFF="+LnkWcbVarCodeboutonDiff+"&')\">Rappel immédiat et gratuit</a>";
		}
	}
	
	// Initialisation LnkWcb
	document.write('<div id="LnkWcb">Initialisation...</div>');
	initLnkWcb(LnkWcbVarMode);
