function onLoadFexec() {
  progressBarInit();
  noTargetWinsInit();
};

var dialogCounter = 0;
var errorIsOpen = false;





/* -----------------------------------------------------------------------------


  USING DIALOG FUNCTIONS:

  dialogMessage(divNameVar)
      - otvori chybu alebo inu spravu s ok butt v dialog mode

  myDialog(divNameVar)
      - skonvertuje div na dialog

  htmlDialog(title,htmltxt,modal,okButt)
      - otvori dialog z html textu, modal:true/false, okButt:true/false

  dialogSetModal(divNameVar)
      - nastavi dialog na modalny

  dialogMessButt(divNameVar)
      - prida jednu klasicku ok button na zatvorenie do dialogu

  dialogResize(divNameVar,widthNum,heightNum)
      - zmeni velkost dialogu

  dialogMaximizable
      - prida funkciu maximalizovat/kvazi minimalizovat po dvojkliku na plochu dialogu



  USING AJAX FUNCTIONS FOR LOADING DATA:

  divLoad(divId,url,paramsArr)
      - nacita udaje do div id z url+paramsArr
      - priklad: divLoad('div1','url1',{a:'111',b:'222',c:'3333'})


  USING FORM FUNCTIONS

  sendFrm(div,refO)
      - automaticky spracuje cely formular a odosle ho na url zadanu v <form action='url'> ako POST
      - <form> sa hlada podla refO hladanim v rodicoch
      - div: cielovy div, kde sa nacita vysledok odoslaneho formu



----------------------------------------------------------------------------- */





// AJAX FUNCTIONS FOR LOADING DATA

function divLoad(divId,url,paramsArr) {
  $("#"+divId).ajaxError(function(event, request, settings){
    if (errorIsOpen==false) {
      htmlDialog("CHYBA!","<div class='errBox'>Nepodarilo sa načítať požadované údaje! <br>Cieľová stránka neexistuje alebo nastala chyba spojenia so serverom.</div>",true,true);
      progressSet(false);
      // prevent for duplicating:
      errorIsOpen=true;
      setTimeout('errorIsOpen=false;',300);
    }
  });
  progressSet(true);
  $("#"+divId).load(url, paramsArr, function(data){
    progressSet(false);
  });
}

function progressBarInit() {
  $("#pagebody").append("<div id='progressBar'>&nbsp;</div>");
}

function noTargetWinsInit() {
  $("#pagebody").append("<div id='noTargetWins'>&nbsp;</div>");
}




function progressSet(stat) {
  if (stat==true) {
    s = "block";
  } else {
    s = "none";
  }
  $("#progressBar").css("display",s);
}



// FORM FUNCTIONS --------------------------------------------------------------
function sendFrm(div,refO) {
  while (refO.tagName!='FORM') {
    if (refO.tagName=='BODY') {
      sendFrmErr(div);
      return;
    }
    refO = refO.parentNode;
  }
  if (refO.tagName=='FORM') {
    arr = $(refO).serializeArray(); // serializeArray()=$_POST method; serialize()=$_GET method
    url = $(refO).attr("action");
    if (url=="") {
      sendFrmErr(div);
    }
    divLoad(div,url,arr);
  } else {
    sendFrmErr(div);
  }
}

function sendFrmErr(div) { // special err, if can't find frm or urlAction
  dialogCounter++;
  $("#"+div).append("<br><b>CHYBA:</b> Údaje sa nepodarilo odoslať!<br>");
  htmlDialog("CHYBA!","<div class='errBox'>Údaje sa nepodarilo odoslať!</div>",true,true);
}




// DIALOG FUNCTIONS ------------------------------------------------------------

  /*
  //manipulacia s buttons v titlebar:
      $("#"+nid).dialog().parents(".ui-dialog").find(".ui-dialog-titlebar").append("<a href='#' id='uiDialogTitlebarMaximize"+nid+"' class='ui-dialog-titlebar-maximize ui-corner-all' role='button' unselectable='on'><span class='ui-icon ui-icon-closethick' unselectable='on'>New butt</span></a>");
      $("#uiDialogTitlebarMaximize"+nid).bind("click",
            function() {
              $(this).addClass('ui-state-hover');
              if (
                ($(window).width()-40)>$("#"+nid).dialog('option', 'width') && ($(window).height()-40)>$("#"+nid).dialog('option', 'height')
              ) {
                modalMaximize(nid);
              } else {
                modalMinimize(nid);
              }
      });
      //$("#"+nid).dialog().parents(".ui-dialog").find(".ui-dialog-titlebar").remove();
  */

  /*
  // ako sa dopracovat k close butt a ako vypnut funkcnost:
      var closeButton = $("#"+nid).parent().find('.ui-dialog-titlebar a');
      closeButton.attr("class","ui-dialog-titlebar-lock");
      closeButton.find("span").attr("class","ui-icon ui-icon-lock");

      //persist old click
      var oldClickFn = closeButton.click;

      closeButton.unbind('click').click( function(){
          //functionality you want

          //call the persisted click
          oldClickFn && oldClickFn()
      });

      // closeButton.removeClass("ui-dialog-titlebar-close"); // moj test
      //closeButton.addClass("ui-dialog-titlebar-lock"); // moj test
      //closeButton.find("span").addClass("class","ui-icon ui-icon-lock"); // moj test
  */


function htmlDialog(t,txt,modal,okButt) {
  d="dialog"+dialogCounter;
  dialogCounter++;
  $("#docBody").append("<div id='"+d+"' title='"+t+"'>"+txt+"</div>");
  myDialog(d);
  $("#"+d).dialog('close');
  if (okButt==true) {
    dialogMessButt(d);
  }
  if (modal==true) {
    dialogSetModal(d);
  }
  $("#"+d).dialog('open');
}

function myDialog(d) {
  $("#"+d).dialog({
      width: 450,
      height: 300,
      minWidth: 50,
      minHeight: 50,
      bgiframe: true
    });
}

function myError(code) {
  u = code+".err";
  divLoad('noTargetWins',u,{});
}

function dialogMaximizable(d) {
  $("#"+d).dblclick(
    function() {
      div = $(this).attr("id");
      bodyW = $(window).width() - 30;
      bodyH = $(window).height() - 30;
      x = $('#'+div);
      x.dialog('close');
      if (
        (bodyW-10)>x.dialog('option','width') && (bodyH-10)>x.dialog('option','height')
      ) {
        x.dialog('option', 'draggable', false);
        x.dialog('option', 'width', bodyW);
        x.dialog('option', 'height', bodyH);
        x.dialog('option', 'position', ['center','center']);
      } else {
        x.dialog('option', 'draggable', true);
        x.dialog('option', 'position', ['center','center']);
        x.dialog('option', 'width', 450);
        x.dialog('option', 'height', 300);
      }
      x.dialog('open');
    }
  );
}

function dialogResize(d,w,h) {
  x = $('#'+d);
  x.dialog('close');
  x.dialog('option', 'width', w);
  x.dialog('option', 'height', h);
  x.dialog('option', 'position', ['center','center']);
  x.dialog('open');
}

function dialogMessButt(d) {
  x = $('#'+d);
  x.dialog('option', 'buttons', {
        Ok: function() {
          $(this).dialog('close');
          $(this).dialog('destroy');
        }
  });
}

function dialogSetModal(d) {
  x = $('#'+d);
  x.dialog('option', 'modal', true);
}

function dialogMessage(d) {
  myDialog(d);
  dialogMessButt(d);
  dialogSetModal(d);
  dialogResize(d,350,170);
}


function dialogClose(d) {
  x = $('#'+d);
  x.dialog('close');
  x.dialog('destroy');
}








