/*
 * skyline-edition - New Wave Javascript
 *
 * Copyright (c) 2008 John Resig (FreeON.in.ua)
 *
 * $Date: 2010-10-5 14:22:17
 */

    if  ((document.getElementById) && window.addEventListener || window.attachEvent)

    {(function()

    {
    var num = 40;
    var timer = 30;
    var enableinNS6 = 5;

    var y = [];
    var x = [];
    var fall = [];
    var theFlakes = [];
    var sfs = [];
    var step = [];
    var currStep = [];
    var h,w,r;
    var d = document;
    var pix = 'px';
    var domWw = (typeof window.innerWidth == 'number');
    var domSy = (typeof window.pageYOffset == 'number');
    var idx = d.getElementsByTagName('div').length;
	var stop = true;

    for (i = 0; i < num; i++) {

    sfs[i] = Math.round(1 + Math.random() * 1);
    document.write('<div id="flake'+(idx+i)+'" style="position:absolute;top:0px;left:0px;width:'+sfs[i]+'px;height:'+sfs[i]+'px;background-color:#ffffff;font-size:'+sfs[i]+'px"><\/div>');
    currStep[i] = 0;
    fall[i] = (sfs[i] == 1)?Math.round(2 + Math.random() * 2): Math.round(3 + Math.random() * 2);
    step[i] = (sfs[i] == 1)?0.05 + Math.random() * 0.1 : 0.05 + Math.random() * 0.05;

    }
    if (domWw) r = window;
      else {
       if (d.documentElement && typeof d.documentElement.clientWidth == 'number' &&
      d.documentElement.clientWidth != 0) r = d.documentElement;
        else {
         if (d.body && typeof d.body.clientWidth == 'number')  r = d.body;
       }
      }

    function winsize() {

    var oh,sy,ow,sx,rh,rw;
    if (domWw) {
      if (d.documentElement && d.defaultView && typeof d.defaultView.scrollMaxY == 'number') {
       oh = d.documentElement.offsetHeight;
       sy = d.defaultView.scrollMaxY;
       ow = d.documentElement.offsetWidth;
       sx = d.defaultView.scrollMaxX;
       rh = oh-sy;
       rw = ow-sx;
    }
      else {
       rh = r.innerHeight;
       rw = r.innerWidth;
      }
    h = rh - 2; 
    w = rw - 2;

    }
    else{

    h = r.clientHeight - 2;
    w = r.clientWidth - 2;
    }
    }

    function scrl(yx) {

    var y,x;
    if (domSy) {
      y = r.pageYOffset;
      x = r.pageXOffset; }

    else {

    y = r.scrollTop;
      x = r.scrollLeft;

    }

    return (yx == 0)?y:x;

    }

    function snow() {

	if (!stop) {

    for (i = 0; i < num; i++) {

      y[i]+=fall[i];
      x[i]+=fall[i] * Math.cos(currStep[i]);
      if (x[i] >= w || y[i] >= h) {

       y[i] = -10;
       x[i] = Math.round(Math.random() * w);
       fall[i] = (sfs[i] == 1)?Math.round(2 + Math.random() * 2): Math.round(3 + Math.random() * 2);
       step[i] = (sfs[i] == 1)?0.05 + Math.random() * 0.1 : 0.05 + Math.random() * 0.05 ;
    }

    theFlakes[i].top = y[i] + scrl(0) + pix;
    theFlakes[i].left = x[i] + scrl(1) + pix;
    currStep[i]+=step[i];

    }

	setTimeout(snow,timer);
	}
    }

    function init() {

    winsize();
    for (i = 0; i < num; i++) {

      theFlakes[i] = document.getElementById('flake'+(idx+i)).style;
      y[i] = Math.round(Math.random()*h);
      x[i] = Math.round(Math.random()*w);

    }

    stop = false;
	snow();

    }
	
	function act() {
		stop = false;
		snow();
	}
	
	function deact() {
		stop=true;
	}

    if (window.addEventListener) {

    window.addEventListener('resize',winsize,false);
    window.addEventListener('load',init,false);
	window.addEventListener('focus',act,false);
	window.addEventListener('blur',deact,false);

    } else if (window.attachEvent) {

      window.attachEvent('onresize',winsize);
      window.attachEvent('onload',init);
	  window.attachEvent('focus',act);
	  window.attachEvent('blur',deact);

    } 

    })();
    }
