var inputValues = {
	'menu_nom' : 'Nom',
	'menu_telephone' : 'n° de téléphone',
	'menu_email' : 'Votre e-mail',
	
	'contact_nom' : '',
	'contact_prenom' : '',
	'contact_societe' : '',
	'contact_telephone' : '',
	'contact_email' : '',
	
	'sostap_nom' : '',
	'sostap_prenom' : '',
	'sostap_societe' : '',
	'sostap_exemplaires' : '',
	'sostap_article' : '',
	'sostap_auteur' : '',
	'sostap_revue' : '',
	'sostap_reference' : ''
};

var inputIsEmpty = new Array();

function onFocusInput(id) {
	var ele = document.getElementById(id);
	
	if (inputIsEmpty[id]) {
		ele.value = '';
	}
	
	ele.style.color = '#000';
}

function onBlurInput(id) {
	var ele = document.getElementById(id);
	
	if (ele.value == '') {
		ele.value = inputValues[id];
		inputIsEmpty[id] = true;
		ele.style.color = '#B8B8B7';
	} else {
		inputIsEmpty[id] = false;
	}
}

function initInput(id) {
	var ele = document.getElementById(id);

	ele.value = inputValues[id];
	inputIsEmpty[id] = true;
	try {
		ele.addEventListener("focus", function() { onFocusInput(id); }, false);
		ele.addEventListener("blur", function() { onBlurInput(id); }, false);
	} catch (e) {
		ele.attachEvent("onfocus", function() { onFocusInput(id); });
		ele.attachEvent("onblur", function() { onBlurInput(id); });
	}
}

function createXMLHttp() {
  var xmlhttp;
  
  /* Construction de l'objet XMLHttpRequest
     suivant les différents navigateurs */
  try { // IE cas 1
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  }
  catch (e1) {
    try { // IE cas 2
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch (e2) {
      try { // tous les autres
        xmlhttp = new XMLHttpRequest();
      }
      catch (e3) {
        xmlhttp = false;
      }
    }
  }

  return xmlhttp;
}

function changeTooltipText(ele, newText) {
	ele.blur();
	ele.setAttribute('tooltipText', newText);
	ele.focus();
}

function getTooltipText(id) {
  return document.getElementById(id).getAttribute('tooltipText');
}

function checkContactForm(id, action, validText, invalidText, emptyText) {
	var query = "";
	var formulaire = document.getElementById(id);
	var ok;

	for(i = 0;i < formulaire.elements.length;i++) {
		ele = formulaire.elements[i];
		if (ele.name == "envoi") {
			ok = ele;
		}
	}

	for(i = 0;i < formulaire.elements.length;i++) {
		ele = formulaire.elements[i];
		if (inputIsEmpty[ele.id]) {
			changeTooltipText(ok, emptyText);
			return;
		}
		switch(ele.name) {
			case "telephone":
				if (ele.value.search(/^0[1-68]([ .-]?[0-9][0-9]){4}$/) == -1) {
					changeTooltipText(ok, "Le numéro de téléphone saisi n'est pas correct");
					return;
				}
				break;
			case "email":
				if (ele.value.search(/^[^@  ]+@([a-zA-Z0-9\-]+\.)+([a-zA-Z0-9\-]{2}|net|com|gov|mil|org|edu|int)$/) == -1) {
					changeTooltipText(ok, "L'adresse email saisie n'est pas correcte");
					return;
				}
				break;
		}
		query += encodeURI("&" + ele.name + "=" + ele.value);
	}
	/* Si on arrive ici, le formulaire est correct,
	 * on envoie les données au serveur grace à l'objet
	 * XMLHttpRequest */
	 	 
	var xmlhttp = createXMLHttp();

	/* Définition du callback pour traiter la réponse
	 * du serveur */
	xmlhttp.onreadystatechange = function() {
		if ((xmlhttp.readyState == 4) && (xmlhttp.status == 200)) {
			// Si le traitement est terminé

			if (xmlhttp.responseText == "ok")
				changeTooltipText(ok, validText);
			else
				changeTooltipText(ok, invalidText);
		}
	}
	
	xmlhttp.open("GET", action + query);
	
	xmlhttp.send(null);
}