var isWorking = false;        // est-ce que le canal est occupé
var laDate = new Date();

function getHTTPObject() {
	var request = false;
	try {
		request = new ActiveXObject('Msxml2.XMLHTTP');
	}  
	catch (err2) {
		try {
			request = new ActiveXObject('Microsoft.XMLHTTP');
		}
		catch (err3) {
			try {  request = new XMLHttpRequest();	}
			catch (err1) { request = false;	}
		}
	}
	return request;
}

var http = getHTTPObject();

function _remote(serveur, esclave) {
	if (!isWorking && http) {
		http.open("GET", serveur, true);
		http.onreadystatechange = esclave;
		isWorking = true;
		http.send(null);
	}
}

function sondage_repondre(obj) {
	if (obj) {
		post = faire_POST(obj);
		http.open("POST", '/include/sondage_repondre.php?date='+ laDate.getMilliseconds(), false);
		http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		http.setRequestHeader("Content-length", post.length);
		http.setRequestHeader("Connection", "close");
		http.send( post );
		if (http.responseText == 'ok')
			document.getElementById('leSondage').innerHTML = 'Votre réponse a été enregistrée.';
		else
			document.getElementById('leSondage').innerHTML = "Vous avez déjà rempli le sondage.";
	}
}

// checkUserEmail
function checkMembreEmail(user) {
	if (user != null && user != '') {
		document.formulaire.submit();
		return;
	}
	
	ch = document.formulaire.courriel.value;

	if (ch.length>2)
		_remote("/include/remote.php?fonc=checkMembreEmail&abr=" + escape(ch), _checkMembreEmail);
}
function _checkMembreEmail() {
	if (http.readyState == 4) {
		if (http.responseText.indexOf('existe') == -1) {
			document.formulaire.submit();
		}
		else {
			alert("Vous êtes déjà inscrit! Remplissez la section «JE SUIS MEMBRE»");
		}

		isWorking = false;
	}
}

// Villes
function treatquery(){    // la requête de villes
	ch = document.formulaire.ville.value;

	if (ch.length>2)
		_remote("include/remote.php?fonc=villes&abr=" + escape(ch), _villes);

	if ((ch.length<3) && (document.getElementById('res').style.visibility == 'visible'))
		document.getElementById('res').style.visibility = 'hidden';
}

function _villes() {    // traitement de la demande
	if (http.readyState == 4) {
		if (http.responseText.indexOf('invalid') == -1) {
			var xmlDocument = http.responseXML;
			var res = xmlDocument.getElementsByTagName('name').item(0).firstChild.data;
			var elements = res.split(";");
			var result = '';
			if (elements[0] != '') {
				for (var i=0;i<elements.length;i++) {
					result = result + "<a style=\"text-decoration:none;color:red;\" href=\"javascript:setQuery('" + elements[i] + "');\">" + elements[i] + "</a><br />";
				}
				document.getElementById('res').innerHTML = result;
				document.getElementById('res').style.visibility = 'visible';
			}
			else document.getElementById('res').style.visibility = 'hidden';

			isWorking = false;
		}
	}
}

function setQuery(ch){
    document.getElementById('ville').value = ch;
    document.getElementById('res').style.visibility = 'hidden';
}

// Annonceur
function remote_annonceur(obj) {
	d = document.formulaire;
	if (obj.selectedIndex > -1) {
		_remote("include/remote.php?fonc=annonceur&id=" + obj.value, _annonceur);
	}
}

function _annonceur() {
	d = document.formulaire;
	if (http.readyState == 4) {
		if (http.responseText.indexOf('invalid') == -1) {
			var xmlDocument = http.responseXML;
			if (xmlDocument.getElementsByTagName('annonceur_coord').item(0).firstChild)
				d.annonceur_coord.value = xmlDocument.getElementsByTagName('annonceur_coord').item(0).firstChild.data;
			if (xmlDocument.getElementsByTagName('representant_id').item(0).firstChild)
				d.representant_id.value = xmlDocument.getElementsByTagName('representant_id').item(0).firstChild.data;
			if (xmlDocument.getElementsByTagName('representant_nom').item(0).firstChild)
				d.representant_nom.value = xmlDocument.getElementsByTagName('representant_nom').item(0).firstChild.data;
			if (xmlDocument.getElementsByTagName('representant_tel').item(0).firstChild)
				d.representant_tel.value = xmlDocument.getElementsByTagName('representant_tel').item(0).firstChild.data;
			if (xmlDocument.getElementsByTagName('representant_fax').item(0).firstChild)
				d.representant_fax.value = xmlDocument.getElementsByTagName('representant_fax').item(0).firstChild.data;
			if (xmlDocument.getElementsByTagName('agence_id').item(0).firstChild)
				d.agence_id.value = xmlDocument.getElementsByTagName('agence_id').item(0).firstChild.data;
			if (xmlDocument.getElementsByTagName('agence_coord').item(0).firstChild)
				d.agence_coord.value = xmlDocument.getElementsByTagName('agence_coord').item(0).firstChild.data;
			if (xmlDocument.getElementsByTagName('commission').item(0).firstChild)
				d.commission.value = xmlDocument.getElementsByTagName('commission').item(0).firstChild.data;
			if (xmlDocument.getElementsByTagName('taxes').item(0).firstChild)
				d.taxes.value = xmlDocument.getElementsByTagName('taxes').item(0).firstChild.data;
			document.getElementById('annonceur_txt').innerHTML = d.annonceurs[d.annonceurs.selectedIndex].text;
			document.getElementById('representant_nom_txt').innerHTML = d.representant_nom.value;
			if (d.agence_id.value > 0) {
				a = d.agence_coord.value.split("\n");
				document.getElementById('agence_txt').innerHTML = a[0];
			}
			else document.getElementById('agence_txt').innerHTML = '';
			if (d.taxes.value == 'TVQ')
				document.getElementById('taxes_txt').innerHTML = 'TPS+TVQ';
			else
				document.getElementById('taxes_txt').innerHTML = d.taxes.value;
			document.getElementById('commission_txt').innerHTML = d.commission.value + ' %';
			
			isWorking = false;
		}
	}
}

// Annonceur
function remote_produit(obj) {
	d = document.formulaire;
	if (obj.selectedIndex > -1) {
		_remote("include/remote.php?fonc=produit&id=" + obj.value, _produit);
	}
}

function _produit() {
	d = document.formulaire;
	if (http.readyState == 4) {
		if (http.responseText.indexOf('invalid') == -1) {
			var xmlDocument = http.responseXML;
			if (xmlDocument.getElementsByTagName('produit_id').item(0).firstChild)
				d.produits.value = xmlDocument.getElementsByTagName('produit_id').item(0).firstChild.data;
			else d.produit_id.value = '';
			if (xmlDocument.getElementsByTagName('description').item(0).firstChild) {
				d.description.value = xmlDocument.getElementsByTagName('description').item(0).firstChild.data;
				document.getElementById("description_txt").innerHTML = d.description.value;
			}
			else { 
				d.description.value = '';
				document.getElementById("description_txt").innerHTML = '';
			}
			if (xmlDocument.getElementsByTagName('orientation').item(0).firstChild) {
				d.orientation.value = xmlDocument.getElementsByTagName('orientation').item(0).firstChild.data;
				document.getElementById("orientation_txt").innerHTML = d.orientation.value;
			}
			else {
				d.orientation.value = '';
				document.getElementById("orientation_txt").innerHTML = '';
			}
			if (xmlDocument.getElementsByTagName('couleur').item(0).firstChild) {
				d.couleur.value = xmlDocument.getElementsByTagName('couleur').item(0).firstChild.data;
				document.getElementById("couleur_txt").innerHTML = d.couleur.value;
			}
			else {
				d.couleur.value = '';
				document.getElementById("couleur_txt").innerHTML = '';
			}
			if (xmlDocument.getElementsByTagName('page').item(0).firstChild)
				d.page.value = xmlDocument.getElementsByTagName('page').item(0).firstChild.data;
			else d.page.value = '';
			if (xmlDocument.getElementsByTagName('bleed').item(0).firstChild) {
				d.bleed.value = xmlDocument.getElementsByTagName('bleed').item(0).firstChild.data;
				document.getElementById("bleed_txt").innerHTML = d.bleed.value;
			}
			else {
				d.bleed.value = '';
				document.getElementById("bleed_txt").innerHTML = '';
			}
			if (xmlDocument.getElementsByTagName('prix_unitaire').item(0).firstChild)
				d.prix_unitaire.value = xmlDocument.getElementsByTagName('prix_unitaire').item(0).firstChild.data;
			else d.prix_unitaire.value = '';
			if (xmlDocument.getElementsByTagName('picto').item(0).firstChild)
				d.picto.value = xmlDocument.getElementsByTagName('picto').item(0).firstChild.data;
			else d.picto.value = '';
			if (parent.document.formulaire.parutions.value != "") {
				parutions = parent.document.formulaire.parutions.value.split("\n");
				parutions_nb = parutions.length;
				document.getElementById("parution_txt").innerHTML = parutions_nb;
				document.getElementById("prix_total_txt").innerHTML = (parutions_nb * d.prix_unitaire.value);
			}
			
			isWorking = false;
		}
	}
}


// T E S T  P O U R  S O N D A G E
var sondage_numero = 0;
var sondage = Array();
var question_active = -1;
var question_nb = 0;
var reponses = Array();
var reponse_age = 0;
var reponse_sexe = '';
function sondage_lire(numero) {
	sondage_numero = numero;
	_remote("/sondages/sondage"+numero+".xml", sondage_lire_retour);
}
function sondage_lire_retour() {
	if (http.readyState == 4) {
		var doc = http.responseXML;
		var questions = doc.getElementsByTagName('quiz').item(0);
		var titre = questions.getElementsByTagName('title').item(0);
		var elements = questions.getElementsByTagName('items').item(0);
		if (titre.textContent) titre = titre.textContent;
		else titre = titre.text;
		
		for (i=0; i < elements.getElementsByTagName('item').length; i++ ) {
			tableau = Array();
			question_nb++;
			q = elements.getElementsByTagName('item')[i];
			
			question = q.getElementsByTagName('question').item(0);
			if (question.textContent) tableau[0] = question.textContent;
			else tableau[0] = question.text;
			
			for (j=0; j < q.getElementsByTagName('answer').length; j++ ) {
				qq = q.getElementsByTagName('answer')[j];
				a = qq.getAttribute('points');
				if (qq.textContent) tableau[j+1] = Array(qq.textContent, a);
				else tableau[j+1] = Array(qq.text, a);
			}
			
			sondage[sondage.length] = tableau;
		}
		isWorking = false;
	}
	
}
function sondage_question(rep) {
	if (question_active > -1) {
		reponses[question_active] = rep;
	}
	
	question_active++;
	if (question_active == 0) {
		reponse_age = document.getElementById('sondage_age').value;
		if ( document.getElementsByName('sondage_sexe')[0].checked == true ) reponse_sexe = 'F';
		else reponse_sexe = 'H';
	}
	div = document.getElementById('DIV_sondage');
	div.innerHTML = '';
	if (document.getElementById('DIV_sondage')) {
		if (question_active < question_nb) {
			document.getElementById('DIV_q').innerHTML = sondage[question_active][0];
			document.getElementById('DIV_r').innerHTML = '';
			for (i=1; i < sondage[question_active].length; i++) {
				document.getElementById('DIV_r').innerHTML += '<div style="cursor:pointer;" onclick="sondage_question(\'' + sondage[question_active][i][1] + '\')"><div class="reponse_img"></div>' + sondage[question_active][i][0] + '</div><div style="height:15px; line-height:15px;"></div>';
			}
			div.innerHTML = document.getElementById('DIV_source').innerHTML;
		}
		else sondage_reponse();
	}
}
function sondage_reponse() {
	total = 0;
	texte = '<b color="#333">Evaluation :</b>';
	
	for (i=0; i < reponses.length; i++) total += (1 * reponses[i]);
	
	texte += '<td><div id="DIV_resultat"></div></td></tr></table>';
	
	div.innerHTML = texte;
	sondage_resultat(sondage_numero, total);
}
function sondage_resultat(numero, resultat) {
	_remote("/magdvd/sondages/sondage"+numero+".php?resultat=" + resultat, sondage_resultat_retour);
}
function sondage_resultat_retour() {
	if (http.readyState == 4) {
		if (http.responseText != '') {
			if (document.getElementById('DIV_resultat'))
				document.getElementById('DIV_resultat').innerHTML = http.responseText;

			isWorking = false;
			sondage_enregistrer();
		}
	}
}
function sondage_enregistrer() {
	data = reponse_sexe+','+reponse_age;
	for (i=0; i < reponses.length; i++) data += ','+reponses[i];
	_remote("/include/remote.php?fonc=sondage_enregistrer&no=" + sondage_numero + "&data=" + escape(data), sondage_enregistrer_retour);
}
function sondage_enregistrer_retour() { }

///////////////////////////////////////////////
// Fonctions et classes
function remplacer(source,varIN,varOUT) {
	retour = '';
	for (i=0; i < source.length; i++) {
		s = source.substr(i,1);
		if (s == varIN) retour += varOUT;
		else retour += s;
	}
	
	return retour;
}

function number_format(valeur) {
	result = Math.round(valeur*100)/100;
	if ( Math.floor(result) == result ) return result + '.00';
	else if ( Math.floor(result*10) == result*10 ) return result + '0';
	else return result;
}

function faire_POST(obj) {
	post = '';
	for (i=0; i < obj.elements.length; i++) {
		if (obj.elements[i].name && obj.elements[i].name != '') {
			if (obj.elements[i].getAttribute('type') == 'radio' || obj.elements[i].getAttribute('type') == 'checkbox') {
				if (obj.elements[i].checked == true) post += '&' + obj.elements[i].name + '=' + escape(obj.elements[i].value);
			}
			else
				post += '&' + obj.elements[i].name + '=' + escape(obj.elements[i].value);
		}
	}
	
	return post;
}

