function Post_Form(npostform,formName,validation,link,name_) {
	var param;
	var action;
	var reload=false;
	var postform=document.forms[npostform];
	if (validation.search("&err_")>=0) {
		action=location.pathname+"?";
		param=GetPrivateParamLine(formName) + "&THEREAREERRORS=yes";
		reload=true;
	} else {
		if ((link=="") || (link=="?")) {
			action=location.pathname;
			param=GetPrivateParamLine(formName);
			reload=true;
		} else {
			action=link;
			param=GetParamLine(formName);
		}
	}
	if (validation!="")
		param+="&" + validation;
	if (name_!="")
		if (reload)
			param+="&"+name_;
		else
			if (name_.indexOf("_prv_")<0)
				param+="&"+name_;
//	param=param+"&COOKIE="+escape(getCookie("zannoncesCookie"));
	postform.elements[0].value=param;
	postform.action=action;
	postform.submit();
}

function Popup_Form(npostform,formName,validation,link,name_,paramPopup) {
	var param;
	var action;
	var reload=false;
	var postform=document.forms[npostform];
	if (validation.search("&err_")>=0) {
		action=location.pathname+"?";
		param=GetPrivateParamLine(formName) + "&THEREAREERRORS=yes";
		reload=true;
	} else {
		if ((link=="") || (link=="?")) {
			action=location.pathname;
			param=GetPrivateParamLine(formName);
			reload=true;
		} else {
			action=link;
			param=GetParamLine(formName);
		}
	}
	if (validation!="")
		param+="&" + validation;
	if (name_!="")
		if (reload)
			param+="&"+name_;
		else
			if (name_.indexOf("_prv_")<0)
				param+="&"+name_;
//	param=param+"&COOKIE="+escape(getCookie("zannoncesCookie"));
	postform.elements[0].value=param;
	postform.target="_pop";
	postform.action=action;
	window.open('about:blank','_pop',paramPopup);
	postform.submit();
	
}

function Submit_Form(formName,validation,link,name_) {
var reload=false;
	if ((link=="") || (link=="?")) {
		link=location.pathname+"?"+GetPrivateParamLine(formName);
		reload=true;
	} else
		link+=GetParamLine(formName);
	
	if (validation.search("&err_")>=0) {
		link=location.pathname+"?"+GetPrivateParamLine(form) + "&THEREAREERRORS=yes";
		reload=true;
	}
	link+="&" + validation;
	if (name_!="")
		if (reload)
			link+="&"+name_;
		else
			if (name_.indexOf("_prv_")<0)
				link+="&"+name_;

  	location.href = link;
  	alert(link);
}
function GetValue(ob) {
	if (ob==null) return "";
	var type=ob.type;
	var value="";
	if (type=="select-one") {
		value=ob.options[ob.selectedIndex].value;
	} else if (type=="radio" || type=="checkbox"){
		if (ob.checked)
			value=ob.value;
	} else if (type=="button")
		value="";
	else
		value=ob.value;
	return value;
}
function SetValue(ob,value) {
	var type=ob.type;
	if (type=="select-one") {
		opts=ob.options;
		for(n=0;n<opts.length;n++) {
			opt=opts[n];
			if (opt.value==value)
				ob.selectedIndex=n;
		}
	} else if (type=="radio" || type=="checkbox"){
		if ((value=="yes") || (value=="true") || (value=="checked"))
			ob.checked=true;
		else
			ob.checked=false;
	} else if (type!="button")
		ob.value=value;
	return value;
}
function GetParamLine(formName) {
	paramline="";
	documentForms=document.forms;
	for(df=0;df<documentForms.length;df++) {
		form=documentForms[df];
		if (form.name==formName) {
			nelem=form.length;
			for (n=0;n<nelem;n++) {
				elem=form.elements[n];
				name_=elem.name;
				if ((name_.indexOf("_prv_")<0) && (name_.indexOf("&err_")<0) && (elem.type!="button") && (elem.type!="submit") && (elem.type!="reset")) {
					value=escape(GetValue(elem));
					if (value!="") {
						if (paramline!="") 
							paramline+="&";
						paramline+=name_+"="+value;
					}
				}
			}
		}
	}
	return(paramline);
}
function GetPrivateParamLine(formName) {
	paramline="";
	documentForms=document.forms;
	for(df=0;df<documentForms.length;df++) {
		form=documentForms[df];
		if (form.name==formName) {
			nelem=form.length;
			for (n=0;n<nelem;n++) {
				elem=form.elements[n];
				name_=elem.name;
				value=escape(GetValue(elem));
				if (value!="") {
					if (paramline!="") 
						paramline+="&";
					paramline+=name_+"="+value;
				}
			}
		}
	}
	return(paramline+"&"+GetScrollbarPosition());
}
function getCookie(cookieName) {
	var dc=document.cookie;
	var prefix=cookieName+"=";
	var begin=dc.indexOf("; "+prefix);
	if (begin==-1) {
		begin=dc.indexOf(prefix);
		if (begin!=0) return "";
	} else
		begin += 2;
	var end=document.cookie.indexOf(";", begin);
	if (end==-1)
	end=dc.length;
	return dc.substring(begin + prefix.length, end);
}
function removeParamFromCookie(cookieName,paramName) {
	var cookieValue=getCookie(cookieName);
	var prefix=paramName+"=";
	var begin,end;

	for(;;) {
		begin=cookieValue.indexOf("&"+prefix);
		if (begin<0) {
			begin=cookieValue.indexOf(prefix);
			if (begin!=0) {
				break;
			} else {
				end=cookieValue.indexOf("&");
				if (end<0) end=cookieValue.length;
			}
		} else {
			begin +=1;
			end=cookieValue.indexOf("&", begin);
			if (end<0)
				end=cookieValue.length;
		}
		cookieValue=cookieValue.substring(0,begin)+cookieValue.substring(end);
	}
	//cookieValue=cookieValue.replace(/&/g,"");
	cookieValue=cookieValue.replace("&&","&");
	setCookie(cookieName,cookieValue);
	//alert("cookieValue:" + cookieValue);
	return cookieValue
}

function addParamToCookie(cookieName,paramName,paramValue) {
	cookieValue=removeParamFromCookie(cookieName,paramName);
	setCookie(cookieName,cookieValue+"&"+paramName+"="+paramValue);
}
function setCookie(cookieName, cookieValue) {
	var today = new Date();
	var expiry = new Date(today.getTime()+365*24*60*60*1000);
	var baseURL = "/";
	if (cookieValue==null) cookieValue="";

	document.cookie=cookieName+"="+cookieValue+"; expires="+expiry.toGMTString()+"; path="+baseURL;
}
function GetScrollbarPosition() {
	var isIE = document.all?true:false;
	var x,y;
	if (!isIE) {
		x=window.pageXOffset;
		y=window.pageYOffset;
	}
	if (isIE) {
		x=document.body.scrollLeft;
		y=document.body.scrollTop;
	}
	return("SCROLLBARS="+x+","+y+"");
}
function SetScrollbarPosition(x,y) {
//	var isIE = document.all?true:false;
//	if (!isIE) {
//		window.pageXOffset=x;
//		window.pageYOffset=y;
//	}
//	if (isIE) {
		scrollTo(x,y);
//	}
}
function ValidateAFloat(formName,elementName,max,min) {
	documentForms=document.forms;
	for(df=0;df<documentForms.length;df++) {
		form=documentForms[df];
		if (form.name==formName.name) {
			nelem=form.length
			for(n=0;n<nelem;n++) {
				ob=form.elements[n];
				if (ob.name==elementName) {
					value=ob.value;
					if (value!="") {
						value=Number(value)
						if (isNaN(value))
							//	return "&err_"+ob.name+"="+escape(ErrorMessage(1));
							return "jjj";
						if (min!="x")
							if (value<Number(min))
								return "&err_"+ob.name+"="+escape(ErrorMessage(2)+min);
						if (max!="x")
							if (value>Number(max))
								return "&err_"+ob.name+"="+escape(ErrorMessage(3)+max);
					}
				}
			}
		}
	}
	return "";
}
function ValidateAString(formName,elementName,max,min) {
	documentForms=document.forms;
	for(df=0;df<documentForms.length;df++) {
		form=documentForms[df];
		if (form.name==formName.name) {
			nelem=form.length;
			for (n=0;n<nelem;n++) {
				ob=form.elements[n];
				if (ob.name==elementName) {
					value=ob.value;
					if (value!="") {
						if (max!="x")
							if (value.length>Number(max))
								return "&err_"+ob.name+"="+escape(ErrorMessage(4) + max);
						if (min!="x")
							if (value.length<Number(min))
								return "&err_"+ob.name+"="+escape(ErrorMessage(5) + min);
					}
				}
			}
		}
	}
	return "";
}
function ValidateAnInteger(formName,elementName,max,min) {
	documentForms=document.forms;
	for(df=0;df<documentForms.length;df++) {
		form=documentForms[df];
		if (form.name==formName.name) {
			nelem=form.length;
			for (n=0;n<nelem;n++) {
				ob=form.elements[n];
				if (ob.name==elementName) {
					value=ob.value;
					if (value!="") {
						value=Number(value);
						if (isNaN(value))
							return "ffff";
						if (Math.floor(value)!=value)
							return "rrrr";
							
						if (min!="x")
							if (value<Number(min))
								return "dddd";
						if (max!="x")
							if (value>Number(max))
								return "gggg";
					}
				}
			}
		}
	}
	return "";
}

function ValidateAPhone(formName,elementName) {
	documentForms=document.forms;
	for(df=0;df<documentForms.length;df++) {
		form=documentForms[df];
		if (form.name==formName.name) {
			nelem=form.length;
			for (m=0;m<nelem;m++) {
				ob=form.elements[m];
				if (ob.name==elementName) {
					value=ob.value;
					for(n=0;n<value.length;n++) {
						c=value.charAt(n);
						if ((c<"0" || c>"9") && c!=" ")
								return "&err_"+ob.name+"="+escape(ErrorMessage(7));
					}
				}
			}
		}
	}
	return "";
}

function ValidateAnEMail(formName,elementName) {
	documentForms=document.forms;
	for(df=0;df<documentForms.length;df++) {
		form=documentForms[df];
		if (form.name==formName.name) {
			nelem=form.length;
			for (m=0;m<nelem;m++) {
				ob=form.elements[m];
				if (ob.name==elementName) {
					value=ob.value;	
					if (value.length==0)
						return "";
					n=0;
					ok=false;
					while (n<value.length) {
						c=value.charAt(n++);
						if (c=="@") {
							ok=true;
							break;
						}
					}
					if (ok) {
						ok=false;
						while (n<value.length) {
							c=value.charAt(n++);
							if (c==".") {
								ok=true;
								break;
							}
						}
					}
					if (ok) {
						ok=false;
						while (n<value.length)
							n+=1;
						if (value.charAt(n)!=".")
							ok=true;
					}
					if (!ok)
					//	return "&err_"+ob.name+"="+escape(ErrorMessage(8));
					return"hhhh";
				}
			}
		}
	}
	return "";
}
function ValidateADateTime(formName,elementName,max,min) {
	var ns,nv,c;
	var yyyy="",mm="",dd="";
	var hh24="",mi="",ss="";
	var ob,value;
	documentForms=document.forms;
	for(df=0;df<documentForms.length;df++) {
		form=documentForms[df];
		if (form.name==formName.name) {
			nelem=form.length;
			for(m=0;m<nelem;m++) {
				ob=form.elements[m];
				if (ob.name==elementName) {
					value=ob.value;
					nv=value.length;
					if (nv<=0) continue;
					ns=0;
					for(n=0;n<nv;n++) {
						c=value.charAt(n)
						if (c>="0" && c<="9") {
							switch (ns) {
								case 0:dd+=c;break;
								case 1:mm+=c;break;
								case 2:yyyy+=c;break;
								case 3:hh24+=c;break;
								case 4:mi+=c;break;
								case 5:ss+=c;break;
								default: return "&err_"+ob.name+"="+escape(ErrorMessage(9));
							}
						} else
							ns+=1;
					}
					yyyy*=1;mm*=1;dd*=1;hh24*=1;
					var min=mi*1;
					var seg=ss*1; if (seg==0) ss=""; else ss=":"+seg;
					if (yyyy<100)
						if (yyyy>50) yyyy+=1900; else yyyy+=2000;
					if (mm<1 || mm>12) return "&err_"+ob.name+"="+escape(ErrorMessage(9));
					if (dd<1 || dd>DaysInTheMonth(yyyy,mm)) return "&err_"+ob.name+"="+escape(ErrorMessage(9));
					if (hh24<0 || hh24>23) return "&err_"+ob.name+"="+escape(ErrorMessage(9));
					if (min<0 || min>59) return "&err_"+ob.name+"="+escape(ErrorMessage(9));
					if (seg<0 || seg>59) return "&err_"+ob.name+"="+escape(ErrorMessage(9));
					if ((hh24==0) && (min==0) && (seg==0))
						ob.value=dd+"/"+mm+"/"+yyyy;
					else
						ob.value=dd+"/"+mm+"/"+yyyy+" "+hh24+":"+mi+ss;
					var d=new Date(mm+"/"+dd+"/"+yyyy+" "+hh24+":"+mi+ss)
					var dmax=new Date(max);
					var dmin=new Date(min);
					if (d<dmin)	return "&err_"+ob.name+"="+escape(ErrorMessage(2)+EuropeanDateTime(dmin));
					if (d>dmax)	return "&err_"+ob.name+"="+escape(ErrorMessage(3)+EuropeanDateTime(dmax));
					return "&alt_"+ob.name+"="+DaysSince30Dec1899(yyyy,mm,dd)+FractionOfDay(hh24,min,seg);
				}
			}
		}
	}
	return "";
}
function ValidateADate(formName,elementName,max,min) {
var ns,nv,c;
var yyyy="",mm="",dd="";
var ob,value;
	documentForms=document.forms;
	for(df=0;df<documentForms.length;df++) {
		form=documentForms[df];
		if (form.name==formName.name) {
			nelem=form.length;
			for(m=0;m<nelem;m++) {
				ob=form.elements[m];
				if (ob.name==elementName) {
					value=ob.value;
					nv=value.length;
					if (nv<=0) continue;
					ns=0;
					for(n=0;n<nv;n++) {
						c=value.charAt(n)
						if (c>="0" && c<="9") {
							switch (ns) {
								case 0:dd+=c;break;
								case 1:mm+=c;break;
								case 2:yyyy+=c;break;
								default: return "&err";
							}
						} else
							ns+=1;
					}
					yyyy*=1;
					if (yyyy<100)
						if (yyyy>50) yyyy+=1900; else yyyy+=2000;
					if (mm<1 || mm>12) return "&err";
					if (dd<1 || dd>DaysInTheMonth(yyyy,mm)) return "&err";
					ob.value=dd+"/"+mm+"/"+yyyy;
					var d=new Date(mm+"/"+dd+"/"+yyyy);
					var dmax=new Date(max);
					var dmin=new Date(min);
					if (d<dmin)	return "eeeeee";
					if (d>dmax)	return "&err";
					return "";
				}
			}
		}
	}
	return "";
}
function EuropeanDateTime(d) {
var m=d.getMonth()+1;
	return d.getDate()+"/"+m+"/"+d.getYear()+" "+d.getHours()+":"+d.getMinutes()+":"+d.getSeconds()
}
function EuropeanDate(d) {
var m=d.getMonth()+1;
	return d.getDate()+"/"+m+"/"+d.getYear();
}
function DaysInTheMonth(yyyy,mm) {
	if (mm==2)
		return DaysInTheYear(yyyy)-337;
	else
		if (mm==4 || mm==6 || mm==9 || mm==11)
			return 30;
		else
			return 31;
}
function DaysInTheYear(yyyy) {
	if (yyyy%100==0)               // Les debuts de siecles ne sont pas bisextiles.
		if (yyyy%400==0)           // Sauf chaque 400 ans.
			return 366;
		else
			return 365;
	else
		if (yyyy%4==0)            // Tous les 4 ans, une année bisextile.
			return 366;
		else
			return 365;
}
function DaysSince30Dec1899(yyyy,mm,dd) {
var days=1;
var n;
	if (yyyy>1900)
		for(n=1900;n<yyyy;n++)
			days+=DaysInTheYear(n);
	else
		for(n=1900;n>yyyy;n--)
			days-=DaysInTheYear(n);
	for(n=1;n<mm;n++)
		days+=DaysInTheMonth(yyyy,n);
	days+=dd*1;
	return days;
}
function FractionOfDay(hh24,mi,ss) {
var seconds;
	seconds=hh24*3600;
	seconds+=mi*60;
	seconds+=ss*1;
	seconds/=86400;
	seconds=Math.round(seconds*10000)/10000
	return seconds;
}
function ValidateAMultiple(formName,elementName) {
//	err_field=""
	documentForms=document.forms;
	for(df=0;df<documentForms.length;df++) {
		form=documentForms[df];
		if (form.name==formName.name) {
			count=form.elements.length;
			for (n=0;n<count;n++) {
				name1=form.elements[n].name;
				value1=GetValue(form.elements[n]);
				if ((name1==elementName) && (value1!=""))
					for (m=n+1;m<count;m++) {
						name2=form.elements[m].name;
						if (name1==name2) {
							value2=GetValue(form.elements[m]);
							if (value1==value2) {
							//	err_field+="&err_"+name1+"="+escape(ErrorMessage(10));
							//	err_field+="&err_"+name2+"="+escape(ErrorMessage(10));
								return "wwww";
							}
						}
					}
			}
		}
	}
	return "";
}
function ValidateARequired(formName,elementName,nrequired) {
//	err_field=""
	documentForms=document.forms;
	for(df=0;df<documentForms.length;df++) {
		form=documentForms[df];
		if (form.name==formName.name) {
			count=form.elements.length;
			for(n=0;n<count;n++) {
				name_=form.elements[n].name;
				if (name_==elementName) {
					value=GetValue(form.elements[n]);
					if (value!="")
						nrequired-=1;
				}
			}
		}
	}
	if (nrequired>0)
		{return "llll";
	//	err_field+="&err_"+elementName+"="+escape(ErrorMessage(12));
	//	return err_field;
	}else {return "";}
}	
