﻿/*
fleXcroll v1.7.5 Public License Version
This license text has to stay intact at all times:
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. 

Derivative works are only allowed for personal uses,
and they cannot be redistributed.
For licensing options:
Contact Emrah BASKAYA @ www.hesido.com

FleXcroll Public Key Code: 20050907122003339
MD5 hash for this license: 9ada3be4d7496200ab2665160807745d

End of license text---
*/

function CSBfleXcroll(targetId){
var dC=document,wD=window;
if(!dC.getElementById||dC.getElementById(targetId)==null||!dC.createElement||navigator.userAgent.indexOf('Safari')!=-1||navigator.vendor=='KDE')return;
var dDv=dC.getElementById(targetId);
if(dDv.fleXcroll)return;
var cDv=createDiv('contentwrapper',true);var mDv=createDiv('mcontentwrapper',true);
var tDv=createDiv('scrollwrapper',true);var pDv=createDiv('copyholder',true);
pDv.style.border='1px solid blue';pDv.style.visibility='hidden';stdMode=false;
dDv.style.overflow='hidden';
dDv.fleXdata=new Object();var sC=dDv.fleXdata;
sC.keyAct={_37:['-1s',0],_38:[0,'-1s'],_39:['1s',0],_40:[0,'1s'],_33:[0,'-1p'],_34:[0,'1p']};
sC.wheelAct=["-2s","2s"];sC.baseAct=["-2s","2s"];
var brdHeight=dDv.offsetHeight,brdWidth=dDv.offsetWidth;
copyStyles(dDv,pDv,'0px',['border-left-width','border-right-width','border-top-width','border-bottom-width']);
var intlHeight=dDv.offsetHeight,intlWidth=dDv.offsetWidth,brdWidthLoss=brdWidth-intlWidth,brdHeightLoss=brdHeight-intlHeight;
var oScrollY=(dDv.scrollTop)?dDv.scrollTop:0,oScrollX=(dDv.scrollLeft)?dDv.scrollLeft:0;
var focusProtectList=['textarea','input','select']
sC.scrollPos=[0,0,0,0];sC.pageScroll=[0,0];sC.stepScroll=[0,0];
sC.containerSize=[0,0];sC.contentSize=[0,0];sC.reqH=false;sC.reqV=false;sC.vHspace=0;sC.hVspace=0;
while (dDv.firstChild) {cDv.appendChild(dDv.firstChild)};
dDv.appendChild(mDv);dDv.appendChild(pDv);
if(getActiveStyle(dDv,'position')!='absolute') dDv.style.position="relative";

mDv.style.width="10px";mDv.style.height="10px";mDv.style.top="0px";mDv.style.left="0px";
copyStyles(dDv,pDv,"0px",['padding-left','padding-top','padding-right','padding-bottom']);
var postWidth=dDv.offsetWidth,postHeight=dDv.offsetHeight,heightLoss=intlHeight-postHeight,widthLoss=intlWidth-postWidth;
if(heightLoss+widthLoss>0) stdMode=true;
copyStyles(pDv,dDv,false,['padding-left','padding-top','padding-right','padding-bottom']);
findPos(mDv);findPos(dDv);
var padTop=mDv.yPos-dDv.yPos,padLeft=mDv.xPos-dDv.xPos;
dDv.style.paddingTop=getActiveStyle(dDv,"padding-bottom");dDv.style.paddingLeft=getActiveStyle(dDv,"padding-right");
findPos(mDv);findPos(dDv);
var padBottom=mDv.yPos-dDv.yPos, padRight=mDv.xPos-dDv.xPos
dDv.style.paddingTop=getActiveStyle(pDv,"padding-top");dDv.style.paddingLeft=getActiveStyle(pDv,"padding-left");
var padWidthComp=padRight+padLeft,padHeightComp=padTop+padBottom;

copyStyles(dDv,mDv,false,['padding-left','padding-right','padding-top','padding-bottom']);
tDv.style.width=dDv.offsetWidth+'px';tDv.style.height=dDv.offsetHeight+'px';
mDv.style.width=postWidth+'px'; mDv.style.height=postHeight+'px';
tDv.style.position='absolute';tDv.style.top='0px';tDv.style.left='0px';
tDv.style.visibility='hidden';

mDv.appendChild(cDv);dDv.appendChild(tDv);
cDv.style.position='relative';mDv.style.position='relative';cDv.style.padding='1px';
cDv.style.top="0";cDv.style.width="100%";//fix IE7Beta2Bug
mDv.style.overflow='hidden';
mDv.style.left="-"+getActiveStyle(dDv,"padding-left");
mDv.style.top="-"+getActiveStyle(dDv,"padding-top");
sC.hVspace=sC.vHspace=0;

sC.getContentWidth=function(){
	var cChilds=cDv.childNodes,maxCWidth=compPad=0;
	for(var i=0;i<cChilds.length;i++){if(cChilds[i].offsetWidth){maxCWidth=Math.max(cChilds[i].offsetWidth,maxCWidth)}}
	sC.containerSize[0]=(sC.reqV)?dDv.offsetWidth-sC.hVspace:dDv.offsetWidth;
	sC.contentSize[0]=maxCWidth+padWidthComp;
	return sC.contentSize[0];
	};
sC.getContentHeight=function(){
	sC.containerSize[1]=(sC.reqH)?dDv.offsetHeight-sC.vHspace:dDv.offsetHeight;
	sC.contentSize[1]=cDv.offsetHeight+padHeightComp;
	return sC.contentSize[1];
	};
sC.fixIEDispBug=function(){cDv.style.display='none';cDv.style.display='block'};

sC.setWidth=function(){mDv.style.width=(stdMode)?(sC.containerSize[0]-padWidthComp-brdWidthLoss)+'px':sC.containerSize[0]+'px'}
sC.setHeight=function(){mDv.style.height=(stdMode)?(sC.containerSize[1]-padHeightComp-brdHeightLoss)+'px':sC.containerSize[1]+'px'}

sC.createScrollBars=function(){
	sC.getContentWidth();sC.getContentHeight();
//vert
	tDv.vrt=new Array();var vrT=tDv.vrt;
	createScrollBars(vrT,'vscroller');
	vrT.barPadding=[parseInt(getActiveStyle(vrT.sBr,'padding-top')),parseInt(getActiveStyle(vrT.sBr,'padding-bottom'))];
	vrT.sBr.style.padding='0px';vrT.sBr.curPos=0;vrT.sBr.vertical=true;
	vrT.sBr.indx=1; cDv.vBar=vrT.sBr;
	prepareScroll(vrT,0);sC.hVspace=vrT.sDv.offsetWidth;
	sC.setWidth();
//horiz
	tDv.hrz=new Array();var hrZ=tDv.hrz;
	createScrollBars(hrZ,'hscroller');
	hrZ.barPadding=[parseInt(getActiveStyle(hrZ.sBr,'padding-left')),parseInt(getActiveStyle(hrZ.sBr,'padding-right'))];
	hrZ.sBr.style.padding='0px';hrZ.sBr.curPos=0;hrZ.sBr.vertical=false;
	hrZ.sBr.indx=0; cDv.hBar=hrZ.sBr;
	if(wD.opera) hrZ.sBr.style.position='relative';
	prepareScroll(hrZ,0);
	sC.vHspace=hrZ.sDv.offsetHeight;
	sC.setHeight();
	tDv.style.height=dDv.offsetHeight+'px';
// jog
	hrZ.jBox=createDiv('scrollerjogbox');
	hrZ.jBox.style.display='none';hrZ.jBox.prnt=tDv;
	tDv.appendChild(hrZ.jBox);
	hrZ.jBox.onmousedown=function(){
		hrZ.sBr.scrollBoth=true;sC.goScroll=hrZ.sBr;hrZ.sBr.clicked=true;
		hrZ.sBr.moved=false;tDv.vrt.sBr.moved=false;dDv.scrollUpdate();
		addTrggr(dC,'selectstart',retFalse);addTrggr(dC,'mousemove',mMoveBar);addTrggr(dC,'mouseup',mMouseUp);
		return false;
	};
};

sC.goScroll=null;
sC.createScrollBars();

if(!addChckTrggr(dDv,'mousewheel',mWheelProc)||!addChckTrggr(dDv,'DOMMouseScroll',mWheelProc)){dDv.onmousewheel=mWheelProc;}
dDv.setAttribute('tabIndex','0');

addTrggr(dDv,'keydown',function(e){
	if(dDv.focusProtect) return;
	if(!e){var e=wD.event;};var pK=e.keyCode;
	if(sC.keyAct['_'+pK]){dDv.contentScroll(sC.keyAct['_'+pK][0],sC.keyAct['_'+pK][1],true);if(e.preventDefault) e.preventDefault();return false;}
	});
addTrggr(dDv,'keypress',function(e){//make Opera Happy
	if(dDv.focusProtect) return;
	if(!e){var e=wD.event;};var pK=e.keyCode;
	if(sC.keyAct['_'+pK]){e.preventDefault();return false;}
});
addTrggr(dC,'mouseup',tSelectStop);
addTrggr(dDv,'mousedown',function(e){if(!e) e=wD.event;
var cTrgt=(e.target)?e.target:(e.srcElement)?e.srcElement:false;
if(!cTrgt||(cTrgt.className&&cTrgt.className.match(RegExp("\\bscrollgeneric\\b")))) return;
sC.inMposX=e.clientX;sC.inMposY=e.clientY;
pageScrolled();findPos(dDv);tSelectStop();
addTrggr(dC,'mousemove',tSelectMouse);
sC.mTBox=[dDv.xPos+10,dDv.xPos+sC.containerSize[0]-10,dDv.yPos+10,dDv.yPos+sC.containerSize[1]-10];
});
function tSelectStop() {remTrggr(dC,'mousemove',tSelectMouse);if(sC.tSelectFunc) wD.clearInterval(sC.tSelectFunc);sC.tSelectFunc=false;}
function tSelectMouse(e) {if(!e) e=wD.event;
var mX=e.clientX,mY=e.clientY,mdX=mX+sC.xScrld,mdY=mY+sC.yScrld;
sC.mOnXEdge=(mdX<sC.mTBox[0]||mdX>sC.mTBox[1])?1:0;
sC.mOnYEdge=(mdY<sC.mTBox[2]||mdY>sC.mTBox[3])?1:0;
sC.xAw=mX-sC.inMposX;sC.yAw=mY-sC.inMposY;
sC.sXdir=(sC.xAw>40)?1:(sC.xAw<-40)?-1:0;sC.sYdir=(sC.yAw>40)?1:(sC.yAw<-40)?-1:0;
if((sC.sXdir!=0||sC.sYdir!=0)&&!sC.tSelectFunc) sC.tSelectFunc=wD.setInterval(function(){
if(sC.sXdir==0&&sC.sYdir==0){wD.clearInterval(sC.tSelectFunc);sC.tSelectFunc=false;return;}; pageScrolled();
if(sC.mOnXEdge==1||sC.mOnYEdge==1) dDv.contentScroll((sC.sXdir*sC.mOnXEdge)+"s",(sC.sYdir*sC.mOnYEdge)+"s",true);
},45)
}
function pageScrolled(){
sC.xScrld=(wD.pageXOffset)?wD.pageXOffset:(dC.documentElement&&dC.documentElement.scrollLeft)?dC.documentElement.scrollLeft:0;
sC.yScrld=(wD.pageYOffset)?wD.pageYOffset:(dC.documentElement&&dC.documentElement.scrollTop)?dC.documentElement.scrollTop:0;
}

dDv.scrollUpdate=function(recurse){
cDv.style.padding='1px';var reqH=sC.reqH,reqV=sC.reqV;
sC.reqH=sC.getContentWidth()>sC.containerSize[0];
sC.reqV=sC.getContentHeight()>sC.containerSize[1];
var stateChange=(reqH!=sC.reqH||reqV!=sC.reqV)?true:false;
tDv.style.width=dDv.offsetWidth-brdWidthLoss+'px';tDv.style.height=dDv.offsetHeight-brdHeightLoss+'px';

if(sC.reqV){tDv.vrt.sDv.style.display='block';sC.vScroll=true;}
else{tDv.vrt.sDv.style.display='none';sC.vScroll=false;tDv.vrt.sBr.curPos=0;cDv.style.top='0px';}
if(sC.reqH){tDv.hrz.sDv.style.display='block';sC.hScroll=true;if(sC.reqV) tDv.hrz.jBox.style.display='block';}
else{tDv.hrz.sDv.style.display='none';sC.hScroll=false;tDv.hrz.sBr.curPos=0;cDv.style.left='0px';}

sC.getContentWidth();sC.getContentHeight();sC.setHeight();sC.setWidth();
if(!sC.reqH||!sC.reqV) tDv.hrz.jBox.style.display='none';
if(sC.reqV) updateScroll(tDv.vrt,(sC.reqH)?sC.vHspace:0);
if(sC.reqH) updateScroll(tDv.hrz,(sC.reqV)?sC.hVspace:0);
if(stateChange&&!recurse) dDv.scrollUpdate(true);
cDv.style.padding='0px';
};

dDv.commitScroll=function(xScr,yScr,relative){
	var reT=[false,false],Bar;
	if((xScr||xScr===0)&&sC.hScroll){xScr=calcScrollVal(xScr,0);Bar=tDv.hrz.sBr;Bar.curPos=(relative)?Bar.curPos+xScr:xScr;Bar.doScrollPos();reT[0]=[Bar.curPos,Bar.sRange];}
	if((yScr||yScr===0)&&sC.vScroll){yScr=calcScrollVal(yScr,1);Bar=tDv.vrt.sBr;Bar.curPos=(relative)?Bar.curPos+yScr:yScr;Bar.doScrollPos();reT[1]=[Bar.curPos,Bar.sRange];}
	return reT;
};
dDv.contentScroll=function(xPos,yPos,relative){ 
	var reT=[false,false],Bar;
	if((xPos||xPos===0)&&sC.hScroll){xPos=calcCScrollVal(xPos,0);Bar=tDv.hrz.sBr;Bar.targetScroll=(relative)?Math.min(Math.max(Bar.mxScroll,Bar.targetScroll-xPos),0):-xPos;Bar.contentScrollPos();reT[0]=[Bar.targetScroll,Bar.mxScroll]}
	if((yPos||yPos===0)&&sC.vScroll){yPos=calcCScrollVal(yPos,1);Bar=tDv.vrt.sBr;Bar.targetScroll=(relative)?Math.min(Math.max(Bar.mxScroll,Bar.targetScroll-yPos),0):-yPos;Bar.contentScrollPos();reT[1]=[Bar.targetScroll,Bar.mxScroll]}
	return reT;
}

copyStyles(pDv,dDv,'0px',['border-left-width','border-right-width','border-top-width','border-bottom-width']);

cDv.style.padding='0px';dDv.removeChild(pDv);dDv.fleXcroll=true;
dDv.scrollUpdate();
dDv.contentScroll(oScrollX,oScrollY,true);
tDv.style.visibility='visible';

function calcScrollVal(v,i){
var stR=v.toString();v=parseFloat(stR);
return parseInt((stR.match(/p$/))?v*sC.pageScroll[i]:(stR.match(/s$/))?v*sC.stepScroll[i]:v);
}
function calcCScrollVal(v,i){
var stR=v.toString();v=parseFloat(stR);
return parseInt((stR.match(/p$/))?v*sC.containerSize[i]*0.90:(stR.match(/s$/))?v*sC.containerSize[i]*0.1:v);
}
function camelConv(spL){
var spL=spL.split('-'),reT=spL[0],i;
for(i=1;parT=spL[i];i++) {reT +=parT.charAt(0).toUpperCase()+parT.substr(1);}
return reT;
}
function getActiveStyle(elem,style){
if(wD.getComputedStyle) return wD.getComputedStyle(elem,null).getPropertyValue(style);
if(elem.currentStyle) return elem.currentStyle[camelConv(style)];
return false;
};
function copyStyles(src,dest,replaceStr,sList){
var camelList = new Array();
for (var i=0;i<sList.length;i++){
	camelList[i]=camelConv(sList[i]);
	dest.style[camelList[i]] = getActiveStyle(src,sList[i],camelList[i]);
	if(replaceStr) src.style[camelList[i]] = replaceStr;
}
};
function createDiv(typeName,noGenericClass){
var nDiv=dC.createElement('div');
nDiv.id=targetId+'_'+typeName;
nDiv.className=(noGenericClass)?typeName:typeName+' scrollgeneric';
nDiv.getSize=[function(){return nDiv.offsetWidth},function(){return nDiv.offsetHeight}]
nDiv.setSize=[function(sVal){nDiv.style.width=sVal},function(sVal){nDiv.style.height=sVal}]
nDiv.setPos=[function(sVal){nDiv.style.left=sVal},function(sVal){nDiv.style.top=sVal}]
return nDiv;
};
function createScrollBars(ary,bse){
ary.sDv=createDiv(bse+'base');ary.sFDv=createDiv(bse+'basebeg');
ary.sSDv=createDiv(bse+'baseend');ary.sBr=createDiv(bse+'bar');
ary.sFBr=createDiv(bse+'barbeg');ary.sSBr=createDiv(bse+'barend');
tDv.appendChild(ary.sDv);ary.sDv.appendChild(ary.sBr);
ary.sDv.appendChild(ary.sFDv);ary.sDv.appendChild(ary.sSDv);
ary.sBr.appendChild(ary.sFBr);ary.sBr.appendChild(ary.sSBr);
};
function prepareScroll(bAr,reqSpace){
var sDv=bAr.sDv,sBr=bAr.sBr,i=sBr.indx;
sBr.minPos=bAr.barPadding[0];
sBr.ofstParent=sDv;
sBr.mDv=mDv;
sBr.scrlTrgt=cDv;
sBr.targetSkew=0
updateScroll(bAr,reqSpace,true);

sBr.doScrollPos=function(){
sBr.curPos=(Math.min(Math.max(sBr.curPos,0),sBr.maxPos));
sBr.targetScroll=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");
cDv.setPos[i](sBr.targetScroll+sBr.targetSkew+"px");
sC.scrollPos[i]=sBr.curPos;sC.scrollPos[i+2]=-sBr.targetScroll;
//dDv.dispatchEvent(onscroll)
};

sBr.contentScrollPos=function(){
sBr.curPos=parseInt((sBr.targetScroll*sBr.sRange)/sBr.mxScroll);
sBr.targetSkew=sBr.targetScroll-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");
cDv.setPos[i](sBr.targetScroll+"px");
}

sC.barZ=getActiveStyle(sBr,'z-index');
sBr.style.zIndex=(sC.barZ=="auto"||sC.barZ=="0")?2:sC.barZ;
mDv.style.zIndex=getActiveStyle(sBr,'z-index');

sBr.onmousedown=function(){
	this.clicked=true;sC.goScroll=this;this.scrollBoth=false;this.moved=false;
	dDv.scrollUpdate();
	addTrggr(dC,'selectstart',retFalse);
	addTrggr(dC,'mousemove',mMoveBar);
	addTrggr(dC,'mouseup',mMouseUp);
	return false;
	};

sDv.onclick=function(e){
if(!e){var e=wD.event;}
if(e.target&&(e.target==bAr.sFBr||e.target==bAr.sSBr||e.srcElement==bAr.sBr)) return;
if(e.srcElement&&(e.srcElement==bAr.sFBr||e.srcElement==bAr.sSBr||e.srcElement==bAr.sBr)) return;
var relPos,mV=[];pageScrolled();sBr.mDv.scrollTop=0;sBr.mDv.scrollLeft=0;findPos(sBr);
relPos=(sBr.vertical)?e.clientY+sC.yScrld-sBr.yPos:e.clientX+sC.xScrld-sBr.xPos;
mV[sBr.indx]=(relPos<0)?sC.baseAct[0]:sC.baseAct[1];mV[1-sBr.indx]=0;
dDv.contentScroll(mV[0],mV[1],true);
return false;
}
sDv.onmousedown = retFalse;
};

function updateScroll(bAr,reqSpace,firstRun){
var sDv=bAr.sDv,sBr=bAr.sBr,sFDv=bAr.sFDv,sFBr=bAr.sFBr,sSDv=bAr.sSDv,sSBr=bAr.sSBr,i=sBr.indx;
	sDv.setSize[i](tDv.getSize[i]()-reqSpace+'px');sDv.setPos[1-i](tDv.getSize[1-i]()-sDv.getSize[1-i]()+'px');
	bAr.padLoss=bAr.barPadding[0]+bAr.barPadding[1];
	sBr.aSize=Math.max(Math.min(parseInt(sC.containerSize[i]/sC.contentSize[i]*sDv.getSize[i]()),parseInt((sDv.getSize[i]()-bAr.padLoss)*0.75)),45);
	sBr.setSize[i](sBr.aSize+'px');sBr.maxPos=sDv.getSize[i]()-sBr.getSize[i]()-bAr.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]()-sC.contentSize[i];
	sBr.sRange=sBr.maxPos;
	sC.pageScroll[i]=sBr.pageScroll=parseInt(sBr.getSize[i]()*0.86);
	sC.stepScroll[i]=sBr.stepScroll=Math.min(Math.abs(parseInt((sBr.sRange/sBr.mxScroll)*80)),parseInt(sBr.sRange*0.25));
	sFDv.setSize[i](sDv.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](sFDv.getSize[i]()+'px');
	if(!firstRun) sBr.doScrollPos();
	sC.fixIEDispBug();
};

addTrggr(wD,'load',function(){if(dDv.fleXcroll) dDv.scrollUpdate();});
addTrggr(wD,'resize',function(){
if(dDv.refreshTimeout) wD.clearTimeout(dDv.refreshTimeout);
dDv.refreshTimeout=wD.setTimeout(function(){if(dDv.fleXcroll) dDv.scrollUpdate();},80);
});


for(var j=0,inputName;inputName=focusProtectList[j];j++){
var inputList=dDv.getElementsByTagName(inputName);
for(var i=0,formItem;formItem=inputList[i];i++){
addTrggr(formItem,'focus',function(){dDv.focusProtect=true;})
addTrggr(formItem,'blur',onblur=function(){dDv.focusProtect=false;})
}};

function retFalse(){return false;};
function mMoveBar(e){
if(!e){var e=wD.event;}
var FCBar=sC.goScroll,movBr,maxx,xScroll,yScroll;
if(FCBar==null) return;
maxx=(FCBar.scrollBoth)?2:1;
for (var i=0;i<maxx;i++){
	movBr=(i==1)?FCBar.scrlTrgt.vBar:FCBar;
	if(FCBar.clicked){
		if(!movBr.moved){
		movBr.mDv.scrollTop=0;movBr.mDv.scrollLeft=0;
		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(FCBar.scrollBoth) movBr.curPos=movBr.curPos+(movBr.curPos-movBr.inCurPos);
		movBr.doScrollPos();
		} else movBr.moved=false;
	}
};

function mMouseUp(){
if(sC.goScroll!=null){sC.goScroll.clicked=false;}
sC.goScroll=null;
remTrggr(dC,'selectstart',retFalse);
remTrggr(dC,'mousemove',mMoveBar);
remTrggr(dC,'mouseup',mMouseUp);
};

function mWheelProc(e){
if(!e) e=wD.event;
if(!this.fleXcroll) return;
var scrDv=this,vEdge,hEdge,hoverH=false,delta=0,iNDx;
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;
if(sC.vScroll&&!hoverH) scrollState=dDv.contentScroll(false,sC.wheelAct[iNDx],true);
vEdge=!sC.vScroll||hoverH||(sC.vScroll&&((scrollState[1][0]==scrollState[1][1]&&delta>0)||(scrollState[1][0]==0&&delta<0)));
if(sC.hScroll&&(!sC.vScroll||hoverH)) scrollState=dDv.contentScroll(sC.wheelAct[iNDx],false,true);
hEdge=!sC.hScroll||(sC.hScroll&&sC.vScroll&&vEdge&&!hoverH)||(sC.hScroll&&((scrollState[0][0]==scrollState[0][1]&&delta>0)||(scrollState[0][0]==0&&delta<0)));
if(vEdge&&hEdge&&!hoverH) return;
if(e.preventDefault) e.preventDefault();
return false;
};

function addTrggr(elm,eventname,func){if(!addChckTrggr(elm,eventname,func)&&elm.attachEvent) {elm.attachEvent('on'+eventname,func);}};
function addChckTrggr(elm,eventname,func){if(elm.addEventListener){elm.addEventListener(eventname,func,false);wD.addEventListener("unload",function(){remTrggr(elm,eventname,func)},false);return true;} else return false;};
function remTrggr(elm,eventname,func){if(!remChckTrggr(elm,eventname,func)&&elm.detachEvent) elm.detachEvent('on'+eventname,func);};
function remChckTrggr(elm,eventname,func){if(elm.removeEventListener){elm.removeEventListener(eventname,func,false);return true;} else return false;};

function findPos(elem){ 
//function modified from firetree.net
var obj=elem,curleft=curtop=0;
if(obj.offsetParent){while(obj){curleft+=obj.offsetLeft;curtop+=obj.offsetTop;obj=obj.offsetParent;}}
else if(obj.x){curleft+=obj.x;curtop+=obj.y;}
elem.xPos=curleft;elem.yPos=curtop;
};

};