var $jq = jQuery.noConflict();
$jq(document).ready(function(){
	function showServerMessage(text) {
		$jq("#serverMessage").html(text);
		$jq("#serverMessage").show();
	}
	function hideServerMessage() {
		$jq("#serverMessage").hide();
		$jq("#serverMessage").html("");
	}

	$jq("#serverMessage").click(function() {
		hideServerMessage();
	});
	// begin menu-sharing 
	if ($jq("#emailSelectionForm").size() == 1) {
		// Email menu selection
		function bindCheckboxEmailMenuSelection(scope) {
			$jq(':checkbox', '#restaurantMenuOfferingContainer').click(function() {
				hideServerMessage();
				var cked = this.checked;
				var cid = $jq(this).attr("id");
				if (cked == true) {
					if ($jq('tr#email' + cid).size() == 0) {
						var html = '<tr id="email'
								+ cid
								+ '">'
								+ '<td style="text-align:center;"><a class="x" href="#" alt="remove selection">x</a></td>'
								+ '<td>&nbsp;'
								+ $jq(this).attr("value")
								+ '<input type="hidden" name="itemid" value="'
								+ cid
								+ '"/></td>'
								+ '<td style="text-align:center;"><input type="text" value="1" name="quantity'
								+ cid + '" size="2" maxlength="2"/></td></tr>';

						$jq("#selectedItemContainer").append(html);
						bindSelectionRemoval();
						$jq("#groupTakeoutContainer").show("slow");
					}
				} else {
					$jq('tr#email' + cid).remove();
				}
			});
		}
		// remove selected menu items
		function bindSelectionRemoval() { // todo: jquery live
			$jq("a.x").click(function() {
				var itemid = $jq(this).parent().parent().attr("id");
				$jq('tr#' + itemid).remove();
				var chkboxid = itemid.slice(5);
				$jq('#' + chkboxid).checked = false;
				return false;
			});
		}// end remove selected menu items

		bindCheckboxEmailMenuSelection(this);
		bindSelectionRemoval();
		if ($jq("#emailMenuLinkDialogForm").size() == 1) {
			$jq("#emailMenuLinkDialogForm").submit(function() {
				var email = $jq('input[name=email][type=text]', this).size();
				if (email == 1) {
					var valu = $jq('input[name=email][type=text]', this).attr("value");
					return validateEmail(valu);
				}
				return true;
			});
		}
		$jq('#emailSelectionForm').submit(function() {
			var sz = $jq('input[name=itemid][type=hidden]', this).size();
			if (sz == 0) {
				showServerMessage("No menu items selected.");
				return false;
			}
			var email = $jq('input[name=email][type=text]', this).size();
			if (email == 1) {
				var valu = $jq('input[name=email][type=text]', this).attr("value");
				return validateEmail(valu);
			}
			return true;
		});

		function validateEmail(fld) {
			var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/;
			var illegalChars = /[\(\)\<\>\,\;\:\\\"\[\]]/;

			if (YAHOO.lang.isUndefined(fld) || ($jq.trim(fld).length == 0)) {
				showServerMessage("Please enter a valid email address.");
				return false;
			} else if (!emailFilter.test($jq.trim(fld))) {
				showServerMessage("Please enter a valid email address.");
				return false;
			} else if (fld.match(illegalChars)) {
				showServerMessage("Email address contains illegal characters.");
				return false;
			}
			return true;
		}
	}// end  menu-sharing 
});