

var layers_qty_max = 22;
// var phrases_qty = phrase.length;

var step_x = new Array();
var step_y = new Array();
var xon = new Array();
var yon = new Array();
var xPos = new Array();
var yPos = new Array();
var layer_height = new Array();
var layer_width = new Array();
var timer = new Array();
var timer_chg_txt = null;
var timer_chg_vis = null;
var timer_dance = null;
var scr_width, scr_height;
var phrase_num = 0;
var interval;
var font_prefix = "";
var font_postfix = "";
var style_prefix = "";
var style_postfix = "";
var text_color = '#ffffff';
var back_color = '#000000';
var color_black = '#000000';
var color_white = '#FFFFFF';
var color_red   = '#FF0000';
var fontname;
var font_selected;
var fonts = new Array();
fonts[0] = "Arial";
// fonts[1] = "XakepXakep";
fonts[1] = "Tahoma";
fonts[2] = "Courier New";
fonts[3] = "Times New Roman";
fonts[4] = "Monotype Corsiva";
fonts[5] = "Garamond";
fonts[6] = "Futura BK";
fonts[7] = "Verdana";
var fonts_qty = fonts.length;
var font_size = new Array();

var text_change_delay = 1000;
var blink_delay = 250;
var dance_delay = 50;
var shift_delay = 30;
var dance_dx = 40;
var dance_dy = 30;
var layers_qty = 11;

var ie4 = (document.all) ? true : false;
var ns4 = (document.layers) ? true : false;
var ns6 = (document.getElementById && !document.all) ? true : false;

function Is() {
	agent = navigator.userAgent.toLowerCase();
	this.major = parseInt(navigator.appVersion);
	this.minor = parseFloat(navigator.appVersion);
	this.ns = ((agent.indexOf('mozilla') != -1) && ((agent.indexOf('spoofer')
	== -1)
	     && (agent.indexOf('compatible') ==  -1)));
	this.ns2 = (this.ns && (this.major == 3));
	this.ns3 = (this.ns && (this.major == 3));
	this.ns4b = (this.ns && (this.major == 4) && (this.minor <= 4.03));
	this.ns4 = (this.ns && (this.major == 4));
	this.ns6 = (this.ns && (this.major >= 5));
	this.ie = (agent.indexOf("msie") != -1);
	this.ie3 = (this.ie && (this.major < 4));
	this.ie4 = (this.ie && (this.major == 4) && (agent.indexOf("msie 5.0")
	 == -1));
	this.ie5 = (this.ie && (this.major == 4) && (agent.indexOf("msie 5.0")
	 != -1));
	this.ie55 = (this.ie && (this.major == 4) && (agent.indexOf("msie 5.5")
	 != -1));
	this.ie6 = (this.ie && (agent.indexOf("msie 6.0")!=-1) );
	this.aol = (agent.indexOf("aol") != -1);
	this.aol3 = (this.aol && this.ie3);
	this.aol4 = (this.aol && this.ie4);
	this.aol5 = (this.aol && this.ie5);
}
var is = new Is();

function winResize() {
	if(is.ns4 ||is.ns6||is.ie4||is.ie5||is.ie55||is.ie6) {
		history.go(0);
	}
}

if(is.ns4 || is.ns6) {
	available_width = innerWidth;
	available_height = innerHeight;
}
else if(is.ie4 || is.ie5 || is.ie55 || is.ie6) {
	available_width = document.body.clientWidth;
	available_height = document.body.clientHeight;
}

if (ie4) {
	scr_width  = document.body.clientWidth;
	scr_height = document.body.clientHeight;
	layerRef="document.all.item('";
	styleSwitch="').style";
	leftProp = ".pixelLeft";
	topProp = ".pixelTop";
} else {
	scr_width  = window.innerWidth;
	scr_height = window.innerHeight;
	if (ns4) {
		layerRef="document.layers['";
		styleSwitch="']";
		leftProp = ".left";
		topProp = ".top";
	} else {
		layerRef="document.getElementById('";
		styleSwitch="').style";
		leftProp = ".left";
		topProp = ".top";
	}
}
for ( i = 1 ; i < layers_qty_max + 1 ; i++ )  {
	step_x[i] = Math.floor(i/3) + 1;
	step_y[i] = Math.floor((layers_qty-i)/3) + 1;
	xon[i] = 0;
	yon[i] = 0;
	xPos[i] = Math.floor(Math.random()*scr_width);
	yPos[i] = Math.floor(Math.random()*scr_height);
	layer_height[i] = 0;
	layer_width[i] = 0;
	font_size[i] = Math.floor(Math.random()*2) + 3;
//	font_size[i] = Math.floor(Math.random())*3 + 2);
}

function hidelayer(lay) {
	if (ie4) {document.all[lay].style.visibility = "hidden";}
	if (ns4) {document.layers[lay].visibility = "hide";}
	if (ns6) {document.getElementById([lay]).style.display = "none";}
}
function showlayer(lay) {
	if (ie4) {document.all[lay].style.visibility = "visible";}
	if (ns4) {document.layers[lay].visibility = "show";}
	if (ns6) {document.getElementById([lay]).style.display = "block";}
}
function writetolayer(lay,txt) {
	if (ie4) {
		document.all[lay].innerHTML = txt;
	}
	if (ns4) {
		document[lay].document.write(txt);
		document[lay].document.close();
	}
	if (ns6) {
		over = document.getElementById([lay]);
		range = document.createRange();
		range.setStartBefore(over);
		domfrag = range.createContextualFragment(txt);
		while (over.hasChildNodes()) {
			over.removeChild(over.lastChild);
		}
		over.appendChild(domfrag);
	}
}
function placelayer(layerName,newLeft,newTop) { 
	eval(layerRef + layerName + styleSwitch + topProp  + ' = newTop');
	eval(layerRef + layerName + styleSwitch + leftProp + ' = newLeft');
//	popup(newLeft, newTop);
}
function drop_layer_random(cur_num) {
	if(ie4) {
		eval("layer_height[cur_num] = layer" + cur_num + ".offsetHeight;");
		eval("layer_width[cur_num] = layer" + cur_num + ".offsetWidth;");
	} else {
		if(ns4) {
			eval("layer_height[cur_num] = document.layer" + cur_num + ".clip.scr_height;");
			eval("layer_width[cur_num] = document.layer" + cur_num + ".clip.scr_width;");
		}
	}
	xPos[cur_num] = Math.floor(Math.random()*scr_width) - layer_width[cur_num];
	yPos[cur_num] = Math.floor(Math.random()*scr_height) - layer_height[cur_num];
	eval("placelayer('layer" + cur_num + "'," + xPos[cur_num] + "," + yPos[cur_num] + ");");
}
function drop_layer_ordered(cur_num) {
	if(ie4) {
		eval("layer_height[cur_num] = layer" + cur_num + ".offsetHeight;");
		eval("layer_width[cur_num] = layer" + cur_num + ".offsetWidth;");
	} else {
		if(ns4) {
			eval("layer_height[cur_num] = document.layer" + cur_num + ".clip.scr_height;");
			eval("layer_width[cur_num] = document.layer" + cur_num + ".clip.scr_width;");
		}
	}
	xPos[cur_num] = Math.floor(Math.random()*(scr_width - layer_width[cur_num] - screen_margin_x*2)) + screen_margin_x;
	if (Math.random() < 0.5) {
		yPos[cur_num] = screen_margin_y;
	} else {
		yPos[cur_num] = scr_height - layer_height[cur_num] - screen_margin_y;
	}
	eval("placelayer('layer" + cur_num + "'," + xPos[cur_num] + "," + yPos[cur_num] + ");");
}
function random_dance_layer() { 
	layer_num = Math.floor(Math.random()*layers_qty + 1);
	if (Math.random() < 0.5) {
		dance_dx = dance_dx - 2 * dance_dx;
	}
	if (Math.random() < 0.5) {
		dance_dy = dance_dy - 2 * dance_dy;
	}
	xPos[layer_num] = xPos[layer_num] + dance_dx;
	yPos[layer_num] = yPos[layer_num] + dance_dy;
}
function random_change_layertext() {
	var layer, layer_num, txt;
	layer_num = Math.floor(Math.random()*layers_qty + 1);
	layer = 'layer' + layer_num;
	txt = '<font face="' + typeface + '" size=' + fontsize_predefined + '>' + phrase[Math.floor(Math.random()*phrases_qty)] + '</font>';
//	txt = '<font face="' + typeface + '" size=+' + font_size[layer_num] + '>' + phrase[Math.floor(Math.random()*phrases_qty)] + '</font>';
	writetolayer(layer,txt);
}
function change_every_layertext(newtext) {
	var layer, layer_num, txt;
	clearInterval(timer_chg_txt);
	for ( i=1; i < layers_qty+1; i++ )  {
		layer = 'layer' + i;
		txt = '<b><font face="Arial" size=+' + font_size[layer_num] + '>' + newtext + '</font></b>';
		writetolayer(layer,txt);
	}
}
function random_switch_visibility() {
	var layer, layer_num;
	layer_num = Math.floor(Math.random()*layers_qty + 1);
	layer = 'layer' + layer_num;
	showlayer(layer);
	layer_num = Math.floor(Math.random()*layers_qty + 1);
	layer = 'layer' + layer_num;
	hidelayer(layer);
}
function init_layers() {
	for ( i=1; i < layers_qty+1; i++ )  {
		layer = "layer" + i;
		txt = '<font face="' + typeface + '" size=' + fontsize_predefined + '>' + phrase[Math.floor(Math.random()*phrases_qty)] + '</font>';
		hidelayer(layer);
		writetolayer(layer, txt);
		eval("drop_layer_ordered(" + i + ");");
		if (Math.random() < 0.5) {
			showlayer(layer);
		}
	}
}
function set_parameters(mode) {
	if (mode == "slow") {
		text_change_delay = 1000;
		blink_delay = 60000;
		dance_delay = 2000;
		shift_delay = 20000;
		dance_dx = 0;
		dance_dy = 0;
	} else if (mode == "normal") {
		text_change_delay = 100;
		blink_delay = 2000;
		dance_delay = 600;
		shift_delay = 8000;
		dance_dx = 40;
		dance_dy = 30;
	} else if (mode == "fast") {
		text_change_delay = 50;
		blink_delay = 1000;
		dance_delay = 100;
		shift_delay = 3000;
		dance_dx = 80;
		dance_dy = 60;
	}
	reset();
}
function set_layers_qty(qty) {
	stop();
	eval("layers_qty = " + qty);
	start();
}
function set_colors(colors) {
	if (colors == "w-b") {
		text_color = color_white;
		back_color = color_black;
	} else if (colors == "b-w") {
//		text_color = color_black;
//		back_color = color_white;
	} else if (colors == "r-b") {
		text_color = color_red;
		back_color = color_black;
	} else if (colors == "r-w") {
		text_color = color_red;
		back_color = color_white;
	}
	change_colors();
}
function change_colors() {
	document.fgColor = text_color;
//	document.bgColor = back_color;
}
function set_font(fnt) {
	stop();
	typeface = fnt;
	start();
}

function stop() {
	clearInterval(timer_chg_txt);
	clearInterval(timer_chg_vis);
	clearInterval(timer_dance);
	for ( i=1; i < layers_qty+1; i++ )  {
		layer = 'layer' + i;
		hidelayer(layer);
		clearInterval(timer[i]);
//		eval("clearInterval(timer[" + i + "]);");
	}
//	start();
}
function reset() {
	clearInterval(timer_chg_txt);
	clearInterval(timer_chg_vis);
	clearInterval(timer_dance);
	for ( i=1; i < layers_qty+1; i++ )  {
		layer = 'layer' + i;
		clearInterval(timer[i]);
//		eval("clearInterval(timer[" + i + "]);");
	}
	start();
}
function start() {
	init_layers();
	timer_chg_txt = setInterval("random_change_layertext();", text_change_delay);
	timer_chg_vis = setInterval("random_switch_visibility();", blink_delay);
	timer_dance = setInterval("random_dance_layer();", dance_delay);
	for ( i=1; i < layers_qty+1; i++ )  {
		layer_name = "layer" + i;
		eval("timer[" + i + "] = setInterval('drop_layer_ordered(" + i + ")',shift_delay);");
	}
}
// if (window.opener.document.controlform.layers_level) {
// 	set_layers_qty(window.opener.document.controlform.layers_level.value);
// }

// setTimeout("prestart();", 100);
// setTimeout("start();", 500);


