
var dragObj, contentObj, trackObj, trackUpObj, trackDownObj;
var dragHeight, contentHeight, trackHeight;

ScrollObj = function(contentObj, trackObj, dragObj){
	contentObj=document.getElementById(contentObj)
	trackObj=document.getElementById(trackObj)
	dragObj=document.getElementById(dragObj)

	trackHeight = contentObj.offsetHeight - 34;
	contentHeight = contentObj.getElementsByTagName('blockquote')[0].offsetHeight;
	contentObj.scrollTop = 0;
	
	if (contentHeight<trackHeight)
		dragObj.style.display = "none";
	else{
		dragHeight = (trackHeight*trackHeight)/contentHeight;
		dragObj.style.height = dragHeight+"px";
	}
}

function acionaScroll(x){
	dragObj=x;
	contentObj=x.parentNode.parentNode.getElementsByTagName('div')[4];	
	dragHeight=dragObj.offsetHeight;
	contentHeight = contentObj.getElementsByTagName('blockquote')[0].offsetHeight;	
}

function acionaTrack(x){
	trackObj=x;
	contentObj=x.parentNode.getElementsByTagName('div')[4];	
	dragObj=x.parentNode.getElementsByTagName('div')[2];
}

function acionaScrollUp(x){
	trackUpObj = true;	
	contentObj=x.parentNode.getElementsByTagName('div')[4];
	dragObj=x.parentNode.getElementsByTagName('div')[2];
}
function acionaScrollDown(x){
	trackDownObj = true;	
	contentObj=x.parentNode.getElementsByTagName('div')[4];
	dragObj=x.parentNode.getElementsByTagName('div')[2];
}

var mouseover;
var e, ptop, ycoor;
var posScroll;
var track = 10;

document.onmousedown = function mousedown(e){
	if(dragObj){	
	
		if (!e) e = window.event;		
		var targ;  
		if (e.target) targ = e.target;
		else if (e.srcElement) targ = e.srcElement;
		// defeat Safari bug
		if (targ.nodeType == 3) targ = targ.parentNode;
		
		if (targ.id==dragObj.id){
			ptop=document.getElementById(dragObj.id).style.top;
			if (!ptop) ptop="0px";
			ptop = Number(ptop.substring(0,(ptop.length-2)));
			ycoor = e.clientY;
			trackMax = (trackHeight-dragHeight);
			mouseover = true;
			
			document.onmousemove = function moveImage(e){	
				if (!e) e = window.event;
				if (mouseover){
					dragObj.focus();
					var pos = ptop+e.clientY-ycoor;
					posScroll = parseInt(((contentHeight-trackHeight)*pos)/trackMax);
					if(pos<0){
						dragObj.style.top = "0px";
						contentObj.scrollTop = 0;
						if( window.opera ) contentObj.getElementsByTagName('blockquote')[0].style.marginTop = 0;
					}
					else if(pos>trackMax){
						dragObj.style.top = trackMax+"px";
						contentObj.scrollTop = (contentHeight-trackHeight);
						if( window.opera ) contentObj.getElementsByTagName('blockquote')[0].style.marginTop = -(contentHeight-trackHeight)+"px";
					}
					else{
			
						dragObj.style.top = pos+"px";
						contentObj.scrollTop = posScroll;
						if( window.opera ) contentObj.getElementsByTagName('blockquote')[0].style.marginTop = -posScroll+"px";
					}
				}
			}
			
		}
		if(trackObj){	
			if (targ.id==trackObj.id){
				ycoor = e.clientY;
				//pos = ycoor-dragHeight-trackObj.parentNode.offsetTop;
				pos = ycoor-140-(dragHeight/2);
				trackMax = (trackHeight-dragHeight);
				posScroll = parseInt(((contentHeight-trackHeight)*pos)/trackMax);
				if (pos<0){
					dragObj.style.top = "0px";
					contentObj.scrollTop = 0;
					if( window.opera ) contentObj.getElementsByTagName('blockquote')[0].style.marginTop = 0;
				}
				else if(pos>trackMax){
					dragObj.style.top = trackMax+"px";
					contentObj.scrollTop = (contentHeight-trackHeight);
					if( window.opera ) contentObj.getElementsByTagName('blockquote')[0].style.marginTop = -(contentHeight-trackHeight)+"px";
				}
				else{
					dragObj.style.top = pos+"px";
					contentObj.scrollTop = posScroll;
					if( window.opera ) contentObj.getElementsByTagName('blockquote')[0].style.marginTop = -posScroll+"px";				
				}
			}
		}
		
	}		
	trackMax = (trackHeight-dragHeight);

	if(trackUpObj){
		mouseover = true;
		trackUp()
	}

	if(trackDownObj){
		mouseover = true;
		trackDown()	
	}
}

function trackUp(){
	pos = dragObj.style.top
	pos = Number(pos.substring(0,(pos.length-2)));
	posScroll = parseInt(((contentHeight-trackHeight)*pos)/trackMax);
	if (pos>0){
		if(pos>track){
			dragObj.style.top = (pos-track) + "px";
			contentObj.scrollTop = posScroll;
			if( window.opera ) contentObj.getElementsByTagName('blockquote')[0].style.marginTop = -posScroll+"px";
		}
		else{
			dragObj.style.top = "0px";
			contentObj.scrollTop = 0;
			if( window.opera ) contentObj.getElementsByTagName('blockquote')[0].style.marginTop = 0;
		}				
	}
	if(mouseover){			
		setTimeout('trackUp()',100);
	}
}


function trackDown(){
	pos = dragObj.style.top
	pos = Number(pos.substring(0,(pos.length-2)));
	posScroll = parseInt(((contentHeight-trackHeight)*pos)/trackMax);	
	if (pos<trackMax){
		if(pos<(trackMax-track)){
			dragObj.style.top = (pos+track) + "px";
			contentObj.scrollTop = posScroll;
			if( window.opera ) contentObj.getElementsByTagName('blockquote')[0].style.marginTop = -posScroll+"px";
		}
		else{
			dragObj.style.top = trackMax+"px";
			contentObj.scrollTop = (contentHeight-trackHeight);
			if( window.opera ) contentObj.getElementsByTagName('blockquote')[0].style.marginTop = -(contentHeight-trackHeight)+"px";
		}				
	}
	if(mouseover){			
		setTimeout('trackDown()',100);
	}
}

document.onmouseup = function mouseup(){
	mouseover = false
	mouseout()
}

function mouseout(){
	trackUpObj = false;
	trackDownObj = false;	
}


window.onload = function(){
	if (document.getElementById("scrollArea").getElementsByTagName('blockquote')[0].offsetHeight>document.getElementById("scrollArea").offsetHeight)
	var scrollBusca = new ScrollObj("scrollArea","scrollTrack","scrollDrag");
	else{
		document.getElementById("scrollTrack").style.display = "none";
		document.getElementById("trackUp").style.display = "none";
		document.getElementById("trackDown").style.display = "none";
	}
}