// Melt code by Glen Murphy
// Author home: http://glenmurphy.com/
// Melt home:   http://bodytag.org/melt/

var qwx_mv_root = document.getElementsByTagName('body').item(0);
qwx_mv_root.style.visibility = 'hidden';

var qwx_mv_nodes = new Array();
var qwx_mv_text = new Array();
var qwx_mv_tumble = new Array();
var qwx_mv_maxsize = 0;
var qwx_mv_count = 0;

function Is(){ 
  this.ver=navigator.appVersion;
  this.agent=navigator.userAgent;
  this.dom=document.getElementById?1:0;
  this.opera5=this.agent.indexOf("Opera 5")>-1;
  this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0; 
  this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0;
  this.ie4=(document.all && !this.dom && !this.opera5)?1:0;
  this.ie=this.ie4||this.ie5||this.ie6;
  this.mac=this.agent.indexOf("Mac")>-1;
  this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0; 
  this.ns4=(document.layers && !this.dom)?1:0;
  this.bw=(this.ie6||this.ie5||this.ie4||this.ns4||this.ns6||this.opera5);
  return this;
	}

var is = new Is();

function qwx_mv_spin() {
	if(is.dom && !(is.mac && is.ie)) qwx_mv_godeep(qwx_mv_root);
	qwx_mv_root.style.visibility = 'visible';
	if(is.dom && !(is.mac && is.ie)) qwx_mv_sponge();
	}

function qwx_mv_finished() {
	qwx_mv_nodes = null;
	qwx_mv_text = null;
	qwx_mv_tumble = null;
	}

var qwx_mv_chartype = Math.floor(Math.random()*2);

function digit() {
	if(qwx_mv_chartype == 0)
		return Math.floor(Math.random()*2);
	else if(qwx_mv_chartype == 1)
		return '_';
	else
		return '_';
	}

var reg = new RegExp ("\r|\n", "g");
function qwx_mv_haschars(s) {
	s = s.replace(reg,'');
	return s.length;
	}
	
function qwx_mv_godeep(o) {
	for (var i = 0; i < o.childNodes.length; i++) {
		if(o.childNodes[i].childNodes) {
			qwx_mv_godeep(o.childNodes[i]);
			}
	  if(o.childNodes[i].nodeName == '#text' && qwx_mv_haschars(o.childNodes[i].nodeValue)) {
	  	var p = qwx_mv_nodes.length;
			qwx_mv_nodes[p] = o.childNodes[i];
			qwx_mv_text[p] = o.childNodes[i].nodeValue;
			qwx_mv_tumble[p] = new Array();
			for(var u = 0; u < o.childNodes[i].nodeValue.length; u++) {
				qwx_mv_tumble[p][u] = u;
				}
			if(o.childNodes[i].nodeValue.length > qwx_mv_maxsize) {
				qwx_mv_maxsize = o.childNodes[i].nodeValue.length;
				}
			qwx_mv_tumble[p].sort(randomSort);
			o.childNodes[i].nodeValue = '';
			}
		}
	}

function randomSort(w1,w2) {
	return Math.floor(Math.random()*3)-1;
	}

function qwx_mv_sponge() {
	for (var i = 0; i < qwx_mv_nodes.length; i++) {
		if(qwx_mv_count < qwx_mv_tumble[i].length) {
    	qwx_mv_nodes[i].nodeValue += (qwx_mv_text[i].charAt(qwx_mv_count) == ' ') ? ' ':digit(1);
    	}
    }
 	qwx_mv_count++;
 	if(qwx_mv_count < qwx_mv_maxsize) {
  	setTimeout('qwx_mv_sponge()',2);
  	}
 	else {
 		qwx_mv_count = 0;
  	setTimeout('qwx_mv_unsponge()',30);
  	}
	}

function qwx_mv_repchar(str, ch, pos) {
	var out = '';
	for(var i = 0; i < str.length; i++) {
		if(i == pos) out += ch;
		else out += str.charAt(i);
		}
	return out;
	}

function qwx_mv_unsponge() {
	for (var i = 0; i < qwx_mv_nodes.length; i++) {
		if(qwx_mv_count <= qwx_mv_tumble[i].length) {
    	qwx_mv_nodes[i].nodeValue = qwx_mv_repchar(qwx_mv_nodes[i].nodeValue, qwx_mv_text[i].charAt(qwx_mv_tumble[i][qwx_mv_count]), qwx_mv_tumble[i][qwx_mv_count]);
    	}
		}
  qwx_mv_count++;
  if(qwx_mv_count < 10) setTimeout('qwx_mv_unsponge()',600);
	else if(qwx_mv_count < qwx_mv_maxsize) setTimeout('qwx_mv_unsponge()',50);
	else qwx_mv_finished();
	}
	
window.onload = qwx_mv_spin;
