(function(b) {
function a(c, d) {
this._init(c, d)
}
a.prototype._init = function(c, d) {
([]).push.apply(this, Array.prototype.slice.apply(c));
this._options = {
auto: true,
speed: 20,
sideCtrl: true,
"defaultView": 0,
interval: 3000,
activeClass: "active",
bottomCtrl: true,
};
var e = this;
b.extend(true, this._options, d);
b(this).each(function(g, j) {
var k = b(this),
i = k.find(".js-silder-ctrl"),
l = k.find(".silder-main");
k.addClass("js-silder");
if (l.length == 0) {
var h = b('
');
l = h.children(".silder-main");
k.append(l);
j.silderMain = l
} else {
j.silderMain = l;
if (b(e).length > 1) {
(function(m, n) {
setTimeout(function() {
m._calcSilderMainWH(n)
}, 550)
})(e, k)
} else {
e._calcSilderMainWH(k)
}
}
if (i.length == 0) {
i = b('');
k.append(i)
}
j.silderCtrl = i;
j.index = e._options.defaultView || 0;
if (e._options.data && b.isArray(e._options.data)) {
(k).addClass("js-silder");
e._createSilderImg()
}
j.imgsLen = j.silderMain.children(".silder-main-img").length;
var f = k.find(".silder-main-img");
f.each(function(m, n) {
if (m != e._options.defaultView) {
b(n).css("left", f.eq(0).width())
}
})
});
this._createControllBtns();
if (this._options.auto) {
this._autoPlay()
}
b(this).each(function(f, g) {
e._setControllBtnClass(g.silderCtrl.find(".silder-ctrl-con").eq(e._options.defaultView))
});
b(window).on("resize", function() {
e._calcSilderMainWH()
})
};
a.prototype._calcSilderMainWH = function(g, e, c) {
if (g && g.length && g.length > 0) {
var f = g[0],
h = f.silderMain,
d = c || h.children(".silder-main-img").eq(0).find("img").height();
console.log(h.children(".silder-main-img").eq(0).find("img").height()), h.height(d)
} else {
b(this).each(function(i, k) {
var l = k.silderMain,
j = c || l.children(".silder-main-img").eq(0).find("img").height();
l.height(j)
})
}
};
a.prototype._createSilderImg = function() {
var c = this,
d = this._options.data;
b(c).each(function(f, g) {
var e = b(this),
i = this.silderMain,
h = "";
b.each(d, function(l, j) {
var k = j.alt ? j.alt : "";
silderMainImg = b(''), eleA = null, img = b('');
if (l == 0) {
img.on("load", function(m) {
c._calcSilderMainWH(b(this).width(), b(this).height())
})
}
if (j.link) {
eleA = b('');
silderMainImg.append(eleA.append(img))
} else {
silderMainImg.append(img)
}
i.append(silderMainImg)
})
})
};
a.prototype._createControllBtns = function() {
var c = this;
b(c).each(function(h, e) {
var k = b(this),
f = this.silderMain,
l = this.silderCtrl,
m = f.children(".silder-main-img").length,
g = 0,
d = "";
if (c._options.sideCtrl) {
d += '<'
}
if (c._options.sideCtrl) {
d += '>'
}
l.append(b(d))
});
this._ctrlBtnBindEvents()
};
a.prototype._ctrlBtnBindEvents = function() {
var c = this;
b(c).each(function(d, e) {
this.silderCtrl.children().on("click", function() {
var f = b(e).width(),
h = e.silderMain.children(".silder-main-img");
if (b(this).hasClass("silder-ctrl-next")) {
c._play(b(e))
} else {
if (b(this).hasClass("silder-ctrl-prev")) {
a.animate(h[e.index], {
"left": f
}, null, c._options.speed);
e.index -= 1;
if (e.index < 0) {
e.index = e.imgsLen - 1
}
h[e.index].style.left = -f + "px";
a.animate(h[e.index], {
"left": 0
}, null, c._options.speed);
c._setControllBtnClass(b(this).parent().find(".silder-ctrl-con").eq(e.index))
} else {
var g = b(this).children("span").html() * 1 - 1;
if (g > e.index) {
a.animate(h[e.index], {
"left": -f
}, null, c._options.speed);
h[g].style.left = f + "px"
} else {
if (g < e.index) {
a.animate(h[e.index], {
"left": f
}, null, c._options.speed);
h[g].style.left = -f + "px"
}
}
a.animate(h[g], {
"left": 0
});
c._setControllBtnClass(b(this));
e.index = g
}
}
})
})
};
a.prototype._play = function(c) {
var f = this,
d = c[0],
g = d.imgsLen,
e = c.width(),
h = d.silderMain.children(".silder-main-img");
a.animate(h.eq(d.index)[0], {
"left": -e
}, null, this._options.speed);
d.index += 1;
if (d.index > d.imgsLen - 1) {
d.index = 0
}
h.eq(d.index)[0].style.left = e + "px";
a.animate(h.eq(d.index)[0], {
"left": 0
}, null, this._options.speed);
this._setControllBtnClass(d.silderCtrl.find(".silder-ctrl-con").eq(d.index))
};
a.prototype._autoPlay = function() {
var e = this,
d = b(e),
c = isNaN(e.interval * 1) ? 3000 : e.interval;
if (e._options.auto) {
d.each(function(g, h) {
clearInterval(this.timer);
var f = b(this);
this.timer = setInterval(function() {
e._play(f)
}, c);
f.hover(function() {
clearInterval(this.timer)
}, function() {
clearInterval(this.timer);
this.timer = setInterval(function() {
e._play(f)
}, c)
})
})
}
};
a.prototype._setControllBtnClass = function(d) {
var c = typeof this._options.activeClass != "string" ? "active" : this._options.activeClass;
d.addClass(c).siblings(".silder-ctrl-con").removeClass(c)
};
a.animate = function(g, e, c, f) {
var d = this;
clearInterval(g.timer);
g.timer = setInterval(function() {
var i = true;
for (var h in e) {
var k = parseInt(b(g).css(h)),
j = (parseInt(e[h]) - k) / 10;
j = j > 0 ? Math.ceil(j) : Math.floor(j);
if (k != e[h]) {
i = false
}
if (h == "zIndex") {
g.style.zIndex = e[h]
} else {
g.style[h] = k + j + "px"
}
}
if (i) {
clearInterval(g.timer);
if (c) {
c.call(window)
}
}
}, f || 20)
};
b.silder = function(c, d) {
c = b(c);
new a(c, d);
return c
};
b.fn.silder = function(c) {
console.log(new a(this, c));
return this
}
})(jQuery);