function realternate(div_id)
{
	$$('div' + div_id + ' > div[class~=listItem]:nth-child(odd)', 'div' + div_id + ' > form:nth-child(odd) > div[class~=listItem]').each(function(s) {
		s.removeClassName('even');
		s.addClassName('odd');
	});
	$$('div' + div_id + ' > div[class~=listItem]:nth-child(even)', 'div' + div_id + ' > form:nth-child(even) > div[class~=listItem]').each(function(s) {
		s.removeClassName('odd');
		s.addClassName('even');
	});
}

var old_date = '';
function new_event(year, month, day)
{
  var new_event = '<form style="display: none;" id="form_new_event" action="/events" method="post" onsubmit="if ($(&quot;new_event_title&quot;).value == &quot;&quot;) {$(&quot;new_event_title&quot;).addclassName = &quot;error&quot;;} else {new Ajax.Request(&quot;/events&quot;, {asynchronous:true, evalScripts:true, method:&quot;post&quot;, parameters:Form.serialize(this)});} return false;">';
		  new_event += '<input type="hidden" id="event_start_date" name="event[start_date]" value="' + year + '-' + month + '-' + day + '" />';
		  new_event += '<div class="listItem nohover">';
		  new_event += '<div class="icons iconsDefault">';
		  new_event += '</div>';
		  new_event += '<div class="itemBody">';
		  new_event += '<div class="itemEvent">';
		  new_event += '<div class="eventDate" id="new_event_date' + year + '-' + month + '-' + day + '">';
		  new_event += '<h3>' + day + '</h3>';
		  new_event += '<h4>' + months[month - 1] + '</h4>';
		  new_event += '</div>';
		  new_event += '<div class="eventContent">';
		  new_event += '<div class="okbutton">';
		  new_event += '<div><input type="submit" value="" class="button"/></div>';
		  new_event += '</div>';
		  new_event += '<div class="eventTitleEdit"><div><input type="text" id="new_event_title" name="event[title]" value="" /></div></div>';
		  new_event += '<div class="eventProperties" >';
		  new_event += '<div class="formRow">';
		  new_event += '<div class="formLabel">';
		  new_event += I18n_t('started');
		  new_event += '</div>';
		  new_event += '<div id="control4" class="formControl">';
		  new_event += '<div class="text" id="new_event_started' + year + '-' + month + '-' + day + '">' + day + ' ' + months[month - 1] + ' ' + year + '</div>';
		  new_event += '</div>';
		  new_event += '</div>';
		  new_event += '<div class="formRow">';
		  new_event += '<div class="formLabel">';
		  new_event += I18n_t('repeat');
		  new_event += '</div>';
		  new_event += '<div id="control5" class="formControl">';
		  new_event += '<div class="text">'+I18n_t('yearly')+'</div>';
		  new_event += '</div>';
		  new_event += '</div>';
		  new_event += '<div class="formRow">';
		  new_event += '<div class="formLabel">';
		  new_event += I18n_t('remind_me');
		  new_event += '</div>';
		  new_event += '<div id="control6"  class="formControl">';
		  new_event += '<div class="text">'+I18n_t('day_ahead')+'</div>';
		  new_event += '</div>';
		  new_event += '</div>';
		  new_event += '</div>';
		  new_event += '</div>';
		  new_event += '</div>';
		  new_event += '</div>';
		  new_event += '</div>';
		  new_event += '</form>';

  if ($('form_new_event') == null)
	{
    Insertion.Top('events', new_event);
		Effect.BlindDown('form_new_event', {duration: 0.5, afterFinish: function(effect) {$('new_event_title').focus();}});
	}
  else
  {
    $('l' + old_date).removeClassName('editing');
		$('event_start_date').value = year + '-' + month + '-' + day;
		Insertion.After('new_event_date' + old_date, '<div class="eventDate" style="display: none;" id="new_event_date' + year + '-' + month + '-' + day + '"><h3>' + day + '</h3><h4>' + months[month - 1] + '</h4></div>');
		Effect.DropOut('new_event_date' + old_date, {afterFinish: function(effect) { Effect.BlindDown('new_event_date' + year + '-' + month + '-' + day); $('new_event_title').focus(); }});
		$('new_event_started' + old_date).replace('<div class="text" id="new_event_started' + year + '-' + month + '-' + day + '">' + day + ' ' + months[month - 1] + ' ' + year + '</div>');
  }
  $('l' + year + '-' + month + '-' + day).addClassName('editing');
  old_date = year + '-' + month + '-' + day;
}

function change_repeat(select)
{
	if (select.value != "0")
	{
	  if ($('stop').style.display == "none")
	  {
	    Effect.BlindDown('stop');
		  $('stop_date').show();
		  $('stop_times').show();
	  }
	}
	else
	{
	  Effect.BlindUp('stop');
	  $('stop_date').hide();
	  $('stop_times').hide();
	}
}

function change_stop(select)
{
  if (select.value == "after_date")
  {
    if ($('stop_date').style.display == "none")
    {
      Effect.BlindUp('stop_times', {afterFinish: function(effect) { Effect.BlindDown('stop_date'); }});
    }
  }
  if (select.value == "times")
  {
    if ($('stop_times').style.display == "none")
    {
      Effect.BlindUp('stop_date', {afterFinish: function(effect) { Effect.BlindDown('stop_times'); }});        
    }
  }
  if (select.value == "never")
  {
    Effect.BlindUp('stop_date');
    Effect.BlindUp('stop_times');
  }
}

function remove_reminder(num)
{
  Effect.BlindUp('reminder' + num);
  $('reminders_' + num + '_count').value = '';
}

function add_reminder(day, id, i)
{
	new_reminder = '<div class="formRow" style="display: none;" id="reminder' + id + '_' + i + '">';
	new_reminder += '<a href="#" class="icon iconDrop" onclick="remove_reminder(&quot;' + id + '_' + i + '&quot;); return false;"><span>'+I18n_t('drop_item')+'</span></a>';
	new_reminder += '<input type="text" class="day" name="reminders[' + i + '][count]" id="reminders_' + id + '_' + i + '_count" value="" /> ';
	new_reminder += '<select name="reminders[' + i + '][unit]" class="month">';
	new_reminder += '<option value="1">'+I18n_t('days')+'</option>';
	new_reminder += '<option value="2">'+I18n_t('weeks')+'</option>';
	new_reminder += '</select>';
	new_reminder += '</div>';

	Insertion.Bottom('reminders' + id, new_reminder);    
	Effect.BlindDown('reminder' + id + '_' + i, {duration: 0.5});
	i++;
	$('adding_reminders' + id + '_' + day).update('<a href="#" onclick="add_reminder(&quot;' + day + '&quot;, ' + id + ', ' + i + '); return false;"><span class="icon iconAdd"><!-- --></span><span class="link">'+I18n_t('add_another_reminder')+'</span></a>');
}

function edit_event_reminders(id, day)
{
	form = '<form method="post" onsubmit="new Ajax.Request(&quot;/events/' + id + '&quot;, {asynchronous:true, evalScripts:true, method:&quot;put&quot;, parameters:Form.serialize(this)}); return false;">';
	form += '<input type="hidden" name="event[date]" value="' + event_date[id] + '">';
	form += '<div class="okbutton">';
	form += '<div><input type="submit" value="" class="button"/></div>';
	form += '</div>';
	form += '<div id="reminders' + id + '">';

  var i = 0;
  if (event_reminders[id] != null)
  {
      while(reminder = event_reminders[id].pop())
      {
				form += '<div class="formRow" id="reminder' + id + '_' + i + '">';
				form += '<a href="#" class="icon iconDrop" onclick="remove_reminder(&quot;' + id + '_' + i + '&quot;); return false;"><span>'+I18n_t('drop_item')+'</span></a>';
				form += '<input type="text" class="day" name="reminders[' + i + '][count]" id="reminders_' + id + '_' + i + '_count" value="' + reminder[0] + '" /> ';
				form += '<select name="reminders[' + i + '][unit]" class="month">';
				form += '<option value="1"' + ((reminder[1] == 1) ? " selected=\"selected\"" : "") + '>'+I18n_t('days')+'</option>';
				form += '<option value="2"' + ((reminder[1] == 2) ? " selected=\"selected\"" : "") + '>'+I18n_t('weeks')+'</option>';
				form += '</select>';
				form += '</div>';
        i++;
      }
  }

	form += '</div>';
	form += '</form>';
	form += '<div class="formRow">';
	form += '<div class="iconLink" id="adding_reminders' + id + '_' + day + '">';
	form += '<a href="#" onclick="add_reminder(&quot;' + day + '&quot;, ' + id + ', ' + i + '); return false;">';
	form += '<span class="icon iconAdd"><!-- --></span>';
	form += '<span class="link">' + I18n_t('add_another_reminder') + '</span>';
	form += '</a>';
	form += '</div>';
	form += '</div>';
	
	$('reminders_box' + day + '_' + id).insert({bottom: form});
	$('reminders' + day + '_' + id).remove();
}

function edit_event(id, day)
{
	var date = new Date(event_date[id].substring(0, 4), event_date[id].substring(5, 7) - 1, event_date[id].substring(8, 10));
	var start_date = new Date(event_start_date[id].substring(0, 4), event_start_date[id].substring(5, 7) - 1, event_start_date[id].substring(8, 10));
	if (event_stop_date[id] != "")
		var stop_date = new Date(event_stop_date[id].substring(0, 4), event_stop_date[id].substring(5, 7) - 1, event_stop_date[id].substring(8, 10));
	
	var form = '<form id="edit' + day + '_' + id + '" style="display: none;" method="post" onsubmit="new Ajax.Request(&quot;/events/' + id + '&quot;, {asynchronous:true, evalScripts:true, method:&quot;put&quot;, parameters:Form.serialize(this)}); return false;">';
			form += '<input type="hidden" name="event[date]" value="' + event_date[id] + '">';
			form += '<div class="listItem nohover">';
			form += '<div class="icons iconsDefault">';
			form += '<a class="iconDrop" href="#" onclick="if (confirm(\''+I18n_t('are_you_sure')+'\')) { new Ajax.Request(\'/events/' + id + '?date=' + event_date[id] + '\', {asynchronous:true, evalScripts:true, method:\'delete\'}); }; return false;" title="'+I18n_t('title_delete')+'"><span>'+I18n_t('Delete')+'</span></a>';
			form += '</div>';
			form += '<div class="itemBody">';
			form += '<div class="itemEvent">';
			form += '<div class="eventDate">';
			form += '<h3>' + event_date[id].substring(8, 10) + '</h3>';
			form += '<h4>' + months[date.getMonth()] + '</h4>';
			form += '</div>';
			form += '<div class="eventContent">';
			form += '<div class="okbutton">';
			form += '<div><input type="submit"  value="" class="button"/></div>';
			form += '</div>';
			form += '<div class="eventTitleEdit"><div><input type="text" name="event[title]" value="' + event_title[id].replace(/\"/g, "&quot;") + '" /></div></div>';
			form += '<div class="eventProperties">';
			form += '<div class="formRow"></div> ';
			form += '<div class="formRow"> ';
			form += '<div class="formLabel">';
			form += I18n_t('started');
			form += '</div>';
			form += '<div id="control1" class="formControl">';
			form += '<input type="text" class="day" name="event[day]" value="' + start_date.getDate() + '" /> ';
			form += '<select class="month" name="event[month]">';
      form += '<option value="1"' + ((start_date.getMonth() == 0) ? " selected=\"selected\"" : "") + '>'+months_long[0]+'</option>';
      form += '<option value="2"' + ((start_date.getMonth() == 1) ? " selected=\"selected\"" : "") + '>'+months_long[1]+'</option>';
      form += '<option value="3"' + ((start_date.getMonth() == 2) ? " selected=\"selected\"" : "") + '>'+months_long[2]+'</option>';
      form += '<option value="4"' + ((start_date.getMonth() == 3) ? " selected=\"selected\"" : "") + '>'+months_long[3]+'</option>';
      form += '<option value="5"' + ((start_date.getMonth() == 4) ? " selected=\"selected\"" : "") + '>'+months_long[4]+'</option>';
      form += '<option value="6"' + ((start_date.getMonth() == 5) ? " selected=\"selected\"" : "") + '>'+months_long[5]+'</option>';
      form += '<option value="7"' + ((start_date.getMonth() == 6) ? " selected=\"selected\"" : "") + '>'+months_long[6]+'</option>';
      form += '<option value="8"' + ((start_date.getMonth() == 7) ? " selected=\"selected\"" : "") + '>'+months_long[7]+'</option>';
      form += '<option value="9"' + ((start_date.getMonth() == 8) ? " selected=\"selected\"" : "") + '>'+months_long[8]+'</option>';
      form += '<option value="10"' + ((start_date.getMonth() == 9) ? " selected=\"selected\"" : "") + '>'+months_long[9]+'</option>';
      form += '<option value="11"' + ((start_date.getMonth() == 10) ? " selected=\"selected\"" : "") + '>'+months_long[10]+'</option>';
      form += '<option value="12"' + ((start_date.getMonth() == 11) ? " selected=\"selected\"" : "") + '>'+months_long[11]+'</option>';
			form += '</select> ';
			form += '<input type="text" name="event[year]" value="' + start_date.getFullYear() + '" class="year"/>';
			form += '</div>';
			form += '</div> ';
			form += '<div class="formRow"> ';
			form += '<div class="formLabel">';
			form += I18n_t('repeat');
			form += '</div>';
			form += '<div id="control2" class="formControl"> ';
			form += '<div class="controlGroup"> ';
			form += '<select class="repeat1" name="event[repeat]" onchange="change_repeat(this); return false;">';
			form += '<option value="0"' + ((event_repeat[id] == "0") ? " selected=\"selected\"" : "") + '>'+I18n_t('never')+'</option>';
			form += '<option value="1"' + ((event_repeat[id] == "1") ? " selected=\"selected\"" : "") + '>'+I18n_t('weekly')+'</option>';
			form += '<option value="2"' + ((event_repeat[id] == "2") ? " selected=\"selected\"" : "") + '>'+I18n_t('monthly')+'</option>';
			form += '<option value="3"' + ((event_repeat[id] == "3") ? " selected=\"selected\"" : "") + '>'+I18n_t('monthly')+'</option>';
			form += '</select> ';	
			form += '</div>';

			form += '<div class="controlGroup" id="stop"' + ((event_repeat[id] == "0") ? " style=\"display: none;\"": "") + '> <select class="repeat2" name="event[stop]" onchange="change_stop(this); return false;">';
			form += '<option value="never"' + ((event_times_to_repeat[id] == "-1") ? " selected=\"selected\"" : "") + '>'+I18n_t('forever')+'</option>';
			form += '<option value="after_date"' + ((event_times_to_repeat[id] == "-2") ? " selected=\"selected\"" : "") + '>'+I18n_t('till_date')+'</option>';
			form += '<option value="times"' + ((event_times_to_repeat[id] != "-1")&&(event_times_to_repeat[id] != "-2") ? " selected=\"selected\"" : "") + '>'+I18n_t('few_times')+'</option>';
			form += '</select> ';
			form += '</div>';


			form += '<div class="controlGroup" id="stop_date"' + (((event_repeat[id] == "0")||(event_times_to_repeat[id] != "-2")) ? " style=\"display: none;\"": "") + '>';
			form += '<input type="text" name="event[stop_day]" class="day" value="' + ((event_times_to_repeat[id] == -2) ? stop_date.getDate() : "") + '" /> ';
			form += '<select name="event[stop_month]" class="month">';
      form += '<option value="1"' + (((event_times_to_repeat[id] == -2)&&(stop_date.getMonth() == 0)) ? " selected=\"selected\"" : "") + '>'+months_long[0]+'</option>';
      form += '<option value="2"' + (((event_times_to_repeat[id] == -2)&&(stop_date.getMonth() == 1)) ? " selected=\"selected\"" : "") + '>'+months_long[1]+'</option>';
      form += '<option value="3"' + (((event_times_to_repeat[id] == -2)&&(stop_date.getMonth() == 2)) ? " selected=\"selected\"" : "") + '>'+months_long[2]+'</option>';
      form += '<option value="4"' + (((event_times_to_repeat[id] == -2)&&(stop_date.getMonth() == 3)) ? " selected=\"selected\"" : "") + '>'+months_long[3]+'</option>';
      form += '<option value="5"' + (((event_times_to_repeat[id] == -2)&&(stop_date.getMonth() == 4)) ? " selected=\"selected\"" : "") + '>'+months_long[4]+'</option>';
      form += '<option value="6"' + (((event_times_to_repeat[id] == -2)&&(stop_date.getMonth() == 5)) ? " selected=\"selected\"" : "") + '>'+months_long[5]+'</option>';
      form += '<option value="7"' + (((event_times_to_repeat[id] == -2)&&(stop_date.getMonth() == 6)) ? " selected=\"selected\"" : "") + '>'+months_long[6]+'</option>';
      form += '<option value="8"' + (((event_times_to_repeat[id] == -2)&&(stop_date.getMonth() == 7)) ? " selected=\"selected\"" : "") + '>'+months_long[7]+'</option>';
      form += '<option value="9"' + (((event_times_to_repeat[id] == -2)&&(stop_date.getMonth() == 8)) ? " selected=\"selected\"" : "") + '>'+months_long[8]+'</option>';
      form += '<option value="10"' + (((event_times_to_repeat[id] == -2)&&(stop_date.getMonth() == 9)) ? " selected=\"selected\"" : "") + '>'+months_long[9]+'</option>';
      form += '<option value="11"' + (((event_times_to_repeat[id] == -2)&&(stop_date.getMonth() == 10)) ? " selected=\"selected\"" : "") + '>'+months_long[10]+'</option>';
      form += '<option value="12"' + (((event_times_to_repeat[id] == -2)&&(stop_date.getMonth() == 11)) ? " selected=\"selected\"" : "") + '>'+months_long[11]+'</option>';
			form += '</select> ';
			form += '<input type="text" name="event[stop_year]" value="' + ((event_times_to_repeat[id] == -2) ? stop_date.getFullYear() : "") + '" class="year"/> ';
			form += '</div>';
			form += '<div class="controlGroup" id="stop_times"' + ((event_repeat[id] == "0") ? " style=\"display: none;\"" : (((event_times_to_repeat[id] != "-2")&&(event_times_to_repeat[id] != "-1")) ? "" : " style=\"display: none;\"")) + '>';
			form += '<input type="text" class="day" name="event[stop_times]" value="' + (((event_times_to_repeat[id]) != -1 && (event_times_to_repeat[id] != -2)) ? event_times_to_repeat[id] : "") + '" /> ';
			form += '</div>';


			form += '</div>';
			form += '</div> ';
			form += '<div class="formRow"> ';
			form += '<div class="formLabel">';
			form += I18n_t('remind_me');
			form += '</div>';
			form += '<div id="control3" class="formControl">';
			form += '<div id="reminders' + id + '">';

	    var i = 0;
	    if (event_reminders[id] != null)
	    {
	        while(reminder = event_reminders[id].pop())
	        {
						form += '<div class="formRow" id="reminder' + id + '_' + i + '">';
						form += '<a href="#" class="icon iconDrop" onclick="remove_reminder(&quot;' + id + '_' + i + '&quot;); return false;"><span>'+I18n_t('drop_item')+'</span></a>';
						form += '<input type="text" class="day" name="reminders[' + i + '][count]" id="reminders_' + id + '_' + i + '_count" value="' + reminder[0] + '" /> ';
						form += '<select name="reminders[' + i + '][unit]" class="month">';
						form += '<option value="1"' + ((reminder[1] == 1) ? " selected=\"selected\"" : "") + '>'+I18n_t('days')+'</option>';
						form += '<option value="2"' + ((reminder[1] == 2) ? " selected=\"selected\"" : "") + '>'+I18n_t('weeks')+'</option>';
						form += '</select>';
						form += '</div>';
	          i++;
	        }
	    }

			form += '</div>';
			form += '<div class="formRow">';
			form += '<div class="iconLink" id="adding_reminders' + id + '_' + day + '">';
			form += '<a href="#" onclick="add_reminder(&quot;' + day + '&quot;, ' + id + ', ' + i + '); return false;">';
			form += '<span class="icon iconAdd"><!-- --></span>';
			form += '<span class="link">'+ I18n_t('add_another_reminder')+'</span>';
			form += '</a>';
			form += '</div>';
			form += '</div>';
			form += '</div>';
			form += '</div>';
			form += '</div>';
			form += '</div>';
			form += '</div>';
			form += '</div>';
			form += '</div>';
			form += '</form>';
			
	$(day + '_' + id).insert({ 'after' : form });
 	$(day + '_' + id).remove();
 	$('edit' + day + '_' + id).show();
}

function create_event(date, today, nearest, id, title)
{
	b_nearest = nearest;
	calend_link = $('l' + date);
	if (nearest != '')
		nearest = new Date(nearest.substring(0, 4), nearest.substring(5, 7) - 1, nearest.substring(8, 10));
	    
	today = new Date(today.substring(0, 4), today.substring(5, 7) - 1, today.substring(8, 10));
	date = new Date(date.substring(0, 4), date.substring(5, 7) - 1, date.substring(8, 10));
	
	if (!calend_link) return;
	
	calend_link.removeClassName('editing');
	calend_link.addClassName('event');
	if (calend_link.title != '')
		calend_link.title += ', ';
	calend_link.title += title;
	
	if ((nearest - today < 90 * 24 * 60 * 60 * 1000) && (!$('up_event' + id)) && (b_nearest != '') && ($('upcoming_events_list')))
	{
//		var months = new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
		Insertion.Bottom('upcoming_events_list', '<tr id="up_event' + id + '"><td class="date" sortkey="' + b_nearest + '"> ' + nearest.getDate() + ' ' + months[nearest.getMonth()] + ' </td><td class="title"><div> ' + title + ' </div></td></tr>');
	}
}

function destroy_event(date, today, id, title)
{
	parsed_today = new Date(today.substring(0, 4), today.substring(5, 7) - 1, today.substring(8, 10));
	parsed_date = new Date(date.substring(0, 4), date.substring(5, 7) - 1, date.substring(8, 10));
	calend_link = $('l' + date);
	
	if (!calend_link) return;


	reg1 = new RegExp(", " + title, "g");
	reg2 = new RegExp(title + ", ", "g");
	reg3 = new RegExp(title, "g");
	calend_link.title = calend_link.title.replace(reg1, '');
	calend_link.title = calend_link.title.replace(reg2, '');
	calend_link.title = calend_link.title.replace(reg3, '');
	
	if ((calend_link.title == '') || ((parsed_date - parsed_today == 0) && (calend_link.title.length == 16)))
	  calend_link.removeClassName('event');

	if ($('up_event' + id))
		$('up_event' + id).remove();
}


function edit_wish(id)
{
  var value = $('wish_text' + id).innerHTML;
	var form = '<form style="display: none;" id="wish_' + id + '_form" method="post" onsubmit="new Ajax.Request(&quot;/circles/77/wishes/' + id + '&quot;, {asynchronous:true, evalScripts:true, method:&quot;put&quot;, parameters:Form.serialize(this)}); return false;">';
			form += '<div class="listItem nohover buttons">';
			form += '<div class="icons iconsDefault">';
			form += '<a href="#" class="iconDrop" title="'+I18n_t('title_delete')+'" onclick="new Ajax.Request(&quot;/circles/77/wishes/' + id + '&quot;, {asynchronous:true, evalScripts:true, method:&quot;delete&quot;}); return false;"><span>'+I18n_t('delete')+'</span></a>';
			form += '</div>';
			form += '<div class="icons iconsExtra">';
			form += '<input type="submit" value="" class="iconOk" />';
			form += '</div>';
			form += '<div class="itemBody"><div>';
			form += '<input type="text" id="wish_' + id + '_text" name="text" value="' + value.replace(/\"/g, "&quot;") + '" />';
			form += '</div>';
			form += '</div>';
			form += '</div>';
			form += '</form>';
			
	$('wish_' + id).insert({ 'after' : form });
 	$('wish_' + id).remove();
 	$('wish_' + id + '_form').show();
	$('wish_' + id + '_text').focus();
}

function edit_invite(id)
{
  var value = $('invite_name' + id).innerHTML;
	var form = '<form style="display: none;" id="member_' + id + '_form" method="post" onsubmit="new Ajax.Request(&quot;/invites/' + id + '&quot;, {asynchronous:true, evalScripts:true, method:&quot;put&quot;, parameters:Form.serialize(this)}); return false;">';
			form += '<div class="listItem nohover buttons">';
			form += '<div class="icons iconsDefault">';
			form += '<a href="#" class="iconDrop" title="'+I18n_t('title_delete')+'" onclick="if (confirm(&quot;Are you sure?&quot;)) { new Ajax.Request(&quot;/invites/' + id + '&quot;, {asynchronous:true, evalScripts:true, method:&quot;delete&quot;});}; return false;"><span>'+I18n_t('delete')+'</span></a>';
			form += '</div>';
			form += '<div class="icons iconsExtra">';
			form += '<input type="submit" value="" class="iconOk" />';
			form += '</div>';
			form += '<div class="itemBody"><div>';
			form += '<input type="text" id="member_' + id + '_text" name="name" value="' + value.replace(/\"/g, "&quot;") + '" />';
			form += '</div>';
			form += '</div>';
			form += '</div>';
			form += '</form>';
				
	$('member_' + id).insert({ 'after' : form });
 	$('member_' + id).remove();
 	$('member_' + id + '_form').show();
	$('member_' + id + '_text').focus();
}

function edit_group_title(id)
{
	if ($('circle_' + id + '_title'))
	{
		var title = $('circle_' + id + '_title').innerHTML;
	
		var form = '<form action="/circles/' + id + '" id="circle_' + id + '_form" method="post" onsubmit="new Ajax.Request(&quot;/circles/' + id + '&quot;, {asynchronous:true, evalScripts:true, method:&quot;put&quot;, parameters:Form.serialize(this)}); return false;">';
				form += '<input name="_method" type="hidden" value="put" />';
				form += '<div class="okbutton">';
				form += '<div><input type="submit" value="" class="button"/></div>';
				form += '</div>';
				form += '<div class="input">';
				form += '<div><input id="circle_name" name="circle[name]" type="text" value="' + title + '"/></div>';
				form += '</div>';
				form += '</form>';
				
		$$('#header' + id + ' h2').pop().update(form);
		$$('#circle_' + id + '_form #circle_name').pop().focus();
	}
}

function ajax_loading()
{
	$('headerTitle').addClassName('loading');
}

function ajax_loaded()
{
	$('headerTitle').removeClassName('loading');
}



var Messages = {
  lastMessageId: 0,
  lastRequestLastMessageId: 0,
  fields: null,
  formId: '',
 
  onComplete: function(request, transport, json) {
    // Не проверяем ответ, если это javascript
    if (transport.responseText.substr(0, 5) != "try {")
    {
        this.fields = transport.responseText.toQueryParams();

        for(var id in this.fields) {
          this.formId = id;
          if(typeof(this.fields[id]) == 'string') {
            if($(this.fields[id])) {
              $(this.fields[id]).className = 'error ' + $(this.fields[id]).className.gsub('error', '').strip();
            }
          }
          else {
            for(var key in this.fields[id]) {
              if($(this.fields[id][key])) {
                $(this.fields[id][key]).className = 'error ' + $(this.fields[id][key]).className.gsub('error', '').strip();
              }          
            }
          }
        }
        this.extractMessages(json);   
    }
  },
 
  onFailure: function(request, transport, json) {
    this.extractMessages(json);
  },
 
  extractMessages: function(json) {
    for (msgClass in json) {
      msgsOfClass = typeof( json[msgClass] ) == 'string' ? new Array(json[msgClass]) : json[msgClass];
 
      for (var i = 0; i < msgsOfClass.length; i++) {
        this.displayMessage(msgClass, msgsOfClass[i]);
      }
    }
 
    this.lastRequestLastMessageId = this.lastMessageId;
  },
 
  displayMessage: function(msgClass, msgText) {
    if($('messages' + this.formId)) {
        if (this.lastMessageId == this.lastRequestLastMessageId) {
          msgEls = $A( $('messages' + this.formId ).getElementsByTagName('li') );

          for (var i = 0; i < msgEls.length; i++) {
            Effect.Fade(msgEls[i].id );
          }
        }

        msgId = 'message-' + ++this.lastMessageId;
        liEl = document.createElement('li');
        liEl.setAttribute('id', msgId);
        //liEl.setAttribute('class', msgClass);
        liEl.setAttribute('title', I18n_t('click_to_close'));
        liEl.setAttribute('onclick', 'Element.remove(this);');
        liEl.setAttribute('style', 'cursor: pointer;');
        liEl.appendChild( document.createTextNode(msgText) );

        $('messages' + this.formId).appendChild(liEl);
    }
  }
};

Ajax.Responders.register(Messages);