JS.Event.addReadyListener(function () {
	
	var node_simple = JS.Dom.query('#languages li.search');
	var node_expanded = JS.Dom.query('#languages li.search-expanded');
	
	if (!node_simple || !node_expanded) return;
	node_simple = node_simple[0];
	node_expanded = node_expanded[0];
	
	var node_label = JS.Dom.query('label', node_expanded)[0];
	var node_input = JS.Dom.query('input', node_expanded)[0];
	
	function showSearch () {
		JS.Dom.addClassName(node_simple, 'hidden');
		JS.Dom.removeClassName(node_expanded, 'hidden');
		
		var nodeForm = node_expanded.getElementsByTagName('form')[0];
		var nodeDiv = nodeForm.getElementsByTagName('div')[0];
		var newWidth = nodeForm.offsetWidth;
		
		if (JS.Object.browser().ie6) {
			newWidth = '167px';
		} else if (JS.Object.browser().ie7) {
			newWidth = '169px';
		}
		
		var anim = new JS.Anim(nodeForm, {
			from: {width: '0px'},
			to: {width: newWidth + 'px'},
			transition: JS.AnimHelpers.Transitions.DoubleReverse,
			speed: 400
		});
		
		nodeDiv.style.width = '300px';
		anim.start();
		
		return false;
	}
	
	//When search icon is clicked show full form
	var lnk = JS.Dom.query('a', node_simple)[0]
	if (lnk) {
		JS.Event.addListener(lnk, 'click', function (ev) {
			showSearch();
			JS.Event.stopEvent(ev);
		});
	}
	
	if (node_label && node_input) {
		//When clicked on label, hide it and focus on input
		JS.Event.addListener(node_label, 'click', function () {
			JS.Dom.addClassName(node_label, 'hidden');
			node_input.focus();
		});
		
		//When focus is on input, hide label
		JS.Event.addListener(node_input, 'focus', function () {
			JS.Dom.addClassName(node_label, 'hidden');
		});
		
		//When input looses focus, show label if input value is empty
		JS.Event.addListener(node_input, 'blur', function () {
			var v = this.value.replace(/^\s+|\s+$/, '');	//Trim
			if (!v) {
				JS.Dom.removeClassName(node_label, 'hidden');
			}
		});
	}
	
});