// add new menu choice
function addmenuchoice(tbox, choicefield1, choicefield2, choicefield3, choicefield4, savefield1, savefield2, savefield3, savefield4, changed_trigger, formatstring) {
	if (choicefield2.value != "") {
		var next_option = tbox.options.length;
		var no = new Option();
		var ran_unrounded=Math.random()*999999;  // generate random num for unique temp id
		var ran_number=Math.floor(ran_unrounded); // round the num (not necessarily needed)
		no.value = 'new-' + ran_number;
		if (choicefield1 != '') choicefield1.value = choicefield1.value.replace (/::/g, ""); // get rid of possible separators
		if (choicefield1 != '') choicefield1.value = choicefield1.value.replace (/==/g, "");
		choicefield2.value = choicefield2.value.replace (/::/g, "");
		choicefield2.value = choicefield2.value.replace (/==/g, "");
		if (choicefield3 != '') choicefield3.value = choicefield3.value.replace (/::/g, "");
		if (choicefield3 != '') choicefield3.value = choicefield3.value.replace (/==/g, "");
		if (choicefield4 != '') choicefield4.value = choicefield4.value.replace (/::/g, "");
		if (choicefield4 != '') choicefield4.value = choicefield4.value.replace (/==/g, "");
		
		// put into saved fields
		if (savefield1 != '') savefield1.value = savefield1.value + no.value + '==' + choicefield1.value + '::';
		savefield2.value = savefield2.value + no.value + '==' + choicefield2.value + '::';
		if (savefield3 != '') savefield3.value = savefield3.value + no.value + '==' + choicefield3.value + '::';
		if (savefield4 != '') savefield4.value = savefield4.value + no.value + '==' + choicefield4.value + '::';
		
		// put into list box using the passed format guide
		var labeltext = "";
		if (choicefield1 != '') labeltext = formatstring.replace (/<1>/g, choicefield1.value);
		if (choicefield1 != '') labeltext = labeltext.replace (/<2>/g, choicefield2.value);
		   else labeltext = formatstring.replace (/<2>/g, choicefield2.value);
		if (choicefield3 != '')labeltext = labeltext.replace (/<3>/g, choicefield3.value);
		if (choicefield4 != '')labeltext = labeltext.replace (/<4>/g, choicefield4.value);
		no.text = labeltext;
		
		tbox.options[next_option] = no;
		if (choicefield1 != '') choicefield1.value = "";
		choicefield2.value = "";
		if (choicefield3 != '') choicefield3.value = "";
		if (choicefield4 != '') choicefield4.value = "";
		changed_trigger.value='1';
	}
	return;
}

// edit meal choice
function editmenuchoice(fbox, editfield1, editfield2, editfield3, editfield4, savefield1, savefield2, savefield3, savefield4, savevaluefield, editblock) {
	var no = new Option();
	no.value = "";
	for(var i=0; i<fbox.options.length; i++){
		if(fbox.options[i].selected && fbox.options[i].value != "") {
			no.value = fbox.options[i].value;
			no.text = fbox.options[i].text;
		}
	}
	
	if (no.value != "") {
		//	
		// make editor interface visible here
		document.getElementById(editblock).style.display = 'block';
		//
		
		// parse out the values from the saved fields
		if (savefield1 != '') {
			var split_field_array = savefield1.value.split("::");
			for(i=0; i<split_field_array.length; i++){
				var id_val_array = split_field_array[i].split("==");
				if (id_val_array[0] == no.value) editfield1.value = id_val_array[1];
			}
		}
		split_field_array = savefield2.value.split("::");
		for(i=0; i<split_field_array.length; i++){
			var id_val_array = split_field_array[i].split("==");
			if (id_val_array[0] == no.value) editfield2.value = id_val_array[1];
		}
		if (savefield3 != '') {
			split_field_array = savefield3.value.split("::");
			for(i=0; i<split_field_array.length; i++){
				var id_val_array = split_field_array[i].split("==");
				if (id_val_array[0] == no.value) editfield3.value = id_val_array[1];
			}
		}
		if (savefield4 != '') {
			split_field_array = savefield4.value.split("::");
			for(i=0; i<split_field_array.length; i++){
				var id_val_array = split_field_array[i].split("==");
				if (id_val_array[0] == no.value) editfield4.value = id_val_array[1];
			}
		}
		//editfield.value = no.text;
		savevaluefield.value = no.value;
		if (editfield1 != '') editfield1.focus();
		   else editfield2.focus();
	} else {
		alert("You didn't select anything to edit!");
	}
}

// process the OK button from editing a meal choice
function save_menuchoice(tbox, editfield1, editfield2, editfield3, editfield4, savefield1, savefield2, savefield3, savefield4, idfield, editblock, formatstring) {
	// load saved values and insert our new edited entry, replacing the old entry
	if ( savefield1 != '') var savefield1_array = savefield1.value.split("::");
	var savefield2_array = savefield2.value.split("::");
	if ( savefield3 != '') var savefield3_array = savefield3.value.split("::");
	if ( savefield4 != '') var savefield4_array = savefield4.value.split("::");
	
	var labeltext = "";
	var field1_tosave = "";
	var field2_tosave = "";
	var field3_tosave = "";
	var field4_tosave = "";
	
	if ( savefield1 != '') {
		for(var i=0; i<savefield1_array.length; i++){
			var id_val_array = savefield1_array[i].split("==");
			if (id_val_array[0] == idfield.value) {
				field1_tosave += (idfield.value + '==' + editfield1.value + '::');
			} else {
				if (id_val_array[0] != '') field1_tosave += (savefield1_array[i] + '::');
			}
		}
		savefield1.value = field1_tosave;
	}
	for(i=0; i<savefield2_array.length; i++){
		var id_val_array = savefield2_array[i].split("==");
		if (id_val_array[0] == idfield.value) {
			field2_tosave += (idfield.value + '==' + editfield2.value + '::');
		} else {
			if (id_val_array[0] != '') field2_tosave += (savefield2_array[i] + '::');
		}
	}
	savefield2.value = field2_tosave;
	if ( savefield3 != '') {
		for(i=0; i<savefield3_array.length; i++){
			var id_val_array = savefield3_array[i].split("==");
			if (id_val_array[0] == idfield.value) {
				field3_tosave += (idfield.value + '==' + editfield3.value + '::');
			} else {
				if (id_val_array[0] != '') field3_tosave += (savefield3_array[i] + '::');
			}
		}
		savefield3.value = field3_tosave;
	}
	if ( savefield4 != '') {
		for(i=0; i<savefield4_array.length; i++){
			var id_val_array = savefield4_array[i].split("==");
			if (id_val_array[0] == idfield.value) {
				field4_tosave += (idfield.value + '==' + editfield4.value + '::');
			} else {
				if (id_val_array[0] != '') field4_tosave += (savefield4_array[i] + '::');
			}
		}
		savefield4.value = field4_tosave;
	}
	for(i=0; i<tbox.options.length; i++){		
		if(tbox.options[i].value == idfield.value) {
			if ( editfield1 != '') editfield1.value = editfield1.value.replace (/::/g, ""); // get rid of possible separators
			if ( editfield1 != '') editfield1.value = editfield1.value.replace (/==/g, "");
			editfield2.value = editfield2.value.replace (/::/g, "");
			editfield2.value = editfield2.value.replace (/==/g, "");
			if ( editfield3 != '') editfield3.value = editfield3.value.replace (/::/g, "");
			if ( editfield3 != '') editfield3.value = editfield3.value.replace (/==/g, "");
			if ( editfield4 != '') editfield4.value = editfield4.value.replace (/::/g, "");
			if ( editfield4 != '') editfield4.value = editfield4.value.replace (/==/g, "");
			
			// put into list box using the passed format guide
			var labeltext = "";
			if ( editfield1 != '') labeltext = formatstring.replace (/<1>/g, editfield1.value);
			if ( editfield1 != '') labeltext = labeltext.replace (/<2>/g, editfield2.value);
			   else labeltext = formatstring.replace (/<2>/g, editfield2.value);
			if ( editfield3 != '') labeltext = labeltext.replace (/<3>/g, editfield3.value);
			if ( editfield4 != '') labeltext = labeltext.replace (/<4>/g, editfield4.value);

			tbox.options[i].text = labeltext;
			tbox.options[i].value= idfield.value;
			if ( editfield1 != '') editfield1.value = "";
			editfield2.value = "";
			if ( editfield3 != '') editfield3.value = "";
			if ( editfield4 != '') editfield4.value = "";
		} else {
			tbox.options[i].value = tbox.options[i].value;
			tbox.options[i].text = tbox.options[i].text;
		}
	}
	
	// 
	// hide editor interface here
	document.getElementById(editblock).style.display = 'none';
	//
}



// process to delete a menu choice (confirmation is made first)
function deletemenuchoice(fbox, savefield1, savefield2, savefield3, savefield4)
{
 var is_confirmed = confirm("Do you really want to delete this selection?");
 if (is_confirmed == true)
 {
   // confirmed
   var id_to_delete = "";
   for(var i=0; i<fbox.options.length; i++){
		if(fbox.options[i].selected && fbox.options[i].value != ""){
			id_to_delete = fbox.options[i].value;
		}
	}
	
	if (id_to_delete == "") {
		alert("You didn't select anything to delete!");
	}
   
   removeListBoxElement(fbox,0); // removes it from the list box
   
    // now remove from the saved variables
    if ( savefield1 != '') var savefield1_array = savefield1.value.split("::");
	var savefield2_array = savefield2.value.split("::");
	if ( savefield3 != '') var savefield3_array = savefield3.value.split("::");
	if ( savefield4 != '') var savefield4_array = savefield4.value.split("::");
	
	var field1_tosave = "";
	var field2_tosave = "";
	var field3_tosave = "";
	var field4_tosave = "";
	
	if ( savefield1 != '') {
		for(var i=0; i<savefield1_array.length; i++){
			var id_val_array = savefield1_array[i].split("==");
			if (id_val_array[0] != id_to_delete) field1_tosave += (savefield1_array[i] + '::');
		}
		savefield1.value = field1_tosave;
	}
	for(var i=0; i<savefield2_array.length; i++){
		var id_val_array = savefield2_array[i].split("==");
		if (id_val_array[0] != id_to_delete) field2_tosave += (savefield2_array[i] + '::');
	}
	savefield2.value = field2_tosave;
	if ( savefield3 != '') {
		for(var i=0; i<savefield3_array.length; i++){
			var id_val_array = savefield3_array[i].split("==");
			if (id_val_array[0] != id_to_delete) field3_tosave += (savefield3_array[i] + '::');
		}
		savefield3.value = field3_tosave;
	}
	if ( savefield4 != '')  {
		for(var i=0; i<savefield4_array.length; i++){
			var id_val_array = savefield4_array[i].split("==");
			if (id_val_array[0] != id_to_delete) field4_tosave += (savefield4_array[i] + '::');
		}
		savefield4.value = field4_tosave;
	}
   
   return;
 }
 else
 {
   // user cancelled the delete
   return;
  }
}



// routine that's called when the edit event form is submitted
function submitVerify(thisform) {

	
	return true;
}

// add new important date
function addspecialdate(tbox, description_in, other_in, month_in, day_in, year_in, reminder_in, email_reminder_in, reminder_days_in, description_saved, date_saved, reminder_saved, email_reminder_saved, reminder_days_saved, changed_trigger, r_symbol, e_symbol) {
	if ((description_in.value != "") || (other_in.value != "")) {
		var next_option = tbox.options.length;
		var no = new Option();
		var ran_unrounded=Math.random()*999999;  // generate random num for unique temp id
		var ran_number=Math.floor(ran_unrounded); // round the num (not necessarily needed)
		no.value = 'new-' + ran_number;
		if (other_in.value != "") other_in.value = other_in.value.replace (/::/g, ""); // get rid of possible separators
		if (other_in.value != "") other_in.value = other_in.value.replace (/==/g, "");
		
		// put into saved fields
		if (description_in.value != '') description_saved.value = description_saved.value + no.value + '==' + description_in.value + '::';
		   else description_saved.value = description_saved.value + no.value + '==' + other_in.value + '::';
		date_saved.value = date_saved.value + no.value + '==' + year_in.value + '-' + month_in.value + '-' + day_in.value + '::';

		if (reminder_in.checked) reminder_saved.value = reminder_saved.value + no.value + '==1::';
		   else reminder_saved.value = reminder_saved.value + no.value + '==0::';
		if (email_reminder_in.checked) email_reminder_saved.value = email_reminder_saved.value + no.value + '==1::';
		   else email_reminder_saved.value = email_reminder_saved.value + no.value + '==0::';
		reminder_days_saved.value = reminder_days_saved.value + no.value + '==' + reminder_days_in.value + '::';
		
		// put into list box using the passed format guide
		var description;
		var reminder = "";
		if (other_in.value != '') description = other_in.value;
		   else description = description_in.value;
		if (reminder_in.checked) reminder = ' ' + r_symbol;
		if (email_reminder_in.checked) reminder += ' ' + e_symbol;
		
		var labeltext = month_in.value + '/' + day_in.value + '/' + year_in.value + ' - ' + description + reminder;
		no.text = labeltext;
		
		tbox.options[next_option] = no;
		// reset add field defaults
		description_in.value = "";
		other_in.value = "";
		reminder_in.checked = true;
		email_reminder_in.checked = false;
		reminder_days_in.value = "7";
		changed_trigger.value='1';
	}
	return;
}

// edit special date choice
function editspecialdatechoice(fbox, description_in, month_in, day_in, year_in, reminder_in, email_reminder_in, reminder_days_in, description_saved, date_saved, reminder_saved, email_reminder_saved, reminder_days_saved, savevaluefield, editblock) {
	var no = new Option();
	no.value = "";
	for(var i=0; i<fbox.options.length; i++){
		if(fbox.options[i].selected && fbox.options[i].value != "") {
			no.value = fbox.options[i].value;
			no.text = fbox.options[i].text;
		}
	}
	
	if (no.value != "") {
		//	
		// make editor interface visible here
		document.getElementById(editblock).style.display = 'block';
		//
		
		// parse out the values from the saved fields
		var split_field_array = description_saved.value.split("::");
		for(i=0; i<split_field_array.length; i++){
			var id_val_array = split_field_array[i].split("==");
			if (id_val_array[0] == no.value) description_in.value = id_val_array[1];
		}

		split_field_array = date_saved.value.split("::");
		for(i=0; i<split_field_array.length; i++){
			var id_val_array = split_field_array[i].split("==");
			if (id_val_array[0] == no.value) {
				split_field_array = id_val_array[1].split("-");
				year_in.value = split_field_array[0];
				month_in.value = split_field_array[1];
				day_in.value = split_field_array[2];
			}
		}
		split_field_array = reminder_saved.value.split("::");
		for(i=0; i<split_field_array.length; i++){
			var id_val_array = split_field_array[i].split("==");
			if (id_val_array[0] == no.value) {
				if (id_val_array[1] == "1") reminder_in.checked = true;
				   else reminder_in.checked = false;
			}
		}
		split_field_array = email_reminder_saved.value.split("::");
		for(i=0; i<split_field_array.length; i++){
			var id_val_array = split_field_array[i].split("==");
			if (id_val_array[0] == no.value) {
				if (id_val_array[1] == "1") email_reminder_in.checked = true;
				   else email_reminder_in.checked = false;
			}
		}
		split_field_array = reminder_days_saved.value.split("::");
		for(i=0; i<split_field_array.length; i++){
			var id_val_array = split_field_array[i].split("==");
			if (id_val_array[0] == no.value) reminder_days_in.value = id_val_array[1];
		}

		//editfield.value = no.text;
		savevaluefield.value = no.value;
		description_in.focus();
	} else {
		alert("You didn't select anything to edit!");
	}
}

// process the OK button from editing a special date choice
function save_specialdate(tbox, description_in, month_in, day_in, year_in, reminder_in, email_reminder_in, reminder_days_in, description_saved, date_saved, reminder_saved, email_reminder_saved, reminder_days_saved, idfield, editblock, r_symbol, e_symbol) {
	// load saved values and insert our new edited entry, replacing the old entry
	var description_saved_array = description_saved.value.split("::");
	var date_saved_array = date_saved.value.split("::");
	var reminder_saved_array = reminder_saved.value.split("::");
	var email_reminder_saved_array = email_reminder_saved.value.split("::");
	var reminder_days_saved_array = reminder_days_saved.value.split("::");
	
	var labeltext = "";
	var description_tosave = "";
	var date_tosave = "";
	var reminder_tosave = "";
	var email_reminder_tosave = "";
	var reminder_days_tosave = "";
	
	for(var i=0; i<description_saved_array.length; i++){
		var id_val_array = description_saved_array[i].split("==");
		if (id_val_array[0] == idfield.value) {
			description_tosave += (idfield.value + '==' + description_in.value + '::');
		} else {
			if (id_val_array[0] != '') description_tosave += (description_saved_array[i] + '::');
		}
	}
	description_saved.value = description_tosave;
	
	for(i=0; i<date_saved_array.length; i++){
		var id_val_array = date_saved_array[i].split("==");
		if (id_val_array[0] == idfield.value) {
			date_tosave += idfield.value;
			date_tosave += '==';
			date_tosave += year_in.value;
			date_tosave += '-';
			date_tosave += month_in.value;
			date_tosave += '-';
			date_tosave += day_in.value;
			date_tosave += '::';
		} else {
			if (id_val_array[0] != '') date_tosave += (date_saved_array[i] + '::');
		}
	}
	date_saved.value = date_tosave;

	for(i=0; i<reminder_saved_array.length; i++){
		var id_val_array = reminder_saved_array[i].split("==");
		if (id_val_array[0] == idfield.value) {
			if (reminder_in.checked) reminder_tosave += (idfield.value + '==1::');
			   else reminder_tosave += (idfield.value + '==0::');
		} else {
			if (id_val_array[0] != '') reminder_tosave += (reminder_saved_array[i] + '::');
		}
	}
	reminder_saved.value = reminder_tosave;
	
	for(i=0; i<email_reminder_saved_array.length; i++){
		var id_val_array = email_reminder_saved_array[i].split("==");
		if (id_val_array[0] == idfield.value) {
			if (email_reminder_in.checked) email_reminder_tosave += (idfield.value + '==1::');
			   else email_reminder_tosave += (idfield.value + '==0::');
		} else {
			if (id_val_array[0] != '') email_reminder_tosave += (email_reminder_saved_array[i] + '::');
		}
	}
	email_reminder_saved.value = email_reminder_tosave;
	
	for(i=0; i<reminder_days_saved_array.length; i++){
		var id_val_array = reminder_days_saved_array[i].split("==");
		if (id_val_array[0] == idfield.value) {
			reminder_days_tosave += (idfield.value + '==' + reminder_days_in.value + '::');
		} else {
			if (id_val_array[0] != '') reminder_days_tosave += (reminder_days_saved_array[i] + '::');
		}
	}
	reminder_days_saved.value = reminder_days_tosave;
	
	
	for(i=0; i<tbox.options.length; i++){		
		if(tbox.options[i].value == idfield.value) {
			if (description_in.value != "") description_in.value = description_in.value.replace (/::/g, ""); // get rid of possible separators
			if (description_in.value != "") description_in.value = description_in.value.replace (/==/g, "");
			
			// put into list box using the passed format guide
			var reminder = "";
			if (reminder_in.checked) reminder = ' ' + r_symbol;
		    if (email_reminder_in.checked) reminder += ' ' + e_symbol;
			var labeltext = month_in.value + '/' + day_in.value + '/' + year_in.value + ' - ' + description_in.value + reminder;

			tbox.options[i].text = labeltext;
			tbox.options[i].value= idfield.value;
			// reset add field defaults
			description_in.value = "";
			reminder_in.checked = false;
			email_reminder_in.checked = false;
			reminder_days_in.value = "7";
		} else {
			tbox.options[i].value = tbox.options[i].value;
			tbox.options[i].text = tbox.options[i].text;
		}
	}
	
	// 
	// hide editor interface here
	document.getElementById(editblock).style.display = 'none';
	//
}

// process to delete a menu choice (confirmation is made first)
function deletespecialdatechoice(fbox, description_saved, date_saved, reminder_saved, email_reminder_saved, reminder_days_saved)
{
 var is_confirmed = confirm("Do you really want to delete this selection?");
 if (is_confirmed == true)
 {
   // confirmed
   var id_to_delete = "";
   for(var i=0; i<fbox.options.length; i++){
		if(fbox.options[i].selected && fbox.options[i].value != ""){
			id_to_delete = fbox.options[i].value;
		}
	}
	
	if (id_to_delete == "") {
		alert("You didn't select anything to delete!");
	}
   
   removeListBoxElement(fbox,0); // removes it from the list box
   
    // now remove from the saved variables
    var description_array = description_saved.value.split("::");
	var date_array = date_saved.value.split("::");
	var reminder_array = reminder_saved.value.split("::");
	var email_reminder_array = email_reminder_saved.value.split("::");
	var reminder_days_array = reminder_days_saved.value.split("::");
	
	var description_tosave = "";
	var date_tosave = "";
	var reminder_tosave = "";
	var email_reminder_tosave = "";
	var reminder_days_tosave = "";
	
	for(var i=0; i<description_array.length; i++){
		var id_val_array = description_array[i].split("==");
		if (id_val_array[0] != id_to_delete) description_tosave += (description_array[i] + '::');
	}
	description_saved.value = description_tosave
	for(i=0; i<date_array.length; i++){
		var id_val_array = date_array[i].split("==");
		if (id_val_array[0] != id_to_delete) date_tosave += (date_array[i] + '::');
	}
	date_saved.value = date_tosave
	for(i=0; i<reminder_array.length; i++){
		var id_val_array = reminder_array[i].split("==");
		if (id_val_array[0] != id_to_delete) reminder_tosave += (reminder_array[i] + '::');
	}
	reminder_saved.value = reminder_tosave
	for(i=0; i<email_reminder_array.length; i++){
		var id_val_array = email_reminder_array[i].split("==");
		if (id_val_array[0] != id_to_delete) email_reminder_tosave += (email_reminder_array[i] + '::');
	}
	email_reminder_saved.value = email_reminder_tosave
	for(i=0; i<reminder_days_array.length; i++){
		var id_val_array = reminder_days_array[i].split("==");
		if (id_val_array[0] != id_to_delete) reminder_days_tosave += (reminder_days_array[i] + '::');
	}
	reminder_days_saved.value = reminder_days_tosave
   
   return;
 }
 else
 {
   // user cancelled the delete
   return;
  }
}