function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

// Text Animation
function setContent(name, value) {
    var d;
    d = document.getElementById(name);
    d.innerHTML = value;
}

function getContent(name) {
    var d;
    d = document.getElementById(name);
    return d.innerHTML;
}

function setColor(name, value) {
    var d;
    d = document.getElementById(name);
    d.style.color = value;
}

function getColor(name) {
    var d;
    d = document.getElementById(name);
    return d.style.color;
}

function animate(name, col) {
    var value = getContent(name);
    if (value.indexOf('<span') >= 0) { return; }
    var length = 0;
    var str = '';
    var ch;
    var token = '';
    var htmltag = false;
    for (i = 0; i < value.length; i++) {
	ch = value.substring(i, i+1);
	if (i < value.length - 1) { nextch = value.substring(i+1, i+2); } else { nextch = ' '; }
	token += ch;
	if (ch == '<' && '/aAbBhHiIlLoOpPtTuU'.indexOf(nextch) >= 0) { htmltag = true; }
	if (ch == '>' && htmltag) { htmltag = false; }
	if (!htmltag && ch.charCodeAt(0) > 30 && ch != ' ' && ch != '\n') {
	    str += '<span id="' + name + '_' + length + '">' + token + '</span>';
	    token = '';
	    length++;
	}
    }
    setContent(name, str);
    command = 'animateTextLoop(\'' + name + '\', ' + length + ', 0, 1, \'' + col + '\', 0)';
    setTimeout(command , 100);
}

function animateTextLoop(name, length, ind, delta, col, count) {
    var next = ind + delta;
    if (next >= length) { 
	delta = delta * -1; 
	next = ind + delta; 
    }
    if (next < 0) { 
	delta = delta * -1; 
	next = ind + delta;
	count++;
    }
    // One iteration max
    if (count < 1) {
	setColor(name + '_' + ind, getColor(name + '_' + next));
	setColor(name + '_' + next, col);
	command = 'animateTextLoop(\'' + name + '\', ' + length + ', ' + next + ', ' + delta + ', \'' + col + '\', ' + count + ')';
	setTimeout(command , 100);
    }
}

