//##############################
// jQuery Custom Radio-buttons and Checkbox; basically it's styling/theming for Checkbox and Radiobutton elements in forms
// By Dharmavirsinh Jhala - dharmavir@gmail.com
// Date of Release: 13th March 10
// Version: 0.8
/*
 USAGE:
    $(document).ready(function(){
        $(":radio").behaveLikeCheckbox();
    }
*/

var elmHeight = "25";   // should be specified based on image size

// Extend JQuery Functionality For Custom Radio Button Functionality
jQuery.fn.extend({
dgStyle: function()
{
    // Initialize with initial load time control state
    $.each($(this), function(){
        var elm =   $(this).children().get(0);
        elmType = $(elm).attr("type");
        $(this).data('type',elmType);
        $(this).data('checked',$(elm).attr("checked"));
        $(this).dgClear();
    });
    $(this).mousedown(function() { $(this).dgEffect(); });
    $(this).mouseup(function() { $(this).dgHandle(); });    
},
dgClear: function()
{
    if($(this).data("checked") == true)
    {
        $(this).css("backgroundPosition","center -"+(elmHeight*2)+"px");
        }
    else
    {
        $(this).css("backgroundPosition","center 0");
        }   
},
dgEffect: function()
{
    if($(this).data("checked") == true)
        $(this).css({backgroundPosition:"center -"+(elmHeight*3)+"px"});
    else
        $(this).css({backgroundPosition:"center -"+(elmHeight)+"px"});
},
dgHandle: function()
{
    var elm =   $(this).children().get(0);
    if($(this).data("checked") == true)
        $(elm).dgUncheck(this);
    else
        $(elm).dgCheck(this);
    
    if($(this).data('type') == 'radio')
    {
        $.each($("input[name='"+$(elm).attr("name")+"']"),function()
        {
            if(elm!=this)
                $(this).dgUncheck(-1);
        });
    }
},
dgCheck: function(div)
{
    $(this).attr("checked",true);
    $(div).data('checked',true).css({backgroundPosition:"center -"+(elmHeight*2)+"px"});
},
dgUncheck: function(div)
{
    $(this).attr("checked",false);
    if(div != -1)
        $(div).data('checked',false).css({backgroundPosition:"center 0"});
    else
        $(this).parent().data("checked",false).css({backgroundPosition:"center 0"});
}
});
