// JavaScript Document

window.addEvent("domready", function(){
	def.init();
});

// default init functions
def={
	init:function(){
		//pageload.init();
		if($('navlist')){ menu.init(); }
		if($('dirSSwrap')){ dirSS.init(); }
		if($('projectswrap')){ collapse.init(); }
		if($('profiles')){ profiles.init(); }
		if($$('.emaillink')){ email.init(); }
		if($('map')){ map.init(); }
	}
}

// menu
menu={
	init:function(){
		var logofx = new Fx.Morph($('logo'),{
			'duration':700,
			'link':'cancel',
			'transition':'quint:out'
		});
		$('logo').addEvent('mouseenter',function(){
			logofx.start({
				'top':'60px'
			});
		});
		$('logo').addEvent('mouseleave',function(){
			logofx.start({
				'top':'65px'
			});
		});
		$('navlist').getElements('a').each(function(element){
			if(!element.hasClass('cursel')){
				var fx = new Fx.Morph(element,{
					'duration':700,
					'link':'cancel',
					'transition':'quint:out'
				});
				fx.set({
					'color':'#BDE7F7',
					'background-color':'#101442'
				});
				element.addEvent('mouseenter',function(){
					fx.start({
						'color':'#BDE7F7',
						'background-color':'#050923'
					});
				});
				element.addEvent('mouseout',function(){
					fx.start({
						'color':'#BDE7F7',
						'background-color':'#101442'
					});
				});
			}
		});
	}
}

// directory based slideshow (SS)
dirSS={
	init:function(){
		var imgWrap = $('dirSSview').getParent();
		imgWrap.fade('hide');
		dirSS.counter=1;
		dirSS.imgPaths = $('dirSSlist').getElements('li.paths').get('text');
		dirSS.imgLabels = $('dirSSlist').getElements('li.labels').get('text');
		var imgEl = new Element('img',{
			'id':'dirSSfader',
			'src':dirSS.imgPaths[dirSS.counter]
		});
		imgEl.set('opacity','0');
		imgEl.inject(imgWrap,'top');
		var loader = new Asset.images(dirSS.imgPaths, {
			onProgress: function(counter, index){
				if(index==0){
					imgWrap.fade('in');
					(dirSS.imgPaths.length > 1) ? dirSS.rotate.periodical(7500) : '' ;	
				}
			},
			onComplete: function(){
			}
		});
	},
	rotate:function(){
		var newSrc = dirSS.imgPaths[dirSS.counter];
		$('dirSSfader').set('src',newSrc);
		fadeTime = 1000;
		var fader = new Fx.Tween($('dirSSfader'),{
			fps:30,
			transition: 'linear',
			duration: fadeTime,
			onStart:function(){
				$('imagelabel').fade('out');
			},
			onComplete:function(){
				//$('imagelabel').fade('hide');
				$('dirSSview').set('src',newSrc);
				this.set('opacity','0');
				$('imagelabel').set('text',dirSS.imgLabels[dirSS.counter]);
				$('imagelabel').fade('in');
				dirSS.counter++;
				if(dirSS.counter==dirSS.imgPaths.length){
					dirSS.counter=0;
				}
			}
		});
		fader.start('opacity','1');
	}
}

// collapseable projects
collapse={
	init:function(){
		$$('.additionalcontent').each(function(element){
			collapse.createSlider(element);
		});
	},
	createSlider:function(element){
		element.setStyle('display','block');	
		var mySlide = new Fx.Slide(element).hide();
			if(element.getElement('.closeadditional')){
				element.getElement('.closeadditional').addEvent('click',function(){
					mySlide.slideOut();
					return false;
				});
			}
			if(element.getParent('.project').getElements('a')){
				element.getParent('.project').getElements('.projecttitle a').each(function(element){
					element.addEvent('click',function(){		  
						// load content
						var urlId = this.get('href').split("?id=")[1];
						var target = this.getParent('.project').getElement('.additionalcontent');
						mySlide.toggle();
						collapse.toggleOpenCloseBt(this.getParent('.project'));
						return false;
					});
				});
			}
			if(element.getParent('.project').getElement('.listingpic a')){
				element.getParent('.project').getElement('.listingpic a').addEvent('click',function(){
					mySlide.toggle();
					collapse.toggleOpenCloseBt(this.getParent('.project'));
					return false;
				});
			}
			if(element.getParent('.project').getElement('.openadditional a')){
				element.getParent('.project').getElement('.openadditional a').addEvent('click',function(){
					collapse.toggleOpenCloseBt(this.getParent('.project'));
					mySlide.toggle();
					return false;
				});
			}
	},
	toggleOpenCloseBt:function(element){
		if(element.getElement('.togglebutton a')){
			var toggleButton = element.getElement('.togglebutton a');
			if(toggleButton.get('text') == 'Read more'){
				toggleButton.set('text','Close');
				toggleButton.getParent().removeClass('openadditional');
				toggleButton.getParent().addClass('closeadditional');
			}else{
				toggleButton.set('text','Read more');
				toggleButton.getParent().removeClass('closeadditional');
				toggleButton.getParent().addClass('openadditional');
			}
		}
	},
	reveal:function(){
		$('singleproject').getElement('.additionalcontent').setStyle('display','block');
	}
}

// people profiles accordion
profiles={
	init:function(){
		var myAccordion = new Accordion($$('.togglers'), $$('.togEl'), {
			display: -1,
			opacity:false,
			alwaysHide: true
		});
		$$('.togglers').each(function(element){
			var fx = new Fx.Morph(element,{
				'fps':60,
				'duration':400,
				'link':'cancel',
				'transition':'quint:out'
			});
			fx.set({
				//'padding-left':'0px',
				'color':'#5ACBE7'
			});
			element.addEvent('mouseenter',function(){
				fx.start({
					//'padding-left':'8px',
					'color':'#FFF'
				});
			});
			element.addEvent('mouseleave',function(){
				fx.start({
					//'padding-left':'0px',
					'color':'#5ACBE7'
				});
			});
		});
	}
}

// non spam email addresses
email={
	init:function(){
		$$('.emaillink').each(function(element){
			var stringtext = element.get('text');
			var stringhref = element.get('href');
			element.set('text',stringtext.substitute({at:'@',dot:'.'}));
			element.set('href',stringhref.substitute({at:'@',dot:'.'}));
			//alert(stringhref);
		});
	}
}

// non spam email addresses
map={
	init:function(){
		$('mapzoom').fade('hide');
		$('map').addEvent('mouseenter',function(){
			$('mapzoom').fade('in');
		});
		$('map').addEvent('mouseleave',function(){
			$('mapzoom').fade('out');
		});
	}
}

// ajax
aj={
	init:function(){
		
	},
	request:function(url,target){
		aj.target = target;
		xhr = false;
		if(window.XMLHttpRequest){
			xhr = new XMLHttpRequest();
		}else{
			if(window.ActiveXObject){
				try{
					xhr = new ActiveXObject("Microsoft.XMLHTTP");
				}
				catch(e){}
			}
		}
		if(xhr){
			xhr.onreadystatechange = aj.showContents;
			xhr.open("GET",url,true);
			xhr.send(null);
		}else{
			alert("couldn't create XMLHttpRequest");
		}
	},
	showContents:function(){
		if(xhr.readyState == 4){
			if(xhr.status == 200){
				if(window.location.hash){
					//checkMe(window.location.hash.substring(1));
					//pageTracker._trackPageview(window.location.hash.substring(1));
				}
				var outMsg = xhr.responseText;
				aj.target.set('html',outMsg);
				// post load content init
				
			}else{
				alert("There was a problem with the request: " + xhr.status);
			}
		}
	}
}
