// ************************************************************************
// Autor: Thomas Bauer                                                    *
// erstellt am: 10.02.2011                                                *
//                                                                        *
// 05.05.11: initSeite - Video wird ueber AJAX geladen                    *
// 12.05.11: initSeite - erweitert bzgl. title im Browser-Header          *
// ************************************************************************
// Funtionen:                                                             *
//    document.ready:  initialisiert Menue                                *
//                     FILE: seiten/wir_ueber_uns.php                     *
//                           seiten/seite_fehlt.php                       *
//                           seiten/aktuelles.php                         *
//                           -- HREF --                                   *
//                     FUNKITON: admin.js - initAdmin                     *
//                               initSeite                                *
//    initSeite:       Akkordeon, Links etc. initialisieren               *
//                     BENUTZT: admin.js - getFeedbackSave                *
//                     FUNKTION: initSeite                                *
//                               standorte.js - initAdresse               *
//                               aktuelles.js - initAktuell               *
//                               anfahrt.js - initAnfahrt                 *
//                               anfrage.js - initAnfrage                 *
//                               events.js - initEvents                   *
//                               unterricht.js - initProbestunde          *
//                               schwarzbrett.js - initSchwarzbrett       *
//                               standorte.js - initStandorte             *
//                               unterricht.js - initUnterricht           *
//                               workshop.js - initWorkshop               *
//                               initService                              *
//                               initDetails                              *
//                               admin.js - initAdmin                     *
//    initDetails:     Akkordeons initialisieren                          *
//    initSlideshow:   Slideshow aktivieren                               *
//    feedbackCaptcha: Reaktion auf Ueberpruefung des Captcha             *
//                     FILE: seiten/aktionenen/send_anfrage.php           *
//                     FUNKTION: anfrage.js - feedbackAnfrage             *
//    initService:     Links auf Service-Seite initialisieren             *
//                     FUNKTION: initSeite                                *
//    initTeaser:      interne Links korrekt initialisieren               *
//    initMeldungen:   Links bei aktuellen Nachrichten initialisieren     *
//    initHelp:        Hilfetexte initialisieren                          *
//                     BENUTZT: aktuelles.js - initAdminAktuelles         *
// ************************************************************************

// Aktionen beim Laden der Seite
$(document).ready(function() {
   // **************************************************************************
   // *** allgemeine Initialisierungen                                       ***
   // **************************************************************************
   // JavaScript_Warnung ausschalten
   $('#JavaScriptWarnung').hide();
   // Wartendialog initialisieren
   $("#WAIT").gbxInit({
      top:   250,
      width: 100
   });
   // Menue mit Dropdown-Funktion versehen
   $('#MenuPoint_1').dropmenu({
      effect:  "slide",
      speed:   "slow",
      timeout: 250
   });
   // **************************************************************************
   // *** Startseite laden                                                   ***
   // **************************************************************************
   if(location.href.indexOf('local')==-1) {
      if($('#Schwarzbrett').val()!=undefined && $('#Schwarzbrett').val()!='')
         $('#content').load('seiten/schwarzbrett_edit.php',{ID:'6_18',Schwarzbrett:$('#Schwarzbrett').val()},initSeite);
      else
         $('#content').load('seiten/welcome.php',{ID:31},initSeite);
   }
   else
      if($('#Schwarzbrett').val()!=undefined && $('#Schwarzbrett').val()!='')
         $('#content').load('seiten/schwarzbrett_edit.php',{ID:'6_18',Schwarzbrett:$('#Schwarzbrett').val()},initSeite);
      else
//      $('#content').load('seiten/welcome.php',{ID:31},initSeite);
//      $('#content').load('seiten/adressen.php',{ID:14},initSeite);
//      $('#content').load('seiten/anfahrt.php',{ID:16},initSeite);
//      $('#content').load('seiten/anfrage.php',{ID:15},initSeite);
//      $('#content').load('seiten/aktuelles.php',{ID:5},initSeite);
//      $('#content').load('seiten/downloads.php',{ID:'11_17'},initSeite);
//      $('#content').load('seiten/events.php',{ID:7},initSeite);
//      $('#content').load('seiten/jobs.php',{ID:8},initSeite);
//      $('#content').load('seiten/lehrer.php',{ID:4},initSeite);
//      $('#content').load('seiten/partner.php',{ID:21},initSeite);
//      $('#content').load('seiten/preise.php',{ID:22,Bereich:1},initSeite);
//      $('#content').load('seiten/schwarzbrett.php',{ID:'11_18'},initSeite);
//      $('#content').load('seiten/service.php',{ID:11},initSeite);
//      $('#content').load('seiten/standorte.php',{ID:3},initSeite);
      $('#content').load('seiten/workshop.php',{ID:40},initSeite);
//      $('#content').load('seiten/unterricht.php',{ID:10},initSeite);
   // **************************************************************************
   // *** Menue                                                              ***
   // **************************************************************************
   // Link bei Menues aktivieren
   $('#menuLeiste a').click(function(evt) {
      evt.preventDefault();
      // allgemeine Seite
      if($(this).attr('href')!='' && $(this).attr('href').indexOf('preise')==-1) {
         $("#WAIT").gbxShow();
         $('#content').load($(this).attr('href'),{ID:$(this).attr('id').substr(5)},initSeite);
      }
      // speziell fuer Preise
      else if($(this).attr('href')!='' && $(this).attr('href').indexOf('preise')!=-1) {
         var strHref = $(this).attr('href').split('?');
         var strPara = strHref[1].split('=');
         $("#WAIT").gbxShow();
         $('#content').load(strHref[0],{ID:$(this).attr('id').substr(5),Bereich:strPara[1]},initSeite);
      }
      // nicht vorhandene Seite
      else
         $('#content').load('seiten/seite_fehlt.php');
   });
   // **************************************************************************
   // *** Footer                                                             ***
   // **************************************************************************
   // Links im Footer initialisieren
   $('.FooterMenuPoint a')
      .unbind('click')
      .click(function(evt) {
         if($(this).attr('target')=='') {
            evt.preventDefault();
            $("#WAIT").gbxShow();
            $('#content').load($(this).attr('href'),{},initSeite);
         }
      });
   // **************************************************************************
   // *** Aktuelles und Werbung                                              ***
   // **************************************************************************
   // aktuelle Nachrichten laden
   $('#Meldungen').load('seiten/aktionen/load_aktuelles.php',{},initMeldungen);
   // Werbung laden
   $('#Teaserliste').load('seiten/aktionen/load_teaser.php',{},initTeaser);
   // Link auf Aktuelles aktivieren (von Teaser)
   $('#footerAktuell a').click(function() {
      $('#content').load('seiten/aktuelles.php',{ID:5},initSeite);
   });
   // **************************************************************************
   // *** AJAX Fehler auffangen                                              ***
   // **************************************************************************
   $('#divAktion').ajaxError(function(event, request, settings) {
      $("#WAIT").gbxHide();
      $('#divTransferError').dialog({
         resizable: false,
         modal:     true,
         title:     'Übertragungsfehler',
         width:     300,
         buttons:   {}
      });
   });
});

// Akkordeon, Links etc. initialisieren
function initSeite() {
   $("#WAIT").gbxHide();
   // Bilder im Grossformat als Bildergallerie aktivieren
   $('div.lightbox').each(function() {
      $(this).children('a').lightBox({
         imageLoading:  'images/control/lightbox-ico-loading.gif',
         imageBtnClose: 'images/control/lightbox-btn-close.gif',
         imageBtnPrev:  'images/control/lightbox-btn-prev.gif',
         imageBtnNext:  'images/control/lightbox-btn-next.gif',
         imageBlank:    'images/control/lightbox-blank.gif',
         txtImage:      'Bild',
         txtOf:         'von'
      });
   });
   // Leader laden
   if($('#LeaderInfo').val()!='') {
      if($('#LeaderKind').val()=='image')
         $('#showhere').load('seiten/load_image.php',{Directory:$('#LeaderInfo').val()},initSlideshow);
      else if($('#LeaderKind').val()=='video')
         $('#showhere').load('seiten/load_video.php',{Video:$('#LeaderInfo').val()});
   }
   else
      $('#showhere').html('<img src="images/gitarre.png">');
   // Akkordeons initialisieren
   if($('#LoginUser').val()=='') {
      $( '.Akkordion').accordion({
         active:      false,
         autoHeight:  false,
         collapsible: true,
         icons:       {'header':'noIcon','headerSelected':'noIcon'}
      });
   }
   // Auf-/Zuklappen von Texten
   $('.MEHR')
      .addClass('wwwCursor')
      .click(function() {
         var intID=$(this).parent().parent().parent().attr('id').substr(7);
         $('#Detail_'+intID+' .Kurztext').hide();
         $('#Detail_'+intID+' .Langtext').show();
      });
   $('.WENIGER')
      .addClass('wwwCursor')
      .click(function() {
         var intID=$(this).parent().parent().parent().attr('id').substr(7);
         $('#Detail_'+intID+' .Kurztext').show();
         $('#Detail_'+intID+' .Langtext').hide();
      });
   // Werbelinks initialisieren
   $('.linkTeaser').click(function(evt) {
      evt.preventDefault();
      $('#content').load($(this).attr('href'),{},initSeite);
   });
   // spezielle Funktionen fuer einzelne Seiten aufrufen
   if($('#SEITE').val()=='Adresse')      { initAdresse(); }
   if($('#SEITE').val()=='Aktuelles')    { initAktuell(); }
   if($('#SEITE').val()=='Anfahrt')      { initAnfahrt(); }
   if($('#SEITE').val()=='Anfrage')      { initAnfrage(); }
   if($('#SEITE').val()=='Events')       { initEvents(); }
   if($('#SEITE').val()=='Jobs')         { initDetails(); }
   if($('#SEITE').val()=='Lehrer')       { initDetails(); }
   if($('#SEITE').val()=='Probestunde')  { initProbestunde(); }
   if($('#SEITE').val()=='Schwarzbrett') { initSchwarzbrett(); }
   if($('#SEITE').val()=='Service')      { initService(); }
   if($('#SEITE').val()=='Standorte')    { initStandorte(); }
   if($('#SEITE').val()=='Unterricht')   { initUnterricht(); }
   if($('#SEITE').val()=='Workshop')     { initWorkshop(); }
   // Titel im Browser anpassen
   $('title').text('modern-music-center - '+$('#SEITE').val());
   // Administration initialisiern
   initAdmin();
}

// Akkordeons initialisieren
function initDetails() {
   for(i=0;i<$('.Detail').length;i++) {
      if($('.Detail:eq('+i+')').attr('id')=='Fach_'+$('#Detail').val())
         $( '.Akkordion').accordion('activate',i);
   }
}

// Slideshow aktivieren
function initSlideshow() {
    if($('#leaderSlider')) {
       var intDuration = $('#SliderDuration').val()*1;
       var intTimer    = $('#SliderTimer').val()*1;
       $('#leaderSlider').ulslide({
           effect: {
               type: 'fade' // slide or fade
           },
           duration: intDuration,
           autoslide: intTimer,
           width: 1024,
           height: 200
       });
    }
}

// Reaktion auf Ueberpruefung des Captcha
function feedbackCaptcha(daten,status) {
   if(status=='success' && daten=='') {
      // Fehlermeldungen etc. verbegen
      $('.error_field').removeClass('error_field');
      // Formular ueberpruefen
      if($('#formAnfrage').validate().form()) {
         // Formular abschicken
         if($('#SEITE').val()=='Schwarzbrett')
            $.post($('#formAnfrage').attr('action'),$('#formAnfrage').serialize(),getFeedbackSave,'json');
         else
            $.post($('#formAnfrage').attr('action'),$('#formAnfrage').serialize(),feedbackAnfrage,'html');
      }
      else
         $('#AbfrageSenden').removeAttr('disabled');
   }
   // Fehlermedlung bzgl. Captcha anzeigen
   else {
      $('.FehlerHinweis').show();
      $('#AbfrageSenden').removeAttr('disabled');
      $('#AnfrageCaptcha').addClass('error_field');
      $('#AnfrageCaptcha').val('');
      $('#Captcha').attr('src','php/captcha.php?time=' + new Date().getTime());
   }
}

// Links auf Service-Seite initialisieren
function initService() {
   $('.ServiceLink a').click(function(evt) {
      evt.preventDefault();
      var intID      = $('#SeiteID').val();
      var arrUrl     = $(this).attr('href').split('?');
      var arrParam   = arrUrl[1].split('&');
      var arrVal1    = arrParam[0].split('=');
      if(arrParam[1])
         var arrVal2 = arrParam[1].split('=');
      else
         var arrVal2 = new Array(0,0);
      intID = (arrParam.length==1) ? intID+'_'+arrVal1[1] : arrVal1[1];
      $('#content').load(arrUrl[0],{ID:intID,Details:arrVal2[1]},initSeite);
   });
}

// interne Links korrekt initialisieren
function initTeaser() {
   // interne Links im Teaser definiern
   $('#Teaserliste a:not([target])').click(function(evt) {
      evt.preventDefault();
      $('#content').load($(this).attr('href'),{},initSeite);
   });
}

// Links bei aktuellen Nachrichten im Teaserblock initialisieren
function initMeldungen() {
   $('a.MeldungenGlobal').click(function() {
      if($(this).attr('href')=='#')
         $('#content').load('seiten/aktuelles.php',{ID:5},initSeite);
      else
         $('#content').load($(this).attr('href'),{},initSeite);
   });
}


// Hilfetexte initialisieren
function initHelp(validator) {
   $('#helpMessages').hide();
   $('.helpText').each(function() {
      // Elementparameter ermitteln
      var strID        = $(this).attr('rel');
      if(strID.substr(0,5)!='#help') {
         var objInput     = $('#'+strID);
         // Hilfetext (von Validierung) ermitteln
         var listMessages = validator.getMessage(objInput);
         var strMessage   = '';
         for(var i=0;i<listMessages.length;i++)
            strMessage += '<li>'+listMessages[i]+'</li>';
         // Hilfetexte direkt von der Komponente holen
         if(objInput.attr('help')) {
            var arrMessage = objInput.attr('help').split('|');
            for(var i=0;i<arrMessage.length;i++)
               strMessage += '<li>'+arrMessage[i]+'</li>';
         }
         $('#helpMessages').append('<ul id="help'+strID+'">'+strMessage+'</ul>');
         // Titel des Tipps initialisieren
         var strTitel = $(this).parent().children('label[for="'+strID+'"]').text()
         var intPos   = strTitel.indexOf(':');
         strTitel     = strTitel.substring(0,intPos);
         $(this).attr('title',strTitel);
         $(this).attr('rel','#help'+strID);
         // Tipp initialisieren
         $(this).cluetip({
            local:         true,
            cursor:        'help',
            dropShadow:    false,
            cluezIndex:    9999,
            closePosition: 'title',
            closeText:     '<img src="images/control/exit.gif" alt="Close">',
            mouseOutClose: true,
            fx: {
               open: 'fadeIn',
               openSpeed: 500
            }
         });
      }
   });
}
