
var delay=50;
var currentNews=0;
var newsPause=0;
var newsText=new Array("loading...");
var newsDesc=new Array("loading...");
var newsLink=new Array("#");
var fMode=0;
var fPleaseShowNews=0;
var fPleaseHideNews=0;
var strLanguage;

// przechowuje odwołanie do obiektu XMLHttpRequest
var xmlHttp = createXmlHttpRequestObject(); 


function init ( )
{
	newsDisplay = document.createTextNode (  );
	document.getElementById("news").appendChild ( newsDisplay );
	strLanguage = document.getElementById("L").value;
}


function newsType()
{
		if (document.getElementById) {
			var dest=document.getElementById("news");
			if (dest) {

				switch (fMode) {
				case 1:
					opacity("news", 100, 0, 1000);
					fMode = 0;
					setTimeout("newsType()", 2000);
					break;
					
				case 2:
					changeOpac(100, "news",1);
					setTimeout("newsType()", 1000);				
					break;				
				default:				
					dest.href = newsLink[currentNews];
					dest.title = newsDesc[currentNews];
					dest.firstChild.nodeValue=newsText[currentNews];
					opacity("news", 0, 100, 500);
					
					currentNews++;
					if (currentNews>newsText.length-1) {
						currentNews = 0;
					}
					fMode = 1;
					setTimeout("newsType()", 5000);
				}
				
			}
		}
}

function newsStart()
{
	process();
		
}

function newsShow()
{	
	if (newsPause==0) {
		newsPause=1;
		fMode = 2;
		changeOpac(100, "news",1);
	}
}

function newsPauseReset()
{
	if (newsPause==1) {
		newsPause=0;
		fMode = 1;
	}
}

function opacity(id, opacStart, opacEnd, millisec) {
    //speed for each frame
    var speed = Math.round(millisec / 100);
    var timer = 0;

    //determine the direction for the blending, if start and end are the same nothing happens
    if(opacStart > opacEnd) {
        for(i = opacStart; i >= opacEnd; i--) {
            setTimeout("changeOpac(" + i + ",'" + id + "',0)",(timer * speed));
            timer++;
        }
    } else if(opacStart < opacEnd) {
        for(i = opacStart; i <= opacEnd; i++)
            {
            setTimeout("changeOpac(" + i + ",'" + id + "',0)",(timer * speed));
            timer++;
        }
    }
}

//change the opacity for different browsers
function changeOpac(opacity, id, fForce) {
	if (newsPause==0 || fForce==1) {	
		var object = document.getElementById(id).style;
		object.opacity = (opacity / 100);
		object.MozOpacity = (opacity / 100);
		object.KhtmlOpacity = (opacity / 100);
		object.filter = "alpha(opacity=" + opacity + ")";
	}	
} 


// zwraca obiekt XMLHttpRequest
function createXmlHttpRequestObject() 
{
  // przechowa odwołanie do obiektu XMLHttpRequest
  var xmlHttp;
  // jeśli uruchomiony jest Internet Explorer
  if(window.ActiveXObject)
  {
    try
    {
      xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch (e) 
    {
      xmlHttp = false;
    }
  }
  // jeśli uruchomiona jest Mozilla lub inne przeglądarki
  else
  {
    try 
    {
      xmlHttp = new XMLHttpRequest();
    }
    catch (e) 
    {
      xmlHttp = false;
    }
  }
  // zwraca utworzony obiekt lub wyświetla komunikat o błędzie
  if (!xmlHttp)
    alert("Błąd podczas tworzenia obiektu XMLHttpRequest.");
  else 
    return xmlHttp;
}

// wysyła asynchroniczne żądanie protokołem HTTP korzystając z obiektu XMLHttpRequest
function process()
{
  // kontynuuje jedynie jeśli obiekt xmlHttp nie jest zajęty
  if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
  {
    // wykonuje stronę clock.php na serwerze
    xmlHttp.open("GET", "news.asp?culture=" + strLanguage, true);  
    // definiuje metodę obsługi odpowiedzi serwera
    xmlHttp.onreadystatechange = handleServerResponse;
    // wysyła żądanie do serwera
    xmlHttp.send(null);

  }
  else
    // jeśli połączenie jest zajęte, ponawia próbę po 1 sekundzie
    setTimeout('process()', 1000);
}

// wykonywana automatycznie po otrzymaniu odpowiedzi z serwera
function handleServerResponse() 
{
  // kontynuuje jedynie jeśli transakcja została zakończona
  if (xmlHttp.readyState == 4) 
  {
    // status 200 oznacza pomyślne ukończenie transakcji
    if (xmlHttp.status == 200) 
    {
      // wyodrębnia wiadomość XML wysłaną z serwera
      xmlResponse = xmlHttp.responseXML;
      // pobiera element nadrzędny ze struktury pliku XML
      xmlDocumentElement = xmlResponse.documentElement;
      
// 
      xmlElements = xmlDocumentElement.getElementsByTagName("title");
	
	

	for (i=1;i<=xmlElements.length-1;i++)
	{
		newsText[i-1] = xmlElements[i].childNodes[0].nodeValue;
	}

	
	
      xmlElements = xmlDocumentElement.getElementsByTagName("link");
	
	

	for (i=1;i<=xmlElements.length-1;i++)
	{
		newsLink[i-1] = xmlElements[i].childNodes[0].nodeValue;
	}
	

      xmlElements = xmlDocumentElement.getElementsByTagName("description");
	
	

	for (i=1;i<=xmlElements.length;i++)
	{
		newsDesc[i-1] = xmlElements[i-1].childNodes[0].nodeValue;
	}

	newsType();	

	newsListLoad ();
	
      // aktualizuje dane wyświetlane klientowi informacjami otrzymanymi z serwera
      //document.getElementById("news").innerHTML = helloMessage;
      

    } 
    // dla statusu protokołu HTTP innego niż 200 zgłasza błąd
    else 
    {
      alert("Error by accessing server: " + xmlHttp.statusText);
    }
  }
}

function PleaseShowNews ()
{
	if (fPleaseShowNews==0) {
		fPleaseShowNews=1;
		setTimeout("newsListShow(1)", 300);
	}
	if (fPleaseHideNews==1) {
		fPleaseHideNews=0;
	}
}

function PleaseHideNews ()
{
	if (fPleaseHideNews==0) {
		fPleaseHideNews=1;
		setTimeout("newsListShow(0)", 300);
	}
	if (fPleaseShowNews==1) {
		fPleaseShowNews=0;
	}
}

function newsListShow (fShow)
{
	
	if ((fShow ==1 ) && (fPleaseShowNews==1)) {
		document.getElementById("newsList").style.display='block';
		fPleasShowNews=0;
	}
	if ((fShow ==0 ) && (fPleaseHideNews==1)) {
		document.getElementById("newsList").style.display='none';
		fPleaseHideNews=0;
	}
}

function newsListLoad ()
{


	

	for (i=0;i<=7;i++)
	{
		dest=document.getElementById("newsList" + i);
		dest.href = newsLink[i];
		dest.title = newsDesc[i];

		dest.firstChild.nodeValue=newsText[i] + " •";
	}

}
