function fx_fire_init()
{
	document.fx_fire_w	= 96
	document.fx_fire_h	= 48
	document.fx_fire_imgDataIso	= buildBmp8Header( document.fx_fire_w, document.fx_fire_h )

	var
		lastLine	= document.fx_fire_w*(document.fx_fire_h+1)


	// init document.fireArray
	document.fx_fire_fireArray = []
	for( i=-document.fx_fire_w; i<lastLine+1; i++ )
		document.fx_fire_fireArray[ i ] = 0

	// init document.fireAttenuation
	document.fx_fire_fireAttenuation	= []
	for( i=0; i<256*4; i++ )
		document.fx_fire_fireAttenuation[ i ] = Math.min( 127, i*.24 )&255

	// init document.firePalette
	for( j=0;j<128*2;j++)
	{
		i=j>>2
		document.fx_fire_imgDataIso += byteToIsoArray[ Math.max(0,Math.min(255,i*8-256)) ]+ byteToIsoArray[ Math.max(0,Math.min(255,i*8-128)) ]+ byteToIsoArray[ Math.max(0,Math.min(255,i*8)) ] +"\0"
	}


	progressBarIndex++
}


function fx_fire_update( time, extraArguments )
{
	var
		w = document.fx_fire_w,
		h = document.fx_fire_h,
		fireAttenuation	= document.fx_fire_fireAttenuation,
		fireArray		= document.fx_fire_fireArray,
		imgDataIso		= document.fx_fire_imgDataIso,
		bottomLine		= w*h,
		lastLine		= bottomLine+w

	
	for( var i=0; i<w+h; i++ )
	{
		fireArray[ Math.floor( Math.random()*bottomLine ) ] >>= 1
		fireArray[ Math.floor( Math.random()*bottomLine ) ] <<= 1
	}

	for( i=0; i<bottomLine; i++ )
		fireArray[ i ] = fireAttenuation[ fireArray[ i ]+fireArray[ i+w-1 ]+fireArray[ i+w ]+fireArray[ i+w+1 ] ]

	for( i=0; i<bottomLine; i++ )
		imgDataIso += byteToIsoArray[ fireArray[ i ]+fireArray[ i+1 ] +fireArray[ i+w ]+fireArray[ i+w+1 ] ]


	for( ; i<lastLine+w; i++ )
		fireArray[ i ] = ( Math.random()*128 )&127

	document.fx_fire_fireArray = fireArray
	customImageHandle.src	= imgDataIso
}
