function setVariants(form) {
	var out = "";
	var variant = form.variantID;
	var e = form.elements;
	for (var i=0; i<e.length; i++) {
    if (e[i].id.indexOf("variantGroup") != -1) { out += "|"+e[i].value; }
	}
	variant.value = out.substring(1);
	return true;
}

(function($) {

$('.img-main:first').addClass('first')
  .siblings('.img-main').hide();

/** =PRODUCT DETAIL functions
************************************************************/
var frm = document.getElementById('MainForm'),
    price = document.getElementById("price"),
    priceText = document.getElementById("base-price");

var updatable = frm && price && priceText;

function updatePrice() {
  if (!updatable) { return; }

	var e = frm.elements;
	var thisPrice = price.getAttribute('price').replace(/,/, '');
	thisPrice = parseFloat(thisPrice);

	$(frm).find('.variant-group').each(function() {
    var priceAdjust = parseFloat($(this).find('option:selected')[0].getAttribute('price'));
    thisPrice += priceAdjust;
	});

	thisPrice = (Math.round(thisPrice*100)/100) + '';
	if (thisPrice.indexOf(".") == -1) { thisPrice += '.00'; }
	if (thisPrice.indexOf(".") == thisPrice.length-2) { thisPrice += '0'; }

	var arr = thisPrice.split('.');
	for (var j=arr[0].length-3; j>0; j-=3) {
		arr[0] = arr[0].substr(0, j) + ',' + arr[0].substr(j);
	}

	$(priceText).text('$' + arr[0] + '.' + arr[1]);
}


function setVariantDropDown(group, variant) {
	var group = document.getElementById(group);
	group.selectedIndex = variant;
	updatePrice();
	$(group).triggerHandler('blur');
}

/* call updatePrice() right away */

updatePrice();


/** =image switcher
************************************************************/
  
var $lbLinks = $('a.img-main'),
    $variantImage = $('<a class="fancybox img-main variant" href="#"><img/><span class="replace">Click to Zoom</span><span class="description"></span></a>').insertAfter('a.img-main:last');

function showDetailImage(img) {
  var imgStart = img.slice(0, img.indexOf(' ')),
      $fader = $lbLinks.filter(function() {
        return this.href.indexOf(imgStart) != -1;
      });

  if ( !$fader.is(':visible') ) {
    $('a.img-main:visible').fadeOut(200, function() {
        $fader.fadeIn(200);
    });      
  }
}  

function showVariantImage(img,el) {
  var url = 'http://steelcase.americommerce.com/Controls/i/is.aspx?path='+img+'&lr=t&bw=276&w=276';
  var href = 'http://steelcase.americommerce.com/Controls/i/is.aspx?path='+img+'&lr=t&bw=600&w=600';

  $('a.img-main:visible').hide();
  $variantImage
  .attr({href: href})
    .find('img').attr({src: url})
  .end()
    .find('.description').html(el.getAttribute('alt'))
  .end()
  .show();
  
}


/** =event handlers for product detail functions
************************************************************/

$(document).ready(function() {

  $('#variants select').change(function() {
    updatePrice();
    var variantImageId = this.id + '_' + this.selectedIndex;
    if ( document.getElementById(variantImageId) ) {
      $('#' + variantImageId).triggerHandler('click');
    }
  });

  var $framed = $('#detail-carousel a.framed');
  
  $framed.bind('click', function() {
    $framed.removeClass('active');
    $(this).addClass('active');
    var imgFile = this.hash.replace('#','');
    showDetailImage(imgFile);
    return false;
  });

  $('.variant-images img').bind('click', function() {
    $framed.removeClass('active');
    var idParts = this.id.split('_');
    var imgCount = idParts.pop();
    var vGroup = idParts.join('_');
    
    setVariantDropDown(vGroup, imgCount);

    var fullImgURL = '/shared/images/product/' + $(this).attr('rel');
    showVariantImage(fullImgURL,this);
  });

  $('#txtQuantity').change(updatePrice);

});

/** =tabs
************************************************************/
  $(document).ready(function() {
    var scrollable = scrollableElement('html', 'body');
    var $tabLinks = $('#tab-product').find('.domtabs a');

    $tabLinks.click(function() {
      $(this).parent().addClass('active').siblings('li').removeClass('active');
      var thisHash = this.hash;
      $(thisHash).parent().show().siblings('.tab-content').hide();
      return false;
    });

    if (location.hash && $tabLinks.filter('[href$='+ location.hash + ']').length) {
      $tabLinks.filter('[href$='+ location.hash + ']').triggerHandler('click');
      if ($(scrollable).scrollTop() == 0) {
        var scrollTo = $('#tab-product').offset().top;
        $(scrollable).animate({scrollTop: scrollTo}, 250);
      }
    } else {
      $tabLinks.eq(0).triggerHandler('click');
    }
    $('.prSnippetReadReviews a').live('click', function() {
      $tabLinks.filter('[href$=reviews]').triggerHandler('click');
      var scrollTo = $('#tab-product').offset().top;
      $(scrollable).animate({scrollTop: scrollTo}, 250);
      return false;
    });
  });

  function scrollableElement(els) {
    for (var i = 0, argLength = arguments.length; i < argLength; i++) {
      var el = arguments[i],
          $scrollElement = $(el);
      if ($scrollElement.scrollTop() > 0) {
        return el;
      } else {
        $scrollElement.scrollTop(1);
        var isScrollable = $scrollElement.scrollTop() > 0 ? true : false;
        $scrollElement.scrollTop(0);
        if (isScrollable) {
          return el;
        }
      }
    }
    return [];
  }

})(jQuery);
