var onload_events = new Array();

function add_to_onload(event)
{
	onload_events.push(event);
	window.onload = function() { 
		for (var x = 0; x < onload_events.length; x ++) {
			eval(onload_events[x]);
		}
	}
}

function add_popups()
{
	var lnks = document.getElementsByTagName("A");
	for (var x = 0; x < lnks.length; x ++) {
		var rel = lnks[x].getAttribute("rel");
		if (rel && rel.search(/^popup/) != -1) {
			lnks[x].onclick = function(e) {
				var pstr = this.getAttribute("rel").replace(/^popup_?/, "");
				window.open(this.href, "", pstr);
				stop_event(e);
				return false;
			}
		}
	}
}

function rollovers_ext()
{
	var ids = ["bidsub", "viewcart_sub", "cart_go", "search_sub"];
	for (var e = 0; e < ids.length; e ++) {
		var d = dom_id(ids[e]);
		if (d) {
			d.onmouseover = function() {
				if (this.src.search(/_over\.[a-z]{3,4}/) == -1) {
					this.src = this.src.replace(/\.([a-z]{3,4})$/, "_over.$1");
				}
			}
			d.onmouseout = function() {
				if (this.src.search(/_over\.[a-z]{3,4}/) != -1) {
					this.src = this.src.replace(/_over\.([a-z]{3,4})$/, ".$1");
				}
			}
		}
	}
}

function get_position(obj, type)
{
	var retval = 0;

	if (type == "Left" && obj.x) {
		return obj.x;
	}
	else if (obj.y) {
		return obj.y;
	}
	else {
		while (obj.offsetParent) {
			if (obj && obj.style && obj.style.position) obj.style.position = "relative";
			retval += eval("obj.offset" + type);
			obj = obj.offsetParent;
		}
		return retval;
	}
}

function by_tag(tag, obj)
{
	return (obj == null) ? document.getElementsByTagName(tag) : obj.getElementsByTagName(tag);
}

function dom_id(id, obj)
{
	return (obj == null) ? document.getElementById(id) : obj.getElementById(id);
}

function dom_create(tag)
{
	return document.createElement(tag);
}

function stop_event(e)
{
	if (! e) {
		e = window.event;
	}

	if (e.stopPropagation) {
		e.stopPropagation();
	}
	else {
		e.cancelBubble = true;
	}
}

function addEvent(elm, evType, fn, useCapture) 
{
	// cross-browser event handling for IE5+, NS6 and Mozilla
	// By Scott Andrew
	if (elm.addEventListener) {
		elm.addEventListener(evType, fn, useCapture);
		return true;
	} 
	else if (elm.attachEvent) {
		var r = elm.attachEvent('on' + evType, fn);
		return r;
	} 
	else {
		elm['on' + evType] = fn;
	}
}

function which_key(e)
{
	if (! e) {
		e = window.event;	
	}
	return (e.keyCode) ? e.keyCode : (e.which) ? e.which : e.charCode;
}

function event_target(e)
{
	if (! e) {
		e = window.event;	
	}
	return (e.target) ? e.target : (e.srcElement) ? e.srcElement : false;
}

function array_pos(val, array)
{
	for (var h in array) {
		if (array[h] == val) {
			return h;
		}
	}
	return -1;
}

function shift_key(e)
{
	if (! e) {
		e = window.event;	
	}
	return (e.shiftKey);
}

function find_parent(obj, parent)
{
	while (obj && obj.tagName.toLowerCase() != parent.toLowerCase()) {
		obj = obj.parentNode;
	}
	return (obj) ? obj : false;
}

function error_handler(err, url, line)
{
	alert("Error: " + err + "\nURL: " + url + "\nLine: " + line);
	return false;
}

//window.onerror = error_handler;

add_to_onload("add_popups()");
add_to_onload("rollovers_ext()");