var SelectedItemsListField  = "selectedOptions";
var AvailableItemsListField = "availableOptions";
var HiddenListField = "selectedBooks";

//field container
var SelectedItemsList;
var AvailableItemsList;
var HiddenItemsList;

var OTMoved = false;	// value = 100
var NTMoved = false;	// value = 200

function createListObjects(){
    AvailableItemsList = document.getElementById(AvailableItemsListField);
    SelectedItemsList  = document.getElementById(SelectedItemsListField);
    HiddenItemsList    = document.getElementById(HiddenListField);
}

function LoadSelectedVerses(){
	if (typeof(HiddenItemsList) == "undefined" || HiddenItemsList == null)	createListObjects();
	if (HiddenItemsList != null)
		if (HiddenItemsList.value.length > 0)
		{
			var selectedItems = new String(HiddenItemsList.value);
			var arList = selectedItems.split(",");
			for(var j=0; j< arList.length; j++) 
			{
				for (var k=0; k<AvailableItemsList.length; k++)
				{
					if ( AvailableItemsList.options[k].value == arList[j]) 
						SelectedItemsList.appendChild( AvailableItemsList.options.item(k) );
				}
			}
		}
}

function ReMoveItem(){
	if (typeof(SelectedItemsList) == "undefined")	createListObjects();
 	if (SelectedItemsList.selectedIndex < 0) return;
 	
	var selectedItems = new String("");
	var nonSelectedItems = new String("");
	for (var i=0; i<SelectedItemsList.length; i++)
	{
	 	if ( SelectedItemsList.options[i].selected ) 
		{
			if (SelectedItemsList.options[i].value == 100)	OTMoved = false;
			if (SelectedItemsList.options[i].value == 200)	NTMoved = false;
				
			selectedItems += SelectedItemsList.options[i].value + ",";
		}
		else
			nonSelectedItems += SelectedItemsList.options[i].value + ",";
	}
	selectedItems += "-1";
	nonSelectedItems += "-1";
	
	var arList = selectedItems.split(",");
	for(var j=0; j< arList.length; j++) {
		for (var k=0; k<SelectedItemsList.length; k++){
			if ( SelectedItemsList.options[k].value == arList[j]) 
			  AvailableItemsList.appendChild( SelectedItemsList.options.item(k) );
		}
	}
	//set moved lit fo items
	var HiddenList  = document.getElementById(HiddenListField);
	HiddenList.value = nonSelectedItems;

	//clear all selections
	selectNone(AvailableItemsList,SelectedItemsList);

}

function MoveItem(){
	if (typeof(SelectedItemsList) == "undefined")	createListObjects();
	if (AvailableItemsList.selectedIndex < 0) return;
	
	var selectedItems = new String("");
	for (var i=0; i<AvailableItemsList.length; i++)
	{
	 	if ( AvailableItemsList.options[i].selected ) 
		{
			
	   	if (AvailableItemsList.options[i].value == 100)	
				if (NTMoved == true)
					alert("Please remove the \"New Testament\" before selecting the Old Testament");
				else
				{
					OTMoved = true;
					selectedItems += AvailableItemsList.options[i].value + ",";
				}
				
			if (AvailableItemsList.options[i].value == 200)	
				if (OTMoved == true)
					alert("Please remove the \"Old Testament\" before selecting the New Testament");
				else
				{
					NTMoved = true;
					selectedItems += AvailableItemsList.options[i].value + ",";
				}
			
			var itmText = AvailableItemsList.options[i].text
			if ((itmText.substr(itmText.length - 3, 3) == "(n)" && NTMoved ) && AvailableItemsList.options[i].value != 200)
				alert("Please remove the \"New Testament\"\nbefore selecting other books from the New Testament.");
			else if ((itmText.substr(itmText.length - 3, 3) == "(o)" && OTMoved) && AvailableItemsList.options[i].value != 100)
				alert("Please remove the \"Old Testament\"\nbefore selecting other books from the Old Testament.");
			else if ( (!OTMoved && !NTMoved) || 
				( itmText.substr(itmText.length - 3, 3) == "(o)" && AvailableItemsList.options[i].value != 200 && !OTMoved ) 	 ||
				( itmText.substr(itmText.length - 3, 3) == "(n)" && AvailableItemsList.options[i].value != 100 && !NTMoved ) 	)
				selectedItems += AvailableItemsList.options[i].value + ",";			
		}
	}
	selectedItems += "-1"
	
	var arList = selectedItems.split(",");
	for(var j=0; j< arList.length; j++)	{
		for (var k=0; k<AvailableItemsList.length; k++)	{
	 		if ( AvailableItemsList.options[k].value == arList[j]) 
				SelectedItemsList.appendChild( AvailableItemsList.options.item(k) );
		}
	}
	
	//set moved lit fo items
		var HiddenList  = document.getElementById(HiddenListField);
		HiddenList.value = HiddenList.value.replace(",-1", ",")
		HiddenList.value += selectedItems;
	//clear all selections
	selectNone(SelectedItemsList,AvailableItemsList);
}

function selectNone(list1,list2){
    list1.selectedIndex = -1;
    list2.selectedIndex = -1;
    addIndex = -1;
    selIndex = -1;
}

function getSize(list){
    /* Mozilla ignores whitespace, IE doesn't - count the elements in the list */
    var len = list.childNodes.length;
    var nsLen = 0;
    //nodeType returns 1 for elements
    for(i=0; i<len; i++)
      if(list.childNodes.item(i).nodeType==1) nsLen++;

    if(nsLen<2) return 2;
    else return nsLen;
}

function ReMoveAllItems(){
	if (typeof(SelectedItemsList) == "undefined")	createListObjects();
 	if (SelectedItemsList.length <= 0) return;

  var len = SelectedItemsList.length -1;
  for(i=len; i>=0; i--)
    AvailableItemsList.appendChild(SelectedItemsList.item(i));
    selectNone(SelectedItemsList,AvailableItemsList);    
}

function MoveAllItems(){
	if (typeof(SelectedItemsList) == "undefined")	createListObjects();
	if (AvailableItemsList.length <= 0) return;

  var len = AvailableItemsList.length -1;
  for(i=len; i>=0; i--)
    SelectedItemsList.appendChild(AvailableItemsList.item(i));
  selectNone(SelectedItemsList,AvailableItemsList);
}

function CheckTestaMentMove(){
	for(var j=0; j< arList.length; j++)	{
		for (var k=0; k<AvailableItemsList.length; k++)	{
	 		if ( AvailableItemsList.options[k].value == arList[j]) 
				SelectedItemsList.appendChild( AvailableItemsList.options.item(k) );
		}
	}
	selectNone(SelectedItemsList,AvailableItemsList);
}