 $.fn.centerInClient = function(options) {

    var opt = { forceAbsolute: false,
                container: window,    // selector of element to center in
                completeHandler: null
              };
    $.extend(opt, options);
   
    return this.each(function(i) {
        var el = $(this);
        var jWin = $(opt.container);
        var isWin = opt.container == window;

        // force to the top of document to ENSURE that 
        // document absolute positioning is available
        if (opt.forceAbsolute) {
            if (isWin)
                el.remove().appendTo("body");
            else
                el.remove().appendTo(jWin.get(0));
        }

        // have to make absolute
        el.css("position", "absolute");

        // height is off a bit so fudge it
        var heightFudge = isWin ? 2.0 : 1.8;

        var x = (isWin ? jWin.width() : jWin.outerWidth()) / 2 - el.outerWidth() / 2;
        var y = (isWin ? jWin.height() : jWin.outerHeight()) / heightFudge - el.outerHeight() / 2;

        el.css("left", x + jWin.scrollLeft());
        el.css("top", y + jWin.scrollTop());

        // if specified make callback and pass element
        if (opt.completeHandler)
            opt.completeHandler(this);
    });
}


$(document) .ready(function () {
    
    $('#image_magnify') .toggle(function () {
    
   	$('#image_zoom').hide();
   
	$('div#magnify').show();
	$(this).text('Magnify Off');
	
	$("div#magnify").centerInClient({ container: $("div#normal_image img") });
	$("div#magnify").draggable({ containment: 'div#mag_boundary', scroll: false })

	var boxpad_position = $('div#mag_boundary').position();
	var boxpad_top = boxpad_position.top;
	var boxpad_left = boxpad_position.left;

	var box_position = $('div#normal_image img').position();
	var box_top = box_position.top;
	var box_left = box_position.left;
	
	var magbox_position = $('#magnify').position();
	var magbox_top = magbox_position.top;
	var magbox_left = magbox_position.left;
	
	/*
	$('#mag_results').append('mag boundary top = ' + boxpad_top + '<br />');
	$('#mag_results').append('box top = ' + box_top + '<br />');
	$('#mag_results').append('box left = ' + box_left + '<br />');
	
	$('#mag_results').append('magbox top = ' + magbox_top + '<br />');
	$('#mag_results').append('magbox left = ' + magbox_left + '<br />');
	*/
	
	
	var top_adjust = boxpad_top + 62;
	
	var magimagetop = magbox_top * 2 - top_adjust;
	var magimagetop2 = '-' + magimagetop;
	var magimageleft = magbox_left * 2 + 60;/* - 50 taken off for mag box margin left */
	var magimageleft2 = '-' + magimageleft;
	
	$('div.zoom_image img').css({'margin-top' : -magimagetop});
	$('div.zoom_image img').css({'margin-left' : -magimageleft});
		
	$("div#magnify").bind("drag", function(){
	
	var magbox_position2 = $(this).position();
	var magbox_top2 = magbox_position2.top;
	var magbox_left2 = magbox_position2.left;
	
	/*
	$('#mag_results').empty();
	$('#mag_results').append('magbox top new = ' + magbox_top2 + '<br />');
	$('#mag_results').append('magbox left new = ' + magbox_left2 + '<br />');
	*/
	
	var magimage_top = magbox_top2 * 2 - top_adjust;
	var magimage_top2 = '-' + magimage_top;
	var magimage_left = magbox_left2 * 2 + 60;/* - 50 taken off for mag box margin left */
	var magimage_left2 = '-' + magimage_left;
	
	$('div.zoom_image img').css({'margin-top' : -magimage_top});
	$('div.zoom_image img').css({'margin-left' : -magimage_left});
	
	/*$('#mag_results').append('mag image css top = ' + magimage_top2 + '<br />');*/
	
	});
	
	
	},
	function () {
	
	$('div#magnify').hide();
	$(this).text('Magnify On');
	$('#image_zoom').show();
	
});
});


$(document) .ready(function () {
    
    $('#image_zoom') .toggle(function () {
    
	$('div#mag_boundary').hide();
	$('#image_magnify').hide();
	$(this).text('Zoom Off');
	
	$('div.switch_close').trigger('click');
	
	$('div.full_zoom').show();
	$('div#zoom_notice').show();
	
	$("div#zoom_window img").draggable({ containment: 'div#zoom_window', scroll: false })
	
	},
	function () {
	$('div#zoom_notice').hide();
	$('div.full_zoom').hide();
	$('div.switch_open').trigger('click');
	$('div#mag_boundary').show();
	$('#image_magnify').show();
	$(this).text('Zoom On');
	
});
});