//********************************************************************************************//
//		scrollbar
//********************************************************************************************//

//初期設定--------------------------------------------------------------------------------------

var target3;
var mask3;

var sc3;
var up3;
var track3;
var down3;

var upBtn3;
var trackBtn3;
var downBtn3;

var yOffset3;
var yMax3;
var yMin3;
var scMax3;
var scMin3;
var pm3; //plusminus
var scrollPar3 = 1/3;
var targetY3 = 0;
var arrowCount3 = 0;

var tm3 = 0;
var ts3 = 0;
var cs3;

var c3 = 0;
var cp3 = 0;

var trackY3 = 0;
var ev3 = false;

var locStr;

//------------------------------------------------------------------------------------------------------

//スクロールバー処理--------------------------------------------------------------------------------------

var scrollbar3 = {
	init : function(_target, _mask) {
		target3 = document.getElementById(_target);
		mask3 = document.getElementById(_mask);
		
		//alert(target.id, mask.id);
		sc3 = createElm("DIV","sc_container3",target3);
		up3 = createElm("DIV", "btn_up3", sc3);
		track3 = createElm("DIV", "tracker3", sc3);
		down3 = createElm("DIV", "btn_down3", sc3);
		
		upBtn3 = createElm("IMG", "upBtn3", up3);
		upBtn3.setAttribute("src", "../images/scrollbar_up.jpg");
		upBtn3.setAttribute("alt", "up");
		
		trackBtn3 = createElm("IMG", "trackBtn3", track3);
		trackBtn3.setAttribute("src", "../images/scrollbar_track.jpg");
		//trackBtn.style.height = track.offsetHeight * (mask.offsetHeight / target.offsetHeight) + "px";
		
		downBtn3 = createElm("IMG", "downBtn3", down3);
		downBtn3.setAttribute("src", "../images/scrollbar_down.jpg");
		downBtn3.setAttribute("alt", "down");
		
		target3.style.position = "relative";
		target3.style.overflow = "hidden";
		
		scrollbar3.setScroll();
		scrollbar3.startScroll();	
	},
	setScroll : function() {
		setX(mask3,0);
		setY(mask3,0);
		
		sc3.style.width = offW(upBtn3) + "px";
		sc3.style.height = parseInt(target3.style.height) + "px";
		sc3.style.backgroundImage = "url(../images/scrollbar_bg.jpg)";
		sc3.style.backgroundRepeat = "repeat-y";
		setY(sc3,0);
		setX(sc3, offW(target3) - parseInt(sc3.style.width));
		up3.style.width = offW(upBtn3) + "px";
		up3.style.height = offH(upBtn3) + "px";
		up3.style.cursor = "pointer";
		setY(up3,0);
		
		down3.style.width = offW(downBtn3) + "px";
		down3.style.height = offH(downBtn3) + "px";
		down3.style.cursor = "pointer";
		setY(down3,parseInt(sc3.style.height) - parseInt(down3.style.height));
		
		track3.style.cursor = "pointer";
		
		yMin3 = offT(sc3) + getH(up3);
		yMax3 = getH(sc3) - getH(down3);
		
		scMin3 = getH(up3) + offT(track3);
		scMax3 = (getH(sc3) - getH(up3) + getH(down3)) - offH(track3);
		
		tm3 = down3.offsetTop - (track3.offsetHeight+(yMin3+2));
		cs3 = mask3.offsetHeight - target3.offsetHeight;
		
		
		if ( (scMax3 - scMin3) > 0 ) {
			
		}
		
	},
	startScroll : function() {
		dom.event.addEventListener(up3, "click", scrollbar3.upHandler);
		dom.event.addEventListener(down3, "click", scrollbar3.downHandler);
		
		dom.event.addEventListener(down3, "mouseover", scrollbar3.overHandler);
		dom.event.addEventListener(up3, "mouseover", scrollbar3.overHandler);
		dom.event.addEventListener(track3, "mouseover", scrollbar3.overHandler);
		dom.event.addEventListener(down3, "mouseout", scrollbar3.outHandler);
		dom.event.addEventListener(up3, "mouseout", scrollbar3.outHandler);
		dom.event.addEventListener(track3, "mouseout", scrollbar3.outHandler);
		//dom.event.addEventListener(track, "click", scrollbar.trackDown);
		scrollbar3.drag(track3,track3,yMin3,0,yMax3,0);
		//locStr = document.location.href.slice(document.location.href.lastIndexOf('#'));
		/*
		if(locStr == "#character") {
			setY(sc3,260);
			setY(track3,140);
		}
		*/
			//ここ
		var nt = document.getElementById('topic_content').getElementsByTagName('LI');
		
		if(dom.misc.getCookie("newsTopic") == "7") {
			hh = (nt.item(0).offsetHeight+nt.item(1).offsetHeight+nt.item(2).offsetHeight+nt.item(3).offsetHeight)+118;
			setY(mask3,-hh);
			setY(track3,124);
		} 
		if(dom.misc.getCookie("newsTopic") == "8") {
			hh = (nt.item(0).offsetHeight+nt.item(1).offsetHeight+nt.item(2).offsetHeight+nt.item(3).offsetHeight+nt.item(4).offsetHeight+nt.item(5).offsetHeight)+72;
			setY(mask3,-hh);
			setY(track3,180);
		}
		
		if(dom.misc.getCookie("newsTopic") == "2") {
			setY(mask3,0);
			setY(track3,yMin+1);
		}
		
	},
	
	overHandler : function(evt) {
		/*
		if(evt.target.id == "downBtn"){
			downBtn.setAttribute("src", "images/scrollbar_down_on.jpg");
		} else if (evt.target.id == "upBtn"){
			upBtn.setAttribute("src", "images/scrollbar_up_on.jpg");
		} else {
			trackBtn.setAttribute("src", "images/scrollbar_track_on.jpg");
		}
		*/
	},
	
	outHandler : function(evt) {
		/*
		if(evt.target.id == "downBtn"){
			downBtn.setAttribute("src", "images/scrollbar_down.jpg");
		} else if (evt.target.id == "upBtn"){
			upBtn.setAttribute("src", "images/scrollbar_up.jpg");
		} else {
			trackBtn.setAttribute("src", "images/scrollbar_track.jpg");
		}
		*/
	},
	
	upHandler : function(evt) {
		//alert(evt.target.id);
		//pm = (evt.target.id == "upBtn") ? 1 : -1;
		//targetY += (mask, track.offsetTop + (track.offsetHeight * pm ) * scrollPar);
		pm3 = 1;
		scrollbar3.scrollArrow();
	},
	downHandler : function() {
		pm3 = -1;
		scrollbar3.scrollArrow();
	},
	
	scrollArrow : function() {
		cp3 = tm3 / 5;
		if(pm3 == "1") {
			
			if(track3.offsetTop > up3.offsetHeight+up3.offsetTop) {
				if(track3.offsetTop < (up3.offsetHeight+up3.offsetTop)+cp3) {
					setY(track3,yMin3+1);
					setY(mask3,0);
				} else {
					setY(track3,track3.offsetTop-cp3);
					setY(mask3,mask3.offsetTop+(cs3/6));
				}
			} else {
				setY(mask3, 0);
			}
		} else {
			if(track3.offsetTop < down3.offsetTop) {
				if(track3.offsetHeight+track3.offsetTop > down3.offsetTop-cp3) {
					setY(track3,up3.offsetTop+up3.offsetHeight + tm3+1);
					setY(mask3,-cs3);
				}else{
					setY(track3,track3.offsetTop+cp3);
					setY(mask3,mask3.offsetTop-(cs3/6));
				}
			} else {
				//setY(mask, yMax);
			}
		}
		//scrollbar.common();
	},
	
	trackDown : function() {
		
	},
	
	common : function() {
		
		if ( targetY3 >= yMin3 ) {
				targetY3 = yMin3;
				setY(mask3, 0);
		}
		if( targetY3 >= yMax3) {
			targetY3 = yMax3;
			setY(mask3, yMax3);
		}
	},
	
	drag : function(targetElm, dragableElm, dTop, dRight, dBottom, dLeft) {
		
		if( ! targetElm ) { return; }
  if( ! dragableElm ) { dragableElm = targetElm; }
  var mouseX, mouseY, targetX, targetY;
  var winSize = dom.misc.getWindowSize();
	
	targetElm.style.position = "absolute"; 
	targetElm.style.top = dTop+1 + "px";
	targetElm.style.left = dLeft + "px";
	
	var dWidth = targetElm.offsetWidth;
	var dHeight = targetElm.offsetHeight;
	
	var offH = parseInt(dTop) + dHeight;
	
  function dragEnd(evt) {
    dom.event.removeEventListener(document, 'mouseup', dragEnd, false);
    dom.event.stopPropagation(evt);
    dom.event.preventDefault(evt);
		
  };
	
	function endMove(evt) {
		dom.event.removeEventListener(document, 'mousemove', dragMove, false);
	}
	
 	function dragMove (evt) {
    var left = targetX - mouseX + evt.clientX;
    var top = targetY - mouseY + evt.clientY;
    var right = left + targetElm.offsetWidth;
    var bottom = top + targetElm.offsetHeight;
		//targetY += (mask, track.offsetTop + (track.offsetHeight * pm ) * scrollPar);
		
		ts3 = (track3.offsetTop - (yMin3+1));
		c3 = -Math.floor((ts3/tm3)*cs3);
		setY(mask3,c3);
		
		if(dTop == null && dRight == null && dBottom == null && dLeft == null) {
			if( left > 0 &&  right < winSize.width && top > 0 && bottom < winSize.height ) {
				targetElm.style.top  = top + 'px';
			} else {
				dragEnd();
			}
		} else {
			if( top  > dTop && bottom < dBottom ) {
				targetElm.style.top  = top + 'px';
			} else {
				dragEnd();
			}
		}
    dom.event.stopPropagation(evt);
    dom.event.preventDefault(evt);
  };
  function dragStart(evt) {
    winSize = dom.misc.getWindowSize();
    mouseX = evt.clientX;
    mouseY = evt.clientY;
    targetX = targetElm.offsetLeft;
    targetY = targetElm.offsetTop;
    dom.event.addEvent(document, 'mousemove', dragMove, false);
    dom.event.addEvent(document, 'mouseup', endMove, false);
    dom.event.stopPropagation(evt);
   	dom.event.preventDefault(evt);
  };
  	dom.event.addEvent(dragableElm, 'mousedown', dragStart, false);
	}
	
};

//------------------------------------------------------------------------------------------------------

//スクロールバー実行--------------------------------------------------------------------------------------

dom.event.addEventListener(window, "load", init);
function init() {
	scrollbar3.init("news_content","topic_content");
}
