jQuery.fn.createListPagings = function() {

    var meAndMyself = this;
    
    var listId = meAndMyself.attr("id");
    
    var i = 1;
    
    $j("#"+listId).prepend("<li class=\"paging\"><div id=\"prodPager"+listId+"\"></div></li>");
    
    $j("#"+listId+" > li:not(\".header\"):not(\".footer\"):not(\".paging\")").each(function() 
    {
        $j(this).addClass('not_active');
        $j(this).removeClass('active');
        if(i == 1)
        {
            className = "active";
        }
        else
        {
            className = "";
        }
    
        $j("#prodPager"+listId).append("<a href=\"javascript: void('');\" id=\"a"+listId+i+"\" class=\""+className+"\" onClick=\"toggleActiveProduct("+i+", '"+listId+"'); \"> "+(i++)+" </a>");
    });

    $j("#"+listId+" > li:has(\".first\")").each(function() {
        $j(this).addClass('active');
        $j(this).removeClass('not_active');
    });
    
    $j("#"+listId+" > li.paging").each(function() {
        $j(this).css('display', 'block');
    });
    
    return this;
};

function toggleActiveProduct(i, listId)
{
    var tmp = 1;
    
    $j("#"+listId+" > li:not(\".header\"):not(\".footer\"):not(\".paging\")").each(function() {
        if(tmp == i)
        {
            $j(this).addClass('active');
            $j(this).removeClass('not_active');
            $j("#a"+listId+tmp).addClass('active');
            $j(this).css('display', 'block');
        }
        else
        {
            $j(this).css('display', 'none');
            $j(this).addClass('not_active');
            $j(this).removeClass('active');
            $j("#a"+listId+tmp).removeClass('active');
        }
        tmp++;
    });
}

jQuery.fn.acceptOnlyFloats = function() {

    $j(this).change(function(){
    
        var text_val = $j(this).val();
        
        // usuwamy wszystko co nie jest cyfra kropka lub przecinkiem

        text_val = text_val.replace(/[^0-9.,]*/g, '');

        // wszystkie przecinki zmieniaja sie w kropki

        text_val = text_val.replace(/[,]/g, '.');
        
        // a nastepnie ucinamy wszystkie kropki oprocz pierwszej

        // nie da sie ukryc ze ponizsza kombinacja replace'ow wynika z faktu,
        // iz autor zna regexp na slowo honoru
        // w tym celu pierwsza kropke zmieniamy w literke 'u'

        text_val = text_val.replace('.', 'u');

        // nastepnie wszystie inne kropki usuwamy

        text_val = text_val.replace(/[.]/g, '');

        // na koniec literke u przywracamy do bazowej postaci

        text_val = text_val.replace('u', '.');
        
        // na koniec wyciac wszystkie zera z poczatku stringi jezeli tylko nie jest to zero
        // poprzedzajace kropke
        
        while ( ((text_val[0] == '0') && (text_val[1] != '.')) && ((text_val[0] == '0') && (text_val[1] != null)) ) 
        {
            text_val = text_val.substring(1, text_val.length);
        }
        
        // trailing zeroes execution
        var x = 0;

        while(text_val.indexOf('.') != -1 && text_val.length > 0 && text_val[text_val.length-x-1] == '0' && text_val[text_val.length-x-2] != '.')
        {
            ++x;
        }
        
        if(x > 0)
        {
            text_val = text_val.substring(0, text_val.length - x);
        }
        
        // jakby ktos zaczal wpisywanie od kropki korekta na 0. cos tam
        if ( text_val[0] == '.' )
        {
            text_val = '0' + text_val;
        }
        
        $j(this).val(text_val);
    });
};



