/* common func */
function tur_aEv(obj, type, fn) { try { if (obj.addEventListener) { obj.addEventListener(type, fn, false); } else if (obj.attachEvent) { obj["e"+type+fn] = fn; obj[type+fn] = function() { obj["e"+type+fn](window.event); }; obj.attachEvent("on"+type, obj[type+fn]); }} catch (e) {}}
function tur_gOb(n) { return document.getElementById(n); }
function tur_gBTC(obj, tag, clName) { var objs = obj.getElementsByTagName(tag); var robj = new Array(); var j = 0; for (var i = 0; i < objs.length; i++) { if (tur_hCl(objs[i], clName)) robj[j++] = objs[i]; }; return robj; }
function tur_trm(x){return x.replace(/^\s+|\s+$/g,'');}
function tur_hCl(obj, clName) { var clN = ' ' + obj.className + ' '; return (clN.match(' ' + clName + ' ') != null); }
function tur_aCl(obj, clName) { if (!tur_hCl(obj, clName)) obj.className = tur_trm(obj.className + ' ' + clName); }
function tur_rCl(obj, clName) { if (!tur_hCl(obj, clName)) return; var clN = ' ' + obj.className + ' '; eval("obj.className = tur_trm(clN.replace(/ " + clName + " /g,''));"); }

function tur_checkNoOfDays(month,year){
 switch(month){
  case '2':
   if(year%4 == 0) { return 29; } else { return 28; } 
   break;
  case '4':
  case '6':
  case '9':
  case '11':
   return 30;
   break;
  default:
   return 31;
   break;
 }
}


/* turystyka ecommerce small */
var g_turystyka_ecommerce_small = {
  rootObj: new Object(),
  selectedTab: new Object(),
  selectedForm: new Object(),
  params: new Object(),
  
  init: function(){
   var me = this;
   me.rootObj = tur_gBTC(document, 'div', 'turystyka-ecomm-small')[0];
   
   if(me.rootObj){
    var tabs = tur_gBTC(me.rootObj, 'ul', 'tabs')[0];
    me.selectedTab = tur_gBTC(tabs, 'li', 'active')[0];
    var forms = tur_gBTC(me.rootObj, 'ul', 'forms')[0];
    me.selectedForm = tur_gBTC(forms, 'li', 'active')[0];
    
    //check for hash select
    var hash = document.location.hash;
    if(hash){
     hash = hash.replace(/#/, "");
     var _li = tur_gOb(hash)
     if(_li){  
      me.switchTab(_li.getElementsByTagName('a')[0]);
     }
    }
    
    me.getParams();
    //replace action paths
    var _forms = me.rootObj.getElementsByTagName('form');
    if(_forms.length > 0){
     for(var i=0; i < _forms.length; i++){
      var _atmp = me.params.searchPath + _forms[i].getAttribute('action');
      _forms[i].action = _atmp;
     }
    }
        
    //init forms
    me.initWycieczki();
    me.initBilety();
    
    //init dates
    me.initDate(tur_gOb('wycieczki-data-wyjazdu'));
	me.initDate(tur_gOb('wycieczki-data-powrotu'));
	me.initDate(tur_gOb('bilety-lotnicze-data-wylotu'));
	me.initDate(tur_gOb('bilety-lotnicze-data-powrotu'));
	me.initDate(tur_gOb('hotele-zagranica-data-zameldowania'));
	me.initDate(tur_gOb('hotele-zagranica-data-wymeldowania'));
    
    //init tabs
    var tab_links = tabs.getElementsByTagName('a');
    for(var i=0; i<tab_links.length; i++){
     tab_links[i].index = 1;
     tur_aEv(tab_links[i], 'click', me.tabClicked);
    } 
   }
  },
  switchTab: function(tab){
   var me = this;
   var newTab = tab.parentNode; 
   var forms = tur_gBTC(me.rootObj, 'ul', 'forms')[0];
   var tabName = newTab.getAttribute('id');
   var newForm = tur_gBTC(forms, 'li', tabName)[0];
   
   if(tur_hCl(newTab, 'active')) return;
   
   tur_rCl(me.selectedTab, 'active');
   tur_rCl(me.selectedForm, 'active');
   
   me.selectedTab = newTab;
   me.selectedForm = newForm;
   
   tur_aCl(me.selectedTab, 'active');
   tur_aCl(me.selectedForm, 'active');   
  },
  tabClicked: function(e){
   var el; if (window.event && window.event.srcElement) { el = window.event.srcElement; }; if (e && e.target) { el = e.target; }; if (!el) { return; }; (e.preventDefault) ? e.preventDefault() : (e.returnValue = false);
   while(el.index < 1 || !el.index) { el = el.parentNode; }
   if(el) g_turystyka_ecommerce_small.switchTab(el);
  },
  initWycieczki: function(){
   var me = this;
   var s = tur_gOb('wycieczki-dojazd');
   var f = tur_gOb('wycieczki-form');
   var wylot = tur_gBTC(f, 'div', 'row')[4];
   switch(s.options[s.selectedIndex].text){
    case 'samolot':
     wylot.style.display = 'block';
     break;
    default:
     wylot.style.display = 'none';
     break;
   }
   s.index = 1;
   tur_aEv(s, 'change', me.changeWycieczki);
  },
  changeWycieczki: function(e){
   var el; if (window.event && window.event.srcElement) { el = window.event.srcElement; }; if (e && e.target) { el = e.target; }; if (!el) { return; }; (e.preventDefault) ? e.preventDefault() : (e.returnValue = false);
   while(el.index < 1 || !el.index) { el = el.parentNode; }
   if(el){
    var f = tur_gOb('wycieczki-form');
    var wylot = tur_gBTC(f, 'div', 'row')[4];
    switch(el.options[el.selectedIndex].text){
     case 'samolot':
      wylot.style.display = 'block';
      break;
     default:
      wylot.style.display = 'none';
      break;
    }
   }
  },
  initBilety: function(){
   var me = this;
   var w1 = tur_gOb('bilety-lotnicze-jedna-strona');
   var w2 = tur_gOb('bilety-lotnicze-obie-strony');
   var data_powrot = tur_gOb('bilety-lotnicze-dzien-powrotu').parentNode;
   
   if(w1.checked) data_powrot.style.display = 'none';
   if(w2.checked) data_powrot.style.display = 'block';
   
   w1.index = 1;
   w2.index = 1;
   
   tur_aEv(w1, 'click', me.oneWay);
   tur_aEv(w2, 'click', me.twoWays);
   
  },
  oneWay: function(e){
   var el; if (window.event && window.event.srcElement) { el = window.event.srcElement; }; if (e && e.target) { el = e.target; }; if (!el) { return; }; 
   while(el.index < 1 || !el.index) { el = el.parentNode; }
   if(el){
    var data_powrot = tur_gOb('bilety-lotnicze-dzien-powrotu').parentNode;
    data_powrot.style.display = 'none';
   }
  },
  twoWays: function(e){
   var el; if (window.event && window.event.srcElement) { el = window.event.srcElement; }; if (e && e.target) { el = e.target; }; if (!el) { return; }; 
   while(el.index < 1 || !el.index) { el = el.parentNode; }
   if(el){
    var data_powrot = tur_gOb('bilety-lotnicze-dzien-powrotu').parentNode;
    data_powrot.style.display = 'block';
   }
  },
  initDate: function(obj){
   var me = this;
   var now = new Date();
   var currentYear = now.getFullYear();
   var currentMonth = now.getMonth();
   var currentDay = now.getDate();
   var monthSelect = obj.previousSibling.previousSibling;
   var daySelect = monthSelect.previousSibling.previousSibling;

   if(tur_trm(obj.value)){
	 var dateAry = tur_trm(obj.value).split('-');
	 monthSelect.selectedIndex = dateAry[1];
	 daySelect.length = 0;
	 for(var i = 1; i <= tur_checkNoOfDays(dateAry[1],dateAry[2]); i++){
      daySelect.options[daySelect.length] = new Option(i, i);
     }
	 daySelect.selectedIndex = dateAry[0]-1; 
   }else{
    switch(obj.getAttribute('id')){
     case 'wycieczki-data-powrotu':
      var tDate = new Date(currentYear, currentMonth, currentDay);
      var pDate = new Date(tDate.setDate(tDate.getDate() + 21));
      monthSelect.selectedIndex = 1+pDate.getMonth();
	  daySelect.length = 0;
	  for(var i = 1; i <= tur_checkNoOfDays(1+pDate.getMonth(),pDate.getFullYear()); i++){
       daySelect.options[daySelect.length] = new Option(i, i);
      }
	  daySelect.selectedIndex = pDate.getDate()-1;
	  obj.value = pDate.getDate() +'-'+ (1+pDate.getMonth()) +'-'+ pDate.getFullYear(); 
     break;
     default:
      monthSelect.selectedIndex = 1+currentMonth;
	  daySelect.length = 0;
	  for(var i = 1; i <= tur_checkNoOfDays(1+currentMonth,currentYear); i++){
       daySelect.options[daySelect.length] = new Option(i, i);
      }
	  daySelect.selectedIndex = currentDay-1;
	  obj.value = currentDay +'-'+ (1+currentMonth) +'-'+ currentYear;  
     break;
    }
   }
   
   tur_aEv( monthSelect, 'change', changeMonth );
   tur_aEv( daySelect, 'change', changeDay );
   
   function changeMonth(e){
    var el; if (window.event && window.event.srcElement) { el = window.event.srcElement; }; if (e && e.target) { el = e.target; }; if (!el) { return; };
    var _dateObj = el.nextSibling.nextSibling; 
    var _daySel = el.previousSibling.previousSibling;
    var _dateAry = tur_trm(_dateObj.value).split('-');
    var todayDate = new Date(currentYear, currentMonth, currentDay);
    var newDate = new Date( _dateAry[2], parseInt(el.value)-1 , _dateAry[0] );
    switch(_dateObj.getAttribute('id')){
     case 'wycieczki-data-powrotu':
      var powrotDate = todayDate.setDate(todayDate.getDate() + 21);
      if(g_turystyka_ecommerce_small.compareDates(newDate, powrotDate)){ 
       _daySel.length = 0;
       for(var i = 1; i <= tur_checkNoOfDays(parseInt(el.value),_dateAry[2]); i++){
        _daySel.options[_daySel.length] = new Option(i, i);
       }
       _daySel.selectedIndex = _dateAry[0]-1;
       _dateObj.value = _dateAry[0] +'-'+ (parseInt(el.value)) +'-'+ _dateAry[2];
      }else{
       alert('Data powrotu nie może bya wcześniejsza niż trzy tygodnie od dzisiaj');
       el.selectedIndex = _dateAry[1];
       _daySel.selectedIndex = _dateAry[0]-1;
      }
     break;
     default:
      if(g_turystyka_ecommerce_small.compareDates(newDate, todayDate)){ 
       _daySel.length = 0;
       for(var i = 1; i <= tur_checkNoOfDays(parseInt(el.value),_dateAry[2]); i++){
        _daySel.options[_daySel.length] = new Option(i, i);
       }
       _daySel.selectedIndex = _dateAry[0]-1;
       _dateObj.value = _dateAry[0] +'-'+ (parseInt(el.value)) +'-'+ _dateAry[2];
      }else{
       alert('Data nie może bya wcześniejsza niż dzisiaj');
       el.selectedIndex = _dateAry[1];
       _daySel.selectedIndex = _dateAry[0]-1;
      }
     break;
    } 
   }
   
   function changeDay(e){
    var el; if (window.event && window.event.srcElement) { el = window.event.srcElement; }; if (e && e.target) { el = e.target; }; if (!el) { return; };
    var _dateObj = el.nextSibling.nextSibling.nextSibling.nextSibling;
    var _dateAry = tur_trm(_dateObj.value).split('-');
    var todayDate = new Date(currentYear, currentMonth, currentDay);
    var newDate = new Date( _dateAry[2], _dateAry[1]-1 , parseInt(el.value) );
    switch(_dateObj.getAttribute('id')){
     case 'wycieczki-data-powrotu':
      var powrotDate = todayDate.setDate(todayDate.getDate() + 21);
      if(g_turystyka_ecommerce_small.compareDates(newDate, powrotDate)){ 
       _dateObj.value = el.value +'-'+ _dateAry[1] +'-'+ _dateAry[2];
      }else{
       alert('Data powrotu nie może bya wcześniejsza niż trzy tygodnie od dzisiaj');
       el.selectedIndex = _dateAry[0]-1;
      }
     break;
     default:
      if(g_turystyka_ecommerce_small.compareDates(newDate, todayDate)){ 
       _dateObj.value = el.value +'-'+ _dateAry[1] +'-'+ _dateAry[2];
      }else{
       alert('Data nie może bya wcześniejsza niż dzisiaj');
       el.selectedIndex = _dateAry[0]-1;
      }
     break;
    }
   }
   
  },
  compareDates: function(dod,ddo){
   if(dod >= ddo) return true;
   return false;
  },
  getParams: function(){
   var me = this;
   var _paraObj = tur_gBTC(me.rootObj, 'div', 'params')[0];
   if(_paraObj){
    var _paraL = _paraObj.getElementsByTagName('div');
    if(_paraL.length > 0){
     for(var i=0; i<_paraL.length; i++){
      me.params[_paraL[i].className] = _paraL[i].innerHTML; 
     }
    } 
   }
   return;
  }
}

try { g_turystyka_ecommerce_small.init(); } catch (e) {  }

/* function ecommerce_small_init(){
 try { g_turystyka_ecommerce_small.init(); } catch (e) { alert(e); }
}

tur_aEv( window, 'load', ecommerce_small_init );  */

