
function urlencode (str) {
	str = escape(str);
	 return str.replace(/[*+\/@&]|%20/g,
		function (s) {
			switch (s) {
				case "*": s = "%2A"; break;
				case "+": s = "%2B"; break;
				case "/": s = "%2F"; break;
				case "@": s = "%40"; break;
				case "%20": s = "+"; break;
				case "&": s = "%26"; break;
			}
			return s;
		}
	);
}

function escapeAmp (str) {

	 return str.replace(/[&]/g,
		function (s) {
			switch (s) {
				case "&": s = "%26"; break;
			}
			return s;
		}
	);
}

function nl2br(str) {
	if (!str) return str;
	return str.replace(/\n/g,'<br />');
}

function getObjLength(object) {
	var j = 0;

	for (var i in object) {

		j++;
	}
	return j;
}

jQuery.fn.reverse = [].reverse;


	if(!Array.indexOf){
	    Array.prototype.indexOf = function(obj){
	        for(var i=0; i<this.length; i++){
	            if(this[i]==obj){
	                return i;
	            }
	        }
	        return -1;
	    }
	}



var wallID1, wallName, wallID2, wallType, latestPost, userID;


jQuery(document).ready(function(){

	jQuery('.timeago').timeago();

	var messageIDs  = [];

	var theWall 	= jQuery('#wall');
	var emptyWall	= jQuery('#emptywall', theWall);

	var loadOldPosts = jQuery('#load-older-posts', theWall);

	var d = new Date();
	var lastMessageSent = d.getTime();

	jQuery('button', theWall).removeAttr("disabled");

	function showReplyForm() {
		// toggles the reply form
		var btn = jQuery(this);
		
		var replyForm = btn.parents('.wallpost').find('.reply-form');
		replyForm.animate({opacity: 'toggle', height: 'toggle'}, 500, function() {
			jQuery(this).find('textarea').focus();
		});

		var button;
		if (replyForm.css('opacity') > 0)
			button = 'show';
		else button = 'hide';

		btn.fadeOut('fast', function() {

			if (button == 'show') btn.html('Reply'); else btn.html('Cancel');
			btn.attr('class', button + '-reply-form');
			btn.fadeIn('fast');
		});
	}
	jQuery('.show-reply-form', theWall).bind('click', showReplyForm);

	function showReplies() {
		// toggles replies to a post

		var that = this;
		var replies = jQuery(this).parents('.wallpost').find('.replies');
		var count = replies.find('strong').val();

		replies.animate({opacity: 'toggle', height: 'toggle'}, 500, function() {

			if (replies.css('height') != 'auto') {
				jQuery(that).find('.replies-switch').attr('src', '/loadres/images/interface/button.hidereplies.gif');
			} else {
				jQuery(that).find('.replies-switch').attr('src', '/loadres/images/interface/button.showreplies.gif');
			}

		});
	}
	jQuery('.show-replies', theWall).bind('click', showReplies);



	function getReplyHTML(reply, hide) {

		var result = '<div ';

		if (hide) result += 'style="display: none;" ';

		result += 'class="reply" postid="' + reply['id'] + '"><a href="/' + reply['from_username'] + '/"><img height="38" width="38" class="wallthumbnail" alt="' + reply['from_name'] + '" src="' + MPORA.globalVars.base_url + 'images/avatar/' + reply['from'] + '/s/" /></a><div class="message-container rc">';

		if (reply['from'] == userID) result += '<a class="delete-post" href="/ajax/remove_wall_post/' + reply['id'] + '/"></a>';

		result += '<a href="/' + reply['from_username'] + '/"><h3>' + reply['from_name'] + '</h3></a><p class="message">' + nl2br(reply['message']) + '</p>';

		if (reply['media']) {

			result += '<ul class="media">';

			var aclass, url, incomplete;

			for (var i in reply['media']) {

				result += '<li><div class="item" style="background: transparent url(';

				if (reply['media'][i]['incomplete'] > 0)
					result += '/loadres/images/interface/ajax.black.transparent.gif';
				else result += reply['media'][i]['thumbnail'];

				result += ') no-repeat scroll center center;"><a class="' + reply['media'][i]['type'];
				
				result += ((reply['media'][i]['incomplete'] > 0) ? ' incomplete" media_id="' + reply['media'][i]['id'] + '" style="display:none;"' : '"');
				
				result += ' href="' + reply['media'][i]['url'] + '" item_id="' + reply['media'][i]['item_id'] + '"></a></div><a href="' + reply['media'][i]['url'] + '"><h4>' + reply['media'][i]['title'] + '</h4><p>' + reply['media'][i]['description'] + '</p></a></li>';
			}

			result += '</ul>';
		}

		result += '<p class="timeago" title="' + reply['stamp'] + '">' + reply['display_time'] + '</p></div><div style="clear: both;"></div></div>';

		return result;
	}

	function getPostHTML(post, postID) {

		var replies = 0;
		var showSwitch = 'style="display:none" ';
		var showButton = showSwitch;

		if (post['replies']) {

			replies = getObjLength(post['replies']);
			if (replies > 0) showSwitch = '';
		}

		var replymsg = MPORA.lang.wall_replies;
		if (post['reply_count'] == 1) replymsg = MPORA.lang.wall_reply;
		
		if (post['reply_count'] > 3) showButton = '';

		var walltowall = '';

	//	if ( (wallType == 'user') && (post['from_name'] != post['to_name']) )
	//		walltowall = '<a class="sharedwall" href="/sharedwall/' + post['from_name'] + '/' + post['to_name'] + '/">' + MPORA.lang.wall_see_shared_wall + '</a> - ';

		var html = '<div style="display: none;" class="wallpost" postid="' + post['id'] + '" replycount="' + post['reply_count'] + '"><div class="post-container"><a href="/' + post['from_username'] + '/"><img height="38" width="38" class="wallthumbnail" alt="' + post['from_name'] + '" src="' + MPORA.globalVars.base_url + 'images/avatar/' + post['from'] + '/s/" /></a><div class="message-container">';
		
		if (post['from'] == userID) html += '<a class="delete-post" href="/ajax/remove_wall_post/' + post['id'] + '/"></a>';

		html += '<a href="/' + post['from_username'] + '/"><h3>' + post['from_name'] + '</h3></a><p class="message">' + nl2br(post['message']) + '</p>';

		if (post['media']) {

			html += '<ul class="media">';

			var aclass, url, incomplete;
			for (var i in post['media']) {
				
				html += '<li><div class="item" style="background: transparent url(' + ((post['media'][i]['incomplete'] > 0) ? '/loadres/images/interface/ajax.black.transparent.gif' : post['media'][i]['thumbnail']) + ') no-repeat scroll center center;"><a class="' + post['media'][i]['type'] + ((post['media'][i]['incomplete'] > 0) ? ' incomplete" media_id="' + post['media'][i]['id'] + '" style="display:none;"' : '"') + ' href="' + post['media'][i]['url'] + '" item_id="' + post['media'][i]['item_id'] + '"></a></div><a href="' + post['media'][i]['url'] + '"><h4>' + post['media'][i]['title'] + '</h4><p>' + post['media'][i]['description'] + '</p></a></li>';

			}

			html += '</ul>';

		}

		html += '<p><span class="timeago" title="' + post['stamp'] + '"></span> - ' + walltowall + '<a class="show-replies empty"><strong>' + post['reply_count'] + ' ' + replymsg + '</strong> <img ' + showSwitch + 'class="replies-switch" alt="Show and Hide replies" src="/loadres/images/interface/button.hidereplies.gif" /></a></p></div><div style="clear: both;"></div><div class="replies"><div class="centre"><a ' + showButton + 'class="view-more-replies">' + MPORA.lang.wall_view_more + '</a></div><img class="loading-replies" alt="Loading more posts" src="/loadres/images/interface/ajax.black.transparent.gif" />';

		if (post['replies']) {
			for (var i in post['replies']) {
				html += getReplyHTML(post['replies'][i]);
			}
		}

		html += '</div><button class="show-reply-form">' + MPORA.lang.wall_reply + '</button><div style="clear: both;"></div></div><form class="reply-form" method="post" action="/' + post['to_name'] +'/"><img height="38" width="38" class="wallthumbnail" alt="' + post['from_name'] + '" src="' + MPORA.globalVars.base_url + 'images/avatar/' + userID + '/s/" /><div class="writemessage-container"><textarea name="message"></textarea></div><input class="submit-wall-post" type="submit" name="submit-wall-post" value="' + MPORA.lang.wall_reply + '" /><div style="clear:both"></div></form><div style="clear:both"></div></div>';

		return html;
	}


	function insertReplies(JSONObj, position, updateReplyCount, f) {

		var wallposts = jQuery('.wallpost');
		var count = getObjLength(JSONObj);

		var earliest = loadOldPosts.attr('lastpost');

		var parentPost;
		var HTML;
		var replyCount;
		var replyCounter;
		var k = 0;
		var last;

		var inserted;
		var position;

		var replyCounter, showRepliesButton;

		for (var i in JSONObj) {

			if ( jQuery('.reply[postid=' + i + ']', theWall).length > 0 ) continue;
			if ( i > latestPost ) latestPost = i;
			if ( i < earliest ) earliest = i;

			HTML = jQuery(getReplyHTML(JSONObj[i], true));

			HTML.find('.delete-post').bind('click', deletePost);
			HTML.find('.incomplete').each(updateIncompleteData);
			HTML.find('.timeago').timeago();
			HTML.hover(showDeleteButton, hideDeleteButton);
			HTML.find('.media a').bind('click', function(e) {
				e.preventDefault();
				loadLocalMedia(jQuery(this));
			});

			parentPost = jQuery('.wallpost[postid=' + JSONObj[i]['reply_to'] + ']', theWall);

			if (parentPost.length == 0) continue;

			if (position == 'top') {
				// insert at top
				HTML.insertAfter( parentPost.find('img.loading-replies') );
			} else if (position == 'bottom') {
				//insert at bottom
				parentPost.find('.replies').append(HTML);
			} else {
				// search for and decide where to insert
				inserted = false;

				jQuery('.reply', parentPost).each(function() {

					if (jQuery(this).attr('postid') > JSONObj[i]['id']) {
						HTML.insertBefore(jQuery(this));
						inserted = true;
						return false;
					}
				});

				if (!inserted) {
					//HTML.insertAfter(jQuery(this));
					parentPost.find('.replies').append(HTML);
				}
			}

			if (updateReplyCount) {
				// Update the reply count.
				replyCount = 1 + parseInt(parentPost.attr('replycount'));
				parentPost.attr('replycount', replyCount);

				if ( replyCount == 1) replyCount += ' reply';
				else replyCount += ' replies';

				showRepliesButton = parentPost.find('.show-replies');
				showRepliesButton.find('strong').text(replyCount);
				showRepliesButton.find('img').fadeIn('fast');
				showRepliesButton.bind('click', showReplies);
			}

			HTML.animate({opacity: 1, height: 'show'}, 500, function() {
				k++;

				if (k >= count) {
					if (typeof f == "function") f();
				}
			});
		}
		if (parseInt(earliest) < parseInt(loadOldPosts.attr('lastpost'))) loadOldPosts.attr('lastpost', earliest);
	}


	function insertMessages(JSONObj, position, f) {
		// inserts messages on to a wall

		var count = getObjLength(JSONObj);

		var k = 0;
		var HTML;
		var endOfPosts = false;
		var last = jQuery('.wallpost:last', theWall).attr('postid');
		var earliest = loadOldPosts.attr('lastpost');

		var inserted;

		for (var i in JSONObj) {
			
			if ( jQuery('.wallpost[postid=' + i + ']', theWall).length > 0 ) continue;
			
			

			if ( i > latestPost ) latestPost = i;
			if ( i < earliest ) earliest = i;
	
			if ( messageIDs.indexOf(i.toString()) == -1 ) messageIDs.push(i.toString());

			if (JSONObj[i]['first']) endOfPosts = true;

			HTML = getPostHTML(JSONObj[i], i);

			var DOMObj = jQuery(HTML);

			if (position == 'top') {
				DOMObj.insertAfter(jQuery('#new-wall-post', theWall));
			} else if (position == 'bottom') {

				var pos = jQuery('.wallpost:last', theWall);
				if (pos.length == 0) pos = jQuery('#new-wall-post', theWall);

				DOMObj.insertAfter(pos);

			} else {
				if (parseInt(JSONObj[i]['id']) < parseInt(last)) continue;
				inserted = false;

				jQuery('.wallpost', theWall).each(function() {

					if ( JSONObj[i]['id'] > jQuery(this).attr('postid') ) {

						DOMObj.insertBefore(jQuery(this));
						inserted = true;
						return false;
					}
				});

				if (!inserted) theWall.append(DOMObj);
			}

			DOMObj.find('.delete-post').bind('click', deletePost);
			DOMObj.find('.incomplete').each(updateIncompleteData);
			DOMObj.find('.show-reply-form').bind('click', showReplyForm);
			DOMObj.find('.submit-wall-post').bind('click', postNewMessage);
			DOMObj.find('a.show-replies').bind('click', showReplies);
			DOMObj.find('.view-more-replies').bind('click', getOldReplies);
			DOMObj.find('.message-container').hover(showDeleteButton, hideDeleteButton);
			DOMObj.find('.timeago').timeago();

			DOMObj.find('.media a').bind('click', function(e) {
				e.preventDefault();
				loadLocalMedia(jQuery(this));
			});

			DOMObj.animate({opacity: 1, height: 'show'}, 500, function() {

				k++;
				if (k >= count) {
					if (typeof f == "function") f();
				}
			});
		}
		if (parseInt(earliest) < parseInt(loadOldPosts.attr('lastpost'))) loadOldPosts.attr('lastpost', earliest);

		return endOfPosts;
	}

	var gettingOldPosts = false;
	
	function getOldPosts() {
		// retrieves and inserts older posts to end of wall

		if (gettingOldPosts) return false;
		gettingOldPosts = true;
		
		var formInputs = jQuery('input[type!=hidden], textarea, button', theWall);
		formInputs.attr("disabled", true);

		jQuery('.loading-replies', loadOldPosts).animate({opacity: 1, height: 'show'}).css('display', 'block');

		var nextPostID 	= loadOldPosts.attr('lastpost');
		nextPostID 		= nextPostID - 1;

		var url = '/ajax/get_posts/';
		var post = 'to=' + wallID1 + '&type=' + wallType + '&start=' + nextPostID + '&order=DESC';
		
	 	if (wallID2 > 0) {
			post += '&from=' + wallID2 + '&shared=true';
		}

		// use it to retrieve old messages
		jQuery.ajax({
			type: "POST",
			url: url,
			data: post,
			success: function(msg){

 				var returnData = jQuery.evalJSON(msg);
				returnData = returnData['threads'];

				if ( insertMessages(returnData, 'bottom', function() {

					//jQuery('.loading-replies', loadOldPosts).pause(200).animate({opacity: 0, height: 'hide'});
				}) ) {
					loadOldPosts.fadeOut('fast');
				}

				gettingReplies = false;
				formInputs.removeAttr("disabled");
			},
			complete: function() {

				gettingOldPosts = false;
				jQuery('.loading-replies', loadOldPosts).pause(200).animate({opacity: 0, height: 'hide'});
			}
		});
	}
	jQuery('a', loadOldPosts).bind('click', getOldPosts);

	function getOldReplies() {
		// retrieves and inserts older replies into a wall post

		var formInputs = jQuery('input[type!=hidden], textarea, button', theWall);
		formInputs.attr("disabled", true);

		var wallPost 	= jQuery(this).parents('.wallpost');
		var replyForm	= wallPost.find('form');
		var messageID	= wallPost.attr('postid');
		var replyCount	= wallPost.attr('replycount');

		replyCount		= replyCount - jQuery('.reply', wallPost).length;
		var postData 	= 'message_id=' + messageID + '&count=' + replyCount;

		jQuery('.loading-replies', wallPost).fadeIn('fast');

		jQuery.ajax({
			type: "POST",
			url: '/ajax/get_replies/',
			data: postData,
			success: function(msg){

				var returnData = jQuery.evalJSON(msg);

				if (returnData['replies']) {

					returnData = returnData['replies'];
					insertReplies(returnData, 'top', false, function() { jQuery('.loading-replies, .view-more-replies', wallPost).pause(200).fadeOut('fast'); });
				}

				gettingReplies = false;
				formInputs.removeAttr("disabled");
			}
		});
	}
	jQuery('.view-more-replies', theWall).bind('click', getOldReplies);


	var gettingNewPosts = false;
	var timer;

	function getNewerPosts() {
		// run on setTimeout

		if (gettingNewPosts) return false;

		clearTimeout(timer);

		var nd = new Date();
		var timeout;
		var diff = nd.getTime() - lastMessageSent;

		if ( diff < 30000 ) timeout = 15000;
		else if ( diff < 60000 ) timeout = 30000;
		else if ( diff < 300000 ) timeout = 60000;
		else timeout = 120000;

		var nextPost = parseInt(latestPost) + 1;

		// retreieves and inserts newer replies and messages
		var postURL = '/ajax/get_posts/';

		var postData = 'to=' + wallID1 + '&type=' + wallType + '&start=' + nextPost + '&count=0&new=1&include_replies=1&arrange_replies=0&order=desc';

		if (wallID2 > 0) {
			postData += '&from=' + wallID2 + '&shared=true';
		}

		var i = 1;
		messageIDs = [];
		jQuery('.wallpost', theWall).each( function() {

			if (jQuery(this).attr('postid') != 'undefined')	messageIDs.push( jQuery(this).attr('postid') );
			i++;
			if (i > 20) return false;
		});
		if (messageIDs.length > 0) postData += '&include_replies_to=' + jQuery.toJSON(messageIDs);

		jQuery.ajax({
			type: "POST",
			url: postURL,
			data: postData,
			success: function(msg){

				if (msg == '"NO MESSAGES FOUND"') return false;

				var j = 0;
				returnData = jQuery.evalJSON(msg);

				if (!returnData['messages']) return false;
				else returnData = returnData['messages'];

				if ( getObjLength(returnData) == 0 ) return false;

				emptyWall.fadeOut('fast');

				var messages = { };
				var replies = { };

				for (var i in returnData) {
					if (returnData[i]['reply_to'] > 0) replies[ returnData[i]['id'] ] = returnData[i];
					else messages[ returnData[i]['id'] ] = returnData[i];
				}

				if (getObjLength(messages) > 0) insertMessages(messages, 'auto');
				if (getObjLength(replies) > 0) insertReplies(replies, 'auto', true);
			},
            error:function (xhr, ajaxOptions, thrownError){
          //  	alert(xhr.status);  
           //     alert(thrownError);
            }
		});

		timer = setTimeout(getNewerPosts, timeout);
	}
	jQuery('h1', theWall).bind('click', getNewerPosts);




	function postNewMessage(e) {
		// Posts a reply or a new message

		e.preventDefault();
		d = new Date();
		lastMessageSent = d.getTime();

		clearTimeout(timer);
		timer = setTimeout(getNewerPosts, 2000);
		// Validate the form
		var form = jQuery(this).parent();
		var formInputs = jQuery('input[type!=hidden], textarea, button', theWall);

		var wallpost 	= form.parents('.wallpost');

		var reply;
		if (wallpost.attr('postid')) reply = wallpost.attr('postid');
		else reply = 0;

		var messageBox 	= jQuery('textarea[name=message]', form);
		var FBURL = jQuery('input[name=FBURL]', form).val();
		var tofacebook = jQuery('input[name=tofacebook]', form).attr('checked');
		//alert(tofacebook.attr('checked'));
		//if (tofacebook.attr('checked') == "true") { tofacebook = "true"; } else { tofacebook = "false"; }
		
		
		var postURL = '/ajax/submit_wall_post/';//form.attr('action');
		var postData = 'to=' + wallID1 + '&type=' + wallType + '&reply=' + reply + '&message=' + escapeAmp(jQuery.trim(messageBox.val())) + "&submit-wall-post=true&ajax=true&FBURL=" + escapeAmp(FBURL) + "&tofacebook=" + tofacebook;
		
		
		jQuery.ajax({
			type: "POST",
			url: postURL,
			data: postData,
			success: function(msg){

				switch (msg) {
					case '"NOT LOGGED IN"':
						window.location.href = '/usercp/login/';
					break;
					case '"PERMISSION DENIED"':
						window.location.href = '/logout/'
					break;
					case '"THREAD DELETED"':
						modal.load('/dialogs/thread_deleted/', function() {

							var buttons = jQuery('button.closebtn', '#prompt').click(function(e) {

								e.preventDefault();
								modal.overlay().close();
							});

							modal.overlay({
								expose: {
									color: '#333',
									loadSpeed: 200,
									opacity: 0.9
								},
								closeOnClick: false,
								api: true,
								onClose: function() {
									wallpost.pause(1000).fadeOut('fast', function() { wallpost.remove() });
									buttons.unbind('click');
								},
								close: '.close'
							}).load();

						});
					break;
					default:
						jQuery('textarea', form).val('');
						jQuery('.counter', form).css('display', 'none');

						var returnData = jQuery.evalJSON(msg);

						emptyWall.fadeOut('fast');

						if ( !returnData['reply'] ) {

							returnData = returnData['threads'];

							insertMessages( returnData, 'top');
						} else {

							returnData = returnData['reply'];
							var replies = wallpost.find('.replies');

							insertReplies( returnData, 'bottom', true, function() {

								replies.animate({opacity: 1, height: 'show'}, 500, function() {
									wallpost.find('.show-replies').bind('click', showReplies);
									wallpost.find('button.hide-reply-form').click();
								});
							});
						}
					break;
				}

				formInputs.removeAttr("disabled");
			}
		});
	}


	jQuery('.submit-wall-post', theWall).bind('click', postNewMessage);


	var modal = jQuery('#prompt');
	modal.css({ width: 'auto', height: 'auto' });

	modalapi = modal.overlay({
				expose: {
					color: '#333',
					loadSpeed: 200,
					opacity: 0.9
				},
				closeOnClick: true,
  				api: true,
  				onClose: function(test) {
					modal.html('').attr('class', 'modal');
				},
				close: '.close'
	});

	function loadLocalMedia(media) {

		var item_id = media.attr('item_id');
		var type = media.attr('class');
		var url;

		switch (type) {
			case 'photo':
			case 'album':
				url = '/ajax/' + type + 'embed/id/' + item_id + '/';
			break;
			default: url = '/ajax/' + type + 'embed/width/480/height/315/vid/' + item_id + '/'; break;

		}

		modal.addClass(type + '-wall');
		modal.load(url, function() {

			switch (type) {
				case 'album':
					modal.find('#album').css({ height: '470px', width: '950px' });
				break;
				case 'photo':
					modal.find('img').wrap('<a href="' + media.attr('href') + '"></a>');
				break;
			}

			modal.find('.close').click(function() { modalapi.close(); });
			modalapi.load();

		});

	}
	jQuery('.media a', theWall).bind('click', function(e) {
		e.preventDefault();
		loadLocalMedia(jQuery(this));
	});

	function deletePost() {

		var thread = jQuery(this).closest('.wallpost, .reply');

		var dialog_type = 'delete_wall_thread';

		if (thread.attr('class') == 'reply') dialog_type = 'delete_wall_post';
		else if (thread.attr('replycount') == 0) dialog_type = 'delete_wall_post';

		var url = jQuery(this).attr('href');

		modal.load('/dialogs/' + dialog_type + '/', function() {

			var buttons = jQuery('button.closebtn', '#prompt').click(function(e) {

				e.preventDefault();

				var yes = jQuery(this).hasClass('save');
				if (yes) {

					var postData = 'ajax=true';
					jQuery.ajax({
						url: url,
						type: "POST",
						data: postData,
						async: true,
						success: function(msg) {

							if (msg == 'SUCCESS') {
								
								thread.fadeOut('fast', function() { thread.remove() });

								if (thread.hasClass('reply')) {

									var parentPost = thread.closest('.wallpost');
									var replyCount = parentPost.attr('replycount');
									replyCount--;
									parentPost.attr('replycount', replyCount);
									parentPost.find('.show-replies strong').html(replyCount + ((replyCount == 1) ? ' reply' : ' replies'));
								}
							}
							modal.overlay().close();
						}
					});

				} else {
					modal.overlay().close();
				}
			});

			modal.overlay({
				expose: {
					color: '#333',
					loadSpeed: 200,
					opacity: 0.9
				},
				closeOnClick: false,
				api: true,
				onClose: function() {
					buttons.unbind('click');
				},
				close: '.close'
			}).load();

		});

		return false;
	}
	jQuery('.delete-post', theWall).bind('click', deletePost);


	jQuery('textarea', theWall).counter();


	function showDeleteButton() {
		jQuery(this).find('.delete-post').stop(true).animate({ opacity: '100' });
	}
	function hideDeleteButton() {
		jQuery(this).find('.delete-post').pause(500).animate({ opacity: '0' });
	}
	jQuery('.message-container, .reply', theWall).hover(showDeleteButton, hideDeleteButton);


	function updateIncompleteData() {

		var holder = jQuery(this);
		var li = holder.closest('li');

		jQuery.ajax({
			url: '/ajax/update_incomplete_data/' + holder.attr('media_id'),
			type: "POST",
			async: true,
			success: function(msg) {

				li.fadeOut('fast', function() {

					var returnData = jQuery.evalJSON(msg);

					holder.removeClass('incomplete').removeAttr('media_id').css('display', 'block');
					li.find('h4').html(returnData['title']);
					li.find('p').html(returnData['description']);
					li.find('.item').attr('style', 'background: transparent url(' + returnData['thumbnail'] + ') no-repeat scroll center center;');

					li.fadeIn('slow');
				});
			}
		});
	};

	jQuery('.incomplete', theWall).each(updateIncompleteData);

	// last thing to start.
	timer = setTimeout(getNewerPosts, 5000);

});
