/* button widget for buttons with hover states. */ (function() { jQuery.fn.widgetButton = function(settings) { settings = jQuery.extend({ off: "but-off.gif", on: "but-on.gif", hover: "but-hover.gif", hasClick: 0, hasHover: 1, activeId: "but-active", cssButton: 0, cssOff: "glo-but-css-off", cssOn: "glo-but-css-on", cssHover: "glo-but-css-hover", buttonSelector: ".but-class" }, settings); return this.each(function() { if(settings.cssButton) { if( jQuery(this).attr("id") != settings.activeId ) { jQuery(this).addClass(settings.cssOff);} else { jQuery(this).addClass(settings.cssOn); } if(settings.hasHover) { jQuery(this).mouseover(function() { if( jQuery(this).attr("id") != settings.activeId ) { jQuery(this).removeClass(settings.cssOff); jQuery(this).addClass(settings.cssHover); } }); jQuery(this).mouseout(function() { if( jQuery(this).attr("id") != settings.activeId ) { jQuery(this).removeClass(settings.cssHover); jQuery(this).addClass(settings.cssOff); } }); } if(settings.hasClick) { jQuery(this).click(function() { if( jQuery(this).attr("id") != settings.activeId ) { jQuery(settings.buttonSelector).attr("id",""); jQuery(settings.buttonSelector).removeClass(settings.cssHover); jQuery(settings.buttonSelector).removeClass(settings.cssOn); jQuery(this).addClass(settings.cssOn); jQuery(this).attr("id",settings.activeId); } }); } } else { preload(settings.off); // always have the mouseout jQuery(this).mouseout(function() { if( jQuery(this).attr("id") != settings.activeId ) { jQuery(this).attr("src",settings.off); } }); if(settings.hasHover) { preload(settings.hover); jQuery(this).mouseover(function() { if( jQuery(this).attr("id") != settings.activeId ) { jQuery(this).attr("src",settings.hover); } }); } if(settings.hasClick) { preload(settings.on); jQuery(this).click(function() { if( jQuery(this).attr("id") != settings.activeId ) { jQuery(settings.buttonSelector).attr("id",""); jQuery(settings.buttonSelector).mouseout(); jQuery(this).attr("src",settings.on); jQuery(this).attr("id",settings.activeId); } }); } } }); }; function preload(path) { var temp = new Image(); temp.src=path; }; })(jQuery); /* ------------------ */