/*
 * imgPreview jQuery plugin
 * Copyright (c) 2009 James Padolsey
 * j@qd9.co.uk | http://james.padolsey.com
 * Dual licensed under MIT and GPL.
 * Updated: 09/02/09
 * @author James Padolsey
 * @version 0.22
 */

function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}

(function (c) {
    c.expr[':'].linkingToImage = function (a, g, e) {
        return !! (c(a).attr(e[3]) && c(a).attr(e[3]).match(/\.(gif|jpe?g|png|bmp)$/i))
    };
    c.fn.imgPreview = function (j) {
        var b = c.extend({
            imgCSS: {},
            distanceFromCursor: {
                top: 10,
                left: 10
            },
            preloadImages: true,
            onShow: function () {},
            onHide: function () {},
            onLoad: function () {},
            containerID: 'imgPreviewContainer',
            containerLoadingClass: 'loading',
            thumbPrefix: '',
            srcAttr: 'href'
        },
        j),
            d = c('<div/>').attr('id', b.containerID).append('<img/>').hide().css('position', 'fixed').appendTo('body'),
            f = c('img', d).css(b.imgCSS),
            h = this.filter(':linkingToImage(' + b.srcAttr + ')');

        function i(a) {
            return a.replace(/(\/?)([^\/]+)$/, '$1' + b.thumbPrefix + '$2')
        }
        if (b.preloadImages) {
            (function (a) {
                var g = new Image(),
                    e = arguments.callee;
                g.src = i(c(h[a]).attr(b.srcAttr));
                g.onload = function () {
                    h[a + 1] && e(a + 1)
                }
            })(0)
        }
        h.mousemove(function (a) {
         /*var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }*/
            d.css({
              //  top: a.pageY + b.distanceFromCursor.top + 'px',
              //  left: a.pageX + b.distanceFromCursor.left + 'px'
               // bottom: (scrOfY + 10) + 'px',
                //left: (scrOfX +  179) + 'px'
            })
        }).hover(function () {
            var a = this;
            d.addClass(b.containerLoadingClass).show();
            f.load(function () {
                d.removeClass(b.containerLoadingClass);
                f.show();
                b.onLoad.call(f[0], a)
            }).attr('src', i(c(a).attr(b.srcAttr)));
            b.onShow.call(d[0], a)
        },


        function () {
            d.hide();
            f.unbind('load').attr('src', '').hide();
            b.onHide.call(d[0], this)
        });
        return this
    }
})(jQuery);