function validateform(form) {
	for (var i=0; i<form.elements.length; i++)
		if (form.elements[i].required && !form.elements[i].disabled && !trim(form.elements[i].value)) {
			alert("There are required fields that must be filled");
			form.elements[i].focus();
			return false;
		}
	if (form.pwd && form.pwd1) {
		if (form.pwd.value != form.pwd1.value && form.pwd.value!='') {
			alert("Your passwords do not match!");
			form.pwd1.focus();
			return false;
		}
	}
	return true;
}

function trim(str) {
	while (str.substr(0,1)==" " || str.substr(0,1)=="\n" || str.substr(0,1)=="\r")
		str = str.substr(1);
	while (str.substr(str.length-1,1)==" " || str.substr(str.length-1,1)=="\n" || str.substr(str.length-1,1)=="\r")
		str = str.substr(0,str.length-1);
	return str;
}

function showandcenter(obj) {
	obj.style.display = "block";
	obj.style.left = document.body.clientWidth/2 - obj.clientWidth/2 + document.body.scrollLeft;
	obj.style.top = document.body.clientHeight/2 - obj.clientHeight/2 + document.body.scrollTop;
}

function showcontextmenu(param1, param2) {
	if (!ctx) {
		alert("No context menu defined");
		return;
	}
	var ctxe = document.getElementById("ctxmenu");
	if (!ctxe) {
		alert("Missing context menu container");
		return; 
	}
	var html = "<table cellpadding=0 cellspacing=0>";
	for (var i=0; i<ctx.length; i++) {
		if (ctx[i].length==0) {
			html += "<tr><td class=break><div><img src=/img/px.gif height=1></div></td></tr>";
		} else {
			var lnk = ctx[i][1];
			var ps;
			while (-1 != (ps = lnk.indexOf("[1]")))
				lnk = lnk.substr(0,ps) + param1 + lnk.substr(ps+3);
			while (-1 != (ps = lnk.indexOf("[2]")))
				lnk = lnk.substr(0,ps) + param2 + lnk.substr(ps+3);
			var ttl = ctx[i][0];
			while (-1 != (ps = ttl.indexOf(" ")))
				ttl = ttl.substr(0,ps) + "&nbsp;" + ttl.substr(ps+1);
			var cnf = (ctx[i][2] ? " onclick=\"return confirm('"+ctx[i][2]+"');\"" : "");
	
			html += "<tr onmouseover=\"this.className='hover'\" onmouseout=\"this.className=''\"><td><a href=\""+lnk+"\""+cnf+">"+ttl+"</a></td></tr>";
		}
	}
	html += "</table>";
	ctxe.innerHTML = html;
	ctxe.style.display = "block";
	ctxe.style.left = window.event.x + document.body.scrollLeft;
	ctxe.style.top = window.event.y + document.body.scrollTop;

	ctxe.onmousedown = function() {
		window.event.cancelBubble = true;
	}
	
	ctxe.onmouseup = function() {
		var menu = document.getElementById("ctxmenu");
		if (menu) {
			menu.style.display = "none";
		}
	}

	document.onmousedown = function() {
		var menu = document.getElementById("ctxmenu");
		if (menu) {
			menu.style.display = "none";
		}
		document.onmousedown = null;
	}
}

