window.onload = function() {
	window.focus();	
}

var delimiter ;
delimiter = "|" ;

function PopulateHiddenFromSelect( hiddenbox , selectbox )
{
  var optionCounter;
  hiddenbox.value = "";
  for (optionCounter = 0; optionCounter < selectbox.length; optionCounter++)
  {
   hiddenbox.value = hiddenbox.value + selectbox.options[optionCounter].text + delimiter ;
  }
}

function AddToSelect( inputbox , selectbox , hiddenbox )
{
  if ( inputbox.value.indexOf("|") > 0 )
  {
    alert("Cannot search for " + delimiter + " symbol");
    return false;
  }
  if ( inputbox.value.length > 0 )
  {
    var optionCounter;
    for (optionCounter = 0; optionCounter < selectbox.length; optionCounter++)
    {
     if ( selectbox.options[optionCounter].text == inputbox.value )  return false;
    }
    var myNewOption = new Option( inputbox.value , inputbox.value );
    selectbox.options[ selectbox.length ] = myNewOption;

    PopulateHiddenFromSelect( hiddenbox , selectbox );

    inputbox.value = "";
		inputbox.focus();
  }
}

function DeleteFromSelect( selectbox , hiddenbox )
{
  var optionIndex;
  optionIndex = selectbox.selectedIndex;
  if ( optionIndex > -1 )
  {
    selectbox.options[ optionIndex ] = null;
    PopulateHiddenFromSelect( hiddenbox , selectbox );
  }
}

function ClearSelect(selectbox)
{
	while (selectbox.length > 0)
	{
		selectbox.options[0] = null;
	}
}

function PopulateSelects()
{
	ClearSelect(document.spamform.whitelist_display_list);
	ClearSelect(document.spamform.blacklist_display_list);
	
	PopulateSelectFromHidden(document.spamform.whitelist, document.spamform.whitelist_display_list);
	PopulateSelectFromHidden(document.spamform.blacklist, document.spamform.blacklist_display_list);
}	

function PopulateHiddens()
{
    PopulateHiddenFromSelect(document.spamform.whitelist, document.spamform.whitelist_display_list);
	PopulateHiddenFromSelect(document.spamform.blacklist, document.spamform.blacklist_display_list);
}	

function PopulateSelectFromHidden(hiddenbox, selectbox)
{
	if (!delimiter || delimiter == "")
		delimiter = "|";
		
	var arr_hiddenbox = hiddenbox.value.split(delimiter);
  
	for (var i = 0; i < arr_hiddenbox.length; i++)
	{
		if (arr_hiddenbox[i] != '')
		{
			var myNewOption = new Option(arr_hiddenbox[i], arr_hiddenbox[i]);
			selectbox.options[selectbox.length] = myNewOption;
		}
	}
}

/* Used to make sure the user doens't leave the page with an uncompleted form */
var arrForms;
var strInitalFormsSerialized;
var isSubmit = false;

window.onload = function() {
	arrForms = document.getElementsByTagName("form");
	
	for (i = 0; i < arrForms.length; i++) {
		arrSubmits = Form.getInputs(arrForms[i], "submit")
		for (x = 0; x < arrSubmits.length; x++) {
			arrSubmits[i].onclick = function() {
				isSubmit = true;	
			}
		}
	}
	
	strInitalFormsSerialized = getCompleteFormSerialized();
}

window.onbeforeunload = function(e) {
	if (!isSubmit && (strInitalFormsSerialized != getCompleteFormSerialized())) {
		return "You have unsaved changes."
	}
}

function getCompleteFormSerialized() {
	strSerialsedForms = "";

	for (i = 0; i < arrForms.length; i++) {
		strSerialsedForms += Form.serialize(arrForms[i]);
	}
	
	return strSerialsedForms;

}