//--------------------------------------------------------
// Fonctions 
//--------------------------------------------------------

function verif_numeric(variable)
{
   var exp = new RegExp("^[0-9]+$","g");
   return exp.test(variable);
}

function is_mail(email)
{
	var reg = /^[\w.-]+@[\w.-]+\.\w{1,4}$/;
     var reg2 = /[.@]{2,}/;
     return ((reg.exec(email)!=null) && (reg2.exec(email)==null));
}

function test_tel(tel)
{
	if(verif_numeric(tel))
	{
		if(tel.length == 10) return true;
		else return false
	}
	else return false;
}

function verif_champs(formulaire, modele, serie, kilometrage, mise_en_circ, boite_vitesse, prix, date)
{
		if(modele == "") 
		{
			formulaire.modele.style.borderColor="red";
			modele_ok = 0;
		}
		else 
		{	
			formulaire.modele.style.borderColor="";
			modele_ok = 1;
		}
		
		if(serie=="")
		{
			formulaire.serie.style.borderColor="red";
			serie_ok = 0;
		}
		else 
		{
			formulaire.serie.style.borderColor="";
			serie_ok = 1;
		}
		
		if(kilometrage=="")
		{
			formulaire.kilometrage.style.borderColor="red";
			kilometrage_ok = 0;
		}
		else
		{
			 formulaire.kilometrage.style.borderColor="";
			 kilometrage_ok = 1;
		}
		
		if(mise_en_circ.indexOf("/", 1) == -1 || mise_en_circ.indexOf("-", 0)!= -1)
		{
			formulaire.mise_en_circulation.style.borderColor="red";
			mise_en_circ_ok = 0;
		}
		else
		{
			 
			 formulaire.mise_en_circulation.style.borderColor="";
			 mise_en_circ_ok = 1;
		}
		
		if(boite_vitesse=="")
		{
			formulaire.boite_vitesse.style.borderColor="red";
			boite_vitesse_ok = 0;
		}
		else 
		{
			formulaire.boite_vitesse.style.borderColor="";
			boite_vitesse_ok = 1;
		}
		if(prix=="")
		{
			formulaire.prix.style.borderColor="red";
			prix_ok = 0;
		}
		else 
		{
			formulaire.prix.style.borderColor="";
			prix_ok = 1;
		}
		
		if(serie_ok==1 && modele_ok==1 && kilometrage_ok==1 && mise_en_circ_ok==1 && boite_vitesse_ok==1 && prix_ok==1) return true;
		else return false;
}
function Check_box() {
	var checkbox = document.inscription.elements["college"];
	if(checkbox == undefined) return true;
	else
	{
		var isChecked = false;
		for (var i=0; i<checkbox.length; i++) 
		{
			if (checkbox[i].checked == true) 
			{
				isChecked = true;
				break;
			}
		}
	
		if (isChecked == false) 
		{
			alert('Vous devez choisir un collège d\'appartenance');
			return false;
		}
		else
		{
			return true;
		}
	}
} 

function verif_form(formulaire)
{
	var modele = formulaire.modele.value;
	var serie = formulaire.serie.value;
	var kilometrage = formulaire.kilometrage.value;
	var mise_en_circ = formulaire.mise_en_circulation.value;
	var boite_vitesse = formulaire.boite_vitesse.value;
	var prix = formulaire.prix.value;

	if(verif_champs(formulaire, modele, serie, kilometrage, mise_en_circ, boite_vitesse, prix)) return true;	
	else return false;
}

/*----------------------------------------------------------------------------------------------------------
	Fonctions de validation de formulaires génériques
----------------------------------------------------------------------------------------------------------*/
// Boucle de validation
function validateForm(form) {
	if (isNotEmpty(form.nom)) {
		if (isNotEmpty(form.prenom)) {
			if (isNotEmpty(form.eMail)) {
                if (isEMailAddr(form.eMail)) {
                    if (isNumber(form.dateNaissance)) {
						if (isLen8(form.dateNaissance)) {
							return true;
						}
					}
				}
			}
		}
	}
	return false;
}

// Vérifie si un champ a bien été renseigné
function isNotEmpty(elem) {
	var str = elem.value;
    var re = /.+/;
    if(!str.match(re)) {
        alert("Veuillez renseigner les champs obligatoires.");
        setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
        return false;
    } else {
        return true;
    }
}

// Vérifie si l'adresse e-mail est valide
function isEMailAddr(elem) {
	var str = elem.value;
    var re = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
    if (!str.match(re)) {
        alert("Veuillez vérifier le format de votre adresse e-mail.");
        setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
        return false;
    } else {
        return true;
    }
}

//Vérifie si un champ ne contient que des chiffres
function isNumber(elem) {
	var str = elem.value;
    var re = /^[-]?\d*\.?\d*$/;
    str = str.toString();
    if (!str.match(re)) {
        alert("Veuillez respecter le format de date de naissance suivant : '05031970' pour '5 mars 1970'.");
        setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
        return false;
    }
    return true;
}

// Vérifie si un champ contient 8 caractères
function isLen8(elem) {
	var str = elem.value;
    var re = /\b.{8}\b/;
    if (!str.match(re)) {
        alert("Veuillez respecter le format de date de naissance suivant : '05031970' pour '5 mars 1970'.");
        setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
        return false;
    } else {
        return true;
    }
}

// Positionne le curseur dans un champ donné
function focusElement(formName, elemName) {
    var elem = document.forms[formName].elements[elemName];
	var p_elem = "p_"+elemName;
	var span_elem = "span_"+elemName;
	document.getElementById(p_elem).className = 'alerte';
	document.getElementById(span_elem).className = 'message_alerte';
	document.getElementById(span_elem).value = 'message_alerte';
    elem.focus();
    elem.select();
}
/*-------------------------------------------------------------------------------------------------------------------*/

function uncheck(form,qui)
{
	eval("document."+form+"."+qui+".checked=false");
}

function my_submit(action,qui,page)
{
	location.href=page+"?action="+action+"&id="+qui;
}

function changeCouleur(qui,couleur)
{
	qui.bgColor = couleur;
}

the_txt ="";
function recup(qui){
	the_txt =qui;
}


/*-------------------------------------------------------------------------
	Fonction de chargement des pages en AJAX
	
	@ page : l'url ou le nom.extension de la page à charger
	@ data : les variables à passer en GET à la page appellée
	@ idAfficheur : le nom de l'élément ds la page qui affiche le retour
	@ moteur : specifie si la page appellée est 'moteur', si oui elle renverra une page a appeller en retour
---------------------------------------------------------------------------*/

function affichePage(page, data, idAfficheur, moteur) {
	
	var xhr_object = null;
	
	if(idAfficheur == null || idAfficheur == undefined) container = document.getElementById("frame_site");
	else container = document.getElementById(""+idAfficheur+"");
	
	if(window.XMLHttpRequest) // Firefox 
	   xhr_object = new XMLHttpRequest(); 
	else if(window.ActiveXObject) // Internet Explorer 
	   xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 
	else { // XMLHttpRequest non supporté par le navigateur 
	   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
	   return; 
	} 
	 
		if(data == 'null' || data == undefined)
        {
		    //Ouverture du fichier sélectionné:
           xhr_object.open("GET", page);
        }//fin if
        else
        {
            //Ouverture du fichier en methode GET
            xhr_object.open("GET", page+"?"+data);
        }//fin else
	 
	xhr_object.onreadystatechange = function() 
	{ 
	   if(xhr_object.readyState == 4 && xhr_object.status == 200) 
	   {
			// Si la page est "moteur" elle renvoie des informations utiles pour l'affichage, on relance alors la fonction avec ces nouveaux parametres
			if(moteur == "true")
			{
				affichePage(xhr_object.responseText, 'null', idAfficheur, 'false');
			}
			else 
			{
				container.innerHTML = xhr_object.responseText ; // Affichage de la page
				// Dans le cas de la page "occasions", je relance la fonction pour afficher le listage "en vedette" au chargement de la page depuis le menu.
				// La page "occasions.htm" devant être chargée AVANT le nouvel appel afin de pouvoir appeller le conteneur "listeOccasions" present ds la page "occasions.htm"
				// sinon la page ne s'afficherait pas.
				switch(page)
				{
					case("occasions.htm"): //mettre htm pour remettre par défaut 
						affichePage('liste_occaz.php', 'choix=vedette', 'listeOccasions', 'false');
						break;
					case("liste_occaz.php"):
						affichePage('detail_occaz.php','null','detail_annonce', 'false');	
						break;
				}
			}
	   }
	}
	xhr_object.send(null);
}

/*------------------------------------------------------------------------

		Fonction traitement de formulaires et chargement AJAX
					Lionel 07/12/2005 - ARMEO

------------------------------------------------------------------------*/
function envoiDonnees(page, data, method, infos, moteur) {
	/**
	* @page : page à charger
	* @data : les donnees à traiter
	* @method : GET ou POST
	* @infos : Id de l'element de la page qui affiche le retour
	* @moteur : specifie si la page appellée est 'moteur', si oui elle renverra une page a appeller en retour
	*/
	
	// Transforme le formulaire transmis en url (paires donnee=valeur)
	data = transformeEnURL(data);
	
	if(infos == null || infos == undefined) container = document.getElementById("frame_office");
	else container = document.getElementById(""+infos+"");

    if(document.all)
    {
        //Internet Explorer
        var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
    }//fin if
    else
    {
        //Mozilla
        var XhrObj = new XMLHttpRequest();
    }//fin else
    
    //si on envoie par la méthode GET:
    if(method == "GET")
    {
        if(data == 'null')
        {
            //Ouverture du fichier sélectionné:
            XhrObj.open("GET", page);
        }//fin if
        else
        {
            //Ouverture du fichier en methode GET
            XhrObj.open("GET", page+"?"+data);
        }//fin else
    }//fin if
    else if(method == "POST")
    {
        //Ouverture du fichier en methode POST
        XhrObj.open("POST", page);
    }//fin elseif

    //Ok pour la page cible
    XhrObj.onreadystatechange = function()
    {
        if (XhrObj.readyState == 4 && XhrObj.status == 200)
			/* Si la page appellée est une page 'moteur',
			* elle renvoie une page a appeller
			* qui est chargee par affichePage
			*/
			if(moteur == "true")
			{
				affichePage(XhrObj.responseText, 'null', infos, 'false');
			}
			else container.innerHTML = XhrObj.responseText ;
    }    

    if(method == "GET")
    {
        XhrObj.send(null);
    }//fin if
    else if(method == "POST")
    {
        XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
        XhrObj.send(data);
    }//fin elseif	
	
}

/*-------------------------------------------------------------------------------------
	Transforme un formulaire en donnees d'url du type : donnee=valeur&donnee2=valeur2
	Lionel 07/12/2005 - ARMEO
	
	@data : un formulaire
	
-------------------------------------------------------------------------------------*/
function transformeEnURL(data){
	
	var formulaire = data.elements;
	chaine = "";
	
	for(i=0; i<formulaire.length ; i++)
	{
		var nomChps = formulaire[i].name;
		var valeurChps = formulaire[i].value;
		
		if(nomChps != undefined)
		{
			if(chaine != "") 
			{			
				if(formulaire[i].type == "radio") 
				{
					if(formulaire[i].checked) chaine += "&"+nomChps+"="+valeurChps;	
				}
				else chaine += "&"+nomChps+"="+valeurChps;
			}
			else
			{
				if(formulaire[i].type == "radio")
				{
					if(formulaire[i].checked) chaine = nomChps+"="+valeurChps;	
				}
				else chaine = nomChps+"="+valeurChps;
			}
		}
	}
	return chaine;
}

function verifEtEnvoiForm(formulaire, page, methode, infos, moteur) {
	if(verif_form(formulaire)) envoiDonnees(page, formulaire, methode, infos, moteur);	
}

function afficheImage(urlImage) {
	window.open("popup_image.php?img="+urlImage+"", "Visualisation des photos", "width=300px, height=250px, top=250px, left=250px, scrollbars=no, menubar=no");
}
function myPopUp(nom, page, largeur, hauteur, x, y){
	window.open(page, nom, "width="+largeur+"px, height="+hauteur+"px, top="+y+"px, left="+x+"px, scrollbars=no, menubar=no");
}
