(function($) {
	if (!JS_AB) { var JS_AB = new Object(); }
	JS_AB.projects = {
		debug : true,
		init : function() {
			JS_AB.projects.commentsHandler.init();
			JS_AB.projects.flickrHandler.init();
		}
	}
	JS_AB.projects.commentsHandler = {
		blob : '<div class="shoutbox-comment secondarycontent clearfix"><div class="avatar"><a href="{url}" class="noborder" title="{nick}"><img src="/modulefiles/profiles/avatars/48x48/{avatar}" alt="{nick}" title="{nick}" /></a></div><div class="message"><p class="user"><a href="{url}" title="{nick}">{nick}</a></p><p>{text}</p></div></div>',
		spinner : '<img src="/modules/core/layout/images/spinner.gif" id="spinner_{id}" alt="" title="" />',
		init : function() {
			if ($('#btnAddComment').length > 0) { $('#btnAddComment').removeAttr('disabled').bind('click', JS_AB.projects.commentsHandler._initAddComment); }
			$('p.flagLink a').bind('click', JS_AB.projects.commentsHandler._initFlagComment);
		},
		_initAddComment : function(evt) {
			evt.preventDefault();
			$('#btnAddComment').attr('disabled','disabled');
			$('#spinner').css('visibility','visible');
			postData	= $('#addCommentForm').serialize();
			JS_AB.projects.commentsHandler._doAddComment(postData)
		},
		_doAddComment : function(postData) {
			$.ajax({
				url: '/ajax.php?module=projects&action=add_comment',
				type: 'post',
				dataType: 'json',
				cache: false,
				data: postData,
				success: function(json) { JS_AB.projects.commentsHandler._doneAddComment(json); },
				error: function(xhr,err,e) {
					alert(err + ' ' + e, 'Critical Error');
					if(!JS_AB.projects.debug) window.location.reload();
				}
			});
		},
		_doneAddComment : function(json) {
			if (JS_AB.projects.debug) console.log(json);
			switch (parseInt(json.status.code)) {
				case 200:
				case 400:
					toInsert = JS_NETLASH.utils.string.assignFromObject(JS_NETLASH.utils.string.assignFromObject(JS_AB.projects.commentsHandler.blob, json.content.user), json.content.comment);
					if (JS_AB.projects.debug)	console.log(toInsert);
					if ($('#no_sidebar_comments')) { $('#no_sidebar_comments').remove(); }
					$('#shoutbox-comments').prepend(toInsert);
					$('#addCommentForm').get(0).reset();
				break;
				case 500:
				default:
					alert(json.status.text);
				break;
			}
			$('#btnAddComment').removeAttr('disabled');
			$('#spinner').css('visibility','hidden');
		},
		_initFlagComment : function(evt) {
			evt.preventDefault();
			if (JS_AB.projects.debug)	console.log(evt);
			var id = evt.target.id.toString().substring(13);
			$(evt.target).parent().html(JS_NETLASH.utils.string.replaceAll(JS_AB.projects.commentsHandler.spinner, '{id}', id));
			postData = 'comment_id=' + id;
			JS_AB.projects.commentsHandler._doFlagComment(postData, id);
		},
		_doFlagComment : function(postData, id) {
			$.ajax({
				url: '/ajax.php?module=projects&action=flag_comment',
				type: 'post',
				dataType: 'json',
				cache: false,
				data: postData,
				success: function(json) { JS_AB.projects.commentsHandler._doneFlagComment(json, id); },
				error: function(xhr,err,e) {
					alert(err + ' ' + e, 'Critical Error');
					if(!JS_AB.projects.debug) window.location.reload();
				}
			});
		},
		_doneFlagComment : function(json, id) {
			if (JS_AB.projects.debug) console.log(json);
			switch (parseInt(json.status.code)) {
				case 200:
					$('#flagLink_' + id).html(json.status.text);
				break;
				case 400:
					$('#flagLink_' + id).html(json.status.text);
				break;
				case 500:
				default:
					alert(json.status.text);
					if(!JS_AB.projects.debug) window.location.reload();
				break;
			}
		},
		_eoo : true
	}
	JS_AB.projects.flickrHandler = {
		spinner : '<img src="/modules/core/layout/images/spinner.gif" alt="" title="" />',
		blob : '<li><a class="noborder" href="{url}"><img src="{image}" width="75" height="75" title="{title}" /></a></li>',
		init : function() { 
			if ($('#flickr_photos').length > 0) { JS_AB.projects.flickrHandler._initLoadPhotos(); }
		},
		_initLoadPhotos : function() {
			$('#flickr_photos').html(JS_AB.projects.flickrHandler.spinner);
			var projectId = '' + $('#flickr_photos').attr('rel');
			$.ajax({
				url: '/ajax.php?module=projects&action=load_photos',
				type: 'get',
				dataType: 'json',
				cache: false,
				data: 'project_id=' + projectId,
				success: function(json) { JS_AB.projects.flickrHandler._doneLoadPhotos(json); },
				error: function(xhr,err,e) { alert(err + ' ' + e, 'Critical Error'); }
			});
		},
		_doneLoadPhotos : function(json, project_id) {
			var projectId = '' + $('#flickr_photos').attr('rel');
			var html = '';
			for(i in json.content) {
				html += '<ul class="reset clearfix">\n';
				for(t in json.content[i]) html += JS_NETLASH.utils.string.assignFromObject(JS_AB.projects.flickrHandler.blob, json.content[i][t]) + '\n';
				html += '</ul>\n';
				html += '<p class="secondarycontent">'+ json.status.text +' <a href="http://www.flickr.com/photos/'+ json.content[i][0].account +'/tags/ab:project='+ json.content[i][0].project_id +'">'+ json.content[i][0].onsite_name +'</a></p>\n';
			}
			if(html == '') {
				html = json.status.text;
				$('#flickr_link').slideUp().remove();
			}
			$('#flickr_photos').html(html);
		},
		_eoo : true
	}
	$(document).ready(function() { JS_AB.projects.init(); });
})(jQuery)