;(function($, window, document, undefined){

	var DCS = {},
		windowWidth,
		windowHeight,
		numberOfColumns,
		_container,
		_window,
		_menu,
		_menuItems,
		_content,
		COLUMN_WIDTH = 160;

	DCS.init = function(){
		_window = $(window);
		_container = $("#container");
		_content = _container.find("#content");
		_menu = _container.find("#navigation .menu");
		_menuItems = _menu.find("> li");
		this.generateImageDimensions();
		this.initializeMasonry();
		_window.bind("resize", DCS.resize).trigger("resize");
	}
	
	DCS.generateImageDimensions = function(){
		// var image;
		// _content.find(".block.image").each(function(){
		// 	image = $(this).find("> img");
		// 	image.css("height", image.width() / image.data("ratio"));
		// });
		_content.find("img.fix-image-size").each(function(){
			_image = $(this);
			_image.css("height", _image.width() / _image.data("ratio"));
		});
	}
	
	DCS.initializeMasonry = function(){
		_content.masonry({
			itemSelector: ".block",
			columnWidth: 160,
			isFitWidth: true,
			isAnimated: !Modernizr.csstransitions
		});
	}

	DCS.resize = function(){
		windowWidth = _window.width();
		windowHeight = _window.height();
		numberOfColumns = Math.floor((windowWidth - 30) / COLUMN_WIDTH);
		if (numberOfColumns < 6) numberOfColumns = 6; // minimum of 6 columns, otherwise the menu won't fit
		var containerWidth = (numberOfColumns * COLUMN_WIDTH) + 10;
		_container.css("width", containerWidth);
		// _menu.css("padding-left", (containerWidth - (8 * 118) - 20) / 2);
		_menu.css("padding-left", (containerWidth - (_menuItems.length * 118) - 20) / 2);
	}

	$(function(){
		DCS.init();
	});

}(jQuery, window));
