$(document).ready(function() {
  
  // DESC BOX
  $('.container.cols_5.desc .HP_owncontent .HP-section h2').addClass("open");
  $('.container.cols_5.desc .HP_owncontent .HP-section h2').click(function() { boxSlide(this); });
  
  // RED BOX
  $('.container.cols_5.enquiry .HP_owncontent .HP-section h2').addClass("closed");
  $('.container.cols_5.enquiry .HP_owncontent .HP-section h2').next().hide();
  $('.container.cols_5.enquiry .HP_owncontent .HP-section h2').click(function() { boxSlide(this); });
  
  $('.product-form .CMS_workflow h2').addClass("closed");
  $('.product-form .CMS_workflow h2').next().hide();
  $('.product-form .CMS_workflow h2').click(function() { boxSlide(this); });
  
  $('.container.cols_5.enquiry .CMS_workflow h2').addClass("closed");
  $('.container.cols_5.enquiry .CMS_workflow h2').next().hide();
  $('.container.cols_5.enquiry .CMS_workflow h2').click(function() { boxSlide(this); });
  
  // Slides Box up/down
  var boxSlide = function(element) {
    
    var elm = $(element);
    
    if(elm.hasClass('closed')) {
      elm.removeClass('closed');
      elm.addClass('open');
    } else {
      elm.removeClass('open');
      elm.addClass('closed');
    }
    
    elm.next().slideToggle('fast');
    
  }
  
  
  // QuickMenuSlide
  $('.tpl-quicknav .HP-section ul li').mouseenter(function() {
      if(!$('.tpl-quicknav .quick-menu').hasClass('open'))
        $('.tpl-quicknav .quick-menu').slideDown('slow', function() { $(this).addClass('open'); });
  });
  
  $('.tpl-quicknav .quick-menu').mouseleave(function() {
      if($('.tpl-quicknav .quick-menu').hasClass('open'))
        $('.tpl-quicknav .quick-menu').slideUp('slow', function() { $(this).removeClass('open'); });
  });
  
  
  // MenuSlide
  $('.tpl-menu a.root.products').mouseenter(function() {
      if(!$('.tpl-menu .HP_menu').hasClass('open'))
        $('.tpl-menu .HP_menu').slideDown('slow', function() { $(this).addClass('open'); });
  });
  
  $('.tpl-menu .HP_menu').mouseleave(function() {
      if($('.tpl-menu .HP_menu').hasClass('open'))
        $('.tpl-menu .HP_menu').slideUp('slow', function() { $(this).removeClass('open'); });
  });
  
  $('#anfrage-form .phonenumber').delay(4000).queue(function() { 
    $(this).remove();
  });
  
  // ArticleSlider

  if($('.scrollable').length != 0)
    new slider(window.hp_pagegroup_id, $('.scrollable').get(0));

  function slider(hp_pagegroup_id, context) {
    
    $.get('http://www.heinelt.de/modules/HP/HP_CineSlide.php?hp_pagegroup_id=' + hp_pagegroup_id, function(response) {
        
        $(context).before('<a class="scroll prev"></a>');
        $(context).after('<a class="scroll next"></a>');
        $(context).append('<div class="items" />');
        
        var data = eval("(" + response + ")");
        
        $.each(data, function(i, value) {
            
            var div  = $('<div />').appendTo('.items', $(context));
            var link = $('<a href="' + value.path + '" />').appendTo(div);
            var img  = $('<img src="' + value.picture + '" title="' + value.title + '" />').appendTo(link);
            
            $(link).after('<span>' + value.title + '</span>');
            
        });
        
        $(context).scrollable();
        
    });
    
  };
  
  $('.red-button a').attr('href', 'javascript:void(null);');
  
  // Anfrage RED BUTTON
  var anfrBut = $('.red-button img');

  anfrBut.click(function() {
    boxSlide('.container.cols_5.enquiry .HP_owncontent .HP-section h2');
    boxSlide('.product-form .CMS_workflow h2');
  });
  
  var form = $('.product-form form, .enquiry form, .HP_emaildirect form');
  var onsubmit = function() {
    
    var currentContainer = $('.product-form .CMS_workflow , .enquiry .HP_owncontent, .HP_emaildirect');
    
    currentContainer.addClass('loading');
    
    $.post(window.location.href, getFormData(this), function(data) {
      
      var wrapper = null;

      $(data).each(function() {
        if(this.className == 'tpl-wrapper')
          wrapper = $(this);
      });
      
      var newDiv = wrapper.find('.product-form .CMS_workflow > div > div, .enquiry .HP_owncontent > div > div, .HP_emaildirect');
      var currentDiv = $('.product-form .CMS_workflow > div > div, .enquiry .HP_owncontent > div > div, .HP_emaildirect');
      
      currentDiv.replaceWith(newDiv);
      
      var form = $('.product-form form, .enquiry form, .HP_emaildirect form');
      
      if(form.length != 0)
        form[0].onsubmit = onsubmit;
      
      currentContainer.removeClass('loading');
      
    }, 'html');
      return false;
  
  };

  if(form.length != 0)
    form[0].onsubmit = onsubmit;
  
  var callbackForm = $('.HP_callback form');
  
  callbackForm.append('<input type="text" class="homepage" name="homepage" value="" />');
  
  var onsubmitCallback = function() {
    
    if($('.homepage', callbackForm).val().length > 0)
      return false;
      
    var currentContainer = $('.HP_callback');
    
    currentContainer.addClass('loading');
    
    $.post(this.action + ' ', getFormData(this), function(data) {
      
      var wrapper = null;
      
      $(data).each(function() {
        if(this.className == 'tpl-wrapper')
          wrapper = $(this);
      });
      
      var newDiv = wrapper.find('.HP_callback');
      var currentdDiv = $('.HP_callback');
      var script = wrapper.find('.HP_callback script');
      
      currentdDiv.replaceWith(newDiv);
      
      script.each(function() {
        try {
          eval(this.textContent);
        } catch(e) {
        }
      });
      
      var form = $('.HP_callback form');
      
      if(form.length != 0)
        form[0].onsubmit = onsubmitCallback;
      
    }, 'html');
      return false;
  
  };

  if(callbackForm.length != 0)
    callbackForm[0].onsubmit = onsubmitCallback;
  
  
  var container = $('.BG_gallery .BG_container');
  var containerWidth = container.width();
  var containerLeft = 0;
  var multiplicator = 3;
  var aPool = container.children('a');
  var aWidth = 101;
  var aViewable = 8;
  var i = aPool.length - aViewable;
  
  if(aViewable < aPool.length)
    $('.BG_gallery .BG_arrow_right').show();
  
  $('.BG_gallery .BG_arrow_left').click(function() {
    
    if(containerLeft !== 0) {
      
      i += multiplicator;
      containerLeft += aWidth * multiplicator;
      container.stop();
      container.animate({left: containerLeft}, 1000);
      
      $('.BG_gallery .BG_arrow_right').show();
      
      if(containerLeft === 0)
        $('.BG_gallery .BG_arrow_left').hide();
      
    } else {
      $('.BG_gallery .BG_arrow_left').hide();
    }
    
  });
  
  $('.BG_gallery .BG_arrow_right').click(function() {
    
    if(i > 0) {
      
      i -= multiplicator;
      containerLeft -= aWidth * multiplicator;
      container.stop();
      container.animate({left: containerLeft}, 1000);
      
      $('.BG_gallery .BG_arrow_left').show();

      if(i > 0 === false)
        $('.BG_gallery .BG_arrow_right').hide();
      
    } else {
      $('.BG_gallery .BG_arrow_right').hide();
    }
    
  });
  
  
});

function getFormData(form) {
  
  var option = null;
  var obj = {};
  
  $('input, select, textarea', form).each(function() {
    
    switch(this.nodeName) {
      
      case 'INPUT':
        
        switch(this.type) {
          
          case 'checkbox':
          case 'radio':
            
            if(this.checked == true)
              obj[this.name] = this.value;
            
            break;
            
          case 'file':
            break;
            
          default:
            obj[this.name] = this.value;
           break;
           
        }
        
        break;
        
      case 'SELECT':
        
        if(this.multiple == true) {
          
          obj[this.name] = new Array();
          
          for(var j = 0; j < this.length; j++)
            if(this.options[j].selected)
              obj[this.name].push(this.options[j].value);
          
        } else {
          
          for(var j = 0; j < this.length; j++)
            if(this.options[j].selected)
              obj[this.name] = this.options[j].value;
          
        }
        
        break;
        
      case 'TEXTAREA':
        
        obj[this.name] = this.value;
        
        break;
      
    }
    
  });
  
  return obj;
  
}



