////////////////////////////////////////////////////////////////////////////////
//   CheckBox Library
////////////////////////////////////////////////////////////////////////////////

// <script language="javascript">
// Copyright (c) Home Automation, Inc. All rights reserved.          
// Copyright (c) HomeRun Software Systems LLC. All rights reserved.

////////////////////////////////////////////////////////////////////////////////
// Globals
////////////////////////////////////////////////////////////////////////////////
var CheckBoxBtn = new Object();

////////////////////////////////////////////////////////////////////////////////
// Constants
////////////////////////////////////////////////////////////////////////////////

CheckBox_CreateButtons();	// Create CheckBox Buttons

////////////////////////////////////////////////////////////////////////////////
// CheckBox_Toggle: Toggle the graphic state
////////////////////////////////////////////////////////////////////////////////
function CheckBox_Toggle
(
	oCheckBox
)
{
	var szFile = new String(oCheckBox.filters(0).src)
	szFile = szFile.substring(szFile.lastIndexOf("/")+1);
	
	switch (szFile.toUpperCase())
	{
		case "CHECKBOX_FOCUS_CHECKED.PNG":
		case "CHECKBOX_NOFOCUS_CHECKED.PNG":
			oCheckBox.filters(0).src = CheckBoxBtn.UncheckedFocus.src;
			break;
		case "CHECKBOX_FOCUS_UNCHECKED.PNG":
		case "CHECKBOX_NOFOCUS_UNCHECKED.PNG":
			oCheckBox.filters(0).src = CheckBoxBtn.CheckedFocus.src;
			break;
	}
}

////////////////////////////////////////////////////////////////////////////////
// CheckBox_MouseOver: Show MouseOver state
////////////////////////////////////////////////////////////////////////////////
function CheckBox_MouseOver
(
	oCheckBox
)
{
	var szFile = new String(oCheckBox.filters(0).src)
	szFile = szFile.substring(szFile.lastIndexOf("/")+1);
	
	// Remove focus from currently selected item (if there is one)
	if (g_CurrentFocus >= 0)
		eval(g_aryFocusTable[g_CurrentFocus][5].substr(1,g_aryFocusTable[g_CurrentFocus][5].length-2));
	
	// Set state
	switch (szFile.toUpperCase())
	{
		case "CHECKBOX_NOFOCUS_CHECKED.PNG":
		case "CHECKBOX_FOCUS_CHECKED.PNG":
			oCheckBox.filters(0).src = CheckBoxBtn.CheckedFocus.src;
			break;
		case "CHECKBOX_NOFOCUS_UNCHECKED.PNG":
			oCheckBox.filters(0).src = CheckBoxBtn.UncheckedFocus.src;
			break;
	}

	g_CurrentFocus = GetIndexFromObject(oCheckBox); // Set current focus
}

////////////////////////////////////////////////////////////////////////////////
// CheckBox_MouseOut: Show MouseOut state
////////////////////////////////////////////////////////////////////////////////
function CheckBox_MouseOut
(
	oCheckBox
)
{
	var szFile = new String(oCheckBox.filters(0).src)
	szFile = szFile.substring(szFile.lastIndexOf("/")+1);
	
	switch (szFile.toUpperCase())
	{
		case "CHECKBOX_FOCUS_CHECKED.PNG":
			oCheckBox.filters(0).src = CheckBoxBtn.CheckedNoFocus.src;
			break;
		case "CHECKBOX_FOCUS_UNCHECKED.PNG":
			oCheckBox.filters(0).src = CheckBoxBtn.UncheckedNoFocus.src;
			break;
	}

}

////////////////////////////////////////////////////////////////////////////////
//  CheckBox_CreateButtons: Create CheckBox Buttons
////////////////////////////////////////////////////////////////////////////////
function CheckBox_CreateButtons()
{
	// Checked with Focus
	CheckBoxBtn.CheckedFocus		= new Image();
	CheckBoxBtn.CheckedFocus.src	= "images\\CheckBox_Focus_Checked.png";

	// Checked without Focus
	CheckBoxBtn.CheckedNoFocus		= new Image();
	CheckBoxBtn.CheckedNoFocus.src	= "images\\CheckBox_NoFocus_Checked.png";

	// Unchecked with Focus
	CheckBoxBtn.UncheckedFocus		= new Image();
	CheckBoxBtn.UncheckedFocus.src	= "images\\CheckBox_Focus_Unchecked.png";
	
	// Unchecked without Focus
	CheckBoxBtn.UncheckedNoFocus	= new Image();
	CheckBoxBtn.UncheckedNoFocus.src = "images\\CheckBox_NoFocus_Unchecked.png";
}

////////////////////////////////////////////////////////////////////////////////
// CheckBox_Checked: Get state of checkbox (boolean return value)
////////////////////////////////////////////////////////////////////////////////
function CheckBox_Checked
(
	oCheckBox
)
{
	var szFile = new String(oCheckBox.filters(0).src)
	szFile = szFile.substring(szFile.lastIndexOf("/")+1);
	var bReturn = false;
	
	switch (szFile.toUpperCase())
	{
		case "CHECKBOX_FOCUS_CHECKED.PNG":
		case "CHECKBOX_NOFOCUS_CHECKED.PNG":
			bReturn = true;
			break;
		case "CHECKBOX_FOCUS_UNCHECKED.PNG":
		case "CHECKBOX_NOFOCUS_UNCHECKED.PNG":
			bReturn = false;
	}

	return bReturn;
}

