// JavaScript Document

var snowSpeedDown = 14;
var snowSpeedHorizontal = 3;

var flocken = Array();
var flockenGross = Array();
var flockenLeftRightCount = Array();
var flockenX = Array();
var flockenY = Array();
var flockenLeft = Array();
var intervall = Array();

var minSizeFlocke = 4;
var maxSizeFlocke = 10;
var anzahlFlockenProWave = 30;
var flockenCount = 0;

var anzahlGrosseFlockenProWave = 8;
var minSizeFlockeGross = 15;
var maxSizeFlockeGross = 60;

var snowUp = false;
var snowUpGraficY = 0;
var snowUpY = 0;

var flockenCreatTimer; 
var moveSnowTimer; 
var snowUpTimer; 

var snowUpOffset = 0;

var snowTextShow = false;
var moveShowText = false;

function letItSnow()
{
	flockenCreatTimer = window.setInterval("creatSnow()", getRandom(5000, 5500));
	moveSnowTimer = window.setInterval("moveSnow()", 110); // 80
	
	snowUpTimer = window.setInterval("snowUpGo()", 180); // 80$
	
	creatSnow();
	moveSnow();
	
	snowUp = true;
}

function noSnow()
{
	$('snowUpGrafic').style.visibility = 'hidden';	
	$('snowText').style.visibility = 'hidden';	
	$('snowUp').style.visibility = 'hidden';	
}

function clearTimer()
{
	clearInterval(flockenCreatTimer);
	clearInterval(moveSnowTimer);
	clearInterval(snowUpTimer);
}

function creatSnow()
{
	// flocke typ1
	for(var i = 0; i < anzahlFlockenProWave; i++)
	{
		var tempStartX = getRandom(200, document.body.offsetWidth - 215);
		var tempStartY = getRandom(0, 800);
		var tempRandomSize = getRandom(minSizeFlocke, maxSizeFlocke);
	
		creatSnowFlockeKlein(flockenCount, tempStartX, tempStartY, tempRandomSize);
		
		flockenCount++
	}
	
	for(var i = 0; i < anzahlGrosseFlockenProWave; i++)
	{
		var tempStartX_2 = getRandom(200, document.body.offsetWidth - 215);
		var tempStartY_2 = getRandom(0, 800);
		var tempRandomSize_2 = getRandom(minSizeFlockeGross, maxSizeFlockeGross);
		
		creatSnowFlockeGross(flockenCount, tempStartX_2, tempStartY_2, tempRandomSize_2);
		
		flockenCount++
		
	}
	
}

function moveSnow()
{
	//$('debug').innerHTML = flocken.length;
	
	for(var i = 0; i < flocken.length; i++)
	{
		moveSnowFlocke(flocken[i], i);		
	}
}

function noSnowToHome()
{
	window.location.href = 'http://www.agentur-sign.ch';
}


function creatSnowFlockeKlein(flockenID, startX, startY, randomSize)
{
	flocke = '<img src="images/snow/snowFlocke_01.png" alt="snow" height="' + randomSize + '" width="' + randomSize + '"  />';	
	
	tempContainerDown = document.createElement('div');
	tempContainerDown.setAttribute('style', 'top: ' + startY + 'px; left: ' + startX + 'px; position: absolute; height: ' + randomSize + 'px; width: ' + randomSize + 'px;');
	tempContainerDown.setAttribute('id', 'snowFlockeKlein_' + flockenID);

	tempContainerDown.innerHTML = flocke;
	$('snow').appendChild(tempContainerDown);
	
	
	var tempLeftRight = getRandom(0, 1);	
	
	if(tempLeftRight == 0)
	{
		flockenLeft.push(true);
	}
	else
	{
		flockenLeft.push(false);
	}
	
	flockenLeftRightCount.push(0);
	flocken.push($('snowFlockeKlein_' + flockenID));
}

function creatSnowFlockeGross(flockenID, startX, startY, randomSize)
{
	flocke = '<img src="images/snow/snowFlocke_02.png" alt="snow" height="' + randomSize + '" width="' + randomSize + '"  />';	
	
	tempContainerDown = document.createElement('div');
	tempContainerDown.setAttribute('style', 'top: ' + startY + 'px; left: ' + startX + 'px; position: absolute; height: ' + randomSize + 'px; width: ' + randomSize + 'px;');
	tempContainerDown.setAttribute('id', 'snowFlockeKlein_' + flockenID);

	tempContainerDown.innerHTML = flocke;
	$('snow').appendChild(tempContainerDown);
	
	var tempLeftRight = getRandom(0, 1);	
	
	if(tempLeftRight == 0)
	{
		flockenLeft.push(true);
	}
	else
	{
		flockenLeft.push(false);
	}
	
	flockenLeftRightCount.push(0);
	flocken.push($('snowFlockeKlein_' + flockenID));
}

function snowUpGo()
{
	if(snowUp)
	{
		snowUpGraficY = Position.cumulativeOffset($('snowUpGrafic'))[1];
		
		var upValue = 4;
		
		if(Position.cumulativeOffset($('snowUpGrafic'))[1] > -130)
		{
			var snowUpGraficTop = snowUpGraficY -= upValue;
			$('snowUpGrafic').style.top = snowUpGraficTop + 'px';
		}
		else
		{
			clearTimer();	
		}
		
		
		
		snowUpY = Position.cumulativeOffset($('snowUp'))[1];
		
		
		
		var snowUpYTop = snowUpY -= upValue;
		var snowUpYHeight = $('snowUp').getHeight() + upValue;
		
		
		//$('debug').innerHTML = Position.cumulativeOffset($('snowText'))[1];
		
		
		if(snowUpYHeight > 210)
		{
			showSnowText();
			
			if(moveShowText)
			{
				var snowText = Position.cumulativeOffset($('snowText'))[1];
				snowText -= upValue;
				$('snowText').style.top = snowText + 'px';
				
				if(Position.cumulativeOffset($('snowText'))[1] < 400)
				{
					moveShowText = false;
				}
				
			}			
		}
		
		if(snowUpYHeight > 270)
		{
			if(!moveShowText)
			{
				moveShowText = true;
			}
		}
		
				
		$('snowUp').style.top = snowUpYTop + 'px';
		$('snowUp').style.height = snowUpYHeight + 'px';
		
		

		
		
		snowUpOffset = 	snowUpYHeight;
			
	}
}

function showSnowTextComplete()
{
	moveShowText = true;	
}

function showSnowText()
{
	
	
	if(!snowTextShow)
	{		
		new Effect.Appear($('snowText'), {duration: 1.0});	
		snowTextShow = true;	
	}
	
	
}


function moveSnowFlocke(id, flockenId)
{
	flockenY[flockenId] = Position.cumulativeOffset(id)[1];
	
	if(Position.cumulativeOffset(id)[1] >= (getRandom(1120, 1140) - snowUpOffset)) //1180
	{
		//clearInterval(intervall[flockenId]);
				
		flocken.splice(flockenId, 1);
		$('snow').removeChild(id);
		
		if(!snowUp)
		{
			snowUp = true;
		}
	}
	
	flockenY[flockenId] += getRandom(1, 4);
	
	flockenX[flockenId] = Position.cumulativeOffset(id)[0];
	
	if(flockenLeft)
	{
		if(flockenLeftRightCount[flockenId] < 10)
		{
			flockenX[flockenId] -= getRandom(0, 2);		
		}
		else
		{
			flockenX[flockenId] += getRandom(0, 2);	
		}
	}
	else
	{
		if(flockenLeftRightCount[flockenId] < 10)
		{
			flockenX[flockenId] += getRandom(0, 2);	
		}
		else
		{
			flockenX[flockenId] -= getRandom(0, 2);	
		}
	}
	
	
	
	flockenLeftRightCount[flockenId]++;
	
	if(flockenLeftRightCount[flockenId] == 20)
	{
		flockenLeftRightCount[flockenId] = 0;
	}
	
	id.style.top = flockenY[flockenId] + 'px';
	id.style.left = flockenX[flockenId] + 'px';	
}




function getRandom(min, max) {
 	if(min > max) {
  		return -1;
 	}
 
 	if(min == max) {
  		return min;
 	}
 
 	var r;
 
 	do {
 	 r = Math.random();
 	}
 	while(r == 1.0);
 
 	return min + parseInt(r * (max-min+1));
}




