/*
Fonctions Javascript pour Site Internet

Copyright (c) YZEO 2005,2006
Créé le 10/05/2005 par Flavien BUCHETON

Dernière modification le 20/12/2006
*/

//Vérifie si champ présent
function estPresent(obj, nom, taille, type) {
	return maFonction(obj, nom, taille, type, true);
}

//Vérifie si champ valide
function estValide(obj, nom, taille, type) {
	return maFonction(obj, nom, taille, type, false);
}

//Fonction de vérification des champs
function maFonction(obj, nom, taille, type, presence) {
	if (presence && obj.value == "") {
		alert(nom);
		obj.focus();
		return false;
	}
	if (taille != -1 && obj.value.length > taille) {
		alert("Le champ '" + nom + "' est trop long.\nMaximum " + taille + " caractères.");
		obj.focus();
		obj.select();
		return false;		
	}
	if (obj.value != "" && type == "int") {
		temp = parseInt(obj.value);
		if (isNaN(temp)) {
			alert("Le champ '" + nom + "' n'est pas un nombre entier.");
			obj.focus();
			obj.select();
			return false;
		}
		obj.value = temp
	}
   else if (obj.value != "" && type == "intPositif") {
		temp = parseInt(obj.value);
		if (isNaN(temp)) {
			alert("Le champ '" + nom + "' n'est pas un nombre entier.");
			obj.focus();
			obj.select();
			return false;
		}
		else if (temp < 0) {
			alert("Le champ '" + nom + "' n'est pas un nombre entier POSITIF.");
			obj.focus();
			obj.select();
			return false;
		}
		obj.value = temp
	}
	else if (obj.value != "" && type == "float") {
		var reg = RegExp(" ","gi");
		var temp = obj.value.replace(reg,"");
		temp = Remplace(temp,",",".");
		temp = parseFloat(temp);
		if (isNaN(temp)) {
			alert("Le champ '" + nom + "' n'est pas un nombre décimal.");
			obj.focus();
			obj.select();
			return false;
		}
		obj.value = temp			
	}
	else if (obj.value != "" && type == "floatPositif") {
		var temp = replaceString(",", ".", obj.value);
		temp = parseFloat(temp);
		if (isNaN(temp)) {
			alert("Le champ '" + nom + "' n'est pas un nombre décimal.");
			obj.focus();
			obj.select();
			return false;
		}
		else if (temp < 0) {
			alert("Le champ '" + nom + "' n'est pas un nombre décimal POSITIF.");
			obj.focus();
			obj.select();
			return false;
		}
		obj.value = temp
	}
	else if (obj.value != "" && type == "email") {
		var i = obj.value.indexOf("@",2);
		var j = obj.value.indexOf(".", i + 3);
		if ((i == -1) || (j == -1) || (j + 3 > obj.value.length)) {
			alert("Le champ '" + nom + "' n'est pas un email valide.");
			obj.focus();
			obj.select();
			return false;			
		}		
	}
	else if (obj.value != "" && type == "url") {
		var i = obj.value.indexOf("www.",0);
		
		if (i == -1) {
			alert("Le champ '" + nom + "' n'est pas une url valide.");
			obj.focus();
			obj.select();
			return false;			
		}		
	}
	else if (obj.value != "" && type == "date") {
		var ok = true;
		if ((obj.value.length != 10) || (obj.value.substring(2,3) != "/") || (obj.value.substring(5,6) != "/")) ok = false;
		var i = obj.value.substring(0,2);
		if ((i < 1) || (i >31)) ok = false;
		i = obj.value.substring(3,5);
		if ((i < 1) || (i >12)) ok = false;	
		i = obj.value.substring(6,10);
		if ((i < 1900) || (i >2100)) ok = false;		
		if (!ok) {
			alert("Le champ '" + nom + "' n'est pas une date valide.\nFormat : jj/mm/aaaa.");
			obj.focus();
			obj.select();
			return false;			
		}
	}	
	else if (obj.value != "" && type == "ip") {
		var ipReg = new RegExp("[0-9]{3}[\.][0-9]{3}[\.][0-9]{1,3}[\.][0-9]{1,3}");
		if (!ipReg.test(obj.value)) {
			alert("Le champ '" + nom + "' n'est pas une adresse ip valide.");
			obj.focus();
			obj.select();
			return false;
		}
	}
	
	return true;
}

//Vérifie mots clés
function IsMotcle(str) {
	nb = 0;
	exReg = /\r/;
	while (exReg.test(str)) {
		str = str.replace(exReg, "");
		nb++;
	}
	
	if (nb>50) {
	result = nb -50;
		alert("Vous ne pouvez pas saisir plus de 50 mots clés par commerce ! veuillez en enlever " + result + " ");
		return false;
	}
	return true;
}

// Indique si la date d1S est inférieure à la date d2S
function EstDateValide(d1S, d2S, txt) {
	if(d2S.value==""){ return true; }
	else{
	if(d1S.value==""){ alert(txt); d1S.focus(); d1S.select(); return false; }
	}
 
	d1 = new Date(0);
	d1.setDate((d1S.value).substring(8,10));
	d1.setMonth((d1S.value).substring(5,7)-1);
	d1.setFullYear((d1S.value).substring(0,4));
	
	d2 = new Date(0);
	d2.setDate((d2S.value).substring(8,10));
	d2.setMonth((d2S.value).substring(5,7)-1);
	d2.setFullYear((d2S.value).substring(0,4));   
   
    if (d1.getTime()>=d2.getTime()) {
      alert(txt);
	  d1S.focus();
	  d1S.select();
      return false;
    }
    else {
      return true;
    }
}

//Vérification des heures
function VerifTime(obj,tmin,tmax,msg){
	var ok = true;
	ok = ok && !isNaN(obj.value);
	if(obj.value<tmin){ ok = false; }
	if(obj.value>tmax){ ok = false; }
	
	if(ok){ return true; }
	else{
	alert(msg);
	obj.focus();
	obj.select();
	return false;
	}	
}

//Remplace oldS avec newS dans la chaine fullS
function replaceString(oldS, newS, fullS) {
    for (var i=0; i<fullS.length; i++) {
       if (fullS.substring(i,i+oldS.length) == oldS) {
          fullS = fullS.substring(0,i)+newS+fullS.substring(i+oldS.length,fullS.length)
       }
    }
    return fullS
}

//Affiche une image (img) dans un popup
function PopupImage(img) {
	titre="Image agrandie";
	w=open("",'image','top=0,left=200,width=400,height=400,toolbar=no,scrollbars=no,resizable=yes');	
	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+15,document.images[0].height+85); window.focus();} else { setTimeout('checksize()',250) } }</"+"SCRIPT>");
	w.document.write("<BODY onload='checksize()' leftMargin=0 topMargin=0 marginwidth=0 marginheight=0><a href='javascript:window.close();'><IMG src='"+img+"' border=0></a>");
	w.document.write("");
	w.document.write("</BODY></HTML>");
	w.document.close();
}

//Verifie un champ prix
function Verifprix(obj,txt){
var reg = RegExp(",","gi");
obj.value = obj.value.replace(reg,".");
var reg1 = RegExp(" ","gi");
obj.value = obj.value.replace(reg1,"");
if(!isNaN(obj.value)){
	if(obj.value!=""){
	obj.value = parseFloat(obj.value);
	return true;
	}
	else{
	alert(txt);
	return false;
	}
}
else{
alert(txt);
return false;
}
}

//Verifie une promotion
function Verifpromo(obj){
if(obj.promo.checked==true){
if(!Verifprix(obj.prixpromo,"Prix promotionnel")){ return false; }
}
return true;
}

//Verifie si l'élément (elem) se trouve dans le tableau (tab)
function existin_tab(elem,tab){
for(i in tab){
	if(tab[i]==elem) { return true;}
}
return false;
}

//Remplace tous les occurences de a par b dans expr
function Remplace(expr,a,b) {
      var i=0
      while (i!=-1) {
         i=expr.indexOf(a,i);
         if (i>=0) {
            expr=expr.substring(0,i)+b+expr.substring(i+a.length);
            i+=b.length;
         }
      }
      return expr
}

//Ouvrir Popup
function OpenFen(page,titre,x,y,w,h,s