/**
 * Endeca XS project
 * Common Javascript functions
 * 
 * No dependency on any framework like JQuery, Prototype, etc...
 *   
 */
var xsMain = {
  /**
   * Function to refresh the page when the sorting select tag is changed
   */     
  changeSortingLink: function(element)
  {
    var index = element.selectedIndex;
    var url   = element[index].value;
    
    var bases = document.getElementsByTagName('base');
    
    if(bases.length > 0)
    {
      url = bases[bases.length -1].href + url;
    }
    
    window.location = url;
  },
  /**
   * Function to toggle a class from an element
   */     
  toggleClass: function(element, classToAdd)
  {
    var classNames = element.className;
    classNames = classNames.split(' ');
    
    if(!this.arraySearch(classToAdd,classNames))
    {
      element.className += ' ' + classToAdd;
    }
    else
    {
      var newClasses = '';
      
      for(var i=0; i<classNames.length; i++)
      {
        if(classNames[i] != classToAdd)
          newClasses += ' ' + classNames[i];
      }
      
      element.className = newClasses;
    }
    return false;
  },
  /**
  * Uses JQuery
  */
  xsDimensionsBlockToggler: function (element)
  {       
        var aAfficher = false;

        if(element.hasClass('active')) {
          aAfficher = false;
        }
        else {
          aAfficher = true;
        }
        
        jQuery('.dimensions_list li.more').each(function () {
            jQuery(this).removeClass('active');
        });
        
        if(aAfficher) {
          element.addClass('active');
        }

         return false;
  },
  /**
   * Function to search for a string in an array
   */     
  arraySearch: function(needle, haystack)
  {
    for(var i=0; i< haystack.length; i++)
    {
      if(haystack[i] == needle)
      {
        return true;
      }
    }
    return false;
  }
}

jQuery(document).ready( function() {
  jQuery('.more_dimensions_link a').click(function () {      return xsMain.xsDimensionsBlockToggler(jQuery(this).parents('.dimensions_list li')); });
  jQuery('.more_links_block h3.close a').click(function () { return xsMain.xsDimensionsBlockToggler(jQuery(this).parents('.dimensions_list li')); });
});
