function add_celebration(element)
{
	element.addClass('day-highlight');
	element.addClass('changing-day');
	
	
	$("a.empty-day").unbind("click");
	element.removeClass('empty-day');

	var year = element.parent().parent().parent().parent().parent().attr('year');
	var month = element.parent().parent().parent().parent().parent().attr('month');
	var day = element.text();
	if(day<10)day=0+''+day;
	if(month<10)month=0+''+month;
	create_celebration_dialog(day+"."+month+"."+year);
   
    celebration_remover();
	
	$("a.empty-day").click(function(){
		add_celebration($(this));
	})
}

var count_new_celebration = -1;
	
function create_celebration_dialog(date, titles, id, speaker)
{
	if(titles == undefined) titles = new Array();
	if(id == undefined)
	{
		id = count_new_celebration;
		count_new_celebration--;
	}
	
	var tagId = id;
	
	$('.dialog-box').remove();
	var dialog = $("<div title='"+date+"' class='dialog-box'></div>");
	dialog.prependTo('body');
	var langList = $("<ul></ul>");
	for(var lang in config['lang_desc'])
	{
		if(titles[lang] == undefined) titles[lang] = '';
		var langItem = $("<li>"+config['lang_desc'][lang]+":<br/></li>");
		langItem.appendTo(langList);
		$("<input type='text' size='32' id='celebration-title-"+lang+"' class='celebration-title' value='"+titles[lang]+"'>").appendTo(langItem);
	}
	langList.appendTo(dialog);
	
	create_celebration_tag_editor(dialog, tagId);
	
	create_person_chooser(dialog, 'preacher', speaker);
	
	dialog.dialog({
		bgiframe: true,
		modal: true,
		buttons: {
			Save: function() {
				var item = undefined;
				$('input[name=celebration-ids[]]').each(function(){
					if($(this).val()==id) item = $(this).parent();
				});
				
				if(item==undefined || item.html()=='')
				{
					item = $("<li></li>");
					item.appendTo('ul#celebration-container');
				}
				
				item.html("<span class='celebration-date'>"+date+"</span>: "+dialog.find("#celebration-title-"+config['language_abbr']).val());
				
				item.prepend($("<a href='#' class='float_right edit-celebration'>!=</a>"));
				item.prepend($("<a href='#' class='float_right remove-celebration'>x</a>"));
					
						
				$(this).find("input.celebration-title").each(function(){
					$("<input type='hidden' name='"+$(this).attr("id")+"[]' value='"+$(this).val()+"' class='"+$(this).attr("id")+"'>").appendTo(item);
				})
				$("<input type='hidden' name='celebration-dates[]' value='"+date+"'>").appendTo(item);
				$("<input type='hidden' name='celebration-ids[]' value='"+id+"'>").appendTo(item);
				
				
				$("<input type='hidden' name='celebration-speaker-ids[]' value='"+$(this).find('input#speaker-id').val()+"'>").appendTo(item);
				$("<input type='hidden' name='celebration-speakers[]' value='"+$(this).find('input#speaker').val()+"'>").appendTo(item);
				
				$('<div>preacher: '+$(this).find('input#speaker').val()+'</div>').appendTo(item);
				
				//$(this).find('input.tag-id').appendTo(item);
				$(this).find('ul.tag-list').appendTo(item);
				
				$("<div class='clearfix'>&nbsp;</div>").appendTo(item)

				$(this).dialog('destroy');

				celebration_editor();
				celebration_remover();
				count_new_celebration--;
				id = undefined;
				
			}
		},
		close: function() {
			if(count_new_celebration== id-1)
			{
				var changinDay = $('.changing-day.day-highlight');
				changinDay.removeClass('day-highlight');
				changinDay.removeClass('changin-day');
				changinDay.addClass('empty-day');
				$("a.empty-day").click(function(){
					add_celebration($(this));
				})
			}
			id = undefined;
			$(this).dialog('destroy');
		}
	});
}



function celebration_editor()
{
	$("a.edit-celebration").click(function(){
		
		var date = $(this).next('span.celebration-date').text();
		var titles = new Array();
		for(var lang in config['lang_desc'])
		{
			titles[lang] = $(this).parent().find('input.celebration-title-'+lang).val();
		}
		var id = $(this).parent().find('input[name=celebration-ids[]]').val();
		
		var speaker = new Array();
		speaker[0] = $(this).parent().find('input[name=celebration-speaker-ids[]]').val();
		speaker[1] = $(this).parent().find('input[name=celebration-speakers[]]').val();
		//alert(speaker['name']);

		create_celebration_dialog(date, titles, id, speaker);
		id = undefined;
	})
}


function celebration_remover()
{
	$("a.remove-celebration").click(function(){
		var date = $(this).parent().find('input[name=celebration-dates[]]').val().split('.');

		var calDay = $("[year="+date[2]+"][month="+date[1]*1+"]").find('.day-'+(date[0]*1));
		calDay.removeClass('day-highlight');
		calDay.removeClass('day-highlight');
		calDay.addClass('empty-day');
		$(this).parent('li').remove();
		$("a.empty-day").click(function(){
			add_celebration($(this));
		})
	})
}





function activate_tag_editor()
{

//tag management
	$('.remove-tag').css('cursor', 'pointer');
	$('.remove-tag').click(function(){
		$(this).parent('li').hide('explode', function(){
			$(this).remove();
		});
	});

     	
	$('.tag-creator').keyup(function(e){
		
		var tag = $(this).val();
		
		if(e.keyCode == 13 && $(this).parent().find('.tag-suggestions').html()=='')
		{		
			if(tag.length>0 && tag.length != '')
			{
				add_tag(
					tag, 
					0, 
					$(this).parent().parent().find('.tag-list'),
					$(this).attr('rel')
				);
			}
			$(this).val('');
			$(this).parent().find('.tag-suggestions').html('');
		}
		else if(e.keyCode == 13 && $(this).parent().find('.tag-suggestions').html()!='')
		{
			$(this).val('');
			add_tag(
				$(this).parent().find('.tag-suggestions li.tag-selected').html(), 
				$(this).parent().find('.tag-suggestions li.tag-selected').attr('rel'), 
				$(this).parent().parent().find('.tag-list'),
				$(this).attr('rel')
			);
			$(this).val('');
			$(this).parent().find('.tag-suggestions').html('');
		}
		else if(e.keyCode == 38)
		{
			if($(this).parent().find('.tag-suggestions li.tag-selected').prev('li').html()!=null)
			{
				$(this).parent().find('.tag-suggestions li.tag-selected').removeClass('tag-selected').prev('li').addClass('tag-selected');
			}
		}
		else if(e.keyCode == 40)
		{
			if($(this).parent().find('.tag-suggestions li.tag-selected').next('li').html()!=null)
			{
				$(this).parent().find('.tag-suggestions li.tag-selected').removeClass('tag-selected').next('li').addClass('tag-selected');
			}
		}
		else if($(this).val() =='')
		{	
			$(this).parent().find('.tag-suggestions').html('');
		}
		else
		{
			
			search_tag(tag, $(this).parent().find('.tag-suggestions'));
		}
		return false;
	})
	// end of tag management



}


function create_celebration_tag_editor(parentItem, tagId)
{
	/*** tag editor ***/
	var tagEditor = $('<div></div>');
	tagEditor.addClass('tag-editor');
	tagEditor.appendTo(parentItem);
	
	var tagInput = $("<div></div>");
	tagInput.addClass('tag-input');
	tagInput.text("tags:");
	tagInput.appendTo(tagEditor);
	
	//$("<input type='hidden' name='celebration-tags[]' value='"+tagId+"' class='tag-id'/>").appendTo(tagInput);
	$("<input type='input' class='tag-creator' name='' rel='"+tagId+"' autocomplete='off' />").appendTo(tagInput);
	$("<ul class='tag-suggestions'></ul>").appendTo(tagInput);
	
	var tagList = $('<ul></ul>');
	tagList.addClass('tag-list');
	tagList.appendTo(tagEditor);
	
	$('input[name='+tagId+'-tags[]]').each(function(){
		add_tag($(this).val(), $(this).next().val(), tagList, tagId);
	})
	
	$("<div class='clearfix'>&nbsp;</div>").appendTo(tagEditor);
	
	
	activate_tag_editor();

	/*** end of tag editor ***/
}

