
function JSState()
{
	this.state     = 'INIT';
	this.prevstate = '';
	this.substate  = 0;
	this.data      = null;

	this.set      = function(state, substate)
									{									
										if(state && !substate)
										{
											this.prevstate = this.state;
											this.state     = state;
											this.substate  = 0;
										}
										else if(!state && substate)
										{
											this.substate = substate;
										}
										else
										{
											this.prevstate = this.state;
											this.state     = state;
											this.substate  = substate;
										};
										
										if(state && this.onchange)
										{
											this.onchange(this.state, this.data);
										};
									};
									
	this.setdata  = function(data)
									{
										this.data = data;
									};

	this.getdata  = function()
									{
										return this.data;
									};
									
	this.ischange = function()
									{
										return this.prevstate == this.state; 
									} 									

	this.reset    = function()
									{
										this.state    = 'INIT';
										this.substate = 0;
									};

	this.toString = function()
									{
										return this.state;
									};
									
	this.onchange = null;
};

