if( !FeedUtils ) 
	var FeedUtils = {
	
		maxChars: 220,
		counter: 0,
		activeFeed: null,
		user: {id: -1, username: ""},
		collapseLock: false
	};
	
	
	FeedUtils.updateCounter = function(event)
	{
		
		var id = FeedUtils.activeFeed.id.split("-")[1];
		FeedUtils.counter =   document.getElementById("textBox-" + id).value.length;
		document.getElementById('counter-' + id).innerHTML = (FeedUtils.maxChars - FeedUtils.counter);
		
		
		if(event)
		{
			var key = utils.getKeyboard( event );
			
			if( key == 8 || key == 46 || ( key<=40 && key >=37 )) return true;
			
		}
		
		
		if(FeedUtils.maxChars <= FeedUtils.counter)
			return false;
			
		return true;
	}
	
	
	FeedUtils.openComment = function(id)
	{
		var commentBox = document.getElementById('commentArea-' + id);
		
		if( FeedUtils.activeFeed != commentBox )
		{
			FeedUtils.openCommentArea(commentBox);
		}
	
	}
	FeedUtils.handlePaste = function()
	{
		window.setTimeout("FeedUtils.updateCounter()",200);
		//FeedUtils.updateCounter();
	}
	
	FeedUtils.openCommentArea = function( commentArea )
	{
		try{
		document.getElementById('textBox-' + commentArea.id.split("-")[1]).addEventListener("paste",FeedUtils.handlePaste , false);
		}catch(e){}
		var feedTween = new Tween(commentArea.style,'height',Tween.regularEaseInOut,0,88,0.5,'px');
		
		feedTween.onMotionStarted = function(){
			
			FeedUtils.closeCommentArea();
			FeedUtils.activeFeed = commentArea;
			FeedUtils.updateCounter();
			
		}
		
		feedTween.start();
	}
	
	FeedUtils.closeCommentArea = function()
	{
		var currentOpenFeed = FeedUtils.activeFeed;
	
		if( currentOpenFeed == null ) return;
		
		var id = FeedUtils.activeFeed.id.split("-")[1];
		var textBox =  document.getElementById("textBox-" + id);
	
		var feedTween = new Tween(currentOpenFeed.style,'height',Tween.regularEaseInOut,currentOpenFeed.clientHeight,0,0.5,'px');
		
		feedTween.onMotionStarted = function(){FeedUtils.activeFeed = null;}
		feedTween.onMotionFinished = function(){textBox.value = "";}
		
		feedTween.start();
	}
	
	
	FeedUtils.closeComment = function()
	{
	}
	
	FeedUtils.postComment = function( )
	{
		var success = true;
		var id = FeedUtils.activeFeed.id.split("-")[1];
		var userComment  =  document.getElementById("textBox-" + id).value;
		userComment = userComment.substr(0,FeedUtils.maxChars); 
		
		if( trim(userComment) == "") return;
		
		FeedUtils.closeCommentArea();
		var list = document.getElementById('commentList-' + id);
		
		feedsAjaxUtil.postComment( id, userComment , {
			
			async: false,
			callback: function(data){ success = data;}
		} ); 
		
		if(success)
		{
			list.innerHTML += "<li>"  + userComment + " - <span class='commentWriter'>" + FeedUtils.user.username + "</span></li>"
		}
		else
		{
			generalFunctions.goToPrivatePage();
		}
	}
	
	FeedUtils.toggleFeedCollapse = function(clickedArrow, id )
	{
		if( clickedArrow.className.indexOf("rda") > 0 )
			FeedUtils.expandFeeds(clickedArrow, id );
		else if( clickedArrow.className.indexOf("rua") > 0 )
			FeedUtils.collapseFeeds(clickedArrow, id );
	}
	
	FeedUtils.toggleFeedCollapseByDate = function(feedDate, id, active )
	{
		if(!active) return;
		
		var dateId = feedDate.id;
		var feedSequence = dateId.substring(dateId.indexOf("-"));
		var clickArrow = document.getElementById('collapseButton' + feedSequence);
		FeedUtils.toggleFeedCollapse(clickArrow,id);
		
	}
	
	FeedUtils.expandFeeds = function( clickedArrow, id )
	{
		if( FeedUtils.collapseLock ) return;
		
		var feeds = document.getElementById('collapsedFeeds[' + id + ']');
		feeds.style.display = "block"; 
		var h = feeds.clientHeight;
		var wrapper = feeds.parentNode;
		
		var feedTween = new Tween(wrapper.style,'height',Tween.regularEaseInOut,0,h,0.5,'px');
		
		feedTween.onMotionStarted = function(){
			
			FeedUtils.collapseLock = true;
			clickedArrow.className = clickedArrow.className.replace(/rda/,'rua');
			
			
			
			}
		feedTween.onMotionFinished = function(){
			
			FeedUtils.collapseLock = false;
			
			var spans = document.getElementsByTagName("span");
			if(!spans) spans = document.getElementsByTagName("SPAN");
				
			for(var index=0; index<spans.length; index++) {
				
				if(spans[index] && spans[index].id && spans[index].id.startsWith("collapsedRateId-" + id))
				{
					spans[index].style.visibility = "visible";
				}
			}
			
			}
		
		feedTween.start();
		
	}
	FeedUtils.collapseFeeds = function( clickedArrow,id )
	{
		var feeds = document.getElementById('collapsedFeeds[' + id + ']');
		
		var h = feeds.clientHeight;
		var wrapper = feeds.parentNode;
		
		var feedTween = new Tween(wrapper.style,'height',Tween.regularEaseInOut,h,0,0.5,'px');
		
		feedTween.onMotionStarted = function(){
			FeedUtils.collapseLock = true;
			clickedArrow.className = clickedArrow.className.replace(/rua/,'rda');
			
			var spans = document.getElementsByTagName("span");
			if(!spans) spans = document.getElementsByTagName("SPAN");
				
			for(var index=0; index<spans.length; index++) {
				
				if(spans[index] && spans[index].id && spans[index].id.startsWith("collapsedRateId-" + id))
				{
					spans[index].style.visibility = "hidden";
				}
			}
			
		}
		feedTween.onMotionFinished = function(){
			
			FeedUtils.collapseLock = false;
			feeds.style.display = "none"; 
		}
		
		feedTween.start();
	}



















	
