(function(J){
	var EYE = window.EYE = function() {
		var _registered = {
			init: []
		};
		return {
			init: function() {
				J.each(_registered.init, function(nr, fn){
					fn.call();
				});
			},
			extend: function(prop) {
				for (var i in prop) {
					if (prop[i] != undefined) {
						this[i] = prop[i];
					}
				}
			},
			register: function(fn, type) {
				if (!_registered[type]) {
					_registered[type] = [];
				}
				_registered[type].push(fn);
			},
			isChildOf: function(parentEl, el, container) {
				if (parentEl == el) {
					return true;
				}
				if (parentEl.contains) {
					return parentEl.contains(el);
				}
				if ( parentEl.compareDocumentPosition ) {
					return !!(parentEl.compareDocumentPosition(el) & 16);
				}
				var prEl = el.parentNode;
				while(prEl && prEl != container) {
					if (prEl == parentEl)
						return true;
					prEl = prEl.parentNode;
				}
				return false;
			}
		};
	}();
	J(document).ready(EYE.init);
})(jQuery);

(function() {
	EYE.productOptions = function(){
		var show = function(){
				J(this).data('submenu').show();
			},
			hide = function(){
				J(this).data('submenu').hide();
			},
			cancelEv = function(){
				return false;
			}
		return {
			init: function(){
				J('#centerColumn>div.productsOptions')
					.find('>p.orderProductsBy a').bind('mouseenter', show).bind('mouseleave', hide).bind('click', cancelEv)
						.each(function(){
							J(this).data('submenu', J(this).parent().parent().find('>ul'));
						}).end()
					.find('>ul').bind('mouseenter', show).bind('mouseleave', hide).each(function(){
						J(this).data('submenu', J(this));
					}).end();
			}
		};
	}();
	EYE.register(EYE.productOptions.init, 'init');
})();
