var Event = YAHOO.util.Event;
var Dom = YAHOO.util.Dom;
var Scroll = YAHOO.util.Scroll;
var myAnim;

function adjustScroll(el) {
	var thisScope = Dom.get('project-popup');
	
	var scrollUp = Dom.get('popup-scrollup');
	var scrollDown = Dom.get('popup-scrolldown');
	var myLinks = Dom.getElementsByClassName('popup-links','div',thisScope)[0];
	
	if (myLinks.scrollTop == 0) {
		scrollUp.className = 'scroller hide';
	}
	else { scrollUp.className = 'scroller show'; }

	if (myLinks.clientHeight + myLinks.scrollTop == myLinks.scrollHeight) {
		scrollDown.className = 'scroller hide';
	}
	else { scrollDown.className = 'scroller show'; }
}

Event.onAvailable('project-popup', function(el) {
	adjustScroll();
	
	Event.on('currentprojects','mousedown', function() {
		Dom.get('currentprojects-panel').style.display = 'block';
		Dom.get('completedprojects-panel').style.display = 'none';
		var myLinks = Dom.getElementsByClassName('popup-links','div',el)[0];
		myLinks.scrollTop = 0;
		adjustScroll();
		var nextPanel = new Scroll('popup-stages', 
			{ scroll: { to: [245,0] } }, 0.4, YAHOO.util.Easing.easeOut );
		nextPanel.animate();
	});
	
	Event.on('completedprojects','mousedown', function() {
		Dom.get('completedprojects-panel').style.display = 'block';
		Dom.get('currentprojects-panel').style.display = 'none';
		var myLinks = Dom.getElementsByClassName('popup-links','div',el)[0];
		myLinks.scrollTop = 0;
		adjustScroll();
		var nextPanel = new Scroll('popup-stages', 
			{ scroll: { to: [245,0] } }, 0.4, YAHOO.util.Easing.easeOut );
		nextPanel.animate();
	});

	Event.on('backbutton','mousedown', function() {
		var nextPanel = new Scroll('popup-stages', 
			{ scroll: { to: [0,0] } }, 0.4, YAHOO.util.Easing.easeOut );
		nextPanel.animate();
	});
	
	Event.on('selectproject','mousedown',function() {
		if(Dom.hasClass(el,'closed')) {
			Dom.replaceClass(el,'closed','open');
			var nextPanel = new Scroll('popup-stages', 
				{ scroll: { to: [0,0] } }, 0.2, YAHOO.util.Easing.easeOut );
			nextPanel.animate();			
//			var docHeight = Dom.getViewportHeight();
//			var offscreen = el.offsetHeight;
		}
		else {
			Dom.replaceClass(el,'open','closed');
		}
	});
	
	Event.on(Dom.getElementsByClassName('popup-titlebar','a',el),'mousedown',function() {
		Dom.replaceClass(el,'open','closed');
	});
	
	Event.on(Dom.getElementsByClassName('popup-link','a',Dom.get('popup-stage2')),'click',function() {
		Dom.replaceClass(Dom.get('project-popup'),'open','closed');
	});
	
	Event.on(Dom.get('popup-scrollup'),'mouseover',function(e) {
		var linkBox = Dom.getElementsByClassName('popup-links')[0];
		var scrollSpeed = Math.ceil(linkBox.scrollTop / 25) * 0.2;
		myAnim = new Scroll(linkBox, { 
			scroll: { to: [0,0] } },
			scrollSpeed );
		myAnim.onComplete.subscribe(adjustScroll);
		myAnim.animate();
	});
	Event.on(Dom.get('popup-scrolldown'),'mouseover',function(e) {
		var linkBox = Dom.getElementsByClassName('popup-links')[0];
		var scrollSpeed = Math.ceil((linkBox.scrollHeight - linkBox.scrollTop - linkBox.clientHeight) / 25) * 0.2;
		myAnim = new Scroll(linkBox, 
			{ scroll: { to: [0,linkBox.scrollHeight - linkBox.clientHeight] } },
			scrollSpeed );
		myAnim.onComplete.subscribe(adjustScroll);
		myAnim.animate();
	});
	Event.on(Dom.getElementsByClassName('scroller'),'mouseout',function(e) {
		if (myAnim && myAnim.isAnimated()) {
			myAnim.stop();
		}
	});
//	Event.on(Dom.getElementsByClassName('popup-links','div',el),'mousemove',function(e) {
//		var thisXY = Dom.getXY(this);
//		var posX = 0;
//		var posY = 0;
//
//		if (e.pageX || e.pageY) {
//			posX = e.pageX;
//			posY = e.pageY;
//		}
//		else if (e.clientX || e.clientY) 	{
//			posX = e.clientX + document.body.scrollLeft
//				+ document.documentElement.scrollLeft;
//			posY = e.clientY + document.body.scrollTop
//				+ document.documentElement.scrollTop;
//		}
//		// posx and posy contain the mouse position relative to the document
//		// Do something with this information
//		var scrollLine = 100;
//		var mouseX = posX - thisXY[0];
//		var mouseY = posY - thisXY[1];
//		// Dom.get('xy').innerHTML = mouseX + '  ' + mouseY;
//		var thisElHeight = this.clientHeight;
//		var overflow = this.scrollHeight - thisElHeight;
//		var scrollAmount = mouseY - (thisElHeight - scrollLine) + (overflow - scrollLine);
//
//		if (!myAnim || !myAnim.isAnimated()) {
//			if (mouseY > (thisElHeight - scrollLine) && scrollAmount > 0 && scrollAmount > this.scrollTop) {	
//				var theCeiling = (Math.ceil(scrollAmount / 25) * 25);
//				myAnim = new Scroll(Dom.get(this), { scroll: { to: [0,theCeiling] } },0.4, YAHOO.util.Easing.easeBoth);
//				myAnim.onComplete.subscribe(adjustScroll);
//				myAnim.animate();
//
//			}
//			if (mouseY < scrollLine && this.scrollTop > mouseY) {
//				var theFloor = (Math.floor(mouseY / 25) * 25);
//				myAnim = new Scroll(Dom.get(this), { scroll: { to: [0,theFloor] } },0.4, YAHOO.util.Easing.easeOut);
//				myAnim.onComplete.subscribe(adjustScroll);
//				myAnim.animate();
//			}
//		}
//	});
}, Dom.get('project-popup'));