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

/**
 * 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 change(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));
}

/**
 * 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-400)+'px';
    hint.top = (posy-450)+'px';
}

var id_timeout_show_hint;
var id_timeout_hide_hint;

/**
 * Wyświetla dymek
 * @param string id nazwa elementu HTML zawierającego dymek
 * @param string src url obrazka
 * @param string car tytuł
 * @param string price cena
 */
function show_hint(id, left, html)
{
	var element = document.getElementById(id);
	
	if (html != undefined) {
		element.innerHTML = html;
	}

    window.clearTimeout(id_timeout_show_hint);
    window.clearTimeout(id_timeout_hide_hint);
	element.style.left = left + 'px';
    id_timeout_show_hint = window.setTimeout("document.getElementById('"+id+"').className = 'hint';", 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);
}



function add(id)
{
    document.getElementById('id_'+id).className = 'hidden';
    document.getElementById('sp_'+id+'_add').className = '';
    document.getElementById(id).value = '';
    hide_add_img(true, id);
}

function cancel(id)
{
    document.getElementById('sp_'+id+'_add').className = 'hidden';
    document.getElementById('id_'+id).className = '';
    hide_add_img(false, id);
}

function hide_add_img(hide, id)
{
    var img = document.getElementById('img_add_'+id);
    if (hide) {
        img.className = 'hidden';
    }
    else {
        img.className = 'link';
    }
}

/**
 * Załadowanie animacji flash
 */
function flashload()
{
    var flashvars = {};
    var params = {};
    params.menu = 'false';
    var attributes = {};

    swfobject.embedSWF('design/flash/logo.swf', 'flash_itc', 290, 120, '8.0.0', false, flashvars, params, attributes);

    var flashvars = {};
    flashvars.swfFile = 'design/flash/panel.swf';
    flashvars.xmlFile = 'portfolio.xml';
    flashvars.cssFile = 'design/flash.css';
    flashvars.fontColor = '#00db2f';
    flashvars.bgImageFile = './design/flash/bg.png';
    var attributes = {};
    swfobject.embedSWF('design/flash/panelpreloader.swf', 'flash_portfolio', 800, 250, '8.0.0', false, flashvars, params, attributes);

    var flashMovie;
    if (document.getElementById) {
        flashMovie = document.getElementById('flash_portfolio');
        flashMovie.onmouseover = function(){
            try
            { flashMovie.mouseEnter(); }
            catch(e){}
        }
        flashMovie.onmouseout = function(){
            try
            { flashMovie.mouseLeave(); }
            catch(e){}
        }
    }
}

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