//-------------------------------------------------------------------------
function popupJokePrintWindow(address)
{
  var features = "width=638,height=472,toolbar=no,location=no,directories=no,status=no,menubar=no,resizable=no,scrollbars=yes";
  window.open(address, "pop", features);
  return false; // zapytanie obsluzone bez przeladowania strony
}

//-------------------------------------------------------------------------
function printJokeWindow()
{
  window.parent.focus();
  window.print();
}

//-------------------------------------------------------------------------
function myNextElementSibling(obj)
{
  if (obj.nextElementSibling !== undefined)
    return obj.nextElementSibling;

  var nextElelmentFound = false;
  var child = obj;
  while (child)
  {
    if (child.nodeType == 1) // Node.ELEMENT_NODE
      if (nextElelmentFound)
        break;
      else
        nextElelmentFound = true;
    child = child.nextSibling;
  }

  return child;
}

//-------------------------------------------------------------------------
function myFirstElementChild(obj)
{
  if (obj.firstElementChild !== undefined)
    return obj.firstElementChild;

  var child = obj.firstChild;
  while (child)
  {
    if (child.nodeType == 1) // Node.ELEMENT_NODE
      return child;
    child = child.nextSibling;
  }

  return null;
}

//-------------------------------------------------------------------------
function infoErrorUpdate(text, dontGoToErrorAnchor)
{
  document.getElementById("INFO_O_BLEDZIE").innerHTML = "<a name=\"INFO_O_BLEDZIE\"></a><div class=\"box-srodkowy-blad\">" + text + "</div>";
  if (!dontGoToErrorAnchor)
    document.location.href = "#INFO_O_BLEDZIE";
}

//-------------------------------------------------------------------------
function hideInfoErrorDiv()
{
  var errorBox = document.getElementById("INFO_O_BLEDZIE");
  if (!errorBox)
    return;
  errorBox.innerHTML = "";
}

//-------------------------------------------------------------------------
function hideAllAdditionalErrorBoxes()
{
  var objsTmp = document.getElementsByTagName("div");
  for (var i = 0; i < objsTmp.length; i++)
    if (objsTmp[i].id && objsTmp[i].id.match(/^INFO_O_BLEDZIE_DOD_\d+$/i))
    {
      var parentObj = objsTmp[i].parentNode;
      if (parentObj)
        parentObj.removeChild(objsTmp[i]);
    }
}

//-------------------------------------------------------------------------
function insertEmptyAdditionalErrorBox(joke_id_arg)
{
  var joke_id   = parseInt(joke_id_arg);
  if (joke_id <= 0)
    return null;
  var refObj = document.getElementById("KAWAL_" + joke_id);
  if (!refObj)
    refObj = document.getElementById("EDYCJA_KAWALU_" + joke_id);
  if (!refObj)
    return null;

  hideAllAdditionalErrorBoxes();

  myDiv                  = document.createElement("div");
  myDiv.id               = "INFO_O_BLEDZIE_DOD_" + joke_id;

  var refNextObj = myNextElementSibling(refObj);
  if (!refNextObj)
    return null;
  var parentObj = refNextObj.parentNode;
  if (!parentObj)
    return null;

  parentObj.insertBefore(myDiv, refNextObj);

  return myDiv;
}

//-------------------------------------------------------------------------
// Function from: Lightbox v2.04 by Lokesh Dhakar - http://www.lokeshdhakar.com
// For more information, visit: http://lokeshdhakar.com/projects/lightbox2/
//-------------------------------------------------------------------------
function getPageSize()
{
  var xScroll, yScroll;
  if (window.innerHeight && window.scrollMaxY)
  {	
    xScroll = window.innerWidth + window.scrollMaxX;
    yScroll = window.innerHeight + window.scrollMaxY; 
  }
  else if (document.body.scrollHeight > document.body.offsetHeight)
  { // all but Explorer Mac
	xScroll = document.body.scrollWidth;
    yScroll = document.body.scrollHeight;
  }
  else
  { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
    xScroll = document.body.offsetWidth;
    yScroll = document.body.offsetHeight;
  }
	
  var windowWidth, windowHeight;
  if (self.innerHeight)
  {	// all except Explorer
    if (document.documentElement.clientWidth)
      windowWidth = document.documentElement.clientWidth; 
    else
	  windowWidth = self.innerWidth;
    windowHeight = self.innerHeight;
  }
  else if (document.documentElement && document.documentElement.clientHeight)
  { // Explorer 6 Strict Mode
    windowWidth = document.documentElement.clientWidth;
    windowHeight = document.documentElement.clientHeight;
  }
  else if (document.body)
  { // other Explorers
	windowWidth = document.body.clientWidth;
	windowHeight = document.body.clientHeight;
  }	

  // for small pages with total height less then height of the viewport
  if (yScroll < windowHeight)
    pageHeight = windowHeight;
  else
    pageHeight = yScroll;

  // for small pages with total width less then width of the viewport
  if (xScroll < windowWidth)
    pageWidth = xScroll;		
  else
    pageWidth = windowWidth;

  return [pageWidth, pageHeight];
}
//-------------------------------------------------------------------------
























//!!!
//-------------------------------------------------------------------------
function showWaitAjaxBox()
{
  interval_ajax_wait_counter = 0; // !!!
  ajax_wait_error_flag       = true; // !!!
	
  var arrayPageSize = getPageSize();
  var obj = document.getElementById("AJAX_CZEKAJ_TLO");
  obj.style.height = arrayPageSize[1] + "px";
  obj.style.display = "block";
	
  obj = document.getElementById("AJAX_CZEKAJ");
  obj.innerHTML = "<table style=\"width: 100%; height: 100%\"><tr><td><img src=\"grafika/ajax_czekaj.gif\" alt=\"czekaj...\" /></td></tr></table>";
  obj.style.top = document.documentElement.scrollTop + "px";
  obj.style.display = "block";
}

//-------------------------------------------------------------------------
function hideWaitAjaxBox()
{
  ajax_wait_error_flag = false; // !!!

  var obj = document.getElementById("AJAX_CZEKAJ_TLO");
  obj.style.display = "none";
  obj = document.getElementById("AJAX_CZEKAJ");
  obj.style.display = "none";
}









//-------------------------------------------------------------------------
function infoErrorRegisterOrLogin()
{
  infoErrorUpdate("Aby w pełni korzystać z serwisu musisz być zalogowany.<br /><br />Zaloguj się lub <a href=\"?menu=rejestracja\">zarejestruj</a> jeśli jeszcze nie posiadasz konta.");
  return false;
}

//-------------------------------------------------------------------------
function hideAllAdditionalBoxes()
{
  var objsTmp = document.getElementsByTagName("div");
  for (var i = 0; i < objsTmp.length; i++)
    if (objsTmp[i].id && objsTmp[i].id.match(/^DODATKOWY_\d+$/i))
    {
      var parentObj = objsTmp[i].parentNode;
      if (parentObj)
        parentObj.removeChild(objsTmp[i]);
    }
}

//-------------------------------------------------------------------------
function getActionFromInnerHTMLForm(innerHTML)
{
  var matches = innerHTML.match(/<INPUT[^>]+name=("|')akcja("|')[^>]+value=("|')([^'"]+)("|')[^>]*>/i);
  if (matches)
    return matches[4];
  else
    return null;
}

//-------------------------------------------------------------------------
function toggleEmptyAdditionalBox(joke_id_arg, formActionArg)
{
  var joke_id   = parseInt(joke_id_arg);
  if (joke_id <= 0)
    return null;
  var refObj = document.getElementById("DODATKOWY_" + joke_id);
  if (!refObj)  // jesli jeszcze nie istnieje, to stworz i pokaz box
    return insertEmptyAdditionalBox(joke_id_arg);
  else          // jesli juz istnieje, to schowaj box
  {
    // dodatkowy warunek, czy nie istnieje juz box dla tego samego kawalu tylko z inna funkcja (sprawdzenie akcji formularza)
    var formAction = getActionFromInnerHTMLForm(refObj.innerHTML);
    if (formActionArg != formAction)
      return refObj;

    hideAllAdditionalBoxes();
    return null;
  }
}

//-------------------------------------------------------------------------
function insertEmptyAdditionalBox(joke_id_arg)
{
  var joke_id   = parseInt(joke_id_arg);
  if (joke_id <= 0)
    return null;
  var refObj = document.getElementById("KAWAL_" + joke_id);
  if (!refObj)
    return null;

  hideAllAdditionalBoxes();

  myDiv                  = document.createElement("div");
  myDiv.id               = "DODATKOWY_" + joke_id;
  myDiv.className        = "box-srodkowy";

  var refNextObj = myNextElementSibling(refObj);
  if (!refNextObj)
    return null;
  var parentObj = refNextObj.parentNode;
  if (!parentObj)
    return null;

  parentObj.insertBefore(myDiv, refNextObj);

  return myDiv;
}

//-------------------------------------------------------------------------
function addMaxlengthCheckingToTextareas()
{
  for (var i = 0; i < document.forms.length; i++)
  {
    var formObj = document.forms[i];
    for (var j = 0; j < formObj.elements.length; j++)
    {
      var textareaObj = formObj.elements[j];
      if (textareaObj.tagName == "TEXTAREA" && textareaObj.getAttribute("maxlength"))
      {
        var maxlength = parseInt(textareaObj.getAttribute("maxlength"));
        textareaObj.onkeypress =
          function (eventArg)
          {
            if (eventArg)
              event = eventArg;
            var key = event.keyCode ? event.keyCode : event.which;
            var selectionLength = this.selectionStart ? this.selectionEnd - this.selectionStart : document.selection.createRange().text.length;
            if (this.value.length < maxlength || selectionLength > 0)
              return true;
            else
              //   home, end, <- ^ v ->                    delete      backspace       tab       PgDn          PgUp
              if ((key >= 35 && key <= 40) || key == 0 || key == 46 || key == 8 || key == 9 || key == 33 || key == 34)
                return true;
              else
                return false;
          };
      }
    }
  }
}
