
// Envoi d'une requete en ajax
function makeRequest(url, divContenant, fonctionOnReadyStateChange) {
	makeRequestGlobal(url, divContenant, fonctionOnReadyStateChange, true)
}

// Envoi d'une requete en ajax
function makeRequestGlobal(url, divContenant, fonctionOnReadyStateChange, isFade) {
    var httpRequest = false;
    
    if (window.XMLHttpRequest) { // Mozilla, Safari,...
        httpRequest = new XMLHttpRequest();
        if (httpRequest.overrideMimeType) {
            httpRequest.overrideMimeType('text/xml');
        }
    }
    else if (window.ActiveXObject) { // IE
        try {
            httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e) {
            try {
                httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e) {}
        }
    }

    if (!httpRequest) {
        alert('Abandon :( Impossible de creer une instance XMLHTTP');
        return false;
    }
    //httpRequest.onreadystatechange = function() { eval(fonctionOnReadyStateChange + (fonctionOnReadyStateChange.indexOf('(')>-1?",":"(")+ 'httpRequest)'); };
    httpRequest.onreadystatechange = function() { eval(alertContentsGlobal(httpRequest, fonctionOnReadyStateChange)) };
    if (isFade == true) {
    	fade(divContenant);
    }
    
    httpRequest.open('GET', url, true);
    httpRequest.setRequestHeader("ajaxRequest", "true");
    httpRequest.send(null);
}



// Est-ce que l'utilisateur a cliqué sur enter
function enterKey(event) {
	if ((event.which && event.which == 13) || (event.keyCode && event.keyCode == 13)) {
		return true;
	}
	else {
		return false;
	}
}

function getElementsByClassName(node, classname){
    var a = [];
    var re = new RegExp('\\b' + classname + '\\b');
    var els = node.getElementsByTagName("*");
    for(var i=0, j = els.length ; i < j ; i++)
        if(re.test(els[i].className))a.push(els[i]);
    return a;
}

function alertContentsGlobal(httpRequest, fonctionOnReadyStateChange) {
	if (httpRequest.readyState == 4) {	
		if (httpRequest.getResponseHeader('pleinePageLocation') != null && httpRequest.getResponseHeader('pleinePageLocation').length!=0) {
			document.location.href = httpRequest.getResponseHeader('pleinePageLocation');
		}
        else if (httpRequest.status == 200) {
			eval(fonctionOnReadyStateChange + (fonctionOnReadyStateChange.indexOf('(')>-1?",":"(")+ 'httpRequest)');
		}
	}
}

function alertContentsConseils(fadeidx, alias, httpRequest) {
    if (httpRequest.readyState == 4) {
        if (httpRequest.status == 200) {
			// Remplacer le contenu du bloc
			var blocConseils=document.getElementById('blocConseils'+alias+""+fadeidx)
			if (blocConseils!=null) {
            	blocConseils.innerHTML = httpRequest.responseText;
            }
	    } else {
            alert('Un probleme est survenu avec la requete.' + httpRequest.status);
        }
        // Supprimer l'image d'attente
		unfade(fadeidx);
    }
}

function getConseils(fadeidx,alias,key,serviceId){
	makeRequest("/conseils/AfficheConseils.do?serviceId="+serviceId+"&key="+key, fadeidx, "alertContentsConseils('"+fadeidx+"','"+alias+"'");
}




function alertContentsRegionAdherent(fadeidx,alias,httpRequest) {
    if (httpRequest.readyState == 4) {
        if (httpRequest.status == 200) {
			// Remplacer le contenu du bloc
	        var blocRegionAdherent=document.getElementById('blocRegionAdherent'+alias+""+fadeidx)
			if (blocRegionAdherent!=null) {
            	blocRegionAdherent.innerHTML = httpRequest.responseText;
            }	    }
        else {
            alert('Un probleme est survenu avec la requete.' + httpRequest.status);
        }
        // Supprimer l'image d'attente
		unfade(fadeidx);
    }
}



function getRegionAdherent(fadeidx,alias,key,serviceId){
	makeRequest("/regionadherent/AfficheRegionAdherent.do?serviceId="+serviceId+"&key="+key, fadeidx, "alertContentsRegionAdherent("+fadeidx+",'"+alias+"'");
}
	
	
// Fonction traitant la reponse du serveur
function alertContentsAlerteV2(fadeidx,alias,httpRequest) {
    if (httpRequest.readyState == 4) {
        if (httpRequest.status == 200) {
			var blocAlerteV2=document.getElementById('listeAlertes'+alias+""+fadeidx)
			if (blocAlerteV2!=null) {
            	blocAlerteV2.innerHTML = httpRequest.responseText;
            }
            
			unfade(fadeidx);
		}
	}
}


function getAlerteV2(fadeidx,alias,noeudId,type){
	makeRequest("/alerteV2/ViewAlertes.do?alias="+alias+"&noeudId="+noeudId+"&type="+type, fadeidx, "alertContentsAlerteV2("+fadeidx+",'"+alias+"'");
}

//fonction qui recupere la chaine situee apres "contentajaxdiv"
//du noeud parent a celui passe en parametre
function getFadeIdxByChild(childId){
	var childNode = document.getElementById(childId);
	if (childNode != null){
		var parentNode = childNode.parentNode;
		if (parentNode != null){
			return parentNode.id.replace("contentajaxdiv","");
		}
	}
	return null;
}


function alertContentsNuageTag (fadeidx, alias, httpRequest) {
    if (httpRequest.readyState == 4) {
        if (httpRequest.status == 200) {
			// Remplacer le contenu du bloc
	        var blocNuageTag = document.getElementById('blocNuageTag' + alias + "" + fadeidx)
			if (blocNuageTag != null) {
            	blocNuageTag.innerHTML = httpRequest.responseText;
            }
	    }
        else {
            alert('Un probleme est survenu avec la requete.' + httpRequest.status);
        }
        // Supprimer l'image d'attente
		unfade(fadeidx);
    }
}


// Fonctions utilisees pour reloader automatiquement un service (dans le cas ou des calculs sont effectués en asynchrone)
function reloadServiceGeneric(serviceId, key, alias, noeudId, attemptNb) {
	var url = '/afficheService.do?key=' + key + '&alias=' + alias + '&noeudId=' + noeudId + '&attemptNb=' + attemptNb;
	var divContenant = 'contentajaxdiv' + serviceId;
	makeRequestGlobal(url, divContenant, "alertContentsReloadService('" + divContenant + "'", false);
}


function alertContentsReloadService(divId, httpRequest) {
    if (httpRequest.readyState == 4) {
        if (httpRequest.status == 200) {
        
        	var reload = httpRequest.getResponseHeader('reload');
        	if (reload != null && reload != '') {
        		eval(reload);
        	}
        	else {
				// Remplacer le contenu du bloc
				var contenuService = document.getElementById(divId)
				if (contenuService != null) {
	            	contenuService.innerHTML = httpRequest.responseText;
	            }
            }
		}
    }
}


function getNuageTag (fadeidx, alias, key, serviceId, noeudId) {
	makeRequest("/tag/AfficheNuageTag.do?serviceId=" + serviceId + "&key=" + key + (noeudId ? "&noeud=" + noeudId : ""), fadeidx, "alertContentsNuageTag(" + fadeidx + ", '" + alias + "'");
}

function noaccent (chaine) {
	temp = chaine.replace(/[àâä]/gi, "a");
	temp = temp.replace(/[ç]/gi, "c");
	temp = temp.replace(/[éèêë]/gi, "e");
	temp = temp.replace(/[îï]/gi, "i");
	temp = temp.replace(/[ôö]/gi, "o");
	temp = temp.replace(/[ùûü]/gi, "u");
	return temp;
}


var alreadySent = null;
function setVarSMSAlreadySent(nbSent) {
	if (nbSent == null) nbSent = 0;
	alreadySent = nbSent;
}

function sendSMS(inp, type, divid) {
	if ( !verifNumero(inp) ) {
		alert("Ce numero est incorrect, veuillez le corriger.");
		return false;
	} else {
		var number = inp.value;
		alreadySent = $.goHref2("/envoiSMS.do?num="+number+"&mobile="+type, divid, alreadySent);
	}
}

function verifNumero(elem) {
	if( elem==null ) {
		return false;
	}
	if( elem.value==null ) {
		return false;
	}
	vartest=elem.value ;
	if (isNaN(vartest) || vartest.length != 10 || (vartest.substring(0,2) != "06" && vartest.substring(0,2) != "07")) {
		elem.style.background="#F00082";
		elem.style.color="white";
		elem.style.textDecoration="blink";
		elem.focus();
		return false;
	}
	elem.style.background="white";
	elem.style.color="#666666";
	elem.style.fontWeight="normal";
	elem.style.textDecoration="none";
	elem.value = vartest;
	return true;
}
