var blogUpdateObj = {
	blogSaveEntry : function() {
		var blogBody  = URLEncode(tinyMCE.get('blogBody').getContent());
		var blogTitle = $('#blogTitle').val();
		var blogTags  = $('#blogTags').val();
		var action    = $('#formAction').val();
		var beID      = $('#beID').val();
		var data = 'blogTitle='+blogTitle+'&blogTags='+blogTags+'&blogBody='+blogBody+'&action='+action+'&beID='+beID;
		$.ajax({
		    type: "POST",
		    url:  siteURL+'/ajaxDirector.php',
		    data: 'handler=saveBlogPost&'+data+'&blog=1',
		    success: function(msg){
		    	blogViewObj.getBlogPosts();
		    },
		    failure: function() {
		    	
		    }
	    });
	},
	clearBlogForm : function() {
		$('#blogTitle').val('');
	    $('#blogTags').val('');
	    $('#formAction').val('add');
	    $('#beID').val('');
	    tinyMCE.getInstanceById('blogBody').getBody().innerHTML = '';	
	},
	clearCommentForm : function() {
		$('#name').val('');
		$('#email').val('');
		$('#url').val('');
		$('#commentsText').val('');
	},
	blogDelete : function(entryID) {
		var OK = confirm("Are you sure you want to delete this Blog Post?");
		if (OK == true) {
			$.ajax({
			    type: "POST",
			    url:  siteURL+'/ajaxDirector.php',
			    data: 'handler=deleteBlogEntry&entryID='+entryID+'&blog=1',
			    success: function(msg){
			    	var entryID = msg;
			    	$('#row'+entryID).fadeOut('slow');
			    },
			    failure: function() {
			    	
			    }
		    });
		}
	},
	blogSaveComments : function() {
		var name  = $('#name').val();
		var email = $('#email').val();
		
		if ( (name == '') || (email == '') ) {
			$('#messageComments').systemMessage({
	        	message: 'You are missing some required fields.',
	        	status:  'error'
	        });			
		} else {		
			var formData = $('#formComment').serialize();
			$.ajax({
			    type: "POST",
			    url:  blogSiteURL+'/ajaxDirector.php',
			    data: 'handler=saveComments&'+formData,
			    success: function(msg){
			    	$('#newBlogComment').show('fast').html(msg);
			    	blogUpdateObj.clearCommentForm();
			    	$('#messageComments').systemMessage({
	        			message: 'Thanks for the comment!',
	        			status:  'success'
	        		});
			    }
		    });
		}		    
	},
	getEntryForEdit : function(entryID) {
		$.ajax({
		    type: "POST",
		    url:  siteURL+'/ajaxDirector.php',
		    data: 'handler=getBlogEntryForEdit&entryID='+entryID+'&blog=1',
		    success: function(msg){
		    	blogUpdateObj.renderEntryForEdit(msg);
		    },
		    failure: function() {
		    	
		    }
	    });
	},
	renderEntryForEdit : function(jsonString) {
		var jsonObject   = eval('(' + jsonString + ')');
		var beID      = jsonObject.BEID;
		var blogTitle = jsonObject.Title;
		var blogTags  = jsonObject.Tags;
		var blogBody  = jsonObject.BlogEntry;
		
		$('#blogTitle').val(blogTitle);
	    $('#blogTags').val(blogTags);
	    $('#formAction').val('edit');
		$('#beID').val(beID);
	    tinyMCE.getInstanceById('blogBody').getBody().innerHTML = blogBody;
	    $('#buttonNewEntry').hide('fast');
		$('#formBlogContainer').show('fast');		
	},
	blogToggleActive : function(entryID) {
		$.ajax({
		    type: "POST",
		    url:  siteURL+'/ajaxDirector.php',
		    data: 'handler=blogToggleActive&entryID='+entryID,
		    success: function(msg){
		    	var msgArray    = msg.split('|');
		    	var toggleClass = msgArray[0];
		    	var entryID     = msgArray[1];
		    	$('#toggle'+entryID).removeClass('toggleOn');
		    	$('#toggle'+entryID).removeClass('toggleOff');
		    	
		    	$('#toggle'+entryID).toggleClass(toggleClass);
		    },
		    failure: function() {
		    	
		    }
	    });
	},
	deleteComment : function(commentID) {
		$.ajax({
		    type: "POST",
		    url:  siteURL+'/ajaxDirector.php',
		    data: 'handler=deleteComment&commentID='+commentID,
		    success: function(msg){
		    	$('#commentContainer'+commentID).fadeOut('slow');
		    },
		    failure: function() {
		    	
		    }
	    });
	}
}

var blogTagObj = {
	checkTags : function() {
		
	},
	putTags : function() {
		
	}
}

var blogViewObj = {
	getBlogPosts : function() {
		$.ajax({
		    type: "POST",
		    url:  siteURL+'/ajaxDirector.php',
		    data: 'handler=getBlogPosts&blog=1',
		    success: function(msg){
		    	$('#blogList').html(msg);
		    	blogViewObj.blogListEventHandlers();
		    },
		    failure: function() {
		    	
		    }
	    });
	},
	blogListEventHandlers : function() {
		$('.buttonEdit').click(function() {
			blogUpdateObj.getEntryForEdit($(this).attr('entryID'));
			return false;
		});
		
		$('.buttonDelete').click(function() {
			blogUpdateObj.blogDelete($(this).attr('entryID'));
			return false;
		});
		
		$('.buttonActiveToggle').click(function() {
			blogUpdateObj.blogToggleActive($(this).attr('entryID'));
			return false;
		});
		
		$('.linkViewComments').click(function() {
			blogViewObj.getBlogCommentsForAdmin($(this).attr('entryID'));
			return false;
		});
	},
	getBlogCommentsForAdmin : function(entryID) {
		$.ajax({
		    type: "POST",
		    url:  siteURL+'/ajaxDirector.php',
		    data: 'handler=getBlogComments&beID='+entryID+'&format=commentOnly',
		    success: function(msg){
		    	var msgArray = msg.split('|');
		    	var beID     = msgArray[0];
		    	var comments = msgArray[1];
		    	$('#commentsContainer'+beID).html(comments);
		    	
		    	/*
		    	 * Attach event handlers
		    	 */
		    	$('.linkDeleteComment').click(function() {
					blogUpdateObj.deleteComment($(this).attr('commentID'));
					return false;
				});		    	
		    },
		    failure: function() {
		    	
		    }
	    });
	},
	renderBlogPosts : function(jsonString) {
		var jsonObject   = eval('(' + jsonString + ')');
		var returnedRows = jsonObject.TotalRows;
		var stringOut;
		if (returnedRows>0) {
			var start;
			var limit;
			var acdc;
			var stringOut = '<table class="dataTable" style="font-size: 1em;">';
			stringOut    += '<tr>';
			stringOut    += '<th style="width: 10%;"></th>';			
			stringOut    +=	'<th onmouseover="this.className=\'thHover\';" onmouseout="this.className=\'\';" style="width: 70%;">Title</th>' + 
							'<th onmouseover="this.className=\'thHover\';" onmouseout="this.className=\'\';" onClick="getClientDataObj.getClientsForGrid(\'page\','+start+','+limit+',\'C.ClientNameLast\',\''+acdc+'\',0); return false;" style="width: 10%;"><div ext:qtip="Sort by Name" style="cursor: pointer;">Date</div></th>' +
							'<th onmouseover="this.className=\'thHover\';" onmouseout="this.className=\'\';" onClick="getClientDataObj.getClientsForGrid(\'page\','+start+','+limit+',\'C.ClientNameLast\',\''+acdc+'\',0); return false;" style="width: 5%;"><div ext:qtip="Sort by Name" style="cursor: pointer;">Views</div></th>';
			stringOut    += '</tr>';				
			
			for(a=0;a<=(returnedRows-1);a++) {
				var entryID   = jsonObject.Blogs[a].BEID;
				var title     = jsonObject.Blogs[a].Title;
				var dateEntry = jsonObject.Blogs[a].DateEntry;
				var views     = jsonObject.Blogs[a].Views;
				
				if ((a % 2) > 0) { 
					rowClass = 'altRow'; 
				} else { 
					rowClass = '';
				}	
				
				stringOut += '<tr class="'+rowClass+'">';
				stringOut += '<td></td>';
				stringOut += '<td>'+title+'</td>';
				stringOut += '<td>'+dateEntry+'</td>';
				stringOut += '<td style="text-align: right;">'+views+'</td>';
				stringOut += '</tr>';				
			}
			stringOut += '</table>';
		} else {
			stringOut = '';
		}
		$('#blogListView').html(stringOut);
	}
}

$(document).ready(function() {
	if ($('#blogListView').length>0) {
		/*
		 * Get recent blogs
		 */
		blogViewObj.getBlogPosts();
	} else if ($('#blogEditForm').length>0) {
		/*
		 * Set up for editing blog
		 */
		$('#buttonSaveEntry').click(function() {
			$('#buttonNewEntry').show('fast');
			$('#formBlogContainer').hide('fast');
			blogUpdateObj.blogSaveEntry();
			return false;
		});
		
		/*
		 * Get tags and prep tag typeahead
		 */
		$('#blogTags').tagSuggest({
			tagContainer: 'div'
		});
		
		blogViewObj.blogListEventHandlers();
		
		$('#buttonNewEntry').click(function() {
			$('#buttonNewEntry').hide('fast');
			$('#formBlogContainer').show('fast');
			blogUpdateObj.clearBlogForm();
			return false;
		});
		
		$('#buttonCancelEntry').click(function() {
			$('#buttonNewEntry').show('fast');
			$('#formBlogContainer').hide('fast');
			return false;
		});
	}	
	
	if ($('#buttonAddComments').length>0) {
		$('#buttonAddComments').click(function() {
			blogUpdateObj.blogSaveComments();
			return false;
		});
	}	
});