// JavaScript Document


var numberOfFlakes = 40; 
var delay = 17; 
var snowflakeImage = "http://www.sherryssantas.com/images/snowflake.gif";

var sinFunctionVariable, xPosition, yPosition;    
var sinAmplitude, horizontalStep, verticalStep;  
var i, doc_width = 800, doc_height = 600;

doc_width = getWidth();
doc_height = getHeight();

sinFunctionVariable = new Array();
xPosition = new Array();
yPosition = new Array();
sinAmplitude = new Array();
horizontalStep = new Array();
verticalStep = new Array();
for (i = 0; i < numberOfFlakes; ++ i) 
{  
	sinFunctionVariable[i] = 0;                        
	xPosition[i] = Math.random()*(doc_width-50);  
	yPosition[i] = Math.random() * (doc_height + getYOffset());
	sinAmplitude[i] = Math.random() * 20;         
	horizontalStep[i] = 0.02 + Math.random()/10; 
	verticalStep[i] = 0.7 + Math.random();     
	if (i == 0) 
	{
		document.write("<div id=\"flake"+ i +"\" style=\"POSITION: ");
		document.write("absolute; Z-INDEX: "+ i +"; VISIBILITY: ");
		document.write("visible; TOP: 500px; LEFT: 600px;\"><img src=\"");
		document.write(snowflakeImage + "\" border=\"0\"></div>");
	} 
	else 
	{
		document.write("<div id=\"flake"+ i +"\" style=\"POSITION: ");
		document.write("absolute; Z-INDEX: "+ i +"; VISIBILITY: ");
		document.write("visible; TOP: 500px; LEFT: 600px;\"><img src=\"");
		document.write(snowflakeImage + "\" border=\"0\"></div>");
	}
}

snow();

snowOn = getCookie('snow');
if (snowOn == "off")
{
	toggleSnow();
}
else
{
	setCookie('snow','on',365);
}

function getWidth()
{
	if( typeof( window.innerWidth ) == 'number' ) 
	{
		//Non-IE
		return window.innerWidth;
	} 
	else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) 
	{
		//IE 6+ in 'standards compliant mode'
		return document.documentElement.clientWidth;
	} 
	else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) 
	{
		//IE 4 compatible
		return document.body.clientWidth;
	}
	else if(typeof( self.innerWidth ) == 'number')
	{
		return self.innerWidth;
	}
	else
	{
		return 800;
	}
}

function getHeight()
{
	if( typeof( window.innerHeight ) == 'number' ) 
	{
		//Non-IE
		return window.innerHeight;
	}
	else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) 
	{
		//IE 6+ in 'standards compliant mode'
		return document.documentElement.clientHeight;
	} 
	else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) 
	{
		//IE 4 compatible
		return document.body.clientHeight;
	}
	else if(typeof( self.innerHeight ) == 'number')
	{
		return self.innerHeight;
	}else{
		return 600;
	}
}

function getXOffset()
{
	if( typeof( window.pageXOffset ) == 'number' ) 
	{
		//Netscape compliant
		return window.pageXOffset;
	}
	else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) 
	{
		//DOM compliant
		return document.body.scrollLeft;
	} 
	else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
		//IE6 standards compliant mode
		return document.documentElement.scrollLeft;
	}
	else
	{
		return 0;
	}
}

function getYOffset()
{
	if( typeof( window.pageYOffset ) == 'number' ) 
	{
		//Netscape compliant
		return window.pageYOffset;
	}
	else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) 
	{
		//DOM compliant
		return document.body.scrollTop;
	} 
	else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
		//IE6 standards compliant mode
		return document.documentElement.scrollTop;
	}
	else
	{
		return 0;
	}
}

function setLeft(strID, value)
{
	element = getElement(strID);
	
	if(typeof(element.style.pixelLeft) == 'number')
	{
		element.style.pixelLeft = value;
	}
	else if(typeof(element.style.left) == 'string')
	{
		element.style.left = value + "px";
	}
	else
	{
		element.style.left = value;
	}
}

function setTop(strID, value)
{
	element = getElement(strID);
	
	if(typeof(element.style.pixelTop) == 'number')
	{
		element.style.pixelTop = value;
	}
	else if(typeof(element.style.top) == 'string')
	{
		element.style.top = value + "px";
	}
	else
	{
		element.style.top = value;
	}
}

function getElement(strID)
{
	if(document.getElementById(strID))
	{
		return document.getElementById(strID);
	}
	else
	{
		return document.all[strID];
	}
}


function snow()
{
	yOffset = getYOffset();
	for (i = 0; i < numberOfFlakes; ++ i) {  
		yPosition[i] += verticalStep[i];
		if (yPosition[i] > (doc_height - 50) + yOffset) {
			xPosition[i] = Math.random()*(doc_width-sinAmplitude[i]-30);
			yPosition[i] = yOffset;
			horizontalStep[i] = 0.02 + Math.random()/10;
			verticalStep[i] = 0.7 + Math.random();
			doc_width = getWidth();
			doc_height = getHeight();
		}
		if (yPosition[i] < yOffset) {
			yPosition[i] += yOffset;
		}
		sinFunctionVariable[i] += horizontalStep[i];
		setTop( ("flake" + i + "") , yPosition[i] );
		setLeft( ("flake" + i + "") , (xPosition[i] + sinAmplitude[i]*Math.sin(sinFunctionVariable[i])) );
	}
	setTimeout("snow()", delay);
}

function toggleSnow()
{
	target = "visible";
	
	if(getElement("flake" + 0).style.visibility == "visible")
	{
		target = "hidden";
		setCookie('snow','off',365);
	}else
	{
		setCookie('snow','on',365);
	}
	
	for (i = 0; i < numberOfFlakes; ++ i)
	{
		getElement("flake" + i).style.visibility = target;
	}
}