function myOpen(theURL,winName,features) {
  w=window.open(theURL,winName,features);
}

function estPresent(obj, nom, taille, type) {
	return maFonction(obj, nom, taille, type, true);
}

function estValide(obj, nom, taille, type) {
	return maFonction(obj, nom, taille, type, false);
}

function maFonction(obj, nom, taille, type, presence) {
	if (presence && obj.value == "") {
		alert("Vous devez préciser le champ '" + 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 reg1 = RegExp(" ","gi");
		var temp = obj.value.replace(reg,".");
		temp = obj.value.replace(reg1,"");
		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;
}

function IsEmail(is) {
	if (is.value.length != 0 && (is.value.indexOf('\@') == -1 || is.value.indexOf('.') == -1)) {
		alert('Vous devez donner un email valide\nex : votreNom@votreDomaine.com');
		return false;	
	}
	return true;
}

function IsNumber(is) {
	for (var i=0;i<is.value.length;i++) {
		var c = is.value.substring(i,i+1);
		if (c < "0" || c > "9") {
   			alert("Vous devez donner un nombre entier\nex : 69");
			return false;  
		}
	}
	return true;
}

function IsPositifFloat(is) {
	var cpt = 0;	
	for (var i=0;i<is.value.length;i++) {
		var c = is.value.substring(i,i+1);
		if (c == ".") {
			cpt++;
		}
		else if (c < "0" || c > "9") {
   			alert("Vous devez donner un décimal\nex : 37.2");
			return false;  
		}
	}
	if (cpt > 1) {
   		alert("Vous devez donner un décimal\nex : 37.2");
		return false;  
	}
	return true;
}

function IsFloat(is) {
	var cpt = 0;	
	for (var i=0;i<is.value.length;i++) {
		var c = is.value.substring(i,i+1);
		if (c == ".") {
			cpt++;
		}
		else if (i == 0 && c != "-" && (c < "0" || c > "9")) {
   			alert("Vous devez donner un décimal\nex : -37.2");
			return false; 		
		}		
		else if (i != 0 && (c < "0" || c > "9")) {
   			alert("Vous devez donner un décimal\nex : -37.2");
			return false;  
		}
	}
	if (cpt > 1) {
   		alert("Vous devez donner un décimal\nex : -37.2");
		return false;  
	}
	return true;
}

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;
}

function IsAdresseIP(is) {
	if (is.value.length > 15 ) {
		alert('Vous avez saisi trop de paramètres pour avoir une adresse IP valide');
		return false;	
	}

	var ipReg = new RegExp("[0-9]+[\.][0-9]+[\.][0-9-*]+[\.][0-9-*]+");
	if (!ipReg.test(is.value)) {
		alert("Vous devez saisir une adresse IP valide du type : xxx.xxx.xxx.xxx");
		return false;
	}
	return true;
}

function IsDate(is) {
	if (is.value.length == 0) { 
		return true;
	}
	if ((is.value.length != 10) || (is.value.substring(2,3) != "/") || (is.value.substring(5,6) != "/")) {
		alert("Vous devez donner une date valide\njj/mm/aaaa");
		return false;
	}
	var d = is.value.substring(0,2);
	if ((d < 1) || (d >31)) {
		alert("Le jour ne semble pas correct.\nVous devez donner une date valide\njj/mm/aaaa");
		return false;
	}
	var m = is.value.substring(3,5);
	if ((m < 1) || (m >12)) {
		alert("Le mois ne semble pas correct.\nVous devez donner une date valide\njj/mm/aaaa");
		return false;
	}
	var y = is.value.substring(6,10);
	if ((y < 1900) || (y >2100)) {
		alert("L'année ne semble pas correcte.\nVous devez donner une date valide\njj/mm/aaaa");
		return false;
	}
	return true; 
}

function DeplaceCritere(from, to) {
	index=0;
	while (index<from.options.length) {
		if (from.options[index].selected) {
			var newElem = new Option(from.options[index].text, from.options[index].value);
			to.options[to.length]=newElem;
			from.options[index]=null;
		}
		else {
			index++;
		}
	}
	Trie(to);
}

function Trie(obj) {
	modif = true;
	while (modif) {
		modif = false;
  		for (var i=0; i<(obj.options.length-1); i++) {
			if (obj.options[i].text > obj.options[i+1].text) {
				tempTxt = obj.options[i].text;
        		tempVal = obj.options[i].value;
        		obj.options[i].text=obj.options[i+1].text;
        		obj.options[i].value=obj.options[i+1].value;
        		obj.options[i+1].text=tempTxt;
        		obj.options[i+1].value=tempVal;
		    	modif=true;
			}
		}
	}
}

function EstDateValide(d1S, d2S, txt1S, txt2S) {
 // Indique si la date d1S qui correspond au champ txt1S
 // est inférieure à la date d2S qui correspond au champ txt2S
 // Tout ces champs sont des objets JavaScripts !

   // alert((d1S.value).substring(0,2) + "/" +  (d1S.value).substring(3,5) + "/" + (d1S.value).substring(6,10));

   var d1 = new Date((d1S.value).substring(6,10), (d1S.value).substring(3,5), (d1S.value).substring(0,2));
   var d2 = new Date((d2S.value).substring(6,10), (d2S.value).substring(3,5), (d2S.value).substring(0,2));

   if (d1>=d2) {
      alert(txt1S + " (" + d1S.value + ")" + " doit etre inferieure a " + txt2S + " (" + d2S.value + ")");
      return false;
   }
   else {
      // alert(txt1S + " (" + d1S.value + ")" + " est OK vis a vis de " + txt2S + " (" + d2S.value + ")");
      return true;
   }
}

function replaceString(oldS, newS, fullS) {
 // Remplace oldS avec newS dans la chaine 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 taille reelle";
	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+12,document.images[0].height+40); window.focus();} else { setTimeout('check()',250) } }</"+"SCRIPT>");
	w.document.write("<BODY onload='checksize()' leftMargin=0 topMargin=0 marginwidth=0 marginheight=0><IMG src='"+img+"' border=0>");
	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,".");
if(!isNaN(obj.value)){
	if(obj.value!=""){
	obj.value = parseFloat(obj.value);
	}
	return true;
}
else{
alert("Veuillez saisir un nombre dans le champ "+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;
}

//Popup pour afficher les détails
function Affiche_detail(page){
window.open(page,'win1','top=0,left=200,width=490,height=350,toolbar=no,scrollbars=yes,resizable=yes,status=no');	
}