/**
 * Funkcja ustawia target _blank dla <a> ktorych parametr rel jest rowny external
 * Jej uzycie pozwala na otwieranie linkow w nowym oknie przy zastosowaniu
 * poprawnego kodu XHTML 1.0 Strict
 */
function external_links()
{
    if (document.getElementsByTagName) {
        var anchors = document.getElementsByTagName('a');
        for (var i=0; i<anchors.length; i++) {
            var anchor = anchors[i];
            if (anchor.getAttribute('href') && anchor.getAttribute('rel') == 'external') {
                anchor.target = '_blank';
            }
        }
    }
}

/**
 * Funkcja otwiera "prawdziwe" okienko popup
 * @param string adres URL otwieranego w okienku pliku
 * @param string tytul tytul okienka
 * @param int w szerokosc okienka
 * @param int h wysokosc okienka
 */
function window_open(adres, tytul, w, h)
{
    var l = Math.floor( (screen.availWidth  - w) / 2);
    var t = Math.floor( (screen.availHeight - h) / 2);

    handle = window.open(adres, tytul, 'menubar=no, toolbar=no, location=no, scrollbars=yes, resizable=no, status=no, width='+w+', height='+h+', left='+l+', top='+t);
    handle.focus();
    
    return handle;
}

/**
 * http://simonwillison.net/2004/May/26/addLoadEvent/
 * @author (c) Simon Willison 2004, 
 * @license released under MPL license
 * @example
 * addLoadEvent(nameOfSomeFunctionToRunOnPageLoad);
 * 
 * addLoadEvent(function() {
 *   // more code to run on page load 
 * });
 */
function addLoadEvent(func) 
{
    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
        window.onload = func;
    }
	else {
        window.onload = function() 
		{
	        if (oldonload) {
	            oldonload();
	        }
	        func();
        }
    }
}

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

/**
 * Zmienia zawartość elementu html o ID równym id na content
 * @param string id ID elementu HTML w którym ma zostać zmieniona treść
 * @param string content nowa tresc
 * @param int time czas (w milisekundach) zmiany elementu
 */
function zmien(id, content, time)
{
    new Effect.Fade(id, {duration:(time/2000)});
    window.setTimeout('document.getElementById(\''+id+'\').innerHTML = \''+content+'\'', Math.ceil(time/2));
    window.setTimeout('Effect.Appear(\''+id+'\', {duration:'+(time/2000)+'})', Math.ceil(time/2));
	//Fade, SwitchOff, DropOut 
}

function zmien_przes(id, tresc, url, xx, czas)
{
    new Effect.Parallel([
        new Effect.Opacity(id, { sync: true, from: 1, to: 0 }),
        new Effect.Move(id, { sync: true, x: xx, y: 0, mode: 'relative', transition: Effect.Transitions.spring })
    ], { 
        duration: Math.ceil(czas/2000)
    });
	
	window.setTimeout('document.getElementById(\''+id+'\').innerHTML = \''+tresc+'\'; document.getElementById(\''+id+'\').href = \''+url+'\'', Math.ceil(czas/2));
	
    new Effect.Parallel([
        new Effect.Opacity(id, { sync: true, from: 0, to: 1 }),
        new Effect.Move(id, { sync: true, x: -xx, y: 0, mode: 'relative', transition: Effect.Transitions.spring })
    ], { 
        delay: Math.ceil(czas/2000),
		duration: Math.ceil(czas/2000), 
    });
}


var zwin = false;
function zwin_rozwin() 
{
    if (zwin) {
        new Effect.BlindUp('dodatkowe_kat', {duration:(1)});
        zmien('zwin_rozwin_txt', 'więcej kategorii &gt;&gt;&gt;', 1000);
        document.cookie = 'menu_rozwin=; expires=Thu, 01-Jan-70 00:00:01 GMT;';
    }
    else {
        new Effect.BlindDown('dodatkowe_kat', {duration:(1)});
        zmien('zwin_rozwin_txt', 'mniej kategorii &lt;&lt;&lt;', 1000);
        document.cookie = 'menu_rozwin=1';
    }
    zwin = !zwin;
}

function spr_menu()
{
    if ( document.cookie.indexOf('menu_rozwin=') != -1 ) {
        zwin = false;
        zwin_rozwin();
    }
}

addLoadEvent(spr_menu)

/**
 * Funkcja filtruje znaki wprowadzane przez uzytkownika np. w polu input
 * @example onkeypress="return check_key(event, this, true, false, false, false, false, false, false)"
 * @param object event_obj Objekt klasy KeyboardEvent
 * @param object obj Objekt HTML w którym filtrowana jest treść
 * @param bool number akceptowanie liczb
 * @param bool l_letter akceptowanie małych liter
 * @param bool u_letter akceptowanie dużych liter
 * @param bool space akceptowanie spacji
 * @param bool comma akceptowanie przecinka
 * @param bool comma akceptowanie znaku @
 * @return bool informacja czy wprowadzony znak jest akceptowany
 */
function check_key(event_obj, obj, number, l_letter, u_letter, space, comma, minus, at)
{
    if (event_obj.which) {
        var keyCode = event_obj.which;
    }
    else {
        var keyCode = event_obj.keyCode;
    }

    var result = false;
    //backspace 8, tab 9, delete 46
    if ( keyCode == 8 || keyCode == 9 || keyCode == 46 || keyCode == 0 ) {
        result = true;
    }
    else if ( number && (keyCode >= 48 && keyCode <= 57) ) {
        var result = true;
    }
    else if ( l_letter && ( (keyCode >= 97 && keyCode <= 122) ||
    keyCode == 261 || keyCode == 263 || keyCode == 281 || keyCode == 322 ||
    keyCode == 324 || keyCode == 243 || keyCode == 347 || keyCode == 378 || keyCode == 380 ) ) {
        var result = true;
    }
    else if ( u_letter && ( (keyCode >= 65 && keyCode <= 90) ||
    keyCode == 260 || keyCode == 262 || keyCode == 280 || keyCode == 321 ||
    keyCode == 323 || keyCode == 211 || keyCode == 346 || keyCode == 377 || keyCode == 379 ) ) {
        var result = true;
    }
    else if ( space && keyCode == 32 ) {
        var result = true;
    }
    else if ( comma && keyCode == 44 ) {
        var result = true;
    }
    else if ( minus && keyCode == 45 ) {
        var result = true;
    }
    else if ( at && keyCode == 64 ) {
        var result = true;
    }
    /*else {
        alert(keyCode);
    }*/

    return result;
}

/* ANIMACJE */
function rob_bomba_txt(tytul, kod, src, cena, waluta, ile, ktory)
{
    var result = '<div class="txt">';
    result += '<h1 id="bomba_tytul">'+tytul+'</h1>';
    result += '<div id="bomba_kod_txt">Kod: <span id="bomba_kod">'+kod+'</span></div>';
    result += '<img id="bomba_foto" src="'+src+'" alt="'+tytul+'" />';
    result += '<img class="nakladka" src="design/bs_bomba_nakladka.png" alt="bomba" />';
    result += '<div id="bomba_cena_txt">cena od: <div id="bomba_cena">'+cena+' <span>'+waluta+'</span></div></div>';
    result += '</div>';

    result += '<div id="bomby_zmiany">';
    for (var ii=1; ii<=ile; ii++) {
        if (ii==ktory) {
            result += '<div class="selected">'+ii+'</div>';
        }
        else {
            result += '<div onclick="zmien_bomba('+(ii-1)+')">'+ii+'</div>';
        }
    }
    result += '</div>'; 
    return result;
}

var i_bomba = 0;
function zmien_bomba(z)
{
    if (z!=undefined && z>=0 && z<bomba_cnt) {
        i_bomba=z-1;
    }
	
	if (bomba_cnt > 1) {
		i_bomba = ++i_bomba % bomba_cnt;
		zmien('bomba_srodek', bomba_txt[i_bomba], 2000);
	}
}

function rob_kontakt_txt(src, osoba, stanowisko, gg, mail, tel1, tel2)
{
    var result = '<img class="foto" src="'+src+'" alt="'+osoba+'" />';
    result += '<h1 class="niebieski">'+osoba+'</h1>';
    result += '<div class="pomaranczowy">'+stanowisko+'</div>';
    result += '<a href="gg:'+gg+'" class="niebieski">';
    result += '<img src="http://status.gadu-gadu.pl/users/status.asp?id='+gg+'&amp;styl=1" alt="*" />';
    result += '</a>';
    result += '<a href="gg:'+gg+'" class="niebieski">'+gg+'</a>';
    result += '<div class="pomaranczowy wciecie">email:</div>';
    result += '<a class="niebieski" href="mai&#108;&#116;&#111;&#58;'+mail+'">'+mail+'</a>';
    result += '<div class="pomaranczowy wciecie">telefon:</div>';
    result += '<div class="niebieski duzy">'+tel1+'</div>';
	if (tel2!=undefined && tel2!='') {
        result += '<div class="niebieski duzy">'+tel2+'</div>';
	}
	return result;
}

var i_kontakt = 0;
function zmien_kontakt(z)
{
    if (z!=undefined && z>=0 && z<kontakt_cnt) {
        i_kontakt=z-1;
    }
    if (kontakt_cnt > 1) {
        i_kontakt = ++i_kontakt % kontakt_cnt;
        zmien('kontakt_srodek', kontakt_txt[i_kontakt], 2000);
    }
}

var i_aktualnosci = 0;
function zmien_aktualnosci(z)
{
    if (z!=undefined && z>=0 && z<aktualnosci_cnt) {
        i_aktualnosci=z-1;
    }
	
    if (aktualnosci_cnt > 1) {
        i_aktualnosci = ++i_aktualnosci % aktualnosci_cnt;
        zmien_przes('aktualnosci_srodek', aktualnosci_txt[i_aktualnosci].title, aktualnosci_txt[i_aktualnosci].url, 460, 1000);
    }
}

function rob_reklama_txt(src, url, tytul, ile, ktory)
{
    var result = '<div id="gora_reklamy">';
    result += '<h4>: '+tytul+'</h4>';
    result += '<div id="reklamy_zmiany">';
    for (var ii=1; ii<=ile; ii++) {
        if (ii==ktory) {
            result += '<div class="selected">'+ii+'</div>';
        }
        else {
            result += '<div onclick="zmien_reklama('+(ii-1)+')">'+ii+'</div>';
        }
    }
    result += '</div>';
    result += '</div>';
    result += '<a href="'+url+'" title="'+tytul+'">';
    result += '<img src="'+src+'" alt="'+tytul+'" title="'+tytul+'" />';
    result += '</a>';
    return result;
}

var i_reklama = 0;
function zmien_reklama(z)
{
	if (z!=undefined && z>=0 && z<reklama_cnt) {
		i_reklama=z-1;
		window.clearInterval(interval_reklama);
	}
	
    if (reklama_cnt > 1) {
        i_reklama = ++i_reklama % reklama_cnt;
        zmien('srodek_reklama_txt', reklama_txt[i_reklama], 2000);
    }
	
    if (z != undefined && z >= 0 && z < reklama_cnt) {
        interval_reklama = window.setInterval('zmien_reklama()', 5777);
	}
}

var /*interval_bomba, interval_kontakt,*/ interval_aktualnosci, interval_reklama;
addLoadEvent(function() {
    external_links();
    initwww();
    //interval_bomba = window.setInterval('zmien_bomba()', 5100);
    //interval_kontakt = window.setInterval('zmien_kontakt()', 5333);
	interval_aktualnosci = window.setInterval('zmien_aktualnosci()', 5500);
	interval_reklama = window.setInterval('zmien_reklama()', 5777);
}); 

//aktualnosci_srodek

