var JSFX_fwSprites= new Array();
var JSFX_fwImages = new Array();
var ow;
var oh;
var theTimer;
var layerNo=0;

var xb = new xBrowser();
function setSize()
{
	if(document.layers)
	{
		ow=window.outerWidth;
		oh=window.outerHeight;
	}
}

function JSFX_loadFwImages()
{
	var i;
	for(i=0 ; i<20 ; i++)
	{
		JSFX_fwImages[i] = new Image();
		JSFX_fwImages[i].src = "images/fw"+i+".gif"
	}
}
function JSFX_Fireworks(max_fireworks)
{
	var i=0;

	JSFX_loadFwImages();
	for(i=0 ; i<max_fireworks; i++)
	{
		JSFX_fwSprites[i]=new xLayer("<IMG SRC='images/fw0.gif' NAME='fw"+i+"'>");
		JSFX_fwSprites[i].frame=0;
		JSFX_fwSprites[i].state="OFF";
		JSFX_fwSprites[i].x=0;
		JSFX_fwSprites[i].y=0;
		JSFX_fwSprites[i].dx=0;
		JSFX_fwSprites[i].dy=0;
		JSFX_fwSprites[i].ay=0.1;	
	}

	theTimer=setTimeout("JSFX_ani_fireworks()", 30 );
	setTimeout("JSFX_ani_fireworks_start()", 30 );
	setSize();
}

function JSFX_ani_fireworks_start()
{
	for(i=0 ; i<JSFX_fwSprites.length ; i++)
	{
		var fw = JSFX_fwSprites[i];
		if(fw.state == "OFF")
		{
			fw.x=xb.getMaxX()/2;
			fw.y=xb.getMaxY();

			var ydiff = xb.getMaxY() - xb.getMinY();

			if(ydiff > 800)
				fw.dy = -12;
			else if(ydiff > 600)
				fw.dy = -10;
			else if(ydiff > 400)
				fw.dy = -8;
			else if(ydiff > 300)
				fw.dy = -7;
			else
				fw.dy = -4;

			fw.dx = Math.random()*-8 + 4;
			fw.dy += Math.random()*3;

			fw.moveTo(fw.x,fw.y);
			fw.frame = 0;
			fw.show();
			fw.clip(0,0,2,2);
			fw.setBgColor(Math.random()>.33 ? Math.random()>.33 ? "#FF0000" : "#00FF00" : "#0000FF");
			fw.state="TRAVEL";
			break;
		}
	}	
	setTimeout("JSFX_ani_fireworks_start()", Math.random() * 1000/JSFX_fwSprites.length);
}
function JSFX_ani_fireworks()
{
	var i;
	for(i=0 ; i<JSFX_fwSprites.length ; i++)
	{
		var fw = JSFX_fwSprites[i];
		if(fw.state == "ON")
		{
			fw.x += fw.dx;
			fw.y += fw.dy;
			fw.dy += fw.ay;
			fw.moveTo(fw.x,fw.y);

			fw.frame++
			if(fw.frame == JSFX_fwImages.length)
			{
				fw.hide();
				fw.state = "OFF";
			}
			else
			{
				fw.images["fw"+i].src = JSFX_fwImages[fw.frame].src;
			}
		}
		if(fw.state == "TRAVEL")
		{
			fw.x += fw.dx;
			fw.y += fw.dy;
			fw.dy += fw.ay;
			fw.moveTo(fw.x,fw.y);
			if(fw.dy > -1 && Math.random()<.05)
			{
				fw.state = "ON";
				fw.setBgColor(null);
				fw.clip(0,0,100,100);
				fw.x -=50;
				fw.y -=50;
				fw.moveTo(fw.x, fw.y);
			}
		}
	}
	theTimer=setTimeout("JSFX_ani_fireworks()", 40 );
}
function JSFX_handle_resize()
{
	if(   document.layers 
	   && (   ow != window.outerWidth
	       || oh != window.outerHeight) )
	{
		clearTimeout(theTimer);
		location.reload();
	}
}
window.onresize=JSFX_handle_resize;

