// JavaScript Document

function ContentScroller(){
	this.scrollTmr=null;
	this.init=function(scrollObjNm,containerObjId,scrollDownId,scrollUpId,scrollZoneId){ 
			this.initialized=true;
			this.downEl=$(scrollDownId);
			this.downEl.scrollObj=this; 
			this.downEl.onmouseup=function(){this.scrollObj.nextZone()}				
			this.upEl=$(scrollUpId);
			this.upEl.scrollObj=this; 
			this.upEl.onclick=function(){this.scrollObj.prevZone()}	
			
			this.scrollZone=$(scrollZoneId);
			this.scrollZone.scrollObj=this;
			this.scrollZone.addEvent('scroll', function(e){
				this.scrollObj.scrollTargetPos=0;
			});			
			this.zones=$ES('li',this.scrollZone); 
	}
	this.scrollTargetPos=0;
	this.nextZone=function(){ 
		var scrollPos=this.scrollZone.getScroll().y;
		var scrollZone=this.scrollZone;
		var newScrollPos=0;
		var prevEl=0; 
		var scrollTargetPos=this.scrollTargetPos;
		this.zones.each(function(el,i){ 
			elPos=el.getPosition(scrollZone).y+el.getSize().y; 
			if( elPos > scrollPos && newScrollPos==0 && elPos>scrollTargetPos && (elPos-scrollPos)>80 ){
				newScrollPos=elPos; 
			} 
		}) 
		if(newScrollPos==0){
			var ss=scrollZone.getScrollSize().y;
			var s=scrollZone.getSize().y;
			if(ss>s)  newScrollPos=ss-s;			
		}
		if(this.scrollFX && typeof(this.scrollFX.cancel)=='function') this.scrollFX.cancel();
		this.scrollFX = new Fx.Scroll(this.scrollZone, { duration: 400, transition: Fx.Transitions.Quad.easeOut });
		this.scrollFX.scrollObj=this;
		//this.scrollFX.addEvent('onComplete',function(){ this.scrollObj.scrolling=0; });	
		this.scrollTargetPos=newScrollPos;
		this.scrollFX.scrollTo(0,newScrollPos);		
	}
	this.prevZone=function(){ 
		var scrollPos=this.scrollZone.getScroll().y;
		var newScrollPos=0;
		var scrollZone=this.scrollZone;
		var scrollTargetPos=this.scrollTargetPos; 
		if(!scrollTargetPos) scrollTargetPos=100000;
		this.zones.each(function(el,i){ 
			elPos=el.getPosition(scrollZone).y+el.getSize().y;
			if(elPos < scrollPos && elPos>0 && elPos<scrollTargetPos){
				newScrollPos=elPos;  
			}
		}) 
		if(this.scrollFX && typeof(this.scrollFX.cancel)=='function') this.scrollFX.cancel();
		this.scrollFX = new Fx.Scroll(this.scrollZone, { duration: 400, transition: Fx.Transitions.Quad.easeOut });
		this.scrollFX.scrollObj=this;
		//this.scrollFX.addEvent('onComplete',function(){ this.scrollObj.scrolling=0; });		
		this.scrollTargetPos=newScrollPos;
		this.scrollFX.scrollTo(0,newScrollPos);	
	}
}

var popupObj;
function showPopup(img,bg){
		popupObj=popupHelper.getPopup('image'); 
		popupObj.innerHTML="<div id='popupBody'>Loading...</div>"; 
		new Ajax("popup.php?ID="+img,{
				 method: 'get', 
				 update: $('popupBody'),
				 onSuccess: function() {
						popupObj.showMe();
						popupHelper.sizeWipe();
					}
				 }).request();		
}
function showContact(aTag){
	$('portfolio').setStyle('display','none');
	$('contact').setStyle('display','block');	
	$('portfolioLink').removeClass('selected');
	$('contactLink').addClass('selected');
}
function showPortfolio(){
	$('portfolio').setStyle('display','block');
	$('contact').setStyle('display','none'); 
	$('portfolioLink').addClass('selected');
	$('contactLink').removeClass('selected');
}


var portfolioScroller;
$(document).addEvent('keydown', function(e){
			if(!portfolioScroller.initialized) return;
			if(e.code==40) portfolioScroller.nextZone();
			if(e.code==38) portfolioScroller.prevZone();
});
//document.addEvent('keyup', function(event){ if(!portfolioScroller.initialized) return; 	portfolioScroller.stopScroll(); });

function sizePortfolioZone(){ $('scrollZone').setStyle('height',(window.getHeight().toInt()-180)+'px')  }
window.onresize=function(){sizePortfolioZone()}

window.addEvent("domready",function(){
				portfolioScroller=new ContentScroller();
				portfolioScroller.init('portfolioScroller','portfolio','scrollDownTrigger','scrollUpTrigger','scrollZone')
				sizePortfolioZone();
				
				var accordion = new Accordion('h3.atStart', 'div.atStart', {
					opacity: false,
					onActive: function(toggler, element){
						toggler.setStyle('font-weight', 'bold');
						//$(toggler).addClass('attention'); 
					},		
					onBackground: function(toggler, element){
						toggler.setStyle('font-weight', 'normal');
						//$(toggler).removeClass('attention'); 
					}
				}, $('accordion'));		
				
				$ES('h3').each(function(el){
					el.addEvent('mouseover',function(){ $(this).addClass('over')})
					el.addEvent('mouseout',function(){ $(this).removeClass('over')})
				})
		})