//I'm not proud of this
//Everything is so disorganized and messy

$(document).ready(function() {

  $.fn.fancybox.defaults.overlayColor = '#222';
  $("a.fancy").fancybox();
  
  //contact info call
  $('a[href$="contact"]').click(function(e){
    e.preventDefault();
    $.ajax({
      url:"/contact",
      cache:false,
      success: function(output){
        var contact = $(output).find('#contact-info');
        contact.find("#contact").hide();
        contact.find("address").css({"boxShadow":"none", "marginBottom":"0"});
        $.fancybox({content:contact});
      }
    });
  });

  //made by us video call
  $('a[href$="madebyus"]').click(function(e){
    e.preventDefault();
    $.ajax({
      url:"/madebyus",
      cache:false,
      success: function(output){
        var madebyus = $(output).find('video');
        $.fancybox({content:madebyus});
      }
    });
  });


  //not well implemented
  var page = 0;
  var results = 10;
  var items = $("#subnav li");
  items.hide();
  items.slice(page, results).show();
  $("#navside ul li > ul").parent().append("<span class='prevli'>prev</span><span class='nextli'>next</span>");

  $("span.nextli").click(function(){
    items.hide();
    page = page + results;
    limit = page + results;
    items.slice(page, limit).show();
    checkPage(page);
    if(limit > items.length)
    {
      $("span.nextli").hide();
    }
  });

  $("span.prevli").click(function(){
    items.hide();
    limit = page;
    page = page - results;
    items.slice(page, limit).show();
    checkPage(page);
    if($("span.nextli").is(":hidden"))
    {
      $("span.nextli").show();
    }
  });
  
  checkPage(page);

  if($("#navside").length) {
    $("#navside a").each(function() {
      var sidelink = $(this).attr("href");  
      var curr = location.href.split("/");

      if ($("#info").length) {

        var category = $("#info a").attr("href").split("/");

        if(sidelink.toLowerCase() == category[4].toLowerCase()) {
          $(this).parent("li").addClass("select");
        }

      }

      if (sidelink.toLowerCase() == curr[4].toLowerCase()) {
        $(this).parent("li").addClass("select");
      }

    });

  };

  //collection center title displays
  var cCenter = {

    links: $('#collectionc li a:first-child'),
    
    init: function(){
      //hide the spans
      cCenter.links.children('span').css({top:0});

      //hover calls
      cCenter.links.hover(this.onhover, this.offhover);

    },

    onhover: function(){

      $this = $(this);
      $this.children('span')
              .stop()
              .animate({
                top:-25
              },300);
    },

    offhover: function(){

      $this = $(this);
      $this.children('span')
            .stop()
            .animate({
              top:0
            });
    }
  };
  cCenter.init();
  

  //Item Section on product pages
  //creates tabbed content area
  var itemInfo = {
    //original container
    container: $('ul#item-info'),
    
    init: function(){
      
      //grabs all the item contents
      var info = itemInfo.container.find("li div");

      //create a nice wrapper for them and append after the original container
      $('<div></div>', {
        "class": 'item-content'
      }).insertAfter(itemInfo.container);

      //place all the item contents into the new wrapper
      info.appendTo('.item-content');

      $('<div></div>',{
        "class": "clearfix"
      }).appendTo('.item-content');


      //defalut show the description and make active h3.section-desc
      $('.item-content .item-desc').show();
      itemInfo.container.find("h3.section-desc")
                        .addClass('active');

      //attaching event handler
      itemInfo.container.find("li h3")
                        .on('click', this.show);

      itemInfo.colors();
    },

    show: function(){
      
      //setting this
      //grabbing classnames
      //item container
      //item
      var $this    = $(this),
          item     = $this.attr('class').split(' ')[0].slice(8),
          contents = $('.item-content'),
          content  = contents.find('.item-' + item);

      //add class name "active" to current object
      //remove from previous
      $this.addClass('active')
            .parent()
            .siblings()
            .children()
            .removeClass('active');

      contents.children()
              .not(content)
              .fadeOut('fast', function(){

                if (content.is(":hidden")) {
                  content.slideDown();
                }
              });
    },

    colors: function(){

      $('.item-content .item-color').find('img').each(function(){
        var $this   = $(this),
            alts    = $this.attr('alt').split('--'),
            nrfnum  = alts[0],
            tcxname = alts[1];
 
        $('<span></span>',{
          "id"    : "nrf_"+nrfnum,
          "class" : "color-tool",
          "text"  : "nrf: " + nrfnum + ", name: " + tcxname  
        }).appendTo('.item-color');

        $this.hover(function(){
          var position = $this.position();
          $('span#nrf_'+nrfnum).css({
            "left": position.left,
            "top": parseInt(position.top) + 20 + "px"
          }).show();
        }, function(){
          $('span#nrf_'+nrfnum).hide();
          });
      });
    }

  };
  itemInfo.init();

  
  //Sizing Chart
  var sizeTable = $('#sizechart div table, #sizechart div span.img');
  //Apply hover event to all returned elements
  sizeTable.each(function(index, domEle) {

    //chart focus events
    var parentDiv = $(domEle).parent().attr('class');
    //YouthB & YouthG classes are visually together
    if(parentDiv == 'YouthB' || parentDiv == 'YouthG') {
      $(domEle).hover(function(){
        sizeTable.parent()
        .not('.YouthG, .YouthB')
        .stop()
        .fadeTo('500', 0.5);
      }, function(){
        sizeTable.parent()
        .stop()
        .fadeTo('fast',1);
      });
    } else {
      $(domEle).hover(function(){
        sizeTable.parent()
        .not('.' + parentDiv)
        .stop()
        .fadeTo('fast',0.5);
      }, function(){
        sizeTable.parent()
        .stop()
        .fadeTo('fast',1);
      });
    }
  });

  //row focus events
  var tablerow = $('#sizechart div table');

  tablerow.each(function(){
    $(this).find('tbody tr').each(function(index, rowspan){
      $(rowspan).hover(function(){
        $(this).find('td').not(':first').css({'background':'rgba(0,0,0,0.2)','color':'#fff','text-shadow':'1px 1px 2px #000'});

        if ($(this).closest('div').attr('class') == 'YouthB')
        {
          $('.YouthG').children('span.img')
          .css({'background-position-x':'-' + (index+1)*75 + 'px'});
        } else {
          $(this).closest('div')
          .children('span.img')
          .css({'background-position-x':'-' + (index+1)*75 + 'px'});
        }
      },function(){
        $(this).find('td').not(':first').css({'background':'transparent','color':'#000','text-shadow':'none'});
        
        if ($(this).closest('div').attr('class') == 'YouthB')
        {
          $('.YouthG').children('span.img').css({'background-position-x':'0px'});
        } else {
          $(this).closest('div')
          .children('span.img')
          .css({'background-position-x':'0px'});
        }
      });
    });
  });

});

function checkPage(page) {
  if(page == 0) {
    $(".prevli").hide();
  } else {
    $(".prevli").show();
  }
}

function checkNext(next) {
  if(next == 0) {
    $(".nextli").hide();
  } else {
    $(".nextli").show();
  }

}


