
﻿
function replace_url(s,w){return s.replace(/(_disabled)?\.(\w+(\?[^$]*)?)$/,w+'.$2');}
jQuery.fn.rollover=function(preload){this.filter(':not([src*="_over."])').each(function(){var a=replace_url(this.src,''),b=replace_url(this.src,'_over');$(this).hover(function(){var state=$(this).data('current_state');if(state!=jQuery.ButtonState.disabled)
this.src=b;},function(){var state=$(this).data('current_state');if(state!=jQuery.ButtonState.loading&&state!=jQuery.ButtonState.disabled){this.src=a;}});var loading=$(this).hasClass('loading');var disabled=$(this).hasClass('disabled');if(loading){var loadingSrc=replace_url(this.src,'_loading');$(this).data(jQuery.ButtonState.loading,loadingSrc);}
if(disabled){var disabledSrc=replace_url(this.src,'_disabled')
$(this).data(jQuery.ButtonState.disabled,disabledSrc);}
$(this).data(jQuery.ButtonState.resting,a);if(preload){var i=new Image;i.src=b;if(loading){var loadingImg=new Image;loadingImg.src=loadingSrc;}
if(disabled){var disabledImg=new Image;disabledImg.src=disabledSrc;}}});return this;};jQuery.fn.changeButtonState=function(state){if(this[0]&&this[0].src){if($(this).data(state))
this[0].src=$(this).data(state);$(this).data('current_state',state);}
else{$(this).children('img').each(function(){if($(this).data(state))
this.src=$(this).data(state);$(this).data('current_state',state);});}
return this;}
jQuery.extend({ButtonState:{resting:'resting',hover:'hover',loading:'loading',disabled:'disabled'}});$(document).ready(function(){$('.rollover').rollover(true);});
