
(function($) {
	$(document).ready(function() {
		
		var portfolio_nid = 532;
		
		// Set active menu item for work-related content
		$(		'body.node-type-project li.menu-916, '
				+	'body.node-type-organization li.menu-916, '
				+	'body.node-type-testimonial li.menu-916 ' ).addClass('active'); 
		
		// use colorbox on project images
		$('body.node-type-project .view-imagefield-gallery .field-content a').colorbox(); 
		
		// disable project modals in mobile view 	
		$('.view-imagefield-gallery .field-content a').click(function(e) {
			if($(window).width() <= 480) {
				return false;
			}
		}); 
		
		// PROJECT IMAGE MODALS
		function adjust_project_image_modal_settings() {
			if($(window).width() <= 480) { 		// mobile
				$('.view-imagefield-gallery .field-content a').css({ 
					'pointer-events': 'none',
					'cursor':	'default'
				});
				$('.view-imagefield-gallery .field-content a').bind( 'click', function() { return false; }); 
				// $('.view-imagefield-gallery .field-content a').click(function(e) { e.preventDefault(); }
			} else {													// desktop
				$('.view-imagefield-gallery .field-content a').unbind( 'click', false );
				$('.view-imagefield-gallery .field-content a').css({ 
					'pointer-events': 'auto',
					'cursor':	'auto'
				}); 
			}
		}
		// initial call
		adjust_project_image_modal_settings();
		
		// PROJECT IMAGE ADJUSTMENTS BASED ON WINDOW SIZE
		function set_project_image_size() {
			var mobile_size 		= 260;
			var desktop_size 		= 150;
			if($(window).width() <= 480) { 		// mobile
				$('.view-imagefield-gallery .field-content a img').css({ 'width':mobile_size, 'height':mobile_size }); 
			} else {													// desktop
				$('.view-imagefield-gallery .field-content a img').css({ 'width':desktop_size, 'height':desktop_size }); 
			}
		}
		// initial call
		set_project_image_size();
		
		
	
		// call on resize
		$(window).resize(function(){
			$.doTimeout('resize', 250, function() {
				adjust_project_image_modal_settings();
				set_project_image_size();	
			});
		});		
		
		// Lazy loading of images in project detail overlays
		// (for each image URL, views prints: <div class="lazy-image" data-img-src="IMAGE_URL"></div>
		function load_project_detail_images() {
			// convert lazy-image divs to img tags
			$('.project-highlighted .project-images-wrapper div.lazy-image').each(function(){ 
				var pimg_src = $(this).attr('data-img-src');
				$(this).parent().append('<img alt="" class="lazy-image-loaded" src="'+pimg_src+'" />');
			});
		}
		function unload_project_detail_images() {
			// remove lazy-image-loaded items from dom
			$('img.lazy-image-loaded').remove(); 
		}

// TODO ===========================		
// 		// Open links with class "modal" in colorbox
// 		$('a.modal').colorbox({	
// 			href:function() {
// 				var urlForColorbox = $(this).attr('href') + ' div#main-content-area';
// 				// console.log(urlForColorbox);
// 				return urlForColorbox;
// 			},
// 			iframe:false,
// 			width:'90%',
// 			onComplete: function() { setup_project_gallery(); }
// 			
// 		});
// ===============================		
		
		// Project detail display for project page
		// -- desktop, good browsers only --
		$('html:not(.lofi) body.page-node-'+portfolio_nid+' .view-id-projects')	
					.first()
					.find('.views-field a')
					.addClass('inline-project-display');
 		
 		// Remove title attributes (and thus tooltips) from invisible image
 		$('body.page-node-'+portfolio_nid+' div.views-field.project-image img').removeAttr("title");
 		
 		// Add tooltips for project labels
 		$('body.page-node-'+portfolio_nid+' .view-id-projects span.project_labels_flag.project_labels-39, '
 			+ 'body.page-node-'+portfolio_nid+' .view-id-projects span.project_labels_flag.project_labels-30 ').twipsy(); 
 		
 		
 		// Add a div inside non-empty cells so we can use absolute positioning on contents
 		// $('.views-view-grid td').not('.empty').each(function(td) { 
 		$('.views-view-grid td').each(function() { 
 			if($(this).children().length < 1) {
 				$(this).addClass('empty'); 
 			} else {
 				$(this).wrapInner('<div class="td-content" />'); 
 			}
 		});
 		
 		/** 
 		 * @param project_link_object The A tag element that links to the project as jQuery object
 		 * ..
 		*/
 		var container_bg_color = $('#container').css('background-color'); 
 		var body_bg_color = $('body').css('background-color'); 
 		function toggleProjectHighlight( projectLinkObject ) {
 			var wrapperCell = projectLinkObject.closest('td');
 						
 			if(wrapperCell.hasClass('project-highlighted')) {		
 				// DISABLE HIGHLIGHT-------------------------------------------------------
 				unload_project_detail_images();
 				$('#project-detail-box').remove(); 
 				$('#container').removeClass('dimmed');
 				// $('#footer').fadeIn('fast');
 				$('table.views-view-grid td').removeClass('project-dimmed');
 				
 				// $('#container').animate({ backgroundColor: container_bg_color }, 500);
 				$('body').animate({ backgroundColor: body_bg_color }, 500);
 				$('#footer').fadeIn('fast');
 				
 				// $('table.views-view-grid td').not(wrapperCell).animate({backgroundColor:'#cccccc'});
 				 
 				// handle the highlighted cell		
				wrapperCell.removeClass('project-highlighted'); 	
				wrapperCell.unbind('clickoutside');
 			} else if(wrapperCell.hasClass('project-dimmed')) {
				// DO NOTHING (a different project is highlighted) -------------------------
				// ...
 			}	else {
				// ENABLE HIGHLIGHT --------------------------------------------------------
				// immediately set classes (for reference in future queries)
				$('#container').addClass('dimmed');
				
				
				$('table.views-view-grid td').not(wrapperCell).addClass('project-dimmed');
				
				// animations
				// $('#container').animate({ backgroundColor: "#111111" }, 500);
				$('body').animate({ backgroundColor: "#111111" }, 500);
				$('#footer').fadeOut('fast');
				
				// $('table.views-view-grid td').not(wrapperCell).animate({backgroundColor:'#cccccc'});
				// handle cell to highlight
				wrapperCell.removeClass('project-dimmed'); 
				wrapperCell.addClass('project-highlighted');	
 				load_project_detail_images();
				wrapperCell.bind( "clickoutside", function(e){
					toggleProjectHighlight(projectLinkObject);				
				});	
					
				var wrapperCellOffset = wrapperCell.offset();
				var wrapperCellHeight = wrapperCell.height();
				var wrapperTableOffset = wrapperCell.closest('table').offset();
				// var boxTop =  wrapperCellOffset.top + wrapperCellHeight;
				var boxTop =  $(document).scrollTop() + 30;
				
				$('#container').append('<div id="project-detail-box" />')
					
				// $('#project-detail-box').css( {'left':wrapperTableOffset.left+'px', 'top':boxTop+'px' }); 
				$('#project-detail-box').css( {'top':boxTop+'px' }); 
				$('#project-detail-box').click(function(e) { e.stopPropagation(); }); // prevent closing of box from clickoutside used above
				
				$('#project-detail-box').html( $(wrapperCell).find('.projects-view-project-detail').html() ); 
				
				$('#project-detail-box a.close').click(function(e){
					e.preventDefault();
					toggleProjectHighlight(projectLinkObject);
				});
			
			}		
 		}
 		// Show project image on mouseover
 		$('#container td:not(.project-dimmed) a.inline-project-display').bind('mouseenter mouseleave', function(){ 
 			$(this).closest('td').toggleClass('project-image-visible');
 		});
 		// Send project links to overlay (desktop only)
		$('#container td:not(.project-dimmed) a.inline-project-display').click( function(e) {
			if($(window).width() > 480) {
				// DISABLED - DEC 2011 (routing directly to detail page instead of overlay)
				// e.preventDefault();
				// toggleProjectHighlight($(this));
			}
		});
		
		// Add placeholder support for old browsers
		$('input[placeholder], textarea[placeholder]').placeholder();
	
	}); 
})(jQuery);
;

