(function(a){a.fn.customCheckbox=function(c){var b={tagName:"div",cssClass:"",hoverClass:"ui-hover",downClass:"ui-down",hoverDownClass:"ui-hoverdown",checkedClass:"ui-checked",checkedHoverClass:"ui-checked-hover",checkedDownClass:"ui-checked-down",checkedHoverDownClass:"ui-checked-hoverdown",mutuallyExclusiveStateClasses:true,labelTextInside:true,labelTagName:"span"};a.extend(b,c);this.each(function(){chk=a(this);var d=a("[for='"+chk.attr("id")+"']"),f=document.createElement(b.tagName),c=a(f),e=b.labelTagName?a(document.createElement(b.labelTagName)):null;if(b.labelTextInside)if(e){e.html(d.html());c.append(e)}else c.html(d.html());c.data("form-element",chk);c.data("hover",false);c.data("down",false);c.addClass(b.cssClass);chk.before(c);d.hide();chk.hide();c.data("updateAppearanceFunction",function(){this.data("checked",this.data("form-element").is(":checked"));if(b.mutuallyExclusiveStateClasses){this.toggleClass(b.hoverClass,this.data("hover")&&!this.data("down")&&!this.data("checked"));this.toggleClass(b.downClass,!this.data("hover")&&this.data("down")&&!this.data("checked"));this.toggleClass(b.hoverDownClass,this.data("hover")&&this.data("down")&&!this.data("checked"));this.toggleClass(b.checkedClass,!this.data("hover")&&!this.data("down")&&this.data("checked"));this.toggleClass(b.checkedHoverClass,this.data("hover")&&!this.data("down")&&this.data("checked"));this.toggleClass(b.checkedDownClass,!this.data("hover")&&this.data("down")&&this.data("checked"));this.toggleClass(b.checkedHoverDownClass,this.data("hover")&&this.data("down")&&this.data("checked"))}else{this.toggleClass(b.hoverClass,this.data("hover"));this.toggleClass(b.downClass,this.data("down"));this.toggleClass(b.hoverDownClass,this.data("hover")&&this.data("down"));this.toggleClass(b.checkedClass,this.data("checked"));this.toggleClass(b.checkedHoverClass,this.data("hover")&&this.data("checked"));this.toggleClass(b.checkedDownClass,this.data("down")&&this.data("checked"));this.toggleClass(b.checkedHoverDownClass,this.data("hover")&&this.data("down")&&this.data("checked"))}});c.data("form-element").get(0).refresh=function(){c.data("updateAppearanceFunction").apply(c)};if(typeof f.onselectstart!="undefined")f.onselectstart=function(){return false};c.mousedown(function(){c.data("down",true);c.data("updateAppearanceFunction").apply(c);c.data("form-element").mousedown();return false});c.mouseup(function(){if(c.data("form-element").is(":checked"))c.data("form-element").removeAttr("checked");else c.data("form-element").attr("checked","checked");c.data("down",false);c.data("updateAppearanceFunction").apply(c);c.data("form-element").mouseup()});c.click(function(){c.data("form-element").click();if(c.data("form-element").is(":checked"))c.data("form-element").removeAttr("checked");else c.data("form-element").attr("checked","checked");c.data("updateAppearanceFunction").apply(c)});c.dblclick(function(){var a=false;/*@cc_on a=true@*/;a&&c.click()});c.mouseenter(function(){c.data("hover",true);c.data("updateAppearanceFunction").apply(c);c.data("form-element").mouseenter()});c.mouseleave(function(){c.data("hover",false);c.data("updateAppearanceFunction").apply(c);c.data("form-element").mouseleave()});c.data("updateAppearanceFunction").apply(c)});return this}})(jQuery);
