﻿// JavaScript Document
function scrollBarVertical_obj(){
	var ME = this
	var DIVS = this.getElementsByTagName("BUTTON")
	var topButton = DIVS[0]
	var bottomButton = DIVS[2]
	var scrollButton = DIVS[1]
	var myID = ME.id
	
	var myMouseOverStatus = 0
	var minTop = topButton.offsetTop +  topButton.offsetHeight +2
	var maxTop = bottomButton.offsetTop - scrollButton.offsetHeight -2
	var clickOnScrollButton  = false
	var clickOnTopBottomButton = false
	
	var myTargetID = myID.split('_')[1]
	var myTarget = window.document.getElementById(myTargetID)
	var myTargetInnerDiv = myTarget.getElementsByTagName("DIV")[0]
	var myTargetMaxScroll = 0
	var s
	var autoMod = getStyle(ME,"visibility") == "hidden"
	var myTargetListener
	var onBodymousemove
	var myBodyWidth = 790
	var myBodyHeight = 490;
	
	
	ME.unselectable = "on"
	ME.onmouseover = function(){
		myMouseOverStatus = 1
		//anyScrollMouseOver = true	
		
	}
	ME.onmouseout = function(){
		//anyScrollMouseOver = false	
	}
	myTarget.onmouseover = function(){
		//anyScrollMouseOver = true	
		
	}
	myTarget.onmouseout = function(){
	//	anyScrollMouseOver = false	
		
	}
	/*ME.onmouseout = function(){
		var s
		myMouseOverStatus = 2
		s = setTimeout(myMouseOutStatusTimer, 700)		
	}*/
	
	window.document.body.onmousemove = ""
	myMouseOutStatusTimer = function(){
		if(myMouseOverStatus == 2 ){
			myMouseOverStatus = 0
			onBodyMouseUp()
		}		
	}
	function onBodyMouseUp(){
		 clickOnScrollButton  = false
		 clickOnTopBottomButton = false
		  window.document.body.onmousemove = ""
	}
	scrollButton.onfocus = function(){
		scrollButton.blur()
	}
	topButton.onfocus = function(){
		topButton.blur()
	}
	bottomButton.onfocus = function(){
		bottomButton.blur()
	}
	/*********************** Scroll Button Behavior *******************************/
	scrollButtonBehavior =function(){
		var yClickPoz
		var clickPoz
		scrollButton.onmousedown=function(e){
			if(window.event) e = window.event
			yClickPoz = e.clientY
			clickPoz = this.offsetTop
			clickOnScrollButton = true
			if( typeof( window.innerWidth ) == 'number' ) {
				//Non-IE
				myBodyWidth = window.innerWidth;
				myBodyHeight = window.innerHeight;
			} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
				//IE 6+ in 'standards compliant mode'
				myBodyWidth = document.documentElement.clientWidth;
				myBodyHeight = document.documentElement.clientHeight;
			} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
				//IE 4 compatible
				myBodyWidth = document.body.clientWidth;
				myBodyHeight = document.body.clientHeight;
			}
				
				window.document.body.onmousemove = onBodymousemove
			 
		}
		
		onMouseUpArr[onMouseUpArr.length]= onBodyMouseUp
		onBodymousemove = function(e){
			var scrollCoefficient
			if (clickOnScrollButton && myMouseOverStatus > 0){
				if(window.event) e = window.event
				newPoz =  clickPoz + ( (yClickPoz -  e.clientY)*-1 )
				if (newPoz>maxTop)newPoz = maxTop
				if (newPoz<minTop)newPoz = minTop
					scrollButton.style.top = newPoz.toString() + "px" 
					scrollCoefficient = (newPoz-minTop)/(maxTop-minTop)
					myTarget.scrollTop =scrollCoefficient * myTargetMaxScroll
				
			}
			if (e.clientX<25 || e.clientX>myBodyWidth-5){onBodyMouseUp(); return false}
			if (e.clientY<25 || e.clientY>myBodyHeight-30){onBodyMouseUp(); return false}
			
		}
		
		
		
	
	}
	var scrollCoefficient 
	scrollButton.startMe = scrollButtonBehavior
	scrollButton.startMe()
	/*********************** END  Scroll Button Behavior *******************************/
	/***********************   Scroll Target Listener  *******************************/
	function myTargetListener(){
		if(ME.maxHeightGrouth)cf_maxHeightGrouth()
		minTop = topButton.offsetTop +  topButton.offsetHeight +2
		maxTop = bottomButton.offsetTop - scrollButton.offsetHeight -2
		if(clickOnScrollButton) return false
		if(myTarget.offsetHeight > myTargetInnerDiv.offsetHeight){
			
			scrollButton.style.visibility = "hidden"
			if(autoMod)ME.style.visibility = "hidden"
			
			myTarget.scrollTop = 0
			
		}else{
			
			scrollButton.style.visibility = "inherit"
			myTargetMaxScroll =  myTargetInnerDiv.offsetHeight - myTarget.offsetHeight 
			scrollCoefficient = myTarget.scrollTop / myTargetMaxScroll
			if (scrollCoefficient>1) scrollCoefficient = 1
			newPoz = (maxTop-minTop) * scrollCoefficient + topButton.offsetHeight+2
			if(!isNaN( newPoz))scrollButton.style.top = newPoz.toString() + "px"
			
			if(autoMod)ME.style.visibility = "inherit"
			//window.document.title = myTarget.id+  "  "+getStyle(myTarget, "visibility")
		}
		
		
		
		
	}
	setInterval(myTargetListener, 100)	
	/***********************  End Scroll Target Listener  *******************************/
	/***********************  Target Wheel Scroll   *******************************/
	/*myTarget.onmousewheel = function(e){
		if (!e) e = window.event;
		if(e.detail){
			myTarget.scrollTop = e.detail  > 0 ? myTarget.scrollTop +  20: myTarget.scrollTop -  20
		}else if(e.wheelDelta){
			myTarget.scrollTop = e.wheelDelta<0 ? myTarget.scrollTop + 20 : myTarget.scrollTop -  20
		}
		return false
		
	}
	ME.onmousewheel =myTarget.onmousewheel
	if (window.addEventListener) {
		myTarget.addEventListener('DOMMouseScroll', myTarget.onmousewheel , false);
		ME.addEventListener('DOMMouseScroll', myTarget.onmousewheel , false);
	}
	*/
	
	/***********************  End Target Wheel Scroll  *******************************/
	/***********************   Start scroll Up/Down Button  *******************************/
	function scrollUp(){
		if(clickOnTopBottomButton){
			myTarget.scrollTop = myTarget.scrollTop - 2
			clearTimeout(s)
			s= setTimeout(scrollUp,25)
		}
	}
	topButton.onmousedown = function(){
		clickOnTopBottomButton = true
		scrollUp()
	}
	function scrollDown(){
		if(clickOnTopBottomButton){
			myTarget.scrollTop = myTarget.scrollTop + 2
			clearTimeout(s)
			s= setTimeout(scrollDown,25)
		}
	}
	bottomButton.onmousedown = function(){
		clickOnTopBottomButton = true
		scrollDown()
	}
	/********************* Customs **************************/
	
	function cf_maxHeightGrouth(){
		var newHeight =  myTargetInnerDiv.offsetHeight + 5
		//window.document.title=newHeight + " " + ME.maxHeightGrouth
		if(document.getElementById("popInnerStage")){
			if(newHeight<ME.maxHeightGrouth){
				ME.style.height =		newHeight.toString() +"px"
				myTarget.style.height = 	newHeight.toString() +"px"
				document.getElementById("popInnerStage").style.height =  (newHeight + 60).toString() +"px"
			}else{
				ME.style.height =		 ME.maxHeightGrouth.toString() +"px"
				myTarget.style.height = 	 ME.maxHeightGrouth.toString() +"px"
				document.getElementById("popInnerStage").style.height =  (ME.maxHeightGrouth + 60).toString() +"px"
				
			}
		}
		
	}
	
}
