//0.2 spinner image changer
;(function($){
	$.fn.sImg=function(o){
		this.each(function(){
			var th=$(this),
				data=th.data('sImg'),
				_={
					duration:1000,
					sleep:300,
					spinner:false,
					preFu:function(){
						_.me
							.css({
								width:_.me.width(),
								height:_.me.height()
							})
						_.me.css('position')=='static'
							&&_.me.css({position:'relative',zIndex:1})
						_.img
							.css({
								position:'absolute',
								zIndex:1,
								left:_.img.prop('offsetLeft'),
								top:_.img.prop('offsetTop')
							})
					},
					spinnerFu:function(){
						if(!_.spinner)
							return false
						_.spinner=$(_.spinner)
					},
					chngFu:function(src){
						if(src==_.src)
							return false
						_.src=src
						_.buff=_.buff||$('<img>').css({position:'absolute',top:'-999%',left:'-999%'})
						if(_.clone&&_.clone.is(':animated'))
							_.clone.stop()
						if(_.clone)
							_.clone.remove()
						_.showSpinner()
						_.buff
							.appendTo('body')
							.unbind('load')
							.load(function(){
								setTimeout(function(){
									_.clone=_.img.clone().appendTo(_.me)									
									_.hideSpinner()
									_.img.attr({src:src})
									_.clone
										.stop()
										.animate({
											opacity:0
										},{
											duration:_.duration,
											complete:function(){
												_.clone.remove()												
											}
										})
										_.buff.detach()
								},_.sleep)
							})
							.attr({src:src})
					},
					showSpinner:function(){
						if(!_.spinner)
							return false
						_.spinner
							.hide()
							.appendTo(_.me)
							.fadeIn()
					},
					hideSpinner:function(){
						if(!_.spinner)
							return false
						_.spinner
							.fadeOut(function(){
								_.spinner.detach()
							})
					},
					init:function(){
						_.img=$('>img',_.me)
						_.preFu()
						_.spinnerFu()
					}
				}
			data?_=data:th.data({sImg:_})
			typeof o=='object'&&$.extend(_,o)
			_.me||_.init(_.me=th)
			
			typeof o=='string'&&_.chngFu(o)
		})
		return this
	}
})(jQuery)
/*(function($){
$.fn.extend({
sImg:function(_){
	var ret=this
	this.each(function(){
		var th=$(this),
			data=th.data('_sImg'),
			root={
			  	"undefined":function(opt){
					var _={
						enable:true,
						spinner:false,
						duration:1000,
						sleep:300,
						preFu:function(){
							var tmp
							tmp=$(_.spinner,_.me)
							if(tmp.length==0)
								tmp=$(_.spinner)
							if(tmp.parent().length==0)
								tmp.appendTo(_.me)
							else
								_.outer=true
							_.spnnr=tmp
							_.spinnerHide()
						},
						spinnerShow:function(){
							if(!_.outer)
								_.spnnr.appendTo(_.me)
							else
								_.spnnr.show()
						},
						spinnerHide:function(){
							if(!_.outer)
								_.spnnr.detach()
							else
								_.spnnr.hide()
						},
						changeFu:function(src){
							if(src==_.src)
								return false
							_.src=src
							_.buff=_.buff||$('<img>').css({position:'absolute',top:'-999%',left:'-999%'})
							if(_.clone)
								_.clone.remove()
							_.spinnerShow()
							_.spnnr.fadeIn()
							_.buff
								.appendTo('body')
								.unbind('load')
								.load(function(){
									setTimeout(function(){
										_.spnnr.fadeOut(function(){_.spinnerHide()})
										_.clone=_.img.clone().appendTo(_.me)
										_.img.attr({src:src})
										_.clone.fadeOut(_.duration,function(){
											_.clone.remove()
										})
										_.buff.detach()
									},_.sleep)
								})
								.attr({src:src})
						},
						init:function(){
							_.me=this
							_.img=$('>img',_.me)
							
							_.preFu()
						}						
					}
					if(opt)
						$.extend(_,opt)
					if(!data)
						_.init.call(th),
						th.data({_sImg:data=_})						
					else
						_=data
					ret=_
				},
				"object":function(){
					$.extend(data,_)
					ret=th
				},
				"function":function(){
					data.onChangeMas.push(_)
					ret=th
				},
				"number":function(){
					ret=th
				},
				"string":function(){
					data.changeFu(_)
					ret=th
				},
				"boolean":function(){
					data.enable=_
					ret=th
				}
			},
			fu=root[typeof _]
			alert(1)
			if(!data&&_!=undefined)
				root['undefined'](_)

			if(data.enable||_===true)
				fu()
		})
		return this
	}
})
})(jQuery)*/
