// All functions have the prefix AM_ for Array Management

var UP = -1;
var DOWN = 1;
var DELETE = 0;

function AM_moveArrayItem(array, pos, dir)
{
 var moved = array[pos]; // retrieving data from next line fails, so a simple copy is made
 array.splice(pos, 1);
 if(dir) array.splice(pos+dir, 0, moved);
 return array;
}

function AM_moveArrayItemFromString(array, pos, dir)
{
 var local = array.split("|");
 var moved = local.splice(pos, 1);
 if(dir)	local.splice(pos+dir, 0, moved);
 return local.join("|");
}

function AM_inArray(array, iID)
{
 for(var i=0; i<array.length; i++) if(array[i] == iID) return 1;
 return 0;
}

function AM_getItemName(array, iID)
{
 for(var i=0; i<array.length; i++) if(array[i][0] == iID) return array[i][1];
 return " --- ERROR OR EMPTY --- ";
}

function AM_displayArray(array, iArray, moveFunction)
{
 var tempHTML = "<TABLE>";
 
 if( (array.length == 1) && (array[0] == "") ) return "No item has been selected yet";
 
 for(var i=0; i<array.length; i++)
 {
  if(array[i][0] == "[")	tempHTML += "<TR><TD class=\"simple\">"+array[i].substring(1, array[i].length-1)+"</TD><TD>";
  else
  {  
   if(!isNaN(parseInt(array[i])))	tempHTML += "<TR><TD class=\"simple\">"+AM_getItemName(iArray, array[i])+"</TD><TD>";
   else   							tempHTML += "<TR><TD class=\"simple\">"+array[i]+"</TD><TD>";
  }
  if(i!=0)				tempHTML += "<TD><A href=\"javascript:"+moveFunction+"("+i+", UP);\">Up</A> | </TD>"; else tempHTML += "<TD></TD>";
  if(i!=array.length-1)	tempHTML += "<TD><A href=\"javascript:"+moveFunction+"("+i+", DOWN);\">Down</A> | </TD>"; else tempHTML += "<TD></TD>";
  tempHTML += "<TD><A href=\"javascript:"+moveFunction+"("+i+", DELETE);\">Remove</A></TD></TR>";
 }
 return tempHTML+"</TABLE>";
}