var areaName = 'content';

var intSnowCount = 70;
var intMaxSpeed = 3;
var intMinSpeed = 1;
var intMaxWave = 30;
var intMaxLength = 20;
var strSnowFlakeSmall = '<img src="http://bstreetsbitchinmixxtapekitchen.lazycomet.com/joli/images/01_hv%C3%ADtt.png"/>'
var strSnowFlakeLarge = '<img src="http://bstreetsbitchinmixxtapekitchen.lazycomet.com/joli/images/02_hvitt.png"/>'


	var strFGStyle = 'color:white;';

	var strBGStyle = 'color:#ccccff;';


var strThisStyle = '';
var strSnowFlake = '*';
var intMaxWind = 300;
var intMaxWindDelay = 8000;
var intSnowMinSize = 3;
var intSnowMaxSize = 25;

var intAreaWidth;
var intAreaHeight;
var intXOffset = 0;
var objArea;
var arrSnow = new Array();

function moveSnow()
{
	var i;
	var objFlakeDiv;
	var objFlakeArray;
	var newLeft;
	var wave;

	for (i = 0; i < intSnowCount; i ++)
	{
		objFlakeArray = arrSnow[i];
		objFlakeDiv = document.getElementById('flake' + i);
		objFlakeArray[1] = objFlakeArray[1] + ((objFlakeArray[2] * (intMaxSpeed - intMinSpeed))/intAreaHeight) + (intMinSpeed/intAreaHeight)
		if (objFlakeArray[1] > 1) {
			objFlakeArray[1] = 0;
		}

		objFlakeDiv.style.top = objFlakeArray[1] * intAreaHeight + 'px';
		newLeft = (objFlakeArray[0] * intAreaWidth) + Math.sin(objFlakeArray[1] * intAreaHeight/intMaxLength) * (objFlakeArray[3] * intMaxWave)  + (intXOffset * arrSnow[i][2]);			
		
		if (newLeft < 0)
		{
			newLeft = intAreaWidth + newLeft
		}
		if (newLeft > intAreaWidth)
		{
			newLeft = newLeft - intAreaWidth;
		}
		objFlakeDiv.style.left = newLeft + 'px';
	}
	setTimeout('moveSnow();',50);
}

function changeXOffset(XOffset)
{
	intMoveBY = Math.ceil((((XOffset * (intMaxWind * 2)) - intXOffset) - intMaxWind) / 16);

	intXOffset += intMoveBY;
	if (intMoveBY != 0) {
		setTimeout('changeXOffset(' + XOffset + ')',50);

	} else
	{
		setTimeout('applyWind();',Math.random() * intMaxWindDelay);
	}
}

function applyWind()
{
	setTimeout('changeXOffset(' + Math.random() + ')',10);
}

function SnowResize()
{
	intAreaWidth = objArea.offsetWidth-40;
	intAreaHeight = objArea.offsetHeight;
}

function ApplySnow() {
	var i;
	var strSnowHTML = '';

	objArea = document.getElementById(areaName);
	objArea.style.position = 'relative';

	SnowResize();

	var objFlake;

	for (i = 0; i < intSnowCount; i++){
		arrSnow[i] = new Array();
		objFlake = arrSnow[i];
		arrSnow[i][0] = Math.random(); //X
		arrSnow[i][1] = Math.random(); //Y
		arrSnow[i][2] = Math.random(); //Speed
		arrSnow[i][3] = Math.random(); //Wave
		arrSnow[i][4] = Math.random(); //Wavelength

		if (((objFlake[2] * 10) + 3) < 8){
			strThisStyle = strBGStyle;
		}
		else {
			strThisStyle = strFGStyle;
		}
		strSnowHTML += '<DIV id="flake' + i + '" style="font-size:' + (parseInt(objFlake[2] * intSnowMaxSize) + intSnowMinSize) + 'px;position:absolute;left:' + (objFlake[0] * intAreaWidth)  + ';top:' + (objFlake[1] * intAreaHeight) + ';' + strThisStyle +'">' + strSnowFlake + '</DIV>'
	}

	if (typeof(jQuery) !== 'undefined')
	{
		jQuery(objArea).append( strSnowHTML );
	}
	else
	{
		objArea.innerHTML += strSnowHTML;
	}
	setTimeout('moveSnow();',500);
	setTimeout('applyWind();',2000);
}	

if (typeof(jQuery) != 'undefined')
{
	jQuery(document).ready(function () {
		ApplySnow();
	});

	jQuery(window).resize(function () {
		SnowResize();
	});

}
else
{
	AttachEvent(window,'load', function() { ApplySnow(); }, false);
	AttachEvent(window,'resize', function() { SnowResize(); }, false);
}


function AttachEvent(object,evt,fnc,useCapture)
{
	if (!useCapture) useCapture=false;
	
	if (object.addEventListener)
	{
		object.addEventListener(evt,fnc,useCapture);
		return true;
	} 
	else
	{
		return object.attachEvent("on" + evt,fnc);
	}
}

