//##############################
// 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 = "178"; // 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","0px -"+(elmHeight*2)+"px");
}
else
{
$(this).css("backgroundPosition","0px 0px");
}
},
dgEffect: function()
{
if($(this).data("checked") == true)
$(this).css({backgroundPosition:"0px -"+(elmHeight*3)+"px"});
else
$(this).css({backgroundPosition:"0px -"+(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:"0px -"+(elmHeight*1)+"px"});
},
dgUncheck: function(div)
{
if(div != -1){
	$(this).attr("checked",false);  // fix for checkbox bug
	$(div).data('checked',false).css({backgroundPosition:"0px 0px"});
}
else
$(this).parent().data("checked",false).css({backgroundPosition:"0px 0px"});
}
}); 
