/***************************************************
*	Fonctions générales
***************************************************/
function getXhr() {
	var xhr = null; 
	
	if(window.XMLHttpRequest) {
		xhr = new XMLHttpRequest(); 
	}
	else if(window.ActiveXObject) {
		try {
			xhr = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e) {
			xhr = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	else {
		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
		xhr = false; 
	} 
	
	return xhr
}

function implode (glue, pieces) {
	var i = '', retVal='', tGlue='';
	if (arguments.length === 1) {
		pieces = glue;
		glue = '';
	}
	if (typeof(pieces) === 'object') {
		if (pieces instanceof Array) {
			return pieces.join(glue);
		}
		else {
			for (i in pieces) {
				retVal += tGlue + pieces[i];
				tGlue = glue;
			}
			return retVal;
		}
	}
	else {
		return pieces;
	}
}

function in_array(value, array) {
	for(key in array) {
		if(array[key] == 'value') {
			return true;
		}
	}
	
	return false;
}

function confirmSupp() {
	return confirm('Êtes-vous sur de vouloir supprimer cet élément ?');
}

function generatePassword(charLength, elemID) {
	if(document.getElementById(elemID)) {
		var keychar = 'abcdefghijklmopqrstuvwxyzABCDEFGHIJKLMOPQRSTUVWXYZ0123456789';
		var password = '';
		
		for(i=1;i<=charLength;i++) {
			password += keychar[(Math.floor(Math.random() * (keychar.length - 0)) + 0)]
		}
		
		document.getElementById(elemID).value = password;
	}
}

function addOptionInSelect(select, value, text, defautSelected, selected) {
	newOption = new Option(text,  value, defautSelected, selected);
	select.options[select.length] = newOption;
}

/***************************************************
*	Fonctions "Structure"
***************************************************/
function checkStructureVal(type) {
	/*
	** Affichage de l'input "Autre" quand il sélectionne "Autre" dans la liste des structures
	*/
	
	if(type == 'Autre') {
		document.getElementById('inputAutreStructure').style.display = 'inline';
		document.getElementById('STRUCTURE_AUTRE').focus();
		document.getElementById('trEffectifStructure').style.display = 'none';
	}
	else {
		document.getElementById('inputAutreStructure').style.display = 'none';
		
		if(type == 'Réseau') {
			document.getElementById('trEffectifStructure').style.display = '';
		}
		else if(type == 'Groupe') {
			document.getElementById('trEffectifStructure').style.display = '';
		}
		else {
			document.getElementById('trEffectifStructure').style.display = 'none';
		}
	}
}

/***************************************************
*	Fonctions "Domaine"
***************************************************/
function checkDomaineVal(type) {
	/*
	** Affichage de l'input "Autre" quand il sélectionne "Autre" dans la liste des domaines
	*/
	
	if(type == 'Autre') {
		document.getElementById('AUTRE_RECHERCHE').disabled = false;
		document.getElementById('AUTRE_RECHERCHE').focus();
	}
	else {
		document.getElementById('AUTRE_RECHERCHE').disabled = true;
	}
}

function slideChoix(ID_DOMAINECHOIX) {
	/*
	** Affichage dynamique d'une liste de sous domaines à l'aide de jQuery.slideToggle
	*/
	
	var CHOIX_SLIDE = document.getElementById('CHOIX_SLIDE_'+ID_DOMAINECHOIX);
	var IMG_SLIDE = document.getElementById('IMG_SLIDE_'+ID_DOMAINECHOIX);
	var imgSplit = IMG_SLIDE.src
	imgSplit = imgSplit.split('/');
	
	srcImg = imgSplit[imgSplit.length-1];
	
	if(srcImg == 'right.png') {
		IMG_SLIDE.src = IMG_SLIDE.src.replace('right.png', 'down.png');
	}
	else {
		IMG_SLIDE.src = IMG_SLIDE.src.replace('down.png', 'right.png');
	}
	
	$('#CHOIX_SLIDE_'+ID_DOMAINECHOIX+'').slideToggle('slow');
}

/***************************************************
*	Fonctions Formulaire "Expert"
***************************************************/
function verifInscriptionExpert(formulaire) {
	/*
	** Vérification dynamique d'un formulaire.
	** Fonctionnement : rajouter l'attribut required="(String)libellé" dans
	** 	les éléments de formulaire que vous voulez rendre obligatoire.
	**	Ce script parcours les différents input & textarea qui comporte l'attribut required
	**	et check le contenu de l'élément.
	*/
	
	listeInput = formulaire.getElementsByTagName('INPUT');
	listeTextarea = formulaire.getElementsByTagName('TEXTAREA');
	VILLE = document.getElementById('VILLE');
	DEP = document.getElementById('DEP');
	REG = document.getElementById('REG');
	ACCEPTE_FORM = document.getElementById('ACCEPTE_FORM');
	liste = new Array();
	listeTxt = "";
	
	// Liste des input qui contient l'attribut required et qui sont vide
	for(i=0;i<listeInput.length;i++) {
		if(listeInput[i].attributes['required']) {
			if(!in_array(listeInput[i].attributes['name'], liste)) {
				if(listeInput[i].value == "") {
					liste.push(listeInput[i].attributes['required'].nodeValue);
				}
			}
		}
	}
	
	// Liste des textarea qui contient l'attribut required et qui sont vide
	for(i=0;i<listeTextarea.length;i++) {
		if(listeTextarea[i].attributes['required']) {
			if(!in_array(listeTextarea[i].attributes['name'], liste)) {
				if(listeTextarea[i].value == "") {
					liste.push(listeTextarea[i].attributes['required'].nodeValue);
				}
			}
		}
	}
	
	if(VILLE == 0 || VILLE == "") {
		liste.push("Ville");
	}
	if(DEP.value.length == 0) {
		liste.push("Départements");
	}
	if(REG.value.length == 0) {
		liste.push("Région");
	}
	if(!ACCEPTE_FORM.checked) {
		liste.push("Confirmation de l'exatitudes de vos informations");
	}
	
	if(liste.length > 0) {
		alert("Les champs suivants sont obligatoires : \n- "+implode("\n- ", liste));
		
		return false;
	}
	else {
		return true;
	}
}

function checkSiteWebExpert(radio) {
	/*
	** Afichage d'un input si l'expert à un site internet.
	*/
	if(radio.value == 1) {
		$('#sitewebExpert').css('display', '');
		$('#sitewebExpert').css('visibility', 'visible');
		$('#SITEWEB').focus();
	}
	else {
		$('#sitewebExpert').css('display', 'none');
		$('#sitewebExpert').css('visibility', 'hidden');
	}
}

/***************************************************
*	Fonctions "Carnet"
***************************************************/
function getListDom(listDomaines) {
	/*
	** Récupère la liste des domaines sélectionné dans la liste pour ensuite
	** 	remplir le select HTML du carnet.
	*/
	var reponse = $.ajax({
		url: 'ajax/choix.php?op=getList&liste='+escape(listDomaines)+'',
		async: false
	}).responseText;
	
	var laListe = eval(''+reponse+'');
	var formulaire = document.formEditInfo;
	var selectHTML = formulaire.DOMAINECOCHE;
	DOMAINECOCHE = document.getElementById('DOMAINECOCHE');
	DOMAINECOCHE.innerHTML = '';
	
	for(i=0;i<laListe.length;i++) {
		try {
			addOptionInSelect(selectHTML, laListe[i]['ID_DOMAINECHOIX'], laListe[i]['LIBELLE_CHOIX'], false, false);
		}
		catch(ex) {
			// On passe dans le catch mais on ne fait rien !
		}
	}
	
	if(laListe.length > 0) {
		DOMAINECOCHE.disabled = false;
	}
	else {
		addOptionInSelect(selectHTML, 0, 'Choissisez un/des domaine(s)');
		DOMAINECOCHE.disabled = true;
	}
}

function submitCarnet() {
	/*
	** Ajout de la nouvelle ligne dans le tableau du carnet.
	*/
	
	var tabCarnetValiditeStage = document.getElementById('tabCarnetValiditeStage');
	var tabCarnetContent = document.getElementById('tabCarnetContent');
	
	var newDomaine = document.getElementById('DOMAINECOCHE');
	var newDateCarnet = document.getElementById('DATECARNET');
	var newDateValidite = document.getElementById('DATEVALIDITE');
	
	var tabCell1 = '<input type="hidden" name="CARNET_DOM[]" value="'+newDomaine.value+'" />'+newDomaine.options[newDomaine.selectedIndex].text;
	var tabCell2 = '<input type="hidden" name="CARNET_DATE[]" value="'+newDateCarnet.value+'" />'+newDateCarnet.value;
	var tabCell3 = '<input type="hidden" name="CARNET_DATE_VALIDITE[]" value="'+newDateValidite.value+'" />'+newDateValidite.value;
	var tabCell4 = '<a href="javascript:;" onclick="deleteCarnet('+newDomaine.value+')"><img src="images/delete.png" alt="Supprimer cette ligne" tile="Supprimer cette ligne" /></a>';
	
	if(document.getElementById('tabCarnetContent_'+newDomaine.value)) {
		alert('Ce domaine est déjà dans la liste.');
	}
	else {
		tabCarnetContent.innerHTML += '<tr class="tabCarnetContent" id="tabCarnetContent_'+newDomaine.value+'"><td>'+tabCell1+'</td><td>'+tabCell2+'</td><td>'+tabCell3+'</td><td>'+tabCell4+'</td></tr>'
	}
}

function deleteCarnet(id) {
	var tabCarnetContent = document.getElementById('tabCarnetContent_'+id);
	tabCarnetContent.parentNode.removeChild(tabCarnetContent);
}

/***************************************************
*	Fonctions "Check Login"
***************************************************/
function checkLogin(value) {
	/*
	** Vérification du login de l'expert en ajax.
	*/
	
	var reponse = $.ajax({
		url: 'ajax/users.php?op=checkLogin&login='+escape(value)+'',
		async: false
	}).responseText;
	
	return reponse;
}

function adminModifAccount(formulaire) {
	/*
	** Vérification du login de l'expert avec l'appel de checkLogin(String value)
	*/
	
	var LOGIN = formulaire.LOGIN_EXPERT;
	var MDP = formulaire.MDP_EXPERT;
	
	var reponse = checkLogin(LOGIN);
	
	if(reponse == 'ok') {
		return true;
	}
	else {
		if(reponse == 'exist') {
			alert('Ce login est déjà utilisé');
		}
		
		return false;
	}
}

function adminAccountCheckLogin(LOGIN) {
	/*
	** Affichage du statut de la disponibilité du login.
	*/
	
	var reponse = checkLogin(LOGIN);
	
	if(reponse == 'exist') {
		$('#statutLOGIN_EXPERT').css("display","none");
		$('#statutLOGIN_EXPERT').css("color","red");
		$("#statutLOGIN_EXPERT").html('Ce login existe d&eacute;j&agrave;');
		$('#statutLOGIN_EXPERT').css("display","inline");
		$('#MODIFIER_EXPERT').attr("disabled", true);
	}
	else {
		$('#statutLOGIN_EXPERT').css("display","none");
		$('#MODIFIER_EXPERT').attr("disabled", false);
	}
}

/***************************************************
*	Fonctions "Mission"
***************************************************/
function verfiEtatMission(checkbox, ID_EXPERT) {
	/*
	** Si l'état de la mission est accepté alors on change automatiquement le statut.
	*/
	
	var CONTACT_STATUT = document.getElementById('CONTACT_STATUT_'+ID_EXPERT);
	var nbOption = CONTACT_STATUT.length;
	
	if(checkbox.checked) {
		for(i=0;i<nbOption;i++) {
			if(CONTACT_STATUT.options[i].value == 'oui') {
				CONTACT_STATUT.options[i].selected = true;
			}
			else {
				CONTACT_STATUT.selected = false;
			}
		}
	}
}

/***************************************************
*	Fonctions "Annonces"
***************************************************/
function deletePhoto(idPhoto) {
	var reponse = $.ajax({
		url: 'ajax/annonces.php?op=deletePhoto&lien='+escape($('#'+idPhoto+'').val())+'',
		async: false
	}).responseText;
	
	$('#td_'+idPhoto+'').html('<input type="file" name="'+idPhoto+'" id="'+idPhoto+'" />');
	$('#'+idPhoto+'').css('display', 'none');
	$('#'+idPhoto+'').fadeIn('fast');
}
