
/**
 * Attaches an onclick event to each link with rel="external" that opens the
 * link in a new window.
 */
function initExternalLinks() {
  var as = document.getElementsByTagName("a");
  for (var i = 0; i < as.length; i++) {
    if (as[i].getAttribute("rel") == "external") {
      as[i].onclick = openNewWindow;
    }
  }

  function openNewWindow() {
    window.open(this.href);
    return false;
  }
}

function togglePanel(id) {
  elm = document.getElementById(id);

  if (elm.className == 'innerFormContainer closed') {
    elm.className = 'innerFormContainer open';
  } else {
    elm.className = 'innerFormContainer closed';
  }

  return false;

}


Event.observe(window, 'load', products, false);


var myLightWindow = null;
function initLightWindow() {
  
    myLightWindow = new lightwindow({
      contentOffsetMargin: {
        width: 60
      },
      overlay: {
        opacity: 0.7,
        image: imagesPath + 'bg_lightbox.png'
      }
    });

}



function products() {
  if($('products') != null ){

    var ajaxLoader = $('ajaxLoader');
    var accordion = $('productsNav');
    var subSelected = accordion.select('div .selected')[0];

    if(accordion != null) {
      var selected = accordion.select('div.' + accordion.className)[0];
   
      accordion.select('.action').each(function(elm) {
        elm.onclick = function() {

          if(elm.next().className != selected.className){
            elm.next().setStyle({
              'width':'0px',
              'display':'block'
            });
            new Effect.Parallel([
              new Effect.Morph(selected, {
                style: 'width: 0px;'
              }),
              new Effect.Morph(elm.next(), {
                style: 'width: 457px;'
              })
              ], {
                duration: 0.5
              });

            selected.previous().removeClassName('selected');
            selected = elm.next();
            selected.previous().addClassName('selected');
            removeSubSelected()

          }

          ajaxContent(this.href);
          return false;
        }
      });

      accordion.select('div a').each(function(elm){
        elm.onclick = function() {
          ajaxContent(this.href);
          removeSubSelected()
          subSelected = this.up('li');
          subSelected.addClassName('selected');
          
          return false;
        }
      });

      function removeSubSelected() {
        if(subSelected != null) {
            subSelected.removeClassName('selected');
            subSelected = null;
         }
      }      

    }

    function ajaxContent(url) {
      ajaxLoader.setStyle({
        'display':'block'
      });
      new Ajax.Request(url, {
        parameters: {
          ajaxContext:'true'
        },
        onSuccess: function(response) {
          $('ajaxContent').replace(response.responseText);
          setupProducts();
        }
      });
    }

    function pagination() {
      $$('#products .pagination a').each(function(elm){
        elm.onclick = function() {
          ajaxContent(this.href);
          return false;
        }
      });
    }

  
    function productFilterForm(){

      var filterFrom = $('productFilterForm');
      if($('productFilterForm') != null ) {
        filterFrom.select('select').each(function(elm){
          elm.onchange = function() { 
            updateFilter();
          }
        });

        filterFrom.select('.filterButton a')[0].onclick = function() {
          ajaxContent(this.href);
          return false;
        }
      }

      function updateFilter() {
        ajaxLoader.setStyle({
          'display':'block'
        });
        filterFrom.request({
          parameters: {
            ajaxContext:'true'
          },
          onComplete: function(response) {
            $('ajaxContent').replace(response.responseText);
            setupProducts();
          }
        });
      }

    }

    function setupProducts() {
      ajaxLoader.hide();
      productFilterForm();
      pagination();
      setupSIFR();
      
      myLightWindow._setupLinks();

    }
    setupProducts();

  }

}





