var products = new Array();
function Product() {
  lens_id = 0;
}
function SKU() {}
var lenses = new Array();
function Lens() {}

function lightboxDidClose() {
  if (swfElement('product_main_3d'))
    swfElement('product_main_3d').startMotion();
}

function lightboxWillOpen() {
  if (swfElement('product_main_3d'))
    swfElement('product_main_3d').stopMotion();
}

function setCurrentProductID(productID) {
  var product = products[productID];
  if (product.reviews) {
      document.getElementById('BVFrame').src='http://google.com' + productID + '/reviews.htm?format=embedded';
	  document.getElementById('BVSVPReadAllReviews').href='http://google.com/' + product.reviews_type + '/' + productID + '/reviews.htm';
   }
  if (product.mainImage)
    $('product_main_image').src = product.mainImage;
  else
    swfElement('product_main_3d').loadNewVideo(product.main3d);
  $('product_lightbox').title = product.name;
  $('enlarge').href = product.viewLargeURL;
  if ($('product_lightbox'))
    $('product_lightbox').href = product.viewLargeURL;
  if (product.viewLarge3d)
    $('threedee').href = product.viewLarge3d;

  $('product_select').value = productID;
  currentProductID = productID;

  if ($('size_select')) {
    var options = $('size_select').options;
    if (options != null)
    for (var i=0;i<options.length; i++) {
        var option = options[i];
      if (option.value != "") {
        var sku = products[currentProductID].skus[option.value];
            if ( sku == null || (!sku.canSell)) {
                option.innerHTML = option.value + " (Call)";
      } else {
                option.innerHTML = option.value;
            };
      };
    };
  }

  if (product.limitedQuantity) {
    $('quantity').hide();
    $('limited_quantity').show();
    $('quantity').value = '1';
    $$('li.phoneorder').hide();
  } else {
    $('quantity').show();
    $('limited_quantity').hide();
    $$('li.phoneorder').show();
  }
  
  setCurrentSize(currentSize);

  if (product.lens_id) {
    changeLens(product.lens_id);
  }
  cmCreateProductviewTag(product.sku_number, productTypeName, 'cat'+product.parent_category_id, product.sap_id);

  return false;
}

function setCurrentSize(size) {
  
  if ($('product_availability') && products[currentProductID].skus) {
    var sku;
    if (products[currentProductID].skus.length == 1)
      sku = products[currentProductID].skus[0];
    else
      sku = products[currentProductID].skus[size];
    if (sku == null) {
      $('add_to_cart').hide();
      $('quantity').disabled = 'true';
      $('size_select').value = "";
      $('product_availability').innerHTML = "Please select an available size";    
    } else {
      $('product_availability').innerHTML = unescapeHtml(sku.availability);
      $('product_availability').className = sku.availabilityStyle;
      $('product_price').innerHTML = sku.price;
      $('web_id').value = sku.id;
      if ($('size_select'))
        $('size_select').value = size;
      if (sku.canSell) {
        $('add_to_cart').show();
        $('quantity').disabled = null;
      } else {
        $('add_to_cart').hide();
        $('quantity').disabled = 'true';
      }
    }
  }
  currentSize = size;
}

function productSelectDidChange() { setCurrentProductID($('product_select').value); }
function sizeSelectDidChange() { setCurrentSize($('size_select').value); }

var current_tab = 'colors';

function changeLens(newLensID) {
  $('lens_selector').hide();
  
  var lens = lenses[newLensID];
  $('lens_color').innerHTML = $('show_lenses_link_title').innerHTML = lens.color;
  $('show_lenses_link_image').src = '/images/catalog/lens_images/pucks/' + lens.imageName + '_thumb_15.png';
  $('lens_application').innerHTML = lens.application;
  $('lens_light_transmission').innerHTML = lens.lightTransmission;
  $('lens_protection_index').innerHTML = lens.protectionIndex;
  $('lens_usage').innerHTML = lens.usage;
  $('lens_neutral').innerHTML = lens.neutral;
  
  isPhotochromic = lens.isPhotochromic;
  currentLensID = newLensID;
  updateLensImages();
  
  return false;
}
  
function environmentSelectDidChange() {
  currentLensEnvironment = $('environment_select').value;
  updateLensImages();
}

function updateLensImages() {
  var lens = lenses[currentLensID];
  $('overlay_foreground').style.background = 'url(/images/catalog/lens_images/' + currentLensEnvironment + '/' + lens.imageName + '.jpg) no-repeat';
  $('overlay_background').style.background = 'url(/images/catalog/lens_images/' + currentLensEnvironment + '/no_lens.jpg) no-repeat';

  var overlayPhotochromic = $('overlay_photochromic');
  if (isPhotochromic) {
    overlayPhotochromic.style.background = 'url(/images/catalog/lens_images/' + currentLensEnvironment + '/' + lens.imageName + '_a.jpg) no-repeat';
    overlayPhotochromic.show();
    $('photochromic_background').show();
    var overlayForeground = $('overlay_foreground')
    if (overlayForeground.clientWidth < 80) {
      $('overlay_photochromic').style.width  = overlayForeground.style.width = '375px';
      $('lens_slider').style.left = '368px';
    }
  } else {
    $('photochromic_background').hide();    
    overlayPhotochromic.hide();
  }
}

function mouseDown(e) {
  document.onmousemove = mouseMoved;
  document.onmouseup = function() { document.onmouseup = document.onmousemove = null; };
  mouseMoved(e);
}

function mouseMoved(e) {
  e = new Event(e);
  var overlayForeground = $('overlay_foreground');
  var overlayBackground = $('overlay_background');
  var overlayOffset = overlayForeground.getPosition();
  var newWidth = e.page.x - overlayOffset.x;
  if (isPhotochromic && (newWidth < 80)) {
    newHeight = e.page.y - overlayOffset.y - 3.5;
    if (newHeight < 28)
      newHeight = 28;
    else if (newHeight > 168)
      newHeight = 168;
    $('photochromic_slider').style.top = '' + newHeight + 'px';
    var opacity = 1.0 - ((168 - newHeight) / 140.0);
    $('overlay_photochromic').style.opacity = opacity;
    $('overlay_photochromic').style.filter = 'alpha(opacity=' + parseInt(opacity*100) + ')';
  } else {
    if (newWidth < 0)
      newWidth = 0;
    else if (newWidth > overlayBackground.clientWidth)
      newWidth = overlayBackground.clientWidth;
    $('overlay_photochromic').style.width = overlayForeground.style.width = '' + newWidth + 'px';
    $('lens_slider').style.left = '' + newWidth - 6.5 + 'px';
  }
}

var current_page = 'page_one'
function setLbThumbPage(new_page) {
  $(current_page).addClass('hide');
  $(current_page + "_header").addClass('hide');
  current_page = new_page;
  $(current_page).removeClass('hide');
  $(current_page + "_header").removeClass('hide');
}

function setSelectedMedia(selected_media) {
  $$('li.selected').removeClass('selected');
  $(selected_media).addClass('selected');
  current_media = selected_media;
}

function unescapeHtml(html) {
    var element = new Element('div')
    element.innerHTML = html;

    return element.innerText ? element.innerText : element.textContent;
}

function addToCart(form) {
  new Request({method: 'get', async :false}).send({ url: '/cart/webservice/cart.php?action=x&web_id=' + form.web_id.value + '&qty=' + form.qty.value});
  new lgw("/inline_cart/?parent_web_id=" + form.web_id.value);
  return false;
}