var bV=parseInt(navigator.appVersion);
var ns=(document.layers) ? 1 : 0;
var ie=((document.all) && (bV >= 4)) ? 1 : 0;
var flag = (ns || ie) ? 1 : 0;

function createLayer(name, left, top, width, height, visible, content) {
	var layer;
	if (ns) {
		document.writeln('<layer name="' + name + '" left=' + left + ' top=' + top + ' width=' + width + ' height=' + height +  ' visibility=' + (visible ? '"show"' : '"hide"') + '>');
		document.writeln(content);
		document.writeln('</layer>');
		layer = getLayer(name);
		layer.width = width;
		layer.height = height;
	}
	if (ie) {
		document.writeln('<div id="' + name + '" style="position:absolute; left:' + left + 'px; top:' + top + 'px; width:' + width + 'px; height:' + height + 'px;' + ' visibility:' + (visible ? 'visible;' : 'hidden;') + '">');
		document.writeln(content);
		document.writeln('</div>');
	}
}

var vmin = 1;
var vmax = 5;
var vr = 2;
var timerID;
var run;

function Baloon(chipname, width, height) {
	this.name = chipname;
	this.vx = vmin + vmax * Math.random();
	this.vy = vmin + vmax * Math.random();
	this.w = width;
	this.h = height;
	this.x = 0;
	this.y = 0;
}

function startBaloons() {
	if (!flag) { return; }
	var i;
	clearTimeout(timerID);
	getWindowSize();
	for (i = 0; i < baloons.length; i++) {
		baloons[i].x = pageW * Math.random() + pageX;
		baloons[i].y = pageH * Math.random() + pageY;
		moveLayer(baloons[i].name, baloons[i].x, baloons[i].y);
		showLayer(baloons[i].name);
	}
	buzz();
}

function run() {
	if (!flag) { return; }
	if (!run || run == "on") { startBaloons(); } else { return; }
}

function stopBaloons() {
	if (!flag) { return; }
	for (i = 0; i < num; i++) {
		var layer = getLayer('bal' + i);
		if (ns) { layer.visibility = "hide"; }
		if (ie) { layer.visibility = "hidden"; }
	}
	clearTimeout(timerID);
}

function buzz() {
	var i;
	for (i = 0; i < baloons.length; i++) { moveBaloon(i); }
	timerID = setTimeout("buzz()", 100);
}

function moveLayer(name, x, y) {
	var layer = getLayer(name);
	if (ns) { layer.moveTo(x, y); }
	if (ie) { layer.left = x; layer.top  = y; }
}

function showLayer(name) {
	var layer = getLayer(name);
	if (ns) { layer.visibility = "show"; }
	if (ie) { layer.visibility = "visible"; }
}

function getLayer(name) {
	if (ns) {
		return(document.layers[name]);
	} else if (ie) {
		layer = eval('document.all.' + name + '.style');
		return(layer);
	} else {
		return(null);
	}
}

function getWindowSize() {
	if(ns) {
		pageX=window.pageXOffset;
		pageW=window.innerWidth - 20;
		pageY=window.pageYOffset;
		pageH=window.innerHeight - 20;
	} else {
		pageX=window.document.body.scrollLeft;
		pageW=window.document.body.offsetWidth - 20;
		pageY=window.document.body.scrollTop;
		pageH=window.document.body.offsetHeight - 20;
	}
}
function moveBaloon(i) {
	getWindowSize();
	baloons[i].x = baloons[i].x + baloons[i].vx;
	baloons[i].y = baloons[i].y + baloons[i].vy;
	baloons[i].vx += vr * (Math.random() - 0.5);
	baloons[i].vy += vr * (Math.random() - 0.5);
	if(baloons[i].vx > (vmax + vmin))  baloons[i].vx = (vmax + vmin) * 2 - baloons[i].vx;
	if(baloons[i].vx < (-vmax - vmin)) baloons[i].vx = (-vmax - vmin) * 2 - baloons[i].vx;
	if(baloons[i].vy > (vmax + vmin))  baloons[i].vy = (vmax + vmin) * 2 - baloons[i].vy;
	if(baloons[i].vy < (-vmax - vmin)) baloons[i].vy = (-vmax - vmin) * 2 - baloons[i].vy;
	if(baloons[i].x <= pageX) { baloons[i].x = pageX;	baloons[i].vx = vmin + vmax * Math.random(); }
	if(baloons[i].x >= pageX + pageW - baloons[i].w) { baloons[i].x = pageX + pageW - baloons[i].w; baloons[i].vx = -vmin - vmax * Math.random(); }
	if(baloons[i].y <= pageY) { baloons[i].y = pageY; baloons[i].vy = vmin + vmax * Math.random(); }
	if(baloons[i].y>=pageY+pageH-baloons[i].h) { baloons[i].y = pageY + pageH - baloons[i].h; baloons[i].vy = -vmin - vmax * Math.random(); }
	moveLayer(baloons[i].name, baloons[i].x, baloons[i].y);
}
