pkg('mdv.servicemenu');

mdv.servicemenu.Search = function() {
	var nodes = {};
	var isOwnClick = false;
	var isOpen = false;
	
	function init(root) {
		nodes.root = root;
		nodes.popOut = $('#searchPopUp', nodes.root);
		nodes.form = $('form', nodes.popOut);
		nodes.textInput = $('input[type="text"]', nodes.popOut);
		nodes.fauxSubmit = $('.fauxSubmit', nodes.popOut);
		
		nodes.root.bind('click', onClick);
		nodes.fauxSubmit.bind('click', onClickFauxSubmit);
	}
	
	function onClick(event) {
		//event.preventDefault(); // Don't do this. Apparently cancels the submit event when pressing enter.

		isOwnClick = true;
		
		if(!isOpen) {
			isOpen = true;
			
			nodes.popOut.css({
				display: 'block'
			});
			nodes.textInput.get(0).focus();
			
			$(document.body).bind('click', onClickDocument);
		}
	}
	
	function onClickDocument(event) {
		if(!isOwnClick) {
			nodes.popOut.css({
				display: 'none'
			});
			
			isOpen = false;
			$(document.body).unbind('click', onClickDocument);
		}
		
		isOwnClick = false;
	}
	
	function onClickFauxSubmit(event) {
		event.preventDefault();
		
		nodes.form.get(0).submit();
	}
	
	init.apply(this, arguments);
}
