/*
 *  Copyright (C) 2006, 2007 Intercon e-consulting, http://www.intercon.pl
 *  code: WAP
 */

var nua = navigator.userAgent.toLowerCase ();
var opera = nua.indexOf ('opera') != -1;
var msie = nua.indexOf ('msie') != -1 && (document.all && !opera);

var tab_names = null;
var tab_elems = null;
var tab_cookie = 'navtab1';

function initNavTab (no) {
  var navtab_conv = $('navtab_conv');
  var navtab_unroll = $('navtab_unroll');
  var navtab = $('navtabContainer_' + no);
  if (navtab && navtab_conv && navtab_unroll) {
    var navtab_names = $('navtabTitles_'  + no);
    var navtab_content = $('navtabContents_'  + no);
    if (typeof template != 'undefined' && template == 'subpage') {
      navtab_content.className += ' hidden';
      navtab_conv.className = '';
      navtab.style.height = 'auto';      
    }
    if (navtab_names && navtab_content) {
      tab_names = navtab_names.getElementsByTagName ('LI');
      for (var i = 0; i < tab_names.length; i++) {
	tab_names[i].onmousedown = showTab;
      }
      tab_elems = getElementsByClassName (navtab_content, 'DIV', 'navtab');
      navtab_unroll.onmousedown = function () {
        navtab_conv.className = 'hidden';
        navtab_content.className = navtab_content.className.replace (' hidden', '');
//        navtab.style.height = '17.3em';
        return false;
      };
    }
  }
  var tab_cs = readCookie (tab_cookie);
  if (tab_cs) {
    var t = $('navtab_title_' + tab_cs);
    if (t) showTab.call (t);
  }
}

function showTab () {
  var this_id = this.id.split ('_')[2];
  if (tab_elems) {
    for (var i = 0; i < tab_elems.length; i++) {
      if (this_id != tab_elems[i].id.split ('_')[2])
	tab_names[i].className = 'navtab_title';
	tab_elems[i].style.display = 'none';
    }
  }
  $('navtab_' + this_id).style.display = 'block';
  this.className = 'navtab_selected';
  saveCookie (tab_cookie, this_id);
  return false;
}

function initMenu () {
  var menu_container = $('menu_container');
  if (menu_container) {
    var m = getElementsByClassName (menu_container, 'LI', 'off');
    for (var i = 0; i < m.length; i++) {
      m[i].onmouseover = setOver;
      m[i].onmouseout  = unsetOver;
    }
    removeEmptyUls(menu_container);
    if (!msie && !opera) {
      var m = getElementsByClassName (menu_container, 'UL', 'left');
      for (var i = 0; i < m.length; i++) {
	var ifr = document.createElement ('IFRAME');
	ifr.frameBorder = 0;
	ifr.scrolling = 'no';
	ifr.style.position = 'absolute';
	ifr.style.left = '0';
	ifr.style.width = '100%';
	ifr.style.height = '100%';
        ifr.style.opacity = '0.95';
        ifr.style.filter = 'alpha(opacity=95)';
	m[i].insertBefore (ifr, m[i].firstChild);
      }
      var m = getElementsByClassName (menu_container, 'UL', 'right');
      for (var i = 0; i < m.length; i++) {
	var ifr = document.createElement ('IFRAME');
	ifr.frameBorder = 0;
	ifr.scrolling = 'no';
	ifr.style.position = 'absolute';
	ifr.style.left = '0';
	ifr.style.width = '100%';
	ifr.style.height = '100%';
        ifr.style.opacity = '0.95';
        ifr.style.filter = 'alpha(opacity=95)';
	m[i].insertBefore (ifr, m[i].firstChild);
      }
    }
  }
}

function removeEmptyUls(obj) {
 if(!obj)
  return false;
 var uls = obj.getElementsByTagName('UL');
 for(var i = 0; i < uls.length; i++) {
  var flaga = true;
  var x = uls[i].childNodes;
  for(var j = 0; j < x.length; j++) {
   if(x[j].nodeType != 3) {
    flaga = false;
   }
  }
  if(flaga) {
   uls[i].parentNode.removeChild(uls[i]);
   --i;
  }
 }
 return false;
}

function setOver () {
  this.className = 'over';
}

function unsetOver () {
  this.className = 'off';
}

function getElementsByClassName (oElm, strTagName, strClassName) {
  var arrElements = (strTagName == "*" && document.all)? document.all : oElm.getElementsByTagName(strTagName);
  var arrReturnElements = new Array();
  strClassName = strClassName.replace(/\-/g, "\\-");
  var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
  var oElement;
  for(var i=0; i<arrElements.length; i++){
    oElement = arrElements[i];
    if(oRegExp.test(oElement.className)){
      arrReturnElements.push(oElement);
    }
  }
  return (arrReturnElements)
}

function initFeedback () {
  if (typeof document.feedback != 'undefined') {
    /* document.feedback.name.onfocus    = function () { focusSearch.call (this, getMsg ('FEEDBACK_NAME')); };
       document.feedback.name.onblur     = function () { blurSearch.call (this, getMsg ('FEEDBACK_NAME')); }; */
    document.feedback.email.onfocus   = function () { focusSearch.call (this, getMsg ('FEEDBACK_EMAIL')); };
    document.feedback.email.onblur    = function () { blurSearch.call (this, getMsg ('FEEDBACK_EMAIL')); };
    document.feedback.content.onfocus = function () { focusSearch.call (this, getMsg ('FEEDBACK_CONTENT')); };
    document.feedback.content.onblur  = function () { blurSearch.call (this, getMsg ('FEEDBACK_CONTENT')); };
    /* document.feedback.name.value = getMsg ('FEEDBACK_NAME'); */
    document.feedback.email.value = getMsg ('FEEDBACK_EMAIL');
    document.feedback.content.value = getMsg ('FEEDBACK_CONTENT');
  }
}

function processFeedback () {
  /*
  if (document.feedback.name.value == getMsg ('FEEDBACK_NAME') || document.feedback.name.value == '') {
    alert (getMsg ('Proszę podać imię i nazwisko.'));
    return false;
  }*/
  if (document.feedback.email.value == getMsg ('FEEDBACK_EMAIL') || document.feedback.email.value == '') {
    alert (getMsg ('Proszę podać adres e-mail.'));
    return false;
  }
  if (document.feedback.content.value == getMsg ('FEEDBACK_CONTENT') || document.feedback.content.value == '') {
    alert (getMsg ('Proszę podać treść zgłoszenia.'));
    return false;
  }

  var params = 'typ=' + encodeURIComponent (document.feedback.typ.value);
  /* params += '&name=' + encodeURIComponent (document.feedback.name.value); */
  params += '&email=' + encodeURIComponent (document.feedback.email.value);
  params += '&content=' + encodeURIComponent (document.feedback.content.value);
  var feedbackButton = $('feedbackButton');
  if (feedbackButton) {
    feedbackButton.onclick = null;
  }
  return js_sendX ('/do/forms.php', params, 0, feedbackCallback, feedbackFallback, $('faqForm'));
}

function feedbackCallback (data) {
  if (data != null && data != '') {
    data = data.replace(/\s/g,"").split(';');
//    alert('<:' + escape(data) + ':>');
    if (data[0] != '1') {
      var arr = data;//.split (';');
      alert (getMsg (arr[1]));
      var feedbackButton = $('feedbackButton');
      if (feedbackButton) {
        feedbackButton.onclick = processFeedback;
      }
    }
    else {
      var feedback = $('feedback');
      var feedbackDone = $('feedbackDone');
      if (feedback && feedbackDone) {
        document.feedback.reset();
        feedback.style.display = 'none';
        feedbackDone.style.display = 'block';
      }
    }
  }
}

function feedbackFallback (status, statusText) {
  alert ('feedback Error: ' + status +': '+ statusText);
  var feedbackButton = $('feedbackButton');
  if (feedbackButton) {
    feedbackButton.onclick = processFeedback;
  }
}

function displayFeedback() {
  var feedback = $('feedback');
  var feedbackDone = $('feedbackDone');
  if(feedback && feedbackDone) {
    feedbackDone.style.display = 'none';
    feedback.style.display = 'block';
    initFeedback ();
  }
}

function js_initAJAX () {
  var x = null;
  if (window.XMLHttpRequest)
    x = new XMLHttpRequest ();
  else if (window.ActiveXObject) {
    try { x = new ActiveXObject ("Msxml2.XMLHTTP"); }
    catch (e) {
      try { x = new ActiveXObject ("Microsoft.XMLHTTP"); }
      catch (E) { x = null; }
    }
  }
  if (!x && msie)
    alert ('You need to enable active scripting and ActiveX controls.');
  return x;
}

var sendIntv = null;
function js_sendX (url, data, ret, cb, fail, form) {
  var xh = js_initAJAX ();
  if (!xh) return null;
  try {
    xh.open (data ? 'POST' : 'GET', url, true);
    xh.onreadystatechange = function() {
      if (xh.readyState == 1) {
        if (typeof form != 'undefined')
          showPreloader (form, form.offsetWidth, form.offsetHeight, 0, 0);
      }
      if (xh.readyState == 4) {
        if (typeof form != 'undefined')
          removePreloader (form);
     	var xhs = false;
	try { xhs = xh.status ? true : false; } catch (e) {};
	if (xhs) {
	  if (xh.status == 200) {
	    if (sendIntv) {
	      clearTimeout (sendIntv);
	      sendIntv = null;
	    }
	    if (cb)
	      cb (ret ? xh.responseXML : xh.responseText);
	  }
	  else if (xh.status == 0);
	  else {
	    if (fail)
	      fail (xh.status, xh.statusText);
	    else
	      alert ('sendX Error: ' + xh.status + ': ' + xh.statusText);
	  }
	}
	xh = null;
      }
    }
    xh.setRequestHeader ('Content-Type', 'application/x-www-form-urlencoded');
    xh.send (data);
    return xh;
  } catch (e) {
    alert ('sendX Error: ' + e.name +': '+ e.message);
  }
}

function showPreloader (obj, w, h, t, l) {
  obj.position = obj.style.position;
  obj.style.position = 'relative';
  var pre = document.createElement ('div'); 
  pre.style.position = 'absolute'; 
  pre.id = 'preload';
  pre.style.zIndex = '9999';
  pre.style.opacity = '.7';
  pre.style.filter = 'alpha(opacity=70)';
  pre.style.top = t + 10 + 'px';
  pre.style.left = l + 10 + 'px';
  pre.style.width = w - 20 + 'px';
  pre.style.height = h - 20 + 'px';
  pre.style.background = '#eee url(/images/css/preload.gif) center center no-repeat'; 
  obj.appendChild(pre);
}

function removePreloader (obj) {
  if (!obj) return;
  obj.style.position = obj.position;
  var pre = $('preload');
  obj.removeChild(pre);
}

function focusSearch (name) {
  if (this.value == name) {
    this.value = '';
    this.className += ' focus';
  }
}

function blurSearch (name) {
  if (this.value == '') {
    this.value = name;
    this.className.replace (/ focus/, '');
  }
}

function init () {
  if (template == 'rabat') return;
  initMenu ();

  var searchFlightsName = $('searchFlightsName');
  var searchContentName = $('searchContentName');
  var searchHotelName = $('searchHotelName');
  var searchFlight  = $('searchFlight');
  var searchContent = $('searchContent');
  var searchHotel = $('searchHotel');

//  usunieta wyszukiwarka lotow
//  if (searchFlightsName && searchContentName && searchFlight && searchContent && searchHotelName && searchHotel) {

  if (searchContentName && searchContent && searchHotelName && searchHotel) {
/*    searchFlightsName.onmousedown = function () {
      if (searchContent.className != 'hidden' || searchHotel.className != 'hidden') {
        searchContent.className = 'hidden';
        searchHotel.className = 'hidden';
        searchFlight.className = '';
        searchContentName.className = searchContentName.className.replace (' searchengine_selected', '');
        searchHotelName.className = searchHotelName.className.replace (' searchengine_selected', '');
        searchFlightsName.className += ' searchengine_selected';
      }
      return false;
    };*/
    searchHotelName.onmousedown = function () {
//      if (searchContent.className != 'hidden' || searchFlight.className != 'hidden') {usunieta wyszukiwarka lotow
      if (searchContent.className != 'hidden') {
        searchContent.className = 'hidden';
//        searchFlight.className = 'hidden';
        searchHotel.className = '';
        searchContentName.className = searchContentName.className.replace (' searchengine_selected', '');
//        searchFlightsName.className = searchFlightsName.className.replace (' searchengine_selected', '');
        searchHotelName.className += ' searchengine_selected';
      }
      return false;
    };
    searchContentName.onmousedown = function () {
//      if (searchFlight.className != 'hidden' || searchHotel.className != 'hidden' ) {
      if (searchHotel.className != 'hidden' ) {
//        searchFlight.className = 'hidden';
        searchHotel.className = 'hidden';
        searchContent.className = '';
//        searchFlightsName.className = searchFlightsName.className.replace (' searchengine_selected', '');
        searchHotelName.className = searchHotelName.className.replace (' searchengine_selected', '');
        searchContentName.className += ' searchengine_selected';
        try {
          $('searchWords').focus ();
        } catch (e) {}
      }
      return false;
    };
  }

  var scheduleDepartures = $('scheduleDepartures');
  var scheduleArrivals = $('scheduleArrivals');
  var table_departures = $('table_departures');
  var table_arrivals = $('table_arrivals');
  if (scheduleDepartures && scheduleArrivals && table_departures && table_arrivals) {
     scheduleDepartures.onmousedown = function () {
       if (table_arrivals.className != 'hidden') {
         table_arrivals.className = 'hidden';
         table_departures.className = '';
         scheduleArrivals.className = scheduleArrivals.className.replace (' scheduleNameSelected', '');
         scheduleDepartures.className += ' scheduleNameSelected';
         scrollO.el.scrollTop = 0;
         contUp.css.visibility = 'hidden';
         contDown.css.visibility = 'visible';
         tablicaLotowInit(table_departures);
       }
       return false;
     };
     scheduleArrivals.onmousedown = function () {
       if (table_departures.className != 'hidden') {
         table_departures.className = 'hidden';
         table_arrivals.className = '';
         scheduleDepartures.className = scheduleDepartures.className.replace (' scheduleNameSelected', '');
         scheduleArrivals.className += ' scheduleNameSelected';
         scrollO.el.scrollTop = 0;
         contUp.css.visibility = 'hidden';
         contDown.css.visibility = 'visible';
         tablicaLotowInit(table_arrivals);
       }
       return false;
     };
  }
  initFeedback ();
  scrollInit ();
}

/* scheduleScrolling */
var speed;
var scrollTim;
var amount = 20;
var timeOut = 50;

function makeObj (id) {
  var obj = $(id);
  if (obj) {
    this.el = obj;
    this.height = obj.offsetHeight;
    this.css = obj.style;
    return this;
  }
}

function scrollInit () {
  scrollO = new makeObj ('scheduleControl');
  contUp = new makeObj ('scheduleListUp');
  contDown = new makeObj ('scheduleListDown');
  contDown.el.onmousedown = ScrollDown;
  contDown.el.onmouseup = noScroll;
  contUp.el.onmousedown = ScrollUp;
  contUp.el.onmouseup = noScroll;
  contUp.css.visibility = 'hidden';
  tablicaLotowInit($('table_departures'));
}

function tablicaLotowInit(tablica) {
  if(tablica)
    tablica_lotow = new Object(tablica);
}

function ScrollDown () {
  if (scrollTim)
    clearTimeout(scrollTim);
  contDown.css.backgroundImage = 'url(/images/css/scheduleListDown_on.png)';
  scrollO.el.scrollTop += amount;
  scrollTim = setTimeout (ScrollDown, timeOut);
  return false;
}

function ScrollUp () {
  if (scrollTim)
    clearTimeout (scrollTim);
  contUp.css.backgroundImage = 'url(/images/css/scheduleListUp_on.png)';
  scrollO.el.scrollTop -= amount;
  scrollTim = setTimeout (ScrollUp, timeOut);
  return false;
}

function noScroll () {
  clearTimeout(scrollTim);
  contUp.css.backgroundImage = 'url(/images/css/scheduleListUp.png)';
  contDown.css.backgroundImage = 'url(/images/css/scheduleListDown.png)';
//  var tablica_lotow = ($('table_arrivals').className != 'hidden') ? $('table_arrivals') : $('table_departures');
  var scr = scrollO.el.scrollTop + scrollO.el.offsetHeight;
  if(scrollO.el.scrollTop <= 0) {
    contUp.css.visibility = 'hidden';
    contDown.css.visibility = 'visible';
  }
  else {
    contUp.css.visibility = 'visible';
  }
  if(scr >= tablica_lotow.offsetHeight) {
    contDown.css.visibility = 'hidden';
    contUp.css.visibility = 'visible';
  }
  else {
    contDown.css.visibility = 'visible';
  }
  return false;
}

function $(x) {
  return document.getElementById (x);
}

function getMsg (msg) {
  if (typeof MSG != 'undefined') {
    if (typeof MSG[msg] != 'undefined')
      return MSG[msg];
  }
  return msg;
}

function saveCookie (name, value, days) {
  var expires = '';
  if (days) {
    var date = new Date ();
    date.setTime (date.getTime () + (days * 86400000));
    var expires = '; expires=' + date.toGMTString ();
  }
  document.cookie = name +'='+ value + expires + '; path=/';
}

function readCookie (name) {
  var nameEq = name + '=';
  var ca = document.cookie.split (';');
  for (var i = 0; i < ca.length; i++) {
    var c = ca[i];
    while (c.charAt (0) == ' ')
      c = c.substring (1, c.length);
    if (c.indexOf (nameEq) == 0)
      return c.substring (nameEq.length, c.length);
  }
  return null;
}

function addEvent (obj, fnc, type) {
  if (!fnc.$$guid) fnc.$$guid = addEvent.guid++;
  if (!obj.events) obj.events = {};
  var hds = obj.events[type];
  if (!hds) {
    hds = obj.events[type] = {};
    if (obj['on' + type])
      hds[0] = obj['on' + type];
  }
  hds[fnc.$$guid] = fnc;
  obj['on' + type] = heEvent;
}
addEvent.guid = 1;

function heEvent (event) {
  event = event || window.event;
  var hds = this.events[event.type];
  for (var i in hds) {
    this.$$heEvent = hds[i];
    this.$$heEvent(event);
  }
}

addEvent (window, init, 'load');

function debugOutput (msg) {
  var d = $('debugOutput');
  if (d) {
    d.innerHTML += msg + '<br />';
  }
}
