

<!--
function padDigits(n, totalDigits) { 
    n = n || '';
    n = n.toString(); 
    var pd = ''; 
    if (totalDigits > n.length) { 
        for (i=0; i < (totalDigits-n.length); i++) pd += '0'; 
    } 
    return pd + n.toString(); 
} 
$(document).ready(function() {
    function prepareTable1(xml,clear) {        
        var temp,star,curr;        
        if($('record',xml).length) {
            var table = $('<table cellpadding="0" cellspacing="0"><tr>' +
            '<td>Waluta</td>' +
            '<td>Kupno</td>' +
            '<td>Sprzedaż</td>' +
            '<td>Średni NBP</td>' +
            '<td>Spread</td>' +     
            '</tr></table>');
            for (x = 0; x < $("record",xml).length; x++) {
                star = ($("record:eq(" + x + ") currency",xml).text() == "JPY") ? "*" : "";
                temp = "<tr>" +
                    "<td>" + $("record:eq(" + x + ") currency",xml).text() + star + "</td>" +
                    "<td>" + parseFloat($("record:eq(" + x + ") buy_value",xml).text(), 10).toFixed(4) + "</td>" +
                    "<td>" + parseFloat($("record:eq(" + x + ") sell_value",xml).text(), 10).toFixed(4) + "</td>" +
                    "<td>" + parseFloat($("record:eq(" + x + ") avg_value",xml).text(), 10).toFixed(4) + "</td>" +
                    "<td>" + parseFloat($("record:eq(" + x + ") spread_buy",xml).text(), 10).toFixed(4) + "</td>" +
                    "</tr>";     
                table.append(temp);                
            }
        } else if($('waluta',xml).length) {
            var table = $('<table cellpadding="0" cellspacing="0"><tr>' +
            '<td>Kraj</td>' +
            '<td>Waluta</td>' +
            '<td>JM</td>' +
            '<td>Kupno</td>' +
            '<td>Sprzedaż</td>' +
            '<td>Średni NBP</td>' +     
            '<td>Spread</td>' +     
            '</tr></table>');
            var allow = {
                CHF:{nr: 0,waluta: {}},
                EUR:{nr: 0,waluta: {}},
                GBP:{nr: 0,waluta: {}},
                JPY:{nr: 0,waluta: {}},
                USD:{nr: 0,waluta: {}}
            };            
            var waluta,w_iso,w_nr,w_obj;
            for(x=0;x< $('waluta',xml).length; x++) {
                waluta = $('waluta:eq('+x+')',xml);
                w_iso = waluta.attr('symbol_waluty').split('/');
                w_iso = w_iso[1]
                eval('w_obj = allow.'+w_iso);
                w_nr = waluta.parent().attr('nr');
                if(w_obj.nr < w_nr) {
                    w_obj.nr = w_nr;
                    w_obj.waluta = waluta.clone();                
                }
            }            
            var curr;
            $.each(allow,function() {
                if(this.nr != 0) {
                    that = $(this.waluta[0]);
                    curr = that.attr('symbol_waluty');
                    star = (curr == '784/JPY') ? '*' : '';
                    temp = '<tr>' +
                        '<td>'+that.attr('kraj')+star+'</td>'+
                        '<td>'+curr+'</td>'+
                        '<td>'+that.attr('jm')+'</td>' +
                        '<td>'+parseFloat(that.attr('d_kupno'),10).toFixed(4)+'</td>'+
                        '<td>'+parseFloat(that.attr('d_sprzedaz'),10).toFixed(4)+'</td>'+
                        '<td>'+parseFloat(that.attr('kurs_sredni_nbp'),10).toFixed(4)+'</td>'+
                        '<td>'+parseFloat(that.attr('spread'),10).toFixed(4)+'</td>'+
                        '</tr>';
                    table.append(temp);
                }
            });            
        } else {
            // error - format nieznany!
        }        
        $("#kursy_walut_ div.cl").nextAll().remove();
        ($("#kursy_walut_").find("table").length > 0) ?
            $("#kursy_walut_").find("table").replaceWith(table) :
            $("#kursy_walut_").append(table);
        $("#kursy_walut_").find("p").text("").remove();
        $("#kursy_walut_").append("<p>* kurs dotyczy 100 jednostek</p>");
        $("#kursy_walut_").append("<p>Bank ustala Tabelę Kursową w oparciu o bieżące kursy walutowe dostępne na międzybankowym rynku walutowym w momencie ich sporządzenia. Różnica pomiędzy odpowiednim kursem w Tabeli Kursowej a kursem rynkowym (spread) jest wyliczana procentowo. Bank określając kurs kupna i sprzedaży uwzględnienia aktualną sytuację na rynku walutowym, w szczególności poziom zmienności kursów walutowych oraz płynność poszczególnych walut</p>");
        
        $(".kredytyTxt").append("<p>Ustalenie kursu sprzedaży waluty indeksacyjnej w Banku polega na dodaniu do kursu rynkowego sprzedaży walut publikowanego w <strong>serwisie Reuters</strong> spreadu walutowego, zgodnie z poziomem spreadu przyjmowanym w Banku uchwałą zarządu, jednakże nie wyższym niż 5 %.<br /><br/>Ustalenie kursu kupna waluty indeksacyjnej w Banku polega na odjęciu od kursu rynkowego kupna walut publikowanego w <strong>serwisie Reuters</strong> spreadu walutowego, zgodnie z poziomem spreadu przyjmowanym w Banku uchwałą zarządu, jednakże nie wyższym niż 5 %.<br /><br /></p>");
    }
    
    function prepareTable2(xml,clear) {
        var table = $('<table cellpadding="0" cellspacing="0"><tr>' +
            '<td>Waluta</td>' +
            '<td>Kupno</td>' +
            '<td>Sprzedaż</td>' +
            '<td>Spread</td>' +
            '</tr></table>');
        var temp;
        var sort = [];
        sort["EUR"] = [];
        sort["USD"] = [];
        sort["CHF"] = [];
        for (x = 0; x < $("kurs",xml).length; x++){ 
            temp = "<tr>" +
                "<td>" + $("kurs:eq(" + x + ")",xml).attr("symbol") + "</td>" +
                "<td>" + parseFloat($("kurs:eq(" + x + ")",xml).attr("kupno"), 10).toFixed(4) + "</td>" +
                "<td>" + parseFloat($("kurs:eq(" + x + ")",xml).attr("sprzedaz"), 10).toFixed(4) + "</td>" +
                "<td>" + parseFloat($("kurs:eq(" + x + ")",xml).attr("spread"), 10).toFixed(4) + "</td>" +
                "</tr>";
                sort[$("kurs:eq(" + x + ")",xml).attr("symbol")]= temp;
                
            if(clear) {$("#kursy_bank div.cl").nextAll().remove();}
        }
        table.append(sort["EUR"]);
        table.append(sort["USD"]);
        table.append(sort["CHF"]);
                    
        $("#kursy_bank div.cl").nextAll().remove();
        ($("#kursy_bank").find("table").length > 0) ?
            $("#kursy_bank").find("table").replaceWith(table) :
            $("#kursy_bank").append(table);
        $("#kursy_bank").append('<p>* dotyczy kredytów hipotecznych udzielanych po dniu 4 stycznia 2010r.</p>');
        $("#kursy_bank").append("<p>Bank ustala Tabelę Kursową w oparciu o bieżące kursy walutowe dostępne na międzybankowym rynku walutowym w momencie ich sporządzenia. Różnica pomiędzy odpowiednim kursem w Tabeli Kursowej a kursem rynkowym (spread) jest wyliczana procentowo. Bank określając kurs kupna i sprzedaży uwzględnienia aktualną sytuację na rynku walutowym, w szczególności poziom zmienności kursów walutowych oraz płynność poszczególnych walut</p>");
    }
    
    function setupTableCzas(xml, type) {
        var type = type || 'd', pushTime = [];                
        
        /* $("#tabela_podst_d #tpttime").text(($("tabela:last",xml).attr("czas")).slice(0,10)); */
        
        $(xml).find('tabela').each(function() {
            var locTime = $(this).attr('czas');                                        
            pushTime.push('<option value="'+locTime+'">' + locTime + '</option>');
        });    
        
        $('#tabela_podst_'+type+' #tpttime').html('Notowania z godziny: <select id="drop-tp'+type+'Time">'+pushTime.join('')+'</select>');        
        $('#drop-tp'+type+'Time').bind('change',function(e,d) {
            prepareTable3(xml,true,'d',$(this).val());
            return false;
        }).css({
            'border' : '1px solid #E3E3E3'
            , 'font' : '1.1em georgia,sans-serif'
            , 'padding' : '2px'
        }).parent().css({
            'position' : 'relative'
            , 'top' : '-5px'
        });
    }
    
    function prepareTable3(xml,clear,type, time) {
        var tableDOMName = "#tabela_podst_" + type;
        var table = $('<table cellpadding="0" cellspacing="0" style="margin-top: 2em"><tr>' +
            '<td>Kraj</td>' +
            '<td>Symbol<br />Waluty</td>' +
            '<td>JM</td>' +
            '<td>Kupno</td>' +
            '<td>Sprzedaż</td>' +
            '<td style="text-align: center">Kurs średni<br /> NBP<br /> (FIXING)</td>' +
            '<td style="text-align: center">W<br />przeliczeniu<br />5000 USD</td>' +
            '</tr></table>');
        var temp, locTime = $("tabela:last",xml).attr('czas');
        if(type === 'd' && typeof time === 'undefined') {
            $('select#drop-tpdTime').find('option[value = "'+locTime+'"]').attr('selected','selected');
        }
        var $Tabela = (typeof time === 'undefined') ? $(xml).find('tabela:last') : $(xml).find('tabela[czas="'+time+'"]');
        for (x = 0; x < $Tabela.find('waluta').length; x++) {
            var $waluta = $Tabela.find("waluta:eq(" + x + ")");
            switch($waluta.attr("symbol_waluty")) {
                case "231/BYR" :                    
                    $waluta.attr("kraj","BIAŁORUŚ");
                    break;;
                default:
                    break;;
            }
            temp = "<tr>" +
                "<td>" + $waluta.attr("kraj") + "</td>" +
                "<td>" + $waluta.attr("symbol_waluty") + "</td>" +
                "<td>" + $waluta.attr("jm") + "</td>" +
                "<td>" + parseFloat((type == "d") ? $waluta.attr("d_kupno") : $waluta.attr("p_kupno"), 10).toFixed(4) + "</td>" +
                "<td>" + parseFloat((type == "d") ? $waluta.attr("d_sprzedaz") : $waluta.attr("p_sprzedaz"), 10).toFixed(4) + "</td>" +
                "<td style='text-align: center'>" + parseFloat($waluta.attr("kurs_sredni_nbp"), 10).toFixed(4) + "</td>" +
                "<td style='text-align: center'>" + $waluta.attr("przeliczenie_usd") + "</td>" +
                "</tr>";
            table.append(temp);
            if(clear) {$("#" + tableDOMName + " div.cl").nextAll().remove();}
        }
        $(tableDOMName + " div.cl").nextAll().remove();
        ($(tableDOMName).find("table").length > 0) ?
            $(tableDOMName).find("table").replaceWith(table) :
            $(tableDOMName).append(table);
        $(tableDOMName).append("<p>* Dotyczy operacji bezgotówkowych</p>");
        $(tableDOMName).append("<p>Bank ustala Tabelę Kursową w oparciu o bieżące kursy walutowe dostępne na międzybankowym rynku walutowym w momencie ich sporządzenia. Różnica pomiędzy odpowiednim kursem w Tabeli Kursowej a kursem rynkowym (spread) jest wyliczana procentowo. Bank określając kurs kupna i sprzedaży uwzględnienia aktualną sytuację na rynku walutowym, w szczególności poziom zmienności kursów walutowych oraz płynność poszczególnych walut</p>");
    }
    
    if ($("#kursy_walut_").length > 0) {
        var star = "";
        var getTable1Error = function() {
            if ($(".kredytyTxt p").length > 0) $(".kredytyTxt p").replaceWith("");
            var d = new Date();
            var date = d.getFullYear() + '-' + (d.getMonth() + 1) + '-' + padDigits(d.getDate(),2);
            $("#kursy_walut_").append("<p>Brak danych z dnia " + date + ". Proszę wybrać inny dzień.</p>");
            if ($("#kursy_walut_ table").length > 0) $("#kursy_walut_ table").replaceWith("");
        }
        var getTable1 = function() {            
            var locURL = '/_xml/noble-waluty-najnowsze.xml';
            $.ajax({
                url:    locURL,
                dataType:  "xml",
                type:   "get",
                success: function(xml) {
                    if($('dane',xml).children().length > 0) {
                        prepareTable1(xml,false);
                        var dataW = ($("date_publication:eq(0)",xml).length) ? $("date_publication:eq(0)",xml).text() : $('tabela',xml).attr('data') ;                        
                        $("#kursy_walut_ #kwdate").text('Obowiązuje dnia: '+ (dataW).slice(0,10));
                    } else {                        
                        getTable1Error();                        
                    }
                },
                error: getTable1Error
            });
        }
        
        getTable1();
        
    }
    
    if ($("#kursy_bank").length > 0) {
        var star = "";
        $.ajax({
            url:    "/_xml/getin-waluty-najnowsze.xml",
            dataType:  "xml",
            type:   "get",
            success: function(xml) {
                prepareTable2(xml,false);
                $("#kursy_bank #kbankdate").text(($("kurs:eq(0)",xml).attr("data")).slice(0,10));
            },
            error: function() {
                $("#kursy_bank").append("<p>Brak danych z dnia " + date + ". Proszę wybrać inny dzień.</p>");
                if ($("#kursy_bank table").length > 0) $("#kursy_bank table").replaceWith("");
            }
        });
    }
    
    if ($("#tabela_podst_d,#tabela_podst_p").length > 0) {
        var star = "";
        $.ajax({
            url:    "/_xml/getin-waluty-podstawowa-najnowsze.xml",
            dataType:  "xml",
            type:   "get",
            success: function(xml) {
                setupTableCzas(xml); 
                prepareTable3(xml,false,'d');
                prepareTable3(xml,false,'p');
                $("#tabela_podst_d #tpddate").text(($("tabela:last",xml).attr("data")).slice(0,10));
                $("#tabela_podst_p #tppdate").text(($("tabela:last",xml).attr("data")).slice(0,10));
            },
            error: function() {
                $("#tabela_podst_d,#tabela_podst_p").append("<p>Brak danych z dnia " + date + ". Proszę wybrać inny dzień.</p>");
                if ($("#tabela_podst_d table").length > 0) $("#tabela_podst_d table").replaceWith("");
                if ($("#tabela_podst_p table").length > 0) $("#tabela_podst_p table").replaceWith("");
            }
        });
    }
    
    $("div.text:has(div.kursyJS:hidden) h3").css("cursor", "pointer");
    $("div.text:has(div.kursyJS:hidden) h3").click(function(){
        var h = $(this);
        h.next("div.kursyJS").slideDown("fast");
        h.parent().siblings("div.text:has(div.kursyJS)").children("div.kursyJS").slideUp("fast");
    });
    
    $("#kursy_walut_ input[name='kwdate'],#kursy_bank input[name='kbankdate'],#tabela_podst_d input[name='tpddate'],#tabela_podst_p input[name='tppdate']").datepicker({
        dayNames: ['Niedziela', 'Poniedziałek', 'Wtorek', 'Środa', 'Czwartek', 'Piątek', 'Sobota'],
        dayNamesMin: ['Ni', 'Po', 'Wt', 'Śr', 'Cz', 'Pt', 'So'],
        dayNamesShort: ['Nie', 'Pon', 'Wto', 'Śro', 'Czw', 'Pią', 'Son'],
        monthNames: ['Styczeń', 'Luty', 'Marzec', 'Kwiecień', 'Maj', 'Czerwiec', 'Lipiec', 'Sierpień', 'Wrzesień', 'Październik', 'Listopad', 'Grudzień'],
        monthNamesShort: ['Sty', 'Lut', 'Mar', 'Kwi', 'Maj', 'Cze', 'Lip', 'Sie', 'Wrz', 'Paź', 'Lis', 'Gru'],
        prevText: '&laquo;',
        nextText: '&raquo;',
        currentText: 'dzisiaj',
        clearText: 'wyczyść',
        closeText: 'zamknij',
        buttonImage: '/_img/layout/ico.data-picker.png',
        showOn: 'both',
        dateFormat: 'yy-mm-dd',
        showAnim: 'fadeIn',
        maxDate: 'yyyy,mm,dd',
        onSelect: function(date){
            var domOBJ = $(this).parent();
            $(this).siblings("div#" + $(this).attr("name")).text(date);
            var ButtonName = $(this).attr("name")
            switch(ButtonName) {
                case "kbankdate" :
                    var XMLName = "/_xml/getin-waluty-";
                    break;;
                case "tppdate" :
                case "tpddate" :
                    var XMLName = "/_xml/getin-waluty-podstawowa-";
                    break;;
                case "kwdate":
                default:
                    var XMLName = "/_xml/noble-waluty-";
                    break;;
            }
            $.ajax({
                url:    XMLName + date.replace(/-/g,"") + ".xml",
                dataType:  "xml",
                type:   "get",
                success: function(xml) {
                    switch(ButtonName) {
                        case "kbankdate" :
                            prepareTable2(xml,true);
                            break;;
                        case "tpddate" :
                            setupTableCzas(xml);
                            prepareTable3(xml,true,'d');
                            break;;
                        case "tppdate" :
                            prepareTable3(xml,true,'p');
                            break;;
                        case "kwdate":
                            default:
                            prepareTable1(xml,true);
                            break;;
                    }
                },
                error: function() {
                    if ($(".kredytyTxt p").length > 0) $(".kredytyTxt").replaceWith("");
                    $(domOBJ).find("p").text("").remove();
                    $(domOBJ).append("<p>Brak danych z dnia " + date + ". Proszę wybrać inny dzień.</p>");
                    if ($(domOBJ).find("table").length > 0) $(domOBJ).find("table").replaceWith("");  
                    $("#tabela_podst_d #tpttime").html('');
                }
            });
        }
    });
});
//-->

