/* ContentFlow, version 1.0.2  | (c) 2007 - 2010 Sebastian Kutsch | <http://www.jacksasylum.eu/ContentFlow/> | ContentFlow is distributed under the terms of the MIT license. | (see http://www.jacksasylum.eu/ContentFlow/LICENSE) */
var ContentFlowGlobal = 
    {
    Flows: new Array,
    AddOns: {},
    scriptName: "contentflow.js",
    scriptElement: null,
    Browser: new (function() {
        this.Opera = window.opera ? true : false;
        this.IE = document.all && !this.Opera ? true : false;
        this.IE6 = this.IE && typeof (window.XMLHttpRequest) == "undefined" ? true : false;
        this.IE8 = this.IE && typeof (document.querySelectorAll) != "undefined" ? true : false;
        this.IE7 = this.IE && !this.IE6 && !this.IE8 ? true : false;
        this.WebKit = /WebKit/i.test(navigator.userAgent) ? true : false, this.iPhone = /iPhone|iPod/i.test(navigator.userAgent) ? true : false;
        this.Chrome = /Chrome/i.test(navigator.userAgent) ? true : false;
        this.Safari = /Safari/i.test(navigator.userAgent) && !this.Chrome ? true : false;
        this.Konqueror = navigator.vendor == "KDE" ? true : false;
        this.Konqueror4 = this.Konqueror && /native code/.test(document.getElementsByClassName) ? true : false;
        this.Gecko = !this.WebKit && navigator.product == "Gecko" ? true : false;
        this.Gecko19 = this.Gecko && Array.reduce ? true : false
    })(),
    getAddOnConf: function(A) {
        if (this.AddOns[A])
            { return this.AddOns[A].conf }
        else
            { return {} }
    },
    setAddOnConf: function(B, A) {
        this.AddOns[B].setConfig(A)
    },
    getScriptElement: function(D) {
        var C = new RegExp(D);
        var A = document.getElementsByTagName("script");
        for (var B = 0; B < A.length; B++) 
        {
            if (A[B].src && C.test(A[B].src))
            { return A[B] }
        }
        return ""
    },
    getScriptPath: function(C, B) {
        var A = new RegExp(B + ".*");
        return C.src.replace(A, "")
    },
    addScript: function(B) {
        if (this.Browser.IE || this.Browser.WebKit || this.Browser.Konqueror)
            { document.write('<script type="text/javascript" src="' + B + '"><\/script>') }
        else {
            var A = document.createElement("script");
            A.src = B;
            A.setAttribute("type", "text/javascript");
            document.getElementsByTagName("head")[0].appendChild(A)
        }
    },
    addScripts: function(C, B) {
        for (var A = 0; A < filename.length; A++) {
            this.addScript(basepath + B[A])
        }
    },
    addStylesheet: function(B) {
        if (this.Browser.Gecko19) {
            var A = document.createElement("link");
            A.setAttribute("rel", "stylesheet");
            A.setAttribute("href", B);
            A.setAttribute("type", "text/css");
            A.setAttribute("media", "screen");
            document.getElementsByTagName("head")[0].appendChild(A)
        }
        else {
            document.write('<link rel="stylesheet" href="' + B + '" type="text/css" media="screen" />')
        }
    },
    addStylesheets: function(C, B) {
        for (var A = 0; A < filename.length; A++) {
            this.addStylesheet(basepath + B[A])
        }
    },
    initPath: function() {
        this.scriptElement = this.getScriptElement(this.scriptName);
        if (!this.scriptElement) {
            this.scriptName = "contentflow_src.js";
            this.scriptElement = this.getScriptElement(this.scriptName)
        }
        this.BaseDir = this.getScriptPath(this.scriptElement, this.scriptName);
        if (!this.AddOnBaseDir) {
            this.AddOnBaseDir = this.BaseDir
        }
        if (!this.CSSBaseDir) {
            this.CSSBaseDir = this.BaseDir
        }
    },
    init: function() {
        this.addStylesheet(this.CSSBaseDir + "contentflow.css");
        this.addStylesheet(this.CSSBaseDir + "mycontentflow.css");
        this.loadAddOns = new Array();
        if (this.scriptElement.getAttribute("load")) {
            var A = this.loadAddOns = this.scriptElement.getAttribute("load").replace(/\ +/g, " ").split(" ");
            for (var C = 0; C < A.length; C++) {
                if (A[C] == "") {
                    continue
                }
                this.addScript(this.AddOnBaseDir + "ContentFlowAddOn_" + A[C] + ".js")
            }
        }
        var E = this;
        if (document.addEventListener) {
            if (this.Browser.WebKit) {
                var D = setInterval(function() {
                    if (/loaded|complete/.test(document.readyState)) {
                        clearInterval(D);
                        E.onloadInit()
                    }
                    }, 10)
            }
            else {
                document.addEventListener("DOMContentLoaded", E.onloadInit, false)
            }
        }
        else {
            if (this.Browser.IE) {
                document.write("<script id=__ie_cf_onload defer src=javascript:void(0)><\/script>");
                var B = document.getElementById("__ie_cf_onload");
                B.onreadystatechange = function() {
                    if (this.readyState == "complete") {
                        E.onloadInit()
                    }
                }
            }
        }
        window.addEvent("load", E.onloadInit, false)
    },
    onloadInit: function() {
        if (arguments.callee.done) {
            return
        }
        for (var C = 0; C < ContentFlowGlobal.loadAddOns.length; C++) {
            var A = ContentFlowGlobal.loadAddOns[C];
            if (!ContentFlowGlobal.AddOns[A]) {
                var G = ContentFlowGlobal;
                window.setTimeout(G.onloadInit, 10);
                return
            }
        }
        arguments.callee.done = true;
        if (window.Element && Element.implement && document.all && !window.opera) {
            for (var H in window.CFElement.prototype) {
                if (!window.Element.prototype[H]) {
                    var F = {};
                    F[H] = window.CFElement.prototype[H];
                    Element.implement(F)
                }
            }
        }
        for (var C = 0; C < ContentFlowGlobal.Flows.length; C++) {
            ContentFlowGlobal.Flows[C].init()
        }
        var D = document.getElementsByTagName("div");
        DIVS: for (var C = 0; C < D.length; C++) {
            if (D[C].className.match(/\bContentFlow\b/)) {
                for (var B = 0; B < ContentFlowGlobal.Flows.length; B++) {
                    if (D[C] == ContentFlowGlobal.Flows[B].Container) {
                        continue DIVS
                    }
                }
                var E = new ContentFlow(D[C], {}, false);
                E.init()
            }
        }
    }
};
ContentFlowGlobal.initPath();
var ContentFlowAddOn = function(B, A, C) {
    if (typeof C == "undefined" || C != false) {
        ContentFlowGlobal.AddOns[B] = this
    }
    this.name = B;
    if (!A) {
        A = {}
    }
    this.methods = A;
    this.conf = {};
    if (this.methods.conf) {
        this.setConfig(this.methods.conf);
        delete this.methods.conf
    }
    this.scriptpath = ContentFlowGlobal.AddOnBaseDir;
    if (A.init) {
        var D = A.init.bind(this);
        D(this)
    }
};
ContentFlowAddOn.prototype = {
    Browser: ContentFlowGlobal.Browser,
    addScript: ContentFlowGlobal.addScript,
    addScripts: ContentFlowGlobal.addScripts,
    addStylesheet: function(A) {
        if (!A) {
            A = this.scriptpath + "ContentFlowAddOn_" + this.name + ".css"
        }
        ContentFlowGlobal.addStylesheet(A)
    },
    addStylesheets: ContentFlowGlobal.addStylesheets,
    setConfig: function(A) {
        for (var B in A) {
            this.conf[B] = A[B]
        }
    },
    _init: function(A) {
        if (this.methods.ContentFlowConf) {
            A.setConfig(this.methods.ContentFlowConf)
        }
    }
};
var ContentFlowGUIElement = function(A, B) {
    B.setDimensions = function() {
        this.dimensions = this.getDimensions();
        this.center = {
            x: this.dimensions.width / 2,
            y: this.dimensions.height / 2
        };
        this.position = this.findPos()
    };
    B.addObserver = function(D, E) {
        var C = this.eventMethod = E.bind(A);
        this.observedEvent = D;
        this.addEvent(D, C, false)
    };
    B.makeDraggable = function(E, D, F) {
        this.stopDrag = function(H) {
            if (!H) {
                var H = window.event
            }
            if (this.Browser.iPhone) {
                window.removeEvent("touchemove", E, false);
                if (!this.ontochmove) {
                    var G = H.target;
                    if (G.firstChild) {
                        G = G.firstChild
                    }
                    var I = document.createEvent("MouseEvents");
                    I.initEvent("click", true, true);
                    G.dispatchEvent(I)
                }
            }
            else {
                window.removeEvent("mousemove", E, false)
            }
            F(H)
        }.bind(this);
        this.initDrag = function(G) {
            if (!G) {
                var G = window.event
            }
            var H = G;
            if (G.touches) {
                H = G.touches[0]
            }
            this.mouseX = H.clientX;
            this.mouseY = H.clientY;
            D(G)
        } .bind(this);
        this.startDrag = function(I) {
            if (!I) {
                var I = window.event
            }
            var G = this.stopDrag;
            if (this.Browser.iPhone) {
                var H = this;
                H.ontouchmove = false;
                window.addEvent("touchmove", function(J) {
                    H.ontouchmove = true;
                    E(J)
                }, false);
                I.preventDefault();
                window.addEvent("touchend", G, false)
            }
            else {
                window.addEvent("mousemove", E, false);
                window.addEvent("mouseup", G, false)
            }
            if (I.preventDefault) {
                I.preventDefault()
            }
        } .bind(this);
        var C = this.startDrag;
        if (this.Browser.iPhone) {
            this.addEventListener("touchstart", C, false)
        }
        else {
            this.addEvent("mousedown", C, false)
        }
    };
    B.Browser = ContentFlowGlobal.Browser;
    $CF(B).setDimensions();
    return B
};
var ContentFlowItem = function(C, D, E) {
    this.CFobj = C;
    this._activeElement = C.conf.activeElement;
    this.pre = null;
    this.next = null;
    this.clickItem = function(M) {
        if (!M) {
            var M = window.event
        }
        var K = M.target ? M.target : M.srcElement;
        var J = K.itemIndex ? K.itemIndex : K.parentNode.itemIndex;
        var L = this.items[J];
        if (this._activeItem == L) {
            this.conf.onclickActiveItem(L)
        }
        else {
            if (this.conf.onclickInactiveItem(L) != false) {
                this.moveToIndex(J)
            }
        }
    } .bind(C), this.setIndex = function(J) {
        this.index = J;
        this.element.itemIndex = J
    };
    this.getIndex = function() {
        return this.index
    };
    if ($CF(D).nodeName == "IMG") {
        var A = document.createElement("div");
        A.className = "item";
        var I = D.parentNode.replaceChild(A, D);
        I.className = "content";
        A.appendChild(I);
        if (D.title) {
            var F = document.createElement("div");
            F.className = "caption";
            F.innerHTML = D.title; 
            A.appendChild(F) } D = A
        }
        this.element = $CF(D);
        this.item = D;
        if (typeof E != "undefined") {
            this.setIndex(E)
        }
        this.content = this.element.getChildrenByClassName("content")[0];
        this.caption = this.element.getChildrenByClassName("caption")[0];
        this.label = this.element.getChildrenByClassName("label")[0];
        if (this.content.nodeName == "IMG") {
            C._imagesToLoad++; var B = function() {
                C._imagesToLoad--;
                this.image = this.content;
                this.setImageFormat(this.image);
                if (C.conf.reflectionHeight > 0) {
                    this.addReflection()
                }
                this.initClick();
                C._addItemCueProcess(true)
            } .bind(this);
            if (this.content.complete && this.content.width > 0) {
                window.setTimeout(B, 100)
            }
            else {
                if (this.Browser.IE && !this.content.onload) {
                    var H = this;
                    var G = window.setInterval(function() {
                        if (H.content.complete && H.content.width > 0) {
                            window.clearInterval(G);
                            B()
                        }
                    }, 10)
                }
                else {
                    this.content.onload = window.setTimeout(B, 100)
                }
            }
        }
        else {
            this.initClick();
            C._addItemCueProcess(true)
        }
    };
    ContentFlowItem.prototype = {
        Browser: ContentFlowGlobal.Browser,
        makeActive: function() {
            this.element.addClassName("active");
            this.CFobj.conf.onMakeActive(this)
        },
        makeInactive: function() {
            this.element.removeClassName("active");
            this.CFobj.conf.onMakeInactive(this)
        },
        initClick: function() {
            var A = this.clickItem;
            this[this._activeElement].addEvent("click", A, false)
        },
        setImageFormat: function(A) {
            if (this.Browser.IE6 || this.Browser.IE7) {
                A.style.width = "auto"
            }
            A.origProportion = A.width / A.height;
            //alert(A.width);
            //alert(A.height);
            //A.setAttribute("origProportion", A.width / A.height);
            A.setAttribute("origProportion", .88);
            if (this.Browser.IE6 || this.Browser.IE7) {
                A.style.width = ""
            }
            if (A.origProportion <= 1) {
                A.addClassName("portray")
            }
            else {
                A.addClassName("landscape")
            }
        },
        addReflection: function() {
            var F = this.CFobj;
            var S;
            var K = this.content;
            if (this.Browser.IE) {
                var Q = "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
                if (F._reflectionColorRGB) {
                    if (F.conf.reflectionColor == "transparent") {
                        var N = S = this.reflection = document.createElement("img");
                        S.src = K.src
                    }
                    else {
                        S = this.reflection = document.createElement("div");
                        var N = document.createElement("img");
                        N.src = K.src;
                        S.width = N.width;
                        S.height = N.height;
                        //N.style.width = "100%"; 
                        //N.style.height = "100%";
                        var M = F._reflectionColorRGB;
                        S.style.backgroundColor = "#" + M.hR + M.hG + M.hB;
                        S.appendChild(N)
                    }
                    Q += " progid:DXImageTransform.Microsoft.Alpha(opacity=0, finishOpacity=50, style=1, finishX=0, startY=" + F.conf.reflectionHeight * 100 + " finishY=0)"
                }
                else {
                    var N = S = this.reflection = document.createElement("img");
                    S.src = K.src
                }
                Q += " progid:DXImageTransform.Microsoft.Matrix(M11=1, M12=0, M21=0, M22=" + 1 / F.conf.reflectionHeight + ")";
                if (ContentFlowGlobal.Browser.IE6) {
                    if (K.src.match(/\.png$/)) {
                        K.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + K.src + "', sizingMethod=scale )";
                        K.filterString = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + K.src + "', sizingMethod=scale )";
                        Q += " progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + K.src + "', sizingMethod=scale )";
                        K.origSrc = K.src;
                        K.src = "img/blank.gif";
                        N.src = "img/blank.gif"
                    }
                }
                S.filterString = Q;
                N.style.filter = Q
            }
            else {
                if (F._reflectionWithinImage) {
                    var D = this.canvas = $CF(document.createElement("canvas"))
                }
                else {
                    var D = S = this.reflection = document.createElement("canvas")
                }
                if (D.getContext) {
                    if (F._reflectionWithinImage) {
                        for (var R = 0; R < K.attributes.length; R++) {
                            D.setAttributeNode(K.attributes[R].cloneNode(true))
                        }
                    }
                    var C = D.getContext("2d");
                    var P = F.maxHeight;
                    var I = F._scaleImageSize(this, {
                        width: P, height: P
                    }, P);
                    var L = I.width;
                    var J = I.height;
                    if (F._reflectionWithinImage) {
                        D.width = L;
                        D.height = J;
                        this.setImageFormat(D);
                        D.height = J * (1 + F.conf.reflectionHeight + F.conf.reflectionGap)
                    }
                    else {
                        D.width = L;
                        D.height = J * F.conf.reflectionHeight
                    }
                    C.save();
                    if (F._reflectionWithinImage) {
                        C.drawImage(K, 0, 0, L, J)
                    }
                    if (F._reflectionWithinImage) {
                        var O = J * (1 + F.conf.reflectionGap / 2) * 2
                    }
                    else {
                        var O = K.height
                    }
                    O -= 1;
                    C.translate(0, O);
                    C.scale(1, -1);
                    C.drawImage(K, 0, 0, L, J);
                    C.restore();
                    if (F._reflectionColorRGB) {
                        var B = C.createLinearGradient(0, 0, 0, D.height);
                        var E = [0, 0.5, 1];
                        if (F._reflectionColor == "transparent") {
                            C.globalCompositeOperation = "destination-in";
                            E = [1, 0.5, 0]
                        }
                        var G = F._reflectionColorRGB.iR;
                        var H = F._reflectionColorRGB.iG;
                        var A = F._reflectionColorRGB.iB;
                        if (F._reflectionWithinImage) {
                            B.addColorStop(0, "rgba(" + G + "," + H + "," + A + "," + E[0] + ")");
                            B.addColorStop(J / D.height, "rgba(" + G + "," + H + "," + A + "," + E[0] + ")");
                            B.addColorStop(J / D.height, "rgba(" + G + "," + H + "," + A + "," + E[1] + ")")
                        }
                        else {
                            B.addColorStop(0, "rgba(" + G + "," + H + "," + A + "," + E[1] + ")")
                        }
                        B.addColorStop(1, "rgba(" + G + "," + H + "," + A + "," + E[2] + ")");
                        C.fillStyle = B;
                        C.fillRect(0, 0, D.width, D.height)
                    }
                    if (F._reflectionWithinImage) {
                        K.parentNode.replaceChild(D, K);
                        this.content = D;
                        this.origContent = D;
                        delete this.image
                    }
                }
                else {
                    F._reflectionWithinImage = false;
                    delete this.reflection
                }
            }
            if (S) {
                S.className = "reflection";
                this.element.appendChild(S);
                if (this.caption) {
                    this.element.appendChild(this.caption)
                }
            }
        }
    };
var ContentFlow = function(A, B) {
    if (A) {
        ContentFlowGlobal.Flows.push(this);
        this.Container = A;
        this._userConf = B ? B : {};
        this.conf = {};
        this._loadedAddOns = new Array()
    }
    else {
        throw ("ContentFlow ERROR: No flow container node or id given")
    }
};
ContentFlow.prototype = {
    _imagesToLoad: 0,
    _activeItem: 0,
    _currentPosition: 0,
    _targetPosition: 0,
    _stepLock: false,
    _millisecondsPerStep: 40,
    _reflectionWithinImage: true,
    Browser: ContentFlowGlobal.Browser,
    _defaultConf: {
    useAddOns: "all",
        biggestItemPos: 0,
        loadingTimeout: 30000,
        activeElement: "content",
        maxItemHeight: 0,
        scaleFactor: 1,
        scaleFactorLandscape: 1.33,
        scaleFactorPortrait: 1,
        fixItemSize: false,
        relativeItemPosition: "top center",
        circularFlow: true,
        verticalFlow: false,
        visibleItems: -1,
        endOpacity: 1,
        startItem: "center",
        scrollInFrom: "pre",
        flowSpeedFactor: 1,
        flowDragFriction: 1,
        scrollWheelSpeed: 1,
        keys: { 
            13: function() {
                this.conf.onclickActiveItem(this._activeItem)
            },
            37: function() {
                this.moveTo("pre")
            },
            38: function() {
                this.moveTo("visibleNext")
            },
            39: function() {
                this.moveTo("next")
            },
            40: function() {
                this.moveTo("visiblePre")
            }
        },
        reflectionColor: "transparent",
        reflectionHeight: 0,
        reflectionGap: 0,
        onInit: function() { },
        onclickInactiveItem: function(A) { },
        onclickActiveItem: function(B) {
            var A, C;
            if (A = B.content.getAttribute("href")) {
                C = B.content.getAttribute("target")
            }
            else {
                if (A = B.element.getAttribute("href")) {
                    C = B.element.getAttribute("target")
                }
                else {
                    if (A = B.content.getAttribute("src")) {
                        C = B.content.getAttribute("target")
                    }
                }
            }
            if (A) {
                if (C) {
                    window.open(A, C).focus()
                }
                else {
                    window.location.href = A
                }
            }
        },
        onMakeInactive: function(A) { },
        onMakeActive: function(A) { },
        onReachTarget: function(A) { },
        onMoveTo: function(A) { },
        onDrawItem: function(A) { },
        onclickPreButton: function(A) {
            this.moveToIndex("pre");
            return Event.stop(A)
        },
        onclickNextButton: function(A) {
            this.moveToIndex("next");
            return Event.stop(A)
        },
        calcStepWidth: function(D) {
            var C = this.conf.visibleItems;
            var A = this.items.length;
            A = A == 0 ? 1 : A;
            if (Math.abs(D) > C) {
                if (D > 0) {
                    var B = D - C
                }
                else {
                    var B = D + C
                }
            }
            else {
                if (C >= this.items.length) {
                    var B = D / A
                }
                else {
                    var B = D * (C / A)
                }
            }
            return B
        },
        calcSize: function(D) {
            var B = D.relativePosition;
            var C = 1 / (Math.abs(B) + 1);
            var A = C;
            return { width: A, height: C }
        },
        calcCoordinates: function(C) {
            var B = C.relativePosition;
            var E = this.conf.visibleItems;
            var D = 1 - 1 / Math.exp(Math.abs(B) * 0.75);
            var A = C.side * E / (E + 1) * D;
            var F = 1; return { x: A, y: F }
        },
        calcZIndex: function(A) {
            return -Math.abs(A.relativePositionNormed)
        },
        calcFontSize: function(A) {
            return A.size.height
        },
        calcOpacity: function(A) {
            return Math.max(1 - ((1 - this.conf.endOpacity) * Math.sqrt(Math.abs(A.relativePositionNormed))), this.conf.endOpacity)
        }
    },
    _checkIndex: function(A) {
        A = Math.max(A, 0);
        A = Math.min(A, this.itemsLastIndex);
        return A
    },
    _setLastIndex: function() {
        this.itemsLastIndex = this.items.length - 1
    },
    _getItemByIndex: function(A) {
        return this.items[this._checkIndex(A)]
    },
    _getItemByPosition: function(A) {
        return this._getItemByIndex(this._getIndexByPosition(A))
    },
    _getPositionByIndex: function(B) {
        if (!this.conf.circularFlow) {
            return this._checkIndex(B)
        }
        var A = this._getIndexByPosition(this._currentPosition);
        var C = B - A;
        if (Math.abs(C) > C + this.items.length) {
            C += this.items.length
        }
        else {
            if (Math.abs(C) > (Math.abs(C - this.items.length))) {
                C -= this.items.length
            }
        }
        return this._currentPosition + C
    },
    _getIndexByPosition: function(A) {
        if (A < 0)
            { var C = 0 }
        else {
            var C = 1
        }
        var B = (Math.round(A) + C) % this.items.length;
        if (B > 0)
            { B -= C }
        else {
            if (B < 0) {
                B += this.items.length - C
            }
            else {
                if (A < 0) {
                    B = 0
                }
                else {
                    B = this.items.length - 1
                }
            }
        }
        return B
    },
    _getIndexByKeyWord: function(B, D, A) {
        if (D) {
            var C = D
        }
        else {
            if (this._activeItem) {
                var C = this._activeItem.index
            }
            else {
                var C = 0
            }
        }
        if (isNaN(B)) {
            switch (B) {
                case "first":
                case "start":
                    C = 0;
                    break;
                case "last":
                case "end":
                    C = this.itemsLastIndex;
                    break;
                case "middle":
                case "center":
                    C = Math.round(this.itemsLastIndex / 2);
                    break;
                case "right":
                case "next":
                    C += 1;
                    break;
                case "left":
                case "pre":
                case "previous":
                    C -= 1;
                    break;
                case "visible":
                case "visiblePre":
                case "visibleLeft":
                    C -= this.conf.visibleItems;
                    break;
                case "visibleNext":
                case "visibleRight":
                    C += this.conf.visibleItems;
                    break;
                default: C = C
            }
        }
        else {
            C = B
        }
        if (A != false) {
            C = this._checkIndex(C)
        }
        return C
    },
    _setCaptionLabel: function(A) {
        if (this.Position && !this.Slider.locked) {
            this.Position.setLabel(A)
        }
        this._setGlobalCaption()
    },
    getAddOnConf: function(A) {
        return ContentFlowGlobal.getAddOnConf(A)
    },
    setAddOnConf: function(B, A) {
        ContentFlowGlobal.setAddOnConf(B, A)
    },
    init: function() {
        if (this.isInit) {
            return
        }
        this._init()
    },
    setConfig: function(A) {
        if (!A) {
            return
        }
        var E = this._defaultConf;
        for (var F in A) {
            if (E[F] == "undefined") {
                continue
            }
            switch (F) {
                case "scrollInFrom":
                case "startItem":
                    if (typeof (A[F]) == "number" || typeof (A[F]) == "string") {
                        this.conf[F] = A[F]
                    }
                    break;
                default:
                    if (typeof (E[F] == A[F])) {
                        if (typeof A[F] == "function") {
                            this.conf[F] = A[F].bind(this)
                        }
                        else {
                            this.conf[F] = A[F]
                        }
                    }
            }
        }
        switch (this.conf.reflectionColor) {
            case this.conf.reflectionColor.search(/#[0-9a-fA-F]{6}/) >= 0 ? this.conf.reflectionColor : this.conf.reflectionColor + "x": this._reflectionColorRGB = { hR: this.conf.reflectionColor.slice(1, 3), hG: this.conf.reflectionColor.slice(3, 5), hB: this.conf.reflectionColor.slice(5, 7), iR: parseInt(this.conf.reflectionColor.slice(1, 3), 16), iG: parseInt(this.conf.reflectionColor.slice(3, 5), 16), iB: parseInt(this.conf.reflectionColor.slice(5, 7), 16) }; break; case "none": case "transparent": default: this._reflectionColor = "transparent"; this._reflectionColorRGB = { hR: 0, hG: 0, hB: 0, iR: 0, iG: 0, iB: 0 }; break
        }
        if (this.items) {
            if (this.conf.visibleItems < 0) {
                this.conf.visibleItems = Math.round(Math.sqrt(this.items.length))
            }
            this.conf.visibleItems = Math.min(this.conf.visibleItems, this.items.length - 1)
        }
        if (this.conf.relativeItemPosition) {
            var C = {
                x: {
                    left: function(J) {
                        return -1
                    },
                    center: function(J) {
                        return 0
                    },
                    right: function(J) {
                        return 1
                    }
                },
                y: {
                    top: function(J) {
                        return -1
                    },
                    center: function(J) {
                    return 0
                    },
                    bottom: function(J) {
                        return 1
                    }
                }
            };
            var I = this.conf.relativeItemPosition;
            I = I.replace(/above/, "top").replace(/below/, "bottom");
            var H, G = null;
            H = I.match(/left|right/);
            G = I.match(/top|bottom/);
            c = I.match(/center/);
            if (!H) {
                if (c) {
                    H = "center"
                }
                else {
                    H = "center"
                }
            }
            if (!G) {
                if (c) {
                    G = "center"
                }
                else {
                    G = "top"
                }
            }
            var D = C.x[H];
            var B = C.y[G];
            this.conf.calcRelativeItemPosition = function(K) {
                var J = D(K.size);
                var L = B(K.size);
                return { x: J, y: L
            }
        };
        this.conf.relativeItemPosition = null
    }
    if (this._reflectionType && this._reflectionType != "clientside") {
        this.conf.reflectionHeight = 0
    }
},
getItem:function(A){return this.items[this._checkIndex(Math.round(A))]},getActiveItem:function(){return this._activeItem},getNumberOfItems:function(){return this.items.length},resize:function(){this._initSizes();this._initStep()},moveToPosition:function(B,A){if(!this.conf.circularFlow){B=this._checkIndex(B)}this._targetPosition=B;this.conf.onMoveTo(this._getItemByPosition(B));this._initStep(false,A)},moveToIndex:function(A){this._targetPosition=Math.round(this._getPositionByIndex(this._getIndexByKeyWord(A,this._activeItem.index,!this.conf.circularFlow)));this.conf.onMoveTo(this._getItemByPosition(this._targetPosition));this._initStep()},moveToItem:function(B){var A;if(B.itemIndex){A=B.itemIndex}else{A=B.index}this.moveToIndex(A)},moveTo:function(A){if(typeof A=="object"){this.moveToItem(A)}else{if(isNaN(A)||(A==Math.floor(A)&&A<this.items.length)){this.moveToIndex(A)}else{this.moveToPosition(A)}}},_addItemCue:[],_addItemCueProcess:function(C){var D=this._addItemCue;if(C==true){D.shift()}if(D.length>0&&!D[0].p){D[0].p=true;var A=this;var B=D.length>5?1:40;window.setTimeout(function(){A._addItem(D[0].el,D[0].i)},B)}},addItem:function(B,A){this._addItemCue.push({el:B,i:A,p:false});if(this._addItemCue.length==1){this._addItemCueProcess()}},_addItem:function(C,A){if(typeof A=="string"){switch(A){case"first":case"start":A=0;break;case"last":case"end":A=isNaN(this.itemsLastIndex)?0:this.itemsLastIndex;A+=1;break;default:A=this._getIndexByKeyWord(A)}}A=Math.max(A,0);A=Math.min(A,this.itemsLastIndex+1);A=isNaN(A)?0:A;this.Flow.appendChild(C);var D=new ContentFlowItem(this,C,A);if(this.items.length==0){this.resize();if(this.conf.circularFlow){D.pre=D;D.next=D}}else{if(A==this.itemsLastIndex+1){D.pre=this.items[this.itemsLastIndex];D.next=D.pre.next}else{D.next=this.items[A];D.pre=D.next.pre}if(D.pre){D.pre.next=D}if(D.next){D.next.pre=D}}this.items.splice(A,0,D);for(var B=A;B<this.items.length;B++){this.items[B].setIndex(B)}this._setLastIndex();if(this.conf.origVisibleItems<0){this.conf.visibleItems=Math.round(Math.sqrt(this.items.length))}this.conf.visibleItems=Math.min(this.conf.visibleItems,this.items.length-1);if(Math.round(this._getPositionByIndex(A))<=Math.round(this._targetPosition)){this._targetPosition++;if(!this.conf.circularFlow){this._targetPosition=Math.min(this._targetPosition,this.itemsLastIndex)}}if(this._getPositionByIndex(A)<=this._currentPosition){this._currentPosition++;if(!this.conf.circularFlow){this._currentPosition=Math.min(this._currentPosition,this.itemsLastIndex)}}var E=this;window.setTimeout(function(){if(E.items.length==1){E._currentPosition=-0.01;E._targetPosition=0;E.resize()}else{E._initStep()}},100);return A},rmItem:function(A){if(A=="undefined"){A=this._activeItem.index}A=this._getIndexByKeyWord(A);if(!this.items[A]){return null}var D=this.items[A];if(D.pre){D.pre.next=D.next}if(D.next){D.next.pre=D.pre}this.items.splice(A,1);for(var B=A;B<this.items.length;B++){this.items[B].setIndex(B)}this._setLastIndex();if(Math.round(this._getPositionByIndex(A))<Math.round(this._targetPosition)){this._targetPosition--;if(!this.conf.circularFlow){this._targetPosition=this._checkIndex(this._targetPosition)}}if(this._getPositionByIndex(A)<this._currentPosition){this._currentPosition--;if(!this.conf.circularFlow){this._currentPosition=this._checkIndex(this._currentPosition)}}this._activeItem=this._getItemByPosition(this._currentPosition);var C=D.element.parentNode.removeChild(D.element);var E=this;window.setTimeout(function(){E._initStep()},10);return C},_init:function(){if(typeof (this.Container)=="string"){var B=document.getElementById(this.Container);if(B){this.Container=B}else{throw ("ContentFlow ERROR: No element with id '"+this.Container+"' found!");return }}$CF(this.Container).addClassName("ContentFlow");var A=$CF(this.Container).getChildrenByClassName("flow")[0];if(!A){throw ("ContentFlow ERROR: No element with class'flow' found!");return }this.Flow=new ContentFlowGUIElement(this,A);var M=this.Container.getChildrenByClassName("scrollbar")[0];if(M){this.Scrollbar=new ContentFlowGUIElement(this,M);var F=this.Scrollbar.getChildrenByClassName("slider")[0];if(F){this.Slider=new ContentFlowGUIElement(this,F);var H=this.Slider.getChildrenByClassName("position")[0];if(H){this.Position=new ContentFlowGUIElement(this,H)}}}this.setConfig(this._defaultConf);this._initAddOns();this.setConfig(this._userConf);this._initSizes();var J=this.Flow.getChildrenByClassName("item");this.items=new Array();for(var G=0;G<J.length;G++){var K=this.items[G]=new ContentFlowItem(this,J[G],G);if(G>0){K.pre=this.items[G-1];K.pre.next=K}}this._setLastIndex();if(this.conf.circularFlow&&this.items.length>0){var L=this.items[0];L.pre=this.items[this.items.length-1];L.pre.next=L}this._initGUI();if(this._activeElement!="content"){this._activeElement="element"}this.conf.origVisibleItems=this.conf.visibleItems;if(this.conf.visibleItems<0){this.conf.visibleItems=Math.round(Math.sqrt(this.items.length))}this.conf.visibleItems=Math.min(this.conf.visibleItems,this.items.length-1);this._targetPosition=this._getIndexByKeyWord(this.conf.startItem,0);var I=this._getIndexByKeyWord(this.conf.scrollInFrom,this._targetPosition);switch(this.conf.scrollInFrom){case"next":case"right":I-=0.5;break;case"pre":case"previous":case"left":I+=0.5;break}this._currentPosition=I;var E=new Date();var D=this;var C=window.setInterval(function(){if(D._imagesToLoad==0||new Date()-E>D._loadingTimeout){clearInterval(C);D._activeItem=D.getItem(D._currentPosition);if(D._activeItem){D._activeItem.makeActive();D._setCaptionLabel(D._activeItem.index)}D.Flow.style.visibility="visible";if(D.loadIndicator){D.loadIndicator.style.display="none"}if(D.Scrollbar){D.Scrollbar.style.visibility="visible"}D.resize();for(var O=0;O<D._loadedAddOns.length;O++){var N=ContentFlowGlobal.AddOns[D._loadedAddOns[O]];if(N.methods.afterContentFlowInit){N.methods.afterContentFlowInit(D)}}D.conf.onInit()}},10);this.isInit=true},_initAddOns:function(){var C=[];if(this._userConf.useAddOns){if(typeof this._userConf.useAddOns=="string"){C=this._userConf.useAddOns.split(" ")}else{if(typeof this._userConf.useAddOns=="array"){C=this._userConf.useAddOns}}}else{if(this.Container.getAttribute("useAddOns")){C=this.Container.getAttribute("useAddOns").split(" ")}else{C=this.conf.useAddOns.split(" ")}}for(var B=0;B<C.length;B++){if(C[B]=="none"){C=new Array();break}else{if(C[B]=="all"){C=new Array();for(var A in ContentFlowGlobal.AddOns){C.push(A)}break}}}for(var B=0;B<C.length;B++){var A=ContentFlowGlobal.AddOns[C[B]];if(A){this._loadedAddOns.push(C[B]);A._init(this);this.Container.addClassName("ContentFlowAddOn_"+A.name);if(A.methods.onloadInit){A.methods.onloadInit(this)}}}},_initGUI:function(){var C=this.resize.bind(this);window.addEvent("resize",C,false);var K=this.Container.getElementsByTagName("div");for(var G=0;G<K.length;G++){if($CF(K[G]).hasClassName("preButton")){var F=K[G];var A=this.conf.onclickPreButton;F.addEvent("click",A,false)}else{if(K[G].hasClassName("nextButton")){var I=K[G];var A=this.conf.onclickNextButton;I.addEvent("click",A,false)}}}if(this.conf.scrollWheelSpeed!=0){var J=this._wheel.bind(this);if(window.addEventListener){this.Container.addEventListener("DOMMouseScroll",J,false)}this.Container.onmousewheel=J}var L=this._keyStroke.bind(this);if(this.conf.keys&&!this.Browser.iPhone){if(document.addEventListener){if(!this.Browser.Opera){var D=document.createElement("div");D.addClassName("mouseoverCheckElement");this.Container.appendChild(D);if(this.Browser.WebKit){document.body.addEvent("keydown",function(O){if(D.offsetLeft>0){L(O)}})}else{window.addEvent("keydown",function(O){if(D.offsetLeft>0){L(O)}})}}else{this.Container.addEvent("keydown",L)}}else{this.Container.onkeydown=L}}if(this.conf.flowDragFriction>0){var E=function(R){var U=R;if(R.touches){U=R.touches[0]}var Q=U.clientX;var P=U.clientY;if(this.conf.verticalFlow){var V=P-this.Flow.mouseY;var T=this.Flow.dimensions.height}else{var V=Q-this.Flow.mouseX;var T=this.Flow.dimensions.width}var O=(V/T)*(2*this.conf.visibleItems+1);var S=this._currentPosition-O*2*this.conf.visibleItems/this.conf.flowDragFriction;this.Flow.mouseX=Q;this.Flow.mouseY=P;this.moveToPosition(S,true)}.bind(this);var N=function(){};var H=function(P){var O=Math.round(this._targetPosition);if(Math.abs(O-this._currentPosition)>0.001){this.moveToPosition(O)}}.bind(this);this.Flow.makeDraggable(E,N,H)}if(this.Scrollbar){var M=function(R){if(!R){var R=window.event}if(!this.Scrollbar.clickLocked){var Q=R.clientX;var P=Q-this.Scrollbar.position.left;var O=Math.round(P/this.Scrollbar.dimensions.width*this.itemsLastIndex);this.moveToIndex(O)}else{this.Scrollbar.clickLocked=false}}.bind(this);this.Scrollbar.addObserver("click",M)}if(this.Slider){if(this.Browser.IE6){var B=document.createElement("div");B.className="virtualSlider";this.Slider.appendChild(B)}this.Slider.setPosition=function(O){O=O-Math.floor(O)+this._getIndexByPosition(Math.floor(O));if(Math.round(O)<0){O=this.itemsLastIndex}else{if(O<=0){O=0}else{if(Math.round(O)>this.itemsLastIndex){O=0}else{if(O>=this.itemsLastIndex){O=this.itemsLastIndex}}}}if(this.items.length>1){var P=(O/this.itemsLastIndex)*this.Scrollbar.dimensions.width}else{var P=0.5*this.Scrollbar.dimensions.width}this.Slider.style.left=P-this.Slider.center.x+"px";this.Slider.style.top=this.Scrollbar.center.y-this.Slider.center.y+"px"}.bind(this);var N=function(O){this.Scrollbar.clickLocked=true}.bind(this);var E=function(P){var Q=P;if(P.touches){Q=P.touches[0]}var O=this._checkIndex((Q.clientX-this.Scrollbar.position.left)/this.Scrollbar.dimensions.width*this.itemsLastIndex);this._targetPosition=this._getPositionByIndex(O);this.Slider.setPosition(O);if(this.Position){this.Position.setLabel(O)}this._initStep(true,true)}.bind(this);var H=function(O){this._targetPosition=Math.round(this._targetPosition);this.conf.onMoveTo(this._getItemByPosition(this._targetPosition));this._initStep(true)}.bind(this);this.Slider.makeDraggable(E,N,H)}if(this.Position){this.Position.setLabel=function(O){O=this._checkIndex(Math.round(O));if(this.items&&this.items[O].label){this.Position.innerHTML=this.items[O].label.innerHTML}else{this.Position.innerHTML=O+1}}.bind(this)}this.globalCaption=this.Container.getChildrenByClassName("globalCaption")[0];this.loadIndicator=this.Container.getChildrenByClassName("loadIndicator")[0]},_initSizes:function(A){this._initMaxHeight();var E=this._initScrollbarSize();if(!this.conf.verticalFlow&&this.Container.style.height&&this.Container.style.height!="auto"){this.maxHeight-=E}if(!this._activeItem){return }var D=this._findBiggestItem();var F=this.Flow.findPos();if(this.conf.verticalFlow){this.Flow.style.width=D.width.width+"px";this.Flow.style.height=3*D.width.width*(1+this.conf.reflectionHeight+this.conf.reflectionGap)+"px"}else{this.Flow.style.height=D.height.height+(D.height.top-F.top)+"px"}var C=this.conf.verticalFlow?D.width.width:D.height.height;var B=C/(1+this.conf.reflectionHeight+this.conf.reflectionGap);this.Flow.style.marginBottom=-(C-B)+"px";this.Flow.dimensions=this.Flow.getDimensions();if(!this.Browser.IE6){if(this.conf.verticalFlow&&this.Container.clientWidth<this.Flow.dimensions.width){}else{if(this.Container.clientHeight<this.Flow.dimensions.height){this.Container.style.height=this.Flow.dimensions.height+"px"}}}if(this.conf.verticalFlow){this.Flow.center={x:this.Flow.dimensions.height/2,y:D.width.width/2}}else{this.Flow.center={x:this.Flow.dimensions.width/2,y:D.height.height/2}}},_initScrollbarSize:function(){var C;var I;var F;if(C=this.Scrollbar){C.setDimensions();var B=C.dimensions.height;if(I=this.Slider){I.setDimensions();B+=I.dimensions.height;if(F=this.Position){var K=F.innerHTML;var G=maxW=0;F.style.width="auto";if(this.items){for(var D=0;D<this.items.length;D++){var J=this.items[D];if(J.label){F.innerHTML=J.label.innerHTML}else{F.innerHTML=J.index}var E=F.clientHeight;var H=F.clientWidth;if(E>G){G=E}if(H>maxW){maxW=H}}}else{F.innerHTML="&nbsp;";G=F.clientHeight;maxW=F.clientWidth}F.innerHTML=K;F.setDimensions();F.style.width=maxW+"px";F.style.left=(I.dimensions.width-maxW)/2+"px";var A=F.position.top-I.position.top;if(A>0){A+=-C.dimensions.height+G;C.style.marginBottom=A+"px"}else{A*=-1;C.style.marginTop=A+"px"}B+=A}}}else{B=0}return B},_initMaxHeight:function(){if(this.conf.verticalFlow){var G=screen.width/screen.height;var D=this.Container.style.width;var E=this.Container.clientWidth;var C=this.Flow.style.width;var F=this.Flow.clientWidth;var A=this.Flow.clientHeight}else{var G=screen.height/screen.width;var D=this.Container.style.height;var E=this.Container.clientHeight;var C=this.Flow.style.height;var F=this.Flow.clientHeight;var A=this.Flow.clientWidth}if(this.ContainerOldDim){D=this.ContainerOldDim}if(this.FlowOldDim){C=this.FlowOldDim}this.ContainerOldDim="auto";this.FlowOldDim="auto";if(this.conf.maxItemHeight<=0){this.maxHeight=A/3*G/1*this.conf.scaleFactor;if(this.conf.verticalFlow&&(this.maxHeight==0||this.maxHeight>F)){this.maxHeight=F}if(D&&D!="auto"){var H=this.conf.verticalFlow?0:this.conf.reflectionGap;var B=this.conf.verticalFlow?0:this.conf.reflectionHeight;this.maxHeight=E/(this.conf.scaleFactor*(1+B+H));this.ContainerOldDim=D}else{if(C&&C!="auto"){var H=this.conf.verticalFlow?0:this.conf.reflectionGap;this.maxHeight=F/(this.conf.scaleFactor*(1+this.conf.reflectionHeight+H));this.FlowOldDim=C}}}else{this.maxHeight=this.conf.maxItemHeight}},_findBiggestItem:function(){var G=this._activeItem;var A=G.pre;var B=G.next;var E=maxFlowSize={width:{width:0,left:0,height:0,top:0,item:null,rI:0},height:{width:0,left:0,height:0,top:0,item:null,rI:0}};var F=function(N,J){var M=N.element;M.style.display="block";var O=M.findPos();var L=M.clientHeight;var K=M.clientWidth;if(L+O.top>=E.height.height+E.height.top){E.height.height=L;E.height.top=O.top;E.height.item=N;E.height.rI=J}if(K+O.left>=E.width.width+E.width.left){E.width.width=K;E.width.left=O.left;E.width.item=N;E.width.rI=J}M.style.display="none"};var H=this._currentPosition;this._currentPosition=this.conf.visibleItems+1;for(var C=-this.conf.visibleItems;C<=this.conf.visibleItems;C++){G.element.style.display="none";this._positionItem(G,C);F(G,C)}var D=E.height.rI;for(var C=0;C<this.items.length;C++){var I=this.items[C];I.element.style.display="none";this._positionItem(I,D);F(I,D)}this._currentPosition=H;return E},_keyStroke:function(A){if(!A){var A=window.event}if(A.which){var B=A.which}else{if(A.keyCode){var B=A.keyCode}}if(this.conf.keys[B]){this.conf.keys[B].bind(this)();return Event.stop(A)}else{return true}},_wheel:function(A){if(!A){var A=window.event}var C=0;if(A.wheelDelta){C=A.wheelDelta/120}else{if(A.detail){C=-A.detail/3}}if(C){var B=this._targetPosition;if(C<0){B+=(1*this.conf.scrollWheelSpeed)}else{B-=(1*this.conf.scrollWheelSpeed)}this.moveToPosition(Math.round(B))}return Event.stop(A)},_setGlobalCaption:function(){if(this.globalCaption){this.globalCaption.innerHTML="";if(this._activeItem&&this._activeItem.caption){this.globalCaption.appendChild(this._activeItem.caption.cloneNode(true))}}},_initStep:function(B,A){if(this.Slider){if(B){this.Slider.locked=true}else{this.Slider.locked=false}}this._holdPos=A==true?true:false;if(!this._stepLock){this._stepLock=true;this._step()}},_step:function(){var D=this._targetPosition-this._currentPosition;var C=Math.abs(D);if(C>0.001){this._currentPosition+=this.conf.flowSpeedFactor*this.conf.calcStepWidth(D,C,this.items.length,this.conf.visibleItems);var A=this.items[(this._getIndexByPosition(this._currentPosition))];if(A&&A!=this._activeItem){if(this._activeItem){this._activeItem.makeInactive()}this._activeItem=A;this._activeItem.makeActive();this._setCaptionLabel(this._activeItem.index);if(Math.abs(this._targetPosition-this._currentPosition)<=0.5){this.conf.onReachTarget(this._activeItem)}}this._positionItems();var B=this._step.bind(this);window.setTimeout(B,this._millisecondsPerStep)}else{if(!this._holdPos){if(this.Slider){this.Slider.locked=false}this._currentPosition=Math.round(this._currentPosition);if(this.Position&&!this.Slider.locked&&this._activeItem){this._setCaptionLabel(this._activeItem.index)}this._positionItems();this._stepLock=false}else{this._stepLock=false}}if(this.Slider&&!this.Slider.locked){this.Slider.setPosition(this._currentPosition)}},_positionItems:function(){if(this._lastStart){var E=this._lastStart;while(E){E.element.style.display="none";E=E.next;if(E==this._lastStart){break}if(E&&E.pre==this._lastEnd){break}}}else{this._lastStart=this._activeItem}if(!this._activeItem){return }var C=this._activeItem;var B=C.pre;var D=C.next;this._positionItem(C,0);for(var A=1;A<=this.conf.visibleItems&&2*A<this.items.length;A++){if(B){this._positionItem(B,-A);this._lastStart=B;B=B.pre}if(D){this._positionItem(D,A);this._lastEnd=D;D=D.next}}},_positionItem:function(S,A){var I=this.conf;var N=I.verticalFlow;var E=S.element.style;var L=S.position=this._currentPosition+A;var M=S.relativePosition=Math.round(L)-this._currentPosition;var Q=S.relativePositionNormed=I.visibleItems>0?M/I.visibleItems:0;var B=M<0?-1:1;B*=M==0?0:1;S.side=B;var J=I.calcSize(S);J.height=Math.max(J.height,0);J.width=Math.max(J.width,0);if(S.content.origProportion){J=this._scaleImageSize(S,J)}S.size=J;var P=S.coordinates=I.calcCoordinates(S);var H=S.relativeItemPosition=I.calcRelativeItemPosition(S);var K=S.zIndex=I.calcZIndex(S);var C=S.fontSize=I.calcFontSize(S);var D=S.opacity=I.calcOpacity(S);J.height*=this.maxHeight;J.width*=this.maxHeight;var R=N?J.height:J.width;var O=N?J.width:J.height;var G=this.Flow.center.x*(1+P.x)+(H.x-1)*R/2;var F=this.maxHeight/2*(1+P.y)+(H.y-1)*O/2;E.left=(N?F:G)+"px";E.top=(N?G:F)+"px";this._setItemSize(S,J);if(I.endOpacity!=1){this._setItemOpacity(S)}if(!this.Browser.IE){E.fontSize=(C*100)+"%"}E.zIndex=32768+Math.round(K*this.items.length);I.onDrawItem(S);E.visibility="visible";E.display="block"},_scaleImageSize:function(N,P,I){var E=this.conf.scaleFactorLandscape;var D=this.conf.scaleFactorPortrait;var M=this.conf.verticalFlow;var B=N.content.origProportion;var C=P.width;var L=P.height;var H=N.content;if(M){if(B<=1){if(E!="max"&&E!=1){L*=E;C=Math.min(L*B,I?I:1)}L=C/B}else{if(B>1){if(D=="max"){L=I?I:1}else{if(D!=1){C*=D;L=Math.min(C/B,I?I:1)}else{L=C/B}}C=L*B}}}else{if(B>1){if(E!="max"&&E!=1){C*=E;L=Math.min(C/B,I?I:1)}C=L*B}else{if(B<=1){if(D=="max"){C=I?I:1}else{if(D!=1){L*=D;C=Math.min(L*B,I?I:1)}else{C=L*B}}L=C/B}}}L=isNaN(L)?0:L;C=isNaN(C)?0:C;if(!I&&this.conf.fixItemSize){var A=P.width/P.height;var I=Math.max(P.width,P.height);var O=this._scaleImageSize(N,{width:I,height:I},I);if(A<1){L=O.height/P.height;C=L*B/A}else{C=O.width/P.width;L=C/B*A}var G=L*100;var K=C*100;var J=(1-C)/2*100;var F=(1-L)/A*100*(M?0.5:1);H.style.height=G+"%";if(N.reflection){N.reflection.style.height=G*this.conf.reflectionHeight+"%"}H.style.width=K+"%";if(N.reflection){N.reflection.style.width=K+"%"}H.style.marginLeft=J+"%";if(N.reflection){N.reflection.style.marginLeft=J+"%"}H.style.marginTop=F+"%";N.element.style.overflow="hidden";return P}else{return{width:C,height:L}}},_setItemSize:(function(){if(ContentFlowGlobal.Browser.IE){var A=function(E,C){if(!this.conf.fixItemSize){E.content.style.height=C.height+"px"}else{if(ContentFlowGlobal.Browser.IE6){var D=parseInt(E.content.style.height)/100;E.content.style.height=C.height*D+"px";var B=parseInt(E.content.style.marginTop)/100;E.content.style.marginTop=C.height*B+"px"}}if(E.reflection){var D=parseInt(E.content.style.height);E.reflection.style.height=D*this.conf.reflectionHeight+"px";E.reflection.style.marginTop=D*this.conf.reflectionGap+"px"}E.element.style.width=C.width+"px";E.element.style.height=C.height*(1+this.conf.reflectionHeight+this.conf.reflectionGap)+"px"}}else{var A=function(C,B){if(C.reflection){C.element.style.height=B.height*(1+this.conf.reflectionHeight+this.conf.reflectionGap)+"px";C.reflection.style.marginTop=B.height*this.conf.reflectionGap+"px"}else{if(this._reflectionWithinImage){C.element.style.height=B.height*(1+this.conf.reflectionHeight+this.conf.reflectionGap)+"px"}else{C.element.style.height=B.height+"px"}}C.element.style.width=B.width+"px"}}return A})(),_setItemOpacity:(function(){if(ContentFlowGlobal.Browser.IE6){var A=function(C){if(C.content.origSrc&&C.content.origSrc.match(/\.png$/)){var B=C.content.src;C.content.src=C.content.origSrc;C.content.style.filter=C.content.filterString+" progid:DXImageTransform.Microsoft.BasicImage(opacity="+C.opacity+")";C.content.src=B}else{C.content.style.filter="progid:DXImageTransform.Microsoft.BasicImage(opacity="+C.opacity+")"}if(C.reflection){C.reflection.style.filter=C.reflection.filterString+"progid:DXImageTransform.Microsoft.BasicImage(opacity="+C.opacity+")"}}}else{if(ContentFlowGlobal.Browser.IE){var A=function(B){B.element.style.filter="progid:DXImageTransform.Microsoft.BasicImage(opacity="+B.opacity+")"}}else{var A=function(B){B.element.style.opacity=B.opacity}}}return A})()};if(!Function.bind){Function.prototype.bind=function(A){var B=this;return function(){return B.apply(A,arguments)}}}if(!Math.erf2){Math.erf2=function(A){var B=-(8*(Math.PI-3)/(3*Math.PI*(Math.PI-4)));var C=A*A;var D=1-Math.pow(Math.E,-C*(4/Math.PI+B*C)/(1+B*C));return D}}if(!Math._2PI05){Math._2PI05=Math.sqrt(2*Math.PI)}if(!Math.normDist){Math.normDist=function(A,C,B){if(!C){var C=1}if(!B){var B=0}if(!A){var A=-B}return 1/(C*Math._2PI05)*Math.pow(Math.E,-(A-B)*(A-B)/(2*C*C))}}if(!Math.normedNormDist){Math.normedNormDist=function(A,C,B){return this.normDist(A,C,B)/this.normDist(B,C,B)}}if(!Math.exp){Math.exp=function(A){return Math.pow(Math.E,A)}}if(!Math.ln){Math.ln=Math.log}if(!Math.log2){Math.log2=function(A){return Math.log(A)/Math.LN2}}if(!Math.log10){Math.log10=function(A){return Math.log(A)/Math.LN10}}if(!Math.logerithm){Math.logerithm=function(B,A){if(!A||A==Math.E){return Math.log(B)}else{if(A==2){return Math.log2(B)}else{if(A==10){return Math.log10(B)}else{return Math.log(B)/Math.log(A)}}}}}if(!Event){var Event={}}if(!Event.stop){Event.stop=function(A){A.cancelBubble=true;if(A.preventDefault){A.preventDefault()}if(A.stopPropagation){A.stopPropagation()}return false}}if(document.all&&!window.opera){window.$CF=function(A){if(typeof A=="string"){return window.$CF(document.getElementById(A))}else{if(CFElement.prototype.extend&&A&&!A.extend){CFElement.prototype.extend(A)}}return A}}else{window.$CF=function(A){return A}}if(!window.HTMLElement){CFElement={};CFElement.prototype={};CFElement.prototype.extend=function(A){for(var B in this){if(!A[B]){A[B]=this[B]}}}}else{CFElement=window.HTMLElement}if(!CFElement.findPos){CFElement.prototype.findPos=function(){var B=this;var C=curtop=0;try{if(B.offsetParent){C=B.offsetLeft;curtop=B.offsetTop;while(B=B.offsetParent){C+=B.offsetLeft;curtop+=B.offsetTop}}}catch(A){}return{left:C,top:curtop}}}if(!CFElement.getDimensions){CFElement.prototype.getDimensions=function(){return{width:this.clientWidth,height:this.clientHeight}}}if(!CFElement.hasClassName){CFElement.prototype.hasClassName=function(A){return(new RegExp("\\b"+A+"\\b").test(this.className))}}if(!CFElement.addClassName){CFElement.prototype.addClassName=function(A){if(!this.hasClassName(A)){this.className+=(this.className?" ":"")+A}}}if(!CFElement.removeClassName){CFElement.prototype.removeClassName=function(A){this.className=this.className.replace(new RegExp("\\b"+A+"\\b"),"").replace(/\s\s/g," ")}}if(!CFElement.toggleClassName){CFElement.prototype.toggleClassName=function(A){if(this.hasClassName(A)){this.removeClassName(A)}else{this.addClassName(A)}}}if(!CFElement.getChildrenByClassName){CFElement.prototype.getChildrenByClassName=function(C){var B=new Array();for(var A=0;A<this.childNodes.length;A++){var D=this.childNodes[A];if(D.nodeType==1&&$CF(D).hasClassName(C)){B.push(D)}}return B}}if(!CFElement.addEvent){CFElement.prototype.addEvent=function(B,C,A){if(this.addEventListener){this.addEventListener(B,C,A)}else{this.attachEvent("on"+B,C)}}}if(!CFElement.removeEvent){CFElement.prototype.removeEvent=function(B,C,A){if(this.removeEventListener){this.removeEventListener(B,C,A)}else{this.detachEvent("on"+B,C)}}}if(!window.addEvent){window.addEvent=function(B,C,A){if(this.addEventListener){this.addEventListener(B,C,A)}else{if(B!="load"&&B!="resize"){document.attachEvent("on"+B,C)}else{this.attachEvent("on"+B,C)}}}}if(!window.removeEvent){window.removeEvent=function(B,C,A){if(this.removeEventListener){this.removeEventListener(B,C,A)}else{if(B!="load"&&B!="resize"){document.detachEvent("on"+B,C)}else{this.detachEvent("on"+B,C)}}}}ContentFlowGlobal.init();
