	/* ************************************************************************************************************************** */
	function validateSettings(){
		document.mainForm.form_settings_action.value = "submit";
		document.mainForm.submit();
	}
	
	/* ************************************************************************************************************************** */
	function validateCreateAccount(){
		//alert("validateCreateAccount(): ");
		if (document.mainForm.form_create_action.value == "cancel"){
			window.location = "login.php";
			return false;
		}
		else{
			if (document.mainForm.form_create_username.value == ""){
				alert("Please enter a username.");
				return false;
			}
			
			if (document.mainForm.form_create_username.value.length < 6){
				alert("Your username must be at least 6 characters.");
				return false;
			}
			
			if (document.mainForm.form_create_password.value.length < 6){
				alert("Your password must be at least 6 characters.");
				return false;
			}			
			
			if (document.mainForm.form_create_password.value == ""){
				alert("Please enter a password.");
				return false;
			}
			
			if (document.mainForm.form_create_password2.value == ""){
				alert("Please re-type your password.");
				return false;
			}
			
			if (document.mainForm.form_create_password.value != document.mainForm.form_create_password2.value){
				alert("The passwords you have entered do not match.  Please re-enter the passwords.");
				return false;
			}						
	
			if (document.mainForm.form_create_firstname.value == ""){
				alert("Please enter your first name.");
				return false;
			}
			
			if (document.mainForm.form_create_lastname.value == ""){
				alert("Please enter your last name.");
				return false;
			}
			
			if (!echeck(document.mainForm.form_create_email.value)){
				alert("Please enter a valid email address.");
				return false;
			}							
	
			if (!document.mainForm.form_create_tos.checked){
				alert("Please verify you have read and agreed to the terms of service.");
				return false;
			}							
	 
			document.mainForm.form_create_action.value = "submit";
			document.mainForm.submit();
			//return false;
		}
	}
	
	/* ************************************************************************************************************************** */
	function validateLogin(){
		//alert("validateLogin(): ");
		if (document.mainForm.form_login_username.value == ""){
			alert("Please enter your username.");
			return false;
		}	
		
		if (document.mainForm.form_login_password.value == ""){
			alert("Please enter your password.");
			return false;
		}
		
		document.mainForm.form_login_action.value = "submit";	
		document.mainForm.submit();
	}
	
	/* ************************************************************************************************************************** */
	function validateRecover(){
		//alert("validateRecover(): ");
		if (document.mainForm.form_recover_email.value == ""){
			alert("Please enter your email address.");
			return false;
		}	
		
		document.mainForm.form_recover_action.value = "submit";	
		document.mainForm.submit();
	}

	/* ************************************************************************************************************************** */	
	function validateViewReminder(){
		switch(document.mainForm.form_view_action.value){
			case 'edit_process':
				//alert(document.mainForm.form_addreminder_start_date.value);
				document.mainForm.form_view_hidden_event_date.value = document.mainForm.form_view_event_date.value;
				document.mainForm.form_view_hidden_start_date.value = document.mainForm.form_view_start_date.value;
				
				if (document.mainForm.form_view_name.value == ""){
					alert("Please enter a reminder name.");
					return false;
				}
	
				if (document.mainForm.form_view_hidden_event_date.value == "click to enter date"){
					alert("Please enter a reminder event date.");
					return false;
				}
				
				if (document.mainForm.form_view_hidden_start_date.value == "click to enter date"){
					alert("Please enter a reminder start date.");
					return false;
				}			
			
				break;
				
			case 'share':
				break;
				
			case 'delete':
				if (!confirm("Are you sure you want to delete this reminder?  ONCE YOU DELETE A REMINDER, IT CANNOT BE RECOVERED.")){
					return false;
				}
				break;
		}
		
		document.mainForm.submit();
	}
	
	/* ************************************************************************************************************************** */
	function validateAddReminder(){
		//alert("validateRecover(): ");
		if (document.mainForm.form_addreminder_action.value == "cancel"){
			window.location = "home.php";
			return false;
		}
		else{
			//alert(document.mainForm.form_addreminder_start_date.value);
			document.mainForm.form_addreminder_hidden_event_date.value = document.mainForm.form_addreminder_event_date.value;
			document.mainForm.form_addreminder_hidden_start_date.value = document.mainForm.form_addreminder_start_date.value;
			
			if (document.mainForm.form_addreminder_name.value == ""){
				alert("Please enter a reminder name.");
				return false;
			}

			if (document.mainForm.form_addreminder_hidden_event_date.value == "click to enter date"){
				alert("Please enter a reminder event date.");
				return false;
			}
			
			if (document.mainForm.form_addreminder_hidden_start_date.value == "click to enter date"){
				alert("Please enter a reminder start date.");
				return false;
			}			
			
			document.mainForm.form_addreminder_action.value = "add";
			document.mainForm.submit();	
		}
	}	

	/* ************************************************************************************************************************** */	
	function validateShareReminder(){
		//alert("document.mainForm.form_share_action.value = "+document.mainForm.form_share_action.value);
		switch(document.mainForm.form_share_action.value){		
			case 'add_process':
			case 'edit_process':
				if (document.mainForm.form_share_groupname.value == ""){
					alert("Please enter a shared reminder group name.");
					document.mainForm.form_share_action.value = "null";					
					return false;
				}
	
				/* check if at least one reminder was selected */
				reminderSelected = false;
				for (i=1; i<=document.mainForm.form_share_hidden_total_reminders.value; i++){
					if(document.mainForm['form_share_reminder'+i].checked){
						reminderSelected = true;
						break;
					}
				}
	
				if (!reminderSelected){
					alert("Please select at least one reminder to share.");
					document.mainForm.form_share_action.value = "null";										
					return false;
				}					
			
				document.mainForm.submit();
				break;
			
			case 'edit':
			case 'invite':
				mainForm.submit();
				break;
				
			case 'delete':
				if (confirm("WARNING: ONCE YOU DELETE A SHARED REMINDER GROUP, ALL USERS SHARING THIS GROUP WILL LOSE IT.  PROCEED?")){
					mainForm.submit();
				}
				else{
					document.mainForm.form_share_action.value = "null";										
					return false;
				}
				break;
				
			case 'invite_process':
				if (document.mainForm.form_share_inviteusers.options.length <= 0){
					alert("Please add at least one user to share this group with.");
					return false;
				}
				
				/* build invite userlist */
				userlist = "";
				for (i=0; i<document.mainForm.form_share_inviteusers.options.length; i++){
				//for (var i=0,len=document.mainForm.form_obj.options.length; i < len; i++){
					if (i>0){
						userlist += ",";
					}
					userlist += document.mainForm.form_share_inviteusers.options[i].text;
				}
				document.mainForm.form_share_userlist.value = userlist;

				break;
				
			case 'remove_shared':
				if (confirm("WARNING: ONCE YOU REMOVE A SHARED REMINDER GROUP, YOU WILL NOT BE ABLE TO ADD IT AGAIN UNLESS YOU ARE INVITED BY THE OWNER OF THE GROUP.  PROCEED?")){
					mainForm.submit();
				}
				else{
					document.mainForm.form_share_action.value = "null";										
					return false;
				}
				break;				
		}
	}
	
	/* ************************************************************************************************************************** */
	function validateChangePassword(){
		//alert("validateRecover(): ");
		if (document.mainForm.form_changepw_oldpw.value == "cancel"){
			window.location = "home.php";
			return false;
		}
		else{
			if (document.mainForm.form_changepw_oldpw.value == ""){
				alert("Please enter your old password.");
				return false;
			}	
			
			if (document.mainForm.form_changepw_newpw1.value == ""){
				alert("Please enter your new password.");
				return false;
			}		
			
			if (document.mainForm.form_changepw_newpw1.value != document.mainForm.form_changepw_newpw2.value){
				alert("The new passwords do not match, please type them again.");
				return false;
			}		
			
			document.mainForm.form_changepw_action.value = "submit";	
			document.mainForm.submit();
		}
	}	
	
	/* ************************************************************************************************************************** */
	function validateChangeSettings(){
		//alert("validateRecover(): ");
		if (document.mainForm.form_settings_action.value == "cancel"){
			window.location = "home.php";
			return false;
		}
		else{
			document.mainForm.form_settings_action.value = "submit";	
		}
	}	
	
	/* ************************************************************************************************************************** */	
	function validateContact(){
		if (document.mainForm.form_contact_feedback.value == ""){
			alert("Please enter your comment or question.");
			return false;
		}	
		
		document.mainForm.form_contact_action.value = "submit";	
		document.mainForm.submit();
	}	

	/* ************************************************************************************************************************** */	
	function getRadioButtonValue(radio){
		var radioReturn = "";

		if (radio.length == null){
			if (radio.checked){
				radioReturn = radio.value;
			}		
		}
		else{
			for (n = 0; n < radio.length; n++ ){
				if (radio[n].checked){
					radioReturn = radio[n].value;
					break;
				}
			}
		}
	
		return (radioReturn);
	}

	/* ************************************************************************************************************************** */	
	function isNumeric(strString){
    //  check for valid numeric strings	
	   var strValidChars = "0123456789";
	   var strChar;
	   var blnResult = true;
	
	   if (strString.length == 0) return false;
	
	   //  test strString consists of valid characters listed above
	   for (i = 0; i < strString.length && blnResult == true; i++){
		  strChar = strString.charAt(i);
		  if (strValidChars.indexOf(strChar) == -1){
			 blnResult = false;
		  }
	   }
	   return blnResult;
   }

	/* ************************************************************************************************************************** */	
	function isAlphaNumeric(strString){
    //  check for valid numeric strings	
	   var strValidChars = "0123456789aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ_";
	   var strChar;
	   var blnResult = true;
	
	   if (strString.length == 0) return false;
	
	   //  test strString consists of valid characters listed above
	   for (i = 0; i < strString.length && blnResult == true; i++){
		  strChar = strString.charAt(i);
		  if (strValidChars.indexOf(strChar) == -1){
			 blnResult = false;
		  }
	   }
	   return blnResult;
   }

	/* ************************************************************************************************************************** */
	function echeck(str) {
		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   //alert("Invalid E-mail ID")
		   return false;
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   //alert("Invalid E-mail ID")
		   return false;
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    //alert("Invalid E-mail ID")
		    return false;
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    //alert("Invalid E-mail ID")
		    return false;
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    //alert("Invalid E-mail ID")
		    return false;
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    //alert("Invalid E-mail ID")
		    return false;
		 }
		
		 if (str.indexOf(" ")!=-1){
		    //alert("Invalid E-mail ID")
		    return false;
		 }

 		 return true;					
	}
	
	/* ************************************************************************************************************************** */	
	function newOpt(v){
		return new Option(v);
	}
	
	/* ************************************************************************************************************************** */	
	function removeOpt(){
		if (mainForm.form_share_inviteusers.selectedIndex >= 0){
			mainForm.form_share_inviteusers.remove(mainForm.form_share_inviteusers.selectedIndex);
		}
		else{
			alert("Please select a username to remove.");
		}
	}
	
	/* ************************************************************************************************************************** */	
	function optionShove(opt){
		if (mainForm.form_share_newname.value == ""){
			alert("The username may not be blank.");
		}
		else if(mainForm.form_share_newname.value.length < 6){
			alert("The username must be at least 6 characters long.");		
		}
		else if(!isAlphaNumeric(mainForm.form_share_newname.value)){
			alert("The username may only contain letters, numbers, or underscores(_).");
		}
		else if(existsInList(mainForm.form_share_newname.value)){
			alert("You have already added this username to the list.");
		}
		else{
			mainForm.form_share_inviteusers.options[mainForm.form_share_inviteusers.options.length] = opt;
			/* clear box */
			mainForm.form_share_newname.value = "";
		}
	}	
	
	/* ************************************************************************************************************************** */		
	function existsInList(username){
		for (i=0; i<document.mainForm.form_share_inviteusers.options.length; i++){
			if(document.mainForm.form_share_inviteusers.options[i].text == username){
				return true;
			}
		}
		
		return false;
	}