window.onload = runOnLoad;
var lastClickTime = 0;

function runOnLoad() {
	prepareDoubleClickPrevention();
	setFocus();
};

function prepareDoubleClickPrevention() {
	for ( var i = 0; i < document.forms.length; i++) {
		document.forms[i].onsubmit = preventDoubleClick;
	}
}

function setFocus() {
	var i, j, className;

	for (i = 0; i < document.forms.length; i++) {
		for (j = 0; j < document.forms[i].elements.length; j++) {
			className = document.forms[i].elements[j].className;
			if (className.match(/\bfocusOnLoad\b/)) {
				document.forms[i].elements[j].focus();
				return;
			}
			if (className.match(/\bselectOnLoad\b/)) {
				document.forms[i].elements[j].select();
				return;
			}
		}
	}
}

function preventDoubleClick() {
	var clickDate, actualClickTime;
	clickDate = new Date();
	if (lastClickTime === 0) {
		lastClickTime = clickDate.valueOf();
		return true;
	} else {
		actualClickTime = clickDate.valueOf();
		if ((actualClickTime - lastClickTime) > 3000) {
			lastClickTime = 0;
			return true;
		}
		return false;
	}
	return true;
}
