/**
 * jQuery
 */
/*$(document).ready(function() {
  window.setInterval('switch_cover()', 5000);
});*/


/**
 * Name         : JQuery Inner Fade Plugin
 * Beschreibung : den Bilder-Wechsel im Header aktivieren
 */
$(document).ready( 
  function(){ 
    $('#keyvisual').innerfade({
      speed: 2000, /*Dauer, der Ueberblendung*/
      timeout: 8000, /*Dauer, die die Bilder stehen*/ 
      type: 'sequence', 
      containerheight: '169px' }); 
  }
); 


/**
 * Name         : JQuery Tooltip Plugin
 * Parameter    : Keine
 * Beschreibung : Zeigt nett formatierte Tooltips an
 * Bibliothek:  : jQuery
**/

$(function() {
  $('#tlist a').tooltip({
  	track: true,
  	delay: 0,
  	showURL: false,
  	showBody: " # ",
  	fade: 25/*,
  	top: -55,
  	left: 0*/
  });
});


/**
 * Name         : switch_cover
 * Parameter    : Keine
 * Beschreibung : Wechselt das Album-Cover im Header aus
 * Bibliothek   : jQuery
 */
function switch_cover()
{
  $("#cover img").hide();

  // Maximalwert ausrechnen  
  var max = $("#cover img").length;
  // Zufallszahl generieren
  var new_cover = 1 + (max - 1) * (Math.random());
  new_cover = Math.round(new_cover);
  
  // Neues Cover einblenden
  $("#cover" + new_cover).show();
}


/**
 * sIFR
 */
var bombardier = {
  src: '/swf/bombardier.swf'
};

sIFR.activate(bombardier);

sIFR.replace(bombardier, {
  selector: 'h1.bold',
  wmode: 'transparent',
  css: {
      '.sIFR-root': { 'font-size': '24px' }
  }
});

sIFR.replace(bombardier, {
  selector: 'h1.left',
  wmode: 'transparent',
  css: {
      '.sIFR-root': { 'color': '#ce0000' ,
                      'font-size': '24px' }
  }
});

sIFR.replace(bombardier, {
  selector: 'strong.hl.red',
  wmode: 'transparent',
  css: {
      '.sIFR-root': { 'color': '#ce0000' ,
                      'font-size': '24px' }
  }
});

sIFR.replace(bombardier, {
  selector: 'strong.hl',
  wmode: 'transparent',
  css: {
      '.sIFR-root': { 'font-size': '24px' }
  }
});


/**
 * Name         : show_subnavi
 * Parameter    : Keine
 * Beschreibung : Einblenden der Subnavigationen
 * Parameter    : li_id = id des aktuellen, uebergeordneten Navigationspunktes
*/ 
function show_subnavi(li_id) {
  var subnavi = document.getElementById(li_id);
  
  subnavi.getElementsByTagName('a')[0].style.backgroundColor = "#ce0000";
  subnavi.getElementsByTagName('a')[0].style.borderRight = "1px dashed #ffffff";
    
  subnavi.getElementsByTagName('ul')[0].style.display = "block"; 
  
  var backPos = subnavi.offsetWidth+"px 0px";
  subnavi.getElementsByTagName('ul')[0].style.backgroundPosition = backPos; 
}

/**
 * Name         : hide_subnavi
 * Beschreibung : Ausblenden der Subnavigationen
 * Parameter    : li_id = id des aktuellen, uebergeordneten Navigationspunktes
*/ 
function hide_subnavi(li_id) {
  var subnavi = document.getElementById(li_id);
  
  var cn = subnavi.getElementsByTagName('a')[0].className;
  if(cn == "active") {
   subnavi.getElementsByTagName('a')[0].style.backgroundColor = "#ffffff";
   subnavi.getElementsByTagName('a')[0].style.borderRight = "1px dashed #ce0000";
  }
   
  subnavi.getElementsByTagName('ul')[0].style.display = "none";
}





/**
 * Name         : Lightbox
 * Parameter    : Keine
 * Beschreibung : definiert, dass 
 *                - alle Anker, die mit dem Attribut rel="lightbox" versehen sind, ihr Ziel in der Lightbox oeffnen
 *                - die Navigation (zurueck, weiter) immer eingeblendet ist, und nicht auf Maus-Bewegungen erst sichtbar wird
 */
$(document).ready(function(){
  $(function() {
	  $('a[@rel*=lightbox]').lightBox({fixedNavigation:true});
  });
});


/**
 * Lightbox
 * definiert, dass 
 * - alle Anker, die mit dem Attribut rel="lightbox" versehen sind, ihr Ziel in der Lightbox oeffnen
 * - die Navigation (zurueck, weiter) immer eingeblendet ist, und nicht auf Maus-Bewegungen erst sichtbar wird

$(document).ready(function(){
  $(function() {
	  $('a[@rel*=lightbox_text]').lightBoxText({fixedNavigation:true});
  });
});
 */




/**
 * Name         : toggle_credits
 * Parameter    : Keine
 * Beschreibung : Ein- und Ausblenden der Albumcredits
*/ 
function toggle_credits() {
  var text = document.getElementById('credit_text');
  var image = document.getElementById('arrow_down');
  
  if(text.style.display == 'block') { 
    text.style.display = 'none'; 
    image.style.backgroundImage = 'url(/i/icon_arrow_right.gif)';
  }
  else { 
    text.style.display = 'block'; 
    image.style.backgroundImage = 'url(/i/icon_arrow_down.gif)';
  }
  
}

/**
 * Name         : toggle_gb_entry
 * Parameter    : Keine
 * Beschreibung : Ein- und Ausblenden der Albumcredits
*/ 
function toggle_gb_entry() {
  var text = document.getElementById('gb_entry_form');
  var image = document.getElementById('arrow_down');
  
  if(text.style.display == 'block') { 
    text.style.display = 'none'; 
    image.style.backgroundImage = 'url(/i/icon_arrow_right.gif)';
  }
  else { 
    text.style.display = 'block'; 
    image.style.backgroundImage = 'url(/i/icon_arrow_down.gif)';
  }
  
}


/**
 * Name					: set_filter
 * Parameter    : Filtername (ID)
 * Beschreibung	: Funktionen zum Ein-/Ausschalten der Filter 
 *
**/
function set_filter (Filter_Name) {


  // Aktueller Wert des <alt>-Attributs ("off" oder "on") auslesen
  var filter_value = document.getElementById(Filter_Name).alt;

  // Bilder entsprechend dem Filter auswaehlen
  switch (Filter_Name) {
    case 'f_stories' : 
       var Input_Name = 'filter_stories';
    break;

    case 'f_audio' :
       var Input_Name = 'filter_audio';
    break;

    case 'f_shorties' :
       var Input_Name = 'filter_shorties';
    break;

    case 'f_video' :
       var Input_Name = 'filter_video';
    break;

    case 'f_alben' :
       var Input_Name = 'filter_alben';
    break;

    case 'f_singles' :
       var Input_Name = 'filter_singles';
    break;
    
    case 'f_konzerte' :
       var Input_Name = 'filter_konzerte';
    break;
    
    case 'f_tv_radio' :
       var Input_Name = 'filter_tv_radio';
    break;
    
    case 'f_ausstellung' :
       var Input_Name = 'filter_ausstellung';
    break;
    
    case 'f_veroeffentlichung' :
       var Input_Name = 'filter_veroeffentlichung';
    break;
    
    case 'f_bekleidung' :
       var Input_Name = 'filter_bekleidung';
    break;
    
    case 'f_cddvd' :
       var Input_Name = 'filter_cddvd';
    break;
    
    case 'f_buecher' :
       var Input_Name = 'filter_buecher';
    break;
    
    case 'f_sonstiges' :
       var Input_Name = 'filter_sonstiges';
    break;
  }
  
  // Fiter setzen / zuruecksetzen
  if( filter_value == 'off' ) {
     document.getElementById(Filter_Name).alt='on';
     document.getElementById(Input_Name).value='on';
  }

  if( filter_value == 'on' ) {
    document.getElementById(Filter_Name).alt='off';
    document.getElementById(Input_Name).value='off';
  }

  //Nach der Aenderung, Formular versenden!
  document.form_filter.submit();

  return;

}





/**
 * Name					: check_upload
 * Parameter    : 
 * Beschreibung	: Checken der hochgeladenen Datei auf Datei-Typ und -Groesse  
 *
**/
function check_upload() {
  var file_type = false;
  var file_size = false;
  var for_file_eorror = document.getElementById('for_file_eorror');
  
  var file_str = document.getElementById('upload_file').value;
  
  //Datei-Typ checken
  if( file_str.indexOf('.gif') > 0 ||
      file_str.indexOf('.GIF') > 0 ||
      file_str.indexOf('.jpg') > 0 ||
      file_str.indexOf('.JPG') > 0 ||
      file_str.indexOf('.jpeg') > 0 ||
      file_str.indexOf('.JPEG') > 0 ) {
    file_type = true;
    var set_file_error = for_file_eorror.getElementsByTagName('span')[0];
    if(set_file_error) {
      for_file_eorror.removeChild(set_file_error);
    }
  }
  else {
    //falls schon ein Fehler eingetragen ist, keinen zweiten schreiben
    var set_file_error = for_file_eorror.getElementsByTagName('span')[0];
    if(!set_file_error) {
      var type_error = document.createElement("span");
      type_error.style.color = '#ff0000';
      type_error.style.display = 'block';
      type_error.style.marginTop = '5px';
      var myText = document.createTextNode("Bitte laden Sie entweder eine .gif oder .jpg Datei hoch.");
      type_error.appendChild(myText);
      for_file_eorror.appendChild(type_error);
    }
    
    //wenn eine Datei eines falschen Typs hochgeladen wurde: Funktion verlassen
    return file_type;
  }
 
  return true;
}


/**
 * Name					: check_assurance
 * Parameter    : 
 * Beschreibung	: Checken, ob Versicherung gecheckt wurde  
 *
**/
function check_assurance() {
 var assurance = false;
 
 if(document.getElementById('assurance_cb').checked) {
  assurance = true;
 }
 return assurance;
}


/**
 * Name					: show_upload_btn
 * Parameter    : 
 * Beschreibung	: Den Upload-Btn einblenden, wenn eine konforme Datei hochgeladen wurde, und die Versicherung akzeptiert wurden  
 *
**/
function show_upload_btn() {
 if(check_upload() && check_assurance()) {
  document.getElementById('inactive_btn').style.display = 'none';
  document.getElementById('active_btn').style.display = 'block';
 }
 else {
  document.getElementById('inactive_btn').style.display = 'block';
  document.getElementById('active_btn').style.display = 'none';
 }
}


/**
 * Name					: check_description_length
 * Parameter    : anz (zulaessige Laenge)
 * Beschreibung	: Die Eingabe auf anz Zeichen begrenzen
 *
**/
function check_description_length(anz) {
 var anz_int = parseInt(anz);
 var description = document.getElementById('upload_description');
 
 if(description.value.length > anz_int) {
   description.value = description.value.substr(0, anz_int);
 }
}





/**
 * Name					: validateMail
 * Parameter    : field (id des Felds, in dem die Mail-Adresse eingegeben wird)
                  error_msg (id des divs, der die Fehlermeldung enthaetl)
 * Beschreibung	: per RegEx checken, ob eine valide Mail-Adresse eingegeben wurde
 *

function validateMail(field, error_msg) {
  var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
  var address = document.getElementById(field).value;
  
  if(reg.test(address) == false) {
    document.getElementById(error_msg).style.display = "block"; 
    
    document.getElementById('inactive_btn').style.display = 'block';
    document.getElementById('active_btn').style.display = 'none';
  } else {
    document.getElementById(error_msg).style.display = "none";
  
    if(reg.test(document.getElementById('mail').value)==true && reg.test(document.getElementById('mail_to').value)==true) {
      document.getElementById('inactive_btn').style.display = 'none';
      document.getElementById('active_btn').style.display = 'block';
    } else {
      document.getElementById('inactive_btn').style.display = 'block';
      document.getElementById('active_btn').style.display = 'none';
    }
  }
}
**/




/**
 * Name:          menschlichkeit
 * Beschreibung:  Fuegt bei Klick ein <input> Feld ein. Nur wenn dieses Feld
 *                vorhanden ist, darf das Formular verschickt werden.
 */
function menschlichkeit()
{
  var mensch_wert = $("#m"+"ensch").attr("alt");

  if( mensch_wert == 'leer' )
  {
    $("#m"+"ensch").attr({ src: "/i/checked.gif" }).attr({ alt: "voll" });
    $("#m"+"ensch").parent().append('<input type="hidden" name="input[mensch]" id="human" value="true"/>');
  }

  if( mensch_wert == 'voll' )
  {
    $("#m"+"ensch").attr({ src: "/i/unchecked.gif" }).attr({ alt: "leer" });
    $("#h"+"uman").remove();
  }

  return;
}


/**
 * Name:         show_comments()
 * Beschreibung: Laed ein Overlay mit den Kommentaren per AJAX nach
 */
function show_comments( article_id )
{
  $.ajax({
    type: "GET",
    url: "/sixcms/list.php?template=l_udol_comments&query=a_udol_comments&sv[link_article]=" + article_id,
    success: function(retval)
    {
      $("#comments" + article_id).html(retval);
    },
    error: function()
    {
      alert("Es ist ein unbekannter Fehler aufgetreten.");
    }
  });
}

/**
 * Name:         save_comment()
 * Beschreibung: Speichert einen Kommentar ueber AJAX
 */
function save_comment()
{
	// Button sperren und Ladegrafik anzeigen
	$("#comment_form .btn").attr("disabled", "disabled");
	$("#comment_form .ajaxload").show();
	
  // Werte auslesen
  var name = $("#name").val();
  var email = $("#email").val();
  var comment = $("#comment").val();
  var link_article = $("#link_article").val();
  if( $("#human").val() )
    var human = $("#human").val();
  else
    var human = '';
    
  // Kommentar speichern
  $.ajax({
    type: "POST",
    url: "/sixcms/detail.php",
    data: "template=d_udol_ctrl_comment&input[name]=" + name + "&input[email]=" + email + "&input[comment]=" + comment + "&input[link_article]=" + link_article + "&input[mensch]=" + human,
    dataType: "json",
    success: function(retval)
    {
    	// Button wieder entsperren und Ladegrafik ausblenden
	    $("#comment_form .btn").removeAttr("disabled");
	    $("#comment_form .ajaxload").hide();

      // Alte Meldungen entfernen (falls vorhanden)
      $(".error").remove();
      $(".success").remove();

    	if( retval.status == 'error' )
    	{
    	  // Es ist ein Fehler aufgetreten
    	  $("#comment_form").prepend('<p class="error">' + retval.message + '</p>');
      }
      else
      {
        // Es hat alles geklappt
        $("#comment_form").prepend('<p class="success">' + retval.message + '</p>');
        
        // Formular leeren
        var name = $("#name").val('');
        var email = $("#email").val('');
        var comment = $("#comment").val('');
        
        // Kommentare neu laden
        show_comments( link_article );
      }
    }
  });
}
