i72.v3 = {
	/* ! i72.v3.init */
	scrolly: false,
	init: function(){
		$$('.portfolio-full').each(function(e){
			i72.v3.portfolio.data['show-' + e.id.split('-').pop()] = window['sJson_' + e.id.split('-').pop()].evalJSON();
		});
		$$('.portfolio-full ul.portfolio-nav a').each(function(e){
			e.observe('click',i72.v3.portfolio.showPreview);
		});
		$$('.portfolio-full a.portfolio-nav').each(function(e,i){
			e.observe('click',i72.v3.portfolio.scrollProjects);
		});
		$$('.portfolio-preview a').each(function(e){
			e.observe('click',i72.v3.portfolio.showDetail);
		});
		$('header-reel').observe('click', function(event) {
			i72.v3.showReel(event, '30568691');
			});
		var sID = document.body.id;
		if (sID === 'business' || sID === 'government' || sID === 'non-profit' || sID === 'who-we-are') {
			i72.v3.customScrollBar();
		}
		i72.v3.facebookStatus();
		if ($('go-intro')) {
			i72.v3.showReel(0, '30748624');
		}
	},
	/* ! i72.v3.portfolio */
	portfolio: {

		data: [],

		/* ! i72.v3.portfolio.init */
		init: function(json,target) {
			this.data = json.evalJSON();
			$(target).select('.portfolio-scroller a').each(function(a){
				a.observe('click',portfolio.loadPreview);
			});
			$('portfolio-preview').down('a').observe('click',i72.v3.portfolio.showDetail);
		},
	
		/* ! i72.v3.portfolio.hideDetail */
		hideDetail: function(event){
			var cover = $('portfolio-cover'),
				detail = $('portfolio-detail'),
				divs = detail.childElements();
			new Effect.Parallel([
				new Effect.Fade(detail),
				new Effect.Fade(cover)
			],{
				duration: 0.3
			});
			
		},

		/* ! i72.v3.portfolio.swapDetailImage */
		swapDetailImage: function(event){
			var input = Event.element(event).up('a'),
				detail = $('portfolio-detail'),
				which = detail.getAttribute('rel').split('-'),
				whichshow = 'show-' + which[0],
				whichproj = which[1],
				largeimg = detail.select('img.large-image')[0];
			Effect.Fade(largeimg,{
				duration: 0.3,
				afterFinish: function() {
					var proj = i72.v3.portfolio.data[whichshow][whichproj];
					var newimage = new Image();
					$(newimage).style.display = 'none';
					newimage.onload = function () {
						largeimg.width = newimage.width;
						largeimg.height = newimage.height;
						largeimg.src = newimage.src;
						Effect.Appear(largeimg,{
							duration: 0.3
						});
					}
					newimage.src = proj.path + proj.project_images[input.up('li').id.split('-')[1]].image.large;
				}
			});
		},

		/* ! i72.v3.portfolio.showDetail */
		showDetail: function (event) {
			var block = Event.element(event).up('div.portfolio-full'),
				whichshow = block.id.split('-').pop(),
				whichproj = block.select('li.active')[0].id.split('-').pop(),
				show = i72.v3.portfolio.data['show-' + whichshow],
				proj = show[whichproj];
			if (!$('portfolio-cover')) {
				var cover = DOMUtil.createDiv(document.body,'portfolio-cover','',false),
					detail = DOMUtil.createDiv(document.body,'portfolio-detail','',false),
					content = DOMUtil.createDiv(detail,'','portfolio-detail-content'),
					closelink = DOMUtil.createLink(detail,'javascript:;');
				DOMUtil.createImage(DOMUtil.createDiv(detail,'','portfolio-detail-image'),'','','','large-image');
				DOMUtil.createHeading(content);
				DOMUtil.createParagraph(content);
				DOMUtil.createList(content);
				closelink.addClassName('close');
				closelink.observe('click',i72.v3.portfolio.hideDetail);
				cover.observe('click',i72.v3.portfolio.hideDetail);
			} else {
				var cover = $('portfolio-cover'),
					detail = $('portfolio-detail');
			}

			var list = detail.select('ul')[0],
				largeimg = detail.select('img.large-image')[0];

			detail.setAttribute('rel',whichshow + '-' + whichproj);

			/* clear previous thumbnails */
			if(list.childElements().length > 0) {
				list.select('a').each(function(a){
					a.stopObserving();
					a.up('li').remove();
				});
			}
			/* add links for each thumbnail */
			proj.project_images.each(function(pimg,index){
				var li = DOMUtil.createLi(list);
				DOMUtil.setId(li,'img-' + index);
				DOMUtil.createLink(li,'javascript:;').observe('click',i72.v3.portfolio.swapDetailImage);
				DOMUtil.createImage(li.down('a'),proj.path + pimg.image.tiny);
			});
			detail.down('h3').update(proj.newname);
			detail.down('p').update(proj.description);
			proj.links.each(function(e){
				var linktext = 'site link';
				if (e.type == 'file'){
					linktext = 'download';
				}
				detail.down('p').insert('&nbsp;<a href="' + e.url + '" target="_blank"><span>' + linktext + '</span></a>');
			});
			Effect.Appear(cover,{
				duration: 1.0,
				from: 0,
				to: 0.5
			});
			var newimage = new Image();
			$(newimage).style.display = 'none';
			newimage.onload = function () {
				largeimg.width = newimage.width;
				largeimg.height = newimage.height;
				largeimg.src = proj.path + proj.project_images[0].image.large;
				Effect.Appear(detail,{
					duration: 0.5,
					delay: 1.0
				});
			}
			newimage.src = proj.path + proj.project_images[0].image.large;
		},
	
		/* ! i72.v3.portfolio.showPreview */
		showPreview: function(event) {
			event.stop();
			var li = Event.element(event).up('li'),
				whichshow = li.up('div.portfolio-full').id.split('-').pop(),
				whichproj = li.id.split('-').pop(),
				show = i72.v3.portfolio.data['show-' + whichshow],
				proj = show[whichproj];
			if (li.hasClassName('active')) {
				return false;
			}
			li.up('ul').select('li.active').each(function(e){
				e.removeClassName('active');
			});
			li.addClassName('active');
			var preview = $('portfolio-' + whichshow).down('div.portfolio-preview'),
				img = preview.down('img'),
				newsrc = proj.path + proj.project_images[0].image.preview;
			new Effect.Shrink(img,{
				direction: 'top-left',
				duration: .7,
				afterFinish: function () {
					var newimage = new Image();
					$(newimage).style.display = 'none';
					preview.select('h3>span')[0].update('');
					newimage.onload = function () {
						preview.select('h3>span')[0].update(proj.client);
						img.width = newimage.width;
						img.height = newimage.height;
						img.src = newsrc;
						new Effect.Grow(img,{
							direction: 'top-left',
							duration: 1.6,
							transition: Effect.Transitions.spring
						});
					}
					newimage.src = newsrc;
				}
			});
		},
	
		/* ! i72.v3.portfolio.loadPreview */
		loadPreview: function(event) {
			var input = Event.element(event);
			$$('.portfolio-scroller li').each(function(li){
				li.removeClassName('active');
			});
			var item = Portfolio.data[input.up('li').id.split('-')[1]];
			input.up('li').addClassName('active');
			Portfolio.showPreview(item);
		},

		/* ! i72.v3.portfolio.scrollFlash */
		scrollFlash: function(scrolldiv,dir){
			var dist = 20,
				post = -20;
			if (dir == 'right') {
				dist = -20;
				post = 20;
			}
			new Effect.Move(scrolldiv,{
				x: dist,
				y: 0,
				duration: 0.3,
				mode: 'relative',
				transition: Effect.Transitions.linear,
				afterFinish: function(){
					new Effect.Move(scrolldiv,{
						x: post,
						y: 0,
						duration: 0.3,
						mode: 'relative',
						transition: Effect.Transitions.linear
					});
				}
			});
		},

		/* ! i72.v3.portfolio.scrollProjects */
		scrollProjects: function(event){
			var link = Event.element(event),
				maskdiv = link.up('div'),
				scrolldiv = maskdiv.down('div.portfolio-nav-overflow'),
				scrolllayout = scrolldiv.getLayout(),
				left = scrolllayout.get('left'),
				newleft = 0,
				marginleft = scrolllayout.get('margin-left'),
				interval = 325;
			switch (link.hasClassName('prev')){
				case true:
					switch ((left + interval) > 24){
						case true:
							i72.v3.portfolio.scrollFlash(scrolldiv,'left');
							return false;
						case false:
							newleft = left + interval;
							break;
					}
					break;
				case false:
					switch ((left - interval) > (scrolldiv.getDimensions().width * -1)){
						case true:
							newleft = left - interval;
							break;
						case false:
							i72.v3.portfolio.scrollFlash(scrolldiv,'right');
							return false;
					}
					break;
			}
			new Effect.Move(scrolldiv,{
				x: newleft,
				y: 0,
				mode: 'absolute',
				duration: 2.5,
				transition: Effect.Transitions.spring,
				beforeStart: function(){
					link.stopObserving();
				},
				afterFinish: function(){
					link.observe('click',i72.v3.portfolio.scrollProjects);
				}
			});
		}
	},
	
	/* ! i72.v3.customScrollBar */
	customScrollBar: function() {

			var scrollbox = $('scrollbar_track').next('div');
		
			scrollbox.setStyle({
				position: 'relative',
				overflow: 'hidden',
				height: '400px'
			});

			i72.v3.scrolly = new Control.ScrollBar(scrollbox.id,'scrollbar_track');
			i72.v3.scrolly.enable();
	
	},
	
	/* ! i72.v3.resizeFeatureBar */
	
	resizeFeatureBar: function() {
		var cols = $$('.featured-box>.multi-col'),
		nHeight = 0;
		
		cols.each(function(e){

			//compare sizes
			nHeight = (nHeight < e.getHeight()) ? e.getHeight() : nHeight;

		});
		
		cols.each(function(d){
				if (!d.hasClassName('clear')) {
					d.setStyle({ height: nHeight + 'px' });
				}
			});
	},
	
	/* ! i72.v3.facebookStatus */
	
	facebookStatus: function() {
		var access_token = '244430045571983|MytC-c4GvKFjVyHhmeFoTPbfQNs';

		FB.init();
	
		FB.api('/ignition72/posts?access_token=' + access_token, { limit: 1 }, function(response) {
			var target = $$('.facebook-status')[0],
				fbUpdate = response.data[0],
				id = response.data[0].id,
				permalink = 'http://www.facebook.com/ignition72/posts/' + id.split('_')[1],
				post = '<a href="' + permalink + '" target="_blank">&ldquo;' + fbUpdate.message + '&rdquo;</a>';
		
		if (fbUpdate.type === 'photo') {
			post = post + '<img src="' + fbUpdate.picture + '" alt="" />';
		}

		if(typeof target !== 'undefined') {
			target.update(post);
			target.setStyle({visibility: 'visible'});
			
		/* 	this was firing too quickly in WebKit without setTimeout */
			setTimeout(i72.v3.resizeFeatureBar, 250);
		}

		});
	},
	hideReel: function(){
		var cover = $('reel-cover'),
			detail = $('reel-detail'),
			wrap = $('reel-box');
		new Effect.Parallel([
			new Effect.Fade(cover,{
				sync:true,
				from: 0.7,
				to: 0
			}),
			new Effect.Fade(detail,{
				sync:true,
				from: 1,
				to: 0
			})
		],{
			duration: 0.5,
			afterFinish: function(){
				wrap.update('');
			}
		});
	},
	showReel: function(event, sVideoNumber){
		var cover = $('reel-cover'),
			detail = $('reel-detail'),
			wrap = $('reel-box'),
			closelink = detail.select('a')[0],
			reeldelay = 3,
			closedelay = 25;
		if(typeof(event) != 'number') {
			event.stop();
			reeldelay = 0;
			closedelay = 60;
		}
		[closelink,cover].each(function(e){
			e.stopObserving();
			e.observe('click',i72.v3.hideReel);
		});
		new Effect.Parallel([
			new Effect.Appear(cover,{
				sync:true,
				from: 0,
				to: 0.7
			}),
			new Effect.Appear(detail,{
				sync:true,
				from: 0,
				to: 1
			})
		],{
			duration: 0.5,
			delay: reeldelay,
			afterFinish: function(){
				wrap.update('<iframe src="http://player.vimeo.com/video/' + sVideoNumber + '?title=0&amp;byline=0&amp;portrait=0&amp;autoplay=1&amp;api=1" width="960" height="540" frameborder="0" webkitAllowFullScreen allowFullScreen></iframe>');
/*
				new Effect.Parallel([
					new Effect.Fade(cover,{
						sync:true,
						from: 0.7,
						to: 0
					}),
					new Effect.Fade(detail,{
						sync:true,
						from: 1,
						to: 0
					})
				],{
					duration: 1,
					delay: closedelay,
					afterFinish: function(){
						wrap.update('');
					}
				});
*/
			}
		});
	}
}
document.observe('dom:loaded',i72.v3.init);
