Drupal.behaviors.sj39Behavior = function (content) {	

	// calculate grid_right width
		update_grid_right_width = function() {
			$('.grid_right').width (
				// grid widths
				$('.container_2').width() - $('.grid_left').width()
				// account for margins
					- 15 - 15 - 20
			);
			
			
}
		
		update_grid_right_width();
		// resize right grid div
		$(window).resize(function() {
			update_grid_right_width();
		});
		
		// dynamically load content using Masonry
	fetchMasonryItems = function(category,limit,isAnimated,addTweets,categoryNames) {
		limit = (typeof limit == "undefined") ? -1 : limit;
		isAnimated = (typeof isAnimated == "undefined") ? true : isAnimated;
		addTweets = (typeof addTweets == "undefined") ? false : addTweets;
		categoryNames = (typeof categoryNames == "undefined") ? '' : categoryNames;		
		var $container = $('#masonry_container');
		$container.imagesLoaded( function(){
			$container.masonry({
				itemSelector: '.box',
				columnWidth: 245,
				//isAnimated: !Modernizr.csstransitions
				isAnimated: isAnimated
			});            
		});
		
		var $loadingItem = $container.find('.loading');
		
		var ajaxError = function(jqXHR, textStatus, errorThrown) {
			alert(textStatus + ": " + errorThrown);
		}
		
		$.getJSON('/sj39FetchItems.php?category=' + category,
		function (data) {
			// proceed only if we have data
			if ( !data || !data.length ) {
				ajaxError();
				return;
			}
						
			$('.box').each(function(o) {
				if (!$(this).hasClass('static')) $container.masonry( 'remove', $(this) );
			});
						
			var items = [],
				item;
				
			var count = limit == -1 ? data.length : limit < data.length ? limit : data.length;
			for (var i = 0; i < count; i++) {
				var masonryItem = data[i];
	  		item = '<div class="box photo colwidth"><a href="/' + masonryItem.url + '">'
	      + '<img src="' + masonryItem.imgSrc + '" class=\"captify\" alt="<span class=\'captify_date\' style=\'font-family: dejarip,sans-serif;font-style: normal;font-weight: 400;font-size: 12px;line-height: 12px;color: #D1B16E;text-transform: none;letter-spacing: 1px;\'>' + masonryItem.dateCreated + '</span><h2>' + masonryItem.caption + '</h2>\">'            
	      + '</a><img class="categorytape" src="' + masonryItem.tape + '" /></div>';
	    	items.push( item );	
	    	if (i == 1 || i == (count - 1)) {
		    	if (categoryNames != '') {
		    		var buffer = ['<div class="box photo colwidth"><div id="nav_ineterests"><ul>','<li ', category=='ALL' ? 'class="current_page_item"' : '','><a href="#" onclick="javascript:fetchMasonryItems(\'ALL\',3,false,false,\'',categoryNames,'\');">ALL</a></li>'];
			    	var arrCategoryNames = categoryNames.split(",");			    	
			    	for (var j = 0; j < arrCategoryNames.length; j++) {
			    		var li_class = '';
			    		if (arrCategoryNames[j] == category) {
			    			li_class = ' class="current_page_item"'
			    		}
			    		buffer.push("<li");
			    		buffer.push(li_class);
			    		buffer.push("><a href=\"#\" onclick=\"javascript:fetchMasonryItems('");
			    		buffer.push(arrCategoryNames[j]);
			    		buffer.push("',3,false,false,'");
			    		buffer.push(categoryNames);	    		
			    		buffer.push("');\">");
			    		buffer.push(arrCategoryNames[j]);
			    		buffer.push("</a></li>");	    			
						}
						buffer.push("</ul></div></div>");        
			    	items.push(buffer.join(""));
			    	
			    	// prevent from processing again
			    	categoryNames = '';
			    }
			  }
  		}
	    
	    var $items = $( items.join('') );
	    $items.imagesLoaded(function(){
	    	// add twitter
	    	if (addTweets > 0) {
	    		// load tweets via external javascript
	    		var tweetCount = Math.ceil(data.length / 7);
	    		loadScript("/sj39theme/js/sj39tweets.js", function() {
	    			loadScript("http://twitter.com/statuses/user_timeline/sj39.json?callback=twitterFrontCallback&count=" + tweetCount, function(data) {
	    			});
	    		});				
	    	}
				
	    	/*
	    		$container
	    			.masonry( 'remove', $loadingItem ).masonry()
	    			.append( $items ).masonry( 'appended', $items, true );
	      */
	      //$container.append( $items ).masonry( 'appended', $items );
	      $container.append( $items ).masonry( 'reload' );
	      //$container.masonry('reloadItems');
	      
	      $('img.captify').captify({
	      	// all of these options are... optional
	      	// ---
	      	// speed of the mouseover effect
					speedOver: 'normal',
					// speed of the mouseout effect
					speedOut: 'fast',
					// how long to delay the hiding of the caption after mouseout (ms)
					hideDelay: 500,	
					// 'fade', 'slide', 'always-on'
					animation: 'slide',		
					// text/html to be placed at the beginning of every caption
					prefix: '',		
					// opacity of the caption on mouse over
					opacity: '0.9',					
					// the name of the CSS class to apply to the caption box
					className: 'caption-top',	
					// position of the caption (top or bottom)
					position: 'top',
					// caption span % of the image
					spanWidth: '192px'
				});
			});
		});
		
	}

  // create image caption
  $('img.caption').each(function() {
    var caption = $(this).attr('alt');
    var src = $(this).attr('src');
    var style = $(this).attr('style');
    
    var width='auto';
    var height='auto';
    var tokenStyles = style.split(";");
    for (var index = 0; index < tokenStyles.length; index++)
    {
    	var token = jQuery.trim( tokenStyles[index] );
    	if (token.indexOf('width:') === 0)
    	{
    		var tokenToken = token.split(":");
    		if (tokenToken.length == 2)
    		{
    			width=tokenToken[1];
    		}
    	}
    	if (token.indexOf('height:') === 0)
    	{
    		var tokenToken = token.split(":");
    		if (tokenToken.length == 2)
    		{
    			height=tokenToken[1];
    		}
    	}
    }
    var div_id = 'photo';
    if (style.indexOf('left') != -1) {
    	div_id = 'photo_left';
    }
		if (style.indexOf('right') != -1) {
    	div_id = 'photo_right';
    }
    $(this).replaceWith('<div id="' + div_id + '"><img src="' + src + '" alt="' + caption + '" width="' + width + '" height="' + height + '" /><div class="date">' + caption + '</div></div>');
    //$(this).add("span").text(text).addClass("date");
  });
  
 

function loadScript(url, completeCallback) {
   var script = document.createElement('script'), done = false,
       head = document.getElementsByTagName("head")[0];
   script.src = url;
   script.onload = script.onreadystatechange = function(){
     if ( !done && (!this.readyState ||
          this.readyState == "loaded" || this.readyState == "complete") ) {
       done = true;
       completeCallback();

      // IE memory leak
      script.onload = script.onreadystatechange = null;
      head.removeChild( script );
    }
  };
  head.appendChild(script);
}

//gplusone

  (function() {
    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
    po.src = 'https://apis.google.com/js/plusone.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
  })();
   //facebook 
(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) {return;}
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#appId=220763501269225&xfbml=1";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));

}

