function Morpher(){

	var open = false;
	
	var longText = null;
	var scrollbarContent = null;
	var longTextBig = null;
	
	var morph = null;
	var topOpen = null;
	var topClosed = null;
	var textHeightOpen = null;
	var textHeightClosed = null;
	var getScrollbarSliderHeight = null;
	
	this.init = function(topOpen, textHeightOpen, textHeightClosed, getScrollbarSliderHeight, topClosed){
		
		$('scrollbarContent').removeClass("noJs");
		$('typographySmall').removeClass("noJs");
		
		this.topOpen = topOpen;
		this.topClosed = topClosed;
		this.textHeightOpen = textHeightOpen;
		this.textHeightClosed = textHeightClosed;
		this.getScrollbarSliderHeight = getScrollbarSliderHeight;
		longText = $('typographySmall');
		longTextBigImage = $('typographySmallTextBigImage');
		scrollbarContent = $('scrollbarContent');
		longTextBig = $('typography');
		
		morphTnI = new Fx.Morph('typographyBG', {
			duration: 1000,
			transition: Fx.Transitions.Expo.easeOut,
			link: 'chain',
			onComplete: function(){
			scrollbar.init(true, $('scrollbarWrapper'), 10);
			}
		});
		
		
		morphStart = new Fx.Morph('typographyBG', {
			duration: 1000,
			transition: Fx.Transitions.Expo.easeOut,
			link: 'cancel',
			onComplete: function(){
			scrollbar.init(true, $('scrollbarWrapper'), 10);
			}
		});
		
		morphAboutMe = new Fx.Morph('typographyWrapperSmall', {
			 duration: 0,
			 link: 'cancel',
			 onComplete: function(){
			 scrollbar.init(true, $('scrollbarWrapper'));
			 }
		});
		
		morphTnB = new Fx.Morph('wrapper', {
			 duration: 0,
			 link: 'cancel',
			 onComplete: function(){
			 scrollbar.init(true, $('scrollbarWrapper'));
			}
		});
		
		
		
		
		
		
		
		/*
		 morphTnBI = new Fx.Morph('typographyBGTextBigImage', {
		 duration: 1000,
		 transition: Fx.Transitions.Expo.easeOut,
		 link: 'cancel',
		 onComplete: function(){
		 scrollbar.init(true, $('scrollbarWrapper'), 10);
		 }
		 });
		 

		 
		 morphNorm = new Fx.Morph('wrapper', {
		 duration: 1000,
		 transition: Fx.Transitions.Expo.easeOut,
		 link: 'cancel',
		 onComplete: function(){
		 scrollbar.init(true, $('scrollbarWrapper'), 10);
		 }
		 });
		 
		 morphStart = new Fx.Morph('wrapperStart', {
		 duration: 1000,
		 transition: Fx.Transitions.Expo.easeOut,
		 link: 'cancel',
		 onComplete: function(){
		 scrollbar.init(true, $('scrollbarWrapper'), 10);
		 }
		 });
		 
		 }
		 */
		this.openTnI = function(){

			$('scrollbarSlider').style.height = this.getScrollbarSliderHeight;
			
			
			morphContent = new Fx.Morph('typographySmall', {
				duration: 1000,
				transition: Fx.Transitions.Expo.easeOut,
				link: 'chain',
				onComplete: function(){
				
				}
			});
			
			morphTnI.start({
				height: this.textHeightOpen + 'px'
			});
			
			longText.setStyle('display', 'block');
			
			morphContent.start({
				//paddingTop: this.topOpen + 'px'
			});
			

			
			self.setTrigger();
		}
		
		
		this.closeTnI = function(){
			longText.setStyle('display', 'none');
			scrollbar.init(true, $('scrollbarWrapper'), 10);
			
			
			morphContent = new Fx.Morph('typographyWrapperSmall', {
				duration: 1000,
				transition: Fx.Transitions.Expo.easeOut,
				link: 'cancel'
			});
			
			morphTnI.start({
				height: this.textHeightClosed + 'px'
			});
			
			morphContent.start({
				paddingTop: this.topOpen + 'px'
			});
			
			
			
			self.setTrigger();
		}
		
		this.openStart = function(){
			longText.setStyle('display', 'block');
			$('scrollbarSlider').style.height = this.getScrollbarSliderHeight;
			
			
			morphContent = new Fx.Morph('typographyWrapperSmall', {
				duration: 1000,
				transition: Fx.Transitions.Expo.easeOut,
				link: 'cancel'
			});
			
			morphContent.start({
				paddingTop: this.topOpen + 'px'
			});
			
			morphStart.start({
				height: this.textHeightOpen + 'px'
			});
			
			
			
			fadeContainer = new Fx.Morph('container', {
				duration: 1000,
				transition: Fx.Transitions.Expo.easeOut,
				link: 'cancel'
			});	
			
			fadeContainer.start({
				height: 0 + 'px',
				paddingTop: 0 + 'px',
				paddingBottom: 0 + 'px'
			});
			
			self.setTrigger();
		}
		

		
		
		this.closeStart = function(){
			longText.setStyle('display', 'none');
			scrollbar.init(true, $('scrollbarWrapper'), 10);
			
			
			morphContent = new Fx.Morph('typographyWrapperSmall', {
				duration: 1000,
				transition: Fx.Transitions.Expo.easeOut,
				link: 'cancel'
			});
			
			
			
			morphContent.start({
				paddingTop: this.topClosed + 'px'
			});
			
			morphStart.start({
				height: this.textHeightClosed + 'px'
			});
			
			
			
			
			fadeContainer = new Fx.Morph('container', {
				duration: 1000,
				transition: Fx.Transitions.Expo.easeOut,
				link: 'cancel'
			});	
			
			fadeContainer.start({
				height: 114 + 'px',
				paddingTop: 10 + 'px',
				paddingBottom: 10 + 'px'
			});

			self.setTrigger();
		}
		
		
		
		
		
		
		 this.openAboutMe = function(){
			longText.setStyle('display', 'block');
			$('scrollbarSlider').style.height = this.getScrollbarSliderHeight;
			
			morphContent = new Fx.Morph('typographyWrapperSmall', {
				duration: 0,
				link: 'cancel'
			});
			
			morphContent.start({
				paddingTop: this.topOpen + 'px'
			});
			
			morphAboutMe.start({
				height: this.textHeightOpen + 'px'
			});
			
			self.setTrigger();
		 }
		 
		 this.closeAboutMe = function(){
			longText.setStyle('display', 'none');
			scrollbar.init(true, $('scrollbarWrapper'), 0);
			
			
			morphContent = new Fx.Morph('typographyWrapperSmall', {
				duration: 0,
				link: 'cancel'
			});
			
			morphContent.start({
				paddingTop: this.topOpen + 'px'
			});
			
			morphAboutMe.start({
				height: this.textHeightClosed + 'px'
			});
			
			self.setTrigger();
		 }
		 
		 
		 
		 
		 
		 
		 
		 
		 
		 
		 
		 
		 
		this.openTnB = function(){
			longText.setStyle('display', 'block');
			$('scrollbarSlider').style.height = this.getScrollbarSliderHeight;
			
			morphContent = new Fx.Morph('typographyWrapperSmall', {
				duration: 0,
				link: 'cancel'
			});
			
			morphContent.start({
				paddingTop: this.topOpen + 'px'
			});
			
			morphTnB.start({
				height: this.textHeightOpen + 'px'
			});
			
			self.setTrigger();
		 }
		 
		 this.closeTnB = function(){
			longText.setStyle('display', 'none');
			scrollbar.init(true, $('scrollbarWrapper'), 0);
			
			
			morphContent = new Fx.Morph('typographyWrapperSmall', {
				duration: 0,
				link: 'cancel'
			});
			
			morphContent.start({
				paddingTop: this.topOpen + 'px'
			});
			
			morphTnB.start({
				height: this.textHeightClosed + 'px'
			});
			
			self.setTrigger();
		 }
		
		
		
		
		/*
		 

		 
		 
		 
		 this.openNorm = function(){
		 longTextBig.setStyle('display', 'block');
		 
		 morphNorm.start({
		 height: '260px'
		 });
		 
		 self.setTrigger();
		 }
		 
		 this.closeNorm = function(){
		 longTextBig.setStyle('display', 'none');
		 scrollbar.init(true, $('scrollbarWrapper'), 10);
		 
		 morphNorm.start({
		 height: '180px'
		 });
		 
		 self.setTrigger();
		 }
		 
		 this.openStart = function(){
		 longTextBig.setStyle('display', 'block');
		 
		 morphStart.start({
		 height: '285px'
		 });
		 
		 self.setTrigger();
		 
		 }
		 
		 this.closeStart = function(){
		 longTextBig.setStyle('display', 'none');
		 scrollbar.init(true, $('scrollbarWrapper'), 10);
		 
		 morphStart.start({
		 height: '240px'
		 });
		 
		 self.setTrigger();
		 }
		 
		 */
		this.setTrigger = function(){
		
			if ($('openTrigger') || $('closeTrigger')) {
				if (!open) {
					$('openTrigger').setStyle('display', 'none');
					$('closeTrigger').setStyle('display', 'block');
				}
				else {
					$('openTrigger').setStyle('display', 'block');
					$('closeTrigger').setStyle('display', 'none');
				}
				open = !open;
			}
			
			if ($('openTriggerStart') || $('closeTriggerStart')) {
				if (!open) {
					$('openTriggerStart').setStyle('display', 'none');
					$('closeTriggerStart').setStyle('display', 'block');
				}
				else {
					$('openTriggerStart').setStyle('display', 'block');
					$('closeTriggerStart').setStyle('display', 'none');
				}
				open = !open;
				
			}
		}
		
		var self = this;
		
	}
}


