(function (A) {
    A.fn.jFlow = function (K) {
        var B = A.extend({}, A.fn.jFlow.defaults, K);
        var G = Math.floor(Math.random() * 11);
        var I = B.controller;
        var C = B.slideWrapper;
        var H = B.selectedWrapper;
        var J = 0;
        var E = A(I).length;
        var F = function (M, L) {
					//alert("M"+M+","+"L"+L +","+"E"+E + "id"+A(I).attr('id')+A(I).attr('classname') +A(I).attr('class'))
            A(B.slides).children().css({
                overflow: "hidden"
            });
            A(B.slides + " iframe").hide().addClass("temp_hide");
		
						
            A(B.slides).animate({
                marginLeft: "-" + (L * A(B.slides).find(":first-child").width() + "px")
            }, B.duration * (M), B.easing, function () {
                A(B.slides).children().css({
                    overflow: "auto"
                });
                A(".temp_hide").show()
            })
        };
        A(this).find(I).each(function (L) {
            A(this).click(function () {
                if (A(B.slides).is(":not(:animated)")) {
                    A(I).removeClass(H);
                    A(this).addClass(H);
                    var M = Math.abs(J - L);
                    F(M, L);
                    J = L
                }
            })
        });

        A(B.slides).before('<div id="' + C.substring(1, C.length) + '"></div>').appendTo(C);
        A(B.slides).find("div").each(function () {
            A(this).before('<div class="jFlowSlideContainer"></div>').appendTo(A(this).prev())
        });
        A(I).eq(J).addClass(H);

        var D = function (L) {
	
            A(C).css({
                position: "relative",
                width: B.width,
                height: B.height,
                overflow: "hidden"
            });
fudgeWidth = A(C).width() * A(I).length + "px";
if( A(B.slides).css('width')  && A(B.slides).attr('id') == "widgetHighSlides")
{
	fudgeWidth = A(B.slides).css('width');
}

            A(B.slides).css({
                position: "relative",
                width: fudgeWidth, 
                height: A(C).height() + "px",
                overflow: "hidden"
            });

            A(B.slides).children().css({
                position: "relative",
                width: A(C).width() + "px",
                height: A(C).height() + "px",
                "float": "left",
                overflow: "auto"
            });
            A(B.slides).css({
                marginLeft: "-" + (J * A(B.slides).find(":eq(0)").width() + "px")
            })
        };
        D();
        A(window).resize(function () {
            D()
        });
        A(B.prev).click(function () {
															
            if (A(B.slides).is(":not(:animated)")) {
                var L = 1;
                if (J > 0) {
                    J--
                } else {
                    J = E - 1;
                    L = J
                }
                A(I).removeClass(H);
                F(L, J);
                A(I).eq(J).addClass(H)
            }
        });
        A(B.next).click(function () {
															
            if (A(B.slides).is(":not(:animated)")) {
                var L = 1;
                if (J < E - 1) {
                    J++
                } else {
                    J = 0;
                    L = E - 1
                }
                A(I).removeClass(H);
                F(L, J);
                A(I).eq(J).addClass(H)
            }
        })
    };
    A.fn.jFlow.defaults = {
        controller: ".jFlowControl",
        slideWrapper: "#jFlowSlide",
        selectedWrapper: "jFlowSelected",
        easing: "swing",
        duration: 400,
        width: "100%",
        prev: ".jFlowPrev",
        next: ".jFlowNext"
    }
})(jQuery);
