/*
 * jQuery Nivo Slider v2.3
 * http://nivo.dev7studios.com
 *
 * Copyright 2010, Gilbert Pellegrom
 * Free to use and abuse under the MIT license.
 * http://www.opensource.org/licenses/mit-license.php
 */
(function (b) {
    var a = function (j, q) {
            var g = b.extend({}, b.fn.nivoSlider.defaults, q);
            var m = {
                currentSlide: 0,
                currentImage: "",
                totalSlides: 0,
                randAnim: "",
                running: false,
                paused: false,
                stop: false
            };
            var d = b(j);
            d.data("nivo:vars", m);
            d.css("position", "relative");
            d.addClass("nivoSlider");
            var e = d.children();
            e.each(function () {
                var t = b(this);
                var s = "";
                if (!t.is("img")) {
                    if (t.is("a")) {
                        t.addClass("nivo-imageLink");
                        s = t
                    }
                    t = t.find("img:first")
                }
                var r = t.width();
                if (r == 0) {
                    r = t.attr("width")
                }
                var i = t.height();
                if (i == 0) {
                    i = t.attr("height")
                }
                if (r > d.width()) {
                    d.width(r)
                }
                if (i > d.height()) {
                    d.height(i)
                }
                if (s != "") {
                    s.css("display", "none")
                }
                t.css("display", "none");
                m.totalSlides++
            });
            if (g.startSlide > 0) {
                if (g.startSlide >= m.totalSlides) {
                    g.startSlide = m.totalSlides - 1
                }
                m.currentSlide = g.startSlide
            }
            if (b(e[m.currentSlide]).is("img")) {
                m.currentImage = b(e[m.currentSlide])
            } else {
                m.currentImage = b(e[m.currentSlide]).find("img:first")
            }
            if (b(e[m.currentSlide]).is("a")) {
                b(e[m.currentSlide]).css("display", "block")
            }
            d.css("background", "url(" + m.currentImage.attr("src") + ") no-repeat");
            for (var k = 0; k < g.slices; k++) {
                var o = Math.round(d.width() / g.slices);
                if (k == g.slices - 1) {
                    d.append(b('<div class="nivo-slice"></div>').css({
                        left: (o * k) + "px",
                        width: (d.width() - (o * k)) + "px"
                    }))
                } else {
                    d.append(b('<div class="nivo-slice"></div>').css({
                        left: (o * k) + "px",
                        width: o + "px"
                    }))
                }
            }
			/*  Commented the black box title and description*/
			
           /* d.append(b('<div class="nivo-html-caption"><h2>This is title</h2><p></p></div>').css({
                display: "none",
                opacity: g.captionOpacity
            }));*/
           
            if (m.currentImage.attr("title") != "") {
                var nt = m.currentImage.attr("title");
                if (nt.substr(0, 1) == "#") {
                    nt = b(nt).html()
                }
                b(".nivo-html-caption h2", d).html(nt);
                b(".nivo-html-caption", d).fadeIn(g.animSpeed)
            }
            
                if (m.currentImage.attr("alt") != "") {
                     var n = m.currentImage.attr("alt");
                    if (n.substr(0, 1) == "#") {
                        n = b(n).html()
                    }
                    b(".nivo-html-caption p", d).html(n);
                    b(".nivo-html-caption", d).fadeIn(g.animSpeed)
                }
                var c = 0;
                if (!g.manualAdvance && e.length > 1) {
                    c = setInterval(function () {
                        p(d, e, g, false)
                    }, g.pauseTime)
                }
                if (g.directionNav) {
                    d.append('<div class="nivo-directionNav"><a class="nivo-prevNav">Prev</a><a class="nivo-nextNav">Next</a></div>');
                    if (g.directionNavHide) {
                        b(".nivo-directionNav", d).hide();
                        d.hover(function () {
                            b(".nivo-directionNav", d).show()
                        }, function () {
                            b(".nivo-directionNav", d).hide()
                        })
                    }
                    b("a.nivo-prevNav", d).live("click", function () {
                        if (m.running) {
                            return false
                        }
                        clearInterval(c);
                        c = "";
                        m.currentSlide -= 2;
                        p(d, e, g, "prev")
                    });
                    b("a.nivo-nextNav", d).live("click", function () {
                        if (m.running) {
                            return false
                        }
                        clearInterval(c);
                        c = "";
                        p(d, e, g, "next")
                    })
                }
                if (g.controlNav) {
                    var l = b('<div class="nivo-controlNav"></div>');
                    d.append(l);
                    for (var k = 0; k < e.length; k++) {
                        if (g.controlNavThumbs) {
                            var f = e.eq(k);
                            if (!f.is("img")) {
                                f = f.find("img:first")
                            }
                            if (g.controlNavThumbsFromRel) {
                                l.append('<a class="nivo-control" rel="' + k + '"><img src="' + f.attr("rel") + '" alt="" /></a>')
                            } else {
                                l.append('<a class="nivo-control" rel="' + k + '"><img src="' + f.attr("src").replace(g.controlNavThumbsSearch, g.controlNavThumbsReplace) + '" alt="" /></a>')
                            }
                        } else {
                            l.append('<a class="nivo-control" rel="' + k + '">' + (k + 1) + "</a>")
                        }
                    }
                    b(".nivo-controlNav a:eq(" + m.currentSlide + ")", d).addClass("active");
                    b(".nivo-controlNav a", d).live("click", function () {
                        if (m.running) {
                            return false
                        }
                        if (b(this).hasClass("active")) {
                            return false
                        }
                        clearInterval(c);
                        c = "";
                        d.css("background", "url(" + m.currentImage.attr("src") + ") no-repeat");
                        m.currentSlide = b(this).attr("rel") - 1;
                        p(d, e, g, "control")
                    })
                }
                if (g.keyboardNav) {
                    b(window).keypress(function (i) {
                        if (i.keyCode == "37") {
                            if (m.running) {
                                return false
                            }
                            clearInterval(c);
                            c = "";
                            m.currentSlide -= 2;
                            p(d, e, g, "prev")
                        }
                        if (i.keyCode == "39") {
                            if (m.running) {
                                return false
                            }
                            clearInterval(c);
                            c = "";
                            p(d, e, g, "next")
                        }
                    })
                }
                if (g.pauseOnHover) {
                    d.hover(function () {
                        m.paused = true;
                        clearInterval(c);
                        c = ""
                    }, function () {
                        m.paused = false;
                        if (c == "" && !g.manualAdvance) {
                            c = setInterval(function () {
                                p(d, e, g, false)
                            }, g.pauseTime)
                        }
                    })
                }
                d.bind("nivo:animFinished", function () {
                    m.running = false;
                    b(e).each(function () {
                        if (b(this).is("a")) {
                            b(this).css("display", "none")
                        }
                    });
                    if (b(e[m.currentSlide]).is("a")) {
                        b(e[m.currentSlide]).css("display", "block")
                    }
                    if (c == "" && !m.paused && !g.manualAdvance) {
                        c = setInterval(function () {
                            p(d, e, g, false)
                        }, g.pauseTime)
                    }
                    g.afterChange.call(this)
                });
                var p = function (r, s, u, x) {
                        var y = r.data("nivo:vars");
                        if (y && (y.currentSlide == y.totalSlides - 1)) {
                            u.lastSlide.call(this)
                        }
                        if ((!y || y.stop) && !x) {
                            return false
                        }
                        u.beforeChange.call(this);
                        if (!x) {
                            r.css("background", "url(" + y.currentImage.attr("src") + ") no-repeat")
                        } else {
                            if (x == "prev") {
                                r.css("background", "url(" + y.currentImage.attr("src") + ") no-repeat")
                            }
                            if (x == "next") {
                                r.css("background", "url(" + y.currentImage.attr("src") + ") no-repeat")
                            }
                        }
                        y.currentSlide++;
                        if (y.currentSlide == y.totalSlides) {
                            y.currentSlide = 0;
                            u.slideshowEnd.call(this)
                        }
                        if (y.currentSlide < 0) {
                            y.currentSlide = (y.totalSlides - 1)
                        }
                        if (b(s[y.currentSlide]).is("img")) {
                            y.currentImage = b(s[y.currentSlide])
                        } else {
                            y.currentImage = b(s[y.currentSlide]).find("img:first")
                        }
                        if (u.controlNav) {
                            b(".nivo-controlNav a", r).removeClass("active");
                            b(".nivo-controlNav a:eq(" + y.currentSlide + ")", r).addClass("active")
                        }
                        if (y.currentImage.attr("title") != "") {
                            var zt = y.currentImage.attr("title");
                            if (zt.substr(0, 1) == "#") {
                                zt = b(zt).html()
                            }
                            if (b(".nivo-html-caption", r).css("display") == "block") {
                                b(".nivo-html-caption h2", r).fadeOut(u.animSpeed, function () {
                                    b(this).html(zt);
                                    b(this).fadeIn(u.animSpeed)
                                })
                            } else {
                                b(".nivo-html-caption p", r).html(zt)
                            }
                            b(".nivo-html-caption", r).fadeIn(u.animSpeed)
                        }
                        if (y.currentImage.attr("alt") != "") {
                            var z = y.currentImage.attr("alt");
                            if (z.substr(0, 1) == "#") {
                                z = b(z).html()
                            }
                            if (b(".nivo-html-caption", r).css("display") == "block") {
                                b(".nivo-html-caption p", r).fadeOut(u.animSpeed, function () {
                                    b(this).html(z);
                                    b(this).fadeIn(u.animSpeed)
                                })
                            } else {
                                b(".nivo-html-caption p", r).html(z)
                            }
                            b(".nivo-html-caption", r).fadeIn(u.animSpeed)
                        } else {
                            b(".nivo-html-caption", r).fadeOut(u.animSpeed)
                        }
                        var w = 0;
                        b(".nivo-slice", r).each(function () {
                            var i = Math.round(r.width() / u.slices);
                            b(this).css({
                                height: "0px",
                                opacity: "0",
                                background: "url(" + y.currentImage.attr("src") + ") no-repeat -" + ((i + (w * i)) - i) + "px 0%"
                            });
                            w++
                        });
                        if (u.effect == "random") {
                            var A = new Array("sliceDownRight", "sliceDownLeft", "sliceUpRight", "sliceUpLeft", "sliceUpDown", "sliceUpDownLeft", "fold", "fade");
                            y.randAnim = A[Math.floor(Math.random() * (A.length + 1))];
                            if (y.randAnim == undefined) {
                                y.randAnim = "fade"
                            }
                        }
                        if (u.effect.indexOf(",") != -1) {
                            var A = u.effect.split(",");
                            y.randAnim = b.trim(A[Math.floor(Math.random() * A.length)])
                        }
                        y.running = true;
                        if (u.effect == "sliceDown" || u.effect == "sliceDownRight" || y.randAnim == "sliceDownRight" || u.effect == "sliceDownLeft" || y.randAnim == "sliceDownLeft") {
                            var t = 0;
                            var w = 0;
                            var C = b(".nivo-slice", r);
                            if (u.effect == "sliceDownLeft" || y.randAnim == "sliceDownLeft") {
                                C = b(".nivo-slice", r)._reverse()
                            }
                            C.each(function () {
                                var i = b(this);
                                i.css("top", "0px");
                                if (w == u.slices - 1) {
                                    setTimeout(function () {
                                        i.animate({
                                            height: "100%",
                                            opacity: "1.0"
                                        }, u.animSpeed, "", function () {
                                            r.trigger("nivo:animFinished")
                                        })
                                    }, (100 + t))
                                } else {
                                    setTimeout(function () {
                                        i.animate({
                                            height: "100%",
                                            opacity: "1.0"
                                        }, u.animSpeed)
                                    }, (100 + t))
                                }
                                t += 50;
                                w++
                            })
                        } else {
                            if (u.effect == "sliceUp" || u.effect == "sliceUpRight" || y.randAnim == "sliceUpRight" || u.effect == "sliceUpLeft" || y.randAnim == "sliceUpLeft") {
                                var t = 0;
                                var w = 0;
                                var C = b(".nivo-slice", r);
                                if (u.effect == "sliceUpLeft" || y.randAnim == "sliceUpLeft") {
                                    C = b(".nivo-slice", r)._reverse()
                                }
                                C.each(function () {
                                    var i = b(this);
                                    i.css("bottom", "0px");
                                    if (w == u.slices - 1) {
                                        setTimeout(function () {
                                            i.animate({
                                                height: "100%",
                                                opacity: "1.0"
                                            }, u.animSpeed, "", function () {
                                                r.trigger("nivo:animFinished")
                                            })
                                        }, (100 + t))
                                    } else {
                                        setTimeout(function () {
                                            i.animate({
                                                height: "100%",
                                                opacity: "1.0"
                                            }, u.animSpeed)
                                        }, (100 + t))
                                    }
                                    t += 50;
                                    w++
                                })
                            } else {
                                if (u.effect == "sliceUpDown" || u.effect == "sliceUpDownRight" || y.randAnim == "sliceUpDown" || u.effect == "sliceUpDownLeft" || y.randAnim == "sliceUpDownLeft") {
                                    var t = 0;
                                    var w = 0;
                                    var B = 0;
                                    var C = b(".nivo-slice", r);
                                    if (u.effect == "sliceUpDownLeft" || y.randAnim == "sliceUpDownLeft") {
                                        C = b(".nivo-slice", r)._reverse()
                                    }
                                    C.each(function () {
                                        var i = b(this);
                                        if (w == 0) {
                                            i.css("top", "0px");
                                            w++
                                        } else {
                                            i.css("bottom", "0px");
                                            w = 0
                                        }
                                        if (B == u.slices - 1) {
                                            setTimeout(function () {
                                                i.animate({
                                                    height: "100%",
                                                    opacity: "1.0"
                                                }, u.animSpeed, "", function () {
                                                    r.trigger("nivo:animFinished")
                                                })
                                            }, (100 + t))
                                        } else {
                                            setTimeout(function () {
                                                i.animate({
                                                    height: "100%",
                                                    opacity: "1.0"
                                                }, u.animSpeed)
                                            }, (100 + t))
                                        }
                                        t += 50;
                                        B++
                                    })
                                } else {
                                    if (u.effect == "fold" || y.randAnim == "fold") {
                                        var t = 0;
                                        var w = 0;
                                        b(".nivo-slice", r).each(function () {
                                            var i = b(this);
                                            var v = i.width();
                                            i.css({
                                                top: "0px",
                                                height: "100%",
                                                width: "0px"
                                            });
                                            if (w == u.slices - 1) {
                                                setTimeout(function () {
                                                    i.animate({
                                                        width: v,
                                                        opacity: "1.0"
                                                    }, u.animSpeed, "", function () {
                                                        r.trigger("nivo:animFinished")
                                                    })
                                                }, (100 + t))
                                            } else {
                                                setTimeout(function () {
                                                    i.animate({
                                                        width: v,
                                                        opacity: "1.0"
                                                    }, u.animSpeed)
                                                }, (100 + t))
                                            }
                                            t += 50;
                                            w++
                                        })
                                    } else {
                                        if (u.effect == "fade" || y.randAnim == "fade") {
                                            var w = 0;
                                            b(".nivo-slice", r).each(function () {
                                                b(this).css("height", "100%");
                                                if (w == u.slices - 1) {
                                                    b(this).animate({
                                                        opacity: "1.0"
                                                    }, (u.animSpeed * 2), "", function () {
                                                        r.trigger("nivo:animFinished")
                                                    })
                                                } else {
                                                    b(this).animate({
                                                        opacity: "1.0"
                                                    }, (u.animSpeed * 2))
                                                }
                                                w++
                                            })
                                        }
                                    }
                                }
                            }
                        }
                    };
                var h = function (i) {
                        if (this.console && typeof console.log != "undefined") {
                            console.log(i)
                        }
                    };
                this.stop = function () {
                    if (!b(j).data("nivo:vars").stop) {
                        b(j).data("nivo:vars").stop = true;
                        h("Stop Slider")
                    }
                };
                this.start = function () {
                    if (b(j).data("nivo:vars").stop) {
                        b(j).data("nivo:vars").stop = false;
                        h("Start Slider")
                    }
                };
                g.afterLoad.call(this)
            };
            b.fn.nivoSlider = function (c) {
                return this.each(function () {
                    var d = b(this);
                    if (d.data("nivoslider")) {
                        return
                    }
                    var e = new a(this, c);
                    d.data("nivoslider", e)
                })
            };
            b.fn.nivoSlider.defaults = {
                effect: "random",
                slices: 15,
                animSpeed: 500,
                pauseTime: 3000,
                startSlide: 0,
                directionNav: true,
                directionNavHide: true,
                controlNav: true,
                controlNavThumbs: false,
                controlNavThumbsFromRel: false,
                controlNavThumbsSearch: ".jpg",
                controlNavThumbsReplace: "_thumb.jpg",
                keyboardNav: true,
                pauseOnHover: true,
                manualAdvance: false,
                captionOpacity: 0.8,
                beforeChange: function () {},
                afterChange: function () {},
                slideshowEnd: function () {},
                lastSlide: function () {},
                afterLoad: function () {}
            };
            b.fn._reverse = [].reverse
        })(jQuery);
