﻿$.fn.check = function(mode)
{
	var mode = mode || "on";
	
	return this.each(function()
	{
		switch(mode)
		{
		    case "on":
			    this.checked = true;
			    break;
			    
		    case "off":
			    this.checked = false;
			    break;
			    
		    case "toggle":
			    this.checked = !this.checked;
			    break;
		}
	});
};

function InitializeRadioButtons()
{
    var tdElements = $(".StyledRadioButtonList td");
    
    // Hide all cells that don't actually have inputs.
    tdElements.remove(":not(:has(:input))");
    
    // Hide the native radio or check inputs.
    tdElements.find(":input").css("visibility", "hidden");
    
    // Listen for clicks on the input cells.
    tdElements.click(RadioButtonClick);
    
    CheckRadioButtons();
    
    return;

    for (var i = 0; i < tdElements.length; i++)
    {
        var td = $(tdElements[i]);
        var input = $(td.getElementsByTagName("input")[0]);
        
        if (input == null)
        {
            td.hide();
        }
        else
        {
            td.observe("click", RadioButtonClick);
            
            if (input.checked)
            {
                td.className = "Checked";
            }
            else
            {
                td.className = "Unchecked";
            }
            
            input.style.visibility = "hidden";
        }
    }
}

function RadioButtonClick(e)
{
    $(this).find(":checkbox").check("toggle");        
    $(this).find(":radio").check();
    
    CheckRadioButtons();
}

function CheckRadioButtons()
{
    var tdElements = $(".StyledRadioButtonList td");
    
    tdElements.find(":input:checked")
        .parent("td")
        .removeClass("Unchecked")
        .addClass("Checked");
        
    tdElements.find(":input:not(:checked)")
        .parent("td")
        .removeClass("Checked")
        .addClass("Unchecked");
        
    return;
    
    for (var i = 0; i < tdElements.length; i++)
    {
        var element = tdElements[i];
        var input = element.getElementsByTagName("input")[0];
        
        if (input == null)
        {
            continue;
        }
                
        if (input.checked)
        {
            element.className = "Checked";
        }
        else
        {
            element.className = "Unchecked";
        }
    }
}

$(InitializeRadioButtons);

