function loadDavid() { return David; }
var David = {
		TagEditor: {				
			isFound: function () { return $(".tags-form").length; },				
			Options: {
				animSpeed: 500,
				editingText: 'EDITING',
				editingTextDef: 'EDIT',
				objTagEditor: function() { return $('.tags-form'); },
				objTagList: function() { return $('.tags-form .sortable'); },			
				objTagEditForm: function() { 
					if ($('#propertiesBox-wrapper').length) { return $('.tags-form #propertiesBox-wrapper'); }
					else { return $('.tags-form .properties'); }
					},
				Behavior : function(){
					$('#tagContainer').sortable({ 
						handle: $(this).find('li a.btn-list'),
						containment: 'parent',
						tolerance: 'pointer',
						revert: true,
						stop : function(event,ui) {
							
						}
						});
					}
				},
			Init: function () {		
				var editForm = UI.Admin.TagEditor.Options.objTagEditForm();
				editForm.wrap('<div id="propertiesBox-wrapper" style="float: right; width: 0; overflow: hidden; position: relative; display: none;"></div>');
				editForm.find('.btn-delete-tag').live('click',function(){ 
					if (confirm("Are you sure you want to delete this tag?")) {
						UI.Admin.TagEditor.DeleteTag(tagid);
					}
					return false; 
				});
				editForm.find('.btn-save').live('click',function(){ 
					var tagid = $('#ActiveTagTitle').attr('data-id'), tagtypeid = $('#selectTagType option:selected').val(), tagtitle = $('#ActiveTagTitle').val();
					UI.Admin.TagEditor.UpdateTag(tagid,tagtypeid,tagtitle);
					return false; 				
				});
				editForm.find('.btn-cansel').live('click',function(){ 
					UI.Admin.TagEditor.Options.objTagEditForm().animate({width:'0px'},function(){ $(this).hide() });
					$('#tagContainer li').removeClass('active');
					return false;
				});
				
				var tagItem = UI.Admin.TagEditor.Options.objTagList().find('li');
				tagItem.find('.btn-edit').live('click',function(){ 
					var li = $(this).parents('li:first');
					var id = li.attr('data-id');
					var type = li.attr('data-type');
					$('#tagContainer li').removeClass('active');
					li.addClass('active');
					$('#ActiveTagTitle').val(li.find('.tag-name-paragraph').text()).attr('data-id',id);
					$('#selectTagType option').removeAttr("selected");
					$("#selectTagType option[value='"+type+"']").attr("selected", "selected");
					UI.Admin.TagEditor.Options.objTagEditForm().show().animate({width:'466px'});
					return false; 
				});
				tagItem.find('.btn-del').live('click',function(){ 
					var tagid = $(this).parents('li:first').attr('data-id');
					if (confirm("Are you sure you want to delete this tag?")) {
						UI.Admin.TagEditor.DeleteTag(tagid);
					}
					return false; 
				});	
				
				$('.btn-create-item').live('click',function(){ 
					alert('Add New Tag Button Clicked'); 
					return false; 
				});
				
				$('#tagTypeContainer input:checkbox').live('change',function(){ UI.Admin.TagEditor.TagTypeList.Cleanup(); });
				UI.Admin.TagEditor.Cleanup(true); 
			},
			Cleanup: function(clearAll) {
				/*
				var _tags = UI.Admin.TagEditor.Options.objTagList().find('li.active'), _this = _tags.hasClass('active');
				if (clearAll) { _tags.removeClass('active');}										
				if (_tags.length) {
					UI.Admin.TagEditor.Options.activeTagID = activeTag.attr('data-id');
					activeTag.find('.btn-edit').text(UI.Admin.TagEditor.Options.editingText);
					$('input#ActiveTagTitle').val();
					UI.Admin.TagEditor.TagEditForm.Show();
					}			
				else {
					UI.Admin.TagEditor.TagEditForm.Hide();
					}
				_tags.each(function(){
					if (!$(this).hasClass('active')) { $(this).find('.btn-edit').text(UI.Admin.TagEditor.Options.editingTextDef); }		   
					});
				$('#tagTypeContainer li:first').append('<span class="check"></span>');
				*/
				UI.Admin.TagEditor.TagEditForm.Hide();
				UI.Admin.TagEditor.TagTypeList.Cleanup();
				UI.Common.Form.RadioCheck.Cleanup();
				UI.Admin.TagEditor.LoadTagTypes();				
				UI.Admin.TagEditor.LoadTags();
				UI.Admin.TagEditor.Options.Behavior();
				},
			TagEditForm: {
				Show: function(){ UI.Admin.TagEditor.Options.objTagEditForm().show().animate({ width: '476px' }, { queue: false, duration: UI.Admin.TagEditor.Options.animSpeed }); },
				Hide: function(){ UI.Admin.TagEditor.Options.objTagEditForm().animate({ width: '0px' }, { queue: false, duration: UI.Admin.TagEditor.Options.animSpeed,complete: function(){ $(this).hide(); } });}
				},
			TagTypeList: {
				Cleanup: function(){						
					if ($('#tagTypeContainer input:checkbox:checked').length == $('#tagTypeContainer input:checkbox').length) { $('.check-list .btn-select').text('All'); }
					else if ($('#tagTypeContainer input:checkbox:checked').length == 0) { $('.check-list .btn-select').text('None'); }
					else {
						var tagTypeCount = 0;
						$('#tagTypeContainer input:checkbox:checked').each(function(){ tagTypeCount++; });
						$('.check-list .btn-select').text(tagTypeCount+' Types');
						}
					}
				},				
			LoadTagTypes: function () {
				$.ajax({
					type: "Get",
					url: UI.Common.Service.Url()+'/tagtype/get',
					contentType: "application/json; charset=utf-8",
					success : function(data){
						data = GlobalUtil.MakeObject(data);						
						$.each(data.DataCollection, function(i, result) {
							$("#tagTypeContainer").append('<li><input type="checkbox" name="TagTypeList" id="TagTypeId_'+result.Id+'" value="'+result.Id+'}" checked="checked" /><label for="TagTypeId_'+result.Id+'">'+result.Name+'</label></li>');
							$("#selectTagType").append('<option value="'+result.Id+'">'+result.Name+'</option> ');
							});
						}
					});					
				},					
			LoadTags: function (type,sort) {    
				$("#tagContainer").empty().append('<div class="dgLoading" style="height:355px;"></div>');
				$.ajax({
					type: "Get",
					url: UI.Common.Service.Url()+'/Tag/Get',
					contentType: "application/json; charset=utf-8",
					data: { take: -1, tagtypeid: (type != null ? type : 0) },
					success : function(data){
						$("#tagContainer").find('.dgLoading').remove();
						data = GlobalUtil.MakeObject(data);
						$.each(data.DataCollection, function(i, result) {
							var count = (result.TotalCourses*1)+(result.TotalCertifications*1)+(result.TotalCareers*1)+(result.TotalDiscussions*1);
							$("#tagContainer").append('<li data-id="'+result.TagId+'" data-type="'+result.TagTypeId+'"><div class="holder effects"><div class="options-lessons"><a href="#" class="btn-edit effects">EDIT</a><a href="#" class="btn-del">X</a><a href="#" class="btn-list"></a></div><p class="tag-name-paragraph">'+result.DisplayName+'</p><span class="label-green effects"><span>'+count+'</span></span></div></li>');
							});							
						}
					});					
				},
			UpdateTag: function (tid,ttid,ttitle) { 
				var params = { "tagid":tid, "tagtypeid":ttid, "tagtitle":ttitle };
				var qry = jQuery.param(params);
				$.ajax({
						type: "POST",
						url: UI.Common.Service.Url()+'/Tag/Update?'+qry,
						contentType: "application/json; charset=utf-8",
						success : function(data){
                            UI.Admin.TagEditor.Cleanup(true);
						},
						error : function(){
							return false;
						}	
					});									
				},
			DeleteTag: function (tid) { 
				var params = { "tagid":tid };
				var qry = jQuery.param(params);
				$.ajax({
						type: "POST",
						url: UI.Common.Service.Url()+'/Tag/Delete?'+qry,
						contentType: "application/json; charset=utf-8",
						success : function(data){
                            UI.Admin.TagEditor.Cleanup(true);
						},
						error : function(){
							return false;
						}	
					});									
				},
			}
	}
