var ajaxHintTimeout;
var ajaxHintObject;
var ajaxHintOffset = -1;
var notebook = '';
var miniNotebookTpl = '<div class="miniPanel"><div class="panelSilverTop">&#160;</div><div id="notebook" class="panelSilver"><a href="http://zaplanujurlop.pl/notes/" class="header">notes <span></span></a>\
    <a class="<add/>" onclick="handleWithNotebook({cmd: \'add\', o: this, id: <id/>});">dodaj do notesu</a><a class="<sub/>" onclick="handleWithNotebook({cmd: \'sub\', o: this, id: <id/>});">usuń z notesu</a>\
    </div><div class="panelSilverBottom">&#160;</div></div>';

addOnLoad('initNotebookAskQuestion');

//nic
function nop() {
}

//wymiana węzłów
function swapNodes(node1, node2) {
  var nextSibling = node1.nextSibling;
  var parentNode = node1.parentNode;
  node2.parentNode.replaceChild(node1, node2);
  parentNode.insertBefore(node2, nextSibling);
}

//dodawnie węzła po
function insertNodeAfter(baseNode, newNode) {
  if(baseNode.parentNode) {
	  if(baseNode.nextSibling)
		  baseNode.parentNode.insertBefore(newNode, baseNode.nextSibling);
	  else
		  baseNode.parentNode.appendChild(newNode);
  }
}

//typ pozycji obiektu
function ObjectPosition(x, y) {
  this.x=x;
  this.y=y;
}

//dodawanie funcji do wywoałania przy body onload
function addOnLoad(f) {
  try {
    var currentEvent = window.onload;
    f = eval (f);
    if(typeof currentEvent != 'function') {
      window.onload = f;
    } else {
      window.onload = function() {
        if(currentEvent)
          currentEvent();
        f();
      }
    }
  } catch(ex) {}
}

//dodaje dynamicznie bibliotekę javascript
function loadLibJS(f) {
  var s = document.createElement('script');
  s.type = "text/javascript";
  s.src = f;
//  try {
//    document.getElementsByTagName("head")[0].appendChild(s);
//  } catch(ex) {}
}

//parent tag "tag" obiektu o
function getOuterTag(o, tag) {
  if(o == null || o.parentNode == undefined) return null;
  o = o.parentNode;
  while(o.parentNode != undefined && o.nodeName.toUpperCase() != tag.toUpperCase())
    o = o.parentNode;
  return (o.nodeName != undefined && o.nodeName.toUpperCase() == tag.toUpperCase())?o:null;
}

//array children tagów "tag" obiektu o (bezpśrednie)
function getInnerTags(o, tag) {
var r = new Array();
  if(o == null) return r;
  for(var i = 0; i < o.childNodes.length; i++)
    if(o.childNodes[i].nodeName.toUpperCase() == tag.toUpperCase())
      r.push(o.childNodes[i]);
  return r;
}

//next sibling tag "tag" dla obiektu o
function getNextTag(o, tag) {
  if(o == null || o.nextSibling == undefined) return null;
  o = o.nextSibling;
  while(o.nextSibling != undefined && o.nodeName.toUpperCase() != tag.toUpperCase())
    o = o.nextSibling;
  return (o.nodeName != undefined && o.nodeName.toUpperCase() == tag.toUpperCase())?o:null;
}

//previous sibling tag "tag" dla obiektu o
function getPreviousTag(o, tag) {
  if(o == null || o.previousSibling == undefined) return null;
  o = o.previousSibling;
  while(o.previousSibling != undefined && o.nodeName.toUpperCase() != tag.toUpperCase())
    o = o.previousSibling;
  return (o.nodeName != undefined && o.nodeName.toUpperCase() == tag.toUpperCase())?o:null;
}

//zwraca pozycję obiektu od id i
function getObjectPositionById(i) {
  try {
    return getObjectPosition(document.getElementById(i));
  } catch(ex) {
    return null;
  }
}

//zwraca pozycję obiektu o
function getObjectPosition(o) {
  try {
    var p = new ObjectPosition(o.offsetLeft, o.offsetTop);
    while(o.offsetParent) {
      o = o.offsetParent;
      p.x += o.offsetLeft;
      p.y += o.offsetTop;
    }
    return p;
  } catch(ex) {
    return null;
  }
}

//zapisanie cookie
function setCookie(n, v, e, p, d, s) {
  var c = n + '=' + escape(v) +
      ((e) ? '; expires=' + e.toGMTString() : '') +
      ((p) ? '; path=' + p : '') +
      ((d) ? '; domain=' + d : '') +
      ((s) ? '; secure' : '');
  document.cookie = c;
}

//odczytanie cookie
function getCookie(n) {
  var ck = document.cookie;
  var p = n+'=';
  var b = ck.indexOf('; ' + p);
  if(b == -1) {
    b = ck.indexOf(p);
    if(b != 0) return null;
  } else
    b += 2;
  var e = document.cookie.indexOf(';', b);
  if(e == -1)
    e = ck.length;
  return unescape(ck.substring(b + p.length, e));
}

//usunięcie cookie
function deleteCookie(n, p, d) {
  if (getCookie(n)) {
    document.cookie = n + '=' +
    ((p) ? '; path=' + p : '') +
    ((d) ? '; domain=' + d : '') +
    '; expires=Thu, 01-Jan-70 00:00:01 GMT';
  }
}

//otwarcie obrazka w warstwie
function popLayerImage(l) {
  var pageLid = document.createElement("div");
  pageLid.id = 'pageLid';
  pageLid.style.position = document.all?'absolute':'fixed';
  pageLid.style.height = document.all ? document.body.clientHeight+'px' : '100%';
  pageLid.onclick = new Function('hideLayerImage();');
  document.body.appendChild(pageLid);
  var img = document.createElement('img');
  img.id = 'layerImage';
  img.onload = new Function('showLayerImage(this);');
  img.onclick = new Function('hideLayerImage();');
  document.body.appendChild(img);
  img.src = l;
}

//pokazanie obrazka w warstwie
function showLayerImage(o) {
  var winW = document.all?(document.documentElement&&document.documentElement.clientWidth)?document.documentElement.clientWidth-20:document.body.clientWidth-20:window.innerWidth-16;
  var winH = document.all?(document.documentElement&&document.documentElement.clientHeight)?document.documentElement.clientHeight-20:document.body.clientHeight-20:window.innerHeight-16;
  if(navigator.appVersion.indexOf('MSIE 6')!=-1) {
    o.style.position = 'absolute';
    o.style.left = document.documentElement.scrollLeft + Math.floor((winW - o.offsetWidth) / 2)+'px';
    o.style.top = document.documentElement.scrollTop + Math.floor((winH - o.offsetHeight) / 2)+'px';
  } else {
    o.style.position = 'fixed';
    o.style.left = Math.floor((winW - o.offsetWidth) / 2)+'px';
    o.style.top = Math.floor((winH - o.offsetHeight) / 2)+'px';
  }
  o.style.padding = '10px 10px 20px 10px';
  o.style.border = '1px solid #999999';
  o.style.visibility = 'visible';
}

//zamknięcie obrazka w warstwie
function hideLayerImage() {
  document.body.removeChild(document.getElementById('pageLid'));
  document.body.removeChild(document.getElementById('layerImage'));
}

//otwarcie obrazka w popupie
function popImage(l) {
var popImage=window.open('',"popImage", (document.all?"width=150,height=150,":"")+"scrollbars=no,resizable=yes,toolbar=no,userbar=no,location=no,status=no,menubar=no,screenX=100,screenY=100");
  popImage.document.writeln('<html><head><title>Obrazek</title></head>');
  popImage.document.writeln('<body style="background-color: #ffffff; margin: 0px;" onLoad="autoSize();">');
  popImage.document.writeln('<img style="border: 0px; cursor: pointer;" id="image" src="'+l+'" onClick="window.close();">');
  popImage.document.writeln('<script language="JavaScript" type="text/javascript" ><!--');
  popImage.document.writeln('function autoSize(o,l) {');
  if(document.all) {
    popImage.document.writeln('window.resizeBy(document.getElementById("image").offsetWidth-document.body.clientWidth, document.getElementById("image").offsetHeight-document.body.clientHeight);');
  } else {
    popImage.document.writeln('window.resizeTo(2000, 150);');
    popImage.document.writeln('window.resizeBy(document.getElementById("image").offsetWidth-window.innerWidth, document.getElementById("image").offsetHeight-window.innerHeight);');
  }
  popImage.document.writeln('window.focus();');
  popImage.document.writeln('}');
  popImage.document.writeln('/'+'/-'+'-></script>');
  popImage.document.writeln('</body></html>');
  popImage.document.close();
}

//otwarcie popupa
function popUp(l,w,h,s) {
var popUp = window.open(l,"popUp", "width="+w+",height="+h+",scrollbars="+(s==1?"yes":"no")+",resizable=yes,toolbar=no,userbar=no,location=no,status=no,menubar=no");
  popUp.document.close();
  popUp.focus();
}

function linkGo(l,t) {
  if(t == undefined) {
    window.location = l;
  } else if(t == "_blank") {
    window.open(l);
  } else {
    window.open(l, t);
  }
}

//nawigacja - przejdź do pozycji na liście
function naviListGo(n) {
var h = window.location.href.replace('showAll=1', 'showAll=0');
  if(h.indexOf("?offset=") != -1)
    h = h.replace(/\?offset=[0-9]*/, "?offset="+n);
  else if(h.indexOf("&offset=") != -1)
    h = h.replace(/&offset=[0-9]*/, "&offset="+n);
  else if(h.indexOf("?") == -1)
    h = h.replace(/\#.*/, "")+"?offset="+n;
  else
    h = h.replace(/\#.*/, "")+"&offset="+n;
  window.location = h;
}

//nawigacja - pokaż całą listę
function naviShowAll() {
var h = window.location.href;
  if(h.indexOf("?showAll=") != -1)
    h = h.replace(/\?showAll=[0-9]*/, "?showAll=1");
  else if(h.indexOf("&showAll=") != -1)
    h = h.replace(/&showAll=[0-9]*/, "&showAll=1");
  else if(h.indexOf("?") == -1)
    h = h.replace(/\#.*/, "")+"?showAll=1";
  else
    h = h.replace(/\#.*/, "")+"&showAll=1";
  window.location = h;
}

//nawigacja - rozpocznij pokazywać wyniki
function naviShowStart() {
  var h = window.location.href;
  if(document.getElementsByName('uri').length != 0 && document.getElementsByName('uri')[0].content != '')
    h = document.getElementsByName('uri')[0].content;
  window.location = h+(h.indexOf('?') == -1 ? '?' : '&')+'offset=0';
}

function getWord(n) {
  if(n <= 1)
    return n;
  else if((n >= 2 && n <= 4) || (n%100 > 20 && n%10 >= 2 && n%10 <= 4))
    return 2;
  return 3;
}

//przykrycie strony (dezaktywacja)
function coverPage() {
  var lid = document.getElementById('lid');
  if(lid == undefined) {
    lid = document.createElement('div');
    lid.id = 'lid';
    document.body.appendChild(lid);
  }
  lid.style.zIndex = 300;
  lid.style.width = document.body.clientWidth + "px";
  lid.style.height = document.body.clientHeight + "px";
}

//odkrycie strony (aktywacja)
function uncoverPage() {
  var lid = document.getElementById('lid');
  if(lid) {
    lid.style.width = '0px';
    lid.style.height = '0px';
  }
}

//zamyka wszystkie specjalne okienka poza podanym
function destroyLayerWindowsBut(tw) {
  var lw = document.getElementById('recommendPanel');
  if(lw && tw != 'recommendPanel') document.body.removeChild(lw);
  lw = document.getElementById('askQuestionPanel');
  if(lw && tw != 'askQuestionPanel') document.body.removeChild(lw);
  lw = document.getElementById('loginPanel');
  if(lw && tw != 'loginPanel') document.body.removeChild(lw);
  lw = document.getElementById('clipboardPanel');
  if(lw && tw != 'clipboardPanel') document.body.removeChild(lw);
}

//pokazuje okienko rekomendacji
function recommendShow(o, url, name) {
var req = extractReqParams(window.location.href);
var pos = getObjectPosition(o);
var panel = document.getElementById('recommendPanel');
  if(panel == undefined) {
    advAJAX.post({
      url : 'index.php?page='+(req.page && req.page.indexOf('2_') == 0 ? '2_' : '')+'osrodek_polec_znajomemu'
      , parameters : {
        'name' : name,
        'url' : url
      }
      , tag : (req.page && req.page.indexOf('2_') == 0 ? '2_' : '')
      , onSuccess: function(obj) {
        try {
          var panel = document.createElement('div');
          panel.id = 'recommendPanel';
          document.body.appendChild(panel);
          panel.innerHTML = obj.responseText;
          if(obj.tag == '2_') {
            panel.style.left = pos.x + 'px';
            panel.style.top = (pos.y + o.offsetHeight) + 'px';
          } else {
            panel.style.left = (pos.x - panel.offsetWidth + o.offsetWidth) + 'px';
            panel.style.top = (pos.y - panel.offsetHeight) + 'px';
          }
          panel.style.visibility = 'visible';
        } catch(ex) {}
      }
      , onError: function(obj) { try { alert('Błąd: ' + obj.status); } catch(ex) {} }
    });
  } else if(panel.style.visibility == 'visible') {
    panel.style.visibility = 'hidden';
  } else {
    panel.style.visibility = 'visible';
  }
  destroyLayerWindowsBut('recommendPanel');
}

//wysyła rekomendację
function recommendSubmit(alrt) {
var emailRE = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[(2([0-4]\d|5[0-5])|1?\d{1,2})(\.(2([0-4]\d|5[0-5])|1?\d{1,2})){3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
  if(document.forms['formRecommend'] != undefined) {
    if(!emailRE.test(document.forms['formRecommend'].elements['emailFrom'].value) || !emailRE.test(document.forms['formRecommend'].elements['emailTo'].value) || document.forms['formRecommend'].elements['message'].value.length > 1000)
      alert(alrt);
    else
      advAJAX.submit(document.forms['formRecommend'], {
        onSuccess: function(obj) {
          try {
            document.getElementById('recommendPanel').innerHTML = obj.responseText;
            setTimeout('document.getElementById("recommendPanel").style.visibility = "hidden"; destroyLayerWindowsBut();', 3000);
          } catch(ex) {}
        },
        onError: function(obj) { try { alert('Błąd: ' + obj.status); } catch(ex) {} }
      });
  }
}

//pokazuje okienko zadawania pytania
function askQuestionShow(o, id) {
var req = extractReqParams(window.location.href);
var pos = getObjectPosition(o);
var panel = document.getElementById('askQuestionPanel');
  if(panel == undefined) {
    advAJAX.post({
      url : 'index.php?page='+(req.page && req.page.indexOf('2_') == 0 ? '2_' : '')+'osrodek_zadaj_pytanie'
      , parameters : {
        'id' : id
      }
      , onSuccess: function(obj) {
        try {
          var panel = document.createElement('div');
          panel.id = 'askQuestionPanel';
          panel.className = 'askQuestionPanel';
          document.body.appendChild(panel);
          panel.innerHTML = obj.responseText;
          panel.style.left = (pos.x - panel.offsetWidth + o.offsetWidth) + 'px';
          panel.style.top = (pos.y - panel.offsetHeight) + 'px';
          panel.style.visibility = 'visible';
        } catch(ex) {}
      }
      , onError: function(obj) { try { alert('Błąd: ' + obj.status); } catch(ex) {} }
    });
  } else if(panel.style.visibility == 'visible') {
    panel.style.visibility = 'hidden';
  } else {
    panel.style.visibility = 'visible';
  }
  destroyLayerWindowsBut('askQuestionPanel');
}

//wysyła zadawanie pytania
function askQuestionSubmit(alrt, embedded) {
var emailRE = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[(2([0-4]\d|5[0-5])|1?\d{1,2})(\.(2([0-4]\d|5[0-5])|1?\d{1,2})){3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
  var f = document.forms['formAskQuestion' + (embedded ? 'Embedded' : '')];
  if(f != undefined) {
    f.elements['emailFrom']
    if(f.elements['emailFrom'] && !emailRE.test(f.elements['emailFrom'].value))
      alert(alrt);
    else if(f.elements['messageQuestion'].value.length == 0 || f.elements['messageQuestion'].value.length > 1000)
      alert(alrt);
    else
      advAJAX.get({
        url: '/index.php?page=register_sender_for_authorities',
        tag: [f, embedded],
        onSuccess: function(obj) {
          try {
            obj.tag[0].action += '&authorities_uid=' + obj.responseText;
            askQuestionSubmitFinalize(obj.tag);
          } catch(ex) {}
        },
        onError: function(obj) {
          try {
            alert('Błąd: ' + obj.status);
          } catch(ex) {}
        }
      });
  }
}

//finalizuje zadawanie pytania
function askQuestionSubmitFinalize(tag) {
  advAJAX.submit(tag[0], {
    tag: tag,
    onSuccess: function(obj) {
      try {
        document.getElementById('askQuestionPanel' + (obj.tag[1] ? 'Embedded' : '')).innerHTML = obj.responseText;
        if(obj.tag[1])
          setTimeout('document.getElementById("askQuestionPanelEmbedded").parentNode.removeChild(document.getElementById("askQuestionPanelEmbedded"));', 3000);
        else
          setTimeout('document.getElementById("askQuestionPanel").style.visibility = "hidden"; destroyLayerWindowsBut();', 3000);
      } catch(ex) {}
    },
    onError: function(obj) { try { alert('Błąd: ' + obj.status); } catch(ex) {} }
  });
}

//objekt request
function Request() {}

//wyciąganie parametrów z urla
function extractReqParams(s) {
  try {
    var anch = document.createElement('a');
    anch.href = s;
    if(anch.search != '') {
      var retArr = anch.search.replace('?', '').split('&');
      var req = new Request();
      for(var i = retArr.length - 1; i >= 0 ; i--)
        if(retArr[i].indexOf('=') != -1) {
          var attr = retArr[i].split('=', 2);
          eval('Request.prototype.'+attr[0]+'=null;');
          eval('req.'+attr[0]+'="'+attr[1]+'";');
        } else {
          retArr.splice(i, 1);
        }
      if(retArr.length > 0)
        return req;
      return new Request();
    } else {
      return new Request();
    }
  } catch(ex) {
    return new Request();
  }
}

//URLenkodowanie UTF-8
function utf8UrlEncode(s) {
  var u = '';
  for(var i = 0; i < s.length; i++) {
    var c = s.charCodeAt(i);
    if (c < 128) {
      u += String.fromCharCode(c);
    } else if((c > 127) && (c < 2048)) {
      u += String.fromCharCode((c >> 6) | 192);
      u += String.fromCharCode((c & 63) | 128);
    } else {
      u += String.fromCharCode((c >> 12) | 224);
      u += String.fromCharCode(((c >> 6) & 63) | 128);
      u += String.fromCharCode((c & 63) | 128);
    }
  }
  return escape(u);
}

//aktywacja aliasu
function enableAlias(o, n) {
  for(var i = 0; i < o.form.elements[o.name].length; i++)
    o.form.elements[o.name][i].parentNode.className = o.form.elements[o.name][i].parentNode.className.replace(' inactive', '') + (o.form.elements[o.name][i] == o ? '' : ' inactive');
  o.form.elements['aliasPrefix1'].disabled = (o.value == 1 ? '' : 'disabled');
  o.form.elements['aliasDomain1'].disabled = (o.value == 1 ? '' : 'disabled');
  o.form.elements['aliasDomain2'].disabled = (o.value == 2 ? '' : 'disabled');
  o.form.elements['aliasSuffix2'].disabled = (o.value == 2 ? '' : 'disabled');
  o.form.elements['aliasDomain3'].disabled = (o.value == 3 ? '' : 'disabled');
  o.form.elements['aliasSuffix3'].disabled = (o.value == 3 ? '' : 'disabled');
  changeAlias(o.form.name, o.name, n);
}

//parent tag 'tag' węzła n
function getParentTag(n, tag) {
  if(n == null || n.parentNode == undefined) return null;
  n = n.parentNode;
  while(n.parentNode != undefined && n.nodeName.toLowerCase() != tag.toLowerCase())
    n = n.parentNode;
  return (n.nodeName != undefined && n.nodeName.toLowerCase() == tag.toLowerCase())?n:null;
}

//zmiana aliasu
function changeAlias(f, o, n) {
  var m;
  var alias = -1;
  f = document.forms[f];
  for(var i = 0; i < f.elements[o].length; i++)
    if(f.elements[o][i].checked) {
      o = f.elements[o][i];
      alias = '';
      break;
    }
  if(alias != -1) {
    m = o;
    while(m = getParentTag(m, 'div'))
      if(m.className.indexOf(utilsFormOffer.classNameObligatory) == 0 || m.className.indexOf(utilsFormOffer.classNameOptional) == 0) {
        m.className = m.className.replace(' ' + utilsFormOffer.classNameMissing, '').replace(' ' + utilsFormOffer.classNameError, '').replace(' ' + utilsFormOffer.classNameDuplicated, '');
        break;
      }
    if(document.getElementById('aliasPrefix'+o.value))
      alias += document.getElementById('aliasPrefix'+o.value).innerHTML;
    if(f.elements['aliasPrefix'+o.value])
      alias += clearAlias(f.elements['aliasPrefix'+o.value].value);
    if(alias != '')
      alias += '.';
    if(f.elements['aliasDomain'+o.value])
      alias += f.elements['aliasDomain'+o.value].options[f.elements['aliasDomain'+o.value].selectedIndex].value;
    if(f.elements['aliasSuffix'+o.value])
      alias += '/' + clearAlias(f.elements['aliasSuffix'+o.value].value);
    if(f.elements['aliasSuffix'+o.value] && f.elements['aliasSuffix'+o.value].value == '')
      alias = '';
    if(f.elements['aliasPrefix'+o.value] && f.elements['aliasPrefix'+o.value].value == '')
      alias = '';
  } else {
    alias = '';
  }
  f.elements[n].value = alias;
  document.getElementById(n+'Preview').innerHTML = (alias == '' ? '' : selectedAliasText + alias);
}

//czyszczenie aliasów
function clearAlias(a) {
  return a.toLowerCase().
      replace('ą', 'a').
      replace('ć', 'c').
      replace('ę', 'e').
      replace('ł', 'l').
      replace('ń', 'n').
      replace('ó', 'o').
      replace('ś', 's').
      replace('ź', 'z').
      replace('ż', 'z').
      replace(/[^a-z0-9_\-]/g, '_');
}

/* wyszukiwarka ----------------------------------------------*/
//inicjalizacja pól wyszukiwania
function initSearchFields(s) {
  var req = extractReqParams(window.location.href);
  if(req.searchSection)
    s = req.searchSection;
  if(req.page && (req.page == 'szukaj' || req.page == '2_szukaj')) {
    initProvinces();
    initSearchItems('region');
    initSearchItems('type');
    initSearchItems('attraction');
    initSearchItems('parameter');
    initSearchText('city');
    initSearchText('keywords');
    initDistrict();
  } else {
    if(s.indexOf('province') != -1)
      sectionUnRoll('province');
    if(s.indexOf('city') != -1 || s.indexOf('district') != -1)
      sectionUnRoll('city');
    if(s.indexOf('region') != -1)
      sectionUnRoll('region');
    if(s.indexOf('type') != -1)
      sectionUnRoll('type');
    if(s.indexOf('attraction') != -1)
      sectionUnRoll('attraction');
    if(s.indexOf('parameter') != -1)
      sectionUnRoll('parameter');
    if(s.indexOf('keywords') != -1)
      sectionUnRoll('keywords');
  }
}

//rozwijanie sekcji
function sectionUnRoll(n) {
  var d = document.getElementById(n + 'Search');
  if(d) {
    d.className = '';
    while(d.previousSibling && d.previousSibling.nodeName == '#text')
      d = d.previousSibling;
    if(d.previousSibling)
      d.previousSibling.className = d.previousSibling.className.replace('collapsed', 'expanded');
  }
}

//inicjalizacja województw
function initProvinces() {
  var listIdsRE = /^[0-9]+(,[0-9]+)*$/;
  var f = document.forms['formSearchBig'];
  var p, j;
  if(f) {
    f = f.elements['province'];
    if(f && f.value && listIdsRE.test(f.value)) {
      p = f.value.split(',');
      for(var i = 0; i < p.length; i++) {
        for(j = 0; j < provinceMapping.length; j++)
          if(p[i] == provinceMapping[j]) {
            provinceArray[j] = true;
            j = provinceMapping.length;
          }
      }
      sectionUnRoll('province');
    }
  }
}

//inicjalizacja elementów wyszukiwania
function initSearchItems(n) {
  var listIdsRE = /^-?[0-9]+(,-?[0-9]+)*$/;
  var f = document.forms['formSearchBig'];
  var d = document.getElementById(n + 'Search');
  var v;
  if(f) {
    f = f.elements[n];
    if(f && d && f.value && listIdsRE.test(f.value)) {
      f = ',' + f.value + ',';
      var divs = d.getElementsByTagName('div');
      for(var i = 0; i < divs.length; i++)
        if(divs[i].id.indexOf(n + '_') == 0) {
          v = ',' + divs[i].id.replace(n + '_', '') + ',';
          if(f.indexOf(v) != -1) {
            divs[i].className = 'checked';
            d.className = '';
          }
        }
      if(d.className == '')
        sectionUnRoll(n);
    }
  }
}

//inicjalizacja powiatu
function initDistrict() {
  var listIdsRE = /^[0-9]+(,[0-9]+)*$/;
  var f = document.forms['formSearchBig'];
  var d = document.getElementById('citySearch');
  var v;
  if(f) {
    f = f.elements['district'];
    if(f && d && f.value && listIdsRE.test(f.value)) {
      f = ',' + f.value + ',';
      var divs = d.getElementsByTagName('div');
      for(var i = 0; i < divs.length; i++)
        if(divs[i].id.indexOf('district_') == 0) {
          v = ',' + divs[i].id.replace('district_', '') + ',';
          if(f.indexOf(v) != -1) {
            divs[i].className = 'checked';
            d.className = '';
          }
        }
      if(d.className == '')
        sectionUnRoll('city');
    }
  }
}

//inicjalizacja wyszukiwanych tekstów
function initSearchText(n) {
  var f = document.forms['formSearchBig'];
  if(f) {
    f = f.elements[n];
    if(f && f.value != '')
      sectionUnRoll(n);
  }
}

//zaznaczanie województw
function toggleProvince(num){
  var f = document.forms['formSearchBig'].elements['province'];
  provinceArray[num-1] = !provinceArray[num-1];
  f.value = '';
  for(var i = 0; i < provinceArray.length; i++)
    if(provinceArray[i])
      f.value += (f.value == '' ? '' : ',') + provinceMapping[i];
  validateSearch(f.form);
  return provinceArray[num-1];
}

//ustawianie aktywnych województw
function setActiveProvinces(oID){
  return provinceArray;
}

//zwijanie sekcji
function toggleSearchSection(o) {
  if(o.className.indexOf('expanded') != -1)
    o.className = o.className.replace('expanded', 'collapsed');
  else
    o.className = o.className.replace('collapsed', 'expanded');
  while(o.nextSibling && o.nextSibling.nodeName == '#text')
    o = o.nextSibling;
  if(o.nextSibling) {
    if(o.nextSibling.className == 'rolledUp')
      o.nextSibling.className = '';
    else
      o.nextSibling.className = 'rolledUp';
  }
}

//zaznaczanie pozycji
function toggleSearchItem(o) {
  if(o.className == 'checked')
    o.className = 'unchecked';
  else
    o.className = 'checked';
  var n = o.id.split('_');
  if(n.length == 2) {
    var f = document.forms['formSearchBig'].elements[n[0]];
    var re1 = new RegExp('(^'+n[1]+'$)|(^'+n[1]+',)|(,'+n[1]+'$)', 'g');
    var re2 = new RegExp(','+n[1]+',', 'g');
    if(o.className == 'checked')
      f.value += (f.value  == '' ? '' : ',') + n[1];
    else
      f.value = f.value.replace(re1, '').replace(re2, ',');
    validateSearch(f.form);
  }
}

//validacja formularza
function validateSearch(f, sa) {
  if(f.elements['province'].value
    + f.elements['region'].value
    + f.elements['type'].value
    + f.elements['attraction'].value
    + f.elements['parameter'].value
    + f.elements['city'].value
    + f.elements['keywords'].value == '' && sa) {
    var divs = document.getElementById('searchPanel').getElementsByTagName('div');
    for(var i = 0; i < divs.length; i++)
      if(divs[i].className == 'alertHidden')
        divs[i].className = 'alert';
    return false;
  } else {
    var divs = document.getElementById('searchPanel').getElementsByTagName('div');
    for(var i = 0; i < divs.length; i++)
      if(divs[i].className == 'alert')
        divs[i].className = 'alertHidden';
    return true;
  }
}

//wyszukiwanie po enterze
function submitOnEnter(evnt, f) {
  if(window.event && evnt.keyCode == 13)
    submitSearch(f);
  else if(evnt.which && evnt.which == 13)
    submitSearch(f);
}

//sprawdzanie wartości i wyszukiwanie po enterze
function blurAndSubmitOnEnter(evnt, o) {
  if(window.event && evnt.keyCode == 13) {
    o.name = '$_' + o.name;
    o.blur();
  } else if(evnt.which && evnt.which == 13) {
    o.name = '$_' + o.name;
    o.blur();
  }
}

//rozpoczęcie wyszukiwania
function submitSearch(f) {
  if(ajaxHintTimeout) {
    setTimeout('submitSearch("'+f+'");', 500);
  } else {
    f = document.forms[f];
    if(validateSearch(f, true))
      f.submit();
  }
  return false;
}

//sprawdzanie formularza newslettera
function checkFormNewsletter(formName, boxId, alerts) {
  var f = document.forms[formName];
  var e = f.elements['email'];
  var emailRE = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[(2([0-4]\d|5[0-5])|1?\d{1,2})(\.(2([0-4]\d|5[0-5])|1?\d{1,2})){3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
  if(!e.value) {
    alert(alerts[0]);
  } else if(!emailRE.test(e.value)) {
    alert(alerts[1]);
  } else {
    advAJAX.submit(f, {
      onSuccess : function(obj) {
        try {
          if(obj.responseText.search(/<!--[01]-->/) == 0)
            document.getElementById(boxId).innerHTML = obj.responseText.replace(/<!--[01]-->/, '');
          else
            alert(alerts[2]);
        } catch(ex) {}
      }
      , onError: function(obj) {
        try {
          alert('Błąd: ' + obj.status);
        } catch(ex) {}
      }
    });
  }
  return false;
}

/* AJAX ----------------------------------------------*/
//klikanie pozycji z listy
function ajaxHintClick(o) {
  if(ajaxHintObject)
    ajaxHintObject.value = o.innerHTML;
  ajaxHintHide();
}

//uaktywnianie pozycji z listy
function ajaxHintOver(o) {
  var ahl = document.getElementById('ajaxHintList');
  if(ahl)
    for(var i = 0; i < ahl.childNodes.length; i++)
      ahl.childNodes[i].className = (ahl.childNodes[i] == o ? 'active' : '');
}

//ukrywanie podpowiedzi
function ajaxHintHide() {
  var ahl = document.getElementById('ajaxHintList');
  if(ahl)
    document.body.removeChild(ahl);
}

//zwracanie listy ajaxem i obsługa
function ajaxHintSearch(e, o, url) {
  clearTimeout(ajaxHintTimeout);
  if(o) {
    validateSearch(o.form);
    var ahl = document.getElementById('ajaxHintList');
    var k = (window.event ? window.event.keyCode : e.which);
    if(k == 38 || k == 40 || k == 13) {
      if(ahl) {
        if(k == 13) {
          if(ajaxHintOffset >= 0)
            o.value = ahl.childNodes[ajaxHintOffset].innerHTML;
          document.body.removeChild(ahl);
        } else if(ahl.childNodes.length > 0 && ahl.childNodes[0].className != 'img') {
          if(k == 38) {
            ajaxHintOffset--;
            if(ajaxHintOffset < 0)
              ajaxHintOffset = ahl.childNodes.length - 1;
          } else if(k == 40) {
            if(ahl.childNodes.length != 0) {
              ajaxHintOffset++;
              if(ajaxHintOffset >= ahl.childNodes.length)
                ajaxHintOffset = -1;
            } else {
              ajaxHintOffset = -1;
            }
          }
          for(var i = 0; i < ahl.childNodes.length; i++)
            ahl.childNodes[i].className = (i == ajaxHintOffset ? 'active' : '');
        }
      }
      ajaxHintTimeout = null;
    } else {
      ajaxHintObject = o;
      ajaxHintTimeout = setTimeout('ajaxHintSearch(null, null, "'+url+'");', 200);
    }
  } else if(ajaxHintObject.value != '') {
    var ahl = document.getElementById('ajaxHintList');
    if(!ahl) {
      var pos = getObjectPosition(ajaxHintObject);
      ahl = document.createElement('div');
      ahl.id = 'ajaxHintList';
      ahl.style.position = 'absolute';
      ahl.style.left = (pos.x) + 'px';
      ahl.style.top = (pos.y + ajaxHintObject.offsetHeight) + 'px';
      ahl.style.width = (ajaxHintObject.offsetWidth - 2)+ 'px';
      document.body.appendChild(ahl);
    }
    if(ahl.childNodes.length == 0) {
      var imgDiv = document.createElement('div');
      imgDiv.className = 'img';
      var img = document.createElement('img');
      img.src = '/img/layout/wait_small.gif';
      ahl.appendChild(imgDiv);
      imgDiv.appendChild(img);
    }
    advAJAX.get({
      url : url+utf8UrlEncode(ajaxHintObject.value)
      , onSuccess: function(obj) {
        try {
          var list = obj.responseXML.getElementsByTagName('list').item(0);
          var ahl = document.getElementById('ajaxHintList');
          if(ahl) {
            ahl.innerHTML = '';
            if(list.childNodes.length > 0)
              for(var i = 0; i < list.childNodes.length; i++) {
                var elm = document.createElement('div');
                elm.style.padding = '3px';
                elm.style.width = (ahl.offsetWidth - 8) + 'px';
                elm.innerHTML = list.childNodes[i].childNodes[0].nodeValue;
                elm.onclick = new Function('ajaxHintClick(this);');
                elm.onmouseover = new Function('ajaxHintOver(this);');
                ahl.appendChild(elm);
              }
            else
              ajaxHintHide();
          }
          ajaxHintOffset = -1;
          ajaxHintTimeout = null;
        } catch(ex) {}
      }
      , onError: function(obj) {
        try {
          alert('Błąd: ' + obj.status);
          ajaxHintTimeout = null;
        } catch(ex) {}
      }
    });
  } else {
    ajaxHintHide();
    ajaxHintTimeout = null;
  }
}

//sprawdzanie wartości ajaxem
function ajaxHintCheck(o, url, alertInfo) {
  clearTimeout(ajaxHintTimeout);
  if(o) {
    if(o.value != '') {
      var ahl = document.getElementById('ajaxHintList');
      ajaxHintObject = o;
      ajaxHintTimeout = setTimeout('ajaxHintCheck(null, "'+url+'", "'+(alertInfo ? alertInfo : '')+'");', 200);
    } else {
      ajaxHintTimeout = null;
    }
  } else {
    advAJAX.get({
      url : url+utf8UrlEncode(ajaxHintObject.value)
      , tag : alertInfo
      , onSuccess: function(obj) {
        try {
          var list = obj.responseXML.getElementsByTagName('list').item(0);
          if(list.childNodes.length == 0 || ajaxHintObject.value.toLowerCase() != list.childNodes[0].childNodes[0].nodeValue.toLowerCase()) {
            ajaxHintObject.value = '';
            if(obj.tag != '')
              alert(obj.tag);
          }
          ajaxHintHide();
          ajaxHintTimeout = null;
          if(ajaxHintObject.name.indexOf('$_') == 0) {
            ajaxHintObject.name = ajaxHintObject.name.substr(2);
            submitSearch(ajaxHintObject.form.name);
          }
        } catch(ex) {alert(ex);}
      }
      , onError: function(obj) {
        try {
          if(ajaxHintObject.name.indexOf('$_') == 0)
            ajaxHintObject.name = ajaxHintObject.name.substr(2);
          ajaxHintObject.value = '';
          ajaxHintHide();
          alert('Błąd: ' + obj.status);
          ajaxHintTimeout = null;
        } catch(ex) {}
      }
    });
  }
}

/* Logowanie ---------------------------------------*/
//wyświetlanie i chowanie panelu logowania
function loginPanelToggle() {
  window.location = 'https://zaplanujwypad.home.pl/index.php?page=logowanie';
/*
  var m = document.getElementById('menu');
  var pos = getObjectPosition(m);
  var panel = document.getElementById('loginPanel');
  if(panel == undefined) {
    panel = document.createElement('div');
    panel.id = 'loginPanel';
    document.body.appendChild(panel);
  }
  if(panel.innerHTML == '') {
    advAJAX.get({
      url : 'index.php?page=panel_logowania'
      , onSuccess: function(obj) {
        try {
          if(obj.responseText.indexOf('<logged/>') == 0) {
            window.location = obj.responseText.replace('<logged/>', '');
          } else {
            panel.innerHTML = obj.responseText;
            panel.style.left = (pos.x + m.offsetWidth - panel.offsetWidth) + 'px';
            panel.style.top = (pos.y + 11) + 'px';
            panel.style.visibility = 'visible';
            document.forms['formLogin'].elements['login'].focus();
          }
        } catch(ex) {}
      }
      , onError: function(obj) { try { alert('Błąd: ' + obj.status); } catch(ex) {} }
    });
  } else if(panel.style.visibility == 'visible') {
    panel.style.visibility = 'hidden';
  } else {
    panel.style.visibility = 'visible';
  }
  destroyLayerWindowsBut('loginPanel');
*/
}

//logowanie po enterze
function loginSubmitKey(evnt) {
  if(window.event && evnt.keyCode == 13)
    loginSubmit();
  else if(evnt.which && evnt.which == 13)
    loginSubmit();
}

//logowanie
function loginSubmit() {
  if(document.forms['formLogin'] != undefined) {
    coverPage();
    advAJAX.submit(document.forms['formLogin'], {
      onSuccess: function(obj) {
        try {
          if(obj.responseText.indexOf('<error/>') != 0) {
            window.location = 'http://zaplanujwypad.home.pl/index.php?page=adm_powitanie';
          } else {
            uncoverPage();
            alert(obj.responseText.replace(/<br ?\/?>/gi, '||').replace(/<[^>]*>|\n|\r/g, '').replace(/\|\|/g, '\n'));
          }
        } catch(ex) {}
      }
      , onError: function(obj) { try { uncoverPage(); alert('Błąd: ' + obj.status); } catch(ex) {} }
    });
  }
}

//zmiana sekcji w panelu logowania
function loginPanelSectionToggle(s) {
  if(s) {
    document.getElementById('sectionLogin').style.display = 'block';
    document.getElementById('sectionReset').style.display = 'none';
    document.getElementById('loginPanel').style.height = '85px';
    document.forms['formLogin'].elements['login'].focus();
  } else {
    document.getElementById('sectionLogin').style.display = 'none';
    document.getElementById('sectionReset').style.display = 'block';
    document.getElementById('loginPanel').style.height = '65px';
    document.forms['formResetPassword'].elements['login'].focus();
  }
}

//zmiana hasła po enterze
function resetPasswordSubmitKey(evnt) {
  if(window.event && evnt.keyCode == 13)
    resetPasswordSubmit();
  else if(evnt.which && evnt.which == 13)
    resetPasswordSubmit();
}

//wyświetlanie i chowanie panelu zmiany hasła
function resetPasswordSubmit() {
  if(document.forms['formResetPassword'] != undefined) {
    coverPage();
    advAJAX.submit(document.forms['formResetPassword'], {
      onSuccess: function(obj) {
        try {
          if(obj.responseText.indexOf('<ok/>') == 0) {
            uncoverPage();
            alert(obj.responseText.replace(/<br ?\/?>/gi, '||').replace(/<[^>]*>|\n|\r/g, '').replace(/\|\|/g, '\n'));
            document.getElementById('loginPanel').style.visibility = 'hidden';
          } else if(obj.responseText.indexOf('<error/>') == 0) {
            uncoverPage();
            alert(obj.responseText.replace(/<br ?\/?>/gi, '||').replace(/<[^>]*>|\n|\r/g, '').replace(/\|\|/g, '\n'));
          }
        } catch(ex) {}
      }
      , onError: function(obj) { try { uncoverPage(); alert('Błąd: ' + obj.status); } catch(ex) {} }
    });
  }
}

//wylogowanie
function logOut() {
  advAJAX.get({
    url: 'index.php?page=panel_logowania'
    , onSuccess: function(obj) {
      try {
        window.location = 'index.php';
      } catch(ex) {}
    }
    , onError: function(obj) { try { alert('Błąd: ' + obj.status); } catch(ex) {} }
  });
}

//załadowanie obrazka
function showPictureUploadHourglass(o, alrt) {
  if(o.form.elements['photoFile'] && o.form.elements['photoFile'].value != '') {
    var hourglass = document.getElementById('hourglass');
    if(hourglass == undefined) {
      hourglass = document.createElement('div');
      hourglass.id = 'hourglass';
      document.body.appendChild(hourglass);
    }
    hourglass.innerHTML = alrt;
    var pos = getObjectPosition(o);
    hourglass.style.left = (pos.x + o.offsetWidth + 5) + 'px';
    hourglass.style.top = (pos.y + (o.offsetHeight -  hourglass.offsetHeight) / 2) + 'px';
    hourglass.style.visibility = 'visible';
  }
}

//załadowanie obrazka
function checkNewPhoto(o) {
  o.form.elements['_actPhoto'].value = 'uploadPhoto';
  if(o.value != '' && o.value.substr(o.value.length-4).toLowerCase() != '.jpg') {
    o.parentNode.parentNode.className = 'optional error';
    if(o.form.elements['submitButton'])
      o.form.elements['submitButton'].disabled = 'disabled';
    if(o.form.elements['submitPhotoButton'])
      o.form.elements['submitPhotoButton'].disabled = 'disabled';
  } else {
    o.parentNode.parentNode.className = 'optional';
    if(o.form.elements['submitButton'])
      o.form.elements['submitButton'].disabled = false;
    if(o.form.elements['submitPhotoButton'])
      o.form.elements['submitPhotoButton'].disabled = false;
    if(o.value != '')
      o.form.elements['_actPhoto'].value = 'uploadPhoto';
  }
}

//przesunięcie obrazka w górę
function movePhotoUp(id) {
  var p = document.getElementById('photos');
  var f = document.forms['formGallery'];
  var ord = f.elements['order'].value.split(',');
  if(id != ord[0]) {
    f.elements['_actGallery'].value = 'updateGallery';
    f.elements['submitButton'].disabled = false;
    var i = 0;
    while(i < ord.length)
      if(id == ord[i]) {
        ord[i] = ord[i-1];
        ord[i-1] = id;
        swapNodes(p.childNodes[i], p.childNodes[i-1]);
        i = ord.length;
      } else {
        i++;
      }
    f.elements['order'].value = '';
    for(i = 0; i < ord.length; i++)
      f.elements['order'].value += (f.elements['order'].value == '' ? '' : ',') + ord[i];
  }
}

//przesunięcie obrazka w dół
function movePhotoDown(id) {
  var p = document.getElementById('photos');
  var f = document.forms['formGallery'];
  var ord = f.elements['order'].value.split(',');
  if(id != ord[ord.length-1]) {
    f.elements['_actGallery'].value = 'updateGallery';
    f.elements['submitButton'].disabled = false;
    var i = 0;
    while(i < ord.length)
      if(id == ord[i]) {
        ord[i] = ord[i+1];
        ord[i+1] = id;
        swapNodes(p.childNodes[i+1], p.childNodes[i]);
        i = ord.length;
      } else {
        i++;
      }
    f.elements['order'].value = '';
    for(i = 0; i < ord.length; i++)
      f.elements['order'].value += (f.elements['order'].value == '' ? '' : ',') + ord[i];
  }
}

//usunięcie obrazka
function deletePhoto(id) {
  var p = document.getElementById('photos');
  var f = document.forms['formGallery'];
  var ord = f.elements['order'].value.split(',');
  f.elements['submitButton'].disabled = false;
  f.elements['_actGallery'].value = 'updateGallery';
  var i = 0;
  while(i < ord.length)
    if(id == ord[i]) {
      ord.splice(i, 1);
      p.removeChild(p.childNodes[i]);
      i = ord.length;
    } else {
      i++;
    }
  f.elements['order'].value = '';
  for(i = 0; i < ord.length; i++)
    f.elements['order'].value += (f.elements['order'].value == '' ? '' : ',') + ord[i];
  f.elements['toDelete'].value += (f.elements['toDelete'].value == '' ? '' : ',') + id;
}

//zmiana opisu zdjęcia
function photoTitleChange(id) {
  var o = document.forms['formGallery'].elements['toChange'];
  if((','+o.value+',').indexOf(','+id+',') == -1)
    o.value += (o.value == '' ? '' : ',') + id;
  document.forms['formGallery'].elements['submitButton'].disabled = false;
  document.forms['formGallery'].elements['_actGallery'].value = 'updateGallery';
}

//otwarcie strony ośrodka z edytora
function showResortPage() {
  var req = extractReqParams(window.location.href);
  if(req.id) {
    resortWindow = window.open('', 'resortWindow');
    resortWindow.location = 'http://zaplanujurlop.pl/index.php?page=osrodek&id='+req.id;
  } else {
    alert('Nie można przejść do strony ośrodka, bo nie edytujesz danych');
  }
}

//ograniczanie długości pól do wpisywania
function guardLength(o, l) {
  if(o.value.length > l)
    o.value = o.value.substr(0, l);
  try {
    document.getElementById(o.name + 'InfoRemainingLength').innerHTML = l - o.value.length;
  } catch(ex) {}
  try {
    document.getElementById(o.name + 'InfoWrittenLength').innerHTML = o.value.length;
  } catch(ex) {}
}

//podtrzymywanie sesji
function keepSessionAlive(s, c) {
  try {
    if(c == undefined)
      c = 1;
    if(c != 0) {
      c--;
      var sessionKeeper = document.getElementById('sessionKeeper');
      if(sessionKeeper == undefined) {
        sessionKeeper = document.createElement('iframe');
        sessionKeeper.name = 'sessionKeeper';
        sessionKeeper.id = 'sessionKeeper';
        document.body.appendChild(sessionKeeper);
      }
      sessionKeeper.src = 'index.php?page=podtrzymanie_logowania';
      setTimeout('keepSessionAlive('+s+', '+c+');', 1000 * s);
    }
  } catch(ex) {}
}

//pokazywanie mapki google
function showGoogleMap(c) {
  var m = document.getElementById('googleMap');
  var rp = document.getElementById('districtRecomendationPanel');
  var ma = document.getElementById('mapAnchor');
  var mc = document.getElementById('mainColumn');
  if(!m) {
    if(mc) {
      m = document.createElement('div');
      m.id = 'googleMap';
      if(rp)
        rp.parentNode.insertBefore(m, rp);
      else
        mc.appendChild(m);
    } else if(ma) {
      m = document.createElement('div');
      m.id = 'googleMap';
      if(ma.nextSibling)
        ma.parentNode.insertBefore(m, ma.nextSibling);
      else
        mc.appendChild(ma.parentNode);
    }
  }
  if(m && GBrowserIsCompatible()) {
    var pinMarker;
    var map = new GMap2(m);
    eval('map.setCenter(new GLatLng' + c + ', 14);');
    eval('pinMarker = new GMarker(new GLatLng' + c + ');');
    map.addOverlay(pinMarker);
    map.addControl(new GLargeMapControl());
    map.addControl(new GMapTypeControl());
    map.addControl(new GScaleControl());
    map.enableScrollWheelZoom();
    map.enableDoubleClickZoom();
    map.enableContinuousZoom();
  }
}

//walidacja hasla
function formChangePasswordValidate(a) {
  var f = document.forms['formChangePassword'];
  if(f) {
    var np = f.elements['newPassword'];
    var npr = f.elements['newPasswordRetype'];
    if(np && npr) {
      if(np.value == '')
        alert(a[0]);
      else if(np.value != npr.value)
        alert(a[1]);
      else
        f.submit();
    }
  }
}

//zmiana obsługi puli reklam
function updateResortAdvPool(o) {
  if(o) {
    for(var i = 0; i < o.form.elements.length; i++)
      o.form.elements[i].disabled = 'disabled';
    advAJAX.post({
      url : 'index.php?page=adm_kampanie_zarzadzanie',
      tag : o.form,
      parameters : {
        'idResort' : o.value,
        'turnOn' : (o.checked ? 1 : 0)
      },
      onSuccess: function(obj) {
        for(var i = 0; i < obj.tag.elements.length; i++)
          obj.tag.elements[i].disabled = false;
      },
      onError: function(obj) {
        try { alert('Błąd: ' + obj.status); } catch(ex) {}
        for(var i = 0; i < obj.tag.elements.length; i++)
          obj.tag.elements[i].disabled = false;
      }
    });
  }
}

//poprawka do adocean dla MSIE6
function adoceanMsie6Fix() {
  var o = document.getElementById('adocean750');
  if(o && o.offsetHeight > 0) {
    o.style.marginTop = '-' + (o.offsetHeight > 110 ? 199 : 44) + 'px';
    o.style.position = 'relative';
    o.style.zIndex = '-1';
  }
}

//zamówienie promocji eventowej
function orderEvent(o) {
  var panel = document.getElementById('eventOrderPanel');
  if(o && !panel) {
    var pos = getObjectPosition(o);
    panel = document.createElement('div');
    panel.id = 'eventOrderPanel';
    o.parentNode.appendChild(panel);
    panel.style.left = (pos.x + o.offsetWidth - panel.offsetWidth) + 'px';
    panel.style.top = (pos.y - panel.offsetHeight + o.offsetHeight) + 'px';
    advAJAX.get({
      url : 'index.php?page=adm_zamawianie_super_ofert',
      tag : panel,
      onSuccess: function(obj) {
        obj.tag.innerHTML = obj.responseText;
        obj.tag.style.visibility = 'visible';
      },
      onError: function(obj) { try { alert('Błąd: ' + obj.status); } catch(ex) {} }
    });
  } else {
    panel.parentNode.removeChild(panel);
  }
}

//potwierzenie promocji eventowej
function commitOrderEvent(o) {
  var panel = document.getElementById('eventOrderPanel');
  var req = extractReqParams(window.location.href);
  if(req.id) {
    o.form.elements['eventOrderButton'].parentNode.removeChild(o.form.elements['eventOrderButton']);
    advAJAX.post({
      url : 'index.php?page=adm_zamawianie_super_ofert&id=' + req.id,
      parameters : {
        'eventDescription' : o.form.elements['eventDescription'].value
      },
      tag : panel,
      onSuccess: function(obj) {
        obj.tag.parentNode.removeChild(obj.tag);
        if(obj.responseText.substr(0, 4) == '<1/>')
          alert(obj.responseText.substr(4));
      },
      onError: function(obj) { try { alert('Błąd: ' + obj.status); } catch(ex) {} }
    });
  } else if(panel) {
    panel.parentNode.removeChild(panel);
  }
}

//przełącznie tekstu informacyjnego w lewej kolumnie
function toggleInfoText(o) {
  if(o.nextSibling && o.previousSibling) {
    o.className = (o.className == 'panelLeftOrangeButton' ? 'panelLeftOrangeButton panelLeftOrangeButtonClose' : 'panelLeftOrangeButton');
    o.nextSibling.className = (o.nextSibling.className == 'undisplayed' ? 'panelLeftOrangeLight' : 'undisplayed');
    o.previousSibling.className = (o.nextSibling.className == 'undisplayed' ? 'panelLeftOrangeLight' : 'undisplayed');
  }
}

//dodawania komentarza
function addComment(f, a) {
  var v = f.elements['comment'].value;
  if(v) {
    advAJAX.post({
      url: 'index.php?page=dodaj_komentarz',
      parameters: {
        'type': 'a',
        'id': f.elements['id'].value,
        'comment': v
      },
      tag : f,
      onSuccess: function(obj) {
        try {
          obj.tag.parentNode.removeChild(obj.tag);
          alert(obj.responseText);
        } catch(ex) {}
      },
      onError: function(obj) { try { alert('Błąd: ' + obj.status); } catch(ex) {} }
    });
  } else {
    alert(a);
  }
}

//inicjowanie notatnika
function initNotebook(frst) {
  var o = document.getElementById('socialPanel');
  if(o) {
    advAJAX.post({
      url: '/index.php?page=obsluga_notesu',
      parameters: {
        action: 'get'
      },
      tag: [o, frst],
      onSuccess: function(obj) {
        var id = window.location.href;
        id = id.substr(0, id.lastIndexOf('/'));
        id = id.substr(id.lastIndexOf('/') + 1);
        var idp = ((',' + obj.responseText + ',').indexOf(id) == -1);
        obj.tag[0].innerHTML = miniNotebookTpl.replace(/<id\/>/g, id).replace(/<add\/>/g, idp ? 'add' : 'undisplayed').replace(/<sub\/>/g, idp ? 'undisplayed' : 'sub') + obj.tag[0].innerHTML;
        updateNotebookCounter(obj.responseText);
      },
      onError: function(obj) {
        try {
          alert('Błąd: ' + obj.status);
        } catch(ex) {}
      }
    });
  } else if(obj.tag[1]) {
    addOnLoad('initNotebook');
  }
}

//obsługa w notatniku
function handleWithNotebook(obj) {
  obj.note = '';
  if(obj.cmd == 'note')
    obj.note = obj.o.form.elements['note'].value;
  advAJAX.post({
    url: '/index.php?page=obsluga_notesu',
    parameters: {
      action: obj.cmd,
      idResort: obj.id,
      note: obj.note
    },
    tag: obj,
    onSuccess: function(obj) {
      if(notebook)
        notebook = (',' + notebook + ',').replace(',' + obj.tag.id + ',', ',');
      else
        notebook = ',';
      if(obj.tag.cmd == 'add') {
        if(obj.responseText) {
          alert(obj.responseText);
        } else {
          obj.tag.o.nextSibling.className = 'sub';
          obj.tag.o.className = 'undisplayed';
          notebook += obj.tag.id + ',';
        }
      } else if(obj.tag.cmd == 'sub') {
        if(obj.tag.o.previousSibling && obj.tag.o.previousSibling.className == 'undisplayed') {
          obj.tag.o.previousSibling.className = 'add';
          obj.tag.o.className = 'undisplayed';
        } else {
          var li = obj.tag.o.parentNode.parentNode.parentNode;
          if(!((li.previousSibling && li.previousSibling.className == 'li') || (li.nextSibling && li.nextSibling.className == 'li'))) {
            var aqpe = document.getElementById('askQuestionPanelEmbedded');
            if(aqpe) aqpe.parentNode.removeChild(aqpe);
            aqpe = document.getElementById('askQuestionLogin');
            if(aqpe) aqpe.parentNode.removeChild(aqpe);
            aqpe = document.getElementById('forumLoginPanel');
            if(aqpe) aqpe.parentNode.removeChild(aqpe);
          }
          li.parentNode.removeChild(li);
        }
      } else if(obj.tag.cmd == 'note') {
        saveNote(obj.tag.o.form.name);
      }
      if(notebook == ',')
        notebook = '';
      else if(notebook)
        notebook = notebook.substr(1, notebook.length - 2);
      updateNotebookCounter();
    },
    onError: function(obj) {
      try {
        alert('Błąd: ' + obj.status);
      } catch(ex) {}
    }
  });
}

//zapisanie notatki w notesie
function saveNote(f) {
  f = document.forms[f];
  var nb = f.elements['noteButton'];
  var sb = f.elements['savedButton'];
  if(sb.className == 'undisplayed') {
    nb.className = 'undisplayed';
    sb.className = 'buttonGreen';
    setTimeout('saveNote("' + f.name + '");', 2000);
  } else {
    nb.className = 'buttonBlue';
    sb.className = 'undisplayed';
  }
}

//aktualizowanie liczby pozycji w notesie
function updateNotebookCounter(ids) {
  if(ids)
    notebook = ids;
  else
    ids = notebook;
  var o = document.getElementById('notebook');
  if(o) {
    o = o.firstChild.getElementsByTagName('span');
    if(ids && ids.length > 0) {
      ids = ids.replace(/[^,]/g, '');
      o[0].innerHTML = '[' + (ids.length + 1) + ']';
      o[0].className = '';
      o[0].parentNode.className = 'header';
    } else {
      o[0].className = 'undisplayed';
      o[0].parentNode.className = 'undisplayed';
    }
  }
}

//inicjalizowanie zadawania pytań
function initNotebookAskQuestion() {
  var anch = document.getElementById('askQuestionLogin');
  var fl = document.getElementById('forumLoginPanel');
  if(anch && fl) {
    anch.parentNode.appendChild(fl);
  }
}
