private void Parse(string text)
		{
			_allPairs.Clear();
			_pairsWithName.Clear();
			if (text==null)
				return;

			string[] p = text.Split(';');
			if (p==null)
				return;
			foreach(string pv in p)
			{
				if (pv.Length==0)
					continue;
				string[] onep = pv.Split(new char[]{'='}, 2);
				if (onep==null)
					continue;
				NameValuePair nvp = new NameValuePair(onep[0].Trim().ToLower());
				if (onep.Length<2)
					nvp.Value = "";
				else
					nvp.Value = onep[1];

				_allPairs.Add(nvp);

				// index by name
				ArrayList al = _pairsWithName[nvp.Name] as ArrayList;
				if (al==null)
				{
					al = new ArrayList();
					_pairsWithName[nvp.Name] = al;
				}
				al.Add(nvp);
			}
		}