//------------------------------------------------------------------------------------//
// PROGRAMME : form.js
// DESCRIPTION : Scripts permettant la vérification du formulaire d'alerte
// HISTORIQUE DES VERSIONS :
// V0.1 - 28/08/2007 - Léonard - Création
// V0.2 - 29/11/2007 - Léonard - Passage en statique
//------------------------------------------------------------------------------------//

if (id_type_site != null)
{
	if (id_type_site == 4)
	{
		id_pere = "id_pays_iso";
	}
	else
	{
		id_pere = "id_reg";
	}
}
else
{
	id_pere = "id_reg";
}


function show_hide(div)
{
	objDiv = document.getElementById(div);
	if (objDiv.style.display!="block")
	{
		objDiv.style.display="block";
	}
	else
	{
		objDiv.style.display="none";		
	}
}

function hide(div)
{
	objDiv = document.getElementById(div);
	objDiv.style.display="none";		
}

function hide_bloc_alerte_auto()
{
	hide('confirm');
	hide('shadow');
	hide('div_alerte');
}

//Fonction qui permet de faire passer un div devant un select sous IE6
function putFrame(div){
	
	var IE6 = false;

	var strChUserAgent = navigator.userAgent;
	var intSplitStart = strChUserAgent.indexOf("(",0);
	var intSplitEnd = strChUserAgent.indexOf(")",0);
	var strChMid = strChUserAgent.substring(intSplitStart, intSplitEnd);
	
	if(strChMid.indexOf("MSIE 6") != -1) IE6 = true;

	if (IE6)
	{
		var f    = document.createElement("iframe");
		var d    = document.getElementById("shadow");
	
		with(f.style){
			position	= "absolute";
		 	width    	= d.offsetWidth+"px";
		  	height		= d.offsetHeight+"px";
		  	border 		= 0;
		  	background	= "transparent";
		 	top			= d.offsetTop+"px";
		  	left		= d.offsetLeft+"px";
		   	zIndex		= "1";
		}		
		d.appendChild(f);
	}
}

function validemail(item) 
{ 
	if (!(item.length >= 5)) return(false); 
	if (item.indexOf ('@', 0) == -1) return(false); 
	if (item.indexOf ('.', 0) == -1) return(false);
	interdit = "~&#'(){}[]|`/çàäâéèëêïîöôùüû?;:;!§$£+=,°%¤*µ\"\\ "; 
	for (i=0;i < item.length;i++)
	{
		for (j=0;j < interdit.length;j++)
		{
			if (item.substr(i,1) == interdit.substr(j,1)) 
			{ 
				return(false); 
			}
		}
	}	
	return(true); 
}
//Regle de validation :
//1°) Mois  Obligatoire
//2°) Email Obligatoire
//3°) Au moins une region ou une formule
function nb_select(obj)
{
	var cpt = 0;
	for (var r = 0; r < obj.options.length; r++) 
	{
		if (obj.options[r].selected) { cpt++; }
	}
	return(cpt);
}
function select_checked(leform)
{
	len = document.getElementById(leform).elements.length;
	frm = document.getElementById(leform);
	var i=0;
	var ch = "";
	var cpt_reg = 0;
	/*var cpt_for = 0;
	var cpt_mois = 0;*/
	while(i!=len)
	{
		if (frm.elements[i].type == "select-multiple")
		{
			if (frm.elements[i].name.indexOf('id_reg')!=-1)
//			if (frm.elements[i].name.indexOf('id_pays_iso')!=-1)
			{
				cpt_reg = nb_select(frm.elements[i]);
			}
			/*if (frm.elements[i].name.indexOf('id_for')!=-1)
			{
				cpt_for = nb_select(frm.elements[i]);
			}
			if (frm.elements[i].name.indexOf('id_mois')!=-1)
			{
				cpt_mois = nb_select(frm.elements[i]);
			}*/
		}
		i++;
	}
	//if (!((cpt_mois!=0) && ((cpt_reg!=0) || (cpt_for!=0) )))
	if (!(cpt_reg!=0))
	{
		return(false);
	}
	return(true);
}

function validation()
{
	if (document.getElementById('email').value == "")
	{
		alert(wrd_message_mail);
		document.getElementById('email').focus();
		return(false);
	}
	if (!validemail(document.getElementById('email').value))
	{
		alert(wrd_message_mail);
		document.getElementById('email').focus();
		return(false);
	}		
	if (!select_checked('alerte'))
	{
		alert(wrd_message_region);
		//document.getElementById('').focus();
		return(false);
	}
	return(true);
}
function getSelectedValues(select)
{
	var selectedValues = Array();
	var i=0;
	for (i=0;i<select.options.length;i++)
	{
		if (select.options[i].selected)
		{
			selectedValues[selectedValues.length] = select.options[i].value;		
		}
	}
	if (selectedValues.length == 0)
	{
		selectedValues = null;
	}
	return (selectedValues);
}
function inscription()
{
	if (validation())
	{
		document.getElementById("shadow").style.height = (document.getElementById("div_alerte").offsetHeight - 18)+"px";
		document.getElementById("shadow").style.width = (document.getElementById("div_alerte").offsetWidth - 8)+"px";
		document.getElementById("shadow").style.display = "block";
		putFrame();
		var i=0;
		var virgule="";
		if (typeof(createRequestObject) != "function"){window.createRequestObject = function(){var http;if(window.XMLHttpRequest){http = new XMLHttpRequest();}else if(window.ActiveXObject){http = new ActiveXObject("Microsoft.XMLHTTP");}return http;}}
		http = createRequestObject();
		var id_pays_iso = id_for = id_mois = "";
		var email = document.getElementById('email').value;
		var selectedValues;
		if ((selectedValues = getSelectedValues(document.getElementById(id_pere))) != null)
		{
			for (i=0;i<selectedValues.length;i++)
			{
				id_pays_iso += virgule+selectedValues[i];
				virgule = ",";
			}
		}
		/*
		virgule="";
		if ((selectedValues = getSelectedValues(document.getElementById("id_for"))) != null)
		{
			for (i=0;i<selectedValues.length;i++)
			{
				id_for += virgule+selectedValues[i];
				virgule = ",";
			}
		}
		virgule="";
		if ((selectedValues = getSelectedValues(document.getElementById("id_mois"))) != null)
		{
			for (i=0;i<selectedValues.length;i++)
			{
				id_mois += virgule+selectedValues[i];
				virgule = ",";
			}
		}
		*/
		try
		{
		  	http.open('post', url_site+'scripts/ajax_abonnement_alerte.php', true); //appel du programme avec la méthode post
			http.onreadystatechange = handleAJAXReturn_alerte; //abonnement de la fonction handleAJAXReturn à l'évenement onreadystatechange
			http.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
			//envoi de la requete avec les paramètres nécessaires.
			http.send('email='+email+'&'+id_pere+'='+id_pays_iso+'&id_for='+id_for+'&id_mois='+id_mois);
		}
		catch (ex)
		{
			alert (ex.message);
			alert("Erreur : le traitement précédent n'est pas complètement terminé");
			http.open('post', url_site+'scripts/ajax_abonnement_alerte.php', true); //appel du programme avec la méthode post
			http.onreadystatechange = handleAJAXReturn_alerte; //abonnement de la fonction handleAJAXReturn à l'évenement onreadystatechange
			http.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
			//envoi de la requete avec les paramètres nécessaires.
			http.send('email='+email+'&'+id_pere+'='+id_pays_iso+'&id_for='+id_for+'&id_mois='+id_mois);
		}
	}
	//------------------------------------------------------------------------------------------//
	// Fonction : handleAJAXReturn()
	//
	// Prise en charge de l'évènement onreadystatechange de l'objet XMLHttpRequest
	// Nécessaire pour les requêtes AJAX, permet de connaître l'état de la requête en temps réel.
	//------------------------------------------------------------------------------------------//
	function handleAJAXReturn_alerte() {
		if(http.readyState == 4)
	    {
	    	//La requête est terminée et le serveur a retourné une réponse.
			//La requete est un succès
			// Utilisation du résultat
			if(http.status == 200)
	        {
				document.getElementById("message").innerHTML = http.responseText;
				document.getElementById("confirm").style.display = "block";
				setTimeout('hide_bloc_alerte_auto()',2500);
//				document.getElementById("shadow").style.display = "none";
	        }
	        else
	        {
        		alert('Erreur : ' + http.status);
        		setTimeout('hide_bloc_alerte_auto()',2500);
	        }
	    }
	}
}
