// Deploy the Catfish

// The Catfish should be located in an element of id 'catfish' and should be hidden
// out of view

var catfish;

function deploycatfish()
// initializing
{
	catfish = document.getElementById('catfish');
	catfishheight = 79; // total height of catfish in pixels
	catfishoverlap = 21; // height of the 'overlap' portion only (semi-transparent)
	catfishtimeout = setTimeout(startcatfish, 2*1000); // number of seconds to wait before showing the catfish
}

function startcatfish()
// starts the catfish sliding up
{
	catfishposition = 0; // catfishposition is expressed in percentage points (out of 100)
	catfishtimeout = setInterval(positioncatfish, 25);
}

function positioncatfish()
{
	catfishposition += 10;
	catfish.style.marginBottom = '-' + (((100 - catfishposition) / 100) * catfishheight) + 'px';
	if (catfishposition >= 100)
	{
		clearTimeout(catfishtimeout);
		catfishtimeout = setTimeout(finishcatfish, 1);
	}
}

function finishcatfish()
{
	catfish.style.marginBottom = '0';	
	// jump the bottom of the document to give room for the catfish when scrolled right down
	document.body.parentNode.style.paddingBottom = (catfishheight - catfishoverlap) +'px';
	
	// here you could use AJAX (or similar) to log the popup hit for tracking purposes	
}

//addLoadEvent(deploycatfish);

addLoadEvent(function() {
	deploycatfish();
});

<!--
/* Stack up window.onload events using this function from Simon Willison - http://www.sitepoint.com/blog-post-view.php?id=171578 */
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}
 
function destroycatfish()
{
	var catfish = document.getElementById('catfish');
	document.body.removeChild(catfish); /* clip catfish off the tree */
	document.getElementsByTagName('html')[0].style.padding= '0'; /* reset the padding at the bottom */
	return false;
}
function closeme()
{
	var closelink = document.getElementById('closeme');
	closelink.onclick = destroycatfish;
 
}
addLoadEvent(function() {
	closeme();
});

function wrapFish() {
	var catfish = document.getElementById('catfish');
	var subelements = [];
	for (var i = 0; i < document.body.childNodes.length; i++) {
 		subelements[i] = document.body.childNodes[i];
	}

	var zip = document.createElement('div');    // Create the outer-most div (zip)
	zip.id = 'zip';                      // call it zip

	for (var i = 0; i < subelements.length; i++) {
	zip.appendChild(subelements[i]); 
	}
	document.body.appendChild(zip); // add the major div
	document.body.appendChild(catfish); // add the catfish after the zip
}

addLoadEvent(function() {
	wrapFish();
});