/*
CSS Browser Selector v0.4.0 (Nov 02, 2010)
Rafael Lima (http://rafael.adm.br)
http://rafael.adm.br/css_browser_selector
License: http://creativecommons.org/licenses/by/2.5/
Contributors: http://rafael.adm.br/css_browser_selector#contributors
*/
function css_browser_selector(u){var ua=u.toLowerCase(),is=function(t){return ua.indexOf(t)>-1},g='gecko',w='webkit',s='safari',o='opera',m='mobile',h=document.documentElement,b=[(!(/opera|webtv/i.test(ua))&&/msie\s(\d)/.test(ua))?('ie ie'+RegExp.$1):is('firefox/2')?g+' ff2':is('firefox/3.5')?g+' ff3 ff3_5':is('firefox/3.6')?g+' ff3 ff3_6':is('firefox/3')?g+' ff3':is('gecko/')?g:is('opera')?o+(/version\/(\d+)/.test(ua)?' '+o+RegExp.$1:(/opera(\s|\/)(\d+)/.test(ua)?' '+o+RegExp.$2:'')):is('konqueror')?'konqueror':is('blackberry')?m+' blackberry':is('android')?m+' android':is('chrome')?w+' chrome':is('iron')?w+' iron':is('applewebkit/')?w+' '+s+(/version\/(\d+)/.test(ua)?' '+s+RegExp.$1:''):is('mozilla/')?g:'',is('j2me')?m+' j2me':is('iphone')?m+' iphone':is('ipod')?m+' ipod':is('ipad')?m+' ipad':is('mac')?'mac':is('darwin')?'mac':is('webtv')?'webtv':is('win')?'win'+(is('windows nt 6.0')?' vista':''):is('freebsd')?'freebsd':(is('x11')||is('linux'))?'linux':'','js']; c = b.join(' '); h.className += ' '+c; return c;}; css_browser_selector(navigator.userAgent);


// Zoom 1.2 - jQuery image zooming plugin
// (c) 2011 Jack Moore - jacklmoore.com
// license: www.opensource.org/licenses/mit-license.php

(function ($) {
    var defaults = {
        url: false,
        icon: true,
        grab: false,
        duration: 120
    };

    $.fn.zoom = function (options) {
        return this.each(function () {
            var 
            root = this,
            $root = $(root),
            img = new Image(),
            $img = $(img),
            $icon,
            position = $root.css('position'),
            settings = $.extend({}, defaults, options || {}),
            mousemove = 'mousemove';

            $root.css({
                position: /(absolute|fixed)/.test(position) ? position : 'relative',
                overflow: 'hidden'
            });

            if (!settings.url) {
                settings.url = $root.find('img:first')[0].src;
                if (!settings.url) {
                    return;
                }
            }

            if (settings.icon) {
                $icon = $('<div class="zoomIcon">').appendTo($root);
            }

            img.onload = function () {
                var
                outerWidth,
                outerHeight,
                xRatio,
                yRatio,
                left,
                top,
                offset = $root.offset();

                function ratio() {
                    outerWidth = $root.outerWidth();
                    outerHeight = $root.outerHeight();
                    xRatio = (img.width - outerWidth) / outerWidth;
                    yRatio = (img.height - outerHeight) / outerHeight;
                }

                function move(e) {
                    left = (e.pageX - root.offsetLeft);
                    top = (e.pageY - root.offsetTop);

                    if (left > outerWidth) {
                        left = outerWidth;
                    } else if (left < 0) {
                        left = 0;
                    }

                    if (top > outerHeight) {
                        top = outerHeight;
                    } else if (top < 0) {
                        top = 0;
                    }

                    img.style.left = (left * -xRatio) + 'px';
                    img.style.top = (top * -yRatio) + 'px';

                    e.preventDefault();
                }

                ratio();

                $img
                .addClass('zoomImg')
                .css({
                    position: 'absolute',
                    top: 0,
                    left: 0,
                    opacity: 0,
                    width: img.width,
                    height: img.height,
                    border: 'none'
                })
                .appendTo($root);

                if (settings.grab) {
                    $img.mousedown(
                        function (e) {

                            $(document).one('mouseup',
                                function () {
                                    $img
                                    .stop()
                                    .fadeTo(settings.duration, 0);

                                    $(document).unbind(mousemove, move);
                                }
                            );

                            ratio();

                            move(e);

                            $img
                            .stop()
                            .fadeTo($.support.opacity ? settings.duration : 0, 1);

                            $(document)[mousemove](move);
                            
                            e.preventDefault();
                        }
                    );
                } else {
                    $img.hover(
                        function () {
                            offset = $root.offset();

                            ratio();

                            // Skip the fade-in for IE8 and lower since it chokes on fading-in
                            // and changing position based on mousemovement at the same time.
                            $img
                            .stop()
                            .fadeTo($.support.opacity ? settings.duration : 0, 1);
                        },
                        function () {
                            $img
                            .stop()
                            .fadeTo(settings.duration, 0);
                        }
                    )[mousemove](function (e) {
                        img.style.left = (e.pageX - offset.left) * -xRatio + 'px';
                        img.style.top = (e.pageY - offset.top) * -yRatio + 'px';
                    });                
                }
            };

            img.src = settings.url;
        });
    };

    $.fn.zoom.defaults = defaults;
}(jQuery));

jQuery(document).ready(function(){
	jQuery('#ex').zoom();
});
;

