var img = (img || '../cl4.jpg')          // image to animate, default to cl4.jpg
var no = (document.imgcount || 8);       // number of images, default to 8 
var speed = (document.imgspeed || 10);   // default to 10, smaller number moves the images faster

var flag;

doc_width = (self.innerWidth) ? self.innerWidth : document.body.clientWidth
doc_height = (self.innerHeight) ? self.innerHeight : document.body.clientHeight

function settop(objname,ypos) {
	if (document.getElementById) {
		// Standards Compliant code fork...
		document.getElementById(objname).style.top = ypos
	} else if (document.all) {
		// IE 4/5 code fork...
		return document.all[objname].style.pixelTop = ypos
	} else if (document.layers) {
		// Nav 4.x code fork...
		return document.layers[objname].top = ypos
	} 
}
function setleft(objname,xpos) {
	if (document.getElementById) {
		// Standards Compliant code fork...
			document.getElementById(objname).style.left = xpos
	} else if (document.all) {
		// IE 4/5 code fork...
			return document.all[objname].style.pixelLeft = xpos
	} else if (document.layers) {
		// Nav 4.x code fork...
			return document.layers[objname].left = xpos
	} 
}

var dx, xp, yp;    // coordinate and position variables
var am, stx, sty;  // amplitude and step variables
var i
dx = new Array();
xp = new Array();
yp = new Array();
amx = new Array();
amy = new Array();
stx = new Array();
sty = new Array();
flag = new Array();
for (i = 0; i < no - 1; i++) {
	dx[i] = 0;                                // set coordinate variables
	xp[i] = Math.random()*(doc_width-30)+10;  // set position variables
	yp[i] = Math.random()*doc_height;
	amy[i] = 12+ Math.random()*20;            // set amplitude variables
	amx[i] = 10+ Math.random()*40;
	stx[i] = 0.02 + Math.random()/10;         // set step variables
	sty[i] = 0.7 + Math.random();             // set step variables
	flag[i] = (Math.random()>0.5)?1:0;
	if (document.layers) {                    // set layers
		document.write("<layer name=\"dot"+ i +"\" left=\"15\" ");
		document.write("top=\"15\" visibility=\"show\"><img src=\"");
		document.write(img + "\" border=\"0\"></layer>");
	} else {
		document.write("<div id=\"dot"+ i +"\" style=\"POSITION: ");
		document.write("absolute; Z-INDEX: "+ i +"; VISIBILITY: ");
		document.write("visible; TOP: 15px; LEFT: 15px;\"><img src=\"");
		document.write(img + "\" border=\"0\"></div>");
	}
}

function snow() {  // main animation function
	for (i = 0; i < no - 1; i++) {  // iterate for every dot
		if (yp[i] > doc_height-50) {
			xp[i] = 10+ Math.random()*(doc_width-amx[i]-30);
			yp[i] = 0;
			stx[i] = 0.02 + Math.random()/10;
			sty[i] = 0.7 + Math.random();
			flag[i]=(Math.random()<0.5)?1:0;
		}
		if (flag[i])
			dx[i] += stx[i];
		else
			dx[i] -= stx[i];
		if (Math.abs(dx[i]) > Math.PI) {
			yp[i]+=Math.abs(amy[i]*dx[i]);
			xp[i]+=amx[i]*dx[i];
			dx[i]=0;
			flag[i]=!flag[i];
		}
		var ypos = yp[i] + amy[i]*(Math.abs(Math.sin(dx[i])+dx[i]))
		var xpos = xp[i] + amx[i]*dx[i]

		settop("dot"+i, ypos)
		setleft("dot"+i, xpos)
	}
	setTimeout("snow()", speed);
}

snow();

