/*
This license text has to stay intact at all times:
fleXcroll Public License Version
Cross Browser Custom Scroll Bar Script by Hesido.
Public version - Free for non-commercial uses.

This script cannot be used in any commercially built
web sites, or in sites that relates to commercial
activities. This script is not for re-distribution.
For licensing options:
Contact Emrah BASKAYA @ www.hesido.com

Derivative works are only allowed for personal uses,
and they cannot be redistributed.

FleXcroll Public Key Code: 20050907122003339
MD5 hash for this license: 9ada3be4d7496200ab2665160807745d

End of license text---
*/
//fleXcroll v1.9.5

var fleXenv = {
   fleXcrollInit : function() {
      this.addTrggr(window, 'load', this.globalInit)}
   , fleXcrollMain : function(f) {
      var g = document, wD = window, nV = navigator;
      if(!g.getElementById ||!g.createElement)return;
      if(typeof(f) == 'string')f = document.getElementById(f);
      if(f == null || nV.userAgent.indexOf('OmniWeb') !=- 1 || ((nV.userAgent.indexOf('AppleWebKit') !=- 1 || nV.userAgent.indexOf('Safari') !=- 1) &&!(typeof(HTMLElement) != "undefined" && HTMLElement.prototype)) || nV.vendor == 'KDE' || (nV.platform.indexOf('Mac') !=- 1 && nV.userAgent.indexOf('MSIE') !=- 1))return;
      if(f.scrollUpdate) {
         f.scrollUpdate();
         return};
      if(!f.id || f.id == '') {
         var h = "flex__", c = 1;
         while(document.getElementById(h + c) != null) {
            c++};
         f.id = h + c}
      var k = f.id;
      f.fleXdata = new Object();
      var l = f.fleXdata;
      l.keyAct = {
         _37 : ['-1s', 0], _38 : [0, '-1s'], _39 : ['1s', 0], _40 : [0, '1s'], _33 : [0, '-1p'], _34 : [0, '1p'], _36 : [0, '-100p'], _35 : [0, '+100p']};
      l.wheelAct = ["-2s", "2s"];
      l.baseAct = ["-2s", "2s"];
      var m = createDiv('contentwrapper', true), mDv = createDiv('mcontentwrapper', true), tDv = createDiv('scrollwrapper', true), pDv = createDiv('copyholder', true);
      var o = createDiv('domfixdiv', true), fDv = createDiv('zoomdetectdiv', true), stdMode = false;
      pDv.sY.border = '1px solid blue';
      pDv.fHide();
      f.style.overflow = 'hidden';
      fDv.sY.fontSize = "12px";
      fDv.sY.height = "1em";
      fDv.sY.width = "1em";
      fDv.sY.position = "absolute";
      fDv.sY.zIndex = "-999";
      fDv.fHide();
      var p = f.offsetHeight, brdWidth = f.offsetWidth;
      copyStyles(f, pDv, '0px', ['border-left-width', 'border-right-width', 'border-top-width', 'border-bottom-width']);
      var q = f.offsetHeight, intlWidth = f.offsetWidth, brdWidthLoss = brdWidth - intlWidth, brdHeightLoss = p - q;
      var s = (f.scrollTop) ? f.scrollTop : 0, oScrollX = (f.scrollLeft) ? f.scrollLeft : 0;
      var t = document.location.href, uReg = /#([^#.]*)$/;
      var u = ['textarea', 'input', 'select'];
      l.scroller = [];
      l.forcedBar = [];
      l.containerSize = l.cntRSize = [];
      l.contentSize = l.cntSize = [];
      l.edge = [false, false];
      l.reqS = [];
      l.barSpace = [0, 0];
      l.forcedHide = [];
      l.forcedPos = [];
      l.paddings = [];
      while(f.firstChild) {
         m.appendChild(f.firstChild)};
      m.appendChild(o);
      f.appendChild(mDv);
      f.appendChild(pDv);
      if(getStyle(f, 'position') != 'absolute')f.style.position = "relative";
      var w = getStyle(f, 'text-align');
      f.style.textAlign = 'left';
      mDv.sY.width = "100px";
      mDv.sY.height = "100px";
      mDv.sY.top = "0px";
      mDv.sY.left = "0px";
      copyStyles(f, pDv, "0px", ['padding-left', 'padding-top', 'padding-right', 'padding-bottom']);
      var x = f.offsetWidth, postHeight = f.offsetHeight, mHeight;
      mHeight = mDv.offsetHeight;
      mDv.sY.borderBottom = "2px solid black";
      if(mDv.offsetHeight > mHeight)stdMode = true;
      mDv.sY.borderBottomWidth = "0px";
      copyStyles(pDv, f, false, ['padding-left', 'padding-top', 'padding-right', 'padding-bottom']);
      findPos(mDv);
      findPos(f);
      l.paddings[0] = mDv.yPos - f.yPos;
      l.paddings[2] = mDv.xPos - f.xPos;
      f.style.paddingTop = getStyle(f, "padding-bottom");
      f.style.paddingLeft = getStyle(f, "padding-right");
      findPos(mDv);
      findPos(f);
      l.paddings[1] = mDv.yPos - f.yPos;
      l.paddings[3] = mDv.xPos - f.xPos;
      f.style.paddingTop = getStyle(pDv, "padding-top");
      f.style.paddingLeft = getStyle(pDv, "padding-left");
      var y = l.paddings[2] + l.paddings[3], padHeightComp = l.paddings[0] + l.paddings[1];
      mDv.style.textAlign = w;
      copyStyles(f, mDv, false, ['padding-left', 'padding-right', 'padding-top', 'padding-bottom']);
      tDv.sY.width = f.offsetWidth + 'px';
      tDv.sY.height = f.offsetHeight + 'px';
      mDv.sY.width = x + 'px';
      mDv.sY.height = postHeight + 'px';
      tDv.sY.position = 'absolute';
      tDv.sY.top = '0px';
      tDv.sY.left = '0px';
      tDv.fHide();
      mDv.appendChild(m);
      f.appendChild(tDv);
      tDv.appendChild(fDv);
      m.sY.position = 'relative';
      mDv.sY.position = 'relative';
      m.sY.top = "0";
      m.sY.width = "100%";
      mDv.sY.overflow = 'hidden';
      mDv.sY.left = "-" + l.paddings[2] + "px";
      mDv.sY.top = "-" + l.paddings[0] + "px";
      l.zTHeight = fDv.offsetHeight;
      l.getContentWidth = function() {
         var a = m.childNodes, maxCWidth = compPad = 0;
         for(var i = 0; i < a.length; i++) {
            if(a[i].offsetWidth) {
               maxCWidth = Math.max(a[i].offsetWidth, maxCWidth)}
            };
         l.cntRSize[0] = ((l.reqS[1] &&!l.forcedHide[1]) || l.forcedBar[1]) ? f.offsetWidth - l.barSpace[0] : f.offsetWidth;
         l.cntSize[0] = maxCWidth + y;
         return l.cntSize[0]};
      l.getContentHeight = function() {
         l.cntRSize[1] = ((l.reqS[0] &&!l.forcedHide[0]) || l.forcedBar[0]) ? f.offsetHeight - l.barSpace[1] : f.offsetHeight;
         l.cntSize[1] = m.offsetHeight + padHeightComp - 2;
         return l.cntSize[1]};
      l.fixIEDispBug = function() {
         m.sY.display = 'none';
         m.sY.display = 'block'};
      l.setWidth = function() {
         mDv.sY.width = (stdMode) ? (l.cntRSize[0] - y - brdWidthLoss) + 'px':l.cntRSize[0] + 'px'};
      l.setHeight = function() {
         mDv.sY.height = (stdMode) ? (l.cntRSize[1] - padHeightComp - brdHeightLoss) + 'px':l.cntRSize[1] + 'px'};
      l.createScrollBars = function() {
         l.getContentWidth();
         l.getContentHeight();
         tDv.vrt = new Array();
         var a = tDv.vrt;
         createScrollBars(a, 'vscroller');
         a.barPadding = [parseInt(getStyle(a.sBr, 'padding-top')), parseInt(getStyle(a.sBr, 'padding-bottom'))];
         a.sBr.sY.padding = '0px';
         a.sBr.curPos = 0;
         a.sBr.vertical = true;
         a.sBr.indx = 1;
         m.vBar = a.sBr;
         prepareScroll(a, 0);
         l.barSpace[0] = a.sDv.offsetWidth;
         l.setWidth();
         tDv.hrz = new Array();
         var b = tDv.hrz;
         createScrollBars(b, 'hscroller');
         b.barPadding = [parseInt(getStyle(b.sBr, 'padding-left')), parseInt(getStyle(b.sBr, 'padding-right'))];
         b.sBr.sY.padding = '0px';
         b.sBr.curPos = 0;
         b.sBr.vertical = false;
         b.sBr.indx = 0;
         m.hBar = b.sBr;
         if(wD.opera)b.sBr.sY.position = 'relative';
         prepareScroll(b, 0);
         l.barSpace[1] = b.sDv.offsetHeight;
         l.setHeight();
         tDv.sY.height = f.offsetHeight + 'px';
         b.jBox = createDiv('scrollerjogbox');
         tDv.appendChild(b.jBox);
         b.jBox.onmousedown = function() {
            b.sBr.scrollBoth = true;
            l.goScroll = b.sBr;
            b.sBr.clicked = true;
            b.sBr.moved = false;
            tDv.vrt.sBr.moved = false;
            fleXenv.addTrggr(g, 'selectstart', retFalse);
            fleXenv.addTrggr(g, 'mousemove', mMoveBar);
            fleXenv.addTrggr(g, 'mouseup', mMouseUp);
            return false}
         };
      l.goScroll = null;
      l.createScrollBars();
      m.removeChild(o);
      if(!this.addChckTrggr(f, 'mousewheel', mWheelProc) ||!this.addChckTrggr(f, 'DOMMouseScroll', mWheelProc)) {
         f.onmousewheel = mWheelProc};
      this.addChckTrggr(f, 'mousewheel', mWheelProc);
      this.addChckTrggr(f, 'DOMMouseScroll', mWheelProc);
      f.setAttribute('tabIndex', '0');
      this.addTrggr(f, 'keydown', function(e) {
         if(f.focusProtect)return; if(!e) {
            var e = wD.event}; var a = e.keyCode; l.pkeY = a; l.mDPosFix(); if(l.keyAct['_' + a] &&!window.opera) {
            f.contentScroll(l.keyAct['_' + a][0], l.keyAct['_' + a][1], true); if(e.preventDefault)e.preventDefault(); return false}
         }
      );
      this.addTrggr(f, 'keypress', function(e) {
         if(f.focusProtect)return; if(!e) {
            var e = wD.event}; var a = e.keyCode; if(l.keyAct['_' + a]) {
            f.contentScroll(l.keyAct['_' + a][0], l.keyAct['_' + a][1], true); if(e.preventDefault)e.preventDefault(); return false}
         }
      );
      this.addTrggr(f, 'keyup', function() {
         l.pkeY = false}
      );
      this.addTrggr(g, 'mouseup', intClear);
      this.addTrggr(f, 'mousedown', function(e) {
         if(!e)e = wD.event; var a = (e.target) ? e.target : (e.srcElement) ? e.srcElement : false; if(!a || (a.className && a.className.match(RegExp("\\bscrollgeneric\\b"))))return; l.inMposX = e.clientX; l.inMposY = e.clientY; pageScrolled(); findPos(f); intClear(); fleXenv.addTrggr(g, 'mousemove', tSelectMouse); l.mTBox = [f.xPos + 10, f.xPos + l.cntRSize[0] - 10, f.yPos + 10, f.yPos + l.cntRSize[1] - 10]}
      );
      function tSelectMouse(e) {
         if(!e)e = wD.event;
         var a = e.clientX, mY = e.clientY, mdX = a + l.xScrld, mdY = mY + l.yScrld;
         l.mOnXEdge = (mdX < l.mTBox[0] || mdX > l.mTBox[1]) ? 1 : 0;
         l.mOnYEdge = (mdY < l.mTBox[2] || mdY > l.mTBox[3]) ? 1 : 0;
         l.xAw = a - l.inMposX;
         l.yAw = mY - l.inMposY;
         l.sXdir = (l.xAw > 40) ? 1 : (l.xAw <- 40) ?- 1 : 0;
         l.sYdir = (l.yAw > 40) ? 1 : (l.yAw <- 40) ?- 1 : 0;
         if((l.sXdir != 0 || l.sYdir != 0) &&!l.tSelectFunc)l.tSelectFunc = wD.setInterval(function() {
            if(l.sXdir == 0 && l.sYdir == 0) {
               wD.clearInterval(l.tSelectFunc); l.tSelectFunc = false; return}; pageScrolled(); if(l.mOnXEdge == 1 || l.mOnYEdge == 1)f.contentScroll((l.sXdir * l.mOnXEdge) + "s", (l.sYdir * l.mOnYEdge) + "s", true)}
         , 45)}
      function intClear() {
         fleXenv.remTrggr(g, 'mousemove', tSelectMouse);
         if(l.tSelectFunc)wD.clearInterval(l.tSelectFunc);
         l.tSelectFunc = false;
         if(l.barClickRetard)wD.clearTimeout(l.barClickRetard);
         if(l.barClickScroll)wD.clearInterval(l.barClickScroll)}
      function pageScrolled() {
         l.xScrld = (wD.pageXOffset) ? wD.pageXOffset : (g.documentElement && g.documentElement.scrollLeft) ? g.documentElement.scrollLeft : 0;
         l.yScrld = (wD.pageYOffset) ? wD.pageYOffset : (g.documentElement && g.documentElement.scrollTop) ? g.documentElement.scrollTop : 0}
      f.scrollUpdate = function(a) {
         if(tDv.getSize[1]() === 0 || tDv.getSize[0]() === 0)return;
         m.sY.padding = '1px';
         var b = l.reqS[0], reqV = l.reqS[1], vBr = tDv.vrt, hBr = tDv.hrz, vUpReq, hUpReq, cPSize = [];
         tDv.sY.width = f.offsetWidth - brdWidthLoss + 'px';
         tDv.sY.height = f.offsetHeight - brdHeightLoss + 'px';
         cPSize[0] = l.cntRSize[0];
         cPSize[1] = l.cntRSize[1];
         l.reqS[0] = l.getContentWidth() > l.cntRSize[0];
         l.reqS[1] = l.getContentHeight() > l.cntRSize[1];
         var c = (b != l.reqS[0] || reqV != l.reqS[1] || cPSize[0] != l.cntRSize[0] || cPSize[1] != l.cntRSize[1]) ? true : false;
         vBr.sDv.setVisibility(l.reqS[1]);
         hBr.sDv.setVisibility(l.reqS[0]);
         vUpReq = (l.reqS[1] || l.forcedBar[1]);
         hUpReq = (l.reqS[0] || l.forcedBar[0]);
         l.getContentWidth();
         l.getContentHeight();
         l.setHeight();
         l.setWidth();
         if(!l.reqS[0] ||!l.reqS[1] || l.forcedHide[0] || l.forcedHide[1])hBr.jBox.fHide();
         else hBr.jBox.fShow();
         if(vUpReq)updateScroll(vBr, (hUpReq &&!l.forcedHide[0]) ? l.barSpace[1] : 0);
         else m.sY.top = "0";
         if(hUpReq)updateScroll(hBr, (vUpReq &&!l.forcedHide[1]) ? l.barSpace[0] : 0);
         else m.sY.left = "0";
         if(c &&!a)f.scrollUpdate(true);
         m.sY.padding = '0px';
         l.edge[0] = l.edge[1] = false};
      f.commitScroll = f.contentScroll = function(a, b, c) {
         var d = [[false, false], [false, false]], Bar;
         if((a || a === 0) && l.scroller[0]) {
            a = calcCScrollVal(a, 0);
            Bar = tDv.hrz.sBr;
            Bar.trgtScrll = (c) ? Math.min(Math.max(Bar.mxScroll, Bar.trgtScrll - a), 0) :- a;
            Bar.contentScrollPos();
            d[0] = [ - Bar.trgtScrll - Bar.targetSkew, - Bar.mxScroll]}
         if((b || b === 0) && l.scroller[1]) {
            b = calcCScrollVal(b, 1);
            Bar = tDv.vrt.sBr;
            Bar.trgtScrll = (c) ? Math.min(Math.max(Bar.mxScroll, Bar.trgtScrll - b), 0) :- b;
            Bar.contentScrollPos();
            d[1] = [ - Bar.trgtScrll - Bar.targetSkew, - Bar.mxScroll]}
         if(!c)l.edge[0] = l.edge[1] = false;
         return d};
      f.scrollToElement = function(a) {
         if(a == null ||!isddvChild(a))return;
         var b = findRCpos(a);
         f.contentScroll(b[0] + l.paddings[2], b[1] + l.paddings[0], false);
         f.contentScroll(0, 0, true)};
      copyStyles(pDv, f, '0px', ['border-left-width', 'border-right-width', 'border-top-width', 'border-bottom-width']);
      f.removeChild(pDv);
      f.scrollTop = 0;
      f.scrollLeft = 0;
      f.fleXcroll = true;
      classChange(f, 'flexcrollactive', false);
      f.scrollUpdate();
      f.contentScroll(oScrollX, s, true);
      if(t.match(uReg)) {
         f.scrollToElement(g.getElementById(t.match(uReg)[1]))}
      tDv.fShow();
      l.sizeChangeDetect = wD.setInterval(function() {
         var n = fDv.offsetHeight; if(n != l.zTHeight) {
            f.scrollUpdate(); l.zTHeight = n}
         }
      , 2500);
      function calcCScrollVal(v, i) {
         var a = v.toString();
         v = parseFloat(a);
         return parseInt((a.match(/p$/))?v*l.cntRSize[i]*0.9:(a.match(/s$/))?v*l.cntRSize[i]*0.1:v)}function camelConv(a){var a=a.split('-'),reT=a[0],i;
         for(i = 1; parT = a[i]; i++) {
            reT += parT.charAt(0).toUpperCase() + parT.substr(1)}
         return reT}
      function getStyle(a, b) {
         if(wD.getComputedStyle)return wD.getComputedStyle(a, null).getPropertyValue(b);
         if(a.currentStyle)return a.currentStyle[camelConv(b)];
         return false};
      function copyStyles(a, b, c, d) {
         var e = new Array();
         for(var i = 0; i < d.length; i++) {
            e[i] = camelConv(d[i]);
            b.style[e[i]] = getStyle(a, d[i], e[i]);
            if(c)a.style[e[i]] = c}
         };
      function createDiv(b, c) {
         var d = g.createElement('div');
         d.id = k + '_' + b;
         d.className = (c) ? b : b + ' scrollgeneric';
         d.getSize = [function() {
            return d.offsetWidth}
         , function() {
            return d.offsetHeight}
         ];
         d.setSize = [function(a) {
            d.sY.width = a}
         , function(a) {
            d.sY.height = a}
         ];
         d.getPos = [function() {
            return getStyle(d, "left")}
         , function() {
            return getStyle(d, "top")}
         ];
         d.setPos = [function(a) {
            d.sY.left = a}
         , function(a) {
            d.sY.top = a}
         ];
         d.fHide = function() {
            d.sY.visibility = "hidden"};
         d.fShow = function(a) {
            d.sY.visibility = (a) ? getStyle(a, 'visibility') : "visible"};
         d.sY = d.style;
         return d};
      function createScrollBars(a, b) {
         a.sDv = createDiv(b + 'base');
         a.sFDv = createDiv(b + 'basebeg');
         a.sSDv = createDiv(b + 'baseend');
         a.sBr = createDiv(b + 'bar');
         a.sFBr = createDiv(b + 'barbeg');
         a.sSBr = createDiv(b + 'barend');
         tDv.appendChild(a.sDv);
         a.sDv.appendChild(a.sBr);
         a.sDv.appendChild(a.sFDv);
         a.sDv.appendChild(a.sSDv);
         a.sBr.appendChild(a.sFBr);
         a.sBr.appendChild(a.sSBr)};
      function prepareScroll(b, c) {
         var d = b.sDv, sBr = b.sBr, i = sBr.indx;
         sBr.minPos = b.barPadding[0];
         sBr.ofstParent = d;
         sBr.mDv = mDv;
         sBr.scrlTrgt = m;
         sBr.targetSkew = 0;
         updateScroll(b, c, true);
         sBr.doScrollPos = function() {
            sBr.curPos = (Math.min(Math.max(sBr.curPos, 0), sBr.maxPos));
            sBr.trgtScrll = parseInt((sBr.curPos / sBr.sRange) * sBr.mxScroll);
            sBr.targetSkew = (sBr.curPos == 0) ? 0 : (sBr.curPos == sBr.maxPos) ? 0 : sBr.targetSkew;
            sBr.setPos[i](sBr.curPos + sBr.minPos + "px");
            m.setPos[i](sBr.trgtScrll + sBr.targetSkew + "px")};
         sBr.contentScrollPos = function() {
            sBr.curPos = parseInt((sBr.trgtScrll * sBr.sRange) / sBr.mxScroll);
            sBr.targetSkew = sBr.trgtScrll - parseInt((sBr.curPos / sBr.sRange) * sBr.mxScroll);
            sBr.curPos = (Math.min(Math.max(sBr.curPos, 0), sBr.maxPos));
            sBr.setPos[i](sBr.curPos + sBr.minPos + "px");
            sBr.setPos[i](sBr.curPos + sBr.minPos + "px");
            m.setPos[i](sBr.trgtScrll + "px")};
         l.barZ = getStyle(sBr, 'z-index');
         sBr.sY.zIndex = (l.barZ == "auto" || l.barZ == "0" || l.barZ == 'normal') ? 2 : l.barZ;
         mDv.sY.zIndex = getStyle(sBr, 'z-index');
         sBr.onmousedown = function() {
            sBr.clicked = true;
            l.goScroll = sBr;
            sBr.scrollBoth = false;
            sBr.moved = false;
            fleXenv.addTrggr(g, 'selectstart', retFalse);
            fleXenv.addTrggr(g, 'mousemove', mMoveBar);
            fleXenv.addTrggr(g, 'mouseup', mMouseUp);
            return false};
         sBr.onmouseover = intClear;
         d.onmousedown = d.ondblclick = function(e) {
            if(!e) {
               var e = wD.event}
            if(e.target && (e.target == b.sFBr || e.target == b.sSBr || e.target == b.sBr))return;
            if(e.srcElement && (e.srcElement == b.sFBr || e.srcElement == b.sSBr || e.srcElement == b.sBr))return;
            var a, mV = [];
            pageScrolled();
            l.mDPosFix();
            findPos(sBr);
            a = (sBr.vertical) ? e.clientY + l.yScrld - sBr.yPos : e.clientX + l.xScrld - sBr.xPos;
            mV[sBr.indx] = (a < 0) ? l.baseAct[0] : l.baseAct[1];
            mV[1 - sBr.indx] = 0;
            f.contentScroll(mV[0], mV[1], true);
            if(e.type != "dblclick") {
               intClear();
               l.barClickRetard = wD.setTimeout(function() {
                  l.barClickScroll = wD.setInterval(function() {
                     f.contentScroll(mV[0], mV[1], true)}
                  , 80)}
               , 425)}
            return false};
         d.setVisibility = function(r) {
            if(r) {
               d.fShow(f);
               l.forcedHide[i] = (getStyle(d, "visibility") == "hidden") ? true : false;
               if(!l.forcedHide[i])sBr.fShow(f);
               else sBr.fHide();
               l.scroller[i] = true;
               classChange(d, "", "flexinactive")}
            else {
               d.fHide();
               sBr.fHide();
               l.forcedBar[i] = (getStyle(d, "visibility") != "hidden") ? true : false;
               l.scroller[i] = false;
               sBr.curPos = 0;
               m.setPos[i]('0px');
               classChange(d, "flexinactive", "")}
            mDv.setPos[1 - i]((l.forcedPos[i] && (r || l.forcedBar[i]) &&!l.forcedHide[i]) ? l.barSpace[1 - i] - l.paddings[i * 2] + "px" : "-" + l.paddings[i * 2] + "px")};
         d.onmouseclick = retFalse};
      function updateScroll(a, b, c) {
         var d = a.sDv, sBr = a.sBr, sFDv = a.sFDv, sFBr = a.sFBr, sSDv = a.sSDv, sSBr = a.sSBr, i = sBr.indx;
         d.setSize[i](tDv.getSize[i]() - b + 'px');
         d.setPos[1 - i](tDv.getSize[1 - i]() - d.getSize[1 - i]() + 'px');
         l.forcedPos[i] = (parseInt(d.getPos[1 - i]()) === 0) ? true : false;
         a.padLoss = a.barPadding[0] + a.barPadding[1];
         a.baseProp = parseInt((d.getSize[i]() - a.padLoss) * 0.75);
         sBr.aSize = Math.min(Math.max(Math.min(parseInt(l.cntRSize[i]/l.cntSize[i]*d.getSize[i]()),a.baseProp),45),a.baseProp);
         sBr.setSize[i](sBr.aSize + 'px');
         sBr.maxPos = d.getSize[i]() - sBr.getSize[i]() - a.padLoss;
         sBr.curPos = Math.min(Math.max(0, sBr.curPos), sBr.maxPos);
         sBr.setPos[i](sBr.curPos + sBr.minPos + 'px');
         sBr.mxScroll = mDv.getSize[i]() - l.cntSize[i];
         sBr.sRange = sBr.maxPos;
         sFDv.setSize[i](d.getSize[i]() - sSDv.getSize[i]() + 'px');
         sFBr.setSize[i](sBr.getSize[i]() - sSBr.getSize[i]() + 'px');
         sSBr.setPos[i](sBr.getSize[i]() - sSBr.getSize[i]() + 'px');
         sSDv.setPos[i](d.getSize[i]() - sSDv.getSize[i]() + 'px');
         if(!c)sBr.doScrollPos();
         l.fixIEDispBug()};
      l.mDPosFix = function() {
         mDv.scrollTop = 0;
         mDv.scrollLeft = 0;
         f.scrollTop = 0;
         f.scrollLeft = 0};
      this.addTrggr(wD, 'load', function() {
         if(f.fleXcroll)f.scrollUpdate()}
      );
      this.addTrggr(wD, 'resize', function() {
         if(f.refreshTimeout)wD.clearTimeout(f.refreshTimeout); f.refreshTimeout = wD.setTimeout(function() {
            if(f.fleXcroll)f.scrollUpdate()}
         , 80)}
      );
      for(var j = 0, inputName; inputName = u[j]; j++) {
         var z = f.getElementsByTagName(inputName);
         for(var i = 0, formItem; formItem = z[i]; i++) {
            fleXenv.addTrggr(formItem, 'focus', function() {
               f.focusProtect = true}
            );
            fleXenv.addTrggr(formItem, 'blur', onblur = function() {
               f.focusProtect = false}
            )}
         };
      function retFalse() {
         return false};
      function mMoveBar(e) {
         if(!e) {
            var e = wD.event};
         var a = l.goScroll, movBr, maxx, xScroll, yScroll;
         if(a == null)return;
         if(!fleXenv.w3events &&!e.button)mMouseUp();
         maxx = (a.scrollBoth) ? 2 : 1;
         for(var i = 0; i < maxx; i++) {
            movBr = (i == 1) ? a.scrlTrgt.vBar : a;
            if(a.clicked) {
               if(!movBr.moved) {
                  l.mDPosFix();
                  findPos(movBr);
                  findPos(movBr.ofstParent);
                  movBr.pointerOffsetY = e.clientY - movBr.yPos;
                  movBr.pointerOffsetX = e.clientX - movBr.xPos;
                  movBr.inCurPos = movBr.curPos;
                  movBr.moved = true};
               movBr.curPos = (movBr.vertical) ? e.clientY - movBr.pointerOffsetY - movBr.ofstParent.yPos - movBr.minPos : e.clientX - movBr.pointerOffsetX - movBr.ofstParent.xPos - movBr.minPos;
               if(a.scrollBoth)movBr.curPos = movBr.curPos + (movBr.curPos - movBr.inCurPos);
               movBr.doScrollPos()}
            else movBr.moved = false}
         };
      function mMouseUp() {
         if(l.goScroll != null) {
            l.goScroll.clicked = false}
         l.goScroll = null;
         fleXenv.remTrggr(g, 'selectstart', retFalse);
         fleXenv.remTrggr(g, 'mousemove', mMoveBar);
         fleXenv.remTrggr(g, 'mouseup', mMouseUp)};
      function mWheelProc(e) {
         if(!e)e = wD.event;
         if(!this.fleXcroll)return;
         var a = this, vEdge, hEdge, hoverH = false, delta = 0, iNDx;
         l.mDPosFix();
         hElem = (e.target) ? e.target : (e.srcElement) ? e.srcElement : this;
         if(hElem.id && hElem.id.match(/_hscroller/))hoverH=true;
         if(e.wheelDelta)delta =- e.wheelDelta;
         if(e.detail)delta = e.detail;
         delta = (delta < 0) ?- 1 :+ 1;
         iNDx = (delta < 0) ? 0 : 1;
         l.edge[1 - iNDx] = false;
         if((l.edge[iNDx] &&!hoverH) || (!l.scroller[0] &&!l.scroller[1]))return;
         if(l.scroller[1] &&!hoverH)scrollState = f.contentScroll(false, l.wheelAct[iNDx], true);
         vEdge =!l.scroller[1] || hoverH || (l.scroller[1] && ((scrollState[1][0] == scrollState[1][1] && delta > 0) || (scrollState[1][0] == 0 && delta < 0)));
         if(l.scroller[0] && (!l.scroller[1] || hoverH))scrollState = f.contentScroll(l.wheelAct[iNDx], false, true);
         hEdge =!l.scroller[0] || (l.scroller[0] && l.scroller[1] && vEdge &&!hoverH) || (l.scroller[0] && ((scrollState[0][0] == scrollState[0][1] && delta > 0) || (scrollState[0][0] == 0 && delta < 0)));
         if(vEdge && hEdge &&!hoverH)l.edge[iNDx] = true;
         else l.edge[iNDx] = false;
         if(e.preventDefault)e.preventDefault();
         return false};
      function isddvChild(a) {
         while(a.parentNode) {
            a = a.parentNode;
            if(a == f)return true}
         return false};
      function findPos(a) {
         var b = a, curleft = curtop = 0;
         var c = "";
         if(b.offsetParent) {
            while(b) {
               curleft += b.offsetLeft;
               curtop += b.offsetTop;
               b = b.offsetParent;
               c += curtop + " "}
            }
         else if(b.x) {
            curleft += b.x;
            curtop += b.y}
         a.xPos = curleft;
         a.yPos = curtop};
      function findRCpos(a) {
         var b = a;
         curleft = curtop = 0;
         while(!b.offsetHeight && b.parentNode && b != m && getStyle(b, 'display') == "inline") {
            b = b.parentNode}
         if(b.offsetParent) {
            while(b != m) {
               curleft += b.offsetLeft;
               curtop += b.offsetTop;
               b = b.offsetParent}
            }
         return[curleft, curtop]};
      function classChange(a, b, c) {
         if(!a.className)a.className = '';
         var d = a.className;
         if(b &&!d.match(RegExp("(^|\\s)" + b + "($|\\s)")))d = d.replace(/(\S$)/,'$1 ')+b;
         if(c)d = d.replace(RegExp("((^|\\s)+" + c + ")+($|\\s)", "g"), '$2').replace(/\s$/,'');
         a.className = d}
      }
   , globalInit : function() {
      if(fleXenv.catchFastInit)window.clearInterval(fleXenv.catchFastInit);
      var d = /#([^#.]*)$/, urlExt = /(.*)#.*$/, matcH, i, anchoR, anchorList = document.getElementsByTagName("a"), urlBase = document.location.href;
      if(urlBase.match(urlExt))urlBase = urlBase.match(urlExt)[1];
      for(i = 0; anchoR = anchorList[i]; i++) {
         if(anchoR.href && anchoR.href.match(d) && anchoR.href.match(urlExt) && urlBase === anchoR.href.match(urlExt)[1]) {
            anchoR.fleXanchor = true;
            fleXenv.addTrggr(anchoR, 'click', function(e) {
               if(!e)e = window.event; var a = (e.srcElement) ? e.srcElement : this; while(!a.fleXanchor && a.parentNode) {
                  a = a.parentNode}; if(!a.fleXanchor)return; var b = document.getElementById(a.href.match(d)[1]), eScroll = false; if(b == null)b = (b = document.getElementsByName(a.href.match(d)[1])[0]) ? b : null; if(b != null) {
                  var c = b; while(c.parentNode) {
                     c = c.parentNode; if(c.scrollToElement) {
                        c.scrollToElement(b); eScroll = c}
                     }; if(eScroll) {
                     if(e.preventDefault)e.preventDefault(); document.location.href = "#" + a.href.match(d)[1]; eScroll.fleXdata.mDPosFix(); return false}
                  }
               }
            )}
         };
      fleXenv.initByClass();
      if(window.onfleXcrollRun)window.onfleXcrollRun()}
   , initByClass : function() {
      if(fleXenv.initialized)return;
      fleXenv.initialized = true;
      var a = fleXenv.getByClassName(document.getElementsByTagName("body")[0], "div", 'flexcroll');
      for(var i = 0, tgDiv; tgDiv = a[i]; i++)fleXenv.fleXcrollMain(tgDiv)}
   , getByClassName : function(a, b, c) {
      if(typeof(a) == 'string')a = document.getElementById(a);
      if(a == null)return false;
      var d = new RegExp("(^|\\s)" + c + "($|\\s)"), clsnm, retArray = [], key = 0;
      var e = a.getElementsByTagName(b);
      for(var i = 0, pusher; pusher = e[i]; i++) {
         if(pusher.className && pusher.className.match(d)) {
            retArray[key] = pusher;
            key++}
         }
      return retArray}
   , catchFastInit : window.setInterval(function() {
      var a = document.getElementById('flexcroll-init'); if(a != null) {
         fleXenv.initByClass(); window.clearInterval(fleXenv.catchFastInit)}
      }
   , 100), addTrggr : function(a, b, c) {
      if(!fleXenv.addChckTrggr(a, b, c) && a.attachEvent) {
         a.attachEvent('on' + b, c)}
      }
   , addChckTrggr : function(a, b, c) {
      if(a.addEventListener) {
         a.addEventListener(b, c, false);
         fleXenv.w3events = true;
         window.addEventListener("unload", function() {
            fleXenv.remTrggr(a, b, c)}
         , false);
         return true}
      else return false}
   , remTrggr : function(a, b, c) {
      if(!fleXenv.remChckTrggr(a, b, c) && a.detachEvent)a.detachEvent('on' + b, c)}
   , remChckTrggr : function(a, b, c) {
      if(a.removeEventListener) {
         a.removeEventListener(b, c, false);
         return true}
      else return false}
   };
function CSBfleXcroll(a) {
   fleXenv.fleXcrollMain(a)};
fleXenv.fleXcrollInit();


