//##############################
// 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"));

			if ($(elm).attr("value") == "true") {
				$(elm).parent().addClass("RadioYes");
			}
			else {
				$(elm).parent().addClass("RadioNo");
			}

			var elm1 = $(this).children().get(1);
			$(elm1).addClass("YesNoLabel");

			$(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) + "px" });
	},
	dgHandle: function() {
		var elm = $(this).children().get(0);

		if ($(this).data("checked") != true)
			$(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" });
	}
});
