//---------------------------------------------------------
//Register
//---------------------------------------------------------
function Register()
{
  new Ajax.Request('/register',
  {
    method:'post',
	parameters: $('register').serialize(true),
    onSuccess: function(transport){
      var response = transport.responseXML.documentElement || null;
	  if(response == null)
		{
	    window.location.href = '/hello';
		}
		else
		{
		  $('errors').innerHTML = response.getElementsByTagName('error')[0].firstChild.data;
		  $('kaptcha').innerHTML = response.getElementsByTagName('kaptcha')[0].firstChild.data;
		}
    },
    onFailure: function(){$('errors').innerHTML = 'error'}
  });
}
//---------------------------------------------------------
//Dream
//---------------------------------------------------------
function AddDream()
{
  new Ajax.Request('/dream/add/check',
  {
    method:'post',
	parameters: {title: $('dream_title').value, dream: $('dream_text').value, picture:$('dream_picture').value},
	onLoading: function(){
	  $('adddream').value = 'Загрузка';
	},
    onSuccess: function(transport){
      var response = transport.responseText || null;
	  if(response != null)
	    $('errors').innerHTML = response;
	  else
	    document.form_add_dream.submit();
	  $('adddream').value = 'Добавить мечту';
    },
    onFailure: function(){$('errors').innerHTML = 'error'}
  });
}
function EditDream(v_n)
{
  new Ajax.Request('/dream/edit/check',
  {
    method:'post',
	parameters: {dream_n: v_n, title: $('dream_title').value, dream: $('dream_text').value, picture:$('dream_picture').value},
	onLoading: function(){
	  $('editdream').value = 'Загрузка';
	},
    onSuccess: function(transport){
      var response = transport.responseText || null;
	  if(response != null)
	    $('errors').innerHTML = response;
	  else
	    document.form_edit_dream.submit();
	  $('editdream').value = 'Изменить мечту';
    },
    onFailure: function(){$('errors').innerHTML = 'error'}
  });
}
function DeleteDream(v_n)
{
  if(confirm("Вы действительно хотите удалить мечту?"))
  {
    new Ajax.Request('/dream/delete',
    {
      method:'post',
	 		parameters: {dream_n: v_n},
      onSuccess: function(){
	    $('dream-'+v_n).fade({duration: 0.7});
      },
      onFailure: function(){$('dream-'+v_n).innerHTML = 'error'}
    });
  }
}
function DeleteDreamPicture(v_n)
{
  new Ajax.Request('/dream/delete_picture',
  {
		method: 'post',
		parameters: {dream_n: v_n},
		onSuccess: function(transport){
			var response = transport.responseText || null;
			$('delete_status').innerHTML = response;
			new Effect.Highlight('delete_status', {startcolor: '#ffff99', endcolor: '#ffffff'});
		},
		onFailure: function(){$('delete_status').innerHTML = 'error'}
  });
}
//---------------------------------------------------------
//Tags
//---------------------------------------------------------
function SendTags()
{
  new Ajax.Updater({ success: 'tags-list' }, '/tags_list.php', {
    method: 'post', parameters: {tags: $('tags').value}
  });
}
function AddTag(text)
{
  text = text.replace(/(.*)/i, '$1');
  $('tags').value = $('tags').value.replace(/[a-zа-я0-9]+$/i, text);
}
//---------------------------------------------------------
//Buttons
//---------------------------------------------------------
function Vote(v_login, v_n)
{
  new Ajax.Request('/change/rating',
  {
    method:'post',
	parameters: {login: v_login, dream_n: v_n},
    onSuccess: function(transport){
      var response = transport.responseText || "no response text";
	  $('power-'+v_n).innerHTML = response;
	  new Effect.Highlight('highlight-'+v_n, {startcolor: '#ffff99', endcolor: '#ffffff'});
    },
    onFailure: function(){$('power-'+v_n).innerHTML = 'error'}
  });
}
function Subscribe(v_login, v_n)
{
  new Ajax.Request('/change/subscription',
  {
    method:'post',
	parameters: {login: v_login, dream_n: v_n},
    onSuccess: function(transport){
      var response = transport.responseText || "no response text";
	  $('subscription').innerHTML = response;
	  new Effect.Highlight('subscription', {startcolor: '#ffff99', endcolor: '#ffffff'});
    },
    onFailure: function(){$('subscription').innerHTML = 'error'}
  });
}
function Favourite(v_login, v_n)
{
  new Ajax.Request('/change/favourite',
  {
    method:'post',
	parameters: {login: v_login, dream_n: v_n},
    onSuccess: function(transport){
      var response = transport.responseText || "no response text";
	  $('favourite-'+v_n).innerHTML = response;
	  new Effect.Highlight('favourite-'+v_n, {startcolor: '#ffff99', endcolor: '#ffffff'});
    },
    onFailure: function(){$('favourite-'+v_n).innerHTML = 'error'}
  });
}
//---------------------------------------------------------
//Comment
//---------------------------------------------------------
function AddComment(v_login, v_dream_n)
{
  new Ajax.Request('/comment/add/check',
  {
		method:'post',
		parameters: {comment: $('dream_comment').value},
		onLoading: function(){
			$('add').value = 'Загрузка';
	},
    onSuccess: function(transport){
      var response = transport.responseText || null;
			if(response != null)
			{
				$('errors').innerHTML = response;
				$('add').value = 'Комментировать';
			}
			else
			{
				new Ajax.Request('/comment/add',
				{
					method:'post',
					parameters: {login: v_login, dream_n: v_dream_n, comment: $('dream_comment').value},
					onSuccess: function(transport){
						var response = transport.responseXML.documentElement || null;
						if(response!=null)
						{
							$('dream_comment').clear();
							$('errors').innerHTML = '';
							if(response.getElementsByTagName('subscription')[0])
								$('subscription').innerHTML = response.getElementsByTagName('subscription')[0].firstChild.data;
							$('comments').update(response.getElementsByTagName('comments_new')[0].firstChild.data);
						}
						$('add').value = 'Комментировать';
					},
					onFailure: function(){$('errors').innerHTML = 'error'}
				});
			}
    },
    onFailure: function(){$('errors').innerHTML = 'error'}
  });
}
function DeleteComment(v_login, v_dream_n, v_comment_n)
{
	if(confirm("Вы действительно хотите удалить комментарий?"))
	{
		new Ajax.Request('/comment/delete',
    {
			method:'post',
			parameters: {login: v_login, dream_n: v_dream_n, comment_n: v_comment_n},
			onSuccess: function(transport){
				var response = transport.responseText || "no response text";
				$('comment-'+v_comment_n).fade({duration: 0.7});
			},
			onFailure: function(){$('errors').innerHTML = 'error'}
		});
	}
}
//---------------------------------------------------------
//Settings
//---------------------------------------------------------
function ChangeGeneralSettings()
{
  new Ajax.Request('/change/general',
  {
    method:'post',
	parameters: $('form_general_settings').serialize(true),
    onSuccess: function(transport){
      var response = transport.responseText || null;
	  if(response == null)
	    window.location.href = "/settings/general"
	  $('errors').innerHTML = response;
    },
    onFailure: function(){$('errors').innerHTML = 'error'}
  });
}
function ChangePasswordSettings()
{
  new Ajax.Request('/change/password',
  {
    method:'post',
	parameters: $('form_password_settings').serialize(true),
    onSuccess: function(transport){
      var response = transport.responseText || null;
	  if(response == null)
	    window.location.href = "/settings/password"
	  $('errors').innerHTML = response;
    },
    onFailure: function(){$('errors').innerHTML = 'error'}
  });
}
function ChangeNotificationsSettings()
{
  new Ajax.Request('/change/notifications',
  {
    method:'post',
	parameters: $('form_notifications_settings').serialize(true),
    onSuccess: function(transport){
      var response = transport.responseText || null;
	  if(response == null)
	    window.location.href = "/settings/notifications"
	  $('errors').innerHTML = response;
    },
    onFailure: function(){$('errors').innerHTML = 'error'}
  });
}