var nn; //tablica z numerami ostatnich 10 wpisow
var login;
var ileRazyWczytanyPlik = -1;   //chodzi o plik ostatnie.t (-1 bo od razu jest ++)
var ileRazyWczytanyPlikk = 0;  //poprzenia wartosc ileRazyWczytanyPlik dla funkcji sprawdzajCzyWczytujePliki
var x;

function id(co){
    return document.getElementById(co);
}

function pokazDol(){
    id("rozmowa").scrollTop = id("rozmowa").scrollHeight;
}

function jestW(nr,tablica){
    var ile = tablica.length;
    for(var n=0; n<ile; n++){
	if (nr == tablica[n]) return n;
    }
    return -1;
}

function aktualizuj(ajax){
    //aktualizuje okno rozmowy
    var trzyCzesci, i, j, k, n, wiersze, nr, ile, nowyWiersz, loginWnowymWierszu;
    poczatek = ajax.substring(0,4);
    if (poczatek == "ok\n\n"){
	trzyCzesci = ajax.split("\n\n");
	if (trzyCzesci[1] != '-'){
	    wiersze = trzyCzesci[1].split("\n");
	    ile = wiersze.length;
	    for(n=0; n<ile; n++){
		k = wiersze[n].indexOf(" ");
		nr = wiersze[n].substring(0,k); //numer wiersza
		if ( jestW(nr,nn) == -1 ){      //jezeli nr nie ma w tablicy nn
		    id("rozmowa").innerHTML += "<div>" + wiersze[n].substring(k+1) + "</div>";
		    nn.push(nr);
		    if (nn.length>100) nn.shift(); //usuwa pierwszy wyraz (100 - tak dane aby nie za duże nn powstało)
		}
	    }
	}
    }
    pokazDol();

    //pokazuj kto jest na forum
    var wiersze, ludzie;
    if ( trzyCzesci[2] == '-' ){
	id("ludzie").innerHTML = "- - -";
    }else{
	wiersze = trzyCzesci[2].split("\n");
	ile = wiersze.length;
	ludzie = "";
	var kto = new Array();
	for(n=0; n<ile; n++){
	    wiersz = wiersze[n];
	    i = wiersz.indexOf(" ");
	    kto[n] = wiersz.substring(i+1);
	}

	if ( (jestW(idGracza,kto) != -1) && (opisGracza != idGracza) ){  //jezeli w tablicy "kto" jest idGracza,
	    nrr = jestW(opisGracza,kto);                                 //to w miejsce idGracza daje opisGracza
	    if (nrr != -1){
		kto.splice(nrr,1);                                       //usuwa opis, jeśli jest
	    }
	    nr = jestW(idGracza,kto);
	    kto[nr] = opisGracza;                                        //w miejsce idGracza daje opisGracza
	}

	var ile = kto.length
	for(n=0; n<ile; n++){
	    if ( ludzie  == "" ){             
		ludzie = kto[n];
	    }else{                            
		ludzie = kto[n] + ", " + ludzie;
	    }
	}

	id("ludzie").innerHTML = "admin, " + ludzie;
    }

    setTimeout('wczytajPlik("ostatnie.t")',1500);
}

function pobierz(){
    if ( (xmlhttp.readyState == 4) && (xmlhttp.status == 200) ){
	try{//to zapewnie, ze sie nie wysypie na bledzie
	    ajax = xmlhttp.responseText;
	    aktualizuj(ajax);
	}
	catch (e){
	    ajax ='';
	}
    }else{
	ajax = '';
    }
}

function sprawdzajCzyWczytujePliki(){
    if (ileRazyWczytanyPlik == ileRazyWczytanyPlikk){
	wczytajPlik("ostatnie.t");
    }else{
	ileRazyWczytanyPlikk = ileRazyWczytanyPlik;
    }
	setTimeout('sprawdzajCzyWczytujePliki()',60000);
}

function wyslijWpis(){
    if ((opisGracza == idGracza) || (opisGracza == "")){
	alert("Wpisz imię lub pseudonim.");
	return true;
    }
    var wpis = id("wpis").value;
    ajaxWyslijWpis(wpis);
}

function wpisWyslany(){
    if ( (xmlhttpp.readyState == 4) && (xmlhttpp.status == 200) ){
	try{//to zapewnie, ze sie nie wysypie na bledzie
	    ajaxx = xmlhttpp.responseText;
	    var trzyCzesci = ajaxx.split("\n");
	    if (trzyCzesci[0] == "ok"){
		var nr = trzyCzesci[1];     //numer wpisu nadany przez skrypt dodaj.py
		if ( jestW(nr,nn) == -1 ){  //może się zdarzyć, że ostatnie.t przyjdzie wcześniej
		    nn.push(nr); 
		    if (nn.length>100) nn.shift();
		    id("rozmowa").innerHTML += "<div>" + trzyCzesci[2] + "</div>";
		    pokazDol();
		}
		id("wpis").value = "";
	    }
	}
	catch (e){
	    ajaxx ='';
	}
    }else{
	ajaxx = '';
    }
}

function jeszczeJestemNaStronie(){
    ajaxJeszczeJestemNaStronie();
    setTimeout('jeszczeJestemNaStronie()',20000);
}

function poczatekShoutbox(){
    nn = new Array();
    id("wpis").value = "";
    id("wpis").focus();
    id("dodaj").onclick = wyslijWpis;

    jeszczeJestemNaStronie();
    wczytajPlik("ostatnie.t");
//    setTimeout('sprawdzajCzyWczytujePliki()',60000);
}


//--------------------------------------------------------------

function wczytajPlik(plik){
    ileRazyWczytanyPlik++;
    xmlhttp = makexmlhttp();
    if(xmlhttp){
	try{
	    xmlhttp.open("GET",plik,true);//ustaw parametry poloczenia
	    xmlhttp.onreadystatechange = pobierz; //funkcja Pobierz jest przypisana do obslugi 
	    xmlhttp.send(null);                   //zmianu stanu żadania inicjalizowanego przez send 
	}
	catch (e){
	    ajax = '';
	}
    }else{
	ajax = ''
    }
}

function ajaxWyslijWpis(tekst){
    xmlhttpp = makexmlhttp();
    if(xmlhttpp){
	try{
	    tekst = encodeURIComponent(tekst);
	    xmlhttpp.open('POST',"shoutbox.py",true);     //ustaw parametry poloczenia
	    xmlhttpp.onreadystatechange = wpisWyslany;  //funkcja Pobierz jest przypisana do obslugi (4 - zakończenie)
	                                           //zmianu stanu żadania inicjalizowanego przez send 
	    xmlhttpp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
	    xmlhttpp.send('co=dodaj&wpis=' + tekst);
	} catch (e) {
	    ajaxx = '';
	}
    } else {
	ajaxx = ''
    }
    return ajaxx;
}

function odpDlaIe(){
    if ( (xmlhttppp.readyState == 4) && (xmlhttppp.status == 200) ){
	try{//to zapewnie, ze sie nie wysypie na bledzie
	    ajaxxx = xmlhttppp.responseText;
//	    alert(ajaxxx);
	} catch (e) {
	    ajaxxx ='';
	}
    }else{
	ajaxxx = '';
    }
}

function ajaxJeszczeJestemNaStronie(){
    xmlhttppp = makexmlhttp();
    if(xmlhttppp){
	try{
	    xmlhttppp.open('GET','shoutbox.py?co=jestem',true); //ustaw parametry poloczenia
	    xmlhttppp.onreadystatechange = odpDlaIe; //nie ma potrzeby obslugiwac odpowiedzi, bo jej nie ma
	    xmlhttppp.send(null);
	} catch (e) {}
    }
}



