////////////////////////////////////////////////////////////////////////////////
// Temperature Data
////////////////////////////////////////////////////////////////////////////////

// <script language="javascript">
// Copyright (c) Home Automation, Inc. All rights reserved.          
// Copyright (c) HomeRun Software Systems LLC. All rights reserved.

////////////////////////////////////////////////////////////////////////////////
// getTemperatureXML: Get all temperature items
////////////////////////////////////////////////////////////////////////////////
function getTemperatureXML()
{
	var szXML;
	var iGlobalTempID = 0;
	
	szXML = "<TEMPERATURE><THERMOSTATS>\n";
	
	for (idx=1; idx<=g_oHAI.Thermostats.count; idx++)	
	{
		itmTemp = g_oHAI.Thermostats(idx);
		szXML += "<THERMOSTAT>\n";
		szXML += "<GLOBALTEMPID>" + (iGlobalTempID++) + "</GLOBALTEMPID>";
		szXML += "<ID>" + itmTemp.ID + "</ID>\n";
		szXML += "<INDEX>" + itmTemp.Index + "</INDEX>\n";
		szXML += "<NAME>" + HTMLEncode(itmTemp.Name) + "</NAME>\n";
		szXML += "<TYPE>" + itmTemp.Type + "</TYPE>\n";
		szXML += "<STATUS>" + itmTemp.Status + "</STATUS>\n";
		szXML += "<COOLSETPOINTC>" +  Math.round(itmTemp.CoolSetpointC) + "</COOLSETPOINTC>\n";
		szXML += "<COOLSETPOINTF>" +  Math.round(itmTemp.CoolSetpointF) + "</COOLSETPOINTF>\n";
		szXML += "<HEATSETPOINTC>" +  Math.round(itmTemp.HeatSetpointC) + "</HEATSETPOINTC>\n";
		szXML += "<HEATSETPOINTF>" +  Math.round(itmTemp.HeatSetpointF) + "</HEATSETPOINTF>\n";
		szXML += "<TEMPERATUREC>" + Math.round(itmTemp.TemperatureC) + "</TEMPERATUREC>\n";
		szXML += "<TEMPERATUREF>" + Math.round(itmTemp.TemperatureF) + "</TEMPERATUREF>\n";
		szXML += "<HOLDMODE>" + itmTemp.HoldMode + "</HOLDMODE>\n";
		szXML += "<FANMODE>" + itmTemp.FanMode + "</FANMODE>\n";
		szXML += "<SYSTEMMODE>" + itmTemp.SystemMode + "</SYSTEMMODE></THERMOSTAT>\n";
	}
	szXML += "</THERMOSTATS><TEMPERATURESENSORS>";

	for (idx=1; idx<=g_oHAI.TemperatureSensors.count; idx++)	
	{
		itmTemp = g_oHAI.TemperatureSensors(idx);
		
		// Include all temp sensors except for humidity types (type=4)
		if ( (itmTemp.Type - 0) != tstHumidity)
		{
			szXML += "<TEMPERATURESENSOR>\n";
			szXML += "<GLOBALTEMPID>" + (iGlobalTempID++) + "</GLOBALTEMPID>";
			szXML += "<ID>" + itmTemp.ID + "</ID>\n";
			szXML += "<INDEX>" + itmTemp.Index + "</INDEX>\n";
			szXML += "<TYPE>" + itmTemp.Type + "</TYPE>\n";
			szXML += "<NAME>" + HTMLEncode(itmTemp.Name) + "</NAME>\n";
			szXML += "<STATUS>" + itmTemp.Unit.Status + "</STATUS>\n";
			szXML += "<COOLSETPOINTC>" + Math.round(itmTemp.CoolSetpointC) + "</COOLSETPOINTC>\n";
			szXML += "<COOLSETPOINTF>" + Math.round(itmTemp.CoolSetpointF) + "</COOLSETPOINTF>\n";
			szXML += "<HEATSETPOINTC>" + Math.round(itmTemp.HeatSetpointC) + "</HEATSETPOINTC>\n";
			szXML += "<HEATSETPOINTF>" + Math.round(itmTemp.HeatSetpointF) + "</HEATSETPOINTF>\n";
			szXML += "<TEMPERATUREC>" + Math.round(itmTemp.TemperatureC) + "</TEMPERATUREC>\n";
			szXML += "<TEMPERATUREF>" + Math.round(itmTemp.TemperatureF) + "</TEMPERATUREF>";
				
			// Get duration details for PESMs only
			if ( (itmTemp.Type - 0) == tstEnergySaver)
				szXML += "<TIMEREMAINING>" + itmTemp.Unit.TimeRemaining + "</TIMEREMAINING>";
					
			szXML += "</TEMPERATURESENSOR>\n";
		}
	}
	szXML += "</TEMPERATURESENSORS><HUMIDITYSENSORS>";

	// Humidity Sensors
	for (idx=1; idx<=g_oHAI.TemperatureSensors.count; idx++)	
	{
		itmTemp = g_oHAI.TemperatureSensors(idx);
		if ( (itmTemp.Type - 0) == tstHumidity)
		{
			szXML += "<HUMIDITYSENSOR>\n";
			szXML += "<GLOBALTEMPID>" + (iGlobalTempID++) + "</GLOBALTEMPID>";
			szXML += "<ID>" + itmTemp.ID + "</ID>\n";
			szXML += "<INDEX>" + itmTemp.Index + "</INDEX>\n";
			szXML += "<TYPE>" + itmTemp.Type + "</TYPE>\n";
			szXML += "<NAME>" + HTMLEncode(itmTemp.Name) + "</NAME>\n";
			szXML += "<STATUS>" + itmTemp.Unit.Status + "</STATUS>\n";
			szXML += "<COOLSETPOINT>" + Math.round(itmTemp.CoolSetpointF) + "</COOLSETPOINT>\n";
			szXML += "<HEATSETPOINT>" + Math.round(itmTemp.HeatSetpointF) + "</HEATSETPOINT>\n";
			szXML += "<HUMIDITY>" + Math.round(itmTemp.TemperatureF) + "</HUMIDITY>";
			szXML += "</HUMIDITYSENSOR>\n";
		}
		
	}
	szXML += "</HUMIDITYSENSORS>";
	szXML += "<TEMP_FORMAT>" + g_oHAI.TemperatureFormat + "</TEMP_FORMAT></TEMPERATURE>";

	return (szXML);

}
