(function($){
	EYE.search = function() {
		var setValues = function() {
			$('#searchCategory, #searchSize')
				.each(function() {
					var inputVal = parseInt(this.value, 10);
					if (inputVal > 0){
						$('#'+this.id+'Select span')
							.text($('#'+this.id+'Options a[rel='+inputVal+']').text());
					}
				});
		};
		var setLabel = function() {
			var el = $('#searchQuery')
						.bind('focus', focus)
						.bind('blur', blur);
			if (el.val() == '' ) {
				el.val(el.attr('rel'));
			}
		};
		var focus = function() {
			if (this.value == $(this).attr('rel')) {
				this.value = '';
			}
		};
		var blur = function() {
			if (this.value == '') {
				this.value = $(this).attr('rel');
			}
		};
		var indx = false;
		var showOptions = function() {
			if (indx !== false) {
				hideOptions();
			}
			indx = $(this).parent().find('a').index(this);
			$('#searchForm ul')
				.eq(indx)
					.css({
						top: this.offsetTop + this.offsetHeight - 1,
						left: this.offsetLeft + 1,
						display: 'block'
					});
			$(document).bind('click', hideOptions);
			this.blur();
			return false;
		};
		var hideOptions = function(ev) {
			if (ev) {
				var targetEl = $(ev.target).closest('a');
				if (targetEl.size() == 1) {
					var parentEl = targetEl.closest('#searchForm ul');
					if (parentEl.size() == 1) {
						var id = $('#searchForm p a span')
										.eq(indx).text(targetEl.text())
										.parent().get(0).id;
						$('#'+(id.replace('Select', ''))).val(targetEl.attr('rel'));
						$('#searchForm')
							.find('#searchQuery').each(function(){
								if (this.value == $(this).attr('rel')) {
									this.value = '';
								}
							}).end().submit();
					}
				}
			}
			$('#searchForm ul').hide();
			$(document).unbind('click', hideOptions);
			indx = false;
		};
		return {
			init: function() {
				setValues();
				setLabel();
				$('#searchForm p a').bind('click', showOptions);
			}
		};
	}();
	EYE.register(EYE.search.init, 'init');
})(jQuery);

$(document).ready(
	function(){
		$("a[rel^='gallery']").fancybox();
	}
);