function formAction(formId,cssNormal,cssDown,cssOver,cssOut,cssFocus,cssBlur,cssChange,cssKeydown,updateFile,addFile)
{
	this.formId									= formId;
	this.formObj								= document.getElementById(this.formId);
	this.cssNormal							= cssNormal;
	this.cssDown								= cssDown;
	this.cssOver								= cssOver;
	this.cssOut									= cssOut;
	this.cssFocus								= cssFocus;
	this.cssBlur								= cssBlur;
	this.cssChange							= cssChange;
	this.cssKeydown							= cssKeydown;
	this.updateFile							= updateFile;
	this.addFile								= addFile;
	this.countinputElement 			= 0;
	
	reg = new RegExp("^add");
	
	for(x=0;x<this.formObj.elements.length;x++)
	{
		if((this.formObj.elements[x].tagName == 'INPUT' || this.formObj.elements[x].tagName == 'TEXTAREA') && !reg.test(this.formObj.elements[x].id))
		{
			el = this.formObj.elements[x];
			el.className 				= this.cssNormal;
			el.onmousedown 			= this.inputDown;
			el.onmouseover 			= this.inputOver;
			el.onmouseout				= this.inputOut;
			el.onblur 					= this.inputBlur;
			el.onchange 				= this.inputChange;
		}
		if(this.formObj.elements[x].tagName == 'INPUT' && reg.test(this.formObj.elements[x].id))
		{
			el = this.formObj.elements[x];
			el.className 				= this.cssOver;
			el.onmousedown 			= this.inputDown;
			el.onmouseout				= this.inputOver;
			el.onblur 					= this.inputOver;
			el.onchange 				= this.inputAddChange;
			
			//alert(document.getElementById(el.id).is_valid);
			if(el.name != 'overpasshidden' && el.type == "hidden")
				el.is_valid 				= 1;
			else
				el.is_valid 				= 0;
		}
	}
}

formAction.prototype.inputDown = function (evt)
{
	this.className 		= pageForm.cssDown;
	this.onmouseover 	= null;
	this.onmouseout 	= null;
}

formAction.prototype.inputOver = function (evt)
{
	this.className 		= pageForm.cssOver;
}

formAction.prototype.inputOut = function (evt)
{
	this.className 		= pageForm.cssOut;
}

formAction.prototype.inputFocus = function (evt)
{
	this.className 		= pageForm.cssFocus;
	this.onmouseover 	= null;
	this.onmouseout 	= null;
}

formAction.prototype.inputBlur = function (evt)
{
	this.className 		= pageForm.cssBlur;
	this.onmouseover 	= pageForm.inputOver;
	this.onmouseout 	= pageForm.inputOut;

}

// UPDATE part

formAction.prototype.inputChange = function (evt)
{
	url = pageForm.updateFile + "?inputId=" + this.id + "&value=" + this.value;
	loadXMLDoc('stateId',url,0);
}

// ADD part

formAction.prototype.inputAddChange = function (evt)
{
	url = pageForm.addFile + "?inputId=" + this.id + "&value=" + this.value;
	loadXMLDoc('stateId',url,0);
}

formAction.prototype.updateUnvalid = function (id)
{
	document.getElementById(id).onmouseover 	= null;
	document.getElementById(id).onmouseout 	= null;
	document.getElementById(id).style.backgroundColor = 'red';
	document.getElementById(id).style.color = 'white';
}

formAction.prototype.updateValid = function (id)
{
	document.getElementById(id).onmouseover 	= pageForm.inputOver;
	document.getElementById(id).onmouseout 	= pageForm.inputOut;
	document.getElementById(id).style.backgroundColor = '';
	document.getElementById(id).style.color = 'black';
}

formAction.prototype.setValid = function (id,marker)
{
	document.getElementById(id).is_valid = 1;
	document.getElementById(id).style.backgroundColor = '';
	document.getElementById(id).style.color = 'black';
	this.checkAll(0,marker);
}

formAction.prototype.setUnvalid = function (id,marker)
{
	document.getElementById(id).onmouseover 	= null;
	document.getElementById(id).onmouseout 	= null;
	document.getElementById(id).style.backgroundColor = 'red';
	document.getElementById(id).style.color = 'white';
	document.getElementById(id).is_valid = 0;
	document.getElementById('valid' + marker).src = '../img/ok_disabled.gif';
}

formAction.prototype.checkAll = function(go,marker)
{
	error = 0;
	url = this.addFile + '?insert=1&marker=' + marker;
	reg = new RegExp("^" + marker);
	
	for(x=0;x<this.formObj.elements.length;x++)
	{
		if(this.formObj.elements[x].tagName == 'INPUT' && reg.test(this.formObj.elements[x].id))
		{
			el = this.formObj.elements[x];
			if(el.is_valid != 1) error = 1;
			url = url + '&' + el.id + '=' + el.value;
		}
	}
	
	if(error == 0)
	{
		document.getElementById('valid' + marker).src = '../img/ok.gif';
		if(go == 1)
		{
			loadXMLDoc('stateId',url,0);
		}
	}
	else
	{
		document.getElementById('valid' + marker).src = '../img/ok_disabled.gif';
	}
}