﻿  function getDomInfo(obj){
                var result = new Object();
                var _element = obj;
                if (_element == null)
                {
                        return null;
                }

                //TODO (?) ensure that _element is visible...
                var style = _element.style.display;
                _element.style.display = "block";
                try
                {
                        if (_element.getBoundingClientRect)
                        {
                                // I.E. specific property
                                var r = _element.getBoundingClientRect();
                                var sTop = document.documentElement.scrollTop || document.body.scrollTop;
                                var sLeft = document.documentElement.scrollLeft || document.body.scrollLeft;
                                result.left = r.left + sLeft;
                                result.top = r.top + sTop;
                        }
                        else if (document.getBoxObjectFor)
                        {
                                // gecko/dom
                                var r = document.getBoxObjectFor(_element);
                                result.left = r.x;
                                result.top = r.y;
                        }
                        else
                        {
                                // safari/opera implementations
                                var l = _element.offsetLeft;
                                var t= _element.offsetTop;
                                var parent = _element.offsetParent;
                                if (parent != _element)
                                {
                                        while (parent)
                                        {
                                                l += parent.offsetLeft;
                                                t += parent.offsetTop;
                                                parent = parent.offsetParent;
                                        }
                                }

                                // opera & (safari absolute) incorrectly account for body offsetTop
                                var ua = navigator.userAgent.toLowerCase();
                                if (
                                        ua.indexOf('opera') != -1
                                        || ( ua.indexOf('safari') != -1 && el.style != null && el.style.position == 'absolute' )
                                ) {
                                        t -= document.body.offsetTop;
                                }
                                result.left = l;
                                result.top = t;
                        }
                        var p = (_element.parentNode)?_element.parentNode:null;
                        while (p && p.tagName != 'BODY' && p.tagName != 'HTML')
                        {
                                result.left -= p.scrollLeft;
                                result.top -= p.scrollTop;
                                if (p.parentNode)
                                        p = p.parentNode;
                                else
                                        p = null;
                        }

                        if (result.left != null && result.top != null)
                        {
                                result.width = parseInt(_element.offsetWidth,10);// > 0 ? parseInt(_element.clientWidth,10) : parseInt(_element.offsetWidth,10);
                                result.height =parseInt(_element.offsetHeight,10);// > 0 ? parseInt(_element.clientHeight,10) : parseInt(_element.offsetHeight,10);
                                result.right = result.left + result.width;
                                result.bottom = result.top + result.height;
                        }
                }
                catch (ex)
                {
                        //alert("Could not obtain display info for '" + _element.id + "'.");
                }
                _element.style.display = style;
                return result;
        }



  //var image1_s = new Image();
  //image1_s.src = 'images/Cooking-Classes_Thumbnail.jpg';
  //var image1_b = new Image();
  //image1_b.src = 'images/Cooking-Classes_Small.jpg';
  //var image2_s = new Image();
  //image2_s.src = 'images/Cooking-Classes2_Thumbnail.jpg';
  //var image2_b = new Image();
  //image2_b.src = 'images/Cooking-Classes2_Small.jpg';
  //var image3_s = new Image();
  //image3_s.src = 'images/Cooking-Classes3_Thumbnail.jpg';
  //var image3_b = new Image();
  //image3_b.src = 'images/Cooking-Classes3_Small.jpg';
  //var image4_s = new Image();
  //image4_s.src = 'images/Cooking-Classes4_Thumbnail.jpg';
  //var image4_b = new Image();
  //image4_b.src = 'images/Cooking-Classes4_Small.jpg';
  //var image5_s = new Image();
  //image5_s.src = 'images/Wedding-Gift-Certificate_Thumbnail.jpg';
  //var image5_b = new Image();
  //image5_b.src = 'images/Wedding-Gift-Certificate_Small.jpg';

  function enlargeImage(siObj){
    if(siObj == null){ return; }
    var biObj = new Image();
    biObj.src = siObj.src.replace(/Thumbnail/,'Small');

    var siDomInfo = getDomInfo(siObj);
    var siLeft = siDomInfo.left;
    var siTop = siDomInfo.top;
    var siWidth = siDomInfo.width;
    var siHeight = siDomInfo.height;


    var biDiv = document.getElementById('bigImgDiv');
    if(biDiv != null){
      biDiv.innerHTML = '';
      var diffX = parseInt(biObj.width) - parseInt(siObj.width);
      var diffY = parseInt(biObj.height) - parseInt(siObj.height); 

      biDiv.style.left = (siLeft - (diffX/2)) + 'px';
      biDiv.style.top = (siTop - (diffY/2)) + 'px';

      biDiv.onmouseout = enlargeImageNot;
      biDiv.appendChild(biObj);
      biDiv.style.display=''; 
    }
  }
  function enlargeImageNot(){    
    var biDiv = document.getElementById('bigImgDiv');
    biDiv.style.display='none';
    biDiv.innerHTML = '';
  }
