// BIBLIOTEKA FUNKCJI UZYTKOWYCH


function jsProcComp(n)
{
  // n-dowolny komponent formularza "form.comp"
  // sprawdza obecnosc

  var v = true;
  if (n == null) v = false;

 return(v);
}


function jsProcTextLength(n)
{
  // n-pole jedno/wielowierszowe (input/textarea)
  // ilosc znakow w polu

  var i = 0;
  var v = 0;
  var w = n.value;

  for (i = 0; i < w.length; i++)
    if ((w.substring(i, i + 1) != unescape("%2C")) &&
        (w.substring(i, i + 1) != unescape("%2D")) &&
        (w.substring(i, i + 1) != unescape("%2E")) &&
        (w.substring(i, i + 1) != unescape("%3A")) &&
        (w.substring(i, i + 1) != unescape("%3B")) &&
        (w.substring(i, i + 1) != unescape("%0A")) &&
        (w.substring(i, i + 1) != unescape("%0D")) &&
        (w.substring(i, i + 1) != unescape("%20"))) ++v;

 return(v);
}


function jsProcText(n)
{
  // n-pole jedno/wielowierszowe (input/textarea)
  // bez "=" i "<CR><LF>" - z "<br>"

  var i = 0;
  var v = "";
  var w = n.value;

  while (i < w.length)
  {
    if (w.substring(i, i + 1) == "=") 
    { ++i; }
    else 
    if ((w.substring(i, i + 1) == unescape("%0D")) &&
        (w.substring(i + 1, i + 2) == unescape("%0A")))
        { v += "<br>"; i += 2; }
        else 
        { v += w.substring(i, i + 1); ++i; } 
  }

 return(v);
}


function jsProcPlainText(n, m)
{
  // n-pole jedno/wielowierszowe (input/textarea)
  // m-wymagana dlugosc maksymalna tekstu
  // bez "=" i "<CR><LF>" - ze spacja do dlugosci m

  var i = 0;
  var v = "";
  var w = n.value;

  while ((i < w.length) && ((i < m) || (m == 0)))
  {
    if (w.substring(i, i + 1) == "=") 
    { ++i; }
    else 
    if ((w.substring(i, i + 1) == unescape("%0D")) &&
        (w.substring(i + 1, i + 2) == unescape("%0A")))
        { v += " "; i += 2; }
        else 
        { v += w.substring(i, i + 1); ++i; } 
  }

 return(v);
}



function jsProcNoEmpty(n)
{
  // n-dowolne pole tekstowe, ktore nie moze byc puste
  // sprawdzenie poprawnosci formatu

  var v = false;

  if (jsProcTextLength(n) > 0) v = true;

 if (v == false) n.focus();
 return(v);
}

/*
OLD VERSION
function jsProcNameIsOk(n)
{
  // n-pole tekstowe nazwy pliku
  // sprawdzenie poprawnosci formatu

  var i = 0;
  var w = n.value;
  var u = "";
  var v = true;

  for (i = 0; i < w.length; i++)
  {
    u = w.substring(i, i + 1);
    
    if (((u >= "A") && (u <= "Z")) ||
        ((u >= "a") && (u <= "z")) ||
        ((u >= "0") && (u <= "9")) ||
        ((u >= " ") && (u <= "!")) ||
        ((u == "¥") || (u == "¹") ||
         (u == "Æ") || (u == "æ") ||
         (u == "Ê") || (u == "ê") ||
         (u == "£") || (u == "³") ||
         (u == "Ñ") || (u == "ñ") ||
         (u == "Ó") || (u == "ó") ||
         (u == "Œ") || (u == "œ") ||
         (u == "¯") || (u == "¿") ||
         (u == "") || (u == "Ÿ"))) {};          // poprawne
         else {v = false;} // nie poprawne

  }

 if (v == false) n.focus();
 return(v);
}
*/

function jsProcNameIsOk(n)
{
  // n-pole tekstowe nazwy pliku
  // sprawdzenie poprawnosci formatu

  var i = 0;
  var w = n.value;
  var u = "";
  var v = true;

  for (i = 0; i < w.length; i++)
  {
    u = w.substring(i, i + 1);
    
    if (((u >= "A") && (u <= "Z")) ||
        ((u >= "a") && (u <= "z")) ||
        ((u >= "0") && (u <= "9")) ||
        ((u >= " ") && (u <= "!")) ||
        ((u == "_") ||
         (u == ".") || (u == "-") || 
         (u == "¥") || (u == "¹") ||
         (u == "Æ") || (u == "æ") ||
         (u == "Ê") || (u == "ê") ||
         (u == "£") || (u == "³") ||
         (u == "Ñ") || (u == "ñ") ||
         (u == "Ó") || (u == "ó") ||
         (u == "Œ") || (u == "œ") ||
         (u == "¯") || (u == "¿") ||
         (u == "") || (u == "Ÿ"))) {};          // poprawne
         else {v = false;} // nie poprawne
  }
  
  if (w.substring(0, 1) == ".") v = false;

  if (v == false) n.focus();
  return(v);
}


function jsProcNameIsLatin(n)
{
  // n-pole tekstowe nazwy pliku
  // sprawdzenie poprawnosci formatu

  var i = 0;
  var w = n.value;
  var u = "";
  var v = true;

  for (i = 0; i < w.length; i++)
  {
    u = w.substring(i, i + 1);
    
    if (((u >= "A") && (u <= "Z")) ||
        ((u >= "a") && (u <= "z")) ||
        ((u >= "0") && (u <= "9")) ||
        ((u >= "-") && (u <= "-")) ||
        ((u >= " ") && (u <= "!"))) {}           // poprawne
        else {v = false;} // nie poprawne
  }

 if (v == false) n.focus();
 return(v);
}


function jsProcEMail(n)
{
  // n-pole tekstowe zawierajace adres mailowy
  // sprawdzenie poprawnosci formatu

  var w = n.value;
  var v = false;

  if (w == "") { v = true; }                              // brak
  else
  if ((w != "") && 
      (w.indexOf('@', 0) > 0) && 
      (w.indexOf('@', 0) < (w.length - 1))) { v = true; } // poprawny

 if (v == false) n.focus();
 return(v);
}


function jsProcZip(n)
{
  // n-pole tekstowe zawierajace Zip-Code
  // sprawdzenie poprawnosci formatu

  var w = jsProcText(n);
  var v = false;

  if ((w != "") && 
      (w.length == 6) && 
      (w.substring(2, 3) == "-")) v = true; // poprawny

 if (v == false) n.focus();
 return(v);
}


function jsProcNIP(n)
{
  // n-pole tekstowe zawierajace NIP
  // sprawdzenie poprawnosci formatu

  var w = jsProcText(n);
  var v = false;

  if (w == "") { v = true; }                           // brak
  else
  if ((w != "") && (w.length == 13))
  {
     if ((w.substring(3, 4) == "-") &&
         (w.substring(6, 7) == "-") &&
         (w.substring(9, 10) == "-") &&
         (parseInt(w.substring(0, 3)) != 0)) v = true; // poprawna
     else
     if ((w.substring(3, 4) == "-") &&
         (w.substring(7, 8) == "-") &&
         (w.substring(10, 11) == "-") &&
         (parseInt(w.substring(0, 3)) != 0)) v = true; // fizyczna
  }

 if (v == false) n.focus();
 return(v);
}


function jsProcFndYear(n)
{
  // n-pole tekstowe zawierajace FndYear
  // sprawdzenie poprawnosci formatu

  var w = jsProcText(n);
  var v = false;

  if (w == "") { v = true; }
  else
  if ((parseInt(w, 10) >= 1800) &&
      (parseInt(w, 10) <= 2010)) v = true;

 if (v == false) n.focus();
 return(v);
}


function jsProcNumEple(n)
{
  // n-pole tekstowe zawierajace NumEple
  // sprawdzenie poprawnosci formatu

  var w = jsProcText(n);
  var v = false;

  if (w == "") { v = true; }
  else
  if ((parseInt(w, 10) >= 1) &&
      (parseInt(w, 10) <= 50000)) v = true;

 if (v == false) n.focus();
 return(v);
}


function jsProcWeight(n)
{
  // n-pole tekstowe zawierajace udzial exp-imp
  // sprawdzenie poprawnosci formatu

  var w = jsProcText(n);
  var v = false;

  if (w == "") { v = true; }
  else
  if (w != "") 
  {
    if ((parseFloat(w) >= 0) && 
        (parseFloat(w) <= 100)) v = true;
  }

 if (v == false) n.focus();
 return(v);
}


function jsProcInvest(n)
{
  // n-pole wyboru opcji inwestycyjnej

  var v = "0";
  if (n.checked == true) v = "1";

 return(v);
}


function jsProcSelect(n)
{
  // n-lista rozwijana (select), w tym rowniez MULTIPLE

  var v = "";
  var i = 0;

  for (i = 0; i < n.length; ++i)
  {
    if (n.options[i].selected == true) 
    {
      if (v == "") 
      { v += n.options[i].value; } 
      else
      { v +=  ", " + n.options[i].value; } 
    }
  }

 return(v);
}


function jsProcBranch(n, m)
{
  // n-lista rozwijana branzy/podbranzy
  // m-odpowiednia lista rozwijana kierunkow

  var w = "";
  var v = "";

  if ((jsProcComp(n) == true) && (jsProcComp(m) == true))
  {

     w = n.options[n.selectedIndex].value;
     
     if (w != "00.00")
     {

       if (w.substring(3, 5) == "00") 
       { v = w.substring(0, 2) + ".99"; }
       else 
       { v = w; }

       w = m.options[m.selectedIndex].value;
        if (w == "01") v += "i";
        else if (w == "02") v += "e";
             else v += "a";
     }


  } // komponent
 
 return(v);
}


function jsProcSingleBranch(n)
{
  // n-lista rozwijana branzy/podbranzy

  var w = "";
  var v = "";

  if (jsProcComp(n) == true)
  {

     w = n.options[n.selectedIndex].value;
     
     if (w != "00.00")
     {
       if (w.substring(3, 5) == "00") 
       { v = w.substring(0, 2) + ".99"; }
       else 
       { v = w; }
     }


  } // komponent
 
 return(v);
}


function jsProcToday()
{
  // pobiera date i czas z systemu i zwraca jako wynik

    var datef = new Date();
    var w = 0;
    var v = 0;

    w = datef.getYear();
    if (w <= 99) w = 2000 + w; 
    v = w;

    w = datef.getMonth() + 1;
    v = (v * 100) + w;

    w = datef.getDate();
    v = (v * 100) + w;

    w = datef.getHours();
    v = (v * 100) + w;

    w = datef.getMinutes();
    v = (v * 100) + w;

    w = datef.getSeconds();
    v = (v * 100) + w;

 return(v);
}
