You are viewing a plain text version of this content. The canonical link for it is here.
Posted to adffaces-commits@incubator.apache.org by aw...@apache.org on 2006/10/13 19:31:45 UTC

svn commit: r463793 [2/15] - in /incubator/adffaces/trunk/trinidad: trinidad-api/src/main/java/org/apache/myfaces/trinidad/render/ trinidad-build/src/main/resources/META-INF/maven-faces-plugin/renderers/trinidad/ trinidad-demo/src/main/webapp/component...

Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/Shuttle.js
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/Shuttle.js?view=diff&rev=463793&r1=463792&r2=463793
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/Shuttle.js (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/Shuttle.js Fri Oct 13 12:31:43 2006
@@ -14,6 +14,7 @@
  * limitations under the License.
  */
 
+//FIXME: grab from a translation JS
 var _shuttle_no_name = "You must supply the shuttle's name to create a proxy";
 var _shuttle_no_form_name_provided = "A form name must be provided";
 var _shuttle_no_form_available = "This shuttle is not in a form";
@@ -21,18 +22,18 @@
 
 //========================================================================
 //
-// (Public) ShuttleProxy Object
+// (Public) TrShuttleProxy Object
 //
 
-// ShuttleProxy instances can be used to determine information about
+// TrShuttleProxy instances can be used to determine information about
 // a shuttle at runtime and gain access to the data it contains.
-// A ShuttleProxy can be constructed from just the name of the shuttle,
+// A TrShuttleProxy can be constructed from just the name of the shuttle,
 // or the shuttle name and its form name. If the form name is not
 // supplied, it will be determined at runtime.
 
 
 // Constructor
-function ShuttleProxy(
+function TrShuttleProxy(
   shuttleName,
   formName
   )
@@ -80,181 +81,479 @@
 //
 
 //
-// Calling getItems(boolean leadingList) on a ShuttleProxy will return an
+// Calling getItems(boolean leadingList) on a TrShuttleProxy will return an
 // array of the items in the given list of the shuttle
 //
-ShuttleProxy.prototype.getItems = _getItems;
+TrShuttleProxy.prototype.getItems = function(
+  leadingList
+  )
+{
+  //default params not given
+  if(leadingList == (void 0))
+  {
+    leadingList = true;
+  }
+
+  //get the list name
+  var listName = TrShuttleProxy._getListName(this.shuttleName, leadingList);
+
+
+  var list = document.forms[this.formName].elements[listName];
+
+  var items = new Array();
+  //length - 1 because of bars
+  for(var i=0; i<list.length-1; i++)
+  {
+    items[i] = list.options[i];
+  }
+
+  return items;
+};
 
 //
-// Calling getSelectedItems(boolean leadingList) on a ShuttleProxy will
+// Calling getSelectedItems(boolean leadingList) on a TrShuttleProxy will
 // return an array of the selected items in the given list of the shuttle
 //
-ShuttleProxy.prototype.getSelectedItems = _getSelectedItems;
+TrShuttleProxy.prototype.getSelectedItems = function(
+  leadingList
+  )
+{
+  //default params not given
+  if(leadingList == (void 0))
+  {
+    leadingList = true;
+  }
+
+  var listName = TrShuttleProxy._getListName(this.shuttleName, leadingList);
+
+
+  var list = document.forms[this.formName].elements[listName];
+
+  var items = new Array();
+  var j = 0;
+  //length - 1 because of bars
+  for(var i=0; i<list.length-1; i++)
+  {
+    if(list.options[i].selected)
+    {
+      items[j] = list.options[i];
+      j++;
+    }
+  }
+
+  return items;
+};
 
 //
-// Calling getItemCount(boolean leadingList) on a ShuttleProxy will
+// Calling getItemCount(boolean leadingList) on a TrShuttleProxy will
 // return the number of items in the given list of the shuttle
 //
-ShuttleProxy.prototype.getItemCount = _getItemCount;
+TrShuttleProxy.prototype.getItemCount = function(
+  leadingList
+  )
+{
+  //default params not given
+  if(leadingList == (void 0))
+  {
+    leadingList = true;
+  }
+
+  var listName = TrShuttleProxy._getListName(this.shuttleName, leadingList);
+
+
+  //minus 1 for bars
+  return document.forms[this.formName].elements[listName].length - 1;
+};
+
 
 //
-// Calling getSelectedItemCount(boolean leadingList) on a ShuttleProxy will
+// Calling getSelectedItemCount(boolean leadingList) on a TrShuttleProxy will
 // return the number of selected items in the given list of the shuttle
 //
-ShuttleProxy.prototype.getSelectedItemCount = _getSelectedItemCount;
+TrShuttleProxy.prototype.getSelectedItemCount = function(
+  leadingList
+)
+{
+  //default params not given
+  if(leadingList == (void 0))
+  {
+    leadingList = true;
+  }
 
-//
-// Calling addItem(boolean leadingList, int index, string text, string value, string description)
-// on a ShuttleProxy will insert a new option into the given list at the
-// specified index with the specified text, value, and description.
-//
-ShuttleProxy.prototype.addItem = _addItem;
+  var listName = TrShuttleProxy._getListName(this.shuttleName, leadingList);
 
-//
-// Calling deleteItemByValue(boolean leadingList, string value)
-// on a ShuttleProxy will delete the option with the given value
-// from the given list.
-//
-ShuttleProxy.prototype.deleteItemByValue = _deleteItemByValue;
 
-//
-// Calling deleteSelectedItems(boolean leadingList)
-// on a ShuttleProxy will delete all selected items from the given list
-//
-ShuttleProxy.prototype.deleteSelectedItems = _deleteSelectedItems;
+  var list = document.forms[this.formName].elements[listName];
 
-//
-// Calling move(boolean fromLeadingList, boolean allItems) on a ShuttleProxy
-// will move the selected items, or all items depending on allItems parameter,
-// from the given list to the other list.
-//
-ShuttleProxy.prototype.move = _move;
+  var j = 0;
+  //length - 1 because of bars
+  for(var i=0; i<list.length-1; i++)
+  {
+    if(list.options[i].selected)
+    {
+       j++;
+    }
+  }
+
+  return j;
+};
 
 //
-// Calling reorderList(boolean down, boolean allTheWay, boolean leadingList) on
-// a ShuttleProxy will move the selected items in the second list of the proxy
-//in the direction specified.  If allTheWay is true it will move the items all
-// the way to the top or bottom.  Otherwise the items move one slot.
+// Calling addItem(boolean leadingList, int index, string text, string value, string description)
+// on a TrShuttleProxy will insert a new option into the given list at the
+// specified index with the specified text, value, and description.
 //
-ShuttleProxy.prototype.reorderList = _reorderList;
+TrShuttleProxy.prototype.addItem = function(
+  leadingList,
+  index,
+  text,
+  value,
+  description
+  )
+{
+  //default params not given
+  if(value == (void 0))
+  {
+    value = "";
+  }
+  if(text == (void 0))
+  {
+    text = "";
+  }
+  if(description == (void 0))
+    {
+      description = "";
+  }
+  if(leadingList == (void 0))
+  {
+    leadingList = true;
+  }
 
 
-//
-// Calling reset will reset the shuttle to its initial state.
-//
-ShuttleProxy.prototype.reset = _reset;
+  //get the list
+  var listName = TrShuttleProxy._getListName(this.shuttleName, leadingList);
 
 
-/*===========================================================================*/
-/*-----------------------------------------------------------------------
- *PRIVATE SHUTTLE METHODS
- *-----------------------------------------------------------------------*/
 
+  //get an appropriate index
+  if(index == (void 0))
+  { //minus 1 for bars
+    index = document.forms[this.formName].elements[listName].length - 1;
+  }
 
-/*
- * _remove
- *
- * This function removes the number of elements specified
- * by deleteCount from an array starting at the index given
- * by start
- */
+  if(index < 0)
+  {
+    index = 0;
+  }
 
-function _remove( array, start, deleteCount )
-{
+  //minus 1 for bars
+  if(index > document.forms[this.formName].elements[listName].length - 1)
+  {
+    index = document.forms[this.formName].elements[listName].length - 1;
+  }
 
-  var len = array.length;
+  //first move all items at that index and below down to make room for this
+  //new item.
+  var theList = document.forms[this.formName].elements[listName];
 
-  if (deleteCount > len)
-    return;
+  //make a new option for the bars
+  theList.options[theList.length] =
+       new Option(theList.options[theList.length-1].text,
+                  theList.options[theList.length-1].value,
+                  false,
+                  false);
 
-  for ( var i = start; i < len ; i++)
+  //move items down
+  for(var i = theList.length - 1; i > index; i--)
   {
-
-    if ( i < len - deleteCount )
-      array[i] = array[ i + deleteCount];
-    else
-      array[ i ] = void 0;
+    theList.options[i].text = theList.options[i-1].text;
+    theList.options[i].value = theList.options[i-1].value;
+    theList.options[i].selected = theList.options[i-1].selected;
   }
 
-  array.length = len - deleteCount;
+  //insert the new item
+  theList.options[index].text = text;
+  theList.options[index].value = value;
+  theList.options[index].selected = false;
 
-}
+  // add description
+  var descArray = TrShuttleProxy._getDescArray(listName);
+  TrShuttleProxy._addDescAtIndex( descArray, description, index);
 
+  TrShuttleProxy._makeList(this.formName, listName);
+};
 
-/*
- * _displayDesc
- *
- * Displays the description in the description area below the list.
- *
- */
-function _displayDesc(
-  listName,
-  formName
+//
+// Calling deleteItemByValue(boolean leadingList, string value)
+// on a TrShuttleProxy will delete the option with the given value
+// from the given list.
+//
+TrShuttleProxy.prototype.deleteItemByValue = function(
+  leadingList,
+  value
   )
 {
-
-
-  if(formName == (void 0))
+  if(value == (void 0))
   {
-    alert(_shuttle_no_form_name_provided);
     return;
   }
 
 
-  if(formName.length == 0)
+  //get the list
+  var listName = TrShuttleProxy._getListName(this.shuttleName, leadingList);
+  var theList = document.forms[this.formName].elements[listName];
+
+  for(var i=0; i<theList.length-1; i++)
   {
-    alert(shuttle_no_form_available);
-    return;
-  }
+    var val = theList.options[i].value;
+    if(val == value)
+    {
+      var descArray = TrShuttleProxy._getDescArray( listName );
+      TrShuttleProxy._deleteDescAtIndex( descArray, i);
+      TrShuttleProxy._clearDescAreas(this.formName, listName);
 
-  // the textInput where descriptions are displayed
-  var descArea = document.forms[formName].elements[ listName + ':desc'];
+      theList.options[i] = null;
+      TrShuttleProxy._makeList(this.formName, listName);
 
-  if( descArea == void(0))
-  {
-    return;
+      return;
+    }
   }
 
+};
 
-  // the array of descriptions
-  var descArray  =  _getDescArray( listName );
 
-  if( descArray == (void 0) || descArray.length == 0)
+//
+// Calling deleteSelectedItems(boolean leadingList)
+// on a TrShuttleProxy will delete all selected items from the given list
+//
+TrShuttleProxy.prototype.deleteSelectedItems = function(
+  leadingList
+  )
+{
+  if(leadingList == (void 0))
   {
-    return;
+    leadingList = true;
   }
 
-  //get the indexes of the selected items
-  var selItems = _getSelectedIndexes(formName, listName);
 
-  //if no items are selected, return
-  if(selItems.length == 0)
-  {
-    descArea.value = "";
-    _setSelected( listName, selItems );
-    return;
-  }
+  //get the list
+  var listName = TrShuttleProxy._getListName(this.shuttleName, leadingList);
+  var theList = document.forms[this.formName].elements[listName];
 
-  // get the last description selected
-  var selOptDesc = _getSelectedDesc( listName, descArray, selItems );
+  var selIndexes = TrShuttleProxy._getSelectedIndexes(this.formName,listName);
 
-  // set the value of the description area to be the last selected item
-  descArea.value = selOptDesc;
+  for(var i = selIndexes.length; i >=0; i--)
+  {
+    theList.options[selIndexes[i]] = null;
+  }
 
-  // set which items are currently selected
-  _setSelected( listName, selItems );
+  var descArray = TrShuttleProxy._getDescArray(listName);
 
+  TrShuttleProxy._deleteDescAtIndexes( descArray, selIndexes);
 
-}
+  TrShuttleProxy._clearDescAreas(this.formName, listName);
 
+  TrShuttleProxy._makeList(this.formName, listName);
+};
 
-/*
- * _getDescArray
- *
+//
+// Calling move(boolean fromLeadingList, boolean allItems) on a TrShuttleProxy
+// will move the selected items, or all items depending on allItems parameter,
+// from the given list to the other list.
+//
+TrShuttleProxy.prototype.move = function(
+  fromLeadingList,
+  allItems
+  )
+{
+  //default parameters not given
+  if(allItems == (void 0))
+  {
+    allItems = false;
+  }
+  if(fromLeadingList == (void 0))
+  {
+    fromLeadingList = true;
+  }
+
+  //get the list names
+  var fromListName = TrShuttleProxy._getListName(this.shuttleName, fromLeadingList);
+  var toListName = TrShuttleProxy._getListName(this.shuttleName, !fromLeadingList);
+
+  //move the items
+  if(allItems)
+  {
+    TrShuttleProxy._moveAllItems(fromListName, toListName, this.formName);
+  }
+  else
+  {
+    TrShuttleProxy._moveItems(fromListName, toListName, this.formName);
+  }
+};
+
+//
+// Calling reorderList(boolean down, boolean allTheWay, boolean leadingList) on
+// a TrShuttleProxy will move the selected items in the second list of the proxy
+//in the direction specified.  If allTheWay is true it will move the items all
+// the way to the top or bottom.  Otherwise the items move one slot.
+//
+TrShuttleProxy.prototype.reorderList = function(
+  down,
+  allTheWay,
+  leadingList
+)
+{
+  //default params not given
+  if(leadingList == (void 0))
+  {
+    leadingList = true;
+  }
+  if(allTheWay == (void 0))
+  {
+    allTheWay = false;
+  }
+  if(down == (void 0))
+  {
+    down = false;
+  }
+
+  //get the listName
+  var listName = TrShuttleProxy._getListName(this.shuttleName, leadingList);
+
+
+
+  //reorder the list
+  if(!allTheWay)
+  {
+    TrShuttleProxy._orderList(down, listName, this.formName);
+  }
+  else
+  {
+    TrShuttleProxy._orderTopBottomList(down, listName, this.formName);
+  }
+};
+
+
+//
+// Calling reset will reset the shuttle to its initial state.
+//
+TrShuttleProxy.prototype.reset = function()
+{
+  TrShuttleProxy._resetItems( this.shuttleName, this.formName);
+};
+
+
+
+/*===========================================================================*/
+/*-----------------------------------------------------------------------
+ *PRIVATE SHUTTLE METHODS
+ *-----------------------------------------------------------------------*/
+
+
+/*
+ * _remove
+ *
+ * This function removes the number of elements specified
+ * by deleteCount from an array starting at the index given
+ * by start
+ */
+
+TrShuttleProxy._remove = function( array, start, deleteCount )
+{
+
+  var len = array.length;
+
+  if (deleteCount > len)
+    return;
+
+  for ( var i = start; i < len ; i++)
+  {
+
+    if ( i < len - deleteCount )
+      array[i] = array[ i + deleteCount];
+    else
+      array[ i ] = void 0;
+  }
+
+  array.length = len - deleteCount;
+
+}
+
+
+/*
+ * _displayDesc
+ *
+ * Displays the description in the description area below the list.
+ *
+ */
+TrShuttleProxy._displayDesc = function(
+  listName,
+  formName
+  )
+{
+
+
+  if(formName == (void 0))
+  {
+    alert(_shuttle_no_form_name_provided);
+    return;
+  }
+
+
+  if(formName.length == 0)
+  {
+    alert(shuttle_no_form_available);
+    return;
+  }
+
+  // the textInput where descriptions are displayed
+  var descArea = document.forms[formName].elements[ listName + ':desc'];
+
+  if( descArea == void(0))
+  {
+    return;
+  }
+
+
+  // the array of descriptions
+  var descArray  =  TrShuttleProxy._getDescArray( listName );
+
+  if( descArray == (void 0) || descArray.length == 0)
+  {
+    return;
+  }
+
+  //get the indexes of the selected items
+  var selItems = TrShuttleProxy._getSelectedIndexes(formName, listName);
+
+  //if no items are selected, return
+  if(selItems.length == 0)
+  {
+    descArea.value = "";
+    TrShuttleProxy._setSelected( listName, selItems );
+    return;
+  }
+
+  // get the last description selected
+  var selOptDesc = TrShuttleProxy._getSelectedDesc( listName, descArray, selItems );
+
+  // set the value of the description area to be the last selected item
+  descArea.value = selOptDesc;
+
+  // set which items are currently selected
+  TrShuttleProxy._setSelected( listName, selItems );
+
+
+}
+
+
+/*
+ * _getDescArray
+ *
  * This function gets the description array
  */
 
-function _getDescArray
+TrShuttleProxy._getDescArray = function
 (
   listName
 )
@@ -278,7 +577,7 @@
  * These are compared to determine the last item selected.
  */
 
-function _getSelectedDesc
+TrShuttleProxy._getSelectedDesc = function
 (
   listName,
   descArray,
@@ -287,7 +586,7 @@
 {
 
   // get the array of the indexes of previously selected items
-  var prevSelArray = _getSelectedArray( listName );
+  var prevSelArray = TrShuttleProxy._getSelectedArray( listName );
 
   // if only one item is currently selected return its description
   if ( selItems.length == 1 )
@@ -324,7 +623,7 @@
  */
 
 
-function _getSelectedArray
+TrShuttleProxy._getSelectedArray = function
 (
   listName
 )
@@ -341,19 +640,19 @@
  *
  */
 
-function _setSelected
+TrShuttleProxy._setSelected = function
 (
   listName,
   selected
 )
 {
 
-  var selectedArray = _getSelectedArray( listName );
+  var selectedArray = TrShuttleProxy._getSelectedArray( listName );
 
   if ( selectedArray != (void 0) )
   {
     var len = selectedArray.length;
-    _remove( selectedArray, 0, len);
+    TrShuttleProxy._remove( selectedArray, 0, len);
 
     for ( var i = 0; i < selected.length; i++ )
     {
@@ -371,7 +670,7 @@
  * This function adds a description at a given index.
  */
 
-function _addDescAtIndex
+TrShuttleProxy._addDescAtIndex = function
 (
   descArray,
   addedDesc,
@@ -400,14 +699,14 @@
  * This function removes a description at a given index.
  */
 
-function _deleteDescAtIndex
+TrShuttleProxy._deleteDescAtIndex = function
 (
   descArray,
   index
 )
 {
   if ( descArray != (void 0 ))
-    _remove(descArray, index, 1);
+    TrShuttleProxy._remove(descArray, index, 1);
 }
 
 /*
@@ -416,7 +715,7 @@
  * This function removes descriptions at given indexes.
  */
 
-function _deleteDescAtIndexes
+TrShuttleProxy._deleteDescAtIndexes = function
 (
   descArray,
   indexes
@@ -426,7 +725,7 @@
   {
     for ( var i = indexes.length - 1; i >= 0; i--)
     {
-      _remove(descArray, indexes[i], 1);
+      TrShuttleProxy._remove(descArray, indexes[i], 1);
     }
   }
 }
@@ -439,7 +738,7 @@
  * the empty string.
  */
 
-function _clearDescAreas(
+TrShuttleProxy._clearDescAreas = function(
   formName,
   list1,
   list2
@@ -471,7 +770,7 @@
  * at the bottom. The 'from' and 'to' parameters should be the
  * list names(i.e.  "<shuttleName>:leading" or "<shuttleName>:trailing")
  */
-function _moveItems(
+TrShuttleProxy._moveItems = function(
   from,
   to,
   formName
@@ -480,7 +779,7 @@
   //get the formName if needed
   if(formName == (void 0))
   {
-    formName = _findFormNameContaining(from);
+    formName = TrShuttleProxy._findFormNameContaining(from);
   }
 
   if(formName.length == 0)
@@ -498,7 +797,7 @@
 
 
   //get all the indexes of the selected items
-  var selItems = _getSelectedIndexes(formName, from);
+  var selItems = TrShuttleProxy._getSelectedIndexes(formName, from);
 
   //if no items are selected, return with alert.
   if(selItems.length == 0)
@@ -510,8 +809,8 @@
   }
 
 
-  var fromDescArray = _getDescArray(from);
-  var toDescArray = _getDescArray(to);
+  var fromDescArray = TrShuttleProxy._getDescArray(from);
+  var toDescArray = TrShuttleProxy._getDescArray(to);
 
   //set no selection on toList so it will only have new items selected.
   toList.selectedIndex = -1;
@@ -554,22 +853,19 @@
   for( var i=selItems.length-1; i >= 0; i--)
   {
     if ( fromDescArray != (void 0) )
-      _remove( fromDescArray, selItems[i], 1 );
+      TrShuttleProxy._remove( fromDescArray, selItems[i], 1 );
     fromList.options[selItems[i]] = null;
   }
 
   //make no selected on fromList
   fromList.selectedIndex = -1;
 
-  _clearDescAreas( formName, from);
-  _displayDesc( to, formName );
+  TrShuttleProxy._clearDescAreas( formName, from);
+  TrShuttleProxy._displayDesc( to, formName );
 
   //make the new lists for submitting.
-  _makeList(formName, from);
-  _makeList(formName, to);
-
-  // Mark the page as "dirty"
-  _navDirty = true;
+  TrShuttleProxy._makeList(formName, from);
+  TrShuttleProxy._makeList(formName, to);
 }
 
 /*
@@ -581,7 +877,7 @@
  * at the bottom. The 'from' and 'to' parameters should be the
  * list names(i.e.  "<shuttleName>:leading" or "<shuttleName>:trailing")
  */
-function _moveAllItems(
+TrShuttleProxy._moveAllItems = function(
   from,
   to,
   formName
@@ -590,7 +886,7 @@
   //get the formName is needed
   if(formName == (void 0))
   {
-    formName = _findFormNameContaining(from);
+    formName = TrShuttleProxy._findFormNameContaining(from);
   }
 
   //get the lists
@@ -604,8 +900,8 @@
   //get the index to start inserting at in the toList.  length-1 because of
   //bars
   var insertAt = toList.length-1;
-  var fromDescArray = _getDescArray(from);
-  var toDescArray = _getDescArray(to);
+  var fromDescArray = TrShuttleProxy._getDescArray(from);
+  var toDescArray = TrShuttleProxy._getDescArray(to);
 
   //move the items
   if (fromList.length > 1)
@@ -641,22 +937,19 @@
     if ( fromDescArray != (void 0) )
     {
       var len = fromDescArray.length;
-      _remove(fromDescArray, 0, len);
+      TrShuttleProxy._remove(fromDescArray, 0, len);
     }
 
     //set no selection on both lists
     fromList.selectedIndex = -1;
     toList.selectedIndex = -1;
 
-    _clearDescAreas( formName, from, to );
+    TrShuttleProxy._clearDescAreas( formName, from, to );
 
 
     //make the lists for submission
-    _makeList(formName, from);
-    _makeList(formName, to);
-
-    // Mark the page as "dirty"
-    _navDirty = true;
+    TrShuttleProxy._makeList(formName, from);
+    TrShuttleProxy._makeList(formName, to);
   }
   else if (_shuttle_no_items.length > 0)
   {
@@ -672,7 +965,7 @@
  * this is called. The 'list' parameter should be the
  * list name(i.e.  "<shuttleName>:leading" or "<shuttleName>:trailing")
  */
-function _orderList(
+TrShuttleProxy._orderList = function(
   down,
   list,
   formName
@@ -681,14 +974,14 @@
   //get the formName if needed
   if(formName == (void 0))
   {
-    formName = _findFormNameContaining(list);
+    formName = TrShuttleProxy._findFormNameContaining(list);
   }
 
   //get the actual list
   var colList = document.forms[formName].elements[list];
 
   //get all the selected item indexes
-  var selItems = _getSelectedIndexes(formName, list);
+  var selItems = TrShuttleProxy._getSelectedIndexes(formName, list);
 
   //if no items are selected, return with alert.
   if(selItems.length == 0)
@@ -699,7 +992,7 @@
     return;
   }
 
-  var descArray = _getDescArray(list);
+  var descArray = TrShuttleProxy._getDescArray(list);
 
   // Start with the last selected index and move up, working by blocks
   var processed = selItems.length - 1;
@@ -750,9 +1043,6 @@
 
         if ( descArray != (void 0) )
           descArray[lastInBlock] = dValue;
-
-        // Mark the page as "dirty"
-        _navDirty = true;
       }
     }
     else
@@ -786,19 +1076,16 @@
 
         if ( descArray != (void 0) )
           descArray[firstInBlock] = dValue;
-
-        // Mark the page as "dirty"
-        _navDirty = true;
       }
     }
 
     processed = tempIndex - 1;
   }
 
-  _displayDesc( list, formName );
+  TrShuttleProxy._displayDesc( list, formName );
 
   //make the list for submission
-  _makeList(formName, list);
+  TrShuttleProxy._makeList(formName, list);
 }
 
 /*
@@ -809,7 +1096,7 @@
  * this is called. The 'list' parameter should be the
  * list name(i.e.  "<shuttleName>:leading" or "<shuttleName>:trailing")
  */
-function _orderTopBottomList(
+TrShuttleProxy._orderTopBottomList = function(
   down,
   list,
   formName
@@ -818,14 +1105,14 @@
   //get the formname if needed
   if(formName == (void 0))
   {
-    formName = _findFormNameContaining(list);
+    formName = TrShuttleProxy._findFormNameContaining(list);
   }
 
   //get the actual list
   var colList = document.forms[formName].elements[list];
 
   //get all the indexes of the items selected in the list
-  var selItems = _getSelectedIndexes(formName, list);
+  var selItems = TrShuttleProxy._getSelectedIndexes(formName, list);
 
   //if no items are selected, return with alert.
   if(selItems.length == 0)
@@ -836,7 +1123,7 @@
     return;
   }
 
-  var descArray = _getDescArray(list);
+  var descArray = TrShuttleProxy._getDescArray(list);
   var moveDescArray = new Array();
   var selDescArray = new Array();
 
@@ -964,17 +1251,14 @@
     }
   }
 
-  _displayDesc( list, formName );
+  TrShuttleProxy._displayDesc( list, formName );
 
   //make the list for submission
-  _makeList(formName, list);
-
-  // Mark the page as "dirty"
-  _navDirty = true;
+  TrShuttleProxy._makeList(formName, list);
 }
 
 // helper functions
-function _getSelectedIndexes(
+TrShuttleProxy._getSelectedIndexes = function(
   formName,
   listName
   )
@@ -995,7 +1279,7 @@
   return selItems;
 }
 
-function _findFormNameContaining(
+TrShuttleProxy._findFormNameContaining = function(
   element
   )
 {
@@ -1011,7 +1295,7 @@
   return "";
 }
 
-function _makeList(
+TrShuttleProxy._makeList = function(
   formName,
   listName
   )
@@ -1028,20 +1312,20 @@
     if(list.options[i].value.length > 0)
     {
       val = val +
-            _trimString(list.options[i].value)
+            TrShuttleProxy._trimString(list.options[i].value)
             + ';';
     }
     else
     {
       val = val +
-            _trimString(list.options[i].text)
+            TrShuttleProxy._trimString(list.options[i].text)
             + ';';
     }
   }
   document.forms[formName].elements[listName+':items'].value = val;
 }
 
-function _trimString (
+TrShuttleProxy._trimString = function (
   str
   )
 {
@@ -1058,7 +1342,7 @@
   return str;
 }
 
-function _getListName(
+TrShuttleProxy._getListName = function(
   shuttleName,
   leadingList
   )
@@ -1073,7 +1357,7 @@
 * Reset items to their original values
 *
 */
-function _resetItems(
+TrShuttleProxy._resetItems = function(
   shuttleName,
   formName)
 {
@@ -1081,7 +1365,7 @@
   //get the formName if needed
   if(formName == (void 0))
   {
-    formName = _findFormNameContaining(from);
+    formName = TrShuttleProxy._findFormNameContaining(from);
   }
 
   if(formName.length == 0)
@@ -1091,29 +1375,29 @@
   }
 
   // get list names
-  leadingListName = _getListName( shuttleName, true);
-  trailingListName = _getListName( shuttleName, false);
+  leadingListName = TrShuttleProxy._getListName( shuttleName, true);
+  trailingListName = TrShuttleProxy._getListName( shuttleName, false);
 
   // get current lists
   var leadingList  = document.forms[formName].elements[leadingListName];
   var trailingList = document.forms[formName].elements[trailingListName];
 
   // get original lists
-  var origLists = _getOriginalLists(shuttleName, formName);
+  var origLists = TrShuttleProxy._getOriginalLists(shuttleName, formName);
   var origLeadingList  = origLists.leading;
   var origTrailingList = origLists.trailing;
 
   // get original description arrays
-  var origLeadingDescArray =  _getDescArray(leadingListName);
-  var origTrailingDescArray = _getDescArray(trailingListName);
+  var origLeadingDescArray =  TrShuttleProxy._getDescArray(leadingListName);
+  var origTrailingDescArray = TrShuttleProxy._getDescArray(trailingListName);
 
   // reset values of lists
-  _resetToOriginalList( origLeadingList, origLeadingDescArray, leadingList );
-  _resetToOriginalList( origTrailingList, origTrailingDescArray, trailingList );
+  TrShuttleProxy._resetToOriginalList( origLeadingList, origLeadingDescArray, leadingList );
+  TrShuttleProxy._resetToOriginalList( origTrailingList, origTrailingDescArray, trailingList );
 
   //make the new lists for submitting.
-  _makeList(formName, leadingListName);
-  _makeList(formName, trailingListName);
+  TrShuttleProxy._makeList(formName, leadingListName);
+  TrShuttleProxy._makeList(formName, trailingListName);
 
   // return that no reload necessary
   return false;
@@ -1126,7 +1410,7 @@
  *
  * This function gets a copy of the original lists list
  */
-function _getOriginalLists
+TrShuttleProxy._getOriginalLists = function
 (
   shuttleName,
   formName
@@ -1143,7 +1427,7 @@
  * reset the list and description info
  *
  */
-function _resetToOriginalList
+TrShuttleProxy._resetToOriginalList = function
 (
   origList,
   descArray,
@@ -1224,13 +1508,13 @@
   *
   *
   */
- function _copyLists( shuttleName, formName )
+ TrShuttleProxy._copyLists = function( shuttleName, formName )
  {
 
    //get the formName if needed
    if(formName == (void 0))
    {
-     formName = _findFormNameContaining(from);
+     formName = TrShuttleProxy._findFormNameContaining(from);
    }
 
    if(formName.length == 0)
@@ -1240,8 +1524,8 @@
    }
 
    var origLists = new Object();
-   origLists.leading = _copyList( _getListName( shuttleName, true), formName);
-   origLists.trailing = _copyList( _getListName( shuttleName, false), formName);
+   origLists.leading = TrShuttleProxy._copyList( TrShuttleProxy._getListName( shuttleName, true), formName);
+   origLists.trailing = TrShuttleProxy._copyList( TrShuttleProxy._getListName( shuttleName, false), formName);
 
 
    return origLists;
@@ -1253,7 +1537,7 @@
   *
   * copy the values in a single list
   */
- function _copyList( listName, formName )
+ TrShuttleProxy._copyList = function( listName, formName )
  {
    if ( formName == (void 0 ) || listName == (void 0))
      return;
@@ -1263,7 +1547,7 @@
    if ( origList == null)
      return;
 
-   var origDescs = _getDescArray(listName);
+   var origDescs = TrShuttleProxy._getDescArray(listName);
 
    var copyList = new Object();
 
@@ -1291,343 +1575,3 @@
 
    return copyList;
  }
-
-//------------------------------------------------------------------------
-
-//
-// METHOD IMPLEMENTATIONS FOR PROXY
-//
-
-
-
-
-function _reset()
-{
-
-  _resetItems( this.shuttleName, this.formName);
-}
-
-
-
-
-
-function _move(
-  fromLeadingList,
-  allItems
-  )
-{
-  //default parameters not given
-  if(allItems == (void 0))
-  {
-    allItems = false;
-  }
-  if(fromLeadingList == (void 0))
-  {
-    fromLeadingList = true;
-  }
-
-  //get the list names
-  var fromListName = _getListName(this.shuttleName, fromLeadingList);
-  var toListName = _getListName(this.shuttleName, !fromLeadingList);
-
-  //move the items
-  if(allItems)
-  {
-    _moveAllItems(fromListName, toListName, this.formName);
-  }
-  else
-  {
-    _moveItems(fromListName, toListName, this.formName);
-  }
-}
-
-function _reorderList(
-  down,
-  allTheWay,
-  leadingList
-)
-{
-  //default params not given
-  if(leadingList == (void 0))
-  {
-    leadingList = true;
-  }
-  if(allTheWay == (void 0))
-  {
-    allTheWay = false;
-  }
-  if(down == (void 0))
-  {
-    down = false;
-  }
-
-  //get the listName
-  var listName = _getListName(this.shuttleName, leadingList);
-
-
-
-  //reorder the list
-  if(!allTheWay)
-  {
-    _orderList(down, listName, this.formName);
-  }
-  else
-  {
-    _orderTopBottomList(down, listName, this.formName);
-  }
-}
-
-
-function _getItems(
-  leadingList
-  )
-{
-  //default params not given
-  if(leadingList == (void 0))
-  {
-    leadingList = true;
-  }
-
-  //get the list name
-  var listName = _getListName(this.shuttleName, leadingList);
-
-
-  var list = document.forms[this.formName].elements[listName];
-
-  var items = new Array();
-  //length - 1 because of bars
-  for(var i=0; i<list.length-1; i++)
-  {
-    items[i] = list.options[i];
-  }
-
-  return items;
-}
-
-function _getSelectedItems(
-  leadingList
-  )
-{
-  //default params not given
-  if(leadingList == (void 0))
-  {
-    leadingList = true;
-  }
-
-  var listName = _getListName(this.shuttleName, leadingList);
-
-
-  var list = document.forms[this.formName].elements[listName];
-
-  var items = new Array();
-  var j = 0;
-  //length - 1 because of bars
-  for(var i=0; i<list.length-1; i++)
-  {
-    if(list.options[i].selected)
-    {
-      items[j] = list.options[i];
-      j++;
-    }
-  }
-
-  return items;
-}
-
-function _getItemCount(
-  leadingList
-  )
-{
-  //default params not given
-  if(leadingList == (void 0))
-  {
-    leadingList = true;
-  }
-
-  var listName = _getListName(this.shuttleName, leadingList);
-
-
-  //minus 1 for bars
-  return document.forms[this.formName].elements[listName].length - 1;
-}
-
-function _getSelectedItemCount(
-  leadingList
-)
-{
-  //default params not given
-  if(leadingList == (void 0))
-  {
-    leadingList = true;
-  }
-
-  var listName = _getListName(this.shuttleName, leadingList);
-
-
-  var list = document.forms[this.formName].elements[listName];
-
-  var j = 0;
-  //length - 1 because of bars
-  for(var i=0; i<list.length-1; i++)
-  {
-    if(list.options[i].selected)
-    {
-       j++;
-    }
-  }
-
-  return j;
-}
-
-function _addItem(
-  leadingList,
-  index,
-  text,
-  value,
-  description
-  )
-{
-  //default params not given
-  if(value == (void 0))
-  {
-    value = "";
-  }
-  if(text == (void 0))
-  {
-    text = "";
-  }
-  if(description == (void 0))
-    {
-      description = "";
-  }
-  if(leadingList == (void 0))
-  {
-    leadingList = true;
-  }
-
-
-  //get the list
-  var listName = _getListName(this.shuttleName, leadingList);
-
-
-
-  //get an appropriate index
-  if(index == (void 0))
-  { //minus 1 for bars
-    index = document.forms[this.formName].elements[listName].length - 1;
-  }
-
-  if(index < 0)
-  {
-    index = 0;
-  }
-
-  //minus 1 for bars
-  if(index > document.forms[this.formName].elements[listName].length - 1)
-  {
-    index = document.forms[this.formName].elements[listName].length - 1;
-  }
-
-  //first move all items at that index and below down to make room for this
-  //new item.
-  var theList = document.forms[this.formName].elements[listName];
-
-  //make a new option for the bars
-  theList.options[theList.length] =
-       new Option(theList.options[theList.length-1].text,
-                  theList.options[theList.length-1].value,
-                  false,
-                  false);
-
-  //move items down
-  for(var i = theList.length - 1; i > index; i--)
-  {
-    theList.options[i].text = theList.options[i-1].text;
-    theList.options[i].value = theList.options[i-1].value;
-    theList.options[i].selected = theList.options[i-1].selected;
-  }
-
-  //insert the new item
-  theList.options[index].text = text;
-  theList.options[index].value = value;
-  theList.options[index].selected = false;
-
-  // add description
-  var descArray = _getDescArray(listName);
-  _addDescAtIndex( descArray, description, index);
-
-  _makeList(this.formName, listName);
-
-  // Mark the page as "dirty"
-  _navDirty = true;
-}
-
-function _deleteItemByValue(
-  leadingList,
-  value
-  )
-{
-  if(value == (void 0))
-  {
-    return;
-  }
-
-
-  //get the list
-  var listName = _getListName(this.shuttleName, leadingList);
-  var theList = document.forms[this.formName].elements[listName];
-
-  for(var i=0; i<theList.length-1; i++)
-  {
-    var val = theList.options[i].value;
-    if(val == value)
-    {
-      var descArray = _getDescArray( listName );
-      _deleteDescAtIndex( descArray, i);
-      _clearDescAreas(this.formName, listName);
-
-      theList.options[i] = null;
-      _makeList(this.formName, listName);
-
-      // Mark the page as "dirty"
-      _navDirty = true;
-
-      return;
-    }
-  }
-
-}
-
-function _deleteSelectedItems(
-  leadingList
-  )
-{
-  if(leadingList == (void 0))
-  {
-    leadingList = true;
-  }
-
-
-  //get the list
-  var listName = _getListName(this.shuttleName, leadingList);
-  var theList = document.forms[this.formName].elements[listName];
-
-  var selIndexes = _getSelectedIndexes(this.formName,listName);
-
-  for(var i = selIndexes.length; i >=0; i--)
-  {
-    theList.options[selIndexes[i]] = null;
-  }
-
-  var descArray = _getDescArray(listName);
-
-  _deleteDescAtIndexes( descArray, selIndexes);
-
-  _clearDescAreas(this.formName, listName);
-
-  _makeList(this.formName, listName);
-
-   // Mark the page as "dirty"
-   _navDirty = true;
-}
-