/**
 * Name: slider-js.js
 * Author: dasc
 * Description: Slider-Ersatz
 *
 * Date: 13.10.2010
 * Packed: no
 * jQuery: yes
 */

var SliderConstants = {
  
  /** Zugriff mit SliderConstants. **/
  slideshowTag: "#slideshow_",
  sliderNavTag: "#sliderNav_",
  hiddenForNoscriptClass: ".show_on_js",
  /** Cycle-Plugin */
  /** Effektzeit */
  cycleSpeed: 500,
  /** Slide-Effekt */
  cycleFx: "fade",
  /** wenn >0 automatischer Durchlauf durch Slideshow */
  cycleTimeout: 0
};
 
var Slider = {

  /**
   * Anstoss der Slider-Funktionalitaet fuer eine bestimmte Slideshow mit der passenden CoreMedia-ContentID.  
   * @param {Integer} id - CoreMedia-ContentID
   */
  initSlider : function (id) {
  
    //Slider.showHiddenForNoscriptTags(id);
   // Slider.clearNavArea(id);
    jQuery(SliderConstants.slideshowTag + id)
      .cycle({ 
        fx:     SliderConstants.cycleFx, 
        speed:  SliderConstants.cycleSpeed, 
        timeout: SliderConstants.cycleTimeout, 
        pager:  SliderConstants.sliderNavTag + id 
      });
    Slider.extendNaviDOM(id);
    Slider.initTooltip();
    
  },
  
  /**
   * Erweiterung des Navigationsbereiches um Hintergrund und Miniaturbilder
   * @param {Integer} id - ID des entsprechenden Slider-ConFunctions
   */
  extendNaviDOM : function (id) {

    /** Ermittlung der vorhandenen, durch jQuery.cycle-Plugin erzeugte, Anker */
    var anchors = jQuery(SliderConstants.sliderNavTag+id+' a');
    var anchorsCount = anchors.length;
    var slider = jQuery(SliderConstants.sliderNavTag+id);
      
    /** Erweiterung des Anker-DOM mit Hintergrund und Bildern */
    for(i=0; i<anchorsCount; i++) {
      
      var a = jQuery(anchors[i]);
      var wrapperDIV;
      
      if(i==0) 
        wrapperDIV = jQuery('<div class="tipM sl_bg_l" />');
      if(i>0 && i< anchorsCount-1)
        wrapperDIV = jQuery('<div class="tipM sl_bg_c" />');
      if(i==anchors.length-1) 
        wrapperDIV = jQuery('<div class="tipM sl_bg_r" />');  
        
      a.empty();    
      a.wrap(wrapperDIV);
      a.append(jQuery(imgs[i]));
    }  
  },
  
  /**
   * Befuellen der Tooltip-Bereiche
   */
  initTooltip: function() {
  
    /** Elemente mit '.hasTooltip'-Klassen **/
    jQuery(".tipM").each(function (i, item) {
      if (heads[i] != '' && texts[i] != '')
        jQuery(item).append ('<span><h3>'+heads[i]+'</h3><p>'+texts[i]+'</p></span>');
    });  
  },
  
  /**
     * Setzt Bereiche auf sichtbar, die in der Noscript-Variante ausgeblendet werden.  
     * @param {Integer} id - ID des entsprechenden Slider-ConFunctions
     */
  showHiddenForNoscriptTags: function(id) {
    
    var hiddenContent = jQuery(SliderConstants.slideshowTag+id+' ' +SliderConstants.hiddenForNoscriptClass);
    
    for (i=0; i < hiddenContent.length; i++){
      var contentElement = jQuery(hiddenContent[i]);
      contentElement.css({display:"block"});
    }
  },
  
  /**
   * Noscript-Navigation wird verworfen
   * @param {Integer} id - ID des entsprechenden Slider-ConFunctions
   */
  clearNavArea: function(id){
  
    var sliderNav = jQuery(SliderConstants.sliderNavTag+id);
    sliderNav.empty();
  }
};
