var _pth_modalsupport_dlg;
//var _pth_modalsupport_bExplorer = window.navigator.appName.indexOf("Explorer") >= 0;
var _pth_modalsupport_bExplorer = false;
var _pth_modalsupport_callback;
var _pth_modalsupport_bDlgStarted = false;
var _pth_modalsupport_par;
var _pth_modalsupport_returnValue;

function _pth_modalsupport_onclose(ret)
{
	//log("onclose");
  _pth_modalsupport_dlg = null;
  if (_pth_modalsupport_callback != null) {
	_pth_modalsupport_callback(ret);
  }
  _pth_modalsupport_bDlgStarted = false;
  _pth_modalsupport_callback = null;
}

function _pth_modalsupport_AskForArgument()
{
  return _pth_modalsupport_par;
}

function _pth_modalsupport_MozillaModal(url, options, par)
{
  //if (typeof(errLog) != "undefined") errLog.innerText += "\nMozillaModal start";
  if (options.length > 0) options=options+",";
  _pth_modalsupport_par = par;
  _pth_modalsupport_dlg = window.open(url,"_pth_modalsupport_dlg",options+"modal=yes,dependent=1,hotkeys=no,alwaysRaised=yes");
  if (_pth_modalsupport_dlg == null || typeof(_pth_modalsupport_dlg) == "undefined")
  { 
	alert("Váš internetový prehliadač blokuje otváranie nových okien. Pravdepodobne máte nainštalovaný doplnok jako napr. Google Toolbar. Prosím povolte otváranie okien."); 
  }


  _pth_modalsupport_dlg.dialogArguments = par;
  _pth_modalsupport_bDlgStarted = true;
  //if (typeof(errLog) != "undefined") errLog.innerText += "\nMozillaModal end";
  return _pth_modalsupport_dlg;
}

function pth_modalsupport_dlg_closed()
{
    try
    {
        return _pth_modalsupport_dlg._pth_modalsupport_is_closed();
    }
    catch(ex) 
    { 
		try {
			return _pth_modalsupport_dlg.closed;
		}
		catch(ex) {
			return true;
		}
    }
}

function pth_modalsupport_set_returnValue(val)
{
	_pth_modalsupport_returnValue = val;
}

function pth_modalsupport_get_returnValue()
{
	return _pth_modalsupport_returnValue;
}

function pth_modalsupport_on_focus()
{
    //alert(typeof(_pth_modalsupport_dlg));
  if (typeof(_pth_modalsupport_dlg) == "object")
  {
    if (!pth_modalsupport_dlg_closed())
    {
		//log("focus");
      _pth_modalsupport_dlg.focus();
    } 
    else
    {
		//log("1: " + _pth_modalsupport_bDlgStarted);
      if (_pth_modalsupport_bDlgStarted) _pth_modalsupport_onclose(pth_modalsupport_get_returnValue());
    }
  }
  else 
  {
	//log("2: " + _pth_modalsupport_bDlgStarted);
    if (_pth_modalsupport_bDlgStarted) _pth_modalsupport_onclose(pth_modalsupport_get_returnValue());
  }
  //if (typeof(errLog) != "undefined") errLog.innerText += "\nonFocus end";
}

function log(str)
{
	var el = document.getElementById("errLog");
	if (el == null)
	{
		el = document.createElement("div");
		el.id = "errLog";
		document.documentElement.appendChild(el);
	}
	
	var z = document.createElement("div");
	z.innerText = str;
	el.appendChild(z);
}

function pthShowModalDialog(url, callback, options, par)
{
//log("open");
  if(_pth_modalsupport_bExplorer)
  {
    var ret = showModalDialog(url, par, options);
    callback(ret);
  }
  else
  {
    _pth_modalsupport_callback = callback;
    _pth_modalsupport_MozillaModal(url, options, par);
  }
}

//alert('ErrLog: '+typeof(errLog)+"\n"+errLog+"\n");
//if (!_pth_modalsupport_bExplorer) window.onFocus = "pth_modalsupport_on_focus()";

