﻿/*
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;
};

};