	// Only dojo.fx is required for this awesome effect!
	dojo.require("dojo.fx");
	// Variables for the bubbles...
	var bubbleTimer=null;
	var bubbleRand=1000;
	var fishAmount=8;
	var fishtank;
	
	var scnWid,scnHei;
	scnHei = 1200;
	if (self.innerHeight) // all except Explorer
	{
		scnWid = self.innerWidth;
	}
	else if (document.documentElement && document.documentElement.clientHeight)
		// Explorer 6 Strict Mode
	{
		scnWid = document.documentElement.clientWidth;
	}
	else if (document.body) // other Explorers
	{
		scnWid = document.body.clientWidth;
	}

	// Here we start the bubbles and create the fish
	dojo.addOnLoad(function(){
		fishtank = dojo.byId('fishtank');
		imageObj = new Image();
		images = new Array("images/fishL.png","images/fishR.png");
		dojo.forEach(images,function(image) {
			imageObj.src='images/'+image;
		});
		createFish();
	});
	// This is the fish creating function, this will only happen [fishAmount] amount of times
	function createFish () {
		// create fish element with random properties
		var fish = document.createElement("img");
		fish.setAttribute("src", "images/bass"+((Math.random(2)>1)?"R":"L")+".gif");
		fish.style.position="fixed";
		fish.style.top=(0+((scnHei-400)*Math.random()))+"px";
		fish.style.left=(400+(800*Math.random()))+"px";
		fish.style.width=100+(25*Math.random())+"px";
		fish.style.height=50+(25*Math.random())+"px";
		fish.style.zIndex=-100;
		// This is where the fish first lands in the tank
		dojo.byId('fishtank').appendChild(fish);
		// Lets make the fish swim
		playFish(fish,1);
		// This is a loop until [fishAmount] have been created
		if (fishAmount > 1) {
			fishAmount--;
			createFish();
		}
		return true;
	}

	// This function moves the fish
	function playFish (target,newfish) {
		var top = parseInt(target.style.top);
		var left = parseInt(target.style.left);
		var fwidth = parseInt(target.style.width);
		var rand = Math.round(140*Math.random());
		var rand2 = Math.round(50*Math.random());
		var randTurn = Math.round(5*Math.random());
		var randUpDown = Math.round(5*Math.random());
		var force=1+Math.round(1*Math.random());
		var fishDir = target.src.split('images/bass')[1].split('.gif')[0];
		// This decideds what directed the fish is going to go
		if ((left+rand+fwidth+30)>scnWid) {
			randTurn=3;
			fishDir="L";
		} else if ((left-rand)<0) {
			randTurn=3;
			fishDir="R"
		}
		if ((top+rand2)>scnHei) {
			force=1;
		} else if ((top-rand2)<0) {
			force=2;
		}
		(randTurn>4)?((fishDir=="L")?(fishDir="R"):(fishDir="L")):null;
		var floatLeftandRight = dojo.fx.slideTo({
			node: target,
			duration: 700+(500*Math.random()),
			properties: { 
				left: {
					end:(fishDir=="L")?(left-rand):(left+rand),
					unit:"px"
				}
			}
		});
		var floatUpandDown = dojo.fx.slideTo({
			node: target,
			duration: 700+(500*Math.random()),
			properties: { 
				top: {
					end:(force==1)?(top-rand2):(top+rand2),
					unit:"px"
				}
			},
			onEnd: function(){playFish(target);}
		});
		target.src="images/bass"+fishDir+".gif";
		floatLeftandRight.play();
		floatUpandDown.play();
		return true;
	}


