newjax.snow = function() {

	return {

		name: 	'snow',
		br: 	[],
		bl: 	[],
		dir: 	[],
		c: 		[],
		x: 		[],
		wind:	0,
		wind_dir: 	0,
		things: [],
		life:	[],
		alive: 	[],
		p: 		[],
		disturbed:	[],
		doc:	[],
		chilin:	[],
		
		
		
		
		flake:		{
			d:	6
		},
		
		
		
		
		up: function(i,t,s) {
			
			if (!newjax.snow.disturbed[t]) return;


			var top = parseInt($('flake_'+i).style.top);
			var left = parseInt($('flake_'+i).style.left);
			var h = parseInt($('flake_'+i).style.height);


			top -= s;
			s -= 1;
			
			
			$('flake_'+i).style.top = top+'px';
			
			
			setTimeout("newjax.snow.up("+i+","+t+","+s+")", 100);

		},
		
		
		undisturb: function(t) {

				newjax.snow.disturbed[t] = 0;

		},
		
		
		disturb: function(e) {
			
			for (var t = 0; t < newjax.snow.doc.length; t++) {
		
				if (t > 7) break;
				if (e.target.innerHTML != newjax.snow.doc[t].innerHTML) continue;
				
			
				newjax.snow.disturbed[t] = 1;
				
				
				setTimeout("newjax.snow.undisturb("+t+")", 1000);
			
			}

		},
		
		
		
		make_wind: function() {

			newjax.snow.wind = Math.floor(Math.random() * 10);
			newjax.snow.wind_dir = Math.floor(Math.random() * 3);
			
			setTimeout("newjax.snow.make_wind()", 5000);

		},

		move_flake: function(i) {


	
			var top = parseInt($('flake_'+i).style.top);
			var left = parseInt($('flake_'+i).style.left);
			var h = parseInt($('flake_'+i).style.height);

			
				
				
			for (var t = 0; t < newjax.snow.things.length; t++) {


				if ((newjax.snow.things[t].x < left && left < newjax.snow.things[t].x2) && top == newjax.snow.things[t].y - h - newjax.snow.p[i]) {
					
					/**/
					
			
			
					//alert(newjax.snow.doc[t]);
					//
					
												
						if (newjax.snow.disturbed[t]) {
							
							newjax.snow.up(i,t,10);
						
							
							continue;
							
						}
					
					
					
					if (newjax.snow.life[i] > 500) {
						
						top = 0;
						newjax.snow.life[i] = 0;
							
						continue;
				
					}


					//if (newjax.snow.life[i] == 100) {

					newjax.snow.life[i] += 1;
					
					
			
					
					//if (!newjax.snow.chilin[t].search(/i/))
					
					//newjax.snow.chilin[t].push(i);
					
					
					
					
					//i+',';
					
					//alert(newjax.snow.chilin[t]);
					
					
					setTimeout("newjax.snow.move_flake("+i+")", 100);
					
					return;	

				}

			}
				
			
		


			top += 1;


			
			
			if (newjax.snow.wind % 2 == 0 && newjax.snow.wind > 5) {
				
				if (newjax.snow.wind_dir) left -= newjax.snow.wind;	
				else left += newjax.snow.wind;

			} else {
				
				newjax.snow.x[i] = Math.sin(top / 10) * 5;
				left -= newjax.snow.x[i];
			
			}
	
			
			if (left < newjax.snow.flake.d) left = newjax.snow.sw - newjax.snow.flake.d;
			if (left > newjax.snow.sw - newjax.snow.flake.d) left = newjax.snow.flake.d;
			

			if (top == newjax.snow.sh - newjax.snow.flake.d) top = 0;


			$('flake_'+i).style.top = top+'px';
			$('flake_'+i).style.left = left+'px';


			setTimeout("newjax.snow.move_flake("+i+")", 100);

		},


		make_flake: function(i) {

			if (!i) i = 1;

			var left = Math.floor(Math.random() * newjax.snow.sw);
			var d = Math.floor(Math.random() * newjax.snow.flake.d) + 1;
			
			

			/* CREATE FLAKE */
			var flake = new Element('div', { 
				'id':'flake_'+i,  
				'style':'left:'+left+'px; top:0px; position:absolute; width:'+d+'px; height:'+d+'px; float:left; background-image:url("images/snow/flake_'+d+'.png"); opacity: 0.8;'
			});


			/* INSERT FLAKE */
			$('snow_container').insert(flake);


			newjax.snow.p[i] = Math.floor(Math.random() * 2);
			newjax.snow.life[i] = 0;
			
		
			

			newjax.snow.move_flake(i);

			
			if (i > 100) return;

			
			setTimeout("newjax.snow.make_flake("+(i+1)+")", 500);

		}

	} //return

}();


Event.observe(window, 'load', function() {

	/* AFTER LOADING */
	//return;
	
	newjax.snow.sh = document.body.clientHeight;
	newjax.snow.sw = document.body.clientWidth;
	
	newjax.snow.doc = document.getElementsByTagName('span');



	for (var t = 0; t < newjax.snow.doc.length; t++){
		
		if (t > 7) break;
		
		
		
		newjax.snow.things[t] = {
			
			x: 	newjax.snow.doc[t].cumulativeOffset().left + 10,
			x2:	(newjax.snow.doc[t].cumulativeOffset().left + newjax.snow.doc[t].getWidth()) - 10,
			y:	newjax.snow.doc[t].cumulativeOffset().top + 10
			
		}
		
		
	
newjax.snow.disturbed[t] = 0;			


			
		newjax.snow.doc[t].onmouseover = function(e) {
			//alert(t);
			//return;
			newjax.snow.disturb(e);
			
		}
		
		

			
		
		
		
		
	   	//alert(doc[i].innerHTML);
		//alert(newjax.snow.things[i].x+' '+newjax.snow.things[i].x2+' '+newjax.snow.things[i].y);

	}
	
	
	newjax.snow.make_flake();
	newjax.snow.make_wind();
	
	

	
	
	
		
		
	
	
	

				
});


















