/**
 * Portfolio.js
 * Copyright (c) Fluid Creativity, 2009
 *
 * Functionality specific to portfolio and projects.
 */

Portfolio = {

	init: function() {
		Portfolio.setupProjectNav();
		Portfolio.setupProjectImages();
	//	Portfolio.setupTagFilter();
	
	},

	setupProjectNav: function() {
		var portfolioNav = $('portfolioNav');

		if (portfolioNav) {
			var portfolioList = portfolioNav.getElement('ul.sectionIndex');
			var listHeight = portfolioNav.getNext().getSize().y - portfolioList.getPosition(portfolioNav).y;

			new VerticalSlider(portfolioList, {
				height: listHeight
			});
		}
	},

	setupProjectImages: function() {
		var portfolioImages = $('portfolioImages');

		if (portfolioImages) {
			var portfolioUrl = $('portfolio_url');
			var serviceUrl   = $('serviceUrl');

			new Request.JSON({
				url: '/ajax/portfolio/' + (portfolioUrl ? 'url/' + portfolioUrl.value + '/' : '') + 'type/' + (portfolioUrl ? 'large' : 'showcase') + (serviceUrl ? '/serviceurl/' + serviceUrl.value + '/' : ''),
				onSuccess: function(data) {
					if (!data || data.length < 1) return;
				//	if (portfolioUrl) portfolioImages.empty();
					portfolioImages.empty();
					$each(data, function(item) {
						portfolioImages.adopt(new Element('img', { 'src': item.image, 'alt': item.title }));
					});

					new ContentScroller({
						controlContainer: portfolioImages,
						includePages: true,
						slides: portfolioImages.getElements('img')
					}).start();
				}
			}).get();
		}
	},
	
	setupTagFilter: function(){
		var categoryFilter = $('categoryFilter');
		
		var tagFilter = $('tagFilter');
		
		if (categoryFilter && tagFilter){
			
			categoryFilter.addEvent('change', function(){
			   new Request.JSON ({
				   url: '/ajax/tag-filter/' + (categoryFilter.value ? 'service/' + categoryFilter.value : ''),
				   onSuccess: function (data) {
				   		if (!data || data.length < 1) return;
				   		tagFilter.empty();
				   		$each(data, function(item) {
				   			tagFilter.add(new Option(item.text, item.value), null);
				   		});
				   }
			   }).get();
			});
		}	
	},
	
	// the method isn't used
	setupPortfolioFilter: function(){
		
		
		var portfolioFilter = $('portfolioFilter').getElement('input[type=submit]');
		var tagFilter = $('tagFilter');
		var categoryFilter = $('categoryFilter');
		var portfolioList = $('portfolioList');
		var pagingControls = $('pagingControls');
		
		if (portfolioFilter) {
			portfolioFilter.addEvent('click', function(e){
				e.stop();
				new Request.JSON ({
					url: '/ajax/portfolio-filter/' + (categoryFilter.value ? 'service/' + categoryFilter.value + '/' : '') + (tagFilter.value ? 'tag/' + tagFilter.value : ''),
					onSuccess: function (data) {
						portfolioList.empty();
						if (!data || data.length < 1) return;
						
						if (pagingControls) {
							
				   			if (data.length > 3) {
				   				pagingControls.setStyle('display', 'none');
				   				pagingControls.getElement('a[class=nextLink]').setProperties(
				   						{
				   							href: '/portfolio/service/' + categoryFilter.value + '/tag/' + tagFilter.value + '/' + 'page/2',
				   							title: 'View page 2 of ' + Math.ceil(data.length / 3)
				   						}
				   					);
				   				pagingControls.setStyle('display', 'block');
				   			} else {
				   				pagingControls.setStyle('display', 'none');
				   			}
				   		} else {
				   				
				   		};
				   		
				   		$each(data, function(item, index) {
				   			
				   			if (index % 2 == 0){
				   				var li = new Element('li', { 'class': 'firstItem'});
				   			} else {
				   				var li = new Element('li');
				   			}
				   			
				   			li.set('html', item);
				   			portfolioList.adopt(li);
				   			
				   		});
					}
				
				}).get();
				
			});
		}
		
				
			
	}
}

window.addEvent('domready', Portfolio.init);
