/**
 * JS-Funktionen fuer rottenburg.de
 *
 * seitenblick interaktive medien gmbh
 * Koenigstrasse 16, 70173 Stuttgart
 * fon: 0711/8599818-0
 * fax: 0711/8599818-40
 * e-Mail : info@seitenblick.de
 *
 * Version: 1.0
 */

/******************************************************************************/
/*--- In Suchfeldern das Wort "Suchbegriff" ein-/ausblenden ------------------*/
/******************************************************************************/
$(document).ready(function(){
  /* einblenden */
  $(".searchfield").attr("value","Suchbegriff");
  $(".events_searchfield").attr("value","Suchbegriff");
  /* ausblenden bei Klick ins Feld */
  $(".searchfield").click(function () {
    if ($(".searchfield").attr("value")=="Suchbegriff") {
      $(".searchfield").attr("value","");
    }
  });
  $(".events_searchfield").click(function () {
    if ($(".events_searchfield").attr("value")=="Suchbegriff") {
      $(".events_searchfield").attr("value","");
    }
  });

});

/******************************************************************************/
/*--- Kalender (datepicker) --------------------------------------------------*/
/******************************************************************************/

/* Beschraenkung der Datumsauswahl */
var now = new Date();
var now_year = now.getFullYear();
var now_year = parseInt(now_year);
var until_year = now_year + 3;

/* Sprachanpassungen */
$.dpText = {
  TEXT_PREV_YEAR    : 'Vorheriges Jahr',
  TEXT_PREV_MONTH   : 'Vorheriger Monat',
  TEXT_NEXT_YEAR    : 'Nächstes Jahr',
  TEXT_NEXT_MONTH   : 'Nächster Monat',
  TEXT_CLOSE        : 'Schließen',
  TEXT_CHOOSE_DATE  : 'Datum wählen'
}

/*--- Inline-Kalender in rechter Spalte --------------------------------------*/
$(function()
{
  $('.rc_events_calendar')
    .datePicker({inline:true})
    .bind(
      'dateSelected',
      function(e, selectedDate, $td)
      {
        console.log('You selected ' + selectedDate);
      }
    ).bind(
    // DatePicker zeigen wenn Kalender-Icon angeklickt wird
    'click',
    function(){
      updateSelects($(this).dpGetSelected()[0]);
      $('#events').submit();
      //$(this).dpDisplay();
      return false;
    }
  ); 
  $('.from_datepicker').dpSetPosition($.dpConst.POS_TOP, $.dpConst.POS_RIGHT);  

    
  var updateSelects = function (selectedDate, pointer){
    var selectedDate = new Date(selectedDate);
    $('#from_day option[value=' + selectedDate.getDate() + ']').attr('selected', 'selected');
    $('#from_month option[value=' + (selectedDate.getMonth()+1) + ']').attr('selected', 'selected');
    $('#from_year option[value=' + (selectedDate.getFullYear()) + ']').attr('selected', 'selected');
    $('#until_day option[value=' + selectedDate.getDate() + ']').attr('selected', 'selected');
    $('#until_month option[value=' + (selectedDate.getMonth()+1) + ']').attr('selected', 'selected');
    $('#until_year option[value=' + (selectedDate.getFullYear()) + ']').attr('selected', 'selected');
  }
  
  // Falls die SELECT-Felder geaendert werden den DatePicker aktualisieren
  $(function(){
    var pointer = $(this).attr("id");
    $('#from_day, #from_month, #from_year').bind('change',function( pointer){
      var d = new Date(
        $('#from_year').val(),
        $('#from_month').val()-1,
        $('#from_day').val()
        );
      $('.from_datepicker').dpSetSelected(d.asString());
      }
    );
  });
     
   
}); 

/*--- Popup-Kalender FROM_DATE aktualisiert Select-Boxen ---------------------*/
$(function(){ 
  $('.from_datepicker').datePicker({
    createButton:false,
    endDate:'31/12/'+until_year
    }
  ).bind(
    // DatePicker zeigen wenn Kalender-Icon angeklickt wird
    'click',
    function(){
      updateSelects($(this).dpGetSelected()[0]);
      $(this).dpDisplay();
      return false;
    }
  ).bind(
    // Wenn ein Datum ausgewaehlt ist die SELECT-Felder aktualisieren
    'dateSelected',
    function(e, selectedDate, $td, state){
      updateSelects(selectedDate);
    }   
  ).bind(
    'dpClosed',
    function(e, selected){
      updateSelects(selected[0]);
    }
  ).bind(
    //  Startdatum des "until-DatePickers" setzen 
    'dpClosed',
    function(e, selectedDates){
      var d = selectedDates[0];
      var m = selectedDates[1];
      var y = selectedDates[2];
      if (d) {
        d = new Date(d);
        $('.until_datepicker').dpSetStartDate(d.addDays(0).asString());
      }
      if (y) {
        m = new Date(m);
        $('.until_datepicker').dpSetStartDate(d.addMonths(0).asString());
      }
      if (y) {
        y = new Date(y);
        $('.until_datepicker').dpSetStartDate(d.addYears(0).asString());
      }
    }
  ); 
  $('.from_datepicker').dpSetPosition($.dpConst.POS_TOP, $.dpConst.POS_RIGHT);  

    
  var updateSelects = function (selectedDate, pointer){
    var selectedDate = new Date(selectedDate);
    $('#from_day option[value=' + selectedDate.getDate() + ']').attr('selected', 'selected');
    $('#from_month option[value=' + (selectedDate.getMonth()+1) + ']').attr('selected', 'selected');
    $('#from_year option[value=' + (selectedDate.getFullYear()) + ']').attr('selected', 'selected');
    $('#until_day option[value=' + selectedDate.getDate() + ']').attr('selected', 'selected');
    $('#until_month option[value=' + (selectedDate.getMonth()+1) + ']').attr('selected', 'selected');
    $('#until_year option[value=' + (selectedDate.getFullYear()) + ']').attr('selected', 'selected');
  }
  
  // Falls die SELECT-Felder geaendert werden den DatePicker aktualisieren
  $(function(){
    var pointer = $(this).attr("id");
    $('#from_day, #from_month, #from_year').bind('change',function( pointer){
      var d = new Date(
        $('#from_year').val(),
        $('#from_month').val()-1,
        $('#from_day').val()
        );
      $('.from_datepicker').dpSetSelected(d.asString());
      }
    );
  });
  
	// Standartwert: Aktuelles Datum
	// var today = new Date();
	// updateSelects(today.getTime());
	// updateSelects();
	// $('#from_day').trigger('change');        
    
});

/*--- Popup-Kalender UNTIL_DATE aktualisiert Select-Boxen --------------------*/
$(function(){      
  $('.until_datepicker').datePicker({
    createButton:false,
    endDate:'31/12/'+until_year
    }
  ).bind(
    // DatePicker zeigen wenn Kalender-Icon angeklickt wird
    'click',
    function(){
      updateSelects($(this).dpGetSelected()[0]);
      $(this).dpDisplay();
      return false;
    }
  ).bind(
    // Wenn ein Datum ausgewaehlt ist die SELECT-Felder aktualisieren
    'dateSelected',
    function(e, selectedDate, $td, state){
    updateSelects(selectedDate);
    }
  ).bind(
    'dpClosed',
    function(e, selected){
      updateSelects(selected[0]);
    }
  );
  $('.until_datepicker').dpSetPosition($.dpConst.POS_TOP, $.dpConst.POS_RIGHT);
    
  var updateSelects = function (selectedDate, pointer){
    var selectedDate = new Date(selectedDate);
    $('#until_day option[value=' + selectedDate.getDate() + ']').attr('selected', 'selected');
    $('#until_month option[value=' + (selectedDate.getMonth()+1) + ']').attr('selected', 'selected');
    $('#until_year option[value=' + (selectedDate.getFullYear()) + ']').attr('selected', 'selected');
  }
  
  // Falls die SELECT-Felder geaendert werden den DatePicker aktualisieren
  $(function(){
    var pointer = $(this).attr("id");
    $('#until_day, #until_month, #until_year').bind('change',function( pointer){
      var d = new Date(
        $('#until_year').val(),
        $('#until_month').val()-1,
        $('#until_day').val()
      );
      $('.until_datepicker').dpSetSelected(d.asString());
    });
  });   
});


/******************************************************************************/
/*--- jquery Fancybox --------------------------------------------------------*/
/******************************************************************************/
$(function() {
  $('a.lightbox').fancybox();
})

/******************************************************************************/
/*--- Listen zum ein-/ausklappen ---------------------------------------------*/
/******************************************************************************/
$(document).ready(function(){

  // Nach dem Laden der Seite werden die Unterpunkte per JS ausgeblendet
  $(".accordion_list li ul").css('display', 'none');
  $(".accordion_list li ul ul").css('display', 'block');
  // der vorhandene Link zu den Hauptrubriken bekommt eine andere Klasse ohne Bulletpoint
  $(".accordion_list li.ac_li_level1 a").addClass("ac_level1");
  // Der Ausklappen-Link (+) wird bei den Hauptrubriken ergänzt
  $(".accordion_list li.ac_li_level1").prepend('<a class="accordion_passive" href="javascript:;" title="Unterpunkte einblenden"><span class="inv">Ausklappen</span></a>');

  // Bei Klick auf den Link in der ersten Ebene: Unterliste ein-/ausblenden
  $(".accordion_list li a.accordion_passive").click(function () {
    $(this).next().next().slideToggle();
    // und ggf. Plus-Minus-Symbol aendern, also die Klasse ergaenzen/entfernen
    if($(this).next().next().html()!=null){
      if($(this).attr("class")=="accordion_passive") {
        $(this).removeClass("accordion_passive");
        $(this).addClass("accordion_active");
        // Beschriftung ändern
        $(this).attr("title", "Unterpunkte ausblenden");
        $(this).html('<span class="inv">Einklappen</span>');
      }
      else {
        $(this).removeClass("accordion_active");
        $(this).addClass("accordion_passive");
        $(this).attr("title", "Unterpunkte einblenden");
        $(this).html('<span class="inv">Ausklappen</span>');
      }
    }
  });
});


/******************************************************************************/
/*--- Animierte Bilderleiste Seitenkopf (Startseite) -------------------------*/
/******************************************************************************/ 
$(document).ready(function(){

  // Die Funktion soll nur auf der Startseite ausgeführt werden
  if($("#imageslider").html()!=null){

    // Play/Pause Button hinzufuegen
    $("#imageslider").append('<div class="is_play"><a id="play" href="javascript:;" title="Bildwechsel abspielen"><span class="inv">Bildwechsel abspielen</span></a></div>');
    $("#imageslider").append('<div class="is_breake"><a id="breake" href="javascript:;" title="Bildwechsel anhalten"><span class="inv">Bildwechsel anhalten</span></a></div>');
    // Der Zurueck-Button ist zunaechst ausgeblendet
    $(".is_back").hide();

    // Animation starten
    IntervalId = setInterval( "animate_imageslider()", 4000 );

    // Beim Klick auf Stop wird animation pausiert
    $("#breake").click(function(){
       var is_clicked = 1;
       clearInterval( IntervalId );
       $("#breake").hide();
       $("#play").show();
     })

     // Beim Klick auf Play wird animation fortgesetzt
    $("#play").click(function(){
      IntervalId = setInterval( "animate_imageslider()", 4000 );
       var is_clicked = 0;
      $("#play").hide();
      $("#breake").show();
    })
  }
});

// Automatische Ueberblendung
// Funktion zum Overlay einblenden
function animate_imageslider() {
  // Das weiße Overlay einblenden (das Overlay ist erforderlich, da der IE den
  // Bilderwrapper selbst nicht richtig ein-/eusblendet, wenn dieser viele Bilder
  // enthaelt und entsprecht sehr breit ist)
  // Nach dem Ausblenden wird die Funktion zum Verschieben aufgerufen
  window.setTimeout("imageslider_fade()", 505);
}

function imageslider_fade() {

    var active_visual = $('#is_wrapper_inner .active');
    var pos = active_visual.attr('id'); 
    var count = $('#is_wrapper_inner').children();
    var amount = $('#is_wrapper_inner').children().size();
    pos = pos.slice(7, 10);
    
    active_visual.fadeOut(2000);
    active_visual.removeClass('active');
    
    
    
    if ((pos-100) < amount) { pos++; }
    else { pos = 101; }
    
    $('#visual_'+pos).fadeIn(2000);
    $('#visual_'+pos).addClass('active');  
  }

// Funktion zum Zaehlen der Kindelemente
function countChildElements(parent, child) {
  var parent = document.getElementById(parent);
  var childCount = parent.getElementsByTagName(child).length;
  return childCount;
}

// Tooltips (Bauen) anzeigen beim Überfahren der Parzellen der Image-Map
$(document).ready(function() {
    //Tooltips
    $(".tip_trigger").hover(function(){
        //tip = $(this).next();
        var tip_id = $(this).attr("id");        
        tip = $("#tip_"+tip_id);
        tip.show(); //Show tooltip
    }, function() {
        tip.hide(); //Hide tooltip          
    }).mousemove(function(e) {
        var mousex = e.pageX + 20; //Get X coodrinates
        var mousey = e.pageY + 20; //Get Y coordinates
        var tipWidth = tip.width(); //Find width of tooltip
        var tipHeight = tip.height(); //Find height of tooltip
        
        //Distance of element from the right edge of viewport
        var tipVisX = $(window).width() - (mousex + tipWidth);
        //Distance of element from the bottom of viewport
        var tipVisY = $(window).height() - (mousey + tipHeight);
          
        if ( tipVisX < 20 ) { //If tooltip exceeds the X coordinate of viewport
            mousex = e.pageX - tipWidth - 20;
        } if ( tipVisY < 20 ) { //If tooltip exceeds the Y coordinate of viewport
            mousey = e.pageY - tipHeight - 20;
        } 
        tip.css({  top: mousey, left: mousex });
    });
});

//Popupfenster Bereich Bauen
function popup (url) {
 fenster = window.open(url, "Popupfenster", "width=655,height=900,resizable=yes,scrollbars=yes");
 fenster.focus();
 return false;
}


/**
 * Name         : recommend_article
 * Beschreibung : Blendet den Block fuer das Empfehlen eines Artikels ein
 * Parameter    : -
 * Bibliothek   : jQuery
 */
function recommend_article ( ) {
  $("#box_recommend").toggle();
}


/**
 * Name         : add_exeption_date
 * Beschreibung : Fügt ein neues Feld für einen Ausnahmetermin hinzu
 * Parameter    : ID des umgebenden Elements, in welches das Feld eingefügt werden soll
 * Bibliothek   : jQuery
 */
$(document).ready(function() {

var act_exception = $('#exceptions input[type="text"]').length;
var max_exceptions = 5;  

  $("#add_exception").click(function() {
    if( act_exception != max_exceptions ) {
      act_exception++;
      $("#exceptions").append('<label for="exception_' + act_exception + '">Ausnahmetermin:</label><input type="text" id="exception_' + act_exception + '" class="date" name="input[exception_' + act_exception + ']" onclick=this.value="" value="tt.mm.jjjj" /><br class="c" />');
    }
    if( act_exception == max_exceptions ) {
      $(this).fadeOut(500);
    }
  	return false;
  });
  
});

