/**
 * Tecnifibre - www.tecnifibre.com main javasciprt file
 * 
 * @date    2009/05/01
 *
 * @author  Jean-Philippe Serafin   <jean-philippe.serafin@dev-solutions.fr>
 * @author  Sophie Blanchon         <sophie.blanchon@dev-solutions.fr>
 * @author  Benjamin Grandfond      <benjamin.grandfond@dev-solutions.fr>
 */

var header_images;
var paused;
var show_controller;

window.addEvent('domready', function() {
   
  /* slide show */
  if(header_images){
    var myHeadShow = new Slideshow('slide_displayer', header_images, {controller: show_controller, height: 336, thumbnails: false, width: 990, delay: 4000, paused : paused});
  }
  /* start menu initialization */  
	$$('li.main_navigation_item ul').each(function(element, index) {
	  element.setStyle('display', 'none');        
    var link = element.getParent('li').getFirst(); // récupère le lien

    link.addEvent('mouseover', function(e) {
      e.stop();
      element.setStyle('display', 'block');
    });
    
    link.getParent('li').addEvent('mouseleave', function(e) {
      e.stop();
      element.setStyle('display', 'none');
    });
	});



  if($('partners_information'))
  {
    var carousel = new noobSlide({
      box: $('box'),
      items: $$('#box .ligne'),
      size: 709,
      handle_event: 'mouseover',
      handles: $$('#partners_navigation li a'),
      onWalk: function(currentItem, currentHandle) {
        this.handles.each(function(el,id){el.erase('id')});
        currentHandle.set('id', 'partners_information_on');
      }
    });
   }

  if($('partners_balls_information'))
  {
    var carousel = new noobSlide({
      box: $('box_balls'),
      items: $$('#box_balls .ligne'),
      size: 709,
      handle_event: 'mouseover',
      handles: $$('#partners_balls_navigation li a'),
      onWalk: function(currentItem, currentHandle) {
        this.handles.each(function(el,id){el.erase('id')});
        currentHandle.set('id', 'partners_balls_information_on');
      }
    });
   }

  // change the left navigation puce on mouseover
  $$('.left_navigation_puce').getParent().each(function(el){
    el.addEvent('mouseover', function(){swapImage(el, 'over')});
    el.addEvent('mouseout',  function(){swapImage(el, 'out') });
  });
  
  
//   milkbox - overviews gallery products 
  if($$('.product_overview'))
  {    
    if($$('.product_thumbnail'))
    {
      $$('.product_thumbnail').each(function(element, index){
        element.addEvent('click', function(e){
          $$('.product_overview').each(function(el, id){
            if(id == index)
            {
              e.stop();
              el.fade('in');
              el.getChildren('img').removeClass('hidden');
            }
            else
            {
              e.stop();
              el.fade('out');
              el.getChildren('img').addClass('hidden');
              el.getChildren('img').setStyle('visibility', 'visible');
            }
          }, this);
        }, this);
      });
    }
  }
  
  // form store finder
  if($('frm_finder'))
  {
    $('store_search').addEvent('click', function(e){
      if(this.value == "CITY OR ZIP CODE")
      {
        this.value = "";
      }
    });
    new myAutocompleter($('store_search'), '/get_cities.php', {
      'postVar': 'label'
    });
  }

  //slider news
  if($$('p.slider_news').length)
  {
    var carousel = new noobSlide({
      box: $('box'),
      items: $$('#box .slider_news'),
      size: 303,
      autoPlay: true
    });
  }
    
  // carousel script
  if($('product_information'))
  {
    var carousel = new noobSlide({
      box: $('box'),
      items: $$('#box .ligne'),
      size: 709,
      handle_event: 'mouseover',
      handles: $$('#product_info_navigation li a'),
      onWalk: function(currentItem, currentHandle) {
        this.handles.each(function(el,id){el.erase('id')});
        currentHandle.set('id', 'product_information_on');
      }
    });
  }
  
  // links slider
  if($('product_slider'))
  {
    $$('a.product_slider').addEvent('click', function(e){
      e.stop();
    });
    var carousel = new noobSlide({
      box: $('product_box'),
      items: $$('#product_box .product_slider_list'),
      size: 692,
      addButtons: {
        previous: $('previous'),
        next: $('next')
/*
        previous: $('next'),
        next: $('previous')
*/
      },
      button_event: 'click',
      onWalk: function(currentItem, currentHandle) {
        console.log(currentItem);
        if(this.items.length < 2)
        {
          this.buttons.previous[0].setStyle('visibility', 'hidden');
          this.buttons.next[0].setStyle('visibility', 'hidden');
        }
        else
        {
          if(currentItem == this.items[0])
          {
            this.buttons.previous[0].setStyle('visibility', 'hidden');
          }
          else this.buttons.previous[0].setStyle('visibility', 'visible');
        }
      }
    });
  }
  
  // textarea chars remaining
  if($('sponsorship_justification'))
  {
    var remaining = 1500 - $('sponsorship_justification').value.length;
    $('char_remaining').set('text', remaining);
    $('sponsorship_justification').addEvent('keyup', function(e){
      remaining = 1500 - this.value.length;
      $('char_remaining').set('text', remaining);
    });
  }
  
  /* newsletter */
  if($('sf_newsletter_form_send'))
  {
    var value = '';
    
    $('sf_newsletter_form_send').getFirst('p').getChildren('input').addEvents({
      'focus': function(e){
        value = e.target.value;
        e.target.value = '';
      },
      'blur': function(e){
        if(e.target.value == '')
        {
          e.target.value = value;
        }
        
        if(e.target.id == 'newsletter_email')
        {
          if(checkEmail(e.target.value))
          {
            e.target.setStyles({
              'background': '#FFFFFF url(\'/images/general/accepted.png\') right 2px no-repeat',
              'border': '1px solid #949494'
            });
          }
          else
          {
            e.target.setStyles({
              'background': '#FFFFFF url(\'/images/general/cancel.png\') right 2px no-repeat',
              'border': '1px solid #FF0000'
            });
          }
        }
      }
    });
  }
});

function checkEmail(email)
{
  var pattern = /[a-zA-Z0-9_-]+@[a-zA-Z0-9-]{2,}[.][a-zA-Z]{2,3}/;
  if(email.test(pattern))
  {
    return true;
  }
  
  return false;
}

function commentForm()
{
  if($('form_comment'))
  {
    $('form_comment').addEvent('submit', function(e){
      e.stop();
      new Request.HTML(
      {
        url: $('form_comment').action,
        onRequest: addLoader($('TB_ajaxContent')),
        update: $('TB_ajaxContent'),
        evalScript: true
      }).post($('form_comment'));
    });
  }
}

/** 
 * Change the link puce switch event (mouseover or mouseout)
 *
 * @param   el      Element     the link target
 * @param   evt     String      the event 'over' or 'out'
 *
 * @author  Benjamin Grandfond <benjamin.grandfond@dev-solutions.fr> 
 */
function swapImage(el, evt)
{
  var puce;
  if (evt.test(/over/)) puce = '/images/general/puce_on.png';
  else puce = el.hasClass('opened') ? '/images/general/puce_on.png' : '/images/general/puce_off.png';

  el.getFirst('img').set('src', puce);
}

function addLoader(element)
{
  element.setStyle('position', 'relative');
  divLoader = new Element('div', {id: 'div-loader'});
  size = element.getSize();
  divLoader.setStyle('width', size.x+'px');
  divLoader.setStyle('height', size.y+'px');
  divLoader.setStyle('background', '#eee');
  divLoader.setStyle('position', 'absolute');
  divLoader.setStyle('top', '0');
  divLoader.setStyle('left', '0');
  divLoader.setStyle('opacity', '0.6');
  imgLoader = new Element('img', {id: 'img-loader', src: '/images/general/loader.gif'});
  imgLoader.setStyle('position', 'absolute');
  imgLoader.setStyle('left', ((size.x/2)-8)+'px');
  imgLoader.setStyle('top', size.y/4+'px');
  element.adopt(divLoader);    
  element.adopt(imgLoader);    
}
function compare(element){
  addLoader(element.getParent('div.comparator_item'));
  new Request.HTML(
  {
    url:element.getParent('form').action,
    onComplete: hideLoader(element.getParent('div.comparator_item')),
    update:element.getParent('div.comparator_item'),
    evalScript:true
  }).post(element.getParent('form'));
  return false;
}
function hideLoader()
{

}

