(function($){
	$.nvzColumns.status = function() {
		var _s = $.topics.s;
		var _status = $('<div class="corners3"><form onsubmit="return false">'
				+'<div style="float:right;font-weight:bold;font-family:georgia" class="charcount">140<\/div>'
				+'<div class="hdr" style="color:'+$.mau.sA+'">'+$.Trans.WhatUpTo+'<\/div>'
				+'<textarea><\/textarea>'
				+'<input style="float:right" class="btn" type="submit" value="'+$.Trans.Write+'">'
				+'<br class="clear"><\/form><\/div>')
			.css({width: _s.size, padding: '9px'})
			.appendTo($.nvzColumns.shortest())
			.corners();

		_status.find('textarea')
			.css({width:_s.size-10,backgroundColor:$.mau.sB,padding:'2px',border:'2px solid '+$.mau.s9,margin:'0px 1px 5px 1px',fontFamily:'segoe ui,tahoma,helvetica',fontSize: '12pt'})
			.vertigro(140,'#content div.charcount');

		_status.find('div.charcount').css('color',$.mau.sE);

		$('<div class="perm"><\/div>')
			.permselect({type: 
				_s.ftype == 'forum_private' ? 1
				: (_s.ftype == 'forum' ? 2 : 0) })
			.insertAfter(_status.find('textarea'));

		_status.find('input').click(function(){
			var _text = _status.find('textarea').val();
			if (!_text) return false;

			$(this).val($.Trans.Loading).attr('disabled',true);

			$.reply.blurb({
				blurb: _text,
				perm: _status.find('div.perm').data('select'),
				where: $.topics.s.ftype.match(/^forum/) ? $.topics.s.uid : 0
			},function(){ document.location.href = $.defaults.page } );
		});
	};

	$.nvzColumns.friends = function() {
		var _s = $.topics.s;
		var _friends = $('#friends').length 
			? $('#friends')
			: $('<div id="friends" class="corners3"><\/div>')
			.css({width: _s.size, padding: '9px'})
			.data('page',-1)
			.appendTo($.nvzColumns.index($.nvzColumns.cols-1));

		var _page = _friends.data('page')+1;
		_friends.data('page',_page);
		if (_page > 0)
			_friends = _friends.find('div.hdr').parent();

		var _loadimg = function($id) {
			var _i = new Image;
			var _ihandler = function() {
				$('#n'+$id+' img').fadeTo('fast',1);
			};
			_i.onload = _ihandler;
			_i.src = '/='+$id+'&s=20';
			if (_i.complete) _ihandler;
		};

		$.post('/--/modules',{friend:_s.uid, page: _page},function($j){
			var _o = JSON.parse($j);
			if (_o.status) {
				!_page ? _friends.remove() : _friends.find('> img').remove();
				return false;
			}
			var _d = _o.data;

			if (!_page)
				_friends.append('<div class="hdr"><div style="float:right">'
					+_o.friends+'<\/div>'+$.Trans.Friends+'<\/div>');
			else
				_friends.find('> img').remove();

			$.each(_d, function(){
				var _ob = $('<a id="n'+this[1]+'" href="/'+this[0]+'"><img class="friend" title="'
					+this[0]
					+(this[2] != 0? ' ('+this[2]+' '+$.Trans.visits+')' : '')
					+'" src="/='+this[1]+'&s=20"><\/a>');

				_ob.appendTo(_friends)
					.find('img').css({opacity: 0, borderBottomColor:
						this[3]==1?$.mau.cY:(this[4]==1?$.mau.cB:'transparent')});

				_loadimg(this[1]);
			});
			if (_o.pages > 0)
				$('<img src="/=s.png">').css({cursor: 'pointer',margin: '6px 0px 5px 7px'}).appendTo(_friends)
				.click(function(){ $.nvzColumns.friends(); });

			if (_s.friend == 'owner' && _s.ftype.match(/^forum/) && $.defaults.admin)
				_friends.find('A').click(function(){
					return false;
				});

			!_page && _friends.corners();
		});
	};

	$.nvzColumns.pre = function() {
		var _s = $.topics.s;

		var _box = $('<div class="corners3"><img class="avatar" style="width:100px;height:100px;margin-left:5px" src="/='+_s.uid+'"><\/div>')
			.css({width: _s.size, padding: '9px'})
			.appendTo($.nvzColumns.index($.nvzColumns.cols-1))
			.corners();

		_box.find('img.avatar')
			.css('cursor','pointer')
			.click(function(){ document.location.href = '/image:'+$.defaults.page })
			.hover(
				function(){ var _t = $(this); 
					_t.animate({opacity: .3},function(){ _t.animate({opacity: 1},1000) }) },
				function(){ $(this).css('opacity',1) });

		if (_s.friend == 'owner' || (_s.ftype.match(/^forum/) && _s.friend == 'yes'))
			$.nvzColumns.status();

		$.nvzColumns.friends();

		$.post('/--/modules',{info:_s.uid},function($j){
			var _o = JSON.parse($j);
			if (_o.status) return false;

			_box.find('img').css('float','right').after('<b>'+_o.name+'<\/b><div class="about">'
				+(_o.note||'')+'<\/div><div class="btns" style="margin-top: 5px;">'
				+(_s.friend == 'no' ? '<img alt="subscribe" title="'+$.Trans.Subscribe+'" src="/=i_check.png">':'')
				+(_s.friend.match(/owner|yes/) ? '<img alt="note" title="'+$.Trans.WriteNote+'" src="/=i_reply.png"> ':'')
				+(_s.friend == 'owner' || (_s.friend == 'yes' && _s.ftype.match(/^forum/)) 
				?'<img alt="write" title="'+$.Trans.WriteBlog+'" src="/=i_pencil.png"> ':'')
				+(_s.friend.match(/follow|yes/) ? '<img alt="unsubscribe" title="'+$.Trans.Unsubscribe+'" src="/=i_delete.png">':'')
				+'<br class="clear"><\/div>');
			_box.find('b:first').css('color',$.mau.sD);
			_box.find('div.about').css('color',$.mau.s9);
			_box.find('div.btns img').css(_s.css)
				.hover(function(){$(this).css('opacity',1);},function(){$(this).css('opacity',.2);})
				.click(function(){
					switch ($(this).attr('alt')) {
					case 'note': 
						_box.comment({padding: 9, destroy: true,
							callback: function($o){
							if ($o.status) return false;
							$.notes.write({
								note: $o.text,
								to: _s.uid, 
								perm: $o.perm },
							function(){ document.location.href = '/notes:'+$.defaults.page }); }
						});
						break;
					case 'write':
						_box.comment({padding: 9, title: true, destroy: true,
							select: (_s.ftype == 'forum_private' ? 'fri' : 'pub'),
							callback: function($o){ 
							if ($o.status) return false;
							if (_s.ftype != 'blog')
								$o.forum = _s.uid;
							$.blog.write($o,function($id){ document.location.href = '/'+$id }); }
						});
						break;
					case 'unsubscribe': $.subscription.del(_s.uid); break;
					case 'subscribe': $.subscription.add(_s.uid); break;
					}
				});
			if ($.defaults.page == 'casey') {
				_box.find('img.avatar').css({border: '1px solid '+$.mau.cP, padding: '1px'});
				_box.find('b:first').css('color',$.mau.cP);
			}
		});
	};
})(jQuery);
