	var ajaxObj; 
	var sjaxObj;
	function arrangeItems(){
		var itemArray = document.getElementsByName('items');
		for (var i = 0; i < itemArray.length ; i++ ){
			if (i != 0 && i%3==0){
				itemArray[i].style.clear = 'both';
			}
		}
	}
	function editTextField(elementId, potid, admin, maxlength){
		if (admin){
			var max = '';
			if (maxlength) {
				max = maxlength;
			}
			var element = document.getElementById(elementId);
			if (element){
				var localdata = element.innerHTML.replace(/\'/g, "‘");
				var html = '';
				var id = element.parentNode.id;
				html = html + '<input type="text" id="'+ 'edit_' + id + '" size="16" maxlength="'+max+'" value="'+localdata+'">';
				html = html + '<img src="/images/ok.gif" class="clickableword" border="0" onclick="return submitEditField(\'' + id + '\',\'' + potid + '\',\'' + elementId + '\');">&nbsp;&nbsp;';
				html = html + '<img src="/images/cancel.png" class="clickableword" border="0" onclick="return cancelEditTextField(\'' + id + '\',\''+localdata+'\',\'' + potid + '\',\'' + elementId + '\');">';
				element.parentNode.innerHTML = html;
			}
		}
	}
	var data;
	function editTextAreaField(elementId, potid, admin){
		if (admin){
			var element = document.getElementById(elementId);
			if (element){
				data = element.innerHTML.replace(/\'/g, "‘");
				var html = '';
				var id = element.parentNode.id;
				html = html + '<textarea cols="40" rows="3" id="'+ 'edit_' + id + '">'+data+'</textarea><br>';
				html = html + '<img src="/images/ok.gif" class="clickableword" border="0" onclick="return submitEditField(\'' + id + '\',\'' + potid + '\',\'' + elementId + '\');">&nbsp;&nbsp;';
				html = html + '<img src="/images/cancel.png" class="clickableword" border="0" onclick="return cancelEditTextAreaField(\'' + id + '\',\'' + potid + '\',\'' + elementId + '\');">';
				element.parentNode.innerHTML = html;
			}
		}
	}
	function cancelEditTextField(id, localdata, potid, elementId){
		var element = document.getElementById(id);
		element.innerHTML = '<span id="'+elementId+'" onclick="editTextField(\'' + elementId + '\', \'' + potid + '\', true);">' + localdata.replace(/\'/g, "‘") + '</span>';
	}
	function cancelEditTextAreaField(id, potid, elementId){
		var element = document.getElementById(id);
		element.innerHTML = '<span id="'+elementId+'" onclick="editTextAreaField(\'' + elementId + '\', \'' + potid + '\', true);">' + data.replace(/\'/g, "‘") + '</span>';
	}
	function submitEditField(id, potid, elementId){
		var element = document.getElementById(id);
		var value = eval('document.getElementById(\'edit_' + id + '\')').value.replace(/‘/g, "'");
		if (id == 'potluck_name'){
			ajaxObj = new MyAjax('/cgi-bin/app/submit_ajax_potluck_name.pl', 'handleResponse');
		} else if (id == 'potluck_location'){
			ajaxObj = new MyAjax('/cgi-bin/app/submit_ajax_potluck_location.pl', 'handleResponse');
		} else if (id == 'potluck_date'){
			ajaxObj = new MyAjax('/cgi-bin/app/submit_ajax_potluck_date.pl', 'handleResponse');
		} else if (id == 'potluck_time'){
			ajaxObj = new MyAjax('/cgi-bin/app/submit_ajax_potluck_time.pl', 'handleResponse');
		} else if (id == 'potluck_details'){
			ajaxObj = new MyAjax('/cgi-bin/app/submit_ajax_potluck_details.pl', 'handleResponse');
		}
		if (ajaxObj.getReadyState() == 4 || ajaxObj.getReadyState() == 0) {
			ajaxObj.addParam('potluckid', potid);
			ajaxObj.addParam('value', value);
			ajaxObj.sendRequest ();
		}
		if (id == 'potluck_details'){
			element.innerHTML = '<span id="'+elementId+'" onclick="editTextAreaField(\'' + elementId + '\', \'' + potid + '\', true);">' + value + '</span>';
		} else {
			element.innerHTML = '<span id="'+elementId+'" onclick="editTextField(\'' + elementId + '\', \'' + potid + '\', true);">' + value + '</span>';
		}
	}
	
	function editClaimPotluckItem(id, who, type, item, desc, potId, recipeChar, showAdd){
		var element = document.getElementById('username_' + id);
		var html = '';
		html = html + '<input type="text" size="12" maxlength="30" id="user_name_' + id + '" >';
		html = html + '<img src="/images/ok.gif" class="clickableword" id="submit_' + id + '" border="0" onclick="return submitClaimItem(\'' + id + '\', \'' + who + '\', \'' + type + '\', \'' + item + '\', \'' + desc + '\', \'' + potId + '\', \'' + recipeChar + '\', \'' + showAdd + '\');">&nbsp;&nbsp;';
		html = html + '<img src="/images/cancel.png" class="clickableword" id="button_' + id + '" border="0" onclick="return cancelClaimItem(\'' + id + '\');">';
		element.innerHTML = html;
	}

	function submitClaimItem(id, who, type, item, desc, potId, recipeChar, showAdd){
		var element = document.getElementById('username_' + id);
		var userName = eval('document.getElementById(\'user_name_' + id + '\')').value.replace(/‘/g, "'");
		ajaxObj = new MyAjax('/cgi-bin/app/submit_ajax_claim_item.pl', 'handleResponse');
		if (ajaxObj.getReadyState() == 4 || ajaxObj.getReadyState() == 0) {
			ajaxObj.addParam('item_id', id);
			ajaxObj.addParam('user_name', userName);
			ajaxObj.sendRequest ();
		}
		var html = '';
		if (userName != ''){
			html = html + userName;
			element.innerHTML = html;
			//
			element = document.getElementById('options_' + id);
			if (!recipeChar){
				recipeChar = '';
			}
			html = '';
			if (showAdd == 'Y'){
				html = html + '<span class="clickableword" onclick="return switchToEdit(\'' + id + '\', \'' + userName + '\', \'' + type + '\', \'' + item + '\', \'' + desc + '\', \'' + potId + '\', \'' + recipeChar + '\');"><img style="vertical-align:middle;" src="/images/edit.gif" /></span>&nbsp; ';
				html = html + '<span class="clickableword" onclick="return deleteItem(\'' + id + '\',\'' + potId + '\');"><img style="vertical-align:middle;" border="0" src="/images/trash.gif"></span>';
				html = html + ' <a href="/cgi-bin/display/recipe.pl?potluck_id=' + potId + '&potluck_item_id=' + id + '">&nbsp;<img src="/images/ordered_list_16x16.gif" style="vertical-align:middle;" border="0" />' + recipeChar + '</a>';
			}	
			element.innerHTML = html;
		} else {
			html = html + '<span class="clickableword" onclick="editClaimPotluckItem(\'' + id + '\')">Claim This<span>';
			element.innerHTML = html;
		}
		
	}

	function cancelClaimItem(id){
		var element = document.getElementById('username_' + id);
		var html = '';
		html = html + '<span class="clickableword" onclick="editClaimPotluckItem(\'' + id + '\')">Claim This<span>';		
		element.innerHTML = html;
	}

	function validateAndSubmitEditItem(id, potId, recipeChar){
		var potluckId = potId;
		var userName = eval('document.getElementById(\'user_name_' + id + '\')').value.replace(/‘/g, "'");
		var itemType = eval('document.getElementById(\'item_type_' + id + '\')').value.replace(/‘/g, "'");
		var itemName = eval('document.getElementById(\'item_name_' + id + '\')').value.replace(/‘/g, "'");
		var itemDesc = eval('document.getElementById(\'item_desc_' + id + '\')').value.replace(/‘/g, "'");
		//if (itemName == ''){
		//	document.getElementById('error').innerHTML = 'What is being brought?';
		//	return false;
		//}
		
		ajaxObj = new MyAjax('/cgi-bin/app/submit_ajax_edit_potluckitem.pl', 'handleResponse');
	
		if (ajaxObj.getReadyState() == 4 || ajaxObj.getReadyState() == 0) {
			ajaxObj.addParam('item_id', id);
			ajaxObj.addParam('item_name', itemName);
			ajaxObj.addParam('user_name', userName);
			ajaxObj.addParam('potluck_id', potluckId);
			ajaxObj.addParam('item_type', itemType);
			ajaxObj.addParam('item_desc', itemDesc);
			ajaxObj.sendRequest ();
			//document.getElementById('list_data').innerHTML = 'Please wait...';
		}
		switchToReadOnly(id, userName, itemType, itemName, itemDesc, potId, recipeChar);
		return false;
	}

	function validateAndSubmiEmailInvite(){
		document.getElementById('invite_error').innerHTML = '';
		sjaxObj = new MySjax('/cgi-bin/app/validate_ajax_emails.pl');
		var responseText = '';
		if (sjaxObj.getReadyState() == 4 || sjaxObj.getReadyState() == 0) {
			sjaxObj.addParam('emails', document.getElementById('emails').value);
			sjaxObj.addParam('seperator', document.getElementById('email_seperator').value);
			sjaxObj.sendRequest ();
			responseText = sjaxObj.getResponseText();
		}
		if (responseText == 'valid'){
			ajaxObj = new MyAjax('/cgi-bin/app/submit_ajax_email_invite.pl', 'handleInviteResponse');
			if (ajaxObj.getReadyState() == 4 || ajaxObj.getReadyState() == 0) {
				ajaxObj.addParam('emails', document.getElementById('emails').value);
				ajaxObj.addParam('seperator', document.getElementById('email_seperator').value);
				ajaxObj.addParam('message', document.getElementById('message').value);
				ajaxObj.addParam('potluck_id', document.getElementById('potluck_invite_id').value);
				ajaxObj.sendRequest();
			}
			document.getElementById('emails').value = '';
			document.getElementById('message').value = '';
			document.getElementById('progress').innerHTML = ' Sending Invites <br /><br />';
			document.getElementById('pleasewait').style.display = 'inline';
			toggleSomething('emailInvite');

		} else if (responseText == 'invalid'){
			document.getElementById('invite_error').innerHTML = 'One ore more of the email addresses ented are invalid.  Please verify that the format of the email addresses are correct (xxx@xxx.xxx) and that all email addresses are separated by your selected seperator.';
		} else {
			document.getElementById('invite_error').innerHTML = 'There was an error processing your request.';
		}
		return false;
	}

	function validateAndSubmiEmailBlast(){
		document.getElementById('blast_error').innerHTML = '';
		sjaxObj = new MySjax('/cgi-bin/app/validate_ajax_emails.pl');
		var responseText = '';
		if (sjaxObj.getReadyState() == 4 || sjaxObj.getReadyState() == 0) {
			sjaxObj.addParam('emails', document.getElementById('emails').value);
			sjaxObj.sendRequest ();
			responseText = sjaxObj.getResponseText();
		}
		if (responseText == 'valid'){
			ajaxObj = new MyAjax('/cgi-bin/app/submit_ajax_blast.pl', 'handleBlastResponse');
			if (ajaxObj.getReadyState() == 4 || ajaxObj.getReadyState() == 0) {
				ajaxObj.addParam('emails', document.getElementById('emails').value);
				ajaxObj.addParam('subject', document.getElementById('subject').value);
				ajaxObj.addParam('fromemail', document.getElementById('fromemail').value);
				ajaxObj.addParam('message', document.getElementById('message').value);
				ajaxObj.addParam('use_valid_emails', document.getElementById('use_valid_emails').value);
				ajaxObj.sendRequest();
			}
			document.getElementById('emails').value = '';
			document.getElementById('message').value = '';
			document.getElementById('progress').innerHTML = ' Sending blast <br /><br />';
			document.getElementById('pleasewait').style.display = 'inline';
			toggleSomething('blasttool');

		} else if (responseText == 'invalid'){
			document.getElementById('blast_error').innerHTML = 'One ore more of the email addresses ented are invalid.  Please verify that the format of the email addresses are correct (xxx@xxx.xxx) and that all email addresses are separated by your selected seperator.';
		} else {
			document.getElementById('blast_error').innerHTML = 'There was an error processing your request.';
		}
		return false;
	}

	function deleteItem(id, potId){
		var color = document.getElementById(id).style.backgroundColor;
		document.getElementById(id).style.backgroundColor = '#FF9F9F';	
		if (confirm('Are you sure you want to delete this potluck item?  If you are, click OK.')) {
			ajaxObj = new MyAjax('/cgi-bin/app/submit_ajax_del_potluckitem.pl', 'handleResponse');
			if (ajaxObj.getReadyState() == 4 || ajaxObj.getReadyState() == 0) {
				ajaxObj.addParam('item_id', id);
				ajaxObj.addParam('potluck_id', potId);
				ajaxObj.sendRequest ();
			}
			var element = document.getElementById(id);
			element.parentNode.removeChild(element);
		} else {	
			document.getElementById(id).style.backgroundColor = color;	
		}
		return false;
	}

	function deleteMessage(id){
		if (confirm('Are you sure you want to delete this message?  If you are, click OK.')) {
			ajaxObj = new MyAjax('/cgi-bin/app/submit_ajax_del_message.pl', 'handleResponse');
			if (ajaxObj.getReadyState() == 4 || ajaxObj.getReadyState() == 0) {
				ajaxObj.addParam('message_id', id);
				ajaxObj.sendRequest ();
			}
			var element = document.getElementById('message_' + id);
			element.parentNode.removeChild(element);
		}		
		return false;
	}

	function changePermission(elementId, id){
			var element = document.getElementById(elementId);
			var currentPermission = element.innerHTML;
			var setPermission = (currentPermission == 'Y' ? 'N' : 'Y');
			ajaxObj = new MyAjax('/cgi-bin/app/submit_ajax_change_perm.pl', 'handleResponse');
			if (ajaxObj.getReadyState() == 4 || ajaxObj.getReadyState() == 0) {
				ajaxObj.addParam('user_id', id);
				ajaxObj.addParam('user_permission', setPermission);
				ajaxObj.sendRequest ();
			}
			var element = document.getElementById(elementId);
			element.innerHTML = setPermission;
		return false;
	}
	
	function changePotluckNotify(potluckId){
		var notifyValue = '';
		if (document.getElementById('notifyYes').checked){
			notifyValue = 'Y';
		} else if (document.getElementById('notifyNo').checked){
			notifyValue = 'N';
		}
		ajaxObj = new MyAjax('/cgi-bin/app/submit_ajax_potluck_notify.pl', 'handleResponse');
		if (ajaxObj.getReadyState() == 4 || ajaxObj.getReadyState() == 0) {
			ajaxObj.addParam('potluck_id', potluckId);
			ajaxObj.addParam('notify', notifyValue);
			ajaxObj.sendRequest ();
		}
		toggleSomething('emailnotify');
		return false;
	}

	function markPotluckItem(id, markStatus){
		ajaxObj = new MyAjax('/cgi-bin/app/submit_ajax_mark_potluckitem.pl', 'handleResponse');
		if (ajaxObj.getReadyState() == 4 || ajaxObj.getReadyState() == 0) {
			ajaxObj.addParam('itemName', escape(id));
			ajaxObj.addParam('status', markStatus);
			ajaxObj.sendRequest ();
		}
		var element = document.getElementById(id);
		element.style.visibility = 'hidden';
		return false;
	}

	function validatePotluckNickname(nickname){
			sjaxObj = new MySjax('http://www.luckypotluck.com/cgi-bin/app/validate_ajax_nickname.pl');
			if (sjaxObj.getReadyState() == 4 || sjaxObj.getReadyState() == 0) {
				sjaxObj.addParam('potluck_nickname', nickname);
				var returnText = sjaxObj.sendRequest();
				document.getElementById('error').innerHTML = returnText;
				if (returnText != ''){
					return false;
				}
			}
			return true;
	}

	function isPotluckNicknameUnique(nickname){
			sjaxObj = new MySjax('http://www.luckypotluck.com/cgi-bin/app/validate_ajax_nickname.pl');
			if (sjaxObj.getReadyState() == 4 || sjaxObj.getReadyState() == 0) {
				sjaxObj.addParam('potluck_nickname', nickname);
				var returnText = sjaxObj.sendRequest();
				if (returnText != ''){
					return false;
				}
			}
			return true;
	}

	function handleResponse () {
		if (ajaxObj.getReadyState() == 4) {
			var responseText = ajaxObj.getResponseText();
			//alert(responseText);
			//changeDivHTML(currentField, responseText);
		}
	}
	function handleInviteResponse () {
		if (ajaxObj.getReadyState() == 4) {
			var responseText = ajaxObj.getResponseText();
			//alert(responseText);
			document.getElementById('progress').innerHTML = 'Invites Have Finished Being Sent.<br /><br />';
			document.getElementById('pleasewait').style.display = 'none';
		}
	}
	function handleBlastResponse () {
		if (ajaxObj.getReadyState() == 4) {
			var responseText = ajaxObj.getResponseText();
			//alert(responseText);
			document.getElementById('progress').innerHTML = 'Blast Have Finished Being Sent.<br /><br />';
			document.getElementById('pleasewait').style.display = 'none';
		}
	}
	function toggleSomething(name){
		var slider = eval(name);
		slider.toggle();
		return false;
	}
	function validateItem(formName){
		if (!formName) {
			formName = 'editItem'
		}
		var theform = eval('document.' + formName);
		
		//if (theform.user_name.value == ''){
		//	document.getElementById('error').innerHTML = 'Who is bringing it?';
		//	return false;
		//}
		//if (theform.item_name.value == ''){
		//	document.getElementById('error').innerHTML = 'What is being brought?';
		//	return false;
		//}
		return true;
	}

	function switchToEdit(id, who, type, item, desc, potId, recipeChar){
		var element;
		element = document.getElementById('username_' + id);
		var html = '';
		html = html + '<input type="hidden" id="item_id_' + id + '" value="' + id + '"><input type="hidden" id="potluck_id_' + id + '" value="' + potId + '"><input type="text" size="12" id="user_name_' + id + '" value="'+ who +'">';
		element.innerHTML = html;
		//
		element = document.getElementById('itemtype_' + id);
		html = '';
		html = html + '<select id="item_type_' + id + '">';
		html = html + '<option value="Appetizer" ' + (type == 'Appetizer' ? 'selected' : '') + '>Appetizer</option>';
		html = html + '<option value="Main Dish" ' + (type == 'Main Dish' ? 'selected' : '') + '>Main Dish</option>';
		html = html + '<option value="Side Dish" ' + (type == 'Side Dish' ? 'selected' : '') + '>Side Dish</option>';
		html = html + '<option value="Salad" ' + (type == 'Salad' ? 'selected' : '') + '>Salad</option>';
		html = html + '<option value="Dessert" ' + (type == 'Dessert' ? 'selected' : '') + '>Dessert</option>';
		html = html + '<option value="Snack" ' + (type == 'Snack' ? 'selected' : '') + '>Snack</option>';
		html = html + '<option value="Drink" ' + (type == 'Drink' ? 'selected' : '') + '>Drink</option>';
		html = html + '<option value="Other" ' + (type == 'Other' ? 'selected' : '') + '>Other</option>';
		html = html + '</select>';
		element.innerHTML = html;
		//
		element = document.getElementById('itemname_' + id);
		html = '';
		html = html + '<input type="text" size="12" id="item_name_' + id + '" value="' + item + '">';
		element.innerHTML = html;
		//
		element = document.getElementById('itemdesc_' + id);
		html = '';
		html = html + '<input type="text" size="25" id="item_desc_' + id + '" value="' + desc + '">';
		element.innerHTML = html;
		//
		element = document.getElementById('options_' + id);
		html = '';
		html = html + '<img src="/images/ok.gif" class="clickableword" id="submit_' + id + '" border="0" onclick="return validateAndSubmitEditItem(\'' + id + '\', \'' + potId + '\',\'' + recipeChar + '\');">&nbsp;&nbsp;';
		html = html + '<img src="/images/cancel.png" class="clickableword" id="button_' + id + '" border="0" onclick="return switchToReadOnly(\'' + id + '\',\'' + who + '\',\'' + type + '\',\'' + item + '\',\'' + desc + '\',\'' + potId + '\',\'' + recipeChar + '\' );">';
		element.innerHTML = html;
	}
	function switchToReadOnly(id, who, type, item, desc, potId, recipeChar){
		var who = who.replace(/\'/g, "‘");
		var claim;
		if (who == ''){
			claim = '<span class="clickableword" onclick="editClaimPotluckItem(\'' + id + '\')">Claim This<span>';
		}
		var type = type.replace(/\'/g, "‘");
		var item = item.replace(/\'/g, "‘");
		var desc = desc.replace(/\'/g, "‘");
			
		var element;
		element = document.getElementById('username_' + id);
		var html = '';
		html = html + (claim ? claim : who);
		element.innerHTML = html;
		//
		element = document.getElementById('itemtype_' + id);
		element.innerHTML = type;
		//
		element = document.getElementById('itemname_' + id);
		element.innerHTML = item;
		//
		element = document.getElementById('itemdesc_' + id);
		element.innerHTML = desc;
		//
		element = document.getElementById('options_' + id);
		html = '';
		html = html + '<span class="clickableword" onclick="return switchToEdit(\'' + id + '\', \'' + who + '\', \'' + type + '\', \'' + item + '\', \'' + desc + '\', \'' + potId + '\', \'' + recipeChar + '\');"><img style="vertical-align:middle;" src="/images/edit.gif" /></span>&nbsp; ';
		html = html + '<span class="clickableword" onclick="return deleteItem(\'' + id + '\',\'' + potId + '\');"><img style="vertical-align:middle;" border="0" src="/images/trash.gif"></span>';
		html = html + ' <a href="/cgi-bin/display/recipe.pl?potluck_id=' + potId + '&potluck_item_id=' + id + '">&nbsp;<img src="/images/ordered_list_16x16.gif" style="vertical-align:middle;" border="0" />' + recipeChar + '</a>';
		element.innerHTML = html;
	}
	
	function validateSignupForm(){
		if (document.signup.email.value == ''){
			document.getElementById('error').innerHTML = 'Email Address is a required field.';
			return false;
		}
		if (validateEmail(document.signup.email.value) == false){
			document.getElementById('error').innerHTML = 'Email Address is invalid.';
			return false;
		}
		if (document.signup.password.value == ''){
			document.getElementById('error').innerHTML = 'Password is a required field.';
			return false;
		}
		if (document.signup.password.value != document.signup.confirm_password.value){
			document.getElementById('error').innerHTML = 'Password and Confirm Password do not match.';
			return false;
		}
		return true;
	}

	function validateContactusForm(){
		if (document.contact.email.value == ''){
			document.getElementById('error').innerHTML = 'Email Address is a required field.';
			return false;
		}
		if (validateEmail(document.contact.email.value) == false){
			document.getElementById('error').innerHTML = 'Email Address is invalid.';
			return false;
		}
		if (document.contact.subject.value == ''){
			document.getElementById('error').innerHTML = 'Subject is a required field.';
			return false;
		}
		if (document.contact.message.value == ''){
			document.getElementById('error').innerHTML = 'Message is a required field.';
			return false;
		}
		return true;
	}

function validateCreatePotluckForm(){
	if (document.createpotluck.potluck_name.value == ''){
		document.getElementById('error').innerHTML = 'Potluck Name is a required field.';
		return false;
	}
	if (document.createpotluck.potluck_date.value == ''){
		document.getElementById('error').innerHTML = 'Potluck Date is a required field.';
		return false;
	}
	if (document.createpotluck.potluck_password.value != document.createpotluck.confirm_potluck_password.value){
		document.getElementById('error').innerHTML = 'Password and Confirm Password do not match.';
		return false;
	}
	if (containsSpecialChars(document.createpotluck.potluck_nickname.value)){
		document.getElementById('error').innerHTML = 'Potluck Nickname cannot contain special characters or spaces.';
		return false;
	}
	if (document.createpotluck.potluck_nickname.value != ''){
		if (validatePotluckNickname(document.createpotluck.potluck_nickname.value) == false){;
			return false;
		}
	}
	return true;
}

function containsSpecialChars(textString){
	var iChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
	for (var i = 0; i < textString.length; i++) {
		if (iChars.indexOf(textString.charAt(i)) == -1) {
			return true;
		}
	}
	return false;
}

function validateEmail(str) {
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	if (str.indexOf(at)==-1){
		return false;
	}
	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		return false;
	}
	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		return false;
	}
	if (str.indexOf(at,(lat+1))!=-1){
		return false;
	}
	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		return false;
	}
	if (str.indexOf(dot,(lat+2))==-1){
		return false;
	}
	if (str.indexOf(" ")!=-1){
		return false;
	}
	return true;			
}
function validateMessage(){
	var isValid = true;
	var who = document.getElementById('message_who').value;
	var message = document.getElementById('message_message').value;
	who = who.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
	document.getElementById('message_who').value = who;
	message = message.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
	document.getElementById('message_message').value = message;
	document.getElementById('message_error').innerHTML = '';
	if (who == ''){
		document.getElementById('message_error').innerHTML += 'You must fill out your name.<br />';
		isValid = false;
	}
	if (message == ''){
		document.getElementById('message_error').innerHTML += 'You must fill out a message.<br />';
		isValid = false;
	}
	return isValid;
}

function duplicateInputField(element, inputField){
	var origValue = element.value;
	var finalValue = '';
	for (var i =0 ; i < origValue.length ; i++ ){
		if (!containsSpecialChars(origValue.charAt(i))){
			finalValue = finalValue + origValue.charAt(i);
		}
	}
	eval(inputField).value = finalValue;
}

function createUniqueNickname(element, inputField){
	var origValue = element.value;
	var finalValue = '';
	for (var i =0 ; i < origValue.length ; i++ ){
		if (!containsSpecialChars(origValue.charAt(i))){
			finalValue = finalValue + origValue.charAt(i);
		}
	}
	var isUnique = false;
	var counter = 1;
	var tempFinalValue = finalValue;
	while (isUnique == false){
		isUnique = isPotluckNicknameUnique(tempFinalValue);
		if (isUnique == false){
			tempFinalValue = finalValue;
			tempFinalValue = finalValue + counter
		}
		counter++;
	}
	eval(inputField).value = tempFinalValue;
}
