function rePositionTitle() {
	if(jQuery('.single .image .title').length) {
		if(jQuery('.single .image img').length) {
			jQuery('.single .image .title').css('width', jQuery('.single .image img').width());
			jQuery('.single .image .title').css('left', jQuery('.single .image img').position().left);
		}
	}	
}

jQuery(document).ready(function() {
	
	// improve title appearance for images in portrait mode for desktop devices
	if(!navigator.userAgent.match(/(iPhone|iPod|iPad)/) &&
	   !navigator.userAgent.match(/BlackBerry/) &&
	   !navigator.userAgent.match(/Android/) &&
	   !(jQuery.browser.msie && parseInt(jQuery.browser.version, 10) == 9)) {
		jQuery('.single .image img').load(function() {
			rePositionTitle();
		});
		jQuery(window).resize(function() {
			rePositionTitle();
		});		
	}
	
	
	if(jQuery('#isotope').length && !(jQuery.browser.msie && parseInt(jQuery.browser.version, 10) < 9)) {
		
		jQuery('.image').css('height', jQuery('.image').width());
	
		/////////////////
		// INITIALIZING
		/////////////////

		// cache container
		var $container = jQuery('#isotope');

		// initialize isotope
		$container.isotope({
			itemSelector : '.image',
			layoutMode : 'fitRows',
			getSortData : {
			    time : function ( $elem ) {
			      return $elem.find('.title time').attr('datetime');
			    },
			    comments : function ( $elem ) {
			      return parseInt($elem.find('.commentscount h3').text(), 10);
			    },
			    title : function ( $elem ) {
			      return $elem.find('.title h2').text();
			    }
			}
		},
		function() { jQuery('.image').css('height', 'auto'); }
		);
	
	
		/////////////////
		// SORTING
		/////////////////
	
		// register sort functions
		jQuery('#sort a').click(function() {
			// get href attribute, minus the '#'
			var sortName = jQuery(this).attr('href').slice(1);
			if(sortName == 'time') {
				jQuery('#isotope').isotope({ sortBy : sortName, sortAscending : false });				
			}
			else {
				jQuery('#isotope').isotope({ sortBy : sortName, sortAscending : true });				
			}
			return false;
		});
			
		// set sort menu item to active
		var $sortList = jQuery('#sort ul'),
        $sortLinks = $sortList.find('a');

		// activate first
		$sortLinks.first().addClass('active');
	
		$sortLinks.click(function() {
			var $this = jQuery(this);
		
			// don't proceed if already selected
			if ( $this.hasClass('active') ) {
			   return false;
			}
			var $sortList = $this.parents('ul');
			$sortList.find('.active').removeClass('active');
			$this.addClass('active');
			return false;
		});


		/////////////////
		// FILTERING
		/////////////////

		// register filter functions
		jQuery('#filter a').click(function() {
		    var selector = jQuery(this).attr('data-filter');
		    $container.isotope({ filter: selector });
		    return false;
		});
	
		// set filter menu item to active
		var $filterList = jQuery('#filter ul'),
        $filterLinks = $filterList.find('a');

		// activate first
		$filterLinks.first().addClass('active');
	
		$filterLinks.click(function() {
			var $this = jQuery(this);
		
			// don't proceed if already selected
			if ( $this.hasClass('active') ) {
			   return false;
			}
			var $filterList = $this.parents('ul');
			$filterList.find('.active').removeClass('active');
			$this.addClass('active');
			return false;
		});
	
	}
	else {
		jQuery('#submenu').css('display', 'none');
	}

});
