
/*
 * Enleve les espaces en debut et en fin de chaine
 */ 

function trim(string)
{
return string.replace(/(^\s*)|(\s*$)/g,'');
} 


/*
 * Marque une pause 
 */ 
function sleep(ms) {
var startDate=new Date()
var e=0; var time=0;
while (time < ms) {
try {
if ((ms-time) > 249) {
var xhr=getXhr();
xhr.open("GET","/JS/wait.aspx?date=" + escape (new Date()) + "&time="+(ms-time),false);
xhr.send(null);
}
} catch (ex) { e++; }
time = new Date().getTime() - startDate.getTime()
}
}

/*
 * Cette fonction determine si le champ specifie, qui est obligatoire, a bien ete rempli par l'utilisateur
 */ 
function check_champ_renseigne(champ) {
  var valeur = document.getElementById(champ).value;
  if (valeur==null || valeur=="") {
    var message = document.getElementById("message").innerHTML;
    var titre_champ = document.getElementById(champ).title;
    document.getElementById("message").innerHTML = message+"<br/>Le champ \""+titre_champ+"\" est obligatoire";
    return false;
  }
  return true;
}

/**
 * Cette fonction verifie que tous les champs specifies, qui sont obligatoires, ont bien ete remplis par l'utilisateur
 * L'argument est un tableaux de chaines de caracteres 
 */ 
function check_champs_renseignes(champs) {
  var tous_champs_ok = true;
  document.getElementById("message").innerHTML = "";
  for (var i=0; i<champs.length; i++) {
    tous_champs_ok =  check_champ_renseigne(champs[i]) && tous_champs_ok;
  }
  return tous_champs_ok;
}

/**
 * Cette fonction verifie que l'adresse email ecrit par l'utilisateur a un format correct
 * L'argument passe est le nom du champ correspondant a l'email 
 */ 
function check_format_mail(mail) {
  var valeur = document.getElementById(mail).value;
  if (valeur!=null && valeur!="") {
    var pattern = "^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9]+)*" ;
    if (valeur.search(pattern) == -1) {
      var message = document.getElementById("message").innerHTML;
      document.getElementById("message").innerHTML = message+"<br/>L'adresse e-mail saisie est invalide";
      return false;
    }
  }
  return true;
}

/**
 * Cette fonction verifie que la valeur saisie dans le champ specifie est bien un nombre decimal
 */ 
function check_champ_decimal(champ) {
  var valeur = document.getElementById(champ).value;
  valeur = valeur.replace(",", ".");
  var nan = isNaN(valeur);
  if (nan) {
    var message = document.getElementById("message").innerHTML;
    var titre_champ = document.getElementById(champ).title;
    document.getElementById("message").innerHTML = message+"<br/>Le champ \""+titre_champ+"\" doit &ecirc;tre de valeur num&eacute;rique";
  } else {
    document.getElementById(champ).value = valeur;
  }
  return !nan;
}

/**
*fonctions utilisees dans la verification des champs obligatoires et numeriques (form_creer_annonce...)
*/

/**
 * Affiche l'élément d'id donné
 * param champOffsetTop : id de l'élément pour lequel l'élément "champ" doit avoir le même offsetTrop (càd qu'ils doivent être alignés en haut) 
 */ 
function apparition(champ, champOffsetTop){
  document.getElementById(champ).style.visibility = 'visible';
  // TODO à supprimer
  /*alert("champOffsetTop="+champOffsetTop);
  if (champOffsetTop!=null) {
    alert("offsetTop="+document.getElementById(champOffsetTop).offsetTop+" offsetLeft="+document.getElementById(champOffsetTop).offsetLeft);
    document.getElementById(champ).style.top = document.getElementById(champOffsetTop).offsetTop;
  }*/
}

function disparition(champ){
  document.getElementById(champ).style.visibility = 'hidden';
}

 /**
 * verifie si les 'champs' ont ete cochés selon le mode desiré(one:ok si une seule case cochée,all:ok si toutes les cases cochées), renvoi un message ou une coche(si true) dans le champ 'message'
 */ 

function verif_checked(champs,message,mode,coche){
var ok=false;
for (var i=0; i<champs.length; i++){
	switch (mode) {
		case 'one':
		ok=ok||document.getElementById(champs[i]).checked;
		break;
		case 'all':
		ok=ok&&document.getElementById(champs[i]).checked;
		break;
		}
	}
	if (!ok) {var texte = document.getElementById(message).title;
		document.getElementById(message).innerHTML = "<font color=#CC0000  style=\"font-size:11px;\">"+texte+"</font>";
			}
			else{if (coche==true){document.getElementById(message).innerHTML = '<img src="/images/coche_verte.png">';}
				}
return ok;
}

/**
 * efface les messages contenus dans les balises 'messages' selectionnées
 */ 

function efface_messages(messages){
	for (var i=0; i<messages.length; i++){
    document.getElementById(messages[i]).innerHTML='';
	}
}


/**
 * verifie que les champs 'champs' sont bien de valeur numerique, et renvoie un message dans les balises 'messages'
 */ 

function verif_champ_decimal(champs,messages) {
var ok=true;
	for (var i=0; i<champs.length; i++){
	var message = document.getElementById(messages[i]).innerHTML;
	 var valeur = document.getElementById(champs[i]).value;
 	 valeur = valeur.replace(",", ".");
 	 var nan = isNaN(valeur);
  	 if (nan) {
				var titre_champ = document.getElementById(champs[i]).title;
				document.getElementById(messages[i]).innerHTML = "<font color=#CC0000 style=\"font-size:11px;\"> Veuillez indiquer un nombre</font>";
				ok=false;
				}
				else {document.getElementById(champs[i]).value = valeur;
					}
  	}
  return ok;
 }

/**
 * verifie que les champs 'champs' ne sont pas vides, et renvoie un message dans les balises 'messages' ou une coche verte si 'coche'=true
 */ 
function verif_champ_renseigne(champs,messages,coche){
var tout_ok=true;
	for (var i=0; i<champs.length; i++){
		valeur=document.getElementById(champs[i]).value;
		valeur=trim(valeur);
		if (valeur==null || valeur=="") {
		var texte = document.getElementById(messages[i]).title;
		document.getElementById(messages[i]).innerHTML = "<font color=#CC0000  style=\"font-size:11px;\">"+texte+"</font> ";
		tout_ok=false;
		}
		else{ if (coche[i]==true){
		document.getElementById(messages[i]).innerHTML='<img src="/images/coche_verte.png" />';
												}
			}
	} 
	return tout_ok;
}

function verif_champ_renseigne_oblig(champs,messages,coche){
var tout_ok=true;
	for (var i=0; i<champs.length; i++){
		valeur=document.getElementById(champs[i]).value;
		valeur=trim(valeur);
		if (valeur==null || valeur=="") {
		
		document.getElementById(messages[i]).innerHTML = "<font color=#CC0000  style=\"font-size:11px;\">champ obligatoire</font>";
		tout_ok=false;
		}
		else{ if (coche[i]==true){
		document.getElementById(messages[i]).innerHTML='<img src="/images/coche_verte.png">';
												}
			}
	} 
	return tout_ok;
}


/**
 * calcule le nombre de caracteres du titre de l'annonce/recherche affichable sur une seule ligne
*/ 

function afficher_caracteres(diviseur, titre_php){
		  var largeur = document.body.offsetWidth; largeur = Math.ceil(largeur/diviseur);
		  var titre = titre_php; titre= trim(titre);
		  if (titre != ''){titre=titre.substring(0,largeur);
		  					document.write(titre);}
							else {document.write("[Sans titre]");
							}
			}
		  

/**
 * Efface toutes les lignes selectionnées d'un select multiple 
*/ 

function effacerSelect(selId) {
        var sel = document.getElementById(selId);
        for (var i=0; i<sel.options.length; i++) {
            var opt = sel.options[i];
            if (opt.selected) {
                sel.removeChild(opt);
                i--;
            }
        }
    }

/**
 * Permet l'agrandissement en pop d'une image
*/ 


function PopupImage2(img) { 
titre="Agrandissement"; 

w=open("",'image','width=200,height=200,top=350,left=0,toolbar=yes,scrollbars=yes,toolbar=no,location=no,menubar=no,status=no'); 
w.document.write("<HTML><HEAD><TITLE>"+titre+"</TITLE></HEAD>"); 
w.document.write("<SCRIPT language=javascript>function checksize() { if (document.images[0].complete) { window.resizeTo(document.images[0].width+50,document.images[0].height+130); window.focus();} else { setTimeout('checksize()',250) } }</"+"SCRIPT>"); 
w.document.write("<BODY onload='checksize()' onblur='window.close()' onclick='window.close()' leftMargin=0 topMargin=0 marginwidth=0 marginheight=0>");
w.document.write("<TABLE width='100%' border='0' cellspacing='0' cellpadding='0' height='100%'><TR>");
w.document.write("<TD valign='middle' align='center'><IMG src='"+img+"' border=0 alt='Mon image'>"); 
w.document.write("</TD></TR><TR><TD></TD></TR></TABLE>");
w.document.write("</BODY></HTML>"); 
w.document.close(); 
} 



