$(document).ready(function() {
  initGalleries();
  
  if (jQuery('.popup').length)
  {
    $('.popup').click(function(e){
      var w = 585;
      var h = 590;
      var x=0, y=0;
      if (w < screen.availWidth || h < screen.availHeight) {
        x = (screen.availWidth - w - 12) / 2;
        y = (screen.availHeight - h - 104) / 2;
        if (window.opera) y = 0; // Opera positioniert unter den Symbolleisten
        if (x<0 || y<0) { x=0; y=0; }
      }
      params = 'resizeable=no,scrollbars=0,status=no,toolbar=no,location=no,left='+x+',top='+y+',width='+w+',height='+h+'';
      open_popup($(this).attr("href"),params);
      e.preventDefault();
    });
  }
});

document.getElementsByClassName = function(classname)
{
	var elArray = [];

	var tmp = document.getElementsByTagName("*");

	var regex = new RegExp("(^|\\s)" + classname + "(\\s|$)");
	for ( var i = 0; i < tmp.length; i++ ) {

		if ( regex.test(tmp[i].className) ) {
			elArray.push(tmp[i]);
		}
	}

	return elArray;

};

function initOverview()
{
  var galleryNodes = document.getElementsByClassName("fce-galleries");

  var currentUrl = window.location.href;

  for (var i = 0; i < galleryNodes.length; i++)
  {
     var childNodes = galleryNodes[i].childNodes;

     var aTag;

     for (var j = 0; j < childNodes.length; j++)
     {
       if(childNodes[j] && childNodes[j].nodeType == 1)
       {
          aTag = childNodes[j];
       }
     }

     if(getPageName(currentUrl) == getPageName(aTag.getAttribute('href')))
     {
        galleryNodes[i].className = "fce-galleries active";
     }
  }
}


function getPageName(string)
{
   var lastIndex = string.lastIndexOf("/") + 1;
   return string.substring(lastIndex, string.length);
}

function initGalleries()
{
  initOverview();

  if (document.getElementById('itm-selected'))
  {
    document.getElementById('itm-selected').onmouseover = function()
    {
  	document.getElementById("lst-prod").style.display = "block";
    }

    document.getElementById('itm-selected').onmouseout = function()
    {
  	document.getElementById("lst-prod").style.display = "none";
    }
  }
	
  if(document.getElementById("galleryimg-new"))
  {
    var imgContainer = document.getElementById("galleryimg-new");
    var galInfo = document.getElementById("galleryinfo");
    var downloadLink = document.getElementById("downloadlink");

    var images = getImages();

    galInfo.innerHTML = getInfo(0, images.length);
    imgContainer.src = images[0];

    downloadLink.setAttribute("href", "fileadmin/templates/boeklunder/download_images.php?image="+images[0]);
  }
}


function getImages()
{
    var imageNodes = document.getElementById("gallery-images-wrapper-new").childNodes;
    var images = new Array();

    /*
    for (var i = 0; i < imageNodes.length; i++)
    {
       if(imageNodes[i] && imageNodes[i].nodeType == 1)
       {
          images.push(imageNodes[i].innerHTML);
       }
    }
    */
    for (var i = 0; i < imageNodes.length; i++)
    {
       if(imageNodes[i] && imageNodes[i].nodeType == 1)
       {
          var aTag = imageNodes[i].childNodes;
          for (var j = 0; j < aTag.length; j++)
          {
            if(aTag[j] && aTag[j].nodeType == 1)
            {
              images.push(aTag[j].innerHTML);
            }
          }
        }
    }
    return images;
}


function getInfo(actImage, nmbrImages)
{
    return actImage+1 + " von " + nmbrImages;
}


var actImage = 0;

function switchImage(action)
{
  var imgContainer = document.getElementById("galleryimg");
  var galInfo = document.getElementById("galleryinfo");
  var dir = 'fileadmin/gallery/boeklunder/';
  var images = new Array('bild1.jpg', 'bild3.jpg', 'bild4.jpg', 'bild5.jpg', 'bild6.jpg', 'bild7.jpg', 'bild8.jpg', 'bild9.jpg', 'bild10.jpg', 'bild11.jpg', 'bild12.jpg', 'bild13.jpg', 'bild14.jpg', 'bild15.jpg', 'bild16.jpg');
  var nmbrImages = images.length;
        
  switch(action) {
    case "next":
      actImage++;
      break;
    default:
      actImage--;
      break;
  }
        
  actImage = actImage < 0 ? nmbrImages-1 : actImage;
  actImage = actImage > nmbrImages-1 ? 0 : actImage;
          
  var info = actImage+1 + " von " + nmbrImages;

  galInfo.innerHTML = info;
  imgContainer.src = dir+images[actImage];
        
  // Bei IE6 footer ausrichten
  var b_version=navigator.appVersion;
  if(b_version.search(/MSIE 6.0.+/) != -1)
    document.getElementById("footer").style.bottom = ((actImage+2) * (-1))+'px';
}


function switchImageNew(action)
{
  var imgContainer = document.getElementById("galleryimg-new");
  var galInfo = document.getElementById("galleryinfo");
  var downloadLink = document.getElementById("downloadlink");

  var images = getImages();

  var nmbrImages = images.length;

  switch(action) {
    case "next":
      actImage++;
      break;
    default:
      actImage--;
      break;
  }

  actImage = actImage < 0 ? nmbrImages-1 : actImage;
  actImage = actImage > nmbrImages-1 ? 0 : actImage;

  galInfo.innerHTML = getInfo(actImage, nmbrImages);
  imgContainer.src = images[actImage];

  downloadLink.setAttribute("href", "fileadmin/templates/boeklunder/download_images.php?image="+images[actImage]);

  // Bei IE6 footer ausrichten
  var b_version=navigator.appVersion;
  if(b_version.search(/MSIE 6.0.+/) != -1)
    document.getElementById("footer").style.bottom = ((actImage+2) * (-1))+'px';
}


function open_popup(url, params) {
  fenster = window.open(url, 'Popup', 'scrollbars=no,resizeable=no,'+params);
  fenster.focus();
}


/******************** Products JS alternative *************************/

$(window).load(function(){

  if ($(".jMyCarousel"))
  {
    if ($(".jMyCarousel").length && $(".jMyCarousel ul li").length > 3)
    {
      $(".jMyCarousel").jMyCarousel({
         auto     : true,
         visible  : '445px',
         speed    : 2000
      });

      var defaultElement = $("#prod-car-default").text().split('###');

      $(".product-detail-view").html(createHTML(/\\n/g, defaultElement[0], defaultElement[1], defaultElement[2], defaultElement[3]));

      var currentElement = $("#carousel_container li:first-child a");

      var liClass = $(currentElement).parent("li").attr("class");
      $("."+liClass).css("background-color", "#E5EFFB");
    }
    else if($(".jMyCarousel").length && $(".jMyCarousel ul li").length <= 3)
    {
      var currentElement = $("#carousel_container li:first-child a");

      var liClass = $(currentElement).parent("li").attr("class");
      $("."+liClass).css("background-color", "#E5EFFB");
  }
  }

});

function showProduct(element, categorie, headlineValue, descriptionValue, attrValue)
{
  $("#carousel_container ul li").each(function(){
      $(this).css("background-color", "");
  });

  var liClass = $(element).parent("li").attr("class");
  $("."+liClass).css("background-color", "#E5EFFB");

  $(".product-detail-view").html(createHTML(/\n/g, categorie, headlineValue, descriptionValue, attrValue));
  
  $(".product-detail-view img").load(function() {
     $(this).attr("alt", headlineValue);
  });

}

function createHTML(regX, categorie, headlineValue, descriptionValue, attrValue)
{
  //<![CDATA[
  var replaceString = '<br \/>';
  //]]>

  var headlineValue    = headlineValue.replace(regX, replaceString);
  var descriptionValue = descriptionValue.replace(regX, replaceString);

  //<![CDATA[
  var html = '<div class="product-detail-view-left">';
  html    += '<div class="product-detail-view-hdl">'+headlineValue+'<\/div>';
  html    += '<div class="product-detail-view-des">'+descriptionValue+'<\/div>';
  html    += '<\/div>';

  html    += '<div class="product-detail-view-right">';
  html    += '<div class="product-detail-view-img"><img src="http://www.boeklunder.de/fileadmin/templates/img/produktuebersicht/'+categorie+'/'+attrValue+'.png" alt="" title="'+headlineValue+'" \/><\/div>';
  html    += '<\/div>';
  //]]>

  return html;

}

/******************** Products JS alternative *************************/


/******************** Home JS alternative *************************/

var firstLeft = true;
var firstMiddle = true;
var firstRight = true;

var imagesPerSlide = 8;

var timeOut = 8000;

jQuery(document).ready(function() {


  if (jQuery(".jMyCarousel-home"))
  {
    if (jQuery(".jMyCarousel-home").length)
    {
	    jQuery(".jMyCarousel-home").jMyCarousel({
		        visible: '458px',
		        eltByElt: true,
		        speed:    1000,
		        evtStart: 'mousedown',
		        evtStop: 'mouseup',
		        btnPrev: jQuery('#home-car-btn-left'),
		        btnNext: jQuery('#home-car-btn-right')
		  });
    }

  }

  initCycles();

});

function calculateTimeout(currElement, nextElement, opts, isForward, idx)
{
    var index = opts.currSlide;

    if(idx == 0)
    {
        if(index == 0 && firstLeft)
        {
          firstLeft = false;
          return 2000;
        }
        else if(index >= 1 || !firstLeft)
        {
          if(index == 0)
          {
            return timeOut -2000;
          }
          else
          {
            return timeOut;
          }
        }
    }
    else if(idx == 1)
    {
        if(index == 0 && firstMiddle)
        {
          firstMiddle = false;
          return 2500;
        }
        else if(index >= 1 || !firstMiddle)
        {
          if(index == 0)
          {
            return timeOut -2000;
          }
          else
          {
            return timeOut;
          }
        }
    }
    else if(idx == 2)
    {
        if(index == 0 && firstRight)
        {
          firstRight = false;
          return 3000;
        }
        else if(index >= 1 || !firstRight)
        {
          if(index == 0)
          {
            return timeOut -2000;
          }
          else
          {
            return timeOut;
          }
        }
    }
}


function initCycles()
{
    if (jQuery('div.home-product-teaser'))
    {
        jQuery('div.home-product-teaser').children().each(function(idx, element) {

           if (jQuery(element).length)
           {
              jQuery(element).children('ul').cycle({

                	fx:    'turnDown',
              		speed:  1000,
              		timeoutFn: function(currElement, nextElement, opts, isForward){
                     return calculateTimeout(currElement, nextElement, opts, isForward, idx);
                  },
              		autostop: 1,
              		autostopCount: imagesPerSlide + 1,
              		end: function(options){
                      jQuery(element).children('ul').cycle('destroy');
                      switch(idx)
                      {
                          case 0:
                              firstLeft = true;
                              break;
                          case 1:
                              firstMiddle = true;
                              break;
                          case 2:
                              firstRight = true;
                              break;
                      }
                      reInitCycles();
                  }

              });
           }
        });
    }
}

function reInitCycles()
{
	if(firstLeft && firstMiddle && firstRight)
	{
		jQuery("div.home-product-teaser .slideshow-left li").height(206);
		jQuery("div.home-product-teaser .slideshow-middle li").height(206);
		jQuery("div.home-product-teaser .slideshow-right li").height(206);
		initCycles();
  }
}

/******************** Home JS alternative *************************/

