/**
 * Funkcje javascript uzywane na stronie
 * @package JavaScript
 * @author Mariusz Lisowski
 * @copyright 2008 Kryptonim:PL
 * @version 1.1
 */

/**
 * 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';
            }
        }
    }
}

/**
 * Przesuwa dymek
 * @param object e obiekt zdarzenia onmouseover
 * @param string id nazwa elementu HTML zawierającego dymek
 */
function move_hint(e, id)
{
    var posx = 0;
    var posy = 0;
    if (!e) var e = window.event;
    if (e.pageX || e.pageY) {
        posx = e.pageX;
        posy = e.pageY;
    }
    else if (e.clientX || e.clientY) {
        posx = e.clientX + document.body.scrollLeft
            + document.documentElement.scrollLeft;
        posy = e.clientY + document.body.scrollTop
            + document.documentElement.scrollTop;
    }

    var hint = document.getElementById(id).style;
    hint.left = (posx-120)+'px';
    hint.top = (posy-650)+'px';
}

var id_timeout_show_hint;
var id_timeout_hide_hint;

/**
 * Wyświetla dymek
 * @param string id nazwa elementu HTML zawierającego dymek
 */
function show_hint(id, src, alt)
{
    var html = '<div class="txt">';
    html += '<img src="'+src.replace(new RegExp('/min/', 'g'), '/')+'" alt="'+alt+'" />';
    html += '</div>';

    window.clearTimeout(id_timeout_show_hint);
    window.clearTimeout(id_timeout_hide_hint);
    document.getElementById(id).innerHTML = html;
    id_timeout_show_hint = window.setTimeout("document.getElementById('"+id+"').className = '';", 333);
}

/**
 * Ukrywa dymek
 * @param string id nazwa elementu HTML zawierającego dymek
 */
function hide_hint(id)
{
    window.clearTimeout(id_timeout_show_hint);
    window.clearTimeout(id_timeout_hide_hint);
    id_timeout_show_hint = window.setTimeout("document.getElementById('"+id+"').className = 'hidden';", 333);
}

/**
 * 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 (document.all) {
        var keyCode = event_obj.keyCode;
    }
    else {
        var keyCode = event_obj.which;
    }

    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;
}

function popup(txt)
{
    var obj_popup = document.getElementById('p_popup');
    if (txt.length > 0) {
        obj_popup.className = 'c_popup';
        obj_popup.innerHTML = '<div id="close" onclick="popup(\'\')" >x</div><div class="txt">'+txt+'</div>';
    }
    else {
        obj_popup.className = 'hidden';
    }
    //
}
