// JavaScript validation for Comment Form to preclude clunky PHP validation
function validateForm(what) {
	var f = $F(what).split(';');
	var errorText = '';
	for (var i = 0; i < f.length; i++) {
		var ff = f[i].split(':');
		if (ff.length < 3) ff[2] = ff[0];
		if ($(ff[0])) errorText += eval(ff[1] + '("' + ff[0] + '", "' + ff[2] + '")');
	}
	if (errorText == '') { 
		commentHider('.blog-comments-form');
		return true;
	} else {
		alert (errorText);
		return false;
	}
}

function blank(ff0, ff2) {
	val = $F(ff0);
	for (var i=0; i < val.length; i++) {
		var vchar = val.charAt(i);
		if ((vchar != " ") && (vchar != "\n") && (vchar != "\t")) return ''; 
	}
	return ff2 + ' required. ';	
}

function email(ff0, ff2) {
	val = $F(ff0);
	var error_atsign = true;
	var error_period = true;
	for (var i=0; i < val.length; i++) {
		var vchar = val.charAt(i);
		if (vchar == "@") error_atsign = false;
		if (vchar == ".") error_period = false;
	}
	if ((error_atsign) || (error_period) || (val.length < 6)) return ff2 + ' required. ';
	return '';
}

// Document Menus
function initMenus(callers) {
	var obj = {
		callers: callers,
		currentMenu: 'na',
		targetMenu: 'na',
		x1: 0,
		y1: 0,
		showMenu: function() {
			$(this.currentMenu).show()
			obj.x1 = Position.cumulativeOffset($(this.currentMenu))[0] - 10;
			obj.x2 = this.x1 + $(this.currentMenu).getWidth() + 20;
			obj.y1 = Position.cumulativeOffset($(this.currentMenu))[1] - 40;
			obj.y2 = this.y1 + $(this.currentMenu).getHeight() + 50;
		}
	};
	$$(obj.callers).each(function(v) {
		Element.observe(v, 'mouseover', function(e) {
			var ref = v.getAttribute('title').replace(/\s/,'');
			obj.targetMenu = 'menu' + ref;
			if (obj.targetMenu != obj.currentMenu) {
				if ($(obj.currentMenu)) $(obj.currentMenu).hide();
				obj.currentMenu = obj.targetMenu;
				if ($(obj.currentMenu)) obj.showMenu();
			}
		});
	});
	Element.observe(document.body, 'mousemove', function(e) {
		if ($(obj.currentMenu)) {
			if (((Event.pointerX(e) < obj.x1) || Event.pointerY(e) < obj.y1) || (Event.pointerX(e) > obj.x2) || (Event.pointerY(e) > obj.y2)) {
				$(obj.currentMenu).hide();
				obj.currentMenu = 'na';
			}
		}
	});
}

