//
// phreedom namespace
//

var phreedom = function() {

	//
	// Cross-platform implementation of addEventListener
	//

	function addEventListener(obj, type, listener, useCapture) {

		if (obj.addEventListener)
			return obj.addEventListener(type, listener, useCapture);
		else if (obj.attachEvent)
			return obj.attachEvent('on'+type, listener);
		else
			obj['on'+type] = listener;
	}


	//
	// Cross-platform implementation of getElementById
	//

	function getElementById(id) {

		if (document.getElementById)
			return document.getElementById(id);
		else if (document.all)
			return document.all[id];
		else
			return null;
	}


	//
	// IE 4, 5 and 6 do not support PNG files with alpha transparency or the hover selector for input
	// elements, so we have to change the submit button image on mouseover to get a hover effect
	//

	var searchImage;

	function searchImageHover() {

		if (/^Mozilla\/4\.0 \(compatible; MSIE (4|5|6)\./.test(navigator.userAgent)) {

			searchImage = getElementById('search-image');

			if (!searchImage)
				return;

			addEventListener(searchImage, 'mouseover', function(e) {
				searchImage.src ='images/find-mouseover.png';
			}, false);

			addEventListener(searchImage, 'mouseout', function(e) {
				searchImage.src ='images/find.png';
			}, false);
		}
	}


	//
	// Show the word 'Site search' in the search query box and clear it when it gets focus
	//

	var searchQuery;
	var searchQueryDisabled;

	function searchQueryFocus() {

		searchQuery = getElementById('search-text');

		if (!searchQuery)
			return;

		searchQueryDisabled = true;
		searchQuery.style.color = '#808080';
		searchQuery.value = 'Site search';
		
		addEventListener(searchQuery, 'focus', function(e) {
			if (searchQueryDisabled == true) {
				searchQuery.value = '';
				searchQuery.style.color = 'black';
				searchQueryDisabled = false;
			}
		}, false);

		addEventListener(searchQuery, 'blur', function(e) {
			if (searchQuery.value == '') {
				searchQuery.style.color = '#808080';
				searchQuery.value = 'Site search';
				searchQueryDisabled = true;
			}
		}, false);
	}


	//
	// onload function
	//

	function onload() {

		// Use mouseover events to simulate the search submit button hover behavior in IE 4, 5 and 6
		searchImageHover();

		// Show the word 'Site search' in the search query box and clear it when it gets focus 
		searchQueryFocus();
	}


	// Export public functions

	var ns = new Object;
	ns.onload = onload;

	return ns;
}();

