/*****************************************************************************
/*
/*  // Erst wenn DOM da ist, mit Aktionen belegen
/*
******************************************************************************/
document.observe("dom:loaded", function() {
  
  
  if($('contactForm')) {                                    // Nur wo auch ein Formular mit der Element-ID "contactForm" vorhanden ist
    ActivateFormValidators();                               // Eingaben überwachen
    $('kontaktresetbutton').observe('click', function(e){
      resetTheForm(e);                                      // Reset abfangen
    });
  }
  
  
  if(($('produktdetails'))||($('gepaecktransportinfos'))) {                                 // Nur auf der Produktseite
    
    if($('produktdetails')) {
      var schalter = $$('#produktdetails .Bswitch');          // Alle Schalter finden und mit Aktion belegen
    } else {
      var schalter = $$('#gepaecktransportinfos .Bswitch');
    }
    schalter.each(function(s) {
      s.observe('click', DetailKlapper);
    });
    
    
    if($('produktdetails')) {
      var switches = $$('#produktdetails .switch');           // ganzen Schalter anders aussehen lassen
    } else {
      var switches = $$('#gepaecktransportinfos .switch');           // ganzen Schalter anders aussehen lassen
    }
    switches.each(function(s) {
      s.addClassName('detailContainer');
    });
    
    if($('produktdetails')) {
      var contentElemente = $$('#produktdetails .Bcontent');  // Content ausblenden
    } else {
      var contentElemente = $$('#gepaecktransportinfos .Bcontent');  // Content ausblenden
    } 
    contentElemente.each(function(s) {
      s.hide();
    });
    
  }
  
  
});


/******************************************************************************
* 
* Funktion zum Auf und zuklappen der Detailinfos
* event = geklicktes Element
* 
******************************************************************************/

function DetailKlapper(event) {
  var content = event.element();            // aktuelles Element auf das geklickt wurde
  
  if(content.inspect().include('div')) {    // sicherstellen, dass nur der div aktiv gesetzt wird
    setInActive(content, 'BswitchActive');
  } else {
    setInActive(content.up(), 'BswitchActive');
  }
  
  var e       = content.next(0);            // nächstes Element im DOM
  if(!e) e    = content.up().next(0);       // falls auf den span geklickt wurde
  
  if(e.getStyle('display')=='none'){        // Wenn unsichtbar
    e.show();                               // einblenden
  } else {                                  // ansonsten:
    e.hide();                               // ausblenden
  }
}


/******************************************************************************
* 
* Funktion zum Statussetzen eines Elementes
* e          = element
* classname  = status (Klassenname)
******************************************************************************/
function setInActive(e, classname) {
  if(e.hasClassName(classname)) {
    e.removeClassName(classname);
  } else {
    e.addClassName(classname);
  }
}


/*****************************************************************************
/*
/*  Zurücksetzen des Kontaktformulares
/*
******************************************************************************/
function resetTheForm(e) {
  var check = window.confirm("Wollen Sie Ihre eingegebenen Daten wirklich löschen?");
  if(check == true){
    var felder          = $$('#contactForm .LV_validation_message');  // alle Icons
    var invalid_felder  = $$('#contactForm .LV_invalid_field');       // alle falsch ausgefüllte Inputs
    var valid_felder    = $$('#contactForm .LV_valid_field');         // alle richtig ausgefüllte Inputs
    
    felder.each(function(s) {
      s.remove();
    });
    
    invalid_felder.each(function(s) {
      s.removeClassName("LV_invalid_field");
    });
    
    valid_felder.each(function(s) {
      s.removeClassName("LV_valid_field");
    });
  } else {
    e.stop(); // Event abbrechen
  }
}


/*****************************************************************************
/*
/*  Validierung des Kontaktformulares
/*
******************************************************************************/
function ActivateFormValidators() {
  var PresenceMessage               = 'Dieses Feld ist ein Pflichtfeld';
  var messagetooShortMessage        = 'Bitte mindestens 2 Zeichen';
  var nametooShortMessage           = 'mindestens 2, max. 100 Stellen, Bsp: Michael Mustermann';
  var emailFailureMessage           = 'Bitte eine E-Mail-Adresse eingeben. Bsp: info@domain.com';
  
  /******** Nachricht ********/
  var message = new LiveValidation( "comment", {
    validMessage:       ' ',
    onlyOnBlur:         true
  });
  message.add(Validate.Presence, { 
    failureMessage:     PresenceMessage
  });
  message.add(Validate.Length, { 
    minimum:            2,
    maximum:            4000,
    tooShortMessage:    messagetooShortMessage,
    tooLongMessage:     ' ',
    wrongLengthMessage: ' '
  });
  
  
  /******** Name ********/
  var name = new LiveValidation( "name", {
    validMessage:       ' ',
    onlyOnBlur:         true
  });
  name.add(Validate.Presence, { 
    failureMessage:     PresenceMessage
  });
  name.add(Validate.Length, { 
    minimum:            2,
    maximum:            100,
    tooShortMessage:    nametooShortMessage,
    tooLongMessage:     ' ',
    wrongLengthMessage: ' '
  });
  
  
  /******** Telefon ********/
  var telefon = new LiveValidation( "telephone", {
    validMessage:       ' ',
    onlyOnBlur:         true
  });

  telefon.add(Validate.Length, { 
    minimum:            2,
    maximum:            100,
    tooShortMessage:    messagetooShortMessage,
    tooLongMessage:     ' ',
    wrongLengthMessage: ' '
  });
  
  
  /******** E-Mail ********/
  var email = new LiveValidation( "email", {
    validMessage:       ' ',
    onlyOnBlur:         true
  });
  email.add(Validate.Presence, { 
    failureMessage:     PresenceMessage
  });
  email.add(Validate.Email, { 
    failureMessage:     emailFailureMessage
  });
  
  
}
