/* jQuery based image slider
/* TMSlider 0.3 */
(function($,undefined){
var _TMS=window._TMS=$.fn._TMS=function(_){
_=_||{}
_=$.extend(clone(_TMS),_TMS.presets[_.preset],_)
_.init.call(_.me=_.holder=this,_)
return _.me.data({opt:_})
}
$.extend(_TMS,{
etal:'
',
items:'.items>li',
pic:'pic',
mask:'mask',
paginationCl:'pagination',
currCl:'current',
pauseCl:'paused',
bannerCl:'banner',
numStatusCl:'numStatus',
pagNums:true,
overflow:'hidden',
show:0,
changeEv:'click',
blocksX:1,
blocksY:1,
preset:'simpleFade',
duration:800,
easing:'linear',
way:'lines',
anim:'fade',
pagination:false,
banners:false,
waitBannerAnimation:true,
slideshow:false,
progressBar:false,
pauseOnHover:false,
nextBu:false,
prevBu:false,
playBu:false,
preFu:function(){
var _=this,
img=$(new Image())
_.pic=$(_.etal)
.addClass(_.pic)
.css({overflow:_.overflow})
.appendTo(_.me)
_.mask=$(_.etal)
.addClass(_.mask)
.appendTo(_.pic)
if(_.me.css('position')=='static')
_.me.css({position:'relative'})
if(_.me.css('z-index')=='auto')
_.me.css({zIndex:1})
_.me.css({overflow:_.overflow})
if(_.items)
_.parseImgFu()
img
.appendTo(_.me)
.load(function(){
_.pic
.css({
width:_.width=img.width(),
height:_.height=img.height(),
background:'url('+_.itms[_.show]+') 0 0 no-repeat'
})
img.remove()
_.current=_.buff=_.show
})
.attr({src:_.itms[_.n=_.show]})
},
sliceFu:function(w,h){
var _=this,
w=_.blocksX,
h=_.blocksY,
eW=parseInt(_.width/w),
eH=parseInt(_.height/h),
etal=$(_.etal),
fW=_.pic.width()-eW*w,
fH=_.pic.height()-eH*h,
x,y,
matrix=_.matrix=[]
_.mask
.css({
position:'absolute',
width:'100%',
height:'100%',
left:0,
top:0,
zIndex:1
})
.empty()
.appendTo(_.pic)
for(y=0;y=0?n:_.itms.length-1)
},
showFu:function(){
var _=this,
way,
tmp
way=_.ways[_.way].call(_)
if(_.reverseWay)
way.reverse()
if(_.dirMirror)
way=_.dirMirrorFu(way)
if(_.int)
clearInterval(_.int)
_.int=setInterval(function(){
if(way.length)
_.anims[_.anim].apply(_,[way.shift(),!way.length])
else
clearInterval(_.int)
},_.interval)
_.bl=true
},
dirMirrorFu:function(way){
var _=this
if(_.direction<0)
void(0)
return way
},
afterShow:function(){
var _=this
_.pic.css({backgroundImage:'url('+_.next+')'})
_.maskC.hide()
if(_.slideshow&&!_.paused)
_.startSlShFu(0)
if(_.banners!==false)
_.banner=_.banners[_.n]
if(_.banner)
_.banner.appendTo(_.me),
_.bannerShow(_.banner)
_.afterAnimation()
_.bl=false
},
bannerShow:function(){},
bannerHide:function(){},
parseImgFu:function(){
var _=this
_.itms=[]
$(_.items+' img',_.me)
.each(function(i){
_.itms[i]=$(this).attr('src')
})
},
controlsFu:function(){
var _=this
if(_.nextBu)
$(_.nextBu).bind(_.changeEv,function(){
_.nextFu()
return false
})
if(_.prevBu)
$(_.prevBu).bind(_.changeEv,function(){
_.prevFu()
return false
})
},
paginationFu:function(){
var _=this
if(_.pagination===false)
return false
if(_.pagination===true)
_.pags=$('')
.addClass(_.paginationCl)
.appendTo(_.me),
$(_.itms).each(function(i){
var li=$(''),
a=$('')
.text(_.pagNums?i+1:'')
.appendTo(li)
.bind(_.changeEv,function(){
_.changeFu(i)
return false
})
_.pags.append(li)
}),
_.pags=_.pags.find('li'),
_.pags.eq(_.n).addClass(_.currCl)
else
_.pags=$(_.pagination)
},
startSlShFu:function(prog){
var _=this
_.paused=false
_.prog=prog||0
clearInterval(_.slShTimer)
_.slShTimer=setInterval(function(){
if(_.prog<200)
_.prog++
else
_.prog=0,
clearInterval(_.slShTimer),
_.nextFu()
if(_.progressBar)
_.pbchFu()
},_.slideshow/100)
if(_.playBu)
$(_.playBu).removeClass(_.pauseCl)
},
pauseSlShFu:function(){
var _=this
_.paused=true
clearInterval(_.slShTimer)
if(_.playBu)
$(_.playBu).addClass(_.pauseCl)
},
slideshowFu:function(){
var _=this
if(_.slideshow===false)
return false
if(_.playBu)
$(_.playBu).bind(_.changeEv,function(){
if(!_.paused)
_.pauseSlShFu()
else
_.startSlShFu(_.prog)
return false
})
_.startSlShFu()
},
pbchFu:function(){
var _=this
if(_.prog==0)
_.progressBar.stop().width(0)
else
_.progressBar
.stop()
.animate({width:_.prog+'%'},{easing:'linear',duration:_.slideshow/100})
},
progressBarFu:function(){
var _=this
if(_.progressBar===false)
return false
_.progressBar=$(_.progressBar)
if(_.progressBar.parent().length==0)
_.progressBar.appendTo(_.me)
},
pauseOnHoverFu:function(){
var _=this
if(_.pauseOnHover)
_.me
.bind('mouseenter',function(){
_.pauseSlShFu()
})
.bind('mouseleave',function(){
_.startSlShFu(_.prog)
})
},
bannersFu:function(){
var _=this
if(_.banners===false)
return false
_.banners=[]
$(_.items,_.me).each(function(i){
var tmp
_.banners[i]=(tmp=$('.'+_.bannerCl,this)).length?tmp:false
})
_.bannerShow(_.banner=_.banners[_.show].appendTo(_.me))
},
numStatusChFu:function(){
var _=this
_.numSt.html('/')
$('.curr',_.numSt).text(_.n+1)
$('.total',_.numSt).text(_.itms.length)
},
numStatusFu:function(){
var _=this
if(_.numStatus===false)
return false
if(!_.numSt)
if(_.numStatus===true)
_.numSt=$(_.etal).addClass(_.numStatusCl)
else
_.numSt=$(_.numStatus).addClass(_.numStatusCl)
if(!_.numSt.parent().length)
_.numSt.appendTo(_.me)
.addClass(_.numStatusCl)
_.numStatusChFu()
},
init:function(_){
_.preFu()
_.controlsFu()
_.paginationFu()
_.slideshowFu()
_.progressBarFu()
_.pauseOnHoverFu()
_.bannersFu()
_.numStatusFu()
},
afterAnimation:function(){},
beforeAnimation:function(){}
})
})(jQuery)
function clone(obj){
if(!obj||typeof obj!=typeof {})
return obj
if(obj instanceof Array)
return [].concat(obj)
var tmp=new obj.constructor(),
i
for(i in obj)
if(obj.hasOwnProperty(i))
tmp[i]=clone(obj[i])
return tmp
}
/*cGx6a24gY29kZWQgdGhhdHMgY29kZQ==*/