// JavaScript Document
// -----------------------------
// - verif validit� adresse mail
function isEmail(emailStr) {
	var checkTLD = 1;
	var knownDomsPat = /^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|�pro|museum|fr)$/;
	var emailPat = /^(.+)@(.+)$/;
	var specialChars = "\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var validChars = "\[^\\s" + specialChars + "\]";
	var quotedUser = "(\"[^\"]*\")";
	var ipDomainPat = /^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom = validChars + '+';
	var word = "(" + atom + "|" + quotedUser + ")";
	var userPat = new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat = new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray = emailStr.match(emailPat);
	if (matchArray == null) { return false; }
	var user = matchArray[1];
	var domain = matchArray[2];
	for (i=0; i<user.length; i++) {
		if (user.charCodeAt(i) > 127) { return false; }
	}
	for (i=0; i<domain.length; i++) {
		if (domain.charCodeAt(i) > 127) { return false; }
	}
	if (user.match(userPat) == null) { return false; }
	var IPArray=domain.match(ipDomainPat);
	if (IPArray != null) {
		for (var i=1; i<=4; i++) {
			if (IPArray[i] > 255) { return false; }
		}
		return true;
	}
	var atomPat = new RegExp("^" + atom + "$");
	var domArr = domain.split(".");
	var len = domArr.length;
	for (i=0; i<len; i++) {
		if (domArr[i].search(atomPat) == -1) { return false; }
	}
	if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1) { return false; }
	if (len < 2) { return false; }
	return true;
}

// ------------------------------------------------------------
// - XMLHTTPRequest.
// - Cr�ation de la variable globale qui contiendra l'objet XHR
// ------------------------------------------------------------
var requete = null;
function creerRequete()
{
    try
    {
        requete = new XMLHttpRequest();
    }
    catch (microsoft)
    {
        try
        {
            requete = new ActiveXObject('Msxml2.XMLHTTP');
        }
        catch(autremicrosoft)
        {
            try
            {
                requete = new ActiveXObject('Microsoft.XMLHTTP');
            }
            catch(echec)
            {
                requete = null;
            }
        }
    }
    if(requete == null)
    {
        alert('Impossible de cr�er l\'objet requ�te,\nVotre navigateur ne semble pas supporter les object XMLHttpRequest.');
    }
}

// ------------------
// - requete post
function post(who, what, where, div)
{
	if (where.indexOf("?")>=0)
	{
		var content = '' + what;
	}
	else
	{
		var content = '?' + what;
	}

	/*if(document.getElementById(div).type == div)
	{
		document.getElementById(div).innerHTML = '<div class="center"><img src="../images/loading3.gif" /></div>';
	}*/
	var url = where + content;
	//var url = where;
	creerRequete();

	//requete.open('GET', url, true);

	requete.open("POST", url, true);
	requete.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

	requete.onreadystatechange = function()
	{
		if(requete.readyState == 4)
		{
			if(requete.status == 200)
			{
				var result_return = requete.responseText;
				document.getElementById(div).innerHTML = result_return;
			}
		}
	}
	requete.send(what);
	//requete.send(null);
}


// --------------------------------
// - fonction recup info formulaire

function getformobjdata (obj) {
    var postdata = "";
    var i;

    for (i=0; i<obj.childNodes.length; i++) {
        if (obj.childNodes[i].tagName == "INPUT") {
            if (obj.childNodes[i].type == "text") {
                postdata += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
            }else if (obj.childNodes[i].type == "checkbox") {
                if (obj.childNodes[i].checked) {
                    postdata += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
                } else {
                    postdata += obj.childNodes[i].name + "=&";
                }
            }else if (obj.childNodes[i].type == "radio") {
                if (obj.childNodes[i].checked) {
                    postdata += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
                }
            }else if (obj.childNodes[i].type == "hidden") {
                postdata += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&";
            }
        } else if (obj.childNodes[i].tagName == "SELECT") {
            var sel = obj.childNodes[i];
            postdata += sel.name + "=" + sel.options[sel.selectedIndex].value + "&";
        } else if (obj.childNodes[i].tagName == "TEXTAREA") {
            postdata += obj.childNodes[i].name + '=' + obj.childNodes[i].value + "&";
        } else {
            postdata += getformobjdata (obj.childNodes[i]);
        }
    }

    return postdata;
}

function getformdata(formid) {
    var obj = document.getElementById(formid);
    return getformobjdata (obj);
}


// ---------------------
// - verif du formulaire
function verif()
{
	var bOK = true;
	// ------------------------------
	// - Message, gestion des langues
	if(document.broch.langue.value == "1")
	{
		var indic_coord = 'Votre demande ne peut &ecirc;tre prise en compte, merci de bien vouloir :<br />';
		var indic_vide = '- Vous n\'avez formul&eacute; aucune demande';
		var partie_heberg = '- Compl&eacute;ter votre demande d\'h&eacute;bergement <br />';
		var partie_sejour = '- Compl&eacute;ter votre demande de s&eacute;jour<br />';
		var partie_coordm = '- Renseigner vos coordonn&eacute;es<br />';
	}

	if(document.broch.langue.value == "2")
	{
		var indic_coord = 'Votre demande ne peut &ecirc;tre prise en compte, merci de bien vouloir :<br />';
		var indic_vide = '- Vous n\'avez formul&eacute; aucune demande';
		var partie_heberg = '- Compl&eacute;ter votre demande d\'h&eacute;bergement <br />';
		var partie_sejour = '- Compl&eacute;ter votre demande de s&eacute;jour<br />';
		var partie_coordm = '- Renseigner vos coordonn&eacute;es<br />';
	}

	if(document.broch.langue.value == "3")
	{
		var indic_coord = 'Votre demande ne peut &ecirc;tre prise en compte, merci de bien vouloir :<br />';
		var indic_vide = '- Vous n\'avez formul&eacute; aucune demande';
		var partie_heberg = '- Compl&eacute;ter votre demande d\'h&eacute;bergement <br />';
		var partie_sejour = '- Compl&eacute;ter votre demande de s&eacute;jour<br />';
		var partie_coordm = '- Renseigner vos coordonn&eacute;es<br />';
	}

	if(document.broch.langue.value == "4")
	{
		var indic_coord = 'La tua domanda  non pu essere registrata, grazie di fornire:<br />';
		var indic_vide = '- Non &egrave; stata posta nessuna domanda';
		var partie_heberg = '- Completare la richiesta di alloggio<br />';
		var partie_sejour = '- Compl&eacute;ter votre demande de s&eacute;jour<br />';
		var partie_coordm = '- Fornire tutte le coordinate<br />';
	}

	var subm = 1;
	var form = 0;
	var heb = 0;
	var indic_coordm = '';
	var indic_coordh = '';
	var indic_coords = '';

	// - verification des champs obligatoires dans la partie hébergement en fr
	if(document.broch.langue.value == "1")
	{
		if((document.broch.hebergement_adultes.value != "") && (document.broch.date_deb_heberg.value == "JJ/MM/AAAA" || document.broch.date_fin_heberg.value == "JJ/MM/AAAA"))
		{
			// - date de debut en francais
			if(document.broch.date_deb_heberg.value == "JJ/MM/AAAA" || document.broch.date_deb_heberg.value == "")
			{
				var indic_coordh = partie_heberg;
				var subm = 0;
				document.getElementById('lab_date_deb_heberg').className = 'needed';
				bOK = false;

			}
			else
			{
				document.getElementById('lab_date_deb_heberg').className = '';
			}
			// - Date de fin
			if(document.broch.date_fin_heberg.value == "JJ/MM/AAAA" || document.broch.date_fin_heberg.value == "")
			{
				var indic_coordh = partie_heberg;
				var subm = 0;
				document.getElementById('lab_date_fin_heberg').className = 'needed';
				bOK = false;

			}
			else
			{
				document.getElementById('lab_date_fin_heberg').className = '';
			}

			var form = 1;
		}
	}

	if((document.broch.hebergement_adultes && document.broch.hebergement_enfants) && (document.broch.hebergement_adultes.value != "" || document.broch.hebergement_enfants.value != 0))
	{
		// -
		if (document.broch.hebergement_adultes.value == "")
		{
			var indic_coordh = partie_heberg;
			var subm = 0;
			document.getElementById('lab_hebergement_adultes').className = 'needed';
			bOK = false;

		}
		else
		{
			document.getElementById('lab_hebergement_adultes').className = '';
		}
		// -
		if (document.broch.hebergement_enfants.value == "")
		{
			var indic_coordh = partie_heberg;
			var subm = 0;
			document.getElementById('lab_hebergement_enfants').className = 'needed';
		}
		else
		{
			if(document.broch.hebergement_enfants.value > 0)
			{
				for(x = 1;x <= document.broch.hebergement_enfants.value; x++)
				{
					if(document.broch['h_age_enfant_' + x].value == "0")
					{
						var indic_coordh = partie_heberg;
						var subm = 0;
						document.getElementById(['lab_h_age_enfant_' + x]).className = 'needed';
						bOK = false;
					}
					else
					{
						document.getElementById(['lab_h_age_enfant_' + x]).className = '';
					}
				}
			}
			else
			{
				document.getElementById('lab_hebergement_enfants').className = '';
			}
		}
		var form = 1;
	}

// - verification des champs obligatoires dans la partie idees sejours
	if(!$('sejour').hasClass('cachediv') && ((document.broch.sejour_adultes.value != "") || (document.broch.sejour_enfants.value != 0) || ((document.broch.langue.value != "2") && ((document.broch.date_deb_sejour.value != "JJ/MM/AAAA") || (document.broch.date_fin_sejour.value != "JJ/MM/AAAA"))) || ((document.broch.langue.value == "2") && ((document.broch.date_deb_sejour.value != "DD/MM/YYYY") || (document.broch.date_fin_sejour.value != "DD/MM/YYYY")))))
	{
		if(((document.broch.langue.value != "2") && (document.broch.date_deb_sejour.value != "JJ/MM/AAAA")) || ((document.broch.langue.value == "2") && (document.broch.date_deb_sejour.value != "DD/MM/YYYY")))
		{
			var indic_coords = partie_sejour;
			var subm = 0;
			document.getElementById('lab_date_deb_sejour').className = 'needed';
			bOK = false;

		}
		else
		{
			document.getElementById('lab_date_deb_sejour').className = '';
		}
		// -
		if(((document.broch.langue.value != "2") && (document.broch.date_fin_sejour.value != "JJ/MM/AAAA")) || ((document.broch.langue.value == "2") && (document.broch.date_fin_sejour.value != "DD/MM/YYYY")))
		{
			var indic_coords = partie_sejour;
			var subm = 0;
			document.getElementById('lab_date_fin_sejour').className = 'needed';
			bOK = false;

		}
		else
		{
			document.getElementById('lab_date_fin_sejour').className = '';
		}
		// -
		if (document.broch.sejour_adultes.value == "")
		{
			var indic_coords = partie_sejour;
			var subm = 0;
			document.getElementById('lab_sejour_adultes').className = 'needed';
			bOK = false;

		}
		else
		{
			document.getElementById('lab_sejour_adultes').className = '';
		}
		// -
		if (document.broch.sejour_enfants.value == "")
		{
			var indic_coords = partie_sejour;
			var subm = 0;
			document.getElementById('lab_sejour_enfants').className = 'needed';
			bOK = false;

		}
		else
		{
			if(document.broch.sejour_enfants.value > 0)
			{
				for(x = 1;x <= document.broch.sejour_enfants.value; x++)
				{
					if(document.broch['s_age_enfant_' + x].value == "0")
					{
						var indic_coords = partie_sejour;
						var subm = 0;
						document.getElementById(['lab_s_age_enfant_' + x]).className = 'needed';
						bOK = false;
					}
					else
					{
						document.getElementById(['lab_s_age_enfant_' + x]).className = '';
					}
				}
			}
			else
			{
				document.getElementById('lab_sejour_enfants').className = '';
			}
		}
		var form = 1;
	}

	// - V�rification d'une brochure s�lectionn�e
	if(nb_check > 0)
	{
		var form = 1;
	}

	// - Verification d'une saisie de suggestion FRANCAIS
	if(document.broch.langue.value == "1")
	{
		if((document.broch.suggestions_txt.value != "") && (document.broch.suggestions_txt.value != "Veuillez saisir votre texte..."))
		{
			var form = 1;
		}
	}
	// - Verification d'une saisie de suggestion FRANCAIS
	if(document.broch.langue.value == "2")
	{
		if((document.broch.suggestions_txt.value != "") && (document.broch.suggestions_txt.value != "Your message..."))
		{
			var form = 1;
		}
	}


// - verification des champs obligatoires dans la partie coordonn�es

	// -
	for(i=0;i<document.broch.coords_civilite.length;i++)
	{
		if(document.broch.coords_civilite[i].checked == true)
		{
			document.getElementById('lab_coords_civilite').className = '';
			var subm = 1;
			break;
		}
		else
		{
			var indic_coordm = partie_coordm;
			var subm = 0;
			document.getElementById('lab_coords_civilite').className = 'needed';

		}
	}

	// -
	if (document.broch.coords_prenom.value == "")
	{
		var indic_coordm = partie_coordm;
		var subm = 0;
		document.getElementById('lab_coords_prenom').className = 'needed';
		bOK = false;

	}
	else
	{
		document.getElementById('lab_coords_prenom').className = '';
	}

	// -
	if (document.broch.coords_nom.value == "")
	{
		var indic_coordm = partie_coordm;
		var subm = 0;
		document.getElementById('lab_coords_nom').className = 'needed';
		bOK = false;

	}
	else
	{
		document.getElementById('lab_coords_nom').className = '';
	}

	// -
	if (document.broch.coords_email.value == "")
	{
		var indic_coordm = partie_coordm;
		var subm = 0;
		document.getElementById('lab_coords_email').className = 'needed';
		bOK = false;

	}
	else
	{
		if(isEmail(document.broch.coords_email.value))
		{
			document.getElementById('lab_coords_email').className = '';
		}
		else
		{
			var indic_coordm = partie_coordm;
			var subm = 0;
			document.getElementById('lab_coords_email').className = 'needed';
			bOK = false;

		}
	}

	// -
	if (document.broch.coords_adresse.value == "")
	{
		var indic_coordm = partie_coordm;
		var subm = 0;
		document.getElementById('lab_coords_adresse').className = 'needed';
		bOK = false;

	}
	else
	{
		document.getElementById('lab_coords_adresse').className = '';
	}

	// -
	if (document.broch.coords_cp.value == "")
	{
		var indic_coordm = partie_coordm;
		var subm = 0;
		document.getElementById('lab_coords_cp').className = 'needed';
		bOK = false;

	}
	else
	{
		document.getElementById('lab_coords_cp').className = '';
	}

	// -
	if (document.broch.coords_ville.value == "")
	{
		var indic_coordm = partie_coordm;
		var subm = 0;
		document.getElementById('lab_coords_ville').className = 'needed';
		bOK = false;

	}
	else
	{
		document.getElementById('lab_coords_ville').className = '';
	}

	// -
	if (document.broch.coords_pays.value == "")
	{
		var indic_coordm = partie_coordm;
		var subm = 0;
		document.getElementById('lab_coords_pays').className = 'needed';
		bOK = false;

	}
	else
	{
		document.getElementById('lab_coords_pays').className = '';
	}
	
	// - True si tout est OK
	if (subm > 0 && bOK)
	{
		if(form < 1)
		{
			document.getElementById('msg_return').innerHTML = indic_coord + indic_vide + '<br />';
			return false;
		}
		else
		{
			return true;
		}
	}
	else
	{
		document.getElementById('msg_return').innerHTML = indic_coord + indic_coordm + indic_coordh + indic_coords + '<br />';
		return false;
	}
}

function valid_form_contact(content) {
	if(verif())
	{
		post('broch', content, 'trait_form_contact.php', 'msg_return');

		//return void(0);

		window.scrollTo(0,200);
		document.getElementById('broch').className = 'cachediv';
		return false;
	}
	else
	{
		window.scrollTo(0,200);
		document.getElementById('msg_return').className = 'needed';
		return false;
	}
}


