// text effect 1
// usage: net_codmod_effect1_exec(exec(HTML element id, time, repeat, delay);
// (c)2008 codmod.net

var	net;
if ( !net ) { net = {}; } else if ( typeof net != "object" ) { throw new Error("net.codmod already exists and is not an object"); }
if ( !net.codmod ) { net.codmod = {}; } else if ( typeof net.codmod != "object" ) { throw new Error("net.codmod already exists and is not an object"); }
if ( net.codmod.Effect1 ) throw new Error("net.codmod.Effect1 already exists");

net.codmod.Effect1 = {};

net.codmod.Effect1.ele = null;
net.codmod.Effect1.src = null;
net.codmod.Effect1.tbl = [];
net.codmod.Effect1.id = "";
net.codmod.Effect1.time = 0;
net.codmod.Effect1.repeat = 0;
net.codmod.Effect1.delay = 0;

net.codmod.Effect1.exec = function(_id, _time, _repeat, _delay)
{
	net.codmod.Effect1.id = _id;
	if ( document.all ) {
		net.codmod.Effect1.ele = document.all(net.codmod.Effect1.id);
	} else
	if ( document.getElementById ) {
		net.codmod.Effect1.ele = document.getElementById(net.codmod.Effect1.id);
	} else {
		return;
	}
	if ( net.codmod.Effect1.ele == null ) return;
	if ( !net.codmod.Effect1.src ) net.codmod.Effect1.src = net.codmod.Effect1.ele.innerHTML;
	if ( net.codmod.Effect1.src.length <= 0 ) return;

	if ( _time && _time > 0 ) net.codmod.Effect1.time = _time;
	if ( !_repeat ) net.codmod.Effect1.repeat = 0;
	else net.codmod.Effect1.repeat = ( _repeat >= 0 )? _repeat : -1;
	if ( _delay && _delay >= 0 ) net.codmod.Effect1.delay = _delay;

	var	start = 0, offset = 0, tag = 0;
	var	tagend = false, str = false;
	for ( var i = 0 ; i < net.codmod.Effect1.src.length ; i++ ) {
		var	c = net.codmod.Effect1.src.charAt(i);
		if ( (c == '<') || (c == '&') ) tag++;

		if ( tag > 0 ) {
			net.codmod.Effect1.tbl[i] = 0;

			if ( c == '"' ) str = (str == false);
		} else
		if ( (c == ' ') || (c == '\t') || (c == '\n') ) {
			net.codmod.Effect1.tbl[i] = 0;
			start += 25;
		} else {
			net.codmod.Effect1.tbl[i] = offset + start;
			start += 25;
		}

		if ( (c == '>') || (c == ';') ) {
			tag--;
			if ( c == '>' ) {
				offset += 800;
				start = 0;
			}
			tagend = false;
			str = false;
		}
	}

	setTimeout(net.codmod.Effect1.show, net.codmod.Effect1.delay);
}


net.codmod.Effect1.show = function()
{
	var done = true;
	var	dst = "";
	var	rnd = Math.floor(Math.random() * (968-913));

	for ( var i = 0 ; i < net.codmod.Effect1.src.length ; i++ ) {
		if ( net.codmod.Effect1.tbl[i] > 0 ) {
			net.codmod.Effect1.tbl[i] -= 25;

			var	c = net.codmod.Effect1.src.charAt(i);
			if ( net.codmod.Effect1.tbl[i] <= 0 ) {
				dst += c;
			} else
			if ( net.codmod.Effect1.tbl[i] <= 25 ) {
				dst += "&#" + (rnd+913) + ";";
				done = false;
				rnd = (rnd+1) % (968-913);
			} else {
				dst += '&nbsp;';
//				dst += ' ';
				done = false;
			}
		} else {
			dst += net.codmod.Effect1.src.charAt(i);
		}
	}

	net.codmod.Effect1.ele.innerHTML = dst;
	if ( done ) {
		if ( net.codmod.Effect1.time > 0 ) {
			net.codmod.Effect1.ele.innerHTML = net.codmod.Effect1.src;

			var	tag = 0;
			for ( var i = 0 ; i < net.codmod.Effect1.src.length ; i++ ) {
				var	c = net.codmod.Effect1.src.charAt(i);
				if ( (c == '<') || (c == '&') ) tag++;

				if ( (tag > 0) || (c == ' ') || (c == '\t') || (c == '\n') ) {
					net.codmod.Effect1.tbl[i] = 2000;
				} else {
					net.codmod.Effect1.tbl[i] = (Math.floor(Math.random() * 500));
				}

				if ( (c == '>') || (c == ';') ) tag--;
			}

			setTimeout(net.codmod.Effect1.show2, net.codmod.Effect1.time);
		}
	} else {
		net.codmod.Effect1.ele.style.visibility = "visible";
		setTimeout(net.codmod.Effect1.show, 25);
	}
}


net.codmod.Effect1.show2 = function()
{
	var	done = true;
	var	dst = "";
	var	rnd = Math.floor(Math.random() * (968-913));

	for ( var i = 0 ; i < net.codmod.Effect1.src.length ; i++ ) {
		if ( net.codmod.Effect1.tbl[i] < 1000 ) net.codmod.Effect1.tbl[i] += 25;

		var	c = net.codmod.Effect1.src.charAt(i);
		if ( net.codmod.Effect1.tbl[i] >= 2000 ) {
			dst += c;
		} else
		if ( net.codmod.Effect1.tbl[i] >= 550 ) {
			dst += '&nbsp;';
		} else
		if ( net.codmod.Effect1.tbl[i] >= 500 ) {
			dst += "&#" + (rnd + 913) + ";";
			done = false;
			rnd = (rnd+1) % (968-913);
		} else {
			done = false;
			dst += c;
		}
	}

	if ( done == false ) {
		net.codmod.Effect1.ele.innerHTML = dst;
		setTimeout(net.codmod.Effect1.show2, 25);
	} else {
		if ( net.codmod.Effect1.repeat != 0 ) {
			net.codmod.Effect1.ele.style.visibility = "hidden";

			if ( net.codmod.Effect1.repeat > 0 ) {
				if ( --net.codmod.Effect1.repeat > 0 ) setTimeout(net.codmod.Effect1.exec(net.codmod.Effect1.id, net.codmod.Effect1.time, net.codmod.Effect1.repeat, net.codmod.Effect1.delay), 0);
				else setTimeout(net.codmod.Effect1.exec(net.codmod.Effect1.id, net.codmod.Effect1.time), 0);
			} else
			if ( net.codmod.Effect1.repeat < 0 ) {
				setTimeout(net.codmod.Effect1.exec(net.codmod.Effect1.id, net.codmod.Effect1.time, net.codmod.Effect1.repeat, net.codmod.Effect1.delay), net.codmod.Effect1.delay);
			}
		} else {
			net.codmod.Effect1.ele.innerHTML = dst;
		}
	}
}


function net_codmod_effect1_exec(a,b,c,d) { net.codmod.Effect1.exec(a,b,c,d); }


