function submit_enter(myfield,e)
{
	var keycode;
	if(window.event)
		keycode = window.event.keyCode;
	else if(e)
		keycode = e.which;
	else
		return true;

	if(keycode==13) {
		myfield.form.submit();
		return false;
	}
	return true;
}

function set_class(o,s)
{
	o.className = s;
}

function do_nothing()
{
	return true;
}

function __clean_sidebar__()
{
	var c = document.getElementById("content");
	var f = document.getElementById("footer");

//	alert("resized... event type: " + event.type + "; from: " + event.fromElement);
//	event.cancelBubble = true;
	pad_more = document.documentElement.clientHeight - (f.offsetTop + f.offsetHeight) + 10;
	if(pad_more > 0) {
		f.style.paddingBottom = pad_more + 'px';
	}
}

function nav_select(e)
{
	MochiKit.DOM.addElementClass(e.src(), 'selected');
}

function nav_unselect(e)
{
	MochiKit.DOM.removeElementClass(e.src(), 'selected');
}

function __setup_nav__()
{
	var elist = MochiKit.DOM.getElementsByTagAndClassName('TD', 'nav1');
	for(var i=0; i<elist.length; ++i)
	{
		MochiKit.Signal.connect(elist[i], 'onmouseover', nav_select);
		MochiKit.Signal.connect(elist[i], 'onmouseout', nav_unselect);
	}
}

function set_focus()
{
	var error_elements = MochiKit.DOM.getElementsByTagAndClassName('*', 'userInputError');
	var focus_element;
	if(error_elements.length>0) {
		focus_element = error_elements[0];
	} else {
		focus_element = document.getElementById(focus_id);
	}
	if(focus_element) {
		focus_element.focus();
		focus_element.select();
	}
}

function click_radio(e)
{
	$(e).click();
}

function fix_image_labels()
{
	var label_elements = MochiKit.DOM.getElementsByTagAndClassName('LABEL');
	for(var i=0; i<label_elements.length; ++i)
	{
		var lid = label_elements[i].htmlFor;
		var imgs = MochiKit.DOM.getElementsByTagAndClassName('IMG', null, label_elements[i]);
		for(var j=0; j<imgs.length; ++j)
		{
			connect(imgs[j], 'onclick', MochiKit.Base.partial(click_radio, lid));
		}
	}
}

function disable_after_submit(e)
{
	MochiKit.Async.callLater(0, MochiKit.Base.partial(__disable_after_submit, e));
}

function __disable_after_submit(e)
{
	var button_elements = MochiKit.DOM.getElementsByTagAndClassName('INPUT', null, e.src());
	for(var i=0; i<button_elements.length; ++i)
	{
		var btn = button_elements[i];
		var type = btn.type.toUpperCase();
		if(type=='SUBMIT' || type=='IMAGE')
			btn.disabled = true;
	}
}

function prevent_button_dblclick()
{
	var form_elements = MochiKit.DOM.getElementsByTagAndClassName('FORM');
	for(var i=0; i<form_elements.length; ++i)
	{
		var frm = form_elements[i];
		connect(frm, 'onsubmit', disable_after_submit);
	}
}

function doc_init()
{
	__clean_sidebar__();
	set_focus();
	fix_image_labels();
	prevent_button_dblclick();
	if(window.init)
		init();
}

MochiKit.DOM.addLoadEvent(doc_init);
