		window.addEvent('domready', function(){
			var maxcategories = 565;
			var minGallery = 212;	//This is primed
			var minCategory = 163;  //This is primed
			var url = "";
			var GEduration = 250;
			var currentPageClass = document.body.className;
			var currentLinks = $$('ul.'+currentPageClass+' a');
			var linkPreviousFx = new Fx.Styles($('linkPrevious'), {duration: GEduration, wait: false});
			var linkNextFx = new Fx.Styles($('linkNext'), {duration: GEduration, wait: false});
			var siteSettings = new Hash.Cookie('hashSiteCookie', {path: '/'});
			var settings = {previousType: 'none', previousPage: -1, mLocation: 0};
			
			$$('.topNav').each(function(link, i) {
				link.addEvent('click', function(e) {
					if (!link.hasClass(currentPageClass)) {
						settings = {previousType: 'none', previousPage: -1, mLocation: 0};
						siteSettings.extend(settings);
					}
				});
			});
			$(currentPageClass).addEvent('click', function(e) {
				e = new Event(e).stop();
				url = this.href;
				currentLocation = new String(window.location);
				
				//clearRedSubs();
				if ($('categories')) {
					if (siteSettings.get('previousType')) {
						settings['previousType'] = siteSettings.get('previousType');
						settings['previousPage'] = siteSettings.get('previousPage');
						settings['mLocation'] = 0;
					}
					siteSettings.extend(settings);
					categoryToGallery(url);
				} else if ($('element')) {
					if (siteSettings.get('previousType')) {
						settings['previousType'] = siteSettings.get('previousType');
						settings['previousPage'] = siteSettings.get('previousPage');
						settings['mLocation'] = 0;
					}
					siteSettings.extend(settings);
					elementToGallery(url);
				} else {
					clearRedSubs();
					settings = {previousType: 'gallery', previousPage: -1, mLocation: 0};
					siteSettings.extend(settings);
					var Images = $$('#main img');
					var galleryFx = new Fx.Elements(Images, {wait:false, duration: GEduration, transition: Fx.Transitions.Quart.easeInOut});
					var o = {};
					Images.each(function(Image, i) {
						Image.style.cursor='pointer';
						o[i] = {opacity: 1};
					});
					galleryFx.start(o);
				}
			});
			
			currentLinks.each(function(link, i) {
				link.addEvent('click', function(e) {
					e = new Event(e).stop();
					url = this.href;
					var tempMLocation = 0;
					currentLocation = new String(window.location);
							
							
					if (siteSettings.get('previousType')) {
						if ( i != siteSettings.get('previousPage')) {
							tempMLocation = 0;
						} else {
							tempMLocation = siteSettings.get('mLocation');;
						}
					}
					
					settings = {previousType: 'category', previousPage: i, mLocation: tempMLocation};
					siteSettings.extend(settings);
					this.style.color="#f2421f";
					
					if (currentLocation != url) {
						toCategory(url);
					}
				});
			});
			
			function galleryMain() {
			
				minGallery = $('gallery').getStyle('height').toInt();
				var Images = $$('#main img');
				var imagesLinks = $$('#main a');
				var groupObj = new Array();
				
				var tempVar;
				var titleVar = '';
				for(i= 0; i < currentLinks.length; i++){
					titleVar = currentLinks[i].title;
					tempVar = titleVar.split(" ", 1);
					/*
					titleVar = '';
					for (var j= 0; j< tempVar.length; j++) {
						titleVar = titleVar+"."+tempVar[j];
					}
					*/
					groupObj[i] = $$("."+tempVar);
				};
				
				
				var galleryFx = new Fx.Elements(Images, {wait:false, duration: GEduration, transition: Fx.Transitions.Quart.easeInOut});
				
				imagesLinks.each(function(link, i) {
					link.getElementsByTagName("img")[0].style.cursor='pointer';
					link.addEvent('click', function(e) {
						e = new Event(e).stop();
						if (this.getElementsByTagName("img")[0].style.cursor=='pointer') {
							if (settings['previousPage'] != -1) {
								//settings['previousType'] = 'category'; //goto type page script
								//url = currentLinks[settings['previousPage']].href;
								
								settings['previousType'] = 'gallery'; //goto type page script
								url = this.href;
							} else {
								
								/*currentLinks.each(function(current, j) {
									if (link.hasClass(currentLinks[j].title)) {
										settings = {previousType: 'category', previousPage: j};
										url = currentLinks[j].href;
									}
								});
								*/
								
								settings['previousType'] = 'gallery'; //goto type page script
								url = this.href;
							}
							removeGallerySubEvents();
							siteSettings.extend(settings);
							//galleryToCategory(url); //goto type page script
							galleryToElement(url);
						}
					});
				});
				
				if (siteSettings.get('previousType')) {
					settings['previousType'] = 'gallery';
					settings['previousPage'] = siteSettings.get('previousPage');
					settings['mLocation'] = 0;
					if (settings['previousPage'] != -1) {
						currentLinks[settings['previousPage']].style.color="#f2421f";
						var o = {};
						imagesLinks.each(function(imagesLink, i) {
							imagesLink.getElementsByTagName("img")[0].style.cursor='default';
							o[i] = {opacity: .2};
							groupObj[settings['previousPage']].each(function(current, j) {
								if(current == imagesLink) {
									imagesLink.getElementsByTagName("img")[0].style.cursor='pointer';
									o[i] = {opacity: 1};
								}
							});
						});
						galleryFx.start(o);
					}
				} else {
					settings['previousType'] = 'gallery';
					settings['previousPage'] = -1;
					settings['mLocation'] = 0;
				}
				
				currentLinks.each(function(link, c) {
					link.addEvent('mouseenter', function(event){
						clearRedSubs();
						settings['previousPage'] = c;
						link.style.color="#f2421f";
						var o = {};
						imagesLinks.each(function(imagesLink, i) {
							imagesLink.getElementsByTagName("img")[0].style.cursor='default';
							o[i] = {opacity: .2};
							groupObj[c].each(function(current, j) {
								if(current == imagesLink) {
									imagesLink.getElementsByTagName("img")[0].style.cursor='pointer';
									o[i] = {opacity: 1};
								}
							});
						});
						galleryFx.start(o);
					});
					link.addEvent('mouseleave', function(event){
						link.style.color="#f2421f";
					});
				});
			};
			
			function categoryMain() {
			
				//previousPage = categoryUrl;
				minCategory = $('categories').getStyle('height').toInt();
				
				linkPreviousFx.set({'top' : 150});
				linkNextFx.set({'top' : 150});
				
				var	categoryButtons = $$('.category');
				var categories = $('categories');
				var scroll = new Fx.Scroll('main', {wait: false, duration: 1000, offset: {'x': -15, 'y': 0}, transition: Fx.Transitions.Quad.easeOut});
				
				
				var tempNum = $$('.categoryRoll').length - 4;
				
				var currentScroll = 0;
				
				if (siteSettings.get('mLocation')) {
					currentScroll = siteSettings.get('mLocation');
					scroll.toElement(($$('.categoryRoll')[currentScroll].id));
				}
				
				
				
				
				/* //NEW NEW NEW NEW
				
				var distance=0;
				var prevX=0;
				var draggable = $('categories');
				draggable.makeDraggable({
					modifiers:{x:'left',y:0},
					onDrag: function(){
						distance = draggable.getStyle('left').toInt() -  prevX;
						prevX = draggable.getStyle('left').toInt();
					},
					onComplete: function(){
						var to = draggable.getStyle('left').toInt()+distance*10;
						var dura = 500 + Math.abs(distance * 10);
						draggable.effect('left',{
							transition: Fx.Transitions.cubicOut,
							duration: dura
						}).start(to);
					}
				});
				
				
				//END NEW END NEW END NEW */
			
				if (siteSettings.get('previousType')) {
					settings['previousType'] = siteSettings.get('previousType');
					settings['previousPage'] = siteSettings.get('previousPage');
					settings['mLocation'] = siteSettings.get('mLocation');
				} else {
					settings['previousType'] = 'category';
					settings['mLocation'] = 0;
					currentLocation = new String(window.location);
					
				
					var tempSart = currentLocation.lastIndexOf("/");
					tempSart++; // not include the '/'
					var tempEnd = currentLocation.length;
					currentLocation = currentLocation.slice(tempSart,tempEnd);
					settings['previousPage'] = -1;
					var i = 0;
					while ((i < currentLinks.length) && (settings['previousPage'] < 0))  {
						if ((currentLinks[i].href.indexOf(currentLocation)) >= 0) {
							settings['previousPage'] = i;
						}
						i++
					}
				}
				
				
				
				if (settings['previousPage'] != -1)	currentLinks[settings['previousPage']].style.color="#f2421f";
				if ($$('.categoryRoll').length > 4) {
					if (currentScroll >= tempNum) {
						linkNextFx.start({'opacity' : 0});
					} else {
						linkNextFx.start({'opacity' : 1});
					}
					if (currentScroll > 0) linkPreviousFx.start({'opacity' : 1});
				}
				
				$('linkPrevious').addEvent('click', function(e) {
					e = new Event(e).stop();
					currentScroll -= 4;
					if (currentScroll < 0) currentScroll = 0;
					if (currentScroll == 0) linkPreviousFx.start({'opacity' : 0});
					if ($$('.categoryRoll').length > 4) linkNextFx.start({'opacity' : 1});
					scroll.toElement(($$('.categoryRoll')[currentScroll].id));
					settings['mLocation'] = currentScroll;
				});
				$('linkNext').addEvent('click', function(e) {
					e = new Event(e).stop();
					if ($$('.categoryRoll').length > 4) {
						if (currentScroll == 0) linkPreviousFx.start({'opacity' : 1});
						currentScroll += 4;
						if (currentScroll > tempNum) currentScroll = tempNum;
						if (currentScroll == tempNum) linkNextFx.start({'opacity' : 0});
						scroll.toElement(($$('.categoryRoll')[currentScroll].id));
						settings['mLocation'] = currentScroll;
					}
				});
				
				categoryButtons.each(function(cat, i) {
					cat.onmouseover = function(event){
						this.getElementsByTagName("a")[0].style.left="-166px";
						this.getElementsByTagName("a")[1].style.color="white";
						this.getElementsByTagName("a")[1].getElementsByTagName("span")[0].style.backgroundPosition="-14px 0";
					};
					cat.onmouseout = function(event){
						this.getElementsByTagName("a")[0].style.left="0";
						this.getElementsByTagName("a")[1].style.color="";
						this.getElementsByTagName("a")[1].getElementsByTagName("span")[0].style.backgroundPosition="0 0";
					};
					cat.addEvent('click', function(e) {
						e = new Event(e).stop();
						url = this.getElementsByTagName('a')[0].href;						
						siteSettings.extend(settings);
						categoryToElement(url);
					});
				});
			};
			
			function elementMain() {
			
			/*
				linkPreviousFx.set({'top' : 275,'left' : 350});
				linkNextFx.set({'top' : 275});
				
				linkPreviousFx.start({'opacity' : 1});
				linkNextFx.start({'opacity' : 1});
				
				
				$('linkPrevious').addEvent('click', function(e) {
						e = new Event(e).stop();
						url = this.href;
						elementToElement(url);
				});
				 
				$('linkNext').addEvent('click', function(e) {
						e = new Event(e).stop();
						url = this.href;
						elementToElement(url);
				});
			*/
			
				if (siteSettings.get('previousType')) {
					settings['previousType'] = siteSettings.get('previousType');
					settings['previousPage'] = siteSettings.get('previousPage');
					settings['mLocation'] = siteSettings.get('mLocation');
				} else {
					settings['previousType'] = 'none';
					settings['previousPage'] = -1;
					settings['mLocation'] = 0;
				}
				
				if (settings['previousPage'] != -1)	currentLinks[settings['previousPage']].style.color="#f2421f";
				
				var elementLinks = $$('.elGalLink');
				elementLinks.each(function(link, i) {
					if (!link.hasClass('launchLink')) {
						link.addEvent('click', function(e) {
							e = new Event(e).stop();
						});
					}
				});
				
				var listItems = document.getElementById("element").getElementsByTagName("li");
				listItems[0].getElementsByTagName("h2")[0].style.visibility="visible";
				listItems[0].getElementsByTagName("h3")[0].style.visibility="visible";
				listItems[0].getElementsByTagName("a")[0].style.color="white";
				listItems[0].getElementsByTagName("span")[0].style.backgroundPosition="0 0";
				if (listItems[0].getElementsByTagName("p")[0]) listItems[0].getElementsByTagName("p")[0].style.visibility="visible";
				listItems[0].getElementsByTagName("img")[0].style.visibility="visible";
				for (var y= 1; y< listItems.length; y++){
					listItems[y].getElementsByTagName("h2")[0].style.visibility="hidden";
					listItems[y].getElementsByTagName("h3")[0].style.visibility="hidden";
					listItems[y].getElementsByTagName("a")[0].style.color="#1a1a1a";
					listItems[y].getElementsByTagName("span")[0].style.backgroundPosition="-21px 0";
					if (listItems[0].getElementsByTagName("p")[0]) listItems[0].getElementsByTagName("p")[0].style.visibility="hidden";
					listItems[y].getElementsByTagName("img")[0].style.visibility="hidden";
				};
				for (var i= 0; i< listItems.length; i++){
					listItems[i].getElementsByTagName("a")[0].onmouseover = function(event){
					
						for (var j= 0; j< listItems.length; j++){
							if (listItems[j] != listItems[i]) {
								listItems[j].getElementsByTagName("h2")[0].style.visibility="hidden";
								listItems[j].getElementsByTagName("h3")[0].style.visibility="hidden";
								listItems[j].getElementsByTagName("a")[0].style.color="#1a1a1a";
								listItems[j].getElementsByTagName("span")[0].style.backgroundPosition="-21px 0";
								if (listItems[0].getElementsByTagName("p")[0]) listItems[0].getElementsByTagName("p")[0].style.visibility="hidden";
								listItems[j].getElementsByTagName("img")[0].style.visibility="hidden";
							}
						}
						this.parentNode.getElementsByTagName("h2")[0].style.visibility="visible";
						this.parentNode.getElementsByTagName("h3")[0].style.visibility="visible";
						this.parentNode.getElementsByTagName("a")[0].style.color="white";
						this.parentNode.getElementsByTagName("span")[0].style.backgroundPosition="0 0";
						if (listItems[0].getElementsByTagName("p")[0]) listItems[0].getElementsByTagName("p")[0].style.visibility="visible";
						this.parentNode.getElementsByTagName("img")[0].style.visibility="visible";
					};
				};
				if (settings['previousType'] != 'none') {
					var closeFX = new Fx.Styles($('close'), {duration: GEduration, wait: false});
					closeFX.start({'opacity' : 1});
					
					
					$('close').addEvent('mouseenter', function(event) {
						$('close').style.backgroundPosition="0 0";
					});
					
					$('close').addEvent('mouseleave', function(event) {
						$('close').style.backgroundPosition="-15px 0";
					});
					
					$('close').addEvent('click', function(event) {
						$('close').removeEvent('mouseleave');
						if (settings['previousType'] == 'gallery') {
							url =  $(currentPageClass).href;
							elementToGallery(url);
						} else if (settings['previousType'] == 'category') {
							url = currentLinks[settings['previousPage']].href;
							currentLocation = new String(window.location);
							if (currentLocation == url) {
								url = $(currentPageClass).href;
								elementToGallery(url);
							} else {
								elementToCategory(url);
							}
						}
					});
				}
			};	

			function galleryToCategory(url) {
				var Images = $$('#main img');
				var imagesFx = new Fx.Elements(Images, {wait:false, duration: GEduration, transition: Fx.Transitions.Quart.easeInOut});
				
				var o = {};
				Images.each(function(Image, i) {
					   o[i] = {opacity: 0};
				});
			
				imagesFx.start(o).chain(function(){
									window.location=url;
									/*
									new Ajax(url, {
										method: 'get',
										update: $('mainWork'),
										onComplete: function() {
											categoryMain();
										}
									}).request();
									*/
								});
			};
			
			function categoryToCategory(url) {
				var categoryButtons = $$('.category');
				var scroll = new Fx.Scroll('main', {wait: false, duration: 750, offset: {'x': -15, 'y': 0}, transition: Fx.Transitions.Quad.easeInOut});
				var categoriesFx = new Fx.Styles($('categories'), {duration: GEduration, wait: false});
				
				vanishFx = new Fx.Elements(categoryButtons, {duration: GEduration, wait: false});
				var o = {};
				categoryButtons.each(function(categoryButton, i) {
					o[i] = {'opacity' : 0}
				});
				
				categoriesFx.start({'background-color': '#666'});
				scroll.toElement(($$('.categoryRoll')[0].id));
				vanishFx.start(o).chain(function(){
									window.location= url;
									/*
									new Ajax(url, {
										method: 'get',
										update: $('mainWork'),
										onComplete: function() {
											categoryMain();
										}
									}).request();
									*/
								});
			};
			
			function elementToElement(url) {
				var elementFX = new Fx.Styles($('element'), {duration: GEduration, wait: false});
				elementFX.start({'opacity' : 0
								}).chain(function(){
									window.location= url;
								})
			}
			
			function categoryToElement(url) {
				var categoryButtons = $$('.category');
				var scroll = new Fx.Scroll('main', {wait: false, duration: 750, offset: {'x': -15, 'y': 0}, transition: Fx.Transitions.Quad.easeInOut});
				var accordionFx = new Fx.Styles($('bottomCol'), {duration: GEduration, wait: false});
				var vanishFx = new Fx.Elements(categoryButtons, {duration: GEduration, wait: false});
				var o = {};
				categoryButtons.each(function(categoryButton, i) {
					o[i] = {'opacity' : 0}
				});
				vanishFx.start(o);
				linkPreviousFx.set({'opacity': 0});
				linkNextFx.set({'opacity': 0});
				
				scroll.toElement(($$('.categoryRoll')[0].id));
				var categoriesFx = new Fx.Styles($('categories'), {duration: GEduration, wait: false});
				categoriesFx.start({'margin': '0 0 0 220px', 'background-color': '#666'
								}).chain(function(){
									categoriesFx.start({height: maxcategories, 'padding': 0});
									accordionFx.start({'opacity': 0, 'margin-top': 0, 'height': 0});
								}).chain(function(){
									window.location= url;
									/*
										new Ajax(url, {
											method: 'get',
											update: $('mainWork'),
											onComplete: function() {
												elementMain();
											}
										}).request();
										*/
								});
			};
			
			function galleryToElement(url) {
				var Images = $$('#main img');
				var accordionFx = new Fx.Styles($('bottomCol'), {duration: GEduration, wait: false});
				var galleryFx = new Fx.Styles($('gallery'), {duration: GEduration, wait: false});
				var imagesFx = new Fx.Elements(Images, {wait:false, duration: GEduration, transition: Fx.Transitions.Quart.easeInOut,
										onComplete: function() {
											accordionFx.start({'opacity': 0, 'margin-top': 0, 'height': 0});
											galleryFx.start({'margin': '0 0 0 220px', 'background-color': '#666','height': maxcategories, 'padding': 0}).chain(function(){
																						window.location= url;
																						/*
																							new Ajax(url, {
																								method: 'get',
																								update: $('mainWork'),
																								onComplete: function() {
																									elementMain();
																								}
																							}).request();
																							*/
											});
	
										}});
				var o = {};
				Images.each(function(Image, i) {
					   o[i] = {opacity: 0};
				});
				imagesFx.start(o);
	
			};
			
			function categoryToGallery(url) {
				var categoryButtons = $$('.category');
				var scroll = new Fx.Scroll('main', {wait: false, duration: 750, offset: {'x': -15, 'y': 0}, transition: Fx.Transitions.Quad.easeInOut});
				
				
				vanishFx = new Fx.Elements(categoryButtons, {duration: GEduration, wait: false});
				var o = {};
				categoryButtons.each(function(categoryButton, i) {
					o[i] = {'opacity' : 0}
				});
				
										
				scroll.toElement(($$('.categoryRoll')[0].id));
				vanishFx.start(o).chain(function(){
								window.location= url;
								});
			};
			
			function elementToGallery(url) {
			/*
				linkPreviousFx.set({'opacity' : 0});
				linkNextFx.set({'opacity' : 0});
			*/
				var elementFX = new Fx.Styles($('element'), {duration: GEduration, wait: false});
				elementFX.start({'margin': '0 0 0 0', 'height': minGallery, 'padding': '37px 5px 55px 10px'
								}).chain(function(){
									elementFX.start({'opacity' : 0, 'background-color': '#f2421f'});
								}).chain(function(){
									window.location = url;
								})
			};
			
			function elementToCategory(url) {
			
			/*
				linkPreviousFx.set({'opacity': 0});
				linkNextFx.set({'opacity': 0});
			*/
				var elementFX = new Fx.Styles($('element'), {duration: GEduration, wait: false});
				elementFX.start({'margin': '0 0 0 0', 'height': minCategory, 'padding': '96px 5px 49px 10px','opacity' : 0, 'background-color': '#f2421f'
								}).chain(function(){
									window.location=url;
									/*
									new Ajax(url, {
										method: 'get',
										update: $('mainWork'),
										onComplete: function() {
											categoryMain();
										}
									}).request();
									*/
								})
			};

			function clearRedSubs() {
				currentLinks.each(function(link, i) {
						link.style.color="#fff";
				});
			};
			
			function toCategory(url) {
			
				removeGallerySubEvents();
						
				if ($('element')) {
					elementToCategory(url);
				} else if ($('gallery')) {
					galleryToCategory(url);
				} else if ($('categories')) {
					categoryToCategory(url);
				}
			};
			
			function removeGallerySubEvents() {
				currentLinks.each(function(link, i) {		
					link.removeEvents('mouseenter');
					link.removeEvents('mouseleave');
				});
			}
	
			if ($('gallery')) {
				galleryMain();
			} else if ($('categories')) {
				categoryMain();
			} else if ($('element')) {
				elementMain();
			}
			
		});