var countForm;	//form
var countFormAction;	//form action for count get
var countFormTarget;	//form target for count get
var countFormOrigAction;	//original form action
var countFormOrigTarget;	//original form target
var lastSubmitTime=0;	//date of last count submit
var countRequestInterval=100;	//interval of count requests
var isChanged=true;	//params changed
var isRunning=false;	//timeout thread running

function cntInit(form, action, target, interval) {
	countForm = form;
	countFormAction = action;
	countFormTarget = target;
	countRequestInterval = interval;
	countFormOrigAction = document.getElementById(form).action;
	countFormOrigTarget = document.getElementById(form).target;
}

function cntUpdate() {
	isChanged=true;
	cntUf();
}	

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

	if (isChanged) {
		var t=(new Date()).getTime();
		if (t - lastSubmitTime > countRequestInterval) {
			lastSubmitTime = t;
		  	document.getElementById(countForm).action = countFormAction;
		  	document.getElementById(countForm).target = countFormTarget;
		  	isChanged = false;
		  	document.getElementById(countForm).submit();
		} else if (!isRunning) {
		  	isRunning = true;
		  	window.setTimeout("cntUf(true)", countRequestInterval - (t - lastSubmitTime));
		}
	}
}

function cntShutdown() {
	lastSubmitTime=new Date(2050,1,1);
	document.getElementById(countForm).action=countFormOrigAction;
	document.getElementById(countForm).target=countFormOrigTarget;
}	

