/*******************************************************************************
*  Пользователи - доп. функции (относительно сайта)  ***************************
*******************************************************************************/



// меняем статус поиска работы

function change_work_search_status (status)
{
  
  $('#user-work-status-changer').parent().addClass('work-search-load');
  if (status == 1)
  {
    $.post('/ajax/user_update_work_status', { st: status }, function (data) {
      $('#user-work-status-changer').hide().attr('onclick', '').parent().removeClass('work-search-load');
      $('#user-work-status-changer').parent().removeClass('work-search').addClass('work-search-active').unbind('click').bind('click', function () { change_work_search_status(0); } );
      $('#user-work-status-changer').show();
      Alert.show('Уведомление', 'Теперь вас можно увидеть в соискателях', 'message');
    }, "json");
  }
  else if (status == 0)
  {
    $.post('/ajax/user_update_work_status', { st: status }, function (data) {
      $('#user-work-status-changer').hide().attr('onclick', '').parent().removeClass('work-search-load');
      $('#user-work-status-changer').show();
      $('#user-work-status-changer').parent().removeClass('work-search-active').addClass('work-search').unbind('click').bind('click', function () { change_work_search_status(1); } );
      Alert.show('Уведомление', 'Теперь вы не будете отображаться в соискателях', 'message');
    }, "json");
  }
}



// открываем диалог выбора города пользователя

function open_city_change_dialog (city_id, callback_function, where)
{
  if (where == 'job-search')
  {
    city_id = $('#job-city-id-search').val();
    create_dialog('В каком городе ищете работу', 500, 230);
  }
  else if (where == 'job-add')
  {
    city_id = $('#job-city-id-add').val();
    create_dialog('В каком городе ищете сотрудника', 500, 230);    
  }    
  else if (where == 'org-add')
  {
    city_id = $('#org-city-id-add').val();
    create_dialog('В каком городе находится организация', 500, 230);    
  }    
  else
    create_dialog('Ваш город проживания', 500, 230);
  
  $.post('/ajax/get_countries_list', {current_city: city_id }, function(data) {
    if (data.status)
    {
      $('.dialog-content').append('<div class="city"></div>');
      $('.dialog-content .city').append('<div><label class="txt-grey99 font-1_4">Страна</label><select name="user_country" onchange="change_cities_list_by_country(this, '+"'"+callback_function+"'"+')"></select></div>');
      for (var i = 0; i < data.countries.length; i++)
      {
        if (data.countries[i].dict_item_id == data.active_country)
          $('.dialog-content select').append('<option value="'+data.countries[i].dict_item_id+'" selected="selected">'+data.countries[i].dict_item_name+'</option>');
        else
          $('.dialog-content select').append('<option value="'+data.countries[i].dict_item_id+'">'+data.countries[i].dict_item_name+'</option>');
      }
      
      $.post('/ajax/get_cities_list', {current_city: city_id, country_id: data.active_country }, function(data2) {
        if (data2.status)
        {
          
          $('.dialog-content .city').append('<div><label class="txt-grey99 font-1_4">Город</label><select name="user_city" class="cities-list"></select></div>');
          for (var i = 0; i < data2.cities.length; i++)
          {
            if (data2.cities[i].dict_item_id == city_id)
              $('.dialog-content .cities-list').append('<option class="city-option-'+data2.cities[i].dict_item_id+'" value="'+data2.cities[i].dict_item_id+'" selected="selected">'+data2.cities[i].dict_item_name+'</option>');
            else
              $('.dialog-content .cities-list').append('<option class="city-option-'+data2.cities[i].dict_item_id+'" value="'+data2.cities[i].dict_item_id+'">'+data2.cities[i].dict_item_name+'</option>');
              
            //$('.dialog-content .cities-list').append('<li><a href="javascript:;" onclick="'+callback_function+'('+data2.cities[i].dict_item_id+', '+"'"+data2.cities[i].dict_item_name+"'"+')">'+data2.cities[i].dict_item_name+'</a></li>');
          }
          
          if (where == 'job-search')
            $('.dialog-content').append('<div class="city-save"><input type="button" onclick="change_job_search_city()" value="Сохранить"/></div>');
          else if (where == 'job-add')
            $('.dialog-content').append('<div class="city-save"><input type="button" onclick="change_city_in_form()" value="Сохранить"/></div>');
          else if (where == 'org-add')
              $('.dialog-content').append('<div class="city-save"><input type="button" onclick="change_city_in_form()" value="Сохранить"/></div>');
          else
            $('.dialog-content').append('<div class="city-save"><input type="button" onclick="change_user_city()" value="Сохранить"/></div>');
          
          dialog_load_success();
        }
      }, "json");

    }
  }, "json");  
}



// перезагружаем список городов в соответствие со страной

function change_cities_list_by_country(e, callback_function)
{
  dialog_request_show();
  $('.cities-list').html('');
  $.post('/ajax/get_cities_list', { country_id: $(e).val() }, function(data) {
    if (data.status)
    {
      for (var i = 0; i < data.cities.length; i++)
      {
        $('.dialog-content .cities-list').append('<option class="city-option-'+data.cities[i].dict_item_id+'" value="'+data.cities[i].dict_item_id+'"><a href="javascript:;" onclick="'+callback_function+'('+data.cities[i].dict_item_id+', '+"'"+data.cities[i].dict_item_name+"'"+')">'+data.cities[i].dict_item_name+'</a></option>');
      }
      dialog_request_hide();
    }
  }, "json");
}



// меняем город пользователя

function change_user_city ()
{
  dialog_request_show();
  var city_id = $('.dialog-content .city .cities-list').val();
  
  $.post('/ajax/change_user_city', {city_id: city_id }, function(data) {
    if (data.status)
    {
      $('#user-city').html('<img src="/images/interface/flags/'+data.country_id+'.png" alt=""/> <a href="javascript:;" onclick="open_city_change_dialog('+city_id+', '+"'change_user_city'"+')" title="Указать город" class="js">'+data.new_city_name+'</a>');
      close_dialog();
      Alert.show('Уведомление', 'Город сохранен', 'message');
    }
  }, "json");
}


//меняем город в формах добавления/редактирования

function change_city_in_form ()
{
	var city_id = $('.dialog-content .city .cities-list').val();
	var city_title = $('.dialog-content .city .cities-list .city-option-'+parseInt(city_id)).html();
	$('.form-city-title').html(city_title);
	$('.form-city-id').val(city_id);
	close_dialog();
}




// открываем диалог редактирования специальностей

function open_professions_change_dialog ()
{
	create_dialog('Редактирование специальностей', 600, 360);
  
	$('.dialog-content').addClass('dialog-user-spec');
	$('.dialog-user-spec').append('<div></div>');
  
	$.post('/ajax/get_user_professions_new', { a: 'a' }, function(data) {
		if (data.status)
		{
			$('.dialog-content div').append('<textarea id="user-professions-edit">'+data.professions+'</textarea>');
			$('.dialog-content div').append('<p class="info">Перечислите через запятую, с маленькой буквы, старайтесь использовать слова, а не фразы. В последствие так легче будет вас найти как специалиста.</p>');
			$('.dialog-content div').append('<input type="button" name="submit-professions" value="Сохранить" onclick="save_user_professions()"/>');
			dialog_load_success();
		}
	}, "json"
	);
}


var user_spec_array_tmp = [];
var user_spec_loader = false;
function open_professions_change_dialog_old ()
{
  create_dialog('Редактирование специальностей', 800, 500);
  
  $('.dialog-content').addClass('dialog-user-spec');
  
  $.post('/ajax/get_professions_by_level', { level: '1' }, function(data) {
  
    $.post('/ajax/get_user_professions', { a: 'a' }, function(data2) {
      if (data2.status)
      {
        $('.dialog-content').append('<ul id="professions_level_1"></ul>');
        for (var i = 0; i < data.professions.length; i++)
        {
          $('.dialog-content #professions_level_1').append('<li class="l1-'+data.professions[i].dict_item_id+'"><a href="javascript:;" class="js" onclick="show_professions_level_2(this)">'+data.professions[i].dict_item_name+'</li>');
        }
        
        $('.dialog-content').append('<div class="level2-wrap"><div class="info">Выбирите направление<br /> вашей деятельности</div></div>');
        $('.dialog-content').append('<div class="level3-wrap"></div>');
        
        $('.dialog-content').append('<div class="user-selected-wrap"><h4 class="i txt-grey80 font-1_8">Ваши специальности</h4><ul class="user-selected"></ul></div>');
        
        for (var i = 0; i < data2.professions.length; i++)
        {
          $('.dialog-content .user-selected').append('<li id="p-'+data2.professions[i].dict_item_id+'"><a href="javascript:;" class="js" onmouseover="user_spec_highlight(true, this)" onmouseout="user_spec_highlight(false, this)" onclick="delete_user_profession('+data2.professions[i].dict_item_id+')">'+data2.professions[i].dict_item_name+'</a></li>');
          //$('.dialog-content').append('<input id="profession_'+data.professions[i].dict_item_id+'" class="profession_checkbox" type="checkbox" value="'+data.professions[i].dict_item_id+'"/> <label>'+data.professions[i].dict_item_name+'</label>');
          //if (data.professions[i].in_set) $('#profession_'+data.professions[i].dict_item_id).attr('checked', 'checked');
          user_spec_array_tmp[data2.professions[i].dict_item_id] = true;
        }
        $('.dialog-content').append('<div class="professions-save"><input type="button" onclick="save_user_professions()" value="Сохранить"/></div>');
        
        dialog_load_success();
      }
    }, "json");
  
  }, "json");
}

function user_spec_highlight (highlight, a)
{
  if (highlight && ! $(a).parent().hasClass('active')) $(a).parent().addClass('hover');
  else $(a).parent().removeClass('hover');
}


// показываем специальности второго уровня

function show_professions_level_2 (e)
{
  if (user_spec_loader == true) return false;
  user_spec_loader = true;
  $('.dialog-wrap .dialog-content .ajax-load-request').removeClass('hidden');
  
  $('.dialog-content .level3-wrap').html('');
  $('.dialog-content .level2-wrap').html('');
  
  $.post('/ajax/get_professions_by_level', { level: '2', parent: $(e).parent().attr('class').replace('l1-', '') }, function(data) {
    if (data.status)
    {
      $('.dialog-content .level2-wrap').append('<ul id="professions_level_2"></ul>');
      $(e).parent().parent().find('li').removeClass('active');
      $(e).parent().addClass('active');
      
      for (var i = 0; i < data.professions.length; i++)
      {
        $('.dialog-content #professions_level_2').append('<li><a class="js" href="javascript:;" onclick="show_professions_level_3('+data.professions[i].dict_item_id+')">'+data.professions[i].dict_item_name+'</a></li>');
      }
      
      $('.dialog-content .level3-wrap').append('<div class="info">Уточните вашу<br /> специализацию</div>');
      $('.dialog-wrap .dialog-content .ajax-load-request').addClass('hidden');
    }
    user_spec_loader = false;
  }, "json");
}


// показываем специальности третьего уровня

function show_professions_level_3 (parent)
{
  if (user_spec_loader == true) return false;
  user_spec_loader = true;
  $('.dialog-wrap .dialog-content .ajax-load-request').removeClass('hidden');
  $('.dialog-content .level3-wrap').html('');
  
  $.post('/ajax/get_professions_by_level', { level: '3', parent: parent }, function(data) {
    if (data.status)
    {      
      $('.dialog-content .level3-wrap').append('<ul id="professions_level_3"></ul>')
      for (var i = 0; i < data.professions.length; i++)
      {
        $('.dialog-content #professions_level_3').append('<li class="l3-'+data.professions[i].dict_item_id+'"><a class="js" href="javascript:;" id="profession-'+data.professions[i].dict_item_id+'" onclick="change_profession_selected(this)" onmouseover="user_spec_highlight(true, this)" onmouseout="user_spec_highlight(false, this)">'+data.professions[i].dict_item_name+'</a></li>');
        //if (data.professions[i].in_set) $('#profession-'+data.professions[i].dict_item_id).parent().addClass('active');
        if (user_spec_array_tmp[data.professions[i].dict_item_id] == true) $('#profession-'+data.professions[i].dict_item_id).parent().addClass('active');
      }
      $('.dialog-wrap .dialog-content .ajax-load-request').addClass('hidden');
    }
    user_spec_loader = false;
  }, "json");
}


// меняем статус специализации - выбрана или нет

function change_profession_selected (a)
{
  var spec_id = parseInt($(a).attr('id').replace('profession-', ''));
  if ( ! $(a).parent().hasClass('active'))
  {
    $('.dialog-content .user-selected').append('<li id="p-'+spec_id+'"><a href="javascript:;" class="js" onclick="delete_user_profession('+spec_id+')" onmouseout="user_spec_highlight(false, this)" onmouseover="user_spec_highlight(true, this)">'+$(a).html()+'</a></li>');
    $(a).parent().addClass('active');
    user_spec_array_tmp[spec_id] = true;
  }
  //else
    //$('.dialog-content .user-selected #p-'+$(e_checkbox).attr('value')).remove();
}


// меняем специальности пользователя

function save_user_professions ()
{
	$('.dialog-content .ajax-load-request').removeClass('hidden');
	professions_result = $('.dialog-user-spec textarea').val();
	$.post('/ajax/change_user_professions_new', {professions: professions_result }, function(data) {
		if (data.status)
		{
			if (data.about_empty_field)
			{
				$('#user-professions .inner h3').remove();
				$('#user-professions .inner .ul-wrap').html(data.about_empty_field);
			}
			else
			{
				if ( $('#user-professions .inner h3').size() == 0 )
					$('#user-professions .inner').html('<h3>Специальности<a href="javascript:;" class="js edit" onclick="open_professions_change_dialog()"><img src="/images/interface/user_menu_options.png" alt=""></a></h3><div class="ul-wrap"></div>')
				$('#user-professions .inner .ul-wrap').html('');
				$('#user-professions .inner .ul-wrap').append('<div>'+data.professions_str+'</div>');		        
			}
			close_dialog();
			Alert.show('', 'Изменения сохранены', 'message');
		}
		else
			Alert.show('', 'Непредвиденная ошибка, попробуйте позднее', 'error');
		$('.dialog-content .ajax-load-request').addClass('hidden');
	}, "json");
	
}


function save_user_professions_old ()
{
  var professions_result = '';
  var counter = 1;
  $('.dialog-content .user-selected li').each( function() {
    professions_result = professions_result+parseInt($(this).attr('id').replace('p-', ''));
    professions_result = professions_result+'|';
  } );
  
  $.post('/ajax/change_user_professions', {professions: professions_result }, function(data) {
    if (data.status)
    {
      if (data.about_empty_field != '')
      {
        $('#user-professions .inner').html(data.about_empty_field);
      }
      else
      {
        if ( $('#user-professions .inner h3').size() == 0 )
          $('#user-professions .inner').html('<h3>Специальности <a href="javascript:;" class="js edit" onclick="open_professions_change_dialog()"><img src="/images/interface/user_menu_options.png" alt=""></a></h3><ul></ul>')
        $('#user-professions .inner ul').html('');
        //$('#user-professions .inner .ul-wrap').html('').append('<a href="javascript:;" class="js" onclick="open_professions_change_dialog()">Специальности</a>:').append('<ul></ul>');
        
        for (var i = 0; i < data.professions.length; i++)
        {
          if (i != data.professions.length - 1)
            $('#user-professions .inner ul').append('<li><a href="javascript:;">'+data.professions[i].dict_item_name+'</a>,&nbsp;</li>');
          else
            $('#user-professions ul').append('<li><a href="javascript:;">'+data.professions[i].dict_item_name+'</a></li>');
        }
        
        //$('#user-professions').html($('.dialog-content .resume').val());
        //$('#user-resume').append('<div><a href="javascript:;" class="js" onclick="open_resume_change_dialog()">Редактировать</a></div>');
      }
      close_dialog();
    }
  }, "json");
}


// удаляем специализацию у пользователя

function delete_user_profession (profession_id)
{
  /*
  $.post('/ajax/delete_user_profession', {profession_id: profession_id }, function(data) {
    if (data.status)
    {
      $('.dialog-content .user-selected #p-'+profession_id).remove();
      $('#user-professions .p-'+profession_id).remove();
    }
  }, "json");
  */
  $('.dialog-content .user-selected #p-'+profession_id).remove();
  $('#professions_level_3 .l3-'+profession_id).removeClass('active');
  user_spec_array_tmp[profession_id] = false;
}



// открываем диалог редактирования специальностей

function open_contacts_change_dialog (dialog_title)
{
  create_dialog(dialog_title, 540, 360);
  $.post('/ajax/get_user_contacts', { a: 'a' }, function(data) {
    if (data.status)
    {
      dialog_load_success();
      
      $('.dialog-content').append('<div class="contacts"></div>');
      
      var s = '';
      
      s = '<label for="" class="txt-grey99 font-1_4">Телефон</label>';
      s += '<div><input type="text" name="user_phone_edit" class="phone" maxlength="20" value="'+data.contacts.phone+'"/>';
      s += '<span class="font-1_2 txt-grey99 i">Пример: 8 933 245-65-00</span></div>';
      $('.dialog-content .contacts').append(s);

      s = '<label for="" class="txt-grey99 font-1_4">Контактный эл. адрес</label>';
      s += '<div><input type="text" name="user_contact_email_edit" class="email" maxlength="200" value="'+data.contacts.contact_email+'"/>';
      s += '<span class="font-1_2 txt-grey99 i">Пример: mail@gmail.com</span></div>';
      $('.dialog-content .contacts').append(s);

      s = '<label for="" class="txt-grey99 font-1_4">Скайп</label>';
      s += '<div><input type="text" name="user_skype_edit" class="skype" maxlength="20" value="'+data.contacts.skype+'"/>';
      s += '<span class="font-1_2 txt-grey99 i">Пример: vasiliy.ivanov</span></div>';
      $('.dialog-content .contacts').append(s);

      s = '<label for="" class="txt-grey99 font-1_4">ICQ</label>';
      s += '<div><input type="text" name="user_icq_edit" class="icq" maxlength="11" value="'+data.contacts.icq+'"/>';
      s += '<span class="font-1_2 txt-grey99 i">Пример: 383 121 455</span></div>';
      $('.dialog-content .contacts').append(s);
      
      $('.dialog-content').append('<div class="contacts-save"><input type="button" onclick="change_user_contacts()" value="Сохранить"/></div>');

      $('.dialog-content .phone').keyfilter(/[1234567890+\- ]/i);
      $('.dialog-content .email').keyfilter(/[a-z0-9_\.\-@]/i);
      $('.dialog-content .skype').keyfilter(/[a-z0-9_-]/i);
      $('.dialog-content .icq').keyfilter(/[1234567890 ]/i);
    }
  }, "json");
}



// меняем контакты пользователя

function change_user_contacts ()
{
  dialog_request_show();
  
  $.post('/ajax/change_user_contacts', {
    phone: $('.dialog-content .phone').val(),
    contact_email: $('.dialog-content .email').val(),
    skype: $('.dialog-content .skype').val(),
    icq: $('.dialog-content .icq').val()
  }, function(data) {
    if (data.status)
    {
      if (data.about_empty_field != '')
      {
        $('#user-contacts').html(data.about_empty_field);
      }
      else
      {
        if ($('.dialog-content .phone').val() != '')
          $('#user-contacts .phone').html($('.dialog-content .phone').val()).removeClass('hidden');
        else
          $('#user-contacts .phone').html('').addClass('hidden');

        if ($('.dialog-content .email').val() != '')
          $('#user-contacts .email').html($('.dialog-content .email').val()).removeClass('hidden');
        else
          $('#user-contacts .email').html('').addClass('hidden');
        
        if ($('.dialog-content .skype').val() != '')
          $('#user-contacts .skype').html($('.dialog-content .skype').val()).removeClass('hidden');
        else
          $('#user-contacts .skype').html('').addClass('hidden');

        if ($('.dialog-content .icq').val() != '')
          $('#user-contacts .icq').html($('.dialog-content .icq').val()).removeClass('hidden');
        else
          $('#user-contacts .icq').html('').addClass('hidden');        
      }
      close_dialog();
      Alert.show('Уведомление', 'Контакты отредактированы', 'message');
    }
  }, "json");
}



// открываем диалог нового личного сообщения

function open_um_dialog (user_name, user_id)
{
  create_dialog('Новое сообщение пользователю: '+user_name, 600, 300);
  dialog_load_success();
      
  $('.dialog-content').append('<form action="" method="post" onsubmit="return validate_new_um_form('+"'new-um'"+');" class="new-um-form"></form>');
  $('.dialog-content form').append('<textarea name="" id="new-um"></textarea>');
  $('.dialog-content form textarea').focus();
  //$('.dialog-content form').append('<input type="hidden" id="new_um_user_id" value="'+$('#user-id').html()+'"/>');
    
  $('.dialog-content form').append('<input type="button" value="Отправить" onclick="send_new_um('+user_id+')"/>');
}



// отправляем новое сообщение пользователю

function send_new_um (user_id)
{
  if ( $('.dialog-content form textarea').val() == '' )
  {
    $('.dialog-content form textarea').focus();
    return false;
  }
  
  if (dialog_ajax_process) return false;
  dialog_ajax_process = true;
  $('.dialog-content .ajax-load-request').removeClass('hidden');
    
  $.post('/ajax/new_um_from_user', { um_to: user_id, um_text: $('.dialog-content form textarea').val() }, function(data) {
    if (data.status)
    {
      $('#user-resume').html($('.dialog-content .resume').val());
      $('#user-resume').append('<div><a href="javascript:;" class="js" onclick="open_resume_change_dialog()">Редактировать</a></div>');

      close_dialog();
      Alert.show('', 'Сообщение отправлено', 'message');
    }
    dialog_ajax_process = false;
    $('.dialog-content .ajax-load-request').addClass('hidden');
  }, "json");
}



// подсвечиваем ссылку на регистрацию

function highlight_register_link ()
{
  $('#user-panel-wrap .register-wrap a').toggleClass('highlighted');
}



// добавляем пользователя в контакты


var ajax_process = false;
function add_user_to_user_relation (user_first_id, user_second_id)
{
  if (ajax_process) return false;
  ajax_process = true;
  $('#user-index-right .links .users-relation').addClass('users-relation-change');  
  $.post('/ajax/add_user_to_user_relation', { user_first_id: user_first_id, user_second_id: user_second_id }, function(data) {
    if (data.status)
    {
      $('#user-index-right .links .users-relation').html('Этот пользователь есть у вас в <a href="/people/'+user_first_id+'/contacts">контактах</a>.');
    }
    $('#user-index-right .links .users-relation').removeClass('users-relation-change');
    ajax_process = false;
  }, "json");
}



// удаляем пользователя из контактов

function delete_user_relation (user_first_id, user_second_id)
{
  if (ajax_process) return false;
  ajax_process = true;
  $('#r-'+user_first_id+'-'+user_second_id+' .del-link img').addClass('load');
  
  $.post('/ajax/delete_user_to_user_relation', { user_first_id: user_first_id, user_second_id: user_second_id }, function(data) {
    if (data.status)
    {
      $('#r-'+user_first_id+'-'+user_second_id).fadeOut("normal", function() { ajax_process = false; });
      if ($('#user-contacts-count').html() == '1') $('#user-contacts-count').html('');
      else $('#user-contacts-count').html( parseInt($('#user-contacts-count').html()) - 1 );
    }
    else
      ajax_process = false;
    $('#r-'+user_first_id+'-'+user_second_id+' .del-link img').removeClass('load');
  }, "json");  
}


// предпросмотр поста

function preview_post ()
{
    $.post('/ajax/preview_post', { post_title: $('#post-add-title').val(), post_text: $('#post-add-content').val(), post_tags: $('#post-add-tags').val() }, function(data) {
      if (data.status)
      {
        window.open('/preview/post/'+data.preview_id, 'Предпросмотр публикации', 'height=600,width=800,toolbar=no,location=no,status=no'); 
      }
    }, "json");  
}

// предпросмотр вопроса

function preview_question ()
{
    $.post('/ajax/preview_question', { q_title: $('#question-add-title').val(), q_text: $('#question-add-content').val(), q_tags: $('#question-add-tags').val() }, function(data) {
      if (data.status)
      {
        window.open('/preview/question/'+data.preview_id, 'Предпросмотр вопроса', 'height=600,width=800,toolbar=no,location=no,status=no');
      }
    }, "json");
}