var Flex = {

	onSubmit : function(event) {
		var event = fixEvent(event);
		var searchBox = event.target['s'];
		if (searchBox == null 
				|| searchBox.value.length == 0 
				|| searchBox.value == searchBox.getAttribute("label"))
			return false;

		return true;
	},

	onFocus : function(event) {
		var event = fixEvent(event);
		var target = event.target;
		if (target.value == target.getAttribute("label")) {
			if (!target.selectRange(0, target.value.length)) target.value = "";
		}
		return false;
	},

	onBlur : function(event) {
		var event = fixEvent(event);
		var target = event.target;
		if (target.value.length == 0 && target.getAttribute("label") != null) {
			target.value = target.getAttribute("label");
		}
		return true;
	},

	selectRange : function(index, length) {
		if (this.createTextRange) {
			var range = this.createTextRange(); 
			range.moveStart("character", index); 
			range.moveEnd("character", length - this.value.length); 
			range.select();
			return true;
		} else if (this.setSelectionRange) {
			this.setSelectionRange(index, length);
			return true;
		}
		return false;
	}
};

function fixEvent(event) {
	if (!event) var event = window.event;
	if (!event.target && event.srcElement)
		event.target = event.srcElement;

	if (event.target.nodeType == 3)	// Safari bug
		event.target = event.target.parentNode;

	return event;
}

if (window.addEventListener) {
	window.addEventListener('load', function() {
		var searchForm = document.getElementById("searchform");
		if (searchForm == null || searchForm["s"] == null) return;
		var searchBox = searchForm["s"];

		searchBox.selectRange = Flex.selectRange;

		searchForm.onsubmit = Flex.onSubmit;
		searchBox.addEventListener('focus', Flex.onFocus, false);
		searchBox.addEventListener('blur',  Flex.onBlur, false);


		if (searchBox.value.length == 0 && searchBox.hasAttribute("label"))
			searchBox.value = searchBox.getAttribute("label");
	}, false);
} else if (window.attachEvent) {
	window.attachEvent("onload", function() {
		var searchForm = document.getElementById("searchform");
		if (searchForm == null || searchForm["s"] == null) return;
		var searchBox = searchForm["s"];

		searchBox.selectRange = Flex.selectRange;

		searchForm.onsubmit = Flex.onSubmit;
		searchBox.attachEvent("onfocus", Flex.onFocus);
		searchBox.attachEvent("onblur",  Flex.onBlur);

		if (searchBox.value.length == 0 && searchBox.getAttribute("label") != null)
			searchBox.value = searchBox.getAttribute("label");
	});
}
