// Common javascript for the Blog system.

function BlogPostActionNotice(title, body, objID)
{
	if (objID == undefined)		{	objID = 'blogMessageBox';}
	var message = '<h1>'+ title +'</h1><br><span class="imax-blog-action-notice">' + body + '</span><br>';
	var MsgBoxObj = $('#'+objID);
	MsgBoxObj.css('top', $('html, body').scrollTop() + 100);
	MsgBoxObj.show('fast').html( message );
	MsgBoxObj.animate({opacity: 1.0}, 2000).fadeTo("slow", 0);
}


function BlogEmailArticleDialog(postID)
{
// First get values to go into the dialog:
	
	var postdata = {};
	postdata.action = "emailform";
	postdata.id = postID;

	$.ajaxSetup({async:false});
	$.post("/blog/action.php", postdata, function(data, textStatus)
			{
				if ("ok" == data.result)
				{
//					var emailDialogHTML = $('#imax-blog-emailpost-dialog-block').html();
//					$('<div id="imax-blog-emailpost-dialog">'+emailDialogHTML+'</div>').appendTo(document.body);

					$('#imax-blog-emailpost-memberlist').html(data.memberlistHTML);
					$('#imax-blog-emailpost-subject').val(data.subject);
					$('#imax-blog-emailpost-message').val(data.message);
				
					var showEmailForm = {
						modal: true,
						title: 'Email Blog Post',
						position: 'center',
						width: 690,
						height: 680,
						autoOpen: false,
						beforeClose: function(event, ui) {
							$('#imax-blog-emailpost-memberlist').html("");
						},						
						close: function(){
							$('#imax-blog-emailpost-dialog').dialog("destroy");
						},
						buttons: {
							"Send Email": function(){BlogEmailArticle(postID,$(this))}
						}
					}
				
					$('#imax-blog-emailpost-dialog').dialog(showEmailForm).dialog('open');
				}
			},
		'json');
	return false;
}

function BlogEmailArticle(postID)
{
	var postdata = {};
	postdata.action = "email";
	postdata.type = "article";
	postdata.id = postID;
	postdata.subject = $('#imax-blog-emailpost-subject').val();
	postdata.sendself = $('#imax-blog-emailpost-sendself').attr('checked');
	postdata.message = $('#imax-blog-emailpost-message').val();
	postdata.emails = $('#imax-blog-emailpost-reciplist').val();
//	postdata.members = $('#imax-blog-emailpost-memberlist option:selected').val();

	postdata.members = $('#imax-blog-emailpost-memberlist input:checkbox:checked').map(function () {
		return this.value;
	}).get(); // ["18", "55", "10"]
	postdata.members = postdata.members.join(",");

	$.ajaxSetup({async:false});
	$.post("/blog/action.php", postdata, function(data, textStatus) {
			if ("ok" == data.result)
			{
//				data = "Email Sent";
			}
//	 alert("Blog Options: "+ data);
	 		BlogPostActionNotice("Blog Post", data.message, 'imax-blog-emailpost-msgbox');
		},
	'json');
	$('#imax-blog-emailpost-dialog').dialog('close');
}


// nested article archive javascript, for fancy expanding-ness. uncomment if you want to use this,
//		or add to the custom javascript for your template (which isnt currently working, but will be soon)
//$(document).ready(blog_article_archive_nested_init);



function blog_article_archive_nested_init() {

	var archive = $('.blog_article_archive_nested');

	// hide article lists and month lists
	$('.blog_article_archive_nested_articlelist, .blog_article_archive_nested_monthlist').hide();

	// setup onclick events for years and months
	$('.blog_article_archive_nested_yeartext').click(blog_article_archive_nested_year_click);
	$('.blog_article_archive_nested_monthtext').click(blog_article_archive_nested_month_click);

	// Set Archive Title
	$('.blog_article_archive_nested_title').text('BLOG ARCHIVE');

}

function blog_article_archive_nested_month_click() {

	$(this).parent().find('.blog_article_archive_nested_articlelist').toggle();

}

function blog_article_archive_nested_year_click() {

	var ml = $(this).parent().find('.blog_article_archive_nested_monthlist');
	ml.toggle();
	ml.find('.blog_article_archive_nested_articlelist:visible').hide();

}

function post_comment(ct) {

	ct.attr('disabled',true);

	var ab = ct.parents('.articleblock');

	var postdata = {};
	if (ab.attr('article_id')) {
		postdata.article_id = ab.attr('article_id');
	} else {
		postdata.article_id = 0;
	}
	postdata.name = ct.parent().find('input[name=name]').val();
	postdata.email = ct.parent().find('input[name=email]').val();
	postdata.body = ct.parent().find('textarea').val();

	$.post('ajax_post_comment.php',postdata,function(data){
		if (data == '1') {
			get_comment_list(ab);
		} else {
			ct.attr('disabled',false);
			alert('there was a problem saving your comment, please try again.\nerror message:\n'+data);
		}
	});

}

function toggle_comment_states(jqobj) {

	var ab = jqobj.parents('.articleblock');
	var cb = jqobj.parents('.comment');

	var postdata = {};
	postdata.aid = ab.attr('article_id');
	postdata.cid = cb.attr('comment_id');
	postdata.active = cb.find('[name=active]:checked').length;
	postdata.approved = cb.find('[name=approved]:checked').length;


	$.post('ajax_toggle_comment_states.php',postdata,function(data){
		if (data !== '1') {
			alert(data);
		}
	});

}



function toggle_comments(jqobj) {

	var ab = jqobj.parents('.articleblock');
	var cl = ab.find('.commentlist');
	var cloading = ab.find('.commentloading');

	if (cl.filter(':visible').length) {
		ab.find('.commentblockops').html('<span class="fakelink" onclick="toggle_comments($(this))">(view / post comments)</span></span>')
		cl.hide();
		return;
	} else {
		ab.find('.commentblockops').html('<span class="fakelink" onclick="toggle_comments($(this))">(hide comments)</span> <span class="fakelink" onclick="get_comment_list($(this).parents(\'.articleblock\'))">(refresh comments)</span>')
		if (ab.data('comments_cached') != true) {
			get_comment_list(ab);
			return;
		} else {
			cl.show();
		}
	}

}

function get_comment_list(ab) {

	var cl = ab.find('.commentlist');
	var cloading = ab.find('.commentloading');
	var postdata = {};
	postdata.article_id = ab.attr('article_id');

	var clto = setTimeout(function(){cloading.html('loading comments is taking longer than expected, please be patient, or try refreshing the comments.');},5000);

	cloading.html('loading comments...').show();
	cl.hide();

	$.post('ajax_comment_list.php',postdata,function(data){
		clearTimeout(clto);
		ab.data('comments_cached',true);
		cloading.hide()
		cl.replaceWith(data);
		ab.find('.commentlist').show();
		//ab.find('.commentcount span').text(ab.find('.commentlist .comment').length);
	});

}

