//--------------------------------------------------------------

function is_array(aArray)
{
  return (typeof(aArray) == "object");
}

//--------------------------------------------------------------

function arr_Init(aArray)
{
  if (!is_array(aArray)) 
  {
    aArray = new Array();
  }
  return aArray;
}
//--------------------------------------------------------------

function arr_ValueExists(aArray, sValue)
{
  if (!is_array(aArray)) {return false;}
  
  for (key in aArray)
  {
    if (aArray[key] == sValue) {return true;}
  }
  return false;
  
}

//--------------------------------------------------------------

function arr_GetKey(aArray, sKey)
{
  sKey = s_Init(sKey, "");
  if (sKey != "") 
  {
    return sKey;
  }
  else
  {
    return aArray.length;
  }
}

//--------------------------------------------------------------

function arr_AddNewValue(aArray, sValue, sKey)
{
  aArray = arr_Init(aArray);
  if (arr_ValueExists(aArray, sValue) ) {return aArray;}
  
  sKey = arr_GetKey(aArray, sKey);
  aArray[sKey] = sValue;
  return aArray;
}

//--------------------------------------------------------------

function arr_RemoveValue(aArray, sValue)
{
  aArray = arr_Init(aArray);
  if (!arr_ValueExists(aArray, sValue) ) {return aArray;}
  
  var aResArr = new Array();
  
  for (key in aArray)
  {
    if (aArray[key] != sValue) {aResArr[key] = sValue;}
  }
  return aResArr;
}

//--------------------------------------------------------------

function arr(aArray, sKey, sEmptyValue)
{
  sEmptyValue = s_Init(sEmptyValue, "");
  if (!is_array(aArray)) {return sEmptyValue;}
  
  for (key in aArray)
  {
    if (key == sKey) {return aArray[key];}
  }
  return sEmptyValue;
}

/*---------------------------------------------------------*/

function arr_Equal(aArrayTo)
{
  var aArrayWhat = new Array();

  if (aArrayTo.length == 0) {return aArrayWhat;}
  var i;
  for (i = 0; i < aArrayTo.length; i++)
  {
    aArrayWhat[i] = aArrayTo[i];
  }
//alert(aArrayWhat.length);
  return aArrayWhat;
}

