﻿var PoprzedniaKontrolka = '';
var AktualnaKontrolka = '';
var KeyID;
var Obsluzono = false;

function KeyCheck(e)
{    
    if (!e)
        e = window.event;
    KeyID = e.keyCode;
    Obsluzono = true;
}

function UstawAktualnyFokus(Kontrolka)
{
    PoprzedniaKontrolka = AktualnaKontrolka;
    AktualnaKontrolka = Kontrolka;
    UstawFocusNaIlosci(Kontrolka);
}

function UstawFocusNaIlosci(kontrolka)
{
    if (!kontrolka)
    {
        poprzedniaWartosc = '';
        return;
    }    
    poprzedniaWartosc = kontrolka.value;
    zmieniono = false;
}

function AktualnyFokus()
{
    if( PoprzedniaKontrolka != AktualnaKontrolka && AktualnaKontrolka != '')
    {    
        if (document.getElementById(AktualnaKontrolka))
        {        
            document.getElementById(AktualnaKontrolka).focus();
            document.getElementById(AktualnaKontrolka).select();
        }
        else if (AktualnaKontrolka)
        {
            //AktualnaKontrolka.focus();
            //AktualnaKontrolka.select();
        }
    }
}

function KeyUpFun(Kontrolka)
{   
    if (!event)
    {
        if (!Obsluzono)
            return;
    }
    else
        KeyID = event.keyCode;  
                  
    switch (KeyID)
    {
//        case 9:
//            ModyfikujKontrolke(false, Kontrolka);            
//        break;
        case 13:
            ModyfikujKontrolke(false, Kontrolka); 
        break;
        case 38:
            ModyfikujKontrolke(true, Kontrolka);   
        break;
        case 40:
            ModyfikujKontrolke(false, Kontrolka); 
        break;
    }
    Obsluzono = false;
}

function ModyfikujKontrolke(UpKey, Kontrolka)
{   
    var nowaKontrolka = new String(Kontrolka);
    
    var wystapienieIlosci = nowaKontrolka.indexOf("_Ilosc", 0);            
    var podfragment = nowaKontrolka.substring(0, wystapienieIlosci);            
    var wystapienieOstaniegoCTL = podfragment.lastIndexOf("_ctl");  
    var temp = podfragment.substring(wystapienieOstaniegoCTL + 4, podfragment.length);         
    var nrKontrolki = new Number(temp);
    
    var dlugosc = temp.length;
    
    if (UpKey)
        nrKontrolki = nrKontrolki - 2;
    else
        nrKontrolki = nrKontrolki + 2;
              
    var nowaWartosc = new String(nrKontrolki.toString());
        
    if ((nowaWartosc.length < dlugosc) && (dlugosc == 2))
    {
        var liczba = new String("");

        var i;                
        for (i = 1; i <= dlugosc - nowaWartosc.length; i++)                    
            liczba = liczba.concat("0");                    
        
        nowaWartosc = liczba.concat(nowaWartosc);
    }
    
    podfragment = podfragment.substring(0, podfragment.length - dlugosc);
    podfragment = podfragment.concat(nowaWartosc + "_Ilosc");
    
    var ctrl = document.getElementById(podfragment);
    if (!ctrl)
        return;
    
    AktualnaKontrolka = ctrl;
    ctrl.focus();    
}

function SelectText(control)
{    
    var FiltrTextBox = document.getElementById(control);    
    if (!FiltrTextBox)
        return;
    if (FiltrTextBox.type != "text")
        return;    
    FiltrTextBox.select();
}

var poprzedniaWartosc;
var zmieniono;

function ZmienionoIlosc(kontrolka, precyzja)
{    
    if (!event)
    {
        if (!Obsluzono)
            return;
    }
    else
        KeyID = event.keyCode;  
    
    if ((KeyID == 37) || (KeyID == 39) || (KeyID == 38) || (KeyID == 40) || (KeyID == 13))
        return;    
    
    var wartosc = document.getElementById(kontrolka).value;     
    var precyzjaLiczba = new Number(precyzja);       
    wartosc = wartosc.replace(",", ".");   
    
    if (precyzjaLiczba == 0)
        wartosc = wartosc.replace(".", "");   
        
    var wystapienieKropki = wartosc.indexOf(".", 0);
    if (wystapienieKropki == 0)
        wartosc = "0" + wartosc;    
        
    if (isFinite(wartosc))
    {       
        wartosc = wartosc.replace(".", ",");    
        wystapienieKropki = wartosc.indexOf(",", 0);
        if ((wystapienieKropki != -1) && (wartosc.length - 1 - wystapienieKropki > precyzjaLiczba))
            document.getElementById(kontrolka).value = poprzedniaWartosc;
        else
        {
            zmieniono = true;            
            if ((wartosc.charCodeAt(0) < 48) || (wartosc.charCodeAt(0) > 57))
                document.getElementById(kontrolka).value = poprzedniaWartosc;
            else
            {    
                poprzedniaWartosc = wartosc;
                document.getElementById(kontrolka).value = wartosc;            
            }
        }
    }
    else
        document.getElementById(kontrolka).value = poprzedniaWartosc;
   
    Obsluzono = false; 
}

function FocusStracony(kontrolka)
{    
    if (document.getElementById(kontrolka)) 
    {
        var wartosc = document.getElementById(kontrolka).value; 
        if (wartosc.indexOf(",", 0) == wartosc.length - 1)
        {
            zmieniono = true;
            document.getElementById(kontrolka).value = wartosc.substr(0, wartosc.length - 1);
        }
        if ((zmieniono) && (document.getElementById(kontrolka).onchange))
            document.getElementById(kontrolka).onchange();
    }
}

