 	var cntF;	//form
	var cntA;	//form action for count get
	var cntT;	//form target for count get
	var cntP;	//count display applet (CounterApplet), use if given
	var cntOa;	//original form action
	var cntOt;	//original form target
	var cntD=0;	//date of last count submit
	var cntI=100;	//interval of count requests
	var cntC=true;	//params changed
	var cntR=false;	//timeout thread running

	function cntInit(form, cntAction, cntTarget, applet, interval) {
            cntF=form;
            cntA=cntAction;
            cntT=cntTarget;
            cntP=applet;
            cntI=interval;
            cntOa=cntF.action;
            cntOt=cntF.target;
        }

	function cntUpdate(o) {
		if (cntP && cntP.exists) {
			if (o) {
				var n=escape(o.name), d="";
				if (o.type=="select-multiple" || o.type=="select-one") {
					for (var i=0;i<o.length;i++) {
						if (o.options[i].selected) {
							if (d.length>0)
								d+="&";
							if (o.options[i].value!=null)
								d+=n+"="+escape(o.options[i].value);
							else
								d+=n+"="+escape(o.options[i].text);
						}
					}
				} else if (o.type=="checkbox") {
					var tab=o.form.elements[o.name];
					if (tab.length) {
						for (var i=0;i<tab.length;i++) {
							if (tab[i].checked) {
								if (d.length>0)
									d+="&";
								d+=n+"="+escape(tab[i].value);
							}
						}
					} else if (o.checked) {
						d+=n+"="+escape(o.value);
					}
				} else if (o.type=="reset") {
					cntP.reset();
					return;
				} else {
					d+=n+"="+escape(o.value);
				}

				cntP.update(o.name, d);
			} else {
				cntP.update();
			}
		} else if (cntA && cntT) {
			cntC=true;
			cntUf();
		}
	}	

	function cntUf(r) {
		if (r)
			cntR=false;

		if (cntC) {
			var t=(new Date()).getTime();
			if (t-cntD>cntI) {
				cntD=t;
				cntF.action=cntA;
				cntF.target=cntT;
				cntC=false;
				cntF.submit();
			} else if (!cntR) {
				cntR=true;
				window.setTimeout("cntUf(true)", cntI-(t-cntD));
			}
		}
	}

	function cntShutdown() {
		cntD=new Date(2050,1,1);
		cntF.action=cntOa;
		cntF.target=cntOt;
	}	
