//$.include(JS_URL_BASE + 'jquery/jquery.image-preload.js');
$.include(JS_URL_BASE + 'jquery/jquery.shadow.js');
$.include(JS_URL_BASE + 'jquery/jquery.combobox.js');

$(document).ready(function () {
	//var select = $('<select id="ordenarProduto"></select>');
	var selected = '';
	var options = {};

	$('#paginacaoCompletaOrdenar')
		.find('span').not('.label').each(function (i) {
			var $link = $(this).find('a');
			var url = $link.attr('href');
			if ($(this).is('.selected')) {
				selected = url;
			}
			options[url] = $link.text();
		})
		.remove()
		.end()
		.end()
		.append($.comboBox(options, {
			id: 'ordenarProduto', 
			name: 'ordenarProduto', 
			selected: selected, 
			onChange: function (val, text) {
				window.location = val;
			}
		}));	

	var floaterImgProduto = null;
	var body = $('body').get(0);

	$('.blocoProduto .imagem img').hover(function () {
		$.data(this, 'mouseOut', false);
		var link = this;
		var img = this;
		var blocoProduto = $(this).parents('.blocoProduto').get(0);
		var imgFloater = $.data(blocoProduto, 'imgFloater');
		var self = $(blocoProduto);
		
		if (floaterImgProduto) {
			floaterImgProduto.hide();
			floaterImgProduto = null;
		}
		if (imgFloater) {
			floaterImgProduto = imgFloater.show();
			$('body').triggerHandler('mousemove');
		} else {
			var meta = self.metadata();
			if (meta.imgZoom) {
				$.preloadImage(meta.imgZoom, function () {
					imgFloater = $(this).addClass('floaterImgProduto').shadow(3, '#000').appendTo('body').css({
						'position': 'fixed',
						'z-index': 7
					});
					imgFloater._outerWidth = imgFloater.outerWidth();
					imgFloater._outerHeight = imgFloater.outerHeight();
					$.data(self.get(0), 'imgFloater', imgFloater);
					
					var mouseOut = $.data(img, 'mouseOut');
					if (!mouseOut) {
						floaterImgProduto = imgFloater;
						$(body).triggerHandler('mousemove');
					}
				});
			}
		}
	}, function (e) {
		if (floaterImgProduto) {
			$.data(this, 'mouseOut', true);
			floaterImgProduto.hide();
			floaterImgProduto = null;
		}
	}).mousemove(function (e) {
		if (floaterImgProduto) {
			var x = e.clientX;
			var y = e.clientY;
			var bw = body.clientWidth;
			var bh = body.clientHeight;
			var offset = 15;
			
			if (x + floaterImgProduto._outerWidth + offset > bw) {
				x = x - floaterImgProduto._outerWidth - offset;
			} else {
				x += offset;
			}
			
			if (y + floaterImgProduto._outerHeight + offset > bh) {
				y = bh - floaterImgProduto._outerHeight;
			} else {
				y += offset;
			}
			
			floaterImgProduto.css({
				top: y + 'px',
				left: x + 'px'
			});
		}
	});
});