
  $(document).ready(function() {
    if ($('#searchNav a').length != 0) {
      searchNavInit();
    }
    
    //FAQ Tabs
     $(function () {
       var tabContainers = $('div.tabs-faq > div');
       tabContainers.hide().filter(':first').show();
       $('div.tabs-faq ul.faq-tab-menu a').click(function () {
         tabContainers.hide();
         tabContainers.filter(this.hash).fadeIn(1000);
         $('div.tabs-faq ul.faq-tab-menu a').removeClass('selected');
         $('div.tabs-faq ul.faq-tab-menu a').css('background-color','#A0928A');
         $(this).addClass('selected active');
         $(this).css('background-color','#A6192F');
         return false;
       }).filter(':first').click();
     });
    
    
    //TUG - wenn Kaltmiete == 0, dann "Mietpreis nach Vereinbarung" anzeigen    
    $('div.objectInfo div.label1').each(function (i) {
        if($(this).html().charAt(4) == '0') {
          $(this).text('Mietpreis nach Vereinbarung');
      $(this).next('.label2').hide();
      $data = $('div.contentMain div:first-child').next().find('p');
      var temp = new Array();
      temp = $data.text().split('\n');
      // console.log(temp);
      $data.empty().append('nach Vereinbarung<br>nach Vereinbarung<br>-<br>'+temp[4]+'<br>'+temp[5]+'<br>'+temp[6]);
        }
    
    //TUG - Grundriss animation
    $grundriss = $('img#grundrissImage');    
    $('div.objectInfo div.label1.grundriss').mouseover(function(){
      $grundriss.fadeIn(200);
    });
    $('div.objectInfo div.label1.grundriss').mouseout(function(){
      $grundriss.fadeOut(50);
    });
    
    //...
    
      });
    
    //--------- TUG - fewo
    
    var fewoSettings = {
      months_count : 11,
      show_last_month : false,
      months_names : new Array('Jan', 'Feb', 'Mrz', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez')
    }
    
    // show/hide
    $('a.btn-show-bookings').click(function(){
      $(this).parents('div.content-fewo').find('div.fewo-bookings').slideToggle(200);
    });
    $('a.btn-show-bookingform').click(function(){
      $(this).parents('div.content-fewo').find('div.fewo-form').slideToggle(500);
      var title = $(this).parents('div.content-fewo').find('div.fewo-title').html();
      $(this).parents('div.content-fewo').find('div.fewo-form input#fewo').val(title).attr('disabled','disabled');;
    });
    $('a.btn-show-gallery').click(function(){
      $(this).parents('div.content-fewo').find('div.fewo-gallery').slideToggle(200);
    });
    
    // validation hook
    $('form#bookingForm').submit(function(){
      return validate(this);
    });
    
    // define relations between calender categories and fewos (the order is important for the relation)
    var cals = new Array('F1','F2','F3','F4');    // must be the same name as used for calender category
    var titles = new Array('Ferienwohnung 1','Ferienwohnung 2','Ferienwohnung 3','Ferienwohnung 4');      // must be the same name as used for "FeWo Name" in the fewo content element
    
    // booking data
      // create array structure for booking data
      var bookings = new Array();
      for(var i=0;i<=cals.length;i++) {
        bookings[i+1] = new Array();
      }

      // read booking data
      $('.tx-tug-guesthouse p').each(function(){
        var booking = $(this).html().split(';');
        for(var i=0;i<=cals.length;i++) {
          if(booking[0] == cals[i])
          bookings[i+1].push(booking);
        }
      });
    
    // prepare HTML markup for the booking calender
      // current date
      var now = new Date();
      var month = now.getMonth();
      var year = now.getYear();
      
      // create array structure for the months to show
        var months = new Array();
        
        // show last month?
        if(fewoSettings.show_last_month) {
          var month_before = (month == 0) ? 11 : month -1;
          var year_before = (month == 0) ? year -1 : year;
          months.push(new Array(month_before+1,year_before+1900,daysInMonth(month_before, year_before)));
        }
        
        // show current month
        months.push(new Array(month+1,year+1900,daysInMonth(month, year)));
        
        // show next months, as many as defined in months_count
        var month_last = month;
        var year_last = year;
        for(var i=1;i<fewoSettings.months_count;i++) {
          var month_next = (month_last == 11) ? 0 : month_last +1;
          var year_next = (month_last == 11) ? year_last +1 : year_last;
          months.push(new Array(month_next+1,year_next+1900,daysInMonth(month_next, year_next)));
          month_last = month_next;
          year_last = year_next;
        }
      
      // create the HTML
      $('.fewo-bookings').each(function(){    
        $fewo = $(this);
        
        $labels = $('<div class="month-row"><span class="month-row-title">&nbsp;</span></div>');
        for(var i=1;i<=31;i++){
          $labels.append('<span class="month-row-label">'+i+'</span>')
        };
        $fewo.append($labels);
        $.each(months, function(){
        
          $month = $('<div class="month-row" name="'+this[0]+'-'+this[1]+'"><span class="month-row-title">'+fewoSettings.months_names[this[0]-1]+' '+String(this[1]).substr(2,2)+'</span></div>');
        
        for(var i=0;i<this[2];i++){
            var d = (i<9) ? '0'+(i+1) : i+1;
            var m = (this[0]<10) ? '0'+(this[0]) : this[0];
            $month.append('<span class="month-row-day" title="frei" alt="frei" name="'+d+'-'+m+'-'+this[1]+'"></span>');
          };
          $month.append('<div class="clearLeft"></div>');
          $fewo.append($month);
        });
      });
    
    // render booking data into the calender
    $('.fewo-title').each(function(){
      $fewo = $(this).parent();
      for(var i=0;i<titles.length;i++) {
        if($(this).html() == titles[i]) {
          var dates = new Array();
          for(var k=0;k<bookings[i+1].length;k++) {
            var start = bookings[i+1][k][1];
            var end = bookings[i+1][k][2];
            dates.push(new Array(start.substr(6, 2),start.substr(4, 2),start.substr(0, 4),end.substr(6, 2),end.substr(4, 2),end.substr(0, 4)));
          }
          // console.log(dates);
          
          // mark occupied days
          $.each(dates, function(){
            var begin = this[0]+'-'+this[1]+'-'+this[2];
            var stop = this[3]+'-'+this[4]+'-'+this[5];
            
            var paint = false;
            $fewo.nextAll('.fewo-bookings').find('span').each(function(){
              if($(this).hasClass('month-row-title')) return true;
              if($(this).attr('name') == begin) {
                paint = true;
              } else
              if($(this).attr('name') == stop) {
                $(this).addClass('belegt').attr('alt','belegt').attr('title','belegt');
                paint = false;
                return false;
              }
              if(paint) {
                $(this).addClass('belegt').attr('alt','belegt').attr('title','belegt');
              }
            });
          });
        }
      }
    });
  });

  /*
  * TUG - get number of days in a specified month
  */
  function daysInMonth(iMonth, iYear)
  {
    return 32 - new Date(iYear, iMonth, 32).getDate();
  }
  
  /*
  * TUG - validation for fewo booking form
  */
  function validate(form) {
    var valid = true;
    $form = $(form);
    $persons = $form.find('input#persons');
    $begin = $form.find('input#begin');
    $end = $form.find('input#end');
    $lastname = $form.find('input#lastname');
    $firstname = $form.find('input#firstname');
    $city = $form.find('input#city');
    $mail = $form.find('input#mail');
    var fields = new Array($persons,$begin,$end,$lastname,$firstname,$city,$mail);
    $.each(fields, function(){
      $(this).removeClass('error');
      // allgemein
      if($(this).val() == '') {
        $(this).addClass('error');
        valid = false;
      }
      // speziell
      if($(this).attr('id') == 'persons') {
        if($(this).val() < 1) {
          $(this).addClass('error');
          valid = false;
        }
      }
    });
    return valid;
  }
  
  searchNavInit = function() {    
    element = $('#searchNav a:first');
    
    var className = element.attr('class');
    var classNameNew = className.replace('On', '') + 'On';
    
    element.attr('class', classNameNew);
    $('#category').attr('value', encodeURI(element.attr('title')));        
  }
  
  searchNav = function(current) {
    $('#searchNav a').each(function() {
      
      var className = $(this).attr('class');
      var classNameNew = className.replace('On', '');
            
      $(this).attr('class', classNameNew);          
    });
    
    var className = $('#' + current).attr('class');
    var classNameNew = className.replace('On', '') + 'On';
    $('#' + current).attr('class', classNameNew);
    
    $('#category').attr('value', encodeURI($('#' + current).attr('title')));
  }
