
if ( window.attachEvent) {
	window.attachEvent ( "onload" , fibSetup );
	window.attachEvent ( "onscroll" , fibOnScroll );
	window.attachEvent ( "onresize" , fibResize );
} else if ( window.addEventListener ) {
	window.addEventListener ( "load"  , fibSetup  , false );
	window.addEventListener ( "scroll" , fibOnScroll , false );
	window.addEventListener ( "resize" , fibResize , false );
}
else {
	window.onload = fibSetup;
	window.onscroll = fibOnScroll;
	window.onresize = fibResize;
}

var fibTimeTurnOn = true; // czy reklama ma sie chowac po okreslonej liczbie sekund
var fibDisplayTime = 15; // ile sekund ma sie reklama wyswietlac
var fibFlyInBox = "fibFlyInBox" // id reklamy
var fibTime = 20; //co jaki czas przesuma sie reklama - czas reakcji w mili sekundach - zbyt niska wartosc moze spowalniac dzialanie strony
var fibBoxMoveOffset = 8; // ilosc pikseli podczas pojedynczego przesuwania reklamy
var fibCookieName = "fibCookie"; //nazwa klucza ciasteczka
var fibBox;
var fibWidth;
var fibHeight;
var fibPozX = 0; 
var fibPozY = 0;
var fibPozYMax = 0;
var fibOldPozY = 0;
var fibOldPageYOffset;
var fibIntervalId = 0;
var expirehours = 20; // exp. cookie in hours

function fibGetScrollY () {
	var pageYOffset = 0;
	if ( typeof ( window.pageYOffset ) == 'number' ) {
		pageYOffset = window.pageYOffset; 
	} 
	else if ( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
		pageYOffset = document.body.scrollTop;
	}
	else if ( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
		pageYOffsetY = document.documentElement.scrollTop;
	}
	return pageYOffset;
}

function fibSetup () {
	fibBox = document.getElementById ( fibFlyInBox );
	fibWidth = fibBox.clientWidth;
	fibHeight = fibBox.clientHeight;
	var windowWidth;
	var windowHeight;
	if ( typeof ( window.innerWidth ) == 'number' ) {
		windowWidth = window.innerWidth;
		windowHeight = window.innerHeight;
	} else if ( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if ( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}
	if ( windowWidth < fibWidth ) {
		fibPozX = 0;
	}
	else {
		fibPozX = ( windowWidth - fibWidth ) / 2;
	}
	var pageYOffset = fibGetScrollY();
	fibOldPageYOffset = pageYOffset;
	if ( windowHeight < fibHeight ) {
		fibPozYMax = pageYOffset;
	}
	else {
		fibPozYMax = ( windowHeight - fibHeight ) / 2 + pageYOffset;
	}
	fibPozY = - ( fibHeight * 2 );
	fibBox.style.left = fibPozX + "px";
	fibDisplayTime *= 1000;
	if ( document.cookie.indexOf ( fibCookieName + "=" ) >= 0  ) {
		fibClose ();
	}
	else {
		var exdate=new Date();
		exdate.setHours(exdate.getHours()+expirehours);
		document.cookie = fibCookieName + "=" +((expirehours==null) ? "" : ";expires="+exdate.toGMTString());
		fibIntervalId = window.setInterval ( fibFallowTheRabbit , fibTime );
	}
}

function fibFallowTheRabbit () {
	if ( fibTimeTurnOn ) {
		fibDisplayTime -= fibTime;
		if ( fibDisplayTime < 0 ) {
			fibClose ();
		}
	}
	if ( fibPozY != fibPozYMax ) {
		if ( fibPozYMax > fibPozY ) {
			if ( Math.abs ( fibPozY - fibPozYMax ) > fibBoxMoveOffset * 25 ) {
				fibPozY += fibBoxMoveOffset * 8;
			}
			fibPozY += fibBoxMoveOffset;
			fibBox.style.top = fibPozY + "px";
		}
		else {
			if ( Math.abs ( fibPozY - fibPozYMax ) > fibBoxMoveOffset * 25 ) {
				fibPozY -= fibBoxMoveOffset * 8;
			}
			fibPozY -= fibBoxMoveOffset;
			fibBox.style.top = fibPozY + "px";
		}
		if ( Math.abs ( fibPozY - fibPozYMax ) < fibBoxMoveOffset ) {
			fibPozY = fibPozYMax;
			fibBox.style.top = fibPozY + "px";
		}
	}
}

function fibOnScroll () {
	var pageYOffset = fibGetScrollY ();
	var yScroll = pageYOffset - fibOldPageYOffset;
	fibOldPageYOffset = pageYOffset;
	fibPozYMax += yScroll;
}

function fibClose () {
	fibBox.style.display = "none";
	if ( window.detachEvent) {
		window.detachEvent ( "onload" , fibSetup );
		window.detachEvent ( "onscroll" , fibOnScroll );
		window.detachEvent ( "onresize" , fibResize );
	} else if ( window.removeEventListener ) {
		window.removeEventListener ( "load"  , fibSetup  , false );
		window.removeEventListener ( "scroll" , fibOnScroll , false );
		window.removeEventListener ( "resize" , fibResize , false );
	}
	window.clearInterval ( fibIntervalId );
}

function fibResize () {
	var windowWidth;
	var windowHeight;
	if ( typeof ( window.innerWidth ) == 'number' ) {
		windowWidth = window.innerWidth;
		windowHeight = window.innerHeight;
	} else if ( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if ( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}
	if ( windowWidth < fibWidth ) {
		fibPozX = 0;
	}
	else {
		fibPozX = ( windowWidth - fibWidth ) / 2;
	}
	var pageYOffset = fibGetScrollY();
	fibOldPageYOffset = pageYOffset;
	if ( windowHeight < fibHeight ) {
		fibPozYMax = pageYOffset;
	}
	else {
		fibPozYMax = ( windowHeight - fibHeight ) / 2 + pageYOffset;
	}
	fibBox.style.left = fibPozX + "px";
	
	fibFallowTheRabbit ();
}

