/* ------------------------------------------------------------------------
	Styled Radio Buttons plugin
------------------------------------------------------------------------- */

jQuery.fn.StyledRadioButton = function(settings) {
    settings = jQuery.extend({
        checkboxWidth: 10,
        checkboxHeight: 10,
        className : 'styledRadioHolder',
        hasHover:false
    }, settings);

    jQuery(this).each(function(){
        var $radio = jQuery(this);
        var $id = jQuery(this).attr('id');
        var $wrapid = settings.className+'_'+jQuery(this).attr('id');
        var $wrap = jQuery('<div></div>').attr({
            'class':settings.className,
            'id':$wrapid
        });
        var $new = jQuery("<span></span>").attr('class','holderWrap');
        
        $wrap.append($new);
        $radio.wrap($wrap);

		$wrap = jQuery('#' + $wrapid);
        
        // If the checkbox is checked, display it as checked
        if(jQuery(this).is(':checked')) {
			$wrap.addClass('checked');
        }

        // Assign the class on the holder
        jQuery("#"+$wrapid).addClass(jQuery(this).attr('type'));

        // Assign the dimensions to the checkbox display
        jQuery("#"+$wrapid).find('span.holderWrap').width(settings.checkboxWidth).height(settings.checkboxHeight);
        jQuery("#"+$wrapid).height(settings.checkboxHeight);

        // Hide the checkbox
        jQuery(this).css('opacity', 0);

        if(settings.hasHover){
            jQuery("#"+$wrapid).hover(function(){
                if(!jQuery("#"+$wrapid).hasClass('checked')) jQuery("#"+$wrapid).addClass('radioHover');
            },function(){
              jQuery("#"+$wrapid).removeClass('radioHover');
            });
        }
        
        // Associate the click event
        $wrap.bind('click',function(event){			
            jQuery('input#' + $id).triggerHandler('click');
            var $toCheck = jQuery('input#' + $id);
            // Uncheck all radio
            jQuery('input[name="'+$toCheck.attr('name')+'"]').each(function(){
                jQuery('label[for="'+jQuery(this).attr('id')+'"]').prev().removeClass('checked');
				jQuery('label[for="'+jQuery(this).attr('id')+'"]').checked = false;
            });
            jQuery("#"+$wrapid).addClass('checked');
            $toCheck.checked = true;
        });

		$wrap.next().bind('click',function(event){
            // event.preventDefault();
			jQuery("#"+$wrapid).addClass('checked');
			// $wrap.trigger('click');
        });

    });
};
