/**
 *
 *	current usage
 *

<div style="display: hidden" id="toPoltergeist">
	<p>
	test test test test test tst etst <strong>etst</strong>
	</p>
	<ul>
		<li> test</li>
		<li> test</li>
		<li> test</li>
		<li> test</li>
	</ul>
</div>
<script type="text/javascript">initPoltergeist(document.getElementById('toPoltergeist'));</script>

 */







// Poltergeist - wyskakuj�ca reklama na warstwie ponad stron�, wersja 0.35
var closeButtonUrl="img/lightbox/close.gif";
var startRendering;
var frames=0;
var frame=0;
var positions = new Array();

var templatePath = '';


// addLoadEvent()
// Adds event to window.onload without overwriting currently assigned onload functions.
// Function found at Simon Willison's weblog - http://simon.incutio.com/
function addLoadEvent(func)
{
	var oldonload = window.onload;
	if (typeof window.onload != 'function'){
		window.onload = func;
	} else {
		window.onload = function(){
		oldonload();
		func();
		}
	}
}

// getPageSize()
// Returns array with page width, height and window width, height
// Core code from - quirksmode.org
// Edit for Firefox by pHaez
function getPageSize(){

	var xScroll, yScroll;

	if (window.innerHeight && window.scrollMaxY) {
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}

	var windowWidth, windowHeight;
	if (self.innerHeight) {	// all except Explorer
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}

	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else {
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){
		pageWidth = windowWidth;
	} else {
		pageWidth = xScroll;
	}

	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight)
	return arrayPageSize;
}

// getPageScroll()
// Returns array with x,y page scroll values.
// Core code from - quirksmode.org
function getPageScroll(){

	var yScroll;

	if (self.pageYOffset) {
		yScroll = self.pageYOffset;
	} else if (document.documentElement && document.documentElement.scrollTop){	 // Explorer 6 Strict
		yScroll = document.documentElement.scrollTop;
	} else if (document.body) {// all other Explorers
		yScroll = document.body.scrollTop;
	}

	arrayPageScroll = new Array('',yScroll)
	return arrayPageScroll;
}

// Usuwa obiekt Poltergeist z ekranu
function killPoltergeist()
{
	document.getElementById('poltergeist').style.display="none";
	window.onscroll = function () { return true; }
}

// Powoduje animowany ruch Poltergeista
function slidePoltergeist(duration, fps, percX, percY)
{
	var posY;
	var arrayPageSize=getPageSize();
	var arrayScrollSize=getPageScroll();
	var width=530; //document.getElementById('poltergeistAdvert').width;
	var height=480; //document.getElementById('poltergeistAdvert').height;

	// Ko�cowe po�o�enie obiektu Poltergeist - je�li rozmiar okna zostanie
	// zmieniony podczas trwania animacji Poltergeist dostosuje sie
	destX=Math.round((arrayPageSize[2]*(percX/100))-(width/2));
	destY=Math.round((arrayPageSize[3]*(percY/100))-(height/2));

	step = Math.floor(Math.abs((destY+height))/frames);
	posY=step*frame+arrayScrollSize[1]-height;
	posX=destX;

	movePoltergeist(posX, posY);

	// Przy pierwszej klatce animacji nale�y ods�oni� Poltergeista
	if (frame==0) document.getElementById('poltergeist').style.visibility="visible";

	frame++;
	// Zako�czenie animacji
	if (frame>=frames)
	{
		// Obiekt Poltergeist b�dzie przesuwa� si� wraz ze stron�
		//window.onscroll = function () { scrollPoltergeist(percX, percY);}

		// Obiekt Poltergeist ustawiany jest na fina�owym miejscu - sam tam najprawdopodobniej
		// nie dojedzie, ze wzgl�du na b��dy zaokr�gle� przy obliczaniu kroku
		movePoltergeist(destX, destY+arrayScrollSize[1]);

		// Wy��czenie animacji
		clearInterval(startRendering);
	}

}

function createPoltergeist(closeButtonUrl, percX, percY, multipleRuns, content)
{
	if (multipleRuns==true || !alreadyRunned())
	{
		// Je�li �cie�ka do obrazka b�dzie b��dna, Poltergeist nie zostanie wog�le stworzony
			// Zabezpieczenie na wypadek nie podania podstawowych danych
			var closeOrginX = 510;
			var closeOrginY = 0;
			var closeWidth=20;
			var closeHeight=20;
			var duration=1000;
			var fps=25;


			// Tworzy nast�puj�cy kawa�ek kodu html
			//	<div id='poltergeist'>
			//		<img id='poltergeistCloseButton' src='/img/dummy.gif' onclick='killPoltergeist();'/>
			//      <a href='' id='poltergeistLinkArea' target='_blank'><img src='/img/dummy.gif' width="" height=""/></a>
			//		<img id='poltergeistAdvert' src=' -link do advertu- '/>
			//	</div>
			poltergeistBase = document.createElement('div');
			poltergeistBase.setAttribute('id','poltergeist');
			poltergeistBase.style.visibility = 'hidden';
			closeButton = new Image();
			closeButton.src = closeButtonUrl;
			closeButton.setAttribute('id','poltergeistCloseButton');
			closeButton.style.top=closeOrginY+"px";
			closeButton.style.left=closeOrginX+"px";
			closeButton.style.width=closeWidth+"px";
			closeButton.style.height=closeHeight+"px";

			//flashElement = document.createElement ('div');
			//flashElement.setAttribute('id','poltergeistAdvert');
      
			var contentElement = document.createElement ('div');
			contentElement.setAttribute('id','poltergeistContentBox');
			contentElement.style.display ='block';
			content.style.display = 'block'
			contentElement.appendChild(content);
			
			poltergeistBase.appendChild(closeButton);
			//poltergeistBase.appendChild(flashElement);
			poltergeistBase.appendChild(contentElement);
			document.getElementsByTagName("body")[0].appendChild(poltergeistBase);
			document.getElementById('poltergeistCloseButton').onclick = function () {killPoltergeist();}

			// Oblicza d�ugo�� animacji i uruchamia j�
			frames = Math.round(fps*duration/1000);	// Calkowita liczba renderowanych klatek
			interval = duration / frames; 			// Czas co jaki jest renderowana nowa ramka

			startRendering=setInterval("slidePoltergeist("+duration+", "+fps+", "+percX+", "+percY+")", interval);
//			var params = { wmode: "transparent", scale: "noscale", salign: "lt" };  
//			var flashvars = {};   
//			var attributes = {};
//			swfobject.embedSWF(flash, "poltergeistAdvert", width, height, "8.0.0","./flash/expressInstall.swf", flashvars, params, attributes);
			//so.write("poltergeistAdvert");

	}
}

// Powoduje przesuni�cie obiektu Poltergeist w nowe miejsce
function movePoltergeist(x, y)
{
	document.getElementById('poltergeist').style.top=y+"px";
	document.getElementById('poltergeist').style.left=x+"px";
}



// Powoduje przesuwanie obiektu Poltergeist wraz ze scrollowaniem strony
function scrollPoltergeist(percX, percY)
{
	var arrayPageSize=getPageSize();
	var arrayScrollSize=getPageScroll();
	var width = 501; //=document.getElementById('poltergeistAdvert').width;
	var height=250;
	//document.getElementById('poltergeistAdvert').height;

	destX=Math.round((arrayPageSize[2]*(percX/100))-(width/2));
	destY=arrayScrollSize[1]+Math.round((arrayPageSize[3]*(percY/100))-(height/2));

	movePoltergeist(destX, destY);
}

// From http://www.w3schools.com/js/js_cookies.asp
function getCookie(c_name)
{
if (document.cookie.length>0)
  {
  c_start=document.cookie.indexOf(c_name + "=");
  if (c_start!=-1)
    {
    c_start=c_start + c_name.length+1;
    c_end=document.cookie.indexOf(";",c_start);
    if (c_end==-1) c_end=document.cookie.length;
    return unescape(document.cookie.substring(c_start,c_end));
    }
  }
return "";
}

function alreadyRunned()
{
	if (getCookie("poltergeist")=="")
	{
		document.cookie="poltergeist=yes";
		return false;
	}
	return true;
}


function initPoltergeist (content ) {
	window.onload = function(){

		createPoltergeist('img/lightbox/close.gif', 52, 45, true,content);
		//loadPage();
	}
}
