// @require('array.js');

function in_wsv(needle, haystack) {
  // Determines if a string needle is contained in a WSV haystack
  
  // @param  string  'needle'    string to look for
  // @param  string  'haystack'  string to look inside
  
  // @return  boolean  true if haystack contains needle
  //                   or false if not
  
  var haystack_parts,
      in_haystack;
  
  haystack_parts = haystack.split(/\s+/);
  in_haystack = in_array(needle, haystack_parts);
  
  return in_haystack;
}

function wsv_add(str, wsv) {
  // Adds a value to a WSV string
  
  // @param  string  'str'  string to add
  // @param  string  'wsv'  WSV string
  
  // @return  string  modified WSV string
  
  var wsv_parts;
  
  wsv_parts = wsv.split(/\s+/);
  
  if (!in_array(str, wsv_parts))
    {
    wsv_parts.push(str);
    }
  
  wsv = wsv_parts.join(' ');
  
  return wsv;
}

function wsv_remove(str, wsv) {
  // Removes a value from a WSV string
  
  // @param  string  'str'  string to remove
  // @param  string  'wsv'  WSV string
  
  // @return  string  modified WSV string
  
  var i,
      wsv_parts;
  
  wsv_parts = wsv.split(/\s+/);
  
  for (i = 0; i < wsv_parts.length; i++)
    {
    if (wsv_parts[i] == str)
      {
      wsv_parts.splice(i, 1);
      i--;
      }
    }
  
  wsv = wsv_parts.join(' ');
  
  return wsv;
}
