﻿//20081025: Added multi-cart options and iframe underlay for IE 6-
var _clickedDetail=0;
var ls__nonMSDOMBrowser = (window.navigator.appName.toLowerCase().indexOf('explorer') == -1);
var _maxImages = 5;
var _imageZoomPrefix = 'imgZoom';
var _imageZoomPanel = 'pnlImageZoom';
var _imageFrameBackdrop;

/*******************************************************/
function ls_ShowElement(id) {
  ls_getElementById(id).style.display = 'block'; 
}

/*******************************************************/
function showImageDetail(rowId) {
  var asTables;
  asTables = _TablesDetail.split('|');
  try {
    for (var i=0; i<10; i++) {
      if (i==rowId) {
        try {
          ls_ShowElement(asTables[i]);
        } catch(e) {}
      } else {
        try {
          document.getElementById(asTables[i]).style.display = 'none';
        } catch(e) {}
      }
    }
  } catch(e) {}

  if (_clickedDetail==0) {
    window.location = '#ImagesTop';
  }
  _clickedDetail = 1;
  
  imageZoomHide();
}

/*******************************************************/
function addToCart(itemNumber, itemName, itemPrice) {
  document.getElementById('item_number').value = itemNumber;
  document.getElementById('item_name').value = itemName;
  document.getElementById('item_amount').value = itemPrice;

      if (itemNumber=='' && itemName=='' && itemPrice=='') {
        try {
          document.getElementById('item_add').value = '';
        } catch(e) {}
        try {
          document.getElementById('item_display').value = '1';
        } catch(e) {}
      }
  
  document.forms[0].action = 'https://www.paypal.com/cgi-bin/webscr';
  document.forms[0].target = '_blank';
  
  document.forms[0].submit();
} 

/*******************************************************/
function addToCartRow(itemNumber, itemTitleOnly, itemRowNumber, itemDescription, itemPrice) { 
//20081025: Initial creation
  var sItemName;
  sItemName = 
    itemTitleOnly + ' -- ' + itemDescription;
    
  addToCart(itemNumber + ' (' + itemRowNumber + ')', sItemName, itemPrice);
} 

/*******************************************************/
function addToCartRowOption(itemNumber, itemTitleOnly, itemRowNumber, itemDescription, itemPrice, optionListValue, optionListIndex) { 
//20081025: Initial creation
  var sItemName;
  sItemName = 
    itemTitleOnly + ' -- ' + itemDescription + ' (' + optionListValue + ')';
    
  addToCart(itemNumber + ' (' + itemRowNumber + '-' + (optionListIndex + 1) + ')', sItemName, itemPrice);
} 
    
/*******************************************************/
function imageZoomPosition(rowId) {
  var iLeft;
  var iZoomOffsetTop;
  var dImageWidth;

  try {
    dImageWidth = ls_getElementPosition(ls_getElementById(_imageZoomHostPrefix + _imageZoomPrefix + rowId)).width;
      
    if ((dImageWidth * 0.9) > ls_getElementPosition(ls_getElementById(_imageZoomHostPrefix + _imageZoomPrefix + rowId)).height) {
      iZoomOffsetTop = 40;
    } else {
      iZoomOffsetTop = 4;
    }
      
    iLeft = ls_getElementPosition(document.body).width;
    iLeft = iLeft / 2;
    iLeft = iLeft - (ls_getElementPosition(ls_getElementById(_imageZoomHostPrefix + _imageZoomPrefix + rowId)).width / 2);

    //ls_SetElementWidth(ls_getElementById(_imageZoomHostPrefix + _imageZoomPanel), dImageWidth)
    ls_SetElementY(ls_getElementById(_imageZoomHostPrefix + _imageZoomPanel), ls_GetScrollY() + iZoomOffsetTop); 
    ls_SetElementX(ls_getElementById(_imageZoomHostPrefix + _imageZoomPanel), iLeft);
  } catch (e) {}
}

/*******************************************************/
function imageZoomShow(rowId) {
//20081025: Added code to lay an iframe under the image for ie6- (for overlaying dropdown lists)
  try {
    //Hide them all 
    for (var i=1; i<=_maxImages; i++) {
      try {
        ls_getElementById(_imageZoomHostPrefix + _imageZoomPrefix + i).style.display = 'none';
      } catch(e) {}
    }
    
    ls_ShowElement(_imageZoomHostPrefix + _imageZoomPrefix + rowId);
    imageZoomPosition(rowId);

    ls_ShowElement(_imageZoomHostPrefix + _imageZoomPanel);    
  } catch (e) {}
  
  fixIEoverlay();
}

/*******************************************************/
function fixIEoverlay() {
//20081025: Initial creation
  try { //check if it's ie6- and underlay iframe
    var oIETest = /MSIE (\d+\.\d+);/g.exec(navigator.userAgent);  //Look for 'MSIE x.x;'
    var iVersion;
    if (oIETest) {
      iVersion = parseInt(/\d+/g.exec(oIETest[0])); 
      if (iVersion < 7) {
        if (!_imageFrameBackdrop) {
          _imageFrameBackdrop = document.createElement('iframe');
          _imageFrameBackdrop.frameBorder = 0;
          document.body.appendChild(_imageFrameBackdrop);
        }
        var oImageHost = ls_getElementById(_imageZoomHostPrefix + _imageZoomPanel);
        oImageHost.style.zIndex = '2';
        ls_SetElementY(_imageFrameBackdrop, ls_getElementPosition(oImageHost).y); 
        ls_SetElementX(_imageFrameBackdrop, ls_getElementPosition(oImageHost).x);
        ls_SetElementWidth(_imageFrameBackdrop, ls_getElementPosition(oImageHost).width);
        ls_SetElementHeight(_imageFrameBackdrop, ls_getElementPosition(oImageHost).height-2);
        _imageFrameBackdrop.style.position = 'absolute';
        _imageFrameBackdrop.style.zIndex = '1';
        _imageFrameBackdrop.style.display = 'block';
      }
    }
  } catch (e) {}
}

/*******************************************************/
function imageZoomHide() {
  //20081025: Added _imageFrameBackdrop
  try {
    ls_getElementById(_imageZoomHostPrefix + _imageZoomPanel).style.display = 'none';

    //reset everything on the zoom image
    ls_getElementById(_imageZoomHostPrefix + _imageZoomPrefix).style.height = '';
    ls_getElementById(_imageZoomHostPrefix + _imageZoomPrefix).style.width = '';
    ls_getElementById(_imageZoomHostPrefix + _imageZoomPrefix).src = '';    
  } catch (e) {}
  
  try {
    if (_imageFrameBackdrop) {
      _imageFrameBackdrop.style.display='none';
    }
  } catch(e){}
}

/*******************************************************/
function ls_GetScrollY() {
  if (ls__nonMSDOMBrowser) {
      return window.pageYOffset;
  } else {
    if (document.documentElement && document.documentElement.scrollTop) {
        return document.documentElement.scrollTop;
    } else if (document.body) {
        return document.body.scrollTop;
    }
  }
  return 0;
}

/*******************************************************/
function ls_getElementById(elementId) {
    if (document.getElementById) {
        return document.getElementById(elementId);
    } else if (document.all) {
        return document.all[elementId];
    }
    else return null;
}

/*******************************************************/
function ls_SetElementX(element, x) {
    if (element && element.style) {
        element.style.left = x + "px";
    }
}

/*******************************************************/
function ls_SetElementY(element, y) {
    if (element && element.style) {
        element.style.top = y + "px";
    }
}

/*******************************************************/
function ls_SetElementHeight(element, height) {
    if (element && element.style) {
        element.style.height = height + "px";
    }
}

/*******************************************************/
function ls_SetElementWidth(element, width) {
    if (element && element.style) {
        element.style.width = width + "px";
    }
}

/*******************************************************/
function ls_getElementPosition(element) {
    var result = new Object();
    result.x = 0;
    result.y = 0;
    result.width = 0;
    result.height = 0;
    if (element.offsetParent) {
        result.x = element.offsetLeft;
        result.y = element.offsetTop;
        var parent = element.offsetParent;
        while (parent) {
            result.x += parent.offsetLeft;
            result.y += parent.offsetTop;
            var parentTagName = parent.tagName.toLowerCase();
            if (parentTagName != "table" &&
                parentTagName != "body" && 
                parentTagName != "html" && 
                parentTagName != "div" && 
                parent.clientTop && 
                parent.clientLeft
            ) {
                result.x += parent.clientLeft;
                result.y += parent.clientTop;
            }
            parent = parent.offsetParent;
        }
    }
    else if (element.left && element.top) {
        result.x = element.left;
        result.y = element.top;
    }
    else {
        if (element.x) {
            result.x = element.x;
        }
        if (element.y) {
            result.y = element.y;
        }
    }
    if (element.offsetWidth && element.offsetHeight) {
        result.width = element.offsetWidth;
        result.height = element.offsetHeight;
    }
    else if (element.style && element.style.pixelWidth && element.style.pixelHeight) {
        result.width = element.style.pixelWidth;
        result.height = element.style.pixelHeight;
    } else if (element.clientWidth && element.clientHeight) {
        result.width = element.clientWidth;
        result.height = element.clientHeight;
    } if (element.style && element.style.width && element.style.height) {
        result.width = parseInt(element.style.width);
        result.height = parseInt(element.style.height);    
    }

    return result;
}
