if (typeof DOMParser == "undefined") {
   DOMParser = function () {}
	
   DOMParser.prototype.parseFromString = function (str, contentType) {
      if (typeof ActiveXObject != "undefined") {
         var d = new ActiveXObject("MSXML.DomDocument");
         d.loadXML(str);
         return d;
      } else if (typeof XMLHttpRequest != "undefined") {
         var req = new XMLHttpRequest;
         req.open("GET", "data:" + (contentType || "application/xml") +
                         ";charset=utf-8," + encodeURIComponent(str), false);
         if (req.overrideMimeType) {
            req.overrideMimeType(contentType);
         }
         req.send(null);
         return req.responseXML;
      }
   }
}

function setupReqeustObject()
{
	try
	{
		requester = new XMLHttpRequest();
		//requester.onreadystatechange = stateHandler;
	}
	catch (error)
	{
		try
		{
			requester = new ActiveXObject("Microsoft.XMLHTTP");
			//requester.onreadystatechange = stateHandler;
		}
		catch (error)
		{
			return false;
		}
	}
	
	return requester;
}

function SelectedValues( listBox )
{
	var list = Array();
	var listCount = 0;
	var listObj = document.getElementById( listBox );
	
	for ( var i = 0; i < listObj.length; i++ )
	{
		if ( listObj[ i ].selected == true )
		{
			list[ listCount ] = listObj[ i ].value;
			listCount++;
		}
	}
	
	return list;
}

function clearListbox( listbox )
{
	for ( var i = listbox.length - 1; i >= 0; i-- )
	{
		listbox[ i ] = null;
	}
}

function in_array( value, arr )
{
	for ( var i = 0; i < arr.length; i++ )
	{
		if ( value == arr[ i ] )
		{
			return true;
		}
	}
	
	return false;
}

function UnitOptions( list1, list2 )
{
	var list1Values = SelectedValues( list1 );
	var list2Values = SelectedValues( list2 );
	var listBox2 = document.getElementById( list2 );
	
	clearListbox( listBox2 );

	var params = "";
	
	for ( var i = 0; i < list1Values.length; i++ )
	{
		params += "list[]=" + list1Values[ i ] + "&";
	}
	
	params += "full=1";
	
	var requester = setupReqeustObject();
	
	requester.open( "GET", "suiteunits_ajax.php?" + params );
	requester.onreadystatechange = function()
	{
		if ( requester.readyState == 4 )
		{
			var xmlobject = ( new DOMParser() ).parseFromString( requester.responseText, "text/xml" );
			var root = xmlobject.getElementsByTagName('units')[0];
			
			if ( root != null )
			{
				var items = root.getElementsByTagName("unit");
					
				for ( var i = 0; i < items.length; i++ )
				{
			
					var item = items[i];
			
					var id = item.getElementsByTagName("id")[0].firstChild.nodeValue;
					var name = item.getElementsByTagName("name")[0].firstChild.nodeValue;
	
					if ( in_array( id, list2Values ) )
					{
						listBox2.options.add( new Option( name, id, false, true ) );
					}
					else
					{
						listBox2.options.add( new Option( name, id, false, false ) );
					}
				}
			}
			
		}
	}
	requester.send( null );
}





