var clear_search_box = false;

attachListener(window, 'load',
	function()
	{
		if (window.focus_field) {
			var element = document.forms[focus_field.form].elements[focus_field.field];
			if (element.select) element.select();
			if (element.focus) element.focus();
		}
		
		var search_box = $('search-query');
		if (search_box && search_box.value == '') {
			with (search_box) {
				value = "Search the site";
				style.color = "#CCCCCC";
			}
			clear_search_box = true;
		}
	}
);

function onSearchFocus(input)
{
	if (clear_search_box) {
		with ($('search-query')) {
			value = '';
			style.color = '';
		}
		clear_search_box = false;
	}
}

function $(element)
{
	if (typeof element == 'string') {
		element = document.getElementById(element);
	}
	
	return element;
}

function attachListener(element, event_type, event_handler)
{
	if (element.addEventListener) {
		element.addEventListener(event_type, event_handler, false);
	} else if (element.attachEvent) {
		element.attachEvent('on' + event_type, event_handler);
	}
}

function popup(link, width, height, name, options)
{
	open(link.href, name, 'width=' + width + ',height=' + height + ',' + options).focus();
	return true;
}

function setInnerText(element, text)
{
	removeChildren(element);
	element.appendChild(document.createTextNode(text));
}

function removeChildren(element)
{
	for (var i = element.childNodes.length - 1; i >= 0; i--) {
		element.removeChild(element.childNodes[i]);
	}
}

String.prototype.trim = function() { return this.ltrim().rtrim(); }

String.prototype.ltrim = function()
{
	var result = this.match(/^\s+/);
	if (result)
		return this.substr(result[0].length);
	else
		return this;
}

String.prototype.rtrim = function()
{
	var result = this.match(/\s+$/);
	if (result)
		return this.substr(0, this.length - result[0].length);
	else
		return this;
}

function getElementsByClassName(parentElement, className)
{
	var all_elements = parentElement.getElementsByTagName('*');
	var elements = new Array();
	for (var i = 0; i < all_elements.length; i++) {
		if(elementHasClassName(all_elements[i], className)) {
			elements.push(all_elements[i]);
		}
	}
	return elements;
}

function elementHasClassName(element, className)
{
	var classNames = element.className.split(/\s+/);
	for (var i = 0; i < classNames.length; i++) {
		if (classNames[i] == className) {
			return true;
		}
	}
	return false;
}
