/* 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; A.setAttribute("origProportion", A.width / A.height); 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.5, 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();

