//=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*//
// JS Select Script                                                         //
//=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*//

function JS_Select(vJS_data, vFieldsConfig)
{

	this.vJS_data		 = vJS_data;
	this.vFieldsConfig   = vFieldsConfig;
	
	this.init            = _init;
	this.update          = _update;
	this.build			 = _build;
	
	this.init();
}



//=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*//
//=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*//

function _init()
{
	vSub_array = this.build(this.vJS_data, this.vFieldsConfig[0][0]);
	
	for ( iX=1 ; iX < this.vFieldsConfig.length ; iX++ )
		{
		vSub_array = this.build(vSub_array,  this.vFieldsConfig[iX][0]);
		}
}



//=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*//
//=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*//

function _build(vData, oField)
{

	iOption_count    			= 0;
	oField.options.length = 0
	vSub_array						= null;

	for (iY = 0 ; iY < vData.length ; iY++, iOption_count++)
		{
		  oField.options[iOption_count] = new Option(vData[iY][0], vData[iY][1], null, false);

			if (vData[iY][3])
				{
				oField.options[iOption_count].selected = true;
				vSub_array =  vData[iY][2];
				}
		}
		
	if (vSub_array == null)
		vSub_array = vData[0][2];
		
return vSub_array;
}



//=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*//
//=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*//

function _update()
{
 vData 	= this.vJS_data;
		
 for( iA = 0 ; iA < this.vFieldsConfig.length-1 ; iA++ )
 {

 for( iZ = 0 ; iZ < vData.length ; iZ++ )
		{
		vData[iZ][3] = this.vFieldsConfig[iA][0].options[iZ].selected
		}
		
 vData = vData[this.vFieldsConfig[iA][0].selectedIndex][2];
 }
 
 this.init();
}


