
	window.addEvent('domready', function(){
		
		
		var stopClicks = false;
		
		var mainWidth = 914;
		var sectionWidth = 30;
		var infoWidth = [30, 120];
		var imagesWidth = [30, 95];
		var imageColumns = 1;
		
		
		var projectsOpen = false;
		var sectionOpen = false;
		var infoOpen = false;
		var imagesOpen = false;
		var projectLoaded = false;
		
		
		var sectionYPositions = [0, -914, -1828, -2742, -3656];
		var sectionXPositions = [0, 0, -316, -632, -948, -1264];
		
		
		var menuCloseChain = new Chain();
		var menuOpenChain = new Chain();
		
		
		
		var pageRequest = new Request.HTML({
			link: 'cancel',
			onRequest: function() {
				$('maincontent').removeClass('loading-error').addClass('loading').empty();
			},
			onSuccess: function(responseTree, responseElements, responseHTML, responseJavaScript) {
				$('maincontent').removeClass('loading').set('html', responseHTML);
				if($defined($('section'))) {
					$('info').set('tween', { link:'chain' });
					$('section').morph({'background-position': '0px 0px'});
					$('info').morph({'background-position': '0px 0px'}).setStyle('left', 944);
					$('images').morph({'background-position': '0px 0px'}).setStyle('left', 974);
					$('info').getElement('div.textbox').fade('hide');
					$('section').setStyle('left', 914);
				};
				if($defined($('projectimages'))) {
					$('projectimages').fade('hide');
				};
				
				if($defined($('scrollme'))) {
					var scrollbar = new UvumiScrollbar("scrollme");	
				}
				
			},
			onFailure: function() {
				$('maincontent').removeClass('loading').addClass('loading-error');
			}							   
		});
		
		var projectInfoReq = new Request.HTML({
			link: 'cancel',
			onRequest: function() {
				$('info').addClass('loading').empty();
				displayInfo(false);
			},
			onSuccess: function(responseTree, responseElements, responseHTML, responseJavaScript) {
				$('info').removeClass('loading').set('html', responseHTML);
				if(infoOpen == true) {
					displayInfo(true);
				} else {
					$('info').getElement('div.textbox').fade('hide');
				}
			},
			onFailure: function() {
				$('info').removeClass('loading').set('html', '<h2>Error</h2>');
			}							   
		});
		
		var projectImagesReq = new Request.HTML({
			link: 'cancel',
			onRequest: function() {
				$('projectimages').fade('in');
				$('images').addClass('loading').empty();
				displayImages(false);
			},
			onSuccess: function(responseTree, responseElements, responseHTML, responseJavaScript) {
				eval(responseJavaScript);
				$('images').removeClass('loading').set('html', responseHTML);
				if(imagesOpen == true) {
					displayImages(true);
				} else {
					$('images').getElements('ul.imagelist').fade('hide');
				}
				tweenSection(true);
			},
			onFailure: function() {
				$('images').removeClass('loading').set('html', '<h2>Error</h2>');
			}							   
		});
		
		
		var currentMainImage;
		var projectMainImgReq = new Request.HTML({
			link: 'cancel',
			onRequest: function() {
				if(projectLoaded == true) {
					$('projectimageunder').empty().set('html', currentMainImage).fade('show').fade('out');
				}
				$('projectimageover').fade('hide');
			},
			onSuccess: function(responseTree, responseElements, responseHTML, responseJavaScript) {
				$('projectimageover').empty().set('html', responseHTML).fade('in');
				currentMainImage = responseHTML;
			},
			onFailure: function() {
				$('projectimage').empty();
			}							   
		});
		
		
		/* ========== SETUP MENU ========== */
		$$('#menu li.projectSection').each(function(els) {
			els.open_width = els.getStyle('width').toInt();
			els.setStyle('display', 'none');
			els.set('tween', {
				duration: 100,
				link: 'chain',
				transition: Fx.Transitions.Sine.easeInOut,
				onComplete: function(){
					if(projectsOpen == false) {
						menuOpenChain.callChain();
					} else {
						menuCloseChain.callChain();
						els.setStyle('display', 'none');
					}
				}
			});
			
			els.getElement('ul').fade('hide');
		});
		
		
		$('menu').addEvents({
			'click(li.loadPage a)': function(e, el) {
				e.stop();
				if(stopClicks == false) {
				
					pageRequest.send({url: el.getProperty('href').replace('.html', '.ajax')});
					if(projectsOpen == true) {
						menuCloseChain.callChain();
					}
					resetActive(1);
					el.addClass('active');
					
					projectLoaded = false;

				}
			},
			'click(li.loadProjects a)': function(e, el) {
				e.stop();
				if(stopClicks == false) {
				if(projectsOpen == false) {
					//stopClicks = true;
					
					/* ----- open menu chain ----- */
					menuOpenChain.clearChain();
					$$('#menu li.projectSection').each(function(els) {
						els.setStyle('width', 0);
						els.setStyle('display', 'block');
						els.getElement('a').fade('hide');
						menuOpenChain.chain(function() {
							els.tween('width', els.open_width);
							els.getElement('a').fade('in');
						});
					});
					menuOpenChain.chain(function() { projectsOpen = true; stopClicks = false; });
					
					/* ----- close menu chain ----- */
					menuCloseChain.clearChain();
					$$('#menu li.projectSection').reverse().each(function(els) {
						menuCloseChain.chain(function() {
							els.tween('width', 0);
							els.getElement('a').fade('out');
						});
					});
					menuCloseChain.chain(function() { projectsOpen = false; stopClicks = false; });
					
					menuOpenChain.callChain();
					pageRequest.send({url: el.getProperty('href').replace('.html', '.ajax')});
					resetActive(1);
					el.addClass('active');
					
					projectLoaded = false;
					
				}
				}
			},
			'click(li.projectSection a.pro)': function(e, el) {
				e.stop();
				if(stopClicks == false) {
					
					resetActive(2);
					$$('#menu li.projectSection').each(function(els, i) {
						if(els == el.getParent('li')) {
							els.getElement('ul').fade('in');
							$('backgrounds').tween('left', sectionYPositions[(i+1)]);
							$('section').morph({'background-position': '0px '+sectionXPositions[(i+1)]+'px'});
						}
					});
					
					if($defined($('projectimageover'))) {
						$('projectimages').fade('out');
						$('projectimageover').fade('out');
						$('projectimageunder').fade('out');
					};
					
					el.addClass('active');

					infoOpen = false;
					imagesOpen = false;
					tweenSection();
					
					
					projectLoaded = false;
				}
			},
			'click(li.Mproject a)': function(e, el) {
				e.stop();
				
					projectInfoReq.send({url: el.getProperty('href').replace('.html', '.ajax')});
					projectImagesReq.send({url: el.getProperty('href').replace('.html', '.images')});
					projectMainImgReq.send({url: el.getProperty('href').replace('.html', '.main')});
					resetActive(3);
					el.addClass('active');
					
					
					projectLoaded = true;
				
			}
		});
		
		$('maincontent').addEvents({
			'click(div#info div.mouseme)': function(e, el) {
				infoOpen = (infoOpen == true) ? false : true;
				tweenSection(true);
			},
			'click(a.slimme)': function(e, el) {
				e.stop();
				Slimbox.open(el.getProperty('href'), el.getProperty('title'));
			},
			'click(div#images div.mouseme)': function(e, el) {
				imagesOpen = (imagesOpen == true) ? false : true;
				tweenSection(true);
			}
		});
		
		
		function displayInfo(dir) {
			if($defined($('info').getElement('div.textbox'))) {
				$('info').getElement('div.textbox').set('tween', { link:'chain' });
				if(dir == false) {
					$('info').getElement('div.textbox').fade('out');
				} else {
					$('info').getElement('div.textbox').fade('in');	
				}
			}	
		}
		function displayImages(dir) {
			if($defined($('images').getElement('ul.imagelist'))) {
				$('images').getElements('ul.imagelist').set('tween', { link:'chain' });
				if(dir == false) {
					$('images').getElements('ul.imagelist').fade('out');
				} else {
					$('images').getElements('ul.imagelist').fade('in');	
				}
			}
		}
		function tweenSection(project) {
			blockx = 0;
			infox = 0;
			infobg = '0px 0px';
			imagesx = 0;
			imagesbg = '0px 0px';
			infoOpenX = (infoOpen == true) ? 1 : 0;
			imagesOpenX = (imagesOpen == true) ? 1 : 0;
			if(infoOpen == false && imagesOpen == false) {
				if(project == true) { blockx = (mainWidth - sectionWidth - infoWidth[infoOpenX] - imagesWidth[imagesOpenX]); } else { blockx = (mainWidth - sectionWidth);}
				if(project == true) {
					infox = mainWidth - infoWidth[infoOpenX] - imagesWidth[imagesOpenX];
					imagesx = mainWidth - imagesWidth[imagesOpenX];
				} else {
					infox = mainWidth;
					imagesx = mainWidth + sectionWidth;
				}
				infobg = '0px 0px';
				imagesbg = '0px 0px';
				displayInfo(false);
				displayImages(false);
			} else if(infoOpen == true && imagesOpen == false) {
				
				blockx = (mainWidth - sectionWidth - infoWidth[infoOpenX] - imagesWidth[imagesOpenX]);
				infox = mainWidth - infoWidth[infoOpenX] - imagesWidth[imagesOpenX];
				imagesx = mainWidth - imagesWidth[imagesOpenX];
				infobg = '0px -316px';
				imagesbg = '0px 0px';
				displayInfo(true);
				displayImages(false);
			} else if(infoOpen == false && imagesOpen == true) {
				blockx = (mainWidth - sectionWidth - infoWidth[infoOpenX] - imagesWidth[imagesOpenX] - (60 * (imageColumns-1)));
				infox = mainWidth - infoWidth[infoOpenX] - imagesWidth[imagesOpenX] - (60 * (imageColumns-1));
				imagesx = mainWidth - imagesWidth[imagesOpenX] - (60 * (imageColumns-1));
				infobg = '0px 0px';
				imagesbg = '0px -316px';
				displayInfo(false);
				displayImages(true);
			} else if(infoOpen == true && imagesOpen == true) {
				blockx = (mainWidth - sectionWidth - infoWidth[infoOpenX] - imagesWidth[imagesOpenX] - (60 * (imageColumns-1)));
				infox = mainWidth - infoWidth[infoOpenX] - imagesWidth[imagesOpenX] - (60 * (imageColumns-1));
				imagesx = mainWidth - imagesWidth[imagesOpenX] - (60 * (imageColumns-1));
				infobg = '0px -316px';
				imagesbg = '0px -316px';
				displayInfo(true);
				displayImages(true);
			}
			
			$('section').tween('left', blockx);
			$('info').morph({
				'left': infox,
				'background-position': infobg
			});
			$('images').morph({
				'left': imagesx,
				'background-position': imagesbg
			});
		}
		
		function resetActive(level) {
			imageColumns = 1;
			if(level == 1) {
				$$('#menu li.loadPage').each(function(els) {
					els.getElement('a').removeClass('active');
				});
				$$('#menu li.projectSection').each(function(els) {
					els.getElement('a').removeClass('active');
					els.getElement('ul').fade('out');
				});
				$$('#menu li.Mproject').each(function(els) {
					els.getElement('a').removeClass('active');
				});
				$$('#menu li.loadProjects').each(function(els) {
					els.getElement('a').removeClass('active');
				});
			}
			if(level == 2) {
				$$('#menu li.projectSection').each(function(els) {
					els.getElement('a').removeClass('active');
					els.getElement('ul').fade('out');
				});
				$$('#menu li.Mproject').each(function(els) {
					els.getElement('a').removeClass('active');
				});
			}
			if(level == 3) {
				$$('#menu li.Mproject').each(function(els) {
					els.getElement('a').removeClass('active');
				});
			}
		}
	
	});
