myems-admin/js/jquery/jquery.carousel.min.js
(function(c) {
function ga(z, s) {
function m() {
u = j.length;
p = v * 2 / u;
for (var b = 0; b < u; b++) ha(b);
o(g);
N(0);
c(document).bind("mousemove", function(d) {
k = d.pageX;
q = d.pageY
});
z.onselectstart = function() {
return false
};
a.settings.autoScroll && A();
a.settings.mouseScroll && O();
a.settings.mouseDrag && X();
a.settings.mouseWheel && Y();
a.settings.scrollbar && ia();
a.settings.tooltip && c('<div class="tooltip"><p></p></div>').css("opacity", 0).appendTo(i)
}
function ha(b) {
var d = c('<img class="carousel-item"/>').appendTo(i);
Z.push(d);
d.css({
width: a.settings.itemWidth,
h: a.settings.itemHeight
}).data({
w: a.settings.itemWidth,
h: a.settings.itemHeight,
index: b
}).addClass("out").bind({
mouseover: function() {
c(this).hasClass("out") && c(this).removeClass("out").addClass("over");
a.settings.tooltip && ja(b);
if (a.settings.mouseScroll) B = a.settings.mouseScrollSpeedHover;
var e = {
type: "itemMouseOver",
index: b,
data: j[b]
};
c.isFunction(a.settings.itemMouseOver) && a.settings.itemMouseOver.call(this, e)
},
mouseout: function() {
c(this).hasClass("over") &&
c(this).removeClass("over").addClass("out");
a.settings.tooltip && ka();
if (a.settings.mouseScroll) B = a.settings.mouseScrollSpeed;
var e = {
type: "itemMouseOut",
index: b,
data: j[b]
};
c.isFunction(a.settings.itemMouseOut) && a.settings.itemMouseOut.call(this, e)
},
click: function() {
i.find(".click").removeClass("click").addClass("out");
c(this).removeClass("over").addClass("click");
a.settings.scrollOnClick && C(b);
if (j[b].link) window.open(j[b].link, j[b].linkTarget || a.settings.linkTarget);
var e = {
type: "itemClick",
index: b,
data: j[b]
};
c.isFunction(a.settings.itemClick) && a.settings.itemClick.call(this, e)
}
});
j[b].link && d.css("cursor", "pointer");
N(b)
}
function N(b) {
var d = j[b].path,
e = Z[b];
c("<img/>").load(function() {
var h = parseInt(c(this).attr("width") || c(this).prop("width")),
f = parseInt(c(this).attr("height") || c(this).prop("height"));
if (a.settings.crop) e.css("background-image", "url(" + d + ")");
else {
e.attr("src", d);
e.css("background-image", "none")
}
if (a.settings.resize)
if (a.settings.maintainAspectRatio) {
scaleX =
a.settings.itemWidth / h;
scaleY = a.settings.itemHeight / f;
if (scaleX < scaleY) {
h *= scaleX;
f *= scaleX
} else {
h *= scaleY;
f *= scaleY
}
} else {
h = a.settings.itemWidth;
f = a.settings.itemHeigh
}
e.css({
width: h,
height: f
});
e.data({
w: h,
h: f
});
o(g);
b < u - 1 && N(++b)
}).attr("src", d)
}
function o(b) {
i.find(".carousel-item").each(function(d) {
var e = c(this),
h = e.data("w"),
f = e.data("h"),
D = Math.sin(-(p * d) + v * 0.5 + b * w) * a.settings.verticalRadius + P - f * 0.5,
r = (D - ($ - f * 0.5)) / (aa - $) * (1 - a.settings.scaleRatio) + a.settings.scaleRatio;
e.css({
width: h * r,
height: f * r,
left: Math.cos(-(p * d) + v * 0.5 + b * w) * a.settings.horizontalRadius + Q - h * 0.5 + h * (1 - r) / 2,
top: D + f * (1 - r) / 2,
"z-index": Math.floor(r * 10 * u)
})
});
a.settings.scrollbar && !x && la(R())
}
function C(b) {
l = b;
var d = p * (180 / v) * b % 360;
g %= 360;
if (Math.abs(d - g) > 180) d += d > g ? -360 : 360;
if (d - g > 180 && d > g) d -= 360;
E();
S = setInterval(function() {
if (Math.abs(d - g) > 0.5) {
g += (d - g) * (a.settings.scrollSpeed / 100);
o(g)
} else F()
}, 30);
b = {
type: "itemSelect",
index: l,
data: j[l]
};
c.isFunction(a.settings.itemSelect) && a.settings.itemSelect.call(this, b)
}
function ba() {
C(l == j.length - 1 ? 0 : l + 1)
}
function ca() {
C(l == 0 ? j.length - 1 : l - 1)
}
function A() {
if (!(G && a.settings.pauseAutoScrollIfTooltip)) {
a.settings.autoScroll = true;
t = setTimeout(function() {
if (a.settings.autoScrollDirection == "next") ba();
else a.settings.autoScrollDirection == "previous" && ca()
}, a.settings.autoScrollDelay)
}
}
function O() {
a.settings.mouseScroll = true;
B = a.settings.mouseScrollSpeed;
var b = 0,
d = a.settings.mouseScrollReverse ? -1 : 1;
H = setInterval(function() {
if (k > i.offset().left && k < i.offset().left + a.settings.width &&
q > i.offset().top && q < i.offset().top + a.settings.height) {
b = d * (k - (i.offset().left + Q)) * (B / 1E3);
g += b;
o(g)
} else if (Math.abs(b) > 0.1) {
b *= a.settings.mouseScrollEase / 100;
g += b;
o(g)
} else b = 0
}, 30)
}
function X() {
function b(f) {
T = f.pageX;
if (!I) {
E();
d()
}
}
function d() {
I = true;
J = setInterval(function() {
var f = (360 * (h * (T - da) / (100 * a.settings.mouseDragSpeed)) + e - g) * (a.settings.mouseDragEase / 100);
if ((f >= 0 ? f : -f) > 0.1) {
g += f;
l = Math.round(g * w / p);
o(g)
} else F()
}, 30)
}
a.settings.mouseDrag = true;
var e = 0,
h = a.settings.mouseDragReverse ? 1 :
-1;
c(document).bind("mousedown", function(f) {
if (k > i.offset().left && k < i.offset().left + a.settings.width && q > i.offset().top && q < i.offset().top + a.settings.height) {
T = da = f.pageX;
e = g;
c(document).bind("mousemove", b)
}
});
c(document).bind("mouseup", function() {
c(document).unbind("mousemove", b)
})
}
function Y() {
a.settings.mouseWheel = true;
var b = 0,
d = a.settings.mouseWheelReverse ? -1 : 1;
i.bind("mousewheel", function(e, h) {
e.preventDefault();
if (!K) {
E();
K = true;
b = g;
L = setInterval(function() {
if (Math.abs(b - g) > 0.5) {
g += (b - g) * (a.settings.mouseWheelSpeed /
100);
l = Math.round(g * w / p);
o(g)
} else F()
}, 30)
}
b += d * h * 10
})
}
function ia() {
function b() {
n = k - h.offset().left - ea;
d()
}
function d() {
if (n < 0) n = 0;
else if (n > parseInt(h.css("width")) - parseInt(f.css("width"))) n = parseInt(h.css("width")) - parseInt(f.css("width"));
x && f.css("left", n);
U = n / (parseInt(h.css("width")) - parseInt(f.css("width")));
if (!M) {
E();
M = true;
g %= 360;
V = setInterval(function() {
if (Math.abs(R() - U) > 0.0010) {
var W = (U - R()) * (a.settings.scrollbarEase / 100);
g += W * 360;
l = Math.round(g * w / p);
o(g)
} else M && F()
}, 30)
}
}
var e =
c('<div class="scrollbar"></div>').appendTo(i),
h = c('<div class="track"></div>').appendTo(e),
f = c('<div class="thumb"></div>').appendTo(h),
D = c('<div class="left"></div>').appendTo(e),
r = c('<div class="right"></div>').appendTo(e),
n = 0,
ea;
e.css({
top: aa,
left: Q - parseInt(e.css("width")) / 2
});
f.bind("mousedown", function(W) {
W.preventDefault();
ea = k - f.offset().left;
x = true;
c(document).bind("mousemove", b)
});
c(document).bind("mouseup", function() {
if (x) {
x = false;
c(document).unbind("mousemove", b)
}
});
D.bind("click", function() {
n =
parseInt(f.css("left")) - a.settings.arrowScrollAmount;
d()
});
r.bind("click", function() {
n = parseInt(f.css("left")) + a.settings.arrowScrollAmount;
d()
})
}
function la(b) {
var d = i.find(".scrollbar").find(".track"),
e = d.find(".thumb");
e.css("left", b * (parseInt(d.css("width")) - parseInt(e.css("width"))))
}
function R() {
var b = g % 360 / 360;
if (b < 0) b += 1;
return b
}
function E() {
fa();
if (!y) {
y = true;
c.isFunction(a.settings.scrollStart) && a.settings.scrollStart.call(this)
}
}
function F() {
fa();
if (y) {
y = false;
c.isFunction(a.settings.scrollComplete) &&
a.settings.scrollComplete.call(this)
}
a.settings.mouseScroll && O();
a.settings.autoScroll && A()
}
function fa() {
H && clearInterval(H);
if (J) {
I = false;
clearInterval(J)
}
if (L) {
K = false;
clearInterval(L)
}
if (V) {
M = false;
clearInterval(V)
}
S && clearInterval(S);
t && clearTimeout(t)
}
function ja(b) {
if (b = j[b].tooltip) {
G = true;
var d = i.find(".tooltip");
d.find("p").html(b);
d.stop().animate({
opacity: 1
}, 300);
var e = -d.outerWidth() / 2,
h = 0 - d.outerHeight() - parseInt(d.css("marginBottom"));
d.css({
left: k - i.offset().left + e,
top: q - i.offset().top +
h
});
c(document).bind("mousemove.tooltip", function() {
d.css({
left: k - i.offset().left + e,
top: q - i.offset().top + h
})
});
t && a.settings.pauseAutoScrollIfTooltip && clearTimeout(t)
}
}
function ka() {
if (G) {
G = false;
var b = i.find(".tooltip");
b.stop().animate({
opacity: 0
}, 200, function() {
c(document).unbind("mousemove.tooltip");
b.css("left", -9999)
});
a.settings.autoScroll && a.settings.pauseAutoScrollIfTooltip && A()
}
}
this.settings = c.extend({}, c.fn.carousel.defaults, s);
var i = c(z),
a = this,
l = 0,
j = [],
Z = [],
v = Math.PI,
w = v / 180,
S, t, H, J,
L, V, B = a.settings.mouseScrollSpeed,
k, q, T = 0,
da = 0,
I = false,
K = false,
x = false,
M = false,
U = 0,
g = 0,
Q = a.settings.width / 2,
P = a.settings.height / 2,
$ = P - a.settings.verticalRadius,
aa = P + a.settings.verticalRadius,
p, u, y = false,
G = false;
(function() {
i.addClass("carousel").css({
width: a.settings.width,
height: a.settings.height
});
if (a.settings.xmlSource) {
i.empty();
c.ajax({
type: "GET",
url: a.settings.xmlSource,
dataType: "xml",
success: function(b) {
var d;
d = b;
c(d).find("item").each(function() {
for (var e = {}, h = 0; h < c(this).children().length; h++) {
var f = c(this).children()[h];
e[f.nodeName] = c(this).find(f.nodeName).text()
}
j.push(e)
});
m()
}
})
} else {
i.children().each(function() {
for (var b = {}, d = 0; d < c(this).children().length; d++) {
var e = c(this).children()[d];
if (c(e).is("a")) {
b.path = c(e).find("img").attr("src");
b.link = c(e).attr("href");
if (c(e).attr("target")) b.linkTarget = c(e).attr("target")
} else if (c(e).is("img")) b.path = c(e).attr("src");
else b[c(e).attr("class")] = c(e).html()
}
j.push(b)
});
i.empty();
m()
}
})();
this.startAutoScroll = A;
this.stopAutoScroll = function() {
a.settings.autoScroll = false;
clearTimeout(t)
};
this.startMouseScroll = O;
this.stopMouseScroll = function() {
a.settings.mouseScroll = false;
clearInterval(H)
};
this.startMouseDrag = X;
this.stopMouseDrag = function() {
I = a.settings.mouseDrag = false;
clearInterval(J)
};
this.startMouseWheel = Y;
this.stopMouseWheel = function() {
K = a.settings.mouseWheel = false;
clearInterval(L)
};
this.scrollToItem = C;
this.scrollToNext =
ba;
this.scrollToPrevious = ca;
this.isScrolling = function() {
return y
}
}
c.fn.carousel = function(z) {
for (var s = [], m = 0; m < this.length; m++)
if (!this[m].carousel) {
this[m].carousel = new ga(this[m], z);
s.push(this[m].carousel)
}
return s.length > 1 ? s : s[0]
};
c.fn.carousel.defaults = {
xmlSource: null,
width: 500,
height: 300,
itemWidth: 100,
itemHeight: 100,
horizontalRadius: 250,
verticalRadius: 100,
resize: true,
maintainAspectRatio: true,
crop: false,
scaleRatio: 0.5,
mouseScroll: false,
scrollOnClick: true,
mouseDrag: false,
scrollbar: false,
arrowScrollAmount: 50,
tooltip: true,
mouseScrollEase: 90,
mouseDragEase: 10,
scrollbarEase: 10,
scrollSpeed: 10,
mouseDragSpeed: 20,
mouseScrollSpeed: 10,
mouseScrollSpeedHover: 3,
mouseWheel: false,
mouseWheelSpeed: 10,
mouseScrollReverse: false,
mouseDragReverse: false,
mouseWheelReverse: false,
autoScroll: false,
autoScrollDirection: "next",
autoScrollDelay: 3E3,
pauseAutoScrollIfTooltip: true,
linkTarget: "_blank",
itemSelect: null,
itemClick: null,
itemMouseOver: null,
itemMouseOut: null,
scrollStart: null,
scrollComplete: null
}
})(jQuery);