/**
 * Initialize the jQuery functions
 */ 
jQuery(function($)
{
  initFontsizeWidget();
  initFormAction();
  initDatepicker();
  initConditionalFields();
  externalLinks();
});


/**
 * This function changes the fontsize. 
 */ 
function initFontsizeWidget()
{
  if (! $('#fontsize-widget').length ) return;
  
  /* Layout Fontsize */
  $("#fontsize-widget li a").click(function()
  {
    if ($(this).hasClass("disabled")) return false;
    
    var fontsize = $(this).parent().attr("class");
    switch (fontsize)
    {
      case "fontsize-xl": fontsize=3; break; 
      case "fontsize-large": fontsize=2; break; 
      case "fontsize-default": 
      default: fontsize=1; break; 
    }
    
    $("#fontsize-widget li a.disabled").removeClass("disabled");
    $(this).addClass("disabled");
    
    /* set the new fontsize */
    $("#cssfontsize").attr("href", "/css/fontsize/fontsize" + fontsize + ".css");
    
    var date = new Date();
    date.setTime(date.getTime() + 604800);
    $.cookie('kat_fontsize', fontsize, { path: '/', expires: date });
    
    return false; 
  });
}


/**
 * This function for form "Aktionen". 
 */ 
function initFormAction()
{
  if (! $('form #aktion_schulklasse').length ) return;
  
  /* Aktions-Form */
  $("form #aktion_schulklasse").click(function ()
    {
      if (this.checked)
      {
        $("form div.hideme").show();
      }
      else
      {
        $("form div.hideme").hide();
      }
    }
  );
  
  /* auto hide element if necessary */
  if( !$("form #aktion_schulklasse").attr('checked') )
  {
    $("form div.hideme").hide();
  }
}


/**
 * This function adds a datepicker to the given date input fields 
 */ 
function initDatepicker()
{
  if (! $('#kontakt_geburtsdatum, #aktion_datum_von, #aktion_datum_bis, #menu_datum_von, #menu_datum_bis').length ) return;
  
  $("#kontakt_geburtsdatum").datepicker({
    changeYear: true,
    changeMonth: true,
    dateFormat: 'dd.mm.yy',
    dayNames: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'],
    dayNamesMin: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],
    firstDay: 1,
    monthNames: ['Jänner','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'],
    monthNamesShort: ['Jän','Feb','Mär','Apr','Mai','Jun','Jul','Aug','Sep','Okt','Nov','Dez'],
    nextText: 'vor',
    onClose: updateBirthdate,
    prevText: 'zurück',
    showAnim: '',
    yearRange: '1900:2004'
  });
  
  $("#aktion_datum_von, #aktion_datum_bis, #menu_datum_von, #menu_datum_bis").datepicker({
    changeYear: false,
    changeMonth: false,
    dateFormat: 'dd.mm.yy',
    dayNames: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'],
    dayNamesMin: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],
    firstDay: 1,
    minDate: '05.06.2011',
    maxDate: '12.06.2011',
    monthNames: ['Jänner','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'],
    monthNamesShort: ['Jän','Feb','Mär','Apr','Mai','Jun','Jul','Aug','Sep','Okt','Nov','Dez'],
    nextText: 'vor',
    prevText: 'zurück',
    showAnim: '',
  });
}


/**
 * This function hides and reveals the conditional input fields 
 */ 
function initConditionalFields()
{
  if (! $('#videocontest').length ) return;
  
  /* hide all elements that have the class "inactive", apart from the ones
    where the checkbox is checked */
  $(".changer").each(function()
  {
    if (!$(this).attr("checked"))
    {
      $(this).parent().next(".inactive").addClass("hidden");
      
      /* fix for IE not hiding the content properly */
      $(this).parent().next(".inactive").hide().show();
    }
  });
  
  /* add onlick handlers to the inputfields with class "changer" */
  $(".changer").click(function() {
    /* disable all options with the same name */
    inputName = $(this).attr("name");
    $('input[name="'+inputName+'"]').parent().next(".inactive").addClass("hidden");
    
    /* fix for IE not hiding the content properly */
    $('input[name="'+inputName+'"]').parent().next(".inactive").hide().show();
    
    
    if ($(this).attr("checked"))
    {
      $(this).parent().next(".inactive").removeClass("hidden");
    }
  });
  
  $("#kontakt_geburtsdatum").blur(function() {
    //updateBirthdate();
  });
  
  /* initial call to updateBirthdate */
  updateBirthdate();
}


function updateBirthdate()
{
  //alert("updating");
  
  /* We have to split the input. ### sanitize input? ### */
  birthdayArray = $("#kontakt_geburtsdatum").val().split(".");
  birthday = new Date(birthdayArray[2], birthdayArray[1]-1, birthdayArray[0]);
  stichtag = new Date("1992-10-08");
  
  //alert("dates: " + $(this).val());
  //alert("dates: " + birthday + " " + stichtag);
  
  if (birthday >= stichtag)
  {
    $("#minderjaehrig").removeClass("hidden");
  }
  else
  {
    $("#minderjaehrig").addClass("hidden");
  }
}


/* Force links with rel="extern" to open in a new window */
function externalLinks () {
  $('a[rel="extern"]').removeAttr('rel').attr('target', '_blank');
  $('a.relextern').removeClass('relextern').attr('target', '_blank');
}

